Skip to content

v1.2.18

Choose a tag to compare

@shuishuipingan shuishuipingan released this 06 Oct 13:17
· 25 commits to main since this release

✨ 新增功能

  • GET /credits/summary:API-key 级鉴权的只读积分汇总(issue #21)——给下游集成(如网关池面板)展示各账号池余额用。
    • 鉴权走 _key_ok()(API Key 或面板会话均可,未设 Key 时放行),刻意不放进 _is_panel_route() —— 否则就会要求 X-Panel-Token,与用途相反;
    • 只返回本地已登记的 credits,绝不触发任何上游查询 —— 这是本 issue 的核心约束(对照 GET /accounts/credits:那个会逐号 fetch_credits() 强刷,适合作者手动点、不适合机器轮询);
    • 返回 { by_realm, totals, accounts[], note },每行含 {uid, nickname, realm, credits_remain, credits_used, credits_size, registered_at};
    • 新鲜度语义写在字段名与 note 里:返回的是「上次登记时的值」(签到写权威值 + 每次消耗回写),不是实时余额;
    • 未登记过积分的账号照常列出但 credits_* / registered_at 为 null 且不计入汇总;空池 / POOL=None 返回空结构而非报错。

🐛 问题修复:无

🎨 体验优化:无

⚠️ 其他变更

  • README 的接口一览与说明补上该路由(含「为什么不能拿 /accounts/credits 轮询」的对照)。

验证

  • 全量 647 checks / 0 failed([38] 段 12 条);
  • 命门:fetch_credits() 桩计数 = 0 —— 且这次用真实 handler 验证(ThreadingHTTPServer + 后台线程 + urllib 真请求,鉴权 / 路由匹配 / JSON 写出全走真代码路径);
  • 能红证据:把实现改成「先 fetch_credits() 再返回」→ 命门断言必红(变异下桩被调 3 次 = 3 个账号各一次);
  • 鉴权矩阵:有效 key 200 / 无效 key 401 / 无凭据 401 / 面板会话 200 / 未设 key 放行 200(全部 0 次 fetch);
  • 边界:空池 / POOL=None / 无 credits 账号 / 部分 credits 全绿。