Repository navigation
Releases: EastMG/dsh-gacha-calendar
Release list
v0.12.5
fix: v0.12.5 数据源大修(大陆可达优先)+ 三个解析器纠错 + 时区口径按用户定义落地
v0.12.4 ~ v0.12.5
-
数据源(大陆可达优先)
ba-global默认源 Nexon → GameKee(Nexon 在大陆 275 节点里 269 个 403),并把「当期卡池」收敛成单源 2 请求、角色名从 GameKee 内容表取回(旬(泳装)、妃姬(泳装))。uma-global卡池默认换成 GameTora(静态 JSON,itdog 大陆实测电信 90/90、移动 94/94;档期与官方公告逐秒吻合);GachaTracker(数据已陈旧)与官网(曾按 IP 封)降级为备选。pjsk新增「Sekai World 卡池表/活动表(代理)」并设为默认(gh-proxy.com包裹 raw.githubusercontent),原 GitHub Pages 直连降级为备选;电信成功率 74% → 99%+。- 失败原因透出真实 HTTP 状态码(此前一律显示"代理响应异常",403 被吞);刷新超时 12s → 20s;赛马娘 POST 改走注入 transport(非浏览器宿主不再
Failed to parse URL)。
-
解析器纠错
- 异环(nte):公告改用「【更新内容】」分节后,解析器仍按
一、找段落 ⇒ 卡池+活动同时误报"未公布" ✗ → 双锚点 + 翻页深度 3→12 + 40 天回看(修后:明音凛 / 10-15 11:00 ~ 11-05 05:59)。 - 绝区零:频段起点原来拿公告排期上线时间当锚点(3.3 偏差 −2 天)→ 改用正文【版本更新时间】的维护开始时刻;顺带补空档期显示下一期。
- 终末地:卡池抓取 20 → 7 请求、中位耗时 1205ms → 178ms(并发 + 早停;已确认该站无可用 JSON API)。
- 蔚蓝档案·国服:解析改为通用「■ 标签 + 起止时间」块解析 + 三层优先级链(维护公告 → 预告 → 兜底),零额外请求;活动名改为连类别一起显示;补
eventHover列出全部当期活动 + 源级主活动判断(剧情正篇优先,不碰共享规则)。
- 异环(nte):公告改用「【更新内容】」分节后,解析器仍按
-
时区口径(用户定义):悬停 = 源站墙钟原文、面板外显 = 本机时区换算(此前正好相反);新增三道守卫(悬停调用必须带 tz / 定义不许给默认值 / 渲染接线检查)。
-
UI:图标全部换到白名单高清源(mzstatic 20 × 512 + moegirl 8 × 512)+
decoding="async"+ 空闲预热;侧栏入口按钮与其它项对齐;面板顶部一行上下留白配平;README 补新版面板说明/整块面板图/4 枚徽章 +powered_by_dsh。
兼容性
- 无破坏性变更:面板结构、设置键、
gacha-calendar-core接口均未变;新增的altSources只是多一个可选项。 - 时区口径变化属行为修正:非 +08 用户首次会看到外显时间与之前不同(现在按本机时区换算 ✓)。
- 公共加速代理(pjsk)无 SLA,挂掉时该游戏会显示抓取失败(
0.12.2起的失败文案已能显示真实原因)。 - 升级后重启 DSH 才会加载新的
lib/。
验证
build.mjs --checkexit 0;测试套件 1915 通过 / 0 失败,且在 TZ=UTC 与本地 +08 两种环境下都全绿;CI(verify)在main上 success。- 真实网络:
engine.selfCheck()对比 HEAD,改动前后状态变化逐项记录(ba-global / uma-global / nte / endfield / zzq / ba-cn 均按预期变好,其余逐字相同)。 - 大陆可达性一律以 itdog 多节点实测为准(含电信/联通/移动分线路成功率与 p50/p90)。
v0.12.4
perf: v0.12.4 游戏图标统一换到中国大陆可快速访问的高清源(mzstatic 512×512 / moegirl 512)+ decoding=async + 空闲预热
v0.12.3 ~ v0.12.4
-
图标糊:28 个图标里有 13 个是 64×64 的源(萌娘百科
!/fw/64× 9、Google Play=s64× 3、蓝档案 OSSresize,w_64× 1),
而右侧卡片的大图标渲染到 86px(DPR2 需 ~172 设备像素)⇒ 明显发糊。另有一个源已是 404(崩坏 3 的BH3_icon.png)。
⇒ 全部换到 512×512:20 个is1-ssl.mzstatic.com(App Store 图标 512)+ 8 个storage.moegirl.org.cn(!/fw/64→!/fw/512);
10 个境外/不可达/404 的源整条换掉。现在最小 432×432、全部 ≥256×256。 -
图标加载慢:原来每次打开面板要请求 10+ 个不同域名(含 Google Play、日本官网、
dailygn等跨境 CDN)。
⇒ 域名收敛到 2 个,并新增:GameIcon的<img>加decoding="async"(解码不阻塞首屏合成);- 空闲预热
prewarmGameIcons()/scheduleIconPrewarm():requestIdleCallback(兜底setTimeout)里取SOURCES已登记的图标 URL,
用new Image()预热进浏览器缓存,并发 6、总预算 10s、失败不重试、卸载可清理 ⇒ 面板打开时图标已在缓存里。 - 加载失败仍走原有字母兜底方块。
-
国内可达性实测(不用本机代理结论):用 itdog.cn 的 320 个自建检测点(电信 86 / 联通 92 / 移动 96 / 港澳台+海外 46)验证:
is1-ssl.mzstatic.com:320/320 成功,电信中位 0.075–0.121s、联通 0.096–0.141s、移动 0.099–0.175s;storage.moegirl.org.cn:319/320(唯一失败是"中国香港"节点),中国大陆 274/274 全成功,中位 0.084–0.229s。- 同时否掉了两个方案:check-host.net(节点里只有香港、无中国大陆节点,不能当证据);bwiki
Special:FilePath(320/320 可达但中位 0.57–0.67s,
比 mzstatic 慢 3–6 倍,且会 302 到patchwiki.biligame.com、返回的是 wiki 素材而非 App 图标)。
兼容性
- 无破坏性变更:只改图标 URL 与渲染层(
decoding+ 预热),面板/设置/数据链路均未变;gacha-calendar-core接口不变。 - 图标仍是外链,未本地化、未打包、未用插件路由代发(版权与分发约束保持原样)。
- mzstatic 的 hash 会随 App 版本更新;失效时走字母兜底,重跑一次取图即可。
- 升级后重启 DSH 才会加载新的
lib/。
验证
build.mjs --checkexit 0;测试套件 1698 通过 / 0 失败;CI(verify)在main上 success。- 28 个新 URL 逐个实际下载校验:HTTP 200 +
content-type: image/*+ 解析真实宽高(均 ≥256×256);
且逐个肉眼核对为各游戏自己的 App 图标。 - 预热逻辑:从构建产物中抽出实现配
Image桩验证——去重后 8 张唯一 URL 全部发出、峰值并发 6、stop()后不再发请求。
备注:本次
lib/变化为 28 行icon:URL +decoding="async"+ 预热函数与一处ctx.effect挂载。
v0.12.3
fix: v0.12.3 面板顶部一行上下留白配平(head 下内边距 8px → 2px)
v0.12.2 ~ v0.12.3
- 面板顶部那一行(
24 小时内 N 条 · 7 天内 M 条+ 右侧日期胶囊)上下留白不对称:
原来文字上方 12px(卡片padding-top:10px+ head 上内边距2px)、下方只有 8px(head 下内边距 8px),
看上去这一行偏上。现把 head 下内边距改为 2px,并配合「近期」区原有的margin-top:10px
⇒ 上方 12px / 下方 12px 对称。
注释里写明这三个值(卡片上内边距 / head 上下内边距 / 近期区上外边距)互相牵连,改一个要同步另外的。
兼容性
- 纯 CSS 调整,无破坏性变更;新面板仍是可选项(
newPanel默认false);设置键无变化、无迁移。 - 升级后重启 DSH 才会加载新的
lib/。
验证
build.mjs --checkexit 0;测试套件 1698 通过 / 0 失败;CI(GitHub Actionsverify)在main上 success。- 真机:顶部这一行上下留白一致;面板 23 行、右侧留白卡、探头悬停对齐、动画不变。
备注:本次
lib/的变化仅此一处 CSS 声明 + 版本号常量。
v0.12.2
fix: v0.12.2 侧栏入口按钮与其它侧栏项对齐(去掉 2px 外扩);README 补新版面板说明与整块面板图、加 4 枚徽章 + 官方 powered_by_dsh;package.json 声明 engines
v0.12.1 ~ v0.12.2
-
侧栏入口按钮对齐:
.gacha-cal-btn原为width:calc(100% + 4px)+margin:4px -2px(左右各外扩 2px)
⇒ 图标与文字比侧栏其它项左移 2px(用户 2026-10-18 拉直线量出来的)。改为width:100%+margin:4px 0
⇒ 内容起点 = 容器左缘 +padding-left:8px,与「插件 / 插件市场 / 自动化任务」等项对齐;hover 高亮底也随之对齐。 -
README 补新版面板:新增「新版面板(实验)」一节(默认关闭,设置 → 二游日历 → 勾选「实验:新日程面板视图」即可开启,
取消勾选退回原表格面板、无数据迁移),并配一张整块面板实图assets/screenshot-4.png(900×1164)。 -
README 加徽章:标题下 4 枚 —— verify(CI 门禁) / npm 版本 / GitHub Release / License(MIT);
文末按官方规范补powered_by_dsh(shields.io 官方 URL,链接到 deepseek-harness,未改色/logo/文案)。
刻意不加:core 子包版本、stars、downloads、node/platform(信息量低)。 -
package.json增engines: { "node": ">=20" }:代码用了现代语法,此前未声明最低 Node。 -
仓库工程项(不进 npm 包):新增
.github/workflows/verify.yml(push/PR 跑两条门禁)、
夹具(12MB 抓包存档)改为入库(干净克隆可跑全量测试)、test/run.mjs补时间注入、AGENTS.md 门禁描述订正。
兼容性
- 无破坏性变更:
gacha-calendar-core的createEngine({ transport, storage, now })签名与返回结构不变。 - 新面板仍是可选项(
newPanel默认false);设置键无新增/无迁移。 - 升级后重启 DSH 才会加载新的
lib/。
验证
build.mjs --checkexit 0;测试套件 1698 通过 / 0 失败;CI(GitHub Actionsverify)在main上 success。- 干净克隆(17.5MB,含夹具)内跑同一套门禁:
--check0 + 1698 通过 / 0 失败。 - 真机:侧栏按钮图标左缘与其它侧栏项对齐;面板 23 行、右侧留白卡、探头悬停逐像素对齐、动画分层与
backwards行为不变。
备注:侧栏按钮对齐属纯 CSS 调整(
padding/圆角/字号/图标尺寸未动);本次lib/的代码变化仅此一处 + 版本号常量。
v0.12.1
fix: v0.12.1 面板顶部总览改为 24 小时内 N 条 · 7 天内 M 条(去掉"来源失败"),并删掉面板内标题、总览与日期胶囊合成一行
v0.12.0 ~ v0.12.1
面板顶部那行原来显示 今天 0 条到期 · 0 条即将开始 · 40 条在期 —— 三个数里通常两个是 0、第三个几乎不变,扫一眼得不到信息。现改为:
24 小时内 N 条 · 7 天内 M 条:两个时间窗都照常显示(N 为 0 也显示)。N= 未来 24 小时内有开始或结束的外显条目数;M= 与「近期」列表底部「展开全部 N 条」同一个数(同一份数据、同一套 7 天判定,没有第二套条件)。
- 去掉原来的「N 个来源刷新失败」(失败仍由底栏横幅呈现);去掉"两段都为 0 时"的兜底句。
头部布局:
- 删掉面板内的标题「二游日历」(侧栏入口按钮不动),头部只剩日期胶囊;
- 总览上移,与日期胶囊同一行(左总览、右胶囊),不再另起一行;窄宽度下不折行,总览文字自身省略。
- 随之把
nth-child(n+7)改为n+6—— body 少了一个兄弟节点会让表格行的入场延迟从.28s掉到.25s,改后与改动前逐值相同;head .04s → glance .09s的分层照旧。
兼容性
- 纯 UI 调整,无破坏性变更;设置键、数据结构、core 接口均未动。
- 新面板仍是可选项(
newPanel默认false)。 - 升级后重启 DSH 才会加载新的
lib/。
验证
build.mjs --checkexit 0;测试 1698 通过 / 0 失败。- 真机:头部文本
24 小时内 0 条 · 7 天内 21 条,与「近期」按钮的 21 相等;总览与胶囊top差 1.93px(同一行)、胶囊仍贴右端;窄宽到 200px 仍不折行、头部高度恒定。 - 不回归:23 行、右侧留白卡在、探头悬停逐像素对齐、收起态 27 个探头高度全 12px、探头祖先链无
transform/clip-path/filter/contain、动画仍全部backwards、console 0 error。
v0.12.0
feat: v0.12.0 新版 UI(实验 · 默认关闭):启动动画与进度条动效、每游戏主题色、设置页重做、订阅式刷新 + 写入节流、渲染性能优化;修 PLUGIN_VERSION 热重载掉线
v0.11.3 ~ v0.12.0
新版 UI 默认关闭(newPanel=false)。不打开它就是原来的表格面板;设置里「实验:新日程面板视图」打开才生效,取消勾选即退回,无数据迁移。设置页本身的改动新旧面板都生效。
新版 UI
- 启动动画分层浮现;迷你条按格从左到右出现,卡片大环与「再往后两件」小环依次淡入。
- 每游戏主题色取色器(设置行尾 + 自定义条目表单)。覆盖色并进条目的
color,表格行 / 留白卡 / 设置页一致。 - 「近期」展开时右侧卡片不再被拉长;探头收起态盒子 14px → 12px(可见部分不变)。
设置页
- 列宽固定、页宽不再溢出;「展示」只留复选框;方形图标按钮 + 长方形文字按钮;来源与刷新时间选择器自绘箭头、文字左对齐。
- 数据源改订阅宿主 store。此前只在挂载时取一次快照,写入后受控控件被旧值覆盖(表现为「调完变回去」「点了没反应」)。
- 取色器写入 120ms 节流、松手即落盘;连拖 12 次合并为 1 次。
性能
- 面板空闲 8 秒长任务 2875ms → 189ms;12 次拖色 2738ms → 97ms,
JSON.parse2316 → 79。 - 做法是 memo 缓存重算结果 + 按值依赖键(宿主每次写入都会换掉 value 对象图,用引用当依赖会白失效)。
修复
PLUGIN_VERSION原声明在脚本顶层(全局词法作用域),DSH 重载时会再声明一次报SyntaxError,整段不执行、插件掉线。已移进模块工厂,并加构建守卫ORDER[0]必须是00-head.js。- 「展示」快速连点导致 UI 与落盘不一致;动画
fill-mode由both改backwards(both让表格行获得独立合成层、盖住探头);设置页 marquee 与刷新转圈未受prefers-reduced-motion关闭。 - 门禁时间依赖:
ournotes/ P5X / GF2 / FGO 四个抓取器支持注入now(默认nowMs(),生产路径不变),用例注入固定基准;时钟平移 ±90 天仍 1698/0。
兼容性
- 无破坏性变更:core 的
createEngine({ transport, storage, now })签名与返回结构不变。 - 新增设置键
gameColors(默认"{}"),旧配置直接升级,无需迁移。 - 升级后重启 DSH 才会加载新的
lib/。
验证
build.mjs --checkexit 0;测试 1698 通过 / 0 失败;时钟平移 ±90 天仍 1698/0。- 真机巡检 29 项与代码声明逐条对照;热重载后控制台 0 error、
typeof PLUGIN_VERSION为undefined。
遗留:取色器节流的极端竞态未能复现;
test/run.mjs不在门禁内,单独跑仍用真实时钟。
v0.11.3
chore: v0.11.3 赛马娘国际服换可用源;Game8 标注不可靠;来源名批量规范化;README 拆分
v0.11.2 ~ v0.11.3
-
赛马娘国际服卡池恢复:官网
umamusume.com整站按出口 IP/地域封锁 —— 首页与 API 都返回 403,
换 browser/curl/无 UA、加Referer/X-Requested-With/Accept-Language全无效,
而同机访问日服umamusume.jp是 200(与请求头无关)。当天早些时候审计还是「失败 0」,
属新出现。卡池默认源改为 GachaTracker(英文) —— 实测 200,当期为
Pretty Derby Scout/ Vodka (Unfreezable Firewater)、Daiwa Scarlet (Scarlet Nuit Étoilée) /09-28 ~ 10-11;
官方源降级为备选并标注不可靠。活动侧保留官方默认(同样标注不可靠):没有可用替代 —— GachaTracker 的活动数据站点层面就残缺
(全站仅 9 条、停在 2025-08),Game8 返回 202、Prydwen 返回 403 Cloudflare 挑战。 -
Game8 备选标注不可靠:
game8.co现返回 HTTP 202(2KB 机器人挑战页)→
终末地活动备选标签加后缀。全仓排查确认只有这一处用 Game8 做来源;赛马娘因读不到页面
无法为其写解析器,故未添加 Game8 源。 -
来源名批量规范化(7 类):
(英文)(不可靠)→(英文︱不可靠);Bestdori 两条去掉
「(社区数据库)」;官方公告(BHK)→BHK官方公告;Bwiki 卡池信息(台架测试占位)连源删除
(含测试侧快照与断言反转);Bwiki 简中卡池(社区推算,非官方)→Bwiki 简中社区推算卡池;
umapyoi(第三方,无卡池名)→umapyoi(无卡池名);Bwiki 活动(往期归档)→Bwiki 活动往期归档。
带后缀的来源名 20 条 → 13 条。 -
README 拆成两份:用户版
README.md(181 → 93 行:截图 / 功能 / 数据来源 / 安装 / 致谢 /
免责声明 / License)与开发者版README_Dev.md(新建,91 行:构建 / 两个 npm 包 / 插件结构)。
结构树与段数守卫改为读README_Dev.md;开发者文档不进 npm 包(files未改,
实测打包仍是 8 个文件)。
兼容性
- 无破坏性变更:DSH 侧插件接口不变,
gacha-calendar-core的createEngine({ transport, storage, now })
签名与返回结构不变。 - 升级后重启 DSH 才会加载新的
lib/。
验证
build.mjs --check ✓ / 测试套件 1698 通过 / 0 失败(基线 1699 → 1698:删掉一个备选源后,
all.mjs 里「备选抓取器已登记」那条循环少跑一次,不是丢用例)/ 插件门禁 22 套全绿 /
真实网络复核 成功 60 · null 11 · 抓取失败 3 · 悬停违规 0。
余下 3 条失败均为已知且已在来源名上标注:
uma-global·主源活动(无可用替代)、
uma-global·备选[official](官网被墙)、endfield·备选[game8](Game8 挑战页)。
v0.11.2
chore: v0.11.2 清单里的 peer 范围合并为单段(插件商店不再显示又长又重复的那串)
v0.11.1 ~ v0.11.2
-
peerDependencies里 8 条@deepseek-ai/dsh*的双段 OR 合并为单段:- "@deepseek-ai/dsh": ">=0.1.1-rc.2 <0.2.0-0 || >=0.2.0-rc.1 <0.3.0-0" ← 范围 47 字符 + "@deepseek-ai/dsh": ">=0.1.1-rc.2 <0.3.0" ← 范围 19 字符起因:插件商店显示的 peer 版本太长。同机对比 —— DSH 自带插件只写一条
cordis: ~4.0.4,
第三方dsh-image-gen只写cordis/schemastery/react,dsh-mcp-manager-plus只写一条
@deepseek-ai/dsh;我们 9 条里 8 条都是双段 OR(为同时支持 0.1.x 与 0.2.x 两条运行时线)。用 DSH 自己的判定函数实测(
dsh-app-boot的evaluatePluginCompatibility):运行时版本 旧(双段 OR) 新(单段) 0.1.1-rc.1 不兼容 不兼容 0.1.1-rc.2 / 0.1.5 OK OK 0.2.0-alpha.1 不兼容 OK ← 唯一差异 0.2.0-rc.1 / 0.2.0-rc.2 / 0.2.9 OK OK 0.3.0 / 0.3.1 不兼容 不兼容 上下界都保住,只把
0.2.0-alpha.*这类预发布由「拒绝」放宽为「接受」。 -
没有删减 peer:仓库自己的「清单诚实性守卫」要求「插件
inject的每个能力都必须在
peerDependencies里声明」(DSH 0.1.7 删具名导出那次事故后加的),删掉会触发它的「漏报」断言。
所以本版只缩短、不删减 —— 保留对dsh-settings/dsh-host-webserver/dsh-client-*
的版本校验能力。
兼容性
- 无破坏性变更,不涉及任何运行时代码(只改
package.json的 peer 范围与 README 说明)。 - 升级后重启 DSH 才会加载新的
lib/。
验证
build.mjs --check ✓ / 测试套件 1699 通过 / 0 失败 / 插件门禁 22 套全绿
(含 _batch4 的 peer 守卫与 _readme_verify 的 README 一致性)/
真实网络复核 成功 63 · null 11 · 抓取失败 0 · 悬停违规 0。
v0.11.1
fix: v0.11.1 终末地默认活动源(FZ Wiki)从 null 恢复为真实数据
v0.11.0 ~ v0.11.1
-
终末地活动列恢复显示:fz.wiki 把「活动」页的数据从页面 HTML/RSC 搬到了 REST API ——
页面仍返回 200(10 万字符),但解析器依赖的标记endfieldCardActivityIndex/wikiCardItem
在该页已是 0 处,页面只剩导航外壳。结果:默认配置下终末地活动列恒显示「未公布」,
而且这种 null 被定义为「未公布」、不算抓取失败 → 门禁与真实网络复核都不会报警(静默失效)。数据现在在:
https://api.fz.wiki/api/v1/articles/by-title?ns=0&title=活动&withRevision=1
→revision.contentJson.content[]→endfieldCardActivityIndex→wikiCardItem.attrs.data
(name/tags/timeRanges)—— 结构与原 RSC payload 完全一致。改法两处:
extractFzContentJson增加「输入本来就是 JSON」的分支(旧 RSC 格式保留,
页面若改回去或旧夹具照样能用);fetchFzWikiEndfield改请求 API,
条目里的eventUrl仍是给人看的页面地址(设置页显示它),标题由该地址路径推出。实测:
endfield·主源活动 → 雾隐冬梦深林中 09-02 07:00 ~ 10-15 06:00,
悬停列出 8 行并行活动(集成援助·泡泡出击 09-16 12:00 ~ 10-07 04:00…)。 -
顺手改准一句过期注释:外显不是「结束最早的那条」,而是
pickEventPrimary(叙事/挑战类优先)。
兼容性
- 无破坏性变更:DSH 侧插件接口不变,
gacha-calendar-core的createEngine({ transport, storage, now })
签名与返回结构不变。 - 升级后重启 DSH 才会加载新的
lib/。
验证
build.mjs --check ✓ / 测试套件 1699 通过 / 0 失败 / 插件门禁 22 套全绿 /
真实网络复核 成功 63 · null 11 · 抓取失败 0 · 悬停违规 0。
已知而非本次修复:终末地的卡池备选
GachaTracker目前返回 null —— 查证为站点数据不覆盖当前
(该页最新一条是Winter Hunt2026-09-01 ~ 09-30,且像国际服口径),不是解析器问题,故不改。
v0.11.0
chore: v0.11.0 源码按厂商重组(28 款一视同仁);默认展示顺序按厂商;p5x 出厂可见
v0.10.9 ~ v0.11.0
-
源码按厂商/系列重组(本版主线):
src/client/现在 32 个文件 ——
20-source-core.js(来源容器SOURCES+registerSource)、21-fetcher-tables.js(两张抓取器表)、
22-fetcher-core.js(抓取公共设施)、25-parser-shared.js(共用判定/悬停/解码/时间),
以及30-game-*.js×14:每款/每组游戏一个自包含文件(条目 + 解析器 + 抓取器 + 登记都在里面)。
20-sources.js/30-parsers.js/40-fetchers.js与 10 个42-parsers-*.js全部拆掉。
符号名一个都没改 —— 导出表、注册表与全部用例的引用都不受影响;文件层面不再有「内置 11 款 /
另外 17 款」的分层。 -
默认展示顺序完全按厂商:
原神 → 星穹铁道 → 绝区零 → 崩坏3 → 鸣潮 → 明日方舟 → 终末地 → 蔚蓝档案(国服/国际服/日服) → BanG Dream(手游/OurNotes 日服/国际服) → 物华弥新 → 战双 → 卡厄斯 → 雪松 → 嘟嘟脸 → 闪耀优俊少女 → 赛马娘(日服/国际服) → 女神异闻录 → 异环 → 少女前线2 → FGO → 初音未来 → 星塔旅人 → 重返未来1999。 -
p5x(女神异闻录:夜幕魅影)改为出厂可见:此前需在设置页手动勾选才会抓取。
出厂默认隐藏的条目现在只剩 5 条:卡厄斯梦境 / OurNotes 日服 / OurNotes 国际服 / 嘟嘟脸恶作剧 / 崩坏3。 -
28 条来源统一显式声明
defaultHidden,字段位置一致(紧跟id),便于核对。 -
刷新语义未变:缓存沿用、失败计数、悬停排版、解析器自检口径均与 0.10.9 一致 ——
真实网络复核结果为 成功 63 / null 11 / 抓取失败 0 / 悬停违规 0,与上一版逐项相同。
兼容性
- 无破坏性变更:DSH 侧仍是同一个插件接口,
gacha-calendar-core的createEngine({ transport, storage, now })
签名与返回结构未变(内部文件重组,覆盖范围仍是 28 款)。 - 升级后重启 DSH 才会加载新的
lib/。
验证
build.mjs --check ✓ / 测试套件 1699 通过 / 0 失败 / 插件门禁 22 套全绿 /
真实网络复核 成功 63 · null 11 · 失败 0 · 悬停违规 0。