dsh-liangwengu: DeepSeek API Peak/Idle Time Reminder Plugin (DSH)

前言

DeepSeek API 的定价按时段区分:北京时间 9:00–12:00、14:00–18:00 是高峰,其余为空闲时段(半价)。跑任务一忙起来就容易忘看表,峰里跑了一下午才反应过来,这类事在调 API 的人身上不算少见。已有做法是自己定闹钟,或者在终端挂个 cron 脚本,但它们不跟着你工作的界面走。

dsh-liangwengu 把这件事做成了 DSH(DeepSeek Harness)插件:到点在界面上弹卡通弹窗、发系统通知、播放提示音,直接告诉你「峰来了快跑、峰走了开薅」。下面介绍它的播报机制、界面能力和安装方式。

这是什么

dsh-liangwengu 是一个 DSH/Cordis bundle 插件,按 DeepSeek API 定价的高峰/空闲时段到点播报。名字来自一个梗:梁文峰 = 峰 = 高峰时段;梁文谷 = 谷 = 空闲时段(半价)。

定价依据见 DeepSeek 官方文档:https://api-docs.deepseek.com/zh-cn/quick_start/pricing。当前版本 0.7.1,许可证 MIT(README 的 License 节与 package.json 均明确)。代码仓库在 https://github.com/mozhuanzuojing/dsh-liangwengu

所有播报时间钉死在 Asia/Shanghai 时区,与机器本地时区无关,换机器、改系统时区都不影响判断。

播报时间表

插件在一天的这些时间点播报(北京时间):

时刻 播报内容
08:30 / 08:40 / 08:50 高峰倒计时:距 09:00 还有 30 / 20 / 10 分钟
08:55 梁文峰要来了,块跑啊!
12:00 乡亲们,梁文峰走了!!可以出来了!+ 梁文谷 启动~~~
13:30 / 13:40 / 13:50 高峰倒计时:距 14:00 还有 30 / 20 / 10 分钟
13:55 梁文峰要来了,块跑啊!
18:00 乡亲们,梁文峰走了!!可以出来了!+ 梁文谷 启动~~~

也就是说,两个高峰段(09:00 和 14:00 开始)各有一轮峰前倒计时加峰前提醒,两个峰走点(12:00 和 18:00)各有一次开谷播报。

提醒的三种形式

到点时,插件通过三种渠道提醒,全部使用同一套卡通形象(assets/cartoon.jpg,同时也是通知图标):

  1. 卡通弹窗:右下角 bounce 跳入,气泡台词加卡通形象,8 秒自动收起,点击即关。
  2. 浏览器系统通知:首次触发时请求授权,授权后到点弹系统通知,带卡通图标。
  3. 提示音:基于 Web Audio 合成,峰来是急促下行音,开谷是上行音。受浏览器自动播放策略影响,可能被静音。

游戏化 HUD

胶囊与详情面板

右上角有一个常驻胶囊:图标 + 阶段名 + 生命值血条 + 距下一事件倒计时。可拖动,位置记忆存在 localStorage;点击展开详情面板,内含当前阶段卡、今日时间表、HP 规则和今日播报记录。

主题按北京时间自动切换:06:00–18:00 为白天浅色日光胶囊,18:00–06:00 为月夜深蓝月光胶囊,切换在 1 秒内完成,详情面板同主题(v0.2.1)。

生命值 = 安全剩余量

插件用一条血条表示「离峰还有多安全」:谷中满血 100,进入倒计时后按距离掉血(距峰 30 分→70 / 20 分→40 / 10 分→10),峰中回血爬升,到 18:00 满血。

v0.5.1 起血条本身即「水」:宽度等于血量,颜色和气泡表示水温(倒计时阶段水蓝渐白,气泡随 HP 掉血增多),谷启动瞬间蒸汽从血条喷发并伴随咕噜水声;HP 数字低于 20 变红提示危险。

修仙等级

v0.4.0 加入了凡人修仙传九境:炼气→筑基→金丹→元婴→化神→炼虚→合体→大乘→真仙,修为翻倍递增。修为来源有两种:

  • 渡劫:12:00 / 18:00 结算点在线则 +1,每日上限 2 次;
  • 闭关:谷时段每在线 1 小时 +1。

突破时有金光动画、台词和升级音,到达真仙有全屏飞升彩蛋。胶囊显示境界徽标,详情面板有修为卡。

