Back to home

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.jshost 半部(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.mjshost 半部单元测试(mock ctx / fetch / 时钟,15 项断言),node test-host.mjs 运行

数据流:浏览器 fetch('/api/dsh-balance') → 本地 dsh web 服务(插件路由)→ 服务端用密钥查询 DeepSeek /user/balance → 只把余额 JSON 返回浏览器。

安装 / Install(无需 pnpm / no pnpm required)

  1. 把本仓库复制到 <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"
    
  2. <DSH_HOME>/profiles/web/cordis.patch.yml 末尾追加:

    - insert:
        - id: balance-watch
          name: 'dsh-balance-watch'
    
  3. 重启 dsh web,刷新浏览器页面。

或者使用官方插件管理命令(需先安装 pnpm):

dsh plugin --profile web add <本仓库路径>

测试 / Test

node test-host.mjs

依赖 / Dependencies

  • 运行时:仅使用 DSH 内置服务(webServercredentials)与全局 fetch,无第三方依赖
  • 客户端 bundle 通过 dsh.client.inject 复用 DSH 已提供的 dsh-client-runtimedsh-client-localedsh-client-ui-conversation

License

MIT