Pular para o conteúdo principal
S

dsh-offwork

snowbeatrain/dsh-offwork

A DeepSeek Harness page companion with animated characters, a clock-out countdown, estimated earnings, hydration reminders, quiet time and salary masking, with separate cards opened from the context menu.

Instalar

dsh plugin --profile web add github:snowbeatrain/dsh-offwork

README

下班计时器 · Offwork Clock

1.1.2:全天自然时间喝水提醒、独立喝水/抽烟倒计时、紧凑小卡片与简洁详情页;新增动作试播和按需视频加载。查看 更新记录、操作说明 和 发布验证。

在 DeepSeek Harness 中查看下班倒计时、记录喝水,通过独立卡片查看收入,也可以使用手动开始的抽烟倒计时。角色模式把三项计时汇总在脚下;非宠物模式默认使用224×94像素的小卡片。

喝水按自然时间运行,午休、下班和休息日均可提醒,不依赖薪资配置或会话。喝水、提醒设置、计时、收入、外观与薪资页使用统一的简洁布局,主要操作直接可见,低频选项按需展开。

升级提示:请刷新所有已打开的Harness标签页。 喝水数据会迁移并保留开关、间隔、次数和暂停状态;旧页面不能覆盖新格式记录。详见 喝水规则与迁移。

外观页可试播已有动作,不记录喝水、不更换已保存角色;视频按实际播放读取并复用缓存。正常计时到点会自动提示,刷新时已逾期先显示提示入口;收起不打卡、不延期。

提供 长裙动态 和 短裙动态:长裙支持点击挥手、打卡喝茶,短裙增加眨眼摆尾待机循环;支持动作开关、后台暂停和静态回退。在“右键 → 外观 → 角色形象”中预览并应用。

dsh-offwork 提供可拖动的页面陪伴角色与计时卡片,支持月薪 / 日薪、跨午夜班次、无薪休息扣除和工资隐藏。角色可关闭,使用非宠物模式的今日概览。

GitHub 仓库 · npm 包 · 问题反馈 · 迭代路线图

功能

  • 页面陪伴角色:两套动态视频形象、长裙/礼裙两款静态立绘及原创水滴,支持预览、大小调整、拖动和动作反馈。
  • 喝水提醒:默认关闭,可设置5–240自然分钟间隔;午休、下班和休息日均可提醒,支持随时打卡、稍后10分钟、手动暂停和30/60分钟免打扰。
  • 独立功能卡片:分别提供下班倒计时、喝水、喝水倒计时、抽烟倒计时、收入、外观与作息薪资;自适应窗口并保护未保存修改。
  • 抽烟倒计时:默认60分钟,手动开始,可暂停/继续、重新计时或停止;刷新和多标签页同步进度。
  • 动作试播与按需加载:在外观页查看已有动作,只有应用才保存形象,试播不增加喝水记录。
  • 下班倒计时:根据作息显示待开工、工作中、休息中、班次完成和休息日状态。
  • 实时工资:显示本班已赚金额、计薪进度、日薪和有效时薪,支持月薪或日薪输入。
  • 灵活作息:自定义上下班时间、工作日、时区,以及一段可选的无薪休息;支持跨午夜夜班。
  • 悬浮小条:拖动调整位置,按需展开详情;支持方向键微调和 Home 复位。
  • 工资隐藏:默认遮住金额,支持一键显示 / 隐藏;设置中的薪资输入和折算预览也会同步遮蔽。
  • 外观与记忆:背景透明度可在 30%–100% 之间调整,位置、展开状态和显示偏好可在刷新后恢复。
  • 中文 / English:提供中英文界面,并响应系统的减少动态效果设置。
  • 代理工具:可通过 Harness 命令或 offwork_clock 工具读取和更新配置。

效果预览

以下截图来自隔离的 Harness 测试配置,使用示例数据。

紧凑小卡片与简洁详情页

非宠物模式的紧凑计时卡片 喝水倒计时与打卡 全天自然时间提醒设置

角色与外观选择

页面角色及三项计时概览 角色选择、预览与外观设置

角色图片随客户端加载,视频素材随插件安装并从Harness Host按需读取。短裙支持眨眼摆尾循环待机,两套动态形象均支持挥手和喝茶。本版客户端脚本约0.9MB、安装包约8MiB,相比1.1.1约15MiB的安装包减少了重复嵌入资源;五段视频原素材合计仍约7MiB。长裙独立待机视频、Live2D和外部模型包导入尚未提供。

运行环境

  • DeepSeek Harness:>=0.2.1-rc.5 <0.3.0-0。
  • 使用 Harness 的 Web 界面,安装后刷新页面以加载客户端。

悬浮窗显示在 Harness 页面内,切换到其他应用后不会作为桌面置顶窗口显示。

安装

从 npm 安装