彩蛋与血雾

两个 v0.3.0 加入的细节:

  • 隐藏彩蛋:HP 归零瞬间(即 09:00 / 14:00)卡通放大弹跳 + 随机梗台词 + 屏幕轻震,每天限 2 次。
  • 血雾氛围:屏幕四周红色 vignette 随 HP 降低渐显,峰值时最浓,纯 CSS 实现,不挡操作。

打扰度配平与错过补偿

如果每个时间点都弹窗,一天下来反而没法用。插件做了配平:

  • 弹窗每天仅 6 次:4 个主触发(08:55 / 12:00 / 13:55 / 18:00)+ 2 次彩蛋,全部为响亮模式(通知 + 声音);
  • 6 次倒计时不再弹窗,改由胶囊血条下滑和「距下一事件」倒计时实时承载(v0.3.0 / v0.4.3)。

错过补偿方面:页面打开时如果距最近主触发点不超过 15 分钟,补播该口号(过期的倒计时不补播,避免陈旧信息);否则弹一次性的当前阶段播报——高峰时是「梁文峰还在盯场」,空闲时是「梁文谷进行时」。

安装与启用

安装命令如下,<name> 换成你的 profile 名:

# 本地目录
dsh plugin --profile <name> add ./dsh-liangwengu

# npm 包
dsh plugin --profile <name> add dsh-liangwengu

# tarball(README 中的示例文件名)
dsh plugin --profile <name> add ./dsh-liangwengu-0.1.1.tgz

其中 tarball 那行的 dsh-liangwengu-0.1.1.tgz 是 README 的示例写法,package.json 当前版本为 0.7.1,实际文件名以你 pnpm pack 的产物为准。

装完后重启 profile 即生效。浏览器首次弹出时允许「通知」权限,之后才能收到系统通知。

调试时,在浏览器 devtools 控制台执行下面的命令可手动触发弹窗:

window.__lwgTest('warn' | 'good' | 'cd' | 'phase')

包结构与 DSH 适配

对想参考它写 DSH 插件的人,这个包的结构值得一看。它是纯 JS、零依赖(仅 peer @deepseek-ai/cordis ^4.0.2),从 git/npm 安装都不需要 allowBuilds

dsh-liangwengu/
├── package.json        # dsh.bundle.patch → cordis.patch.yml;dsh.client → 浏览器半
├── cordis.patch.yml    # 插件行:- insert: id liangwengu / name dsh-liangwengu
├── src/index.js        # 宿主半:读 assets/cartoon.jpg,挂 /liangwengu/cartoon.jpg 路由供图
├── lib/client.js       # 浏览器半:调度 + 弹窗 + 通知 + 声音(ModuleLoader bundle)
└── assets/cartoon.jpg  # 卡通形象(弹窗头像 + 通知图标)

v0.7.1 适配了 DSH 0.1.2-rc.1:客户端胶囊改为在 shell.overlay 槽位的 slots.inject 注册,并给客户端 plugin 加 inject: ['slots'],避免 ctx.get('slots') 一次判定因时序拿到 undefined 而走 fallback、胶囊不渲染;cordis 升到 ^4.0.2。该版本已实测在 DSH 0.1.2-rc.1 下胶囊和弹窗正常挂载。

适用场景与注意

适合的人:经常在浏览器里调 DeepSeek API、想把跑批任务挪到半价空闲时段、又不想自己记时间表的人。它解决的就是「峰谷切换靠记忆」这个问题。

使用前注意几点:

  • 系统通知需要浏览器授权,首次触发时会请求;提示音可能被浏览器自动播放策略静音;
  • 时段判断钉死 Asia/Shanghai,机器时区不影响,但如果你完全不在北京时间的工作节奏里,播报对你意义有限;
  • 插件以当前 dsh 进程的权限运行,安装前建议先阅读仓库源码并确认许可证(本插件为 MIT)。

小结

dsh-liangwengu 用卡通弹窗、系统通知、提示音和一条会掉血的血条,把 DeepSeek API 的峰谷时段变成随时可见的信息,成本控制的提醒不再靠自觉。仓库地址:https://github.com/mozhuanzuojing/dsh-liangwengu;社区目录收录页:https://www.skillhub.cn/plugins/mozhuanzuojing/dsh-liangwengu

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye