dsh-work-badge
给 DSH(DeepSeek Harness)的网页界面加一行小字:一眼看出「现在是不是高峰时段」。
English · 简体中文
这个插件是做什么的
装好之后,DSH 界面左上角、DeepSeek 图标上方会多出一行小字,实时显示当前属于哪个时段:
| 界面上显示 | 含义 | 出现的时间(北京时间 UTC+8) |
|---|---|---|
| 工作时间:峰(蓝色) | 高峰时段 | 周一至周五 9:00-12:00、14:00-18:00 |
| 工作时间:谷(灰色) | 空闲时段 | 其余所有时间,含整个周六、周日 |
一句话概括:看到「峰」说明现在是高峰时段,看到「谷」说明是空闲时段。
它的全部作用就是这行提示,具备以下特点:
- 只显示状态:不改变 DSH 的任何其它行为,不接管输入框、不改模型设置、不碰会话内容。
- 绝不遮挡点击:标签挂在框架级浮动层上,且设置为
pointer-events: none,点它下面的图标和按钮完全不受影响。 - 不干扰视线:12px 小字、圆角淡底,固定在左上角,不随侧栏或会话列表滚动。
- 中英双语:界面文案默认跟随浏览器语言,也可一条命令改成固定中文或固定英文(见下文)。
判断规则
- 时间基准固定为北京时间(UTC+8,无夏令时),与电脑本地时区无关;改系统时区或人在国外都不会算错。
- 只有周一至周五算高峰时段;周六、周日整天都算空闲时段。
- 按分钟计算,含起点、不含终点:
9:00是峰、11:59还是峰、到12:00就已经是谷。 - 时段切换(
12:00/14:00/18:00)最迟半分钟内刷新。
默认时间窗口一览:
| 日期 | 时间 | 显示 |
|---|---|---|
| 周一至周五 | 09:00 – 11:59 | 峰 |
| 周一至周五 | 12:00 – 13:59 | 谷 |
| 周一至周五 | 14:00 – 17:59 | 峰 |
| 周一至周五 | 18:00 – 次日 08:59 | 谷 |
| 周六、周日 | 全天 | 谷 |
时段窗口是写死在代码里的常量,改成你需要的任何区间都很简单,见下方「自定义」。
界面语言(中文 / 英文)
界面文案中英双语,默认跟随浏览器语言。打开 lib/client.js,改动文件顶部的这一行即可:
const LANG = "auto";
LANG 取值 |
界面效果 |
|---|---|
"auto"(默认) |
浏览器语言以 zh 开头时显示中文,其它语言显示英文 |
"zh" |
固定中文:工作时间:峰 / 工作时间:谷 |
"en" |
固定英文:Work hours: Peak / Work hours: Off-peak |
英文界面下显示的是 Work hours: 加上加粗的 Peak(高峰)或 Off-peak(空闲),鼠标悬停提示也会同步变成英文。
安装
从 GitHub 安装(推荐)
dsh plugin --profile web add github:banana770/dsh-work-badge
从本地目录安装(自行 clone / 下载后)
dsh plugin --profile web add /path/to/dsh-work-badge
安装后让 DSH 网页界面重新加载一次(重启 DSH 或刷新页面),左上角就会出现「工作时间:峰 / 谷」。
手动安装
插件本体很小,一共只有 4 个需要关心的文件:
package.json 插件清单:声明客户端入口(dsh.client)与 bundle patch
cordis.patch.yml 把插件挂进 profile 的 bundle 名单(insert: work-badge)
lib/index.js 宿主侧空插件,只负责让 loader entry 保持活跃
lib/client.js 真正的逻辑:往 shell.overlay 插槽注册左上角小标签
把整个目录放进 profile 的安装目录,并让 cordis.patch.yml 里的 insert 条目生效
(id: work-badge、name: dsh-work-badge)即可,无需任何构建步骤。
卸载
在 DSH 左侧「插件」页的已安装列表里移除 dsh-work-badge(组件行上的移除操作),然后重新加载界面即可。
手动安装的话,把 cordis.patch.yml 中对应的 insert 条目删掉再重启 DSH。
自定义
| 想改什么 | 改哪里 |
|---|---|
| 高峰时段 | lib/client.js → isPeakHour() 里的 9 * 60 / 12 * 60 / 14 * 60 / 18 * 60 |
| 界面语言 | lib/client.js 顶部的 const LANG = "auto"; |
| 文案措辞 | lib/client.js 里的 TEXT 对象(中英各一套) |
| 刷新频率 | lib/client.js 里的 TICK_MS(默认 30 秒) |
| 位置、字号、配色 | WorkBadge() 里的 top / left / fontSize 与 CSS 变量 |
刷新频率与性能
标签本身只在三件事发生时重新计算:挂载时、浏览器标签页重新可见时、以及每 30 秒 一次。 换句话说它几乎不占资源,跨时段切换最多延迟半分钟;长时间挂在后台的标签页回到前台也会立即纠正。
隐私
- 纯本地计算:只用系统时间做算术,不联网、不请求任何接口、不上报任何数据。
- 不读写任何文件,不接触会话内容、模型配置或凭据。
- 不含也不需要任何 API key / 密钥。
- 只往界面加一个只读的
pointer-events: none小标签,不动 DSH 的其它任何东西。
兼容性
- 面向 DSH 的 web profile(
platform: "web"),已在 DSH0.1.7-alpha.2上实际运行。 - 依赖 DSH 的
shell.overlay客户端插槽,以及来自 DSH 自身的react(声明为peerDependencies: ^18.2.0,不会重复安装一份)。 - 宿主侧零依赖:
lib/index.js是空插件。 - 无构建步骤:
lib/client.js就是最终可装载的 bundle。
许可
MIT —— 可自由使用、修改、再发布。
No comments yet. Be the first to write one.