在 Harness 中使用 plugin_manager 的 install_bundle 操作,将 target 填为 dsh-offwork:

plugin_manager → install_bundle → target: dsh-offwork

这是 Harness 插件,请通过 Harness 插件管理器安装,以加载 Host 配置和 Web 悬浮窗。使用命令行管理 Web 配置时,也可以运行:

dsh plugin --profile web add dsh-offwork

web 是配置名称,使用其他配置时请替换为实际名称。

从 GitHub 安装

plugin_manager → install_bundle → target: github:SnowBeatRain/dsh-offwork

从本地源码安装

git clone https://github.com/SnowBeatRain/dsh-offwork.git
cd dsh-offwork
npm run build

随后在 Harness 中将 target 填为克隆目录的绝对路径:

plugin_manager → install_bundle → target: /绝对路径/dsh-offwork

首次使用

  1. 安装或更新后刷新所有Harness标签页。
  2. 如需下班计时和收入,打开或创建会话,从角色右键菜单进入“作息与薪资”;非宠物模式可展开小卡片进入设置。
  3. 填写月薪或日薪、上下班时间、工作日、时区及可选无薪休息,保存后开始计薪。初始示例数值不会作为已配置收入展示。
  4. 喝水提醒可独立使用:进入喝水页,点击右上角提醒设置,开启并保存间隔;无需先配置薪资。
  5. 抽烟计时需手动开始;外观页可试播已有动作,点击“应用”才保存角色选择。

如需指定配置读写结果记入哪个会话,可在设置的「高级设置 → 操作记录会话」中选择。这个选择不影响工资计算。

常用操作

操作使用方式
移动角色按住角色拖动;方向键微调,Home 复位
与角色互动左键点击,或聚焦角色后按 Enter / Space
打开喝水卡片右键菜单 → 喝水
查看下班倒计时卡片右键菜单 → 下班倒计时;脚下徽标仅显示计时
打开其他卡片右键角色,或使用 Shift+F10 / 菜单键
修改形象、大小与透明度右键 → 外观,预览后点击“应用外观”
修改薪资和作息右键 → 作息与薪资
设置喝水间隔喝水页右上角 → 提醒设置
使用非宠物概览在外观中关闭“宠物模式”并应用
显示 / 隐藏工资收入卡片中的眼睛按钮

喝水提醒默认关闭;开启后按自然时间计时,不受工作、午休或休息日限制。修改作息或薪资不会重排提醒;暂停需要手动恢复,免打扰到期自动结束。需要保持Harness页面打开才能显示页面内提醒;关闭后重新打开会保留截止时间和一个待处理事件,不补发多条。

同一浏览器、同一站点下的多个标签页会同步显示偏好。薪资与作息配置由 Harness Host 共享,其他页面保存后可手动读取最新配置。

计薪规则

所有金额以人民币(CNY)显示,表示按配置估算的税前收入。

项目计算方式
月薪模式的日薪月薪 ÷ 月计薪天数
日薪模式的日薪直接使用填写的日薪
有效时薪日薪 ÷ 扣除无薪休息后的班次时长
本班已赚日薪 × 已完成的有效计薪比例

例如,月薪为 10,000 元、月计薪天数为 21.75 天,上班时间为 09:00–18:00,并扣除 12:00–13:00 的无薪休息时,日薪约为 459.77 元,有效时薪约为 57.47 元。

  • 金额按分截断,不四舍五入;计薪比例使用十进制有理数计算,减少浮点误差导致的丢分。
  • 无薪休息期间收入暂停增长,下班倒计时继续。关闭「扣除无薪休息」即可按整段班次计薪。
  • 下班时间早于上班时间时视为次日下班;工作日按班次开始日判断。例如周五 22:00–周六 06:00 的班次归属周五。
  • 夜班完成后,上一班金额会保留到新一班开始。
  • 时间使用配置中的时区,不依赖操作系统时区。夏令时按实际经过的秒数计算;重复的本地时间取较早一次,不存在的本地时间向后移动。

当前支持每班一段可选的无薪休息,不包含税费、加班费、法定节假日调班、多段休息或复杂轮班规则。显示金额用于个人参考。

数据与隐私

薪资和作息保存在运行 Harness Host 的机器上的插件目录 data.json 中。如果 Harness 部署在服务器上,配置也保存在该服务器上。保存时采用原子替换,文件权限为 0600;data.json 已被 Git 忽略,也不会包含在 npm 发布包中。

悬浮窗位置、角色、展开状态、工资隐藏和透明度保存在浏览器本地存储。1.1.2继续使用v7外观偏好并迁移保留旧版选择。浏览器禁止存储时,这些偏好仅在本次页面访问期间有效。

