diff --git a/apps/tools.js b/apps/tools.js index 708164f..c82d5b1 100644 --- a/apps/tools.js +++ b/apps/tools.js @@ -27,7 +27,7 @@ export class tools extends plugin { name: "R插件工具和学习类", dsc: "R插件工具相关指令", event: "message.group", - priority: 500, + priority: 300, rule: [ { reg: `^(翻|trans)[${tools.Constants.existsTransKey}]`, diff --git a/utils/token-bucket.js b/utils/token-bucket.js index 9acc3a1..156370c 100644 --- a/utils/token-bucket.js +++ b/utils/token-bucket.js @@ -7,6 +7,26 @@ export default class TokenBucket { this.lastTime = new Date().getTime(); } + /** + * 消耗令牌-一个桶 + * @param count + * @return {boolean} + */ + consumeSingle(count = 1) { + const now = new Date().getTime(); + const elapsed = now - this.lastTime; + const addedTokens = elapsed * (this.rate / 1000 / 60); // 修改为每分钟生成的令牌数量 + this.tokens = Math.min(this.tokens + addedTokens, this.capacity); + this.lastTime = now; + + if (count <= this.tokens) { + this.tokens -= count; + return true; // 返回 true 表示请求被处理 + } else { + return false; // 返回 false 表示请求被限流 + } + } + /** * 消耗令牌 * @param id 用户id