Repository navigation
Releases: EastMG/gacha-calendar-extension
Release list
v0.2.30
二游日历 v0.2.30
28 款二次元手游的当期卡池与活动起止一览,点浏览器工具栏图标即可查看。
本次更新:通读排查后的清理
对最近二十来版改动做了一次通读,没有发现功能性 bug,但清出一批"改了 UI 没跟上"的残留。
代码清理
| 项目 | 处理 |
|---|---|
| 注释里的旧名「留白卡」 | 9 处 → 统一为「近期卡片」 |
| 「刷新失败 → 底部横条 + 重试」等过期注释 | 改为「并进常驻底栏」(横条早在 v0.2.18 已删) |
| 底栏那段重复写了两遍的注释 | 合并成一份 |
panel.js 里"popup 每批 3 条"的过期说明 |
更正为"默认 2 条、面板只有 popup 一种宿主" |
死 CSS:.gacha-cal-sched-failbar / -retry / -failtext |
全删(JS 里 0 引用,约 580 字节) |
一个边界加固
panel.js 里若读到 gameColors 不是字符串(历史数据/异常),原来会直接当 {} 处理 ——
等于把用户自定义的颜色全丢掉。现在改成按已解析的对象回写一份,覆盖色不会丢。
本轮核对过的内容(均正常)
- 三界面冒烟(新面板 popup / 设置页 / 旧 popup):控制台与页面错误 0 条
- 失败态:底栏
⚠ + 明细单处显示、无残留横条、警示图标 12px、橙色正常 - 颜色口径:设置页 28 个色块 vs 面板 23 行
--g—— 23/23 一致 - 网格一致性:表头 / 刻度 / 行三处游戏列宽都 = 152px
- core 下发的颜色:全部是标准 6 位 HEX,取色器不会出现"取不到色"的灰色占位
- 权限面:
storage+declarativeNetRequestWithHostAccess;host 49 条、无<all_urls> - DNR 规则:真实加载扩展实测 CDN 返回 200(1,000,714 B)
- 产物:19 个文件;
dist构建前清空,无panel.html残留
仍然存在的已知限制(非 bug)
- popup 每次打开滚动位置回顶部(浏览器 popup 无状态)
- GameKee CDN 靠
api-cdn.gamekee.com的 DNR 规则注入 Referer;若对方换域名会静默失效 - bwiki 连续刷新会触发源站风控(HTTP 567),需等一会儿
下载与安装
下载本 Release 附件里的 gacha-calendar-extension-0.2.30.zip,解压到任意目录
(解压后 manifest.json 在第一层),然后:
Edge:edge://extensions → 打开开发人员模式 → 加载解压缩的扩展 → 选中目录
Chrome:chrome://extensions,步骤相同
数据来源
各游戏官方公告与社区 Wiki(Bwiki / PRTS / FZ Wiki / GameKee / GameTora 等)。
所有请求由浏览器直接发往来源站;不收集任何个人数据、不上传任何内容、不含统计与广告代码。
抓取核心 gacha-calendar-core 0.12.5,
构建时已内联,运行时不加载任何外部脚本。
本次构建的校验结果
| 校验 | 结果 |
|---|---|
| 静态校验 / DNR 规则集 / 来源域名覆盖 | 通过 |
| 域名守卫自测 | 5/5 |
| 设置页行为自测 / 商店文案 / 来源名口径 | 通过 |
| 三界面冒烟(控制台错误) | 0 条 |
| 失败态渲染 | 底栏单处失败提示,无残留横条 |
| zip 自校验 | 19/19 条目 CRC 通过 |
v0.2.29
二游日历 v0.2.29
28 款二次元手游的当期卡池与活动起止一览,点浏览器工具栏图标即可查看。
本次更新:颜色悬停只显示色值
上一版色块的悬停提示是:
出厂色 #3FA9A0(点击修改)
太啰嗦。本版改成只显示颜色本身:
#3FA9A0
- 自定义后同理,显示
#FF3366(不再区分"出厂色/自定义"字样) - 语义信息没丢:
aria-label仍是「出厂色 #3FA9A0」/「自定义颜色 #FF3366」,屏幕阅读器照旧 - 是否自定义仍一眼可辨:自定义过的行右侧有 ↺ 按钮
下载与安装
下载本 Release 附件里的 gacha-calendar-extension-0.2.29.zip,解压到任意目录
(解压后 manifest.json 在第一层),然后:
Edge:edge://extensions → 打开开发人员模式 → 加载解压缩的扩展 → 选中目录
Chrome:chrome://extensions,步骤相同
数据来源
各游戏官方公告与社区 Wiki(Bwiki / PRTS / FZ Wiki / GameKee / GameTora 等)。
所有请求由浏览器直接发往来源站;不收集任何个人数据、不上传任何内容、不含统计与广告代码。
抓取核心 gacha-calendar-core 0.12.5,
构建时已内联,运行时不加载任何外部脚本。
本次构建的校验结果
| 校验 | 结果 |
|---|---|
| 静态校验 / DNR 规则集 / 来源域名覆盖 | 通过 |
| 设置页行为自测 | 通过 |
| 悬停提示实测 | 出厂色态 title = "#3FA9A0";自定义后 title = "#FF3366";aria-label 保留语义 |
| zip 自校验 | 19/19 条目 CRC 通过 |
已知事项
- bwiki 限流:连续频繁刷新会触发源站风控(HTTP 567),间隔一段时间自行恢复。
- 目前只提供未打包版本(需开发人员模式加载);商店版待 0.2.6 审核结束后随版本更新推送。
v0.2.28
二游日历 v0.2.28
28 款二次元手游的当期卡池与活动起止一览,点浏览器工具栏图标即可查看。
本次修复:设置页的色块现在显示「面板里实际在用的颜色」
v0.2.27 加的取色器,默认态画的是一个灰块 + 虚线边框(想表达"未自定义/用出厂色")。
问题很直接:用户根本看不出这块游戏在面板里是什么颜色 —— 等于前后端各说各的。
根因
出厂色不是"按名字哈希算"就完事:
| 层 | 颜色来源 |
|---|---|
| core | SOURCE_COLORS 表 → 写进每条的 entry.color |
| 面板 | mergeGames() 从 sourceTable(engine) 取 src.color |
| 设置页(改前) | 没有这条链路,只能拿名字哈希 → 与面板不一致 |
也就是说,光看 listGames() 拿不到颜色(它只返回 UI 字段),必须走 sourceTable。
修法
- 抽出共享模块
src/game-color.js:gameColor(条目, 覆盖表)统一决定颜色
(用户覆盖 →entry.color→ 名字哈希兜底),面板与设置页都调它;
面板原先自己那份实现删除,改为复用。 - 设置页改用
sourceTable(engine)(entry-meta.js,与面板同一份)拿出厂色; - 色块永远显示真实颜色,去掉虚线/灰块;悬停提示写清是「出厂色 #xxxxxx」还是「自定义颜色」;
只有自定义过的行才出现 ↺ 恢复按钮。
实测对账
同一份设置下,把设置页 28 个色块与面板 23 行的 --g 逐条比对:
可比对 23 条 / 不一致 0 条
原神 #3fa9a0 · 崩坏:星穹铁道 #6c6fe0 · 绝区零 #e0a93b · 崩坏3 #35a9d8 …
改造前是 23/23 全不一致(设置页显示的是名字哈希色)。
下载与安装
下载本 Release 附件里的 gacha-calendar-extension-0.2.28.zip,解压到任意目录
(解压后 manifest.json 在第一层),然后:
Edge:edge://extensions → 打开开发人员模式 → 加载解压缩的扩展 → 选中目录
Chrome:chrome://extensions,步骤相同
数据来源
各游戏官方公告与社区 Wiki(Bwiki / PRTS / FZ Wiki / GameKee / GameTora 等)。
所有请求由浏览器直接发往来源站;不收集任何个人数据、不上传任何内容、不含统计与广告代码。
抓取核心 gacha-calendar-core 0.12.5,
构建时已内联,运行时不加载任何外部脚本。
本次构建的校验结果
| 校验 | 结果 |
|---|---|
| 静态校验 / DNR 规则集 / 来源域名覆盖 | 通过 |
| 设置页行为自测 | 通过 |
颜色口径对账(设置页 vs 面板 --g) |
23/23 一致,0 不一致 |
| 取色器读写 | 设色后 gameColors 落盘为 JSON 字符串;↺ 清回默认 |
| zip 自校验 | 19/19 条目 CRC 通过 |
已知事项
- bwiki 限流:连续频繁刷新会触发源站风控(HTTP 567),间隔一段时间自行恢复。
- 目前只提供未打包版本(需开发人员模式加载);商店版待 0.2.6 审核结束后随版本更新推送。
v0.2.27
二游日历 v0.2.27
28 款二次元手游的当期卡池与活动起止一览,点浏览器工具栏图标即可查看。
本次更新:设置页新增「颜色」取色器
之前 gameColors 这个设置项只在面板侧被读取(每款游戏的强调色),
但设置页没有任何入口能改它 —— 等于写死了。本版补上。
用法
设置页 → 「条目」列表 → 新增的颜色列:
- 点色块 → 打开系统取色器 → 选完立即生效并保存
- 默认态是虚线框(表示"用出厂色")
- 自定义后右侧出现 ↺ 按钮,点一下恢复出厂色
生效范围
强调色会用在面板里该款游戏的所有着色点:
- 游戏表里该行的 14 天迷你进度条填充色
- 顶部「近期卡片」的进度环与背景渐变
- 表格行的强调色变量(
--g/--gf)
实测:把「原神」设为 #ff3366 后,面板该行 --g = #ff3366、迷你条实际渲染色
rgb(255, 51, 102)。
存储
gameColors 存为 JSON 字符串,形如 {"genshin":"#ff3366"};
没有该键 = 用 core 按游戏名哈希算出的出厂色。删除键即恢复默认。
下载与安装
下载本 Release 附件里的 gacha-calendar-extension-0.2.27.zip,解压到任意目录
(解压后 manifest.json 在第一层),然后:
Edge:edge://extensions → 打开开发人员模式 → 加载解压缩的扩展 → 选中目录
Chrome:chrome://extensions,步骤相同
数据来源
各游戏官方公告与社区 Wiki(Bwiki / PRTS / FZ Wiki / GameKee / GameTora 等)。
所有请求由浏览器直接发往来源站;不收集任何个人数据、不上传任何内容、不含统计与广告代码。
抓取核心 gacha-calendar-core 0.12.5,
构建时已内联,运行时不加载任何外部脚本。
本次构建的校验结果
| 校验 | 结果 |
|---|---|
| 静态校验 / DNR 规则集 / 来源域名覆盖 | 通过 |
| 设置页行为自测 | 通过 |
| 取色器实机验证 | 表头 6 列含「颜色」、28 个色块;设色后存储 {"hsr":"#ff3366"}(字符串)、出现 ↺;点 ↺ 后存储 {}、色块回虚线 |
| 面板应用验证 | 行上 --g=#ff3366,迷你条 rgb(255,51,102) |
| zip 自校验 | 19/19 条目 CRC 通过 |
已知事项
- bwiki 限流:连续频繁刷新会触发源站风控(HTTP 567),间隔一段时间自行恢复。
- 目前只提供未打包版本(需开发人员模式加载);商店版待 0.2.6 审核结束后随版本更新推送。
v0.2.26
二游日历 v0.2.26
28 款二次元手游的当期卡池与活动起止一览,点浏览器工具栏图标即可查看。
本次更新:新面板改为默认开启,默认顶部样式为「近期卡片」
改动
| 设置项 | 改前默认 | 改后默认 |
|---|---|---|
| 新日程面板 | 关闭(点工具栏是原小面板) | 开启(点工具栏直接弹日程面板) |
| 顶部区域 | 近期列表 | 近期卡片 |
说明
- 新用户/首次安装:直接就是新面板 + 近期卡片,不需要先去设置页勾选。
- 老用户:之前显式关掉过新面板的人,仍保持关闭(只有明确存了「关闭」才回落原小面板)——
这个判断用newPanel === false而不是!== true,避免把"从没设置过"当成"用户选了关闭"。 - 顶部区域同理:只有显式选过「近期列表」才用列表,否则用「近期卡片」。
- 想回到原小面板:设置页 → 实验特性 → 取消勾选「新日程面板」。
默认形态下能看到的更多
近期卡片比近期列表矮得多(216px vs 约 460px),弹窗首屏因此能多看约 1.5 行游戏表。
下载与安装
下载本 Release 附件里的 gacha-calendar-extension-0.2.26.zip,解压到任意目录
(解压后 manifest.json 在第一层),然后:
Edge:edge://extensions → 打开开发人员模式 → 加载解压缩的扩展 → 选中目录
Chrome:chrome://extensions,步骤相同
数据来源
各游戏官方公告与社区 Wiki(Bwiki / PRTS / FZ Wiki / GameKee / GameTora 等)。
所有请求由浏览器直接发往来源站;不收集任何个人数据、不上传任何内容、不含统计与广告代码。
抓取核心 gacha-calendar-core 0.12.5,
构建时已内联,运行时不加载任何外部脚本。
本次构建的校验结果
| 校验 | 结果 |
|---|---|
| 静态校验 / DNR 规则集 / 来源域名覆盖 | 通过 |
| 设置页行为自测 | 通过 |
| 默认态实机验证(设置页) | newPanel=true、panelTop=slot、下拉可选、显示「近期卡片」 |
| 默认态实机验证(popup) | 顶部区域为 --slot(卡片 460×216),近期列表隐藏 |
| 商店文案 / 来源名口径自测 | 通过 |
| zip 自校验 | 19/19 条目 CRC 通过 |
已知事项
- bwiki 限流:连续频繁刷新会触发源站风控(HTTP 567),间隔一段时间自行恢复。
- 目前只提供未打包版本(需开发人员模式加载);商店版待 0.2.6 审核结束后随版本更新推送。
v0.2.25
二游日历 v0.2.25
28 款二次元手游的当期卡池与活动起止一览,点浏览器工具栏图标即可查看。
本次更新:设置页文案调整
改动
| 位置 | 改前 | 改后 |
|---|---|---|
| 「新日程面板」说明 | 开启后,点工具栏图标将弹出日程面板(520 × 600:整块日程表 + 顶部区域),替代原小面板。内容在面板内滚动,底栏常驻。 | 实验性新版UI,开发中 |
| 顶部区域选项 | 留白卡 | 近期卡片 |
| 「顶部区域」说明 | 新日程面板顶部同一个位置显示哪一块:「近期列表」是按紧迫度排序的在期条目;「留白卡」是当前最紧迫那一条的大卡片。二选一,默认近期列表。 | 新日程面板顶部区域展示样式 |
| 禁用提示 | 需先开启上方「新日程面板」。 | 需开启「新日程面板」(保留原橙色强调) |
另一个逻辑修正
「需开启「新日程面板」」这句只在禁用态显示 —— 勾选「新日程面板」后它自动消失,
否则就成了"已经开启了还在提示要开启"的假提示。
面板整体也统一叫近期卡片(原「留白卡」);README / 开发文档里的同名概念一并更新。
下载与安装
下载本 Release 附件里的 gacha-calendar-extension-0.2.25.zip,解压到任意目录
(解压后 manifest.json 在第一层),然后:
Edge:edge://extensions → 打开开发人员模式 → 加载解压缩的扩展 → 选中目录
Chrome:chrome://extensions,步骤相同
数据来源
各游戏官方公告与社区 Wiki(Bwiki / PRTS / FZ Wiki / GameKee / GameTora 等)。
所有请求由浏览器直接发往来源站;不收集任何个人数据、不上传任何内容、不含统计与广告代码。
抓取核心 gacha-calendar-core 0.12.5,
构建时已内联,运行时不加载任何外部脚本。
本次构建的校验结果
| 校验 | 结果 |
|---|---|
| 静态校验 / DNR 规则集 / 来源域名覆盖 | 通过 |
| 设置页行为自测 | 通过 |
| 文案实机核对 | 「实验性新版UI,开发中」/ 选项「近期列表 · 近期卡片」/ 说明「新日程面板顶部区域展示样式 需开启「新日程面板」」 |
| 提示强调色 | rgb(180, 83, 9)(原橙色,保留) |
| 联动 | 未开启:提示可见 + 下拉禁用;开启:提示自动消失 + 下拉可选 |
| zip 自校验 | 19/19 条目 CRC 通过 |
已知事项
- bwiki 限流:连续频繁刷新会触发源站风控(HTTP 567),间隔一段时间自行恢复。
- 目前只提供未打包版本(需开发人员模式加载);商店版待 0.2.6 审核结束后随版本更新推送。
v0.2.24
二游日历 v0.2.24
28 款二次元手游的当期卡池与活动起止一览,点浏览器工具栏图标即可查看。
本次更新:设置页「实验特性」两处调整
① 两行调换顺序
「新日程面板」移到上面,「顶部区域」移到下面 —— 先开总开关,再选细节,阅读顺序更自然。
| 改前 | 改后 |
|---|---|
| 顶部区域 / 新日程面板 | 新日程面板 / 顶部区域 |
② 「顶部区域」在未启用新面板时不可选
未开启「新日程面板」时,「顶部区域」这个下拉置灰禁用:
disabled+aria-disabled="true",点不动、键盘也选不了- 整行变淡(opacity 0.55),提示文字补一句「需先开启上方「新日程面板」」
- 勾选「新日程面板」后立刻恢复可选;取消勾选又立刻禁用
为什么这样做:未启用新面板时这个选项对新面板毫无作用(工具栏还是原来那个小面板),
但看起来像是"改了就会生效",容易让人误以为设置没起作用。
顺带修正文案
「新日程面板」的说明还写着"直接打开「日程视图」独立页面……无法放进弹出窗口" ——
那是 v0.2.13 之前的行为,现已改为 popup。文案更新为:
开启后,点工具栏图标将弹出日程面板(520 × 600:整块日程表 + 顶部区域),
替代原小面板。内容在面板内滚动,底栏常驻。
下载与安装
下载本 Release 附件里的 gacha-calendar-extension-0.2.24.zip,解压到任意目录
(解压后 manifest.json 在第一层),然后:
Edge:edge://extensions → 打开开发人员模式 → 加载解压缩的扩展 → 选中目录
Chrome:chrome://extensions,步骤相同
数据来源
各游戏官方公告与社区 Wiki(Bwiki / PRTS / FZ Wiki / GameKee / GameTora 等)。
所有请求由浏览器直接发往来源站;不收集任何个人数据、不上传任何内容、不含统计与广告代码。
抓取核心 gacha-calendar-core 0.12.5,
构建时已内联,运行时不加载任何外部脚本。
本次构建的校验结果
| 校验 | 结果 |
|---|---|
| 静态校验 / DNR 规则集 / 来源域名覆盖 | 通过 |
| 设置页行为自测(来源下拉 / 删除 / 恢复 / 自定义地址) | 通过 |
| 设置页联动实机验证 | 未勾选 → disabled=true、aria=true、整行变淡;勾选 → 恢复可选;取消 → 再次禁用 |
| 商店文案 / 来源名口径自测 | 通过 |
| zip 自校验 | 19/19 条目 CRC 通过 |
已知事项
- bwiki 限流:连续频繁刷新会触发源站风控(HTTP 567),间隔一段时间自行恢复。
- 目前只提供未打包版本(需开发人员模式加载);商店版待 0.2.6 审核结束后随版本更新推送。
v0.2.23
二游日历 v0.2.23
28 款二次元手游的当期卡池与活动起止一览,点浏览器工具栏图标即可查看。
本次更新:删掉没有入口的「独立页面」宿主
背景:v0.2.13 把新面板改成工具栏 popup 后,旧的
panel.html(520 × 不定高的独立页面)
就没有任何入口了 —— 工具栏只会弹 popup,action.onClicked也永远不会触发。
它一直躺在代码里,文档还写着"可在独立页面打开",容易误解。本版删掉。
清理内容
| 项目 | 处理 |
|---|---|
src/panel.html |
删除(唯一宿主是 popup-panel.html) |
background.js 的 PANEL_PAGE + action.onClicked → tabs.create |
删除(popup 永不为空,这条分支是死代码) |
build.mjs 的产品清单、verify.mjs 的产物校验 |
去掉 panel.html |
assets/panel-new.png(独立页面截图) |
删除,README 只保留 popup 截图 |
README_Dev 宿主说明 |
改为「唯一宿主 = popup」,并注明旧页面为何删除 |
tools/make-store-assets.mjs |
不再生成 panel-new 夹具 |
顺带修一个构建隐患
build.mjs 之前不清空 dist:删掉 src/panel.html 后,dist/panel.html 仍会残留
(虽然不在打包清单里,但很容易被误认为还在用)。
现在构建前会 rm -rf dist 再写入。产物实测:13 个文件,不含 panel.html。
行为影响
无。工具栏点开仍是 popup(520×600),关闭「新日程面板」时仍是原来的小面板。
本次只删死代码与陈旧文档。
下载与安装
下载本 Release 附件里的 gacha-calendar-extension-0.2.23.zip,解压到任意目录
(解压后 manifest.json 在第一层),然后:
Edge:edge://extensions → 打开开发人员模式 → 加载解压缩的扩展 → 选中目录
Chrome:chrome://extensions,步骤相同
数据来源
各游戏官方公告与社区 Wiki(Bwiki / PRTS / FZ Wiki / GameKee / GameTora 等)。
所有请求由浏览器直接发往来源站;不收集任何个人数据、不上传任何内容、不含统计与广告代码。
抓取核心 gacha-calendar-core 0.12.5,
构建时已内联,运行时不加载任何外部脚本。
本次构建的校验结果
| 校验 | 结果 |
|---|---|
| 静态校验(manifest / 零远程代码 / 权限最小化 / 图标 / 版本一致) | 通过 |
| DNR 规则集(产物 manifest / 权限 / 规则内容) | 通过 |
| 来源域名覆盖 | 48 个 core 域名全部授权 |
| 域名守卫自测 | 5/5 |
| 商店文案 / 设置页 / 来源名口径自测 | 通过 |
| 产物清单 | 13 个文件,无 panel.html |
| zip 自校验 | 19/19 条目 CRC 通过 |
已知事项
- bwiki 限流:连续频繁刷新会触发源站风控(HTTP 567),间隔一段时间自行恢复。
- 目前只提供未打包版本(需开发人员模式加载);商店版待 0.2.6 审核结束后随版本更新推送。
v0.2.22
二游日历 v0.2.22
28 款二次元手游的当期卡池与活动起止一览,点浏览器工具栏图标即可查看。
本次修复:popup 四角圆角 vs 方正的边沿阴影
现象
popup 里卡片是 12px 圆角,但四边却有一圈方方正正的阴影,圆角处还漏出底色。
原因
面板卡片在插件里是「浮起来的卡」:
.gacha-cal-sched {
border: 1px solid …;
border-radius: 12px;
box-shadow: 0 8px 30px rgba(0, 0, 0, .25);
}但在 popup 里它铺满整个窗口(520×600) —— 投影没有地方落,只能沿着窗口四边画在窗口内沿,
就成了"方正的一圈阴影";圆角处则露出 body 底色。
修法
popup 的外框由浏览器窗口本身负责,卡片改为满铺:
| 属性 | 插件/独立页面 | popup(本次) |
|---|---|---|
border-radius |
12px | 0 |
box-shadow |
0 8px 30px rgba(0,0,0,.25) |
none |
border |
1px | none |
| body 底色 | — | 与卡片同色(避免任何缝隙) |
独立页面(
panel.html)不受影响:仍是带圆角与阴影的浮卡(实测 radius 12px / shadow 保留)。
实测
| 页面 | border-radius | box-shadow | 尺寸 |
|---|---|---|---|
| popup | 0px | none | 0,0 → 520×600(无溢出) |
| panel 页 | 12px | 0 8px 30px rgba(0,0,0,.25) |
保持不变 |
下载与安装
下载本 Release 附件里的 gacha-calendar-extension-0.2.22.zip,解压到任意目录
(解压后 manifest.json 在第一层),然后:
Edge:edge://extensions → 打开开发人员模式 → 加载解压缩的扩展 → 选中目录
Chrome:chrome://extensions,步骤相同
数据来源
各游戏官方公告与社区 Wiki(Bwiki / PRTS / FZ Wiki / GameKee / GameTora 等)。
所有请求由浏览器直接发往来源站;不收集任何个人数据、不上传任何内容、不含统计与广告代码。
抓取核心 gacha-calendar-core 0.12.5,
构建时已内联,运行时不加载任何外部脚本。
本次构建的校验结果
| 校验 | 结果 |
|---|---|
| 静态校验(manifest / 零远程代码 / 权限最小化 / 图标 / 版本一致) | 通过 |
| DNR 规则集(产物 manifest / 权限 / 规则内容) | 通过 |
| 来源域名覆盖 | 48 个 core 域名全部授权 |
| 域名守卫自测 | 5/5 |
| 商店文案 / 设置页 / 来源名口径自测 | 通过 |
| popup 外框实测 | radius 0 / shadow none / 520×600 无溢出 |
| zip 自校验 | 21/21 条目 CRC 通过 |
已知事项
- bwiki 限流:连续频繁刷新会触发源站风控(HTTP 567),间隔一段时间自行恢复。
- 目前只提供未打包版本(需开发人员模式加载);商店版待 0.2.6 审核结束后随版本更新推送。
v0.2.21
二游日历 v0.2.21
28 款二次元手游的当期卡池与活动起止一览,点浏览器工具栏图标即可查看。
本次修复:GameKee 报 HTTP 567
接上一版(host-not-allowed 已修)之后,蔚蓝档案·国际服的 GameKee 卡池仍然失败,
但错误变成了 GameKee 内容接口失败(content CDN:http-567)。
原因(两层)
① GameKee 的 CDN 只认特定 Referer
api-cdn.gamekee.com 的 WAF 对 Referer 极其挑,实测矩阵:
| Referer | 结果 |
|---|---|
https://www.gamekee.com/(纯 origin) |
✅ 200 |
带路径(/ba/huodong/15) |
❌ 567 |
扩展自身(chrome-extension://…) |
❌ 567 |
| 不带 Referer | ❌ 567 |
而浏览器里 fetch() 会丢弃禁止头 Referer —— 后台代发也设不上去。
所以请求发出去时是"无 Referer",必然 567。
② build.mjs 把 manifest 字段丢了
正确的解法是用 declarativeNetRequest 的 modifyHeaders 在请求发出前注入 Referer。
但 build.mjs 写 manifest 时用的是字段白名单,没把 declarative_net_request 加进去 ⇒
规则文件虽然进了产物,规则集却没被加载,等于没生效。
修法
- 新增
src/dnr.json:给api-cdn.gamekee.com的请求注入
Referer: https://www.gamekee.com/ - manifest 申请
declarativeNetRequestWithHostAccess(只对已授权域名生效,
不是"拦截全站请求"的declarativeNetRequest)+ 声明规则集 build.mjs的 manifest 白名单补上declarative_net_requestverify.mjs新增产物级校验:产物 manifest 必须真的带上该字段(防白名单再丢)- 权限断言更新为「只允许 storage + 该 DNR 权限」
实测验证(真实加载扩展)
用 headless 浏览器加载构建产物,在扩展的 service worker 里直接请求该 CDN:
{
"version": "0.2.21",
"hasDnrApi": true,
"rulesets": ["gamekee-cdn-referer"],
"cdn": { "status": 200, "len": 1000714 }
}规则集已启用,CDN 返回 200 / 1,000,714 字节(修复前是 567 或直接失败)。
下载与安装
下载本 Release 附件里的 gacha-calendar-extension-0.2.21.zip,解压到任意目录
(解压后 manifest.json 在第一层),然后:
Edge:edge://extensions → 打开开发人员模式 → 加载解压缩的扩展 → 选中目录
Chrome:chrome://extensions,步骤相同
数据来源
各游戏官方公告与社区 Wiki(Bwiki / PRTS / FZ Wiki / GameKee / GameTora 等)。
所有请求由浏览器直接发往来源站;不收集任何个人数据、不上传任何内容、不含统计与广告代码。
抓取核心 gacha-calendar-core 0.12.5,
构建时已内联,运行时不加载任何外部脚本。
本次构建的校验结果
| 校验 | 结果 |
|---|---|
| 静态校验(manifest / 零远程代码 / 权限最小化 / 图标 / 版本一致) | 通过 |
| DNR 规则集(产物 manifest / 权限 / 规则内容) | 3 项通过 |
| 来源域名覆盖 | 48 个 core 域名全部授权 |
| 域名守卫自测 | 5/5 |
| 商店文案 / 设置页 / 来源名口径自测 | 通过 |
| 真机实测(headless + 扩展 SW) | CDN 200,1,000,714 B |
| zip 自校验 | 21/21 条目 CRC 通过 |
已知事项
- 升级后浏览器可能提示新增权限(
declarativeNetRequestWithHostAccess),属正常 —— 它只对已授权域名生效。 - bwiki 限流:连续频繁刷新会触发源站风控(HTTP 567),间隔一段时间自行恢复。
- 目前只提供未打包版本(需开发人员模式加载);商店版待 0.2.6 审核结束后随版本更新推送。

