From 11d363032a1beb6e0736fa088b69aad10a9c7b42 Mon Sep 17 00:00:00 2001 From: Baolin Zhu Date: Thu, 10 Sep 2026 10:32:48 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E7=BB=9F=E4=B8=80=20newapi=20?= =?UTF-8?q?=E5=AD=90=E5=91=BD=E4=BB=A4=E6=9D=83=E9=99=90=E4=B8=BA=E4=BC=9A?= =?UTF-8?q?=E8=AF=9D=E7=BB=91=E5=AE=9A=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit /newapi quota 移除 AstrBot 管理员权限要求,与 /newapi channel、 /newapi flow 保持一致,均对绑定 new-api 实例的会话开放。 --- CHANGELOG.md | 4 ++++ README.md | 4 ++-- main.py | 5 ++--- metadata.yaml | 2 +- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6287dc0..ae2b32e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # 更新日志 +## 1.4.1 - 2026-09-10 + +- `/newapi quota` 不再要求 AstrBot 管理员权限,与 `/newapi channel`、`/newapi flow` 保持一致,所有绑定实例的会话均可使用。 + ## 1.4.0 - 2026-09-09 - 新增 `/newapi quota`,生成全部渠道的额度图,突出周额度并展示 5 小时额度、当前窗口和主动重置次数。 diff --git a/README.md b/README.md index b7c7f89..2dea94c 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ ## 命令 -命令仅限 AstrBot 管理员使用: +命令不要求 AstrBot 管理员权限,只有绑定了 new-api 实例的会话可以执行: - `/newapi channel`:列出所有渠道;订阅渠道会同时查询 Account Info - `/newapi channel <渠道名称或 ID>`:查看渠道详情和可用的 Account Info @@ -68,7 +68,7 @@ Codex 仅展示主账户周额度,忽略附加限额(包括 `gpt-5.3-codex-s 流图以 3600 × 2240 为最小画布,并根据实际列数、标签宽度和各列节点数量自动扩大。提高 Top N 会显示更多节点,同时自动增加画布高度,避免标签从上下边缘溢出。 -命令行时间范围支持分钟(`m`)、小时(`h`)和天(`d`),最大为 30 天;必须带单位,裸数字不会被接受。 +命令行时间范围支持分钟(`m`)、小时(`h`)、天(`d`),最大为 30 天;必须带单位,裸数字不会被接受。 渠道列表中的“计费额度”来自 new-api 的 `used_quota`,并使用 `/api/status` 返回的 `quota_per_unit` 将渠道 USD 余额换算为相同单位。它是 new-api 的内部计费额度,不等同于 Flow 中的实际请求 token 数。 diff --git a/main.py b/main.py index 29fc90c..0bf9310 100644 --- a/main.py +++ b/main.py @@ -85,10 +85,10 @@ class NewApiInstance: "astrbot_plugin_newapi", "team-s2", "查询 new-api 渠道信息并绘制配额图与 Dashboard 流图", - "1.4.0", + "1.4.1", ) class NewApiPlugin(star.Star): - """Expose read-only new-api administration commands to AstrBot admins.""" + """Expose read-only new-api commands to sessions bound to an instance.""" def __init__(self, context: star.Context, config: AstrBotConfig) -> None: """Initialize the plugin from AstrBot configuration. @@ -356,7 +356,6 @@ async def _show_channel( yield event.plain_result(f"查询 new-api 失败:{error}") @newapi.command("quota") - @filter.permission_type(filter.PermissionType.ADMIN) async def quota(self, event: AstrMessageEvent): """Send a quota image for every channel in the bound instance.""" try: diff --git a/metadata.yaml b/metadata.yaml index 1514f84..38726c8 100644 --- a/metadata.yaml +++ b/metadata.yaml @@ -2,6 +2,6 @@ name: astrbot_plugin_newapi display_name: new-api 管理 desc: 按 AstrBot 会话查询多个 new-api 实例的渠道、订阅套餐余量并绘制 Dashboard Flow short_desc: 按会话查看多个 new-api 实例的渠道、套餐余量和 token 流向 -version: 1.4.0 +version: 1.4.1 author: team-s2 repo: https://github.com/team-s2/astrbot_plugin_newapi