HOFO-GYG
dsh-balance-watch
DSH Web 插件:模型选择器旁显示 DeepSeek 账户余额徽章(点击查看明细)。DSH web plugin: DeepSeek account balance badge next to the model picker.
- Stars
- 1
- Language
- JavaScript
- Created
- Aug 14, 2026
- Updated
- Aug 14, 2026
Introduction
dsh-balance-watch
DSH Web 插件:在模型选择器旁显示 DeepSeek 账户余额徽章。
A DSH web plugin that puts a DeepSeek account-balance badge right next to the model picker.
功能 / Features
- 徽章常显
Balance,点击后向上弹出明细面板:总余额 / 赠送余额 / 充值余额、多币种、更新时间、手动刷新 - 数据经插件自带的本地路由
GET /api/dsh-balance获取:服务端解析DEEPSEEK_API_KEY并缓存(60 秒),API key 永不进入浏览器 - 每 2 分钟自动轮询,打开面板时即时刷新;provider 故障时降级显示 5 分钟内的最近数据并标注错误
- 余额低于 ¥5 时徽章变红,悬停提示"余额偏低"
- 排版与官方模型选择器一致(字号/字重/颜色层级)
架构 / Architecture
| 文件 | 说明 |
|---|---|
lib/index.js | host 半部(Node,ESM,零依赖):ctx.webServer.register 挂载 /api/dsh-balance 路由,ctx.credentials.resolve('DEEPSEEK_API_KEY') 在服务端取密钥;单飞(single-flight)缓存 + 失败降级;仅接受回环 Host 与 GET/HEAD |
lib/client.js | 浏览器半部(DSH client-bundle 格式):注册 conversation.input.right 槽位(模型选择器左侧),React 徽章 + 弹窗,zh/en 双语 |
test-host.mjs | host 半部单元测试(mock ctx / fetch / 时钟,15 项断言),node test-host.mjs 运行 |
数据流:浏览器 fetch('/api/dsh-balance') → 本地 dsh web 服务(插件路由)→ 服务端用密钥查询 DeepSeek /user/balance → 只把余额 JSON 返回浏览器。
安装 / Install(无需 pnpm / no pnpm required)
-
把本仓库复制到
<DSH_HOME>/profiles/web/node_modules/dsh-balance-watch(Windows 默认C:\Users\<you>\.dsh\profiles\web\node_modules\;注意是 web profile 自己的 node_modules,不是上一级profiles\node_modules—— 后者在全新启动时 host 半部可能不被加载):Copy-Item -Recurse <本仓库路径> "$env:USERPROFILE\.dsh\profiles\web\node_modules\dsh-balance-watch" -
在
<DSH_HOME>/profiles/web/cordis.patch.yml末尾追加:- insert: - id: balance-watch name: 'dsh-balance-watch' -
重启
dsh web,刷新浏览器页面。
或者使用官方插件管理命令(需先安装 pnpm):
dsh plugin --profile web add <本仓库路径>
测试 / Test
node test-host.mjs
依赖 / Dependencies
- 运行时:仅使用 DSH 内置服务(
webServer、credentials)与全局fetch,无第三方依赖 - 客户端 bundle 通过
dsh.client.inject复用 DSH 已提供的dsh-client-runtime、dsh-client-locale、dsh-client-ui-conversation
License
MIT