deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:EastMG/dsh-gacha-calendar
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
DeepSeek Harness 桌面端侧边栏插件:一键查看主流二游的当期卡池与活动起止,支持联网自动刷新,支持手动添加或删除条目。 全程使用 DeepSeek Harness 进行 Vibe Coding 开发。
内置覆盖 11 款游戏:
| 游戏 | 服务器 |
|---|---|
| 原神 | 国服 |
| 崩坏:星穹铁道 | 国服 |
| 绝区零 | 国服 |
| 鸣潮 | 国服 |
| 明日方舟 | 国服 |
| 明日方舟:终末地 | 国服 |
| 蔚蓝档案 | 国服 |
| 蔚蓝档案 | 国际服 |
| 蔚蓝档案 | 日服 |
| 重返未来:1999 | 国服 |
| 异环 | 国服 |
排期数据实时抓取自各游戏官方公告 / Wiki / 第三方站
重返未来:1999 的逐期「征集时间」来自官方游戏内公告接口(
notice.sl916.com)——官网 CMS 公告里没有这项数据,只有维护时间与活动名。该接口的定位参考了开源项目 MAA1999/M9A(它的tools/activity_data长期使用同一接口抓「版本活动一览」),在此致谢。
dsh plugin --profile desktop add dsh-gacha-calendar
或将仓库复制到 profile 的 node_modules 后重启 DSH Desktop。
npm run build # src/ → lib/(确定性拼接,无第三方依赖)
npm run check # 只校验:src/ 拼出来的结果是否与产物一致(不写盘)
本仓库同时发布两个包,源码只有一份(抓取/解析核心):
| npm 包 | 内容 | 谁用 |
|---|---|---|
dsh-gacha-calendar |
DSH 桌面端插件(已内联同一份 core,运行时不依赖 npm 解析) | DSH Desktop |
gacha-calendar-core |
平台中立的抓取核心:createEngine({ transport, storage, now }),零依赖、零宿主依赖 |
其它平台(开发中) |
npm run publish:plugin # 发布 DSH 插件包(dsh-gacha-calendar)
npm run publish:core # 发布中立核心包(gacha-calendar-core,版本号跟随根包)
源站改版时只需改一处:改 src/client/30-parsers.js 等核心文件 → npm run build → 两个包一起发版,
各平台重新构建即可。core 包的入口是 packages/core/core.mjs(由 build.mjs 生成,不要手改)。
src/ 是唯一真源,lib/ 与 packages/core/ 都是构建产物。build.mjs 完成:把 src/client/*.js 按 ORDER 顺序原样拼接成
lib/client.js(DSH 的 __ModuleLoader__ 工厂形态)、把 src/index.js 复制成 lib/index.js、
再把 core 主体包成 packages/core/core.mjs(ESM 导出 createEngine)。
拼接是逐字节确定的,所以 check 能给出"一致/不一致"的确定结论。build.mjs 会强制校验(带 BOM 会让
DSH 启动直接失败,见 .githooks/pre-commit);.githooks/pre-commit 还会在提交
src/**、lib/**、packages/** 或 build.mjs 时自动跑一次 check,防止有人绕过源码直接改产物。npm install 会自动执行 prepare 脚本把 core.hooksPath 指到 .githooks
(旧版只有钩子文件、没有这个脚本,新克隆时守卫是静默不生效的)。若你跳过了 install,
手工执行一次即可:git config core.hooksPath .githooks。src/),package.json 里声明的
tsc && tsdown 从未真正可用。当前构建脚本是从产物回填源码时一并落地的替代方案,
目标是"改一处源码 → 确定性产出产物",也便于把同一份解析/抓取核心复用到浏览器扩展。dsh-gacha-calendar/
├── build.mjs # 构建脚本(确定性拼接 + --check 校验)
├── src/ # 唯一真源
│ ├── index.js # host 端:配置 schema + 同源代理(CORS/Referer 反爬绕行,白名单域名)
│ └── client/ # web 端,按原产物 //#region 顺序切分(拼接顺序见 build.mjs 的 ORDER)
│ ├── 00-head.js # DSH 模块加载壳 + react require
│ ├── 10-config.js # 配置常量 / 刷新频率选项
│ ├── 20-sources.js # SOURCES 来源注册表(11 款游戏 / 25 个来源)
│ ├── 30-parsers.js # 全部解析器(纯函数)
│ ├── 40-fetchers.js # 抓取器 + GACHA_FETCHERS / EVENT_FETCHERS 注册表
│ ├── 50-refresh.js # 刷新编排、失败沿用旧值、提示归类
│ ├── 60-helpers.js # 格式化 / 悬停 / 排序 helpers
│ ├── 70-styles.js # 样式
│ ├── 80-components.js # React 组件(面板 + 设置页)
│ ├── 90-plugin.js # apply(ctx):slots / settingsScope / 悬停 marquee
│ └── 99-tail.js # exports.apply / exports.inject
├── lib/ # 构建产物(npm 包只发布这里)
│ ├── index.js
│ └── client.js
├── package.json # dsh.bundle.patch + dsh.client.inject(DSH 加载规范)
├── cordis.patch.yml # bundle patch
└── README.md
MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。