抽烟倒计时另存在浏览器 IndexedDB,按自然时间计算,与喝水和Host薪资独立。多个标签页同步,存储失败时可重试恢复;清除站点数据会清除此计时。

喝水设置与饮水计数保存在浏览器 IndexedDB,不写入 Host 薪资文件或 Harness 会话。计数不再随班次或日期自动清零;同源标签页共享提醒并去重。存储不可用时停止自动提醒,界面提供重试入口。schema3迁移在事务中完成并保留原记录快照,旧标签页需刷新。清除浏览器站点数据会清除这些本地记录。

配置读取和保存通过 Harness 命令执行,返回的配置内容会进入所选会话记录;代理工具的调用及结果也会进入会话记录。 工资隐藏只控制界面显示,不会清除配置文件或会话中已有的薪资信息。

命令与代理工具

在 Harness 会话中可使用以下命令:

/offwork-clock get
/offwork-clock set {"monthlySalary":10000}

代理可调用 offwork_clock 工具。读取配置的参数为:

{ "action": "get" }

更新配置时仅需传入要修改的字段,其他字段会保留:

{
  "action": "set",
  "settings": {
    "payMode": "monthly",
    "monthlySalary": 10000,
    "workdaysPerMonth": 21.75,
    "start": "09:00",
    "end": "18:00",
    "breakStart": "12:00",
    "breakEnd": "13:00",
    "weekdays": [1, 2, 3, 4, 5],
    "timezone": "Asia/Shanghai"
  }
}

weekdays 使用 0–6 表示周日到周六;日薪模式使用 "payMode": "daily" 和 dailySalary。将 breakStart 与 breakEnd 设为相同时间可关闭休息扣除。

成功返回 { "ok": true, "settings": { ... }, "configured": true };尚未保存配置时,读取结果中的 configured 为 false。失败返回 { "ok": false, "error": "..." }。界面、命令与工具共用配置校验和持久化逻辑。

开发

建议使用 Node.js 22,与仓库 CI 保持一致。运行时无第三方依赖;开发依赖用于格式检查和 IndexedDB 事务回归测试,通过锁文件固定版本。

git clone https://github.com/SnowBeatRain/dsh-offwork.git
cd dsh-offwork
npm ci --ignore-scripts
npm run format
npm run check

npm run format 统一源码格式并重新生成客户端;npm run check 检查格式、生成物一致性、自动化测试、JavaScript 语法及 npm 打包内容。单独构建使用 npm run build,单独运行测试使用 npm test。代码约定和人工验证步骤见 贡献指南。

文件用途
client.source.jsWeb 界面源码
clock.js班次、时区和工资计算
ui-utils.js界面状态与显示辅助函数
client.js构建生成的客户端文件,请通过构建更新
index.jsHost 命令、代理工具、配置校验与保存
tests/计算、持久化与界面辅助逻辑测试

npm run build 将业务和界面模块、角色图片内联到 client.js。npm test 先检查生成物是否与源码一致,再运行测试,覆盖计薪、时区、持久化、喝水状态机、跨标签事务、导航和布局。1.1.2的检查及隔离浏览器验证见 发布验证记录。

发布到 npm(维护者)

包名为 dsh-offwork,版本以 package.json 为准。发布前确认 npm 账号拥有该包的发布权限,并完成检查:

npm ci --ignore-scripts
npm run build
npm run check

检查打包清单,确认包含 README、客户端、Host 入口和语言文件,且不包含 data.json、.env 或其他本地配置。

本地发布

npm login
npm publish --access public

npm publish 会通过 prepublishOnly 自动执行构建和完整检查。npm 不允许覆盖已发布的同名版本,后续发布需先更新版本,例如 npm version patch 或 npm version minor。

GitHub Actions 发布

仓库已配置 Test and publish 工作流:推送 main 或向 main 提交 PR 时运行检查;推送 v* 标签时,检查通过后发布到 npm。

  1. 在 GitHub 仓库的 Settings → Secrets and variables → Actions 中配置 NPM_TOKEN,使用具备该包发布权限并满足 npm 发布认证要求的 npm 令牌。GitHub 登录使用的 ghp_… 令牌不能用于 npm 发布。
  2. 确认代码已提交,且标签版本与 package.json 中的版本完全一致。
  3. 通过 npm version patch、npm version minor 或 npm version major 创建版本提交和标签,再推送到 GitHub。例如发布修订版本:
npm version patch
git push origin main --follow-tags

在 Actions 页面 确认发布结果。本地发布和 Actions 发布任选一种,避免重复发布同一版本。

许可与反馈

代码采用 MIT License。用户提供的鲸系少女图片随插件分发,单独使用图片请参阅 素材说明。欢迎通过 GitHub Issues 反馈问题或建议;反馈时请说明 Harness 版本、浏览器和复现步骤,薪资信息可使用示例数值代替。

Plugins relacionados