dsh-gacha-calendar
Manifest validAnime game banner and event schedule lookup: sidebar button with current banners, events, and countdowns for 11 gacha games, auto-refresh, and per-game selectable sources.
dsh-gacha-calendar
DeepSeek Harness 桌面端侧边栏插件:一键查看主流二游的当期卡池与活动起止,支持联网自动刷新,支持手动添加或删除条目。 全程使用 DeepSeek Harness 进行 Vibe Coding 开发。
截图
功能
- 侧边栏底部「📅 二游排期」按钮 → 悬浮面板,按行展示每款游戏的当期卡池、卡池起止、当期活动、活动起止
- 倒计时显示剩余时间,悬停查看卡池/活动全名原始文本
- 联网抓取:各游戏来源独立(官网公告 / Wiki / 第三方站),失败自动降级;来源可在设置页切换或自定义地址
- 刷新提示:顶行按「成功 / 卡池失败 / 活动失败 / 新卡池未公布 / 新活动未公布」归类,过长省略号截断,悬停看逐条原因;"来源报错"与"源站还没收录当期"分开算——前者计入失败,后者不算失败。某一列没拿到新数据时,该列悬停会补一行括号说明;若该列沿用了上次缓存,说明另起一行接在旧内容下面。游戏名悬停可看上次完全成功的时间
- 设置页:自动刷新开关与频率(1–42 天)、展示顺序、条目显隐/删除、新增自定义条目(名称+图标+来源链接,内容由链接解析产出)
内置覆盖 11 款游戏:
| 游戏 | 服务器 | |---|---| | 原神 | 国服 | | 崩坏:星穹铁道 | 国服 | | 绝区零 | 国服 | | 鸣潮 | 国服 | | 明日方舟 | 国服 | | 明日方舟:终末地 | 国服 | | 蔚蓝档案 | 国服 | | 蔚蓝档案 | 国际服 | | 蔚蓝档案 | 日服 | | 重返未来:1999 | 国服 | | 异环 | 国服 |
数据来源
排期数据实时抓取自各游戏官方公告 / Wiki / 第三方站
安装
dsh plugin --profile desktop add dsh-gacha-calendar
或将仓库复制到 profile 的 node_modules 后重启 DSH Desktop。
开发
npm run build # src/ → lib/(确定性拼接,无第三方依赖)
npm run check # 只校验:src/ 拼出来的结果是否与 lib/ 现有产物一致(不写盘)
src/是唯一真源,lib/是构建产物 —— 不要直接改lib/。- 构建由
build.mjs完成:把src/client/*.js按ORDER顺序原样拼接成lib/client.js(DSH 的__ModuleLoader__工厂形态),并把src/index.js复制成lib/index.js。拼接是逐字节确定的,所以check能给出"一致/不一致"的确定结论。 - 源文件约定:LF 换行、UTF-8 无 BOM、Tab 缩进。
build.mjs会强制校验(带 BOM 会让 DSH 启动直接失败,见.githooks/pre-commit);.githooks/pre-commit还会在提交src/**或lib/**时自动跑一次check,防止有人绕过源码直接改产物。 - 历史说明:本仓库此前只提交了打包产物(没有
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
License
MIT
Similar plugins
Turn your DSH token usage into a gacha game: feed a monster with tokens, earn coins, pull from 14 AI waifus (Kimi/GLM/Gemini/Claude and more), enhance artifacts, and build a Balatro-style battle team
★ 0
↓ 30/wk
dsh plugin --profile web add dsh-plugin-token-gachaDSH knowledge-graph memory with a better-sidebar tab and a standalone /graph-memory/app dashboard: extracts TASK/SKILL/EVENT nodes, recalls across sessions, and ships as the npm package dsh-graphmemor
★ 0
↓ 288/wk
dsh plugin --profile web add dsh-graphmemory🎲 Dice Battle — six classic dice games (Liar's Dice, Guess Red Dots, Red/Blue, Big/Small, Odd/Even, Straight) for the DSH web GUI. Single vs AI plus PeerJS WebRTC online play, fully bilingual zh/en,
★ 0
dsh plugin --profile web add dsh-dice-gameLocal long-term schedule panel: top-bar "日程" text button, today/week/history month-calendar views with stats, completion checkmarks with per-day history, schedule↔conversation links with click-to-jump
★ 0
dsh plugin --profile web add dsh-scheduleAchievement and gamification plugin: unlock badges for turns, tool calls, sessions, daily streaks and coding behavior (edits/reads/tests), with a badge wall, unlock toasts and a ctx.achievements SDK.
★ 0
dsh plugin --profile web add dsh-achievementsA draggable mascot invites you to play Xiangqi (Chinese chess) while the AI thinks, with a built-in engine, move-record export, and optional multi-model commentary.
★ 0
↓ 62/wk
dsh plugin --profile web add dsh-xiangqi