DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

rshh5 /

dsh-health-reminder

Topic repository only

A flat monochrome health-reminder plugin for DSH Web: scheduled drink/movement reminders, one-click check-in, drinking achievements, daily health score and 14-day trend.

★ 1 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@4030d651

dsh-health-reminder

License: MIT

DSH(DeepSeek Harness)Web 健康提醒插件:在工作时段内按固定间隔提醒喝水,提供「喝了喝了」一键打卡、累计喝水成就、天统计与健康得分、近 14 天趋势曲线。提醒弹窗为绿色卡通风格(水滴吉祥物摇摆、弹跳入场),悬浮球可拖拽摆放。

特性

  • ⏰ 可设置提醒间隔(1–480 分钟,默认 60),提醒词轮换;
  • ✍️ 可设置提醒词:设置页按行编辑文案列表(也支持 localStorage 覆盖);
  • 🕘 仅在工作时段内提醒(默认 9–22 点,可设),非工作时段自动顺延到下一工作时段起点;
  • 🖥️ 页面可见时右下角弹出绿色卡通横幅(水滴吉祥物摇摆、弹跳入场,20 秒自动消失,可点 ✕ 关闭);
  • 🥤 横幅提供「喝了喝了」按钮:点击触发水花迸溅 + 弹跳打卡动画并记录一次喝水,实时更新今日次数与成就;
  • 🏆 成就系统:按累计喝水次数解锁 11 个成就(第一口水 → 海神波塞冬),横幅实时显示当前成就与下一成就进度,解锁瞬间弹出庆祝动画(水滴粒子彩带 + 弹跳成就卡,统计页成就卡片同步光晕脉冲);统计页有「成就」卡片与完整成就区(已解锁/未解锁);
  • 🔔 页面在后台时改为任务栏标题闪烁(💧 该喝水啦 …),回到页面后自动补显横幅——切到别的窗口也不会漏掉;
  • 🔇 可选轻提示音(Web Audio 合成,无需音频文件,可在设置中关闭);
  • 🧩 多标签页去重:同时打开多个 DSH 页面时,同一提醒只弹一次(localStorage 协调);工作时长通过 leader 心跳只由前台可见的标签页累计;
  • 📊 统计面板:今日工作时长 / 喝水(含目标)/ 健康得分(0–100)与等级;近 14 天趋势曲线(柱:喝水 · 线:健康得分 · 虚线:喝水目标);
  • 🏠 悬浮球(角标实时显示今日得分)一键打开「统计 / 设置」面板,支持鼠标拖拽移动位置(自动保存,刷新后保持)。

安装(一次性)

# 在插件源码目录(含 package.json 的 D:\dsh\plugin\dsh-health-reminder)之外执行:
dsh plugin --profile web add "link:D:/dsh/plugin/dsh-health-reminder"

然后在 C:\Users\<你>\.dsh\profiles\web\cordis.patch.yml 追加:

- id: health-reminder
  name: dsh-health-reminder

最后重启 dsh web(dsh web),插件即生效。

使用

  1. 页面左下角出现 💧 悬浮球(角标为今日健康得分),点击打开面板;
  2. 统计页:今日工作时长、喝水(含目标)、健康得分与等级、当前成就卡片;下方为成就区(累计喝水次数解锁全部成就)与近 14 天趋势曲线;底部有「清空历史统计」;
  3. 设置页(精简):提醒间隔、工作时段、喝水目标、提示音开关、提醒词(可在其中写运动提醒),保存后立即生效;可恢复默认。

配置(可选)

默认配置如下;除了在面板中修改,也可以在 DSH 页面按 F12 打开控制台执行(刷新页面生效):

localStorage.setItem("dsh.healthReminder", JSON.stringify({
  intervalMinutes: 60,   // 提醒间隔(分钟,1–480)
  startHour: 9,          // 工作时段开始(小时,24 小时制)
  endHour: 22,           // 工作时段结束(小时,需晚于开始)
  sound: true,           // 是否播放提示音
  waterGoal: 8,          // 每日喝水目标(次,1–20),也是成就参考线
  messages: [            // 提醒词列表(轮换使用,可在其中写运动提醒)
    "💧 该喝水啦!起身接杯温水,小口慢饮~",
    "🥤 水分补充时间到,喝口水再继续",
  ],
}));

恢复默认:localStorage.removeItem("dsh.healthReminder") 后刷新页面,或在设置页点击「恢复默认」。

成就系统

按累计喝水次数永久解锁(跨天累加),解锁时弹提示,横幅与成就区实时展示:

次数 成就 次数 成就
1 💧 第一口水 25 🚿 移动喷泉
3 🫗 小水花 35 🌊 水漫金山
5 🥤 水分子 50 🏊 人形泳池
8 🪣 小水桶 80 🐳 蓝鲸化身
12 🐃 水牛 120 👑 海神波塞冬
18 🐘 大水牛

健康得分算法(0–100)

维度 满分 规则
喝水 60 达目标(waterGoal)即满分,按比例折算
工作时长 40 ≤ 8 小时满分;每超出 2 小时扣 10 分(久坐惩罚),最低 0

等级:≥90 优秀 🌟 · ≥75 良好 👍 · ≥60 及格 🙂 · <60 加油 💪

工作原理

  • 插件包同时包含 host 侧(lib/index.js,一个极简 cordis 插件,作为载体)与 browser 侧(lib/client.js,手写的 client bundle);
  • dsh 启动时 dsh-client-modules 扫描到 package.json 中的 dsh.client 声明,自动把 exports["./client"] 注入 web 页面;
  • 浏览器侧按 cordis 插件形态挂载:setInterval 每 15–30 秒检查一次(随间隔自适应),到点且在工作时段内则触发提醒;页面卸载/插件重载时自动清理;
  • 天统计按日期写入 localStorage:dsh.healthReminder.daily.<YYYY-MM-DD> = {water, reminders, workMinutes};多标签页通过 dsh.healthReminder.leader 心跳选主,只有前台可见的标签页累计工作时长;成就基于全部天记录 water 之和实时计算。

数据存储

所有数据仅保存在浏览器 localStorage,不会上传:

键 内容
dsh.healthReminder 用户配置(间隔 / 时段 / 目标 / 提示音 / 提醒词)
dsh.healthReminder.daily.<日期> 每日统计(喝水 / 提醒 / 工作时长)
dsh.healthReminder.leader 多标签页工作时长心跳
dsh.healthReminder.dockPos 悬浮球位置
dsh.healthReminder.lastFired 提醒去重时间戳

在设置页可「恢复默认」(清配置)与「清空历史统计」(清天记录)。

目录结构

dsh-health-reminder/
├── package.json          # dsh.client 声明 + exports
├── lib/
│   ├── index.js          # host 侧载体插件
│   ├── index.d.ts        # 类型声明
│   └── client.js         # browser 侧全部逻辑(核心)
├── verify-client.cjs     # 行为验证脚本(node verify-client.cjs)
├── LICENSE               # MIT 许可证
└── README.md

测试

node verify-client.cjs
—/ 5

No ratings yet

Manifest verification required

Commit 4030d651dd2f

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout