logo

ScriptCat

  • 首页
  • 社区
  • 脚本列表
  • 浏览器扩展
  1. /
  2. 脚本市场
  3. /
  4. Steam 许可分类器
  • 首页
  • 代码
  • 反馈
  • 评分
  • 版本列表
油猴中文网
脚本猫
GitHub
管理日志
服务协议
隐私政策
免责声明

© 2022-至今 ScriptCat. All rights reserved.

版本历史

查看所有已发布的版本,包括正式版本和预发布版本。您可以安装任何版本或查看其源代码。
共 9 个版本正式 9预发布 0
显示第 1-9 项,共 9 项
2.5.6最新版本
8 天前

加载中…
安装此版本
2.5.5
14 天前

加载中…
安装此版本
2.5.4
14 天前

加载中…
安装此版本
2.5.3
17 天前

加载中…
安装此版本
2.5.2
20 天前

加载中…
安装此版本
2.5.1
20 天前

加载中…
安装此版本
2.5.0
21 天前

加载中…
安装此版本
2.4.12
1 个月前

加载中…
安装此版本
2.4.11
1 个月前

加载中…
安装此版本

Steam 许可分类器 2.5.5 → 2.5.6 更新日志

2.5.6 是一个性能与数据准确性强化版本,重点修复了缓存指纹去重缺陷、超大账号加载性能瓶颈,并优化了 CDKey 激活反馈与绝版数据缓存机制。


🚀 缓存与加载性能

  • 指纹升级(v4):基础指纹(日期+名称+类型)增加出现序号 #N,精准区分同日同名同类型的重复许可,避免重复行被误判为缓存命中而丢失(例如同一游戏多个 Sub)。
  • 增量统计优化:加载过程中新增 ingestRows 和 markRow 单行标记,替代每页全表 markRows + recalc,大型账号(数万许可)加载速度提升显著。
  • 分页回绕检测:全量/增量加载时记录已见基础指纹,当分页器重复投喂时提前终止,防止死循环。
  • IndexedDB 修剪:新增 pruneRowsDB,删除缓存升级后残留的孤儿行,减少存储浪费。
  • 缓存版本升级至 4,旧缓存自动失效重建。

🔁 CDKey 激活改进

  • 批次隔离:引入 batchGen 和 curBatch,清空历史记录后旧响应不再污染新批次统计。
  • 完成提示按批统计:连续多次激活时,完成提示仅显示本批的成功/失败数,不再累加历史总数。

🗂️ 绝版游戏数据缓存

  • 运行时缓存:绝版数据从 @resource 打包版改为后台拉取写入 localStorage,有效期 1 天,兼顾实时性与加载速度。
  • 清除缓存:清除所有缓存时同步删除绝版缓存条目。

🐛 其他修复

  • 活动请求不阻塞完成提示:等待队列中无剩余 Key 且活跃请求为 0 时正确结束批处理。
  • 清除筛选重置分类高亮:点击“清除筛选”后正确切换到“全部”分类并刷新卡片高亮。
  • ESC 关闭弹窗:确认弹窗打开时不再误关底层分析/激活窗口。

📦 升级提示

缓存版本升级后首次打开会重建缓存,加载时间可能稍长,之后恢复极速。如有异常,可点击“清除缓存并刷新”按钮重置。

欢迎到 GreasyFork 反馈区 提交问题。

Steam 许可分类器 2.5.4 → 2.5.5 更新日志

本次更新主要修复了 CDKey 激活完成后的按钮状态残留、缓存加载时的重复数据叠加以及 BFCache 恢复时的数据混乱等关键问题,同时增强了日历热力图的数据变化检测和绝版游戏检查的安全性。


🔧 激活(Redeem)功能修复

  • 修复激活完成后按钮未启用的问题:当激活的 Key 数量为 0 时,redeemDone() 中的 if(rs.recvN >= rs.keyN) 会错误地启用按钮。现在增加 rs.keyN > 0 条件,避免无 Key 时误判完成。
  • 清空历史时彻底重置状态:点击“清空历史”按钮后,除了清空表格和覆盖图,还会重置 rs.keyN 和 rs.recvN 计数器,并清除批量激活的定时器,防止残留数据影响后续激活统计。

🧹 缓存加载与 BFCache 优化

  • BFCache 恢复时移除旧追加行:页面从 BFCache 恢复后,脚本会重新运行 autoLoadAllPages。现在在开始加载前,会先移除之前脚本追加的带 data-slc-appended 标记的行,避免与恢复的 DOM 叠加导致重复数据。
  • 首屏行指纹纳入查重集合:在增量加载过程中,将服务器渲染的首屏行指纹也加入 allFingerprints,确保这些行不会被误判为“新行”而重复插入。
  • 缓存失效重建时保留首屏行:当缓存被判定为失效并触发全量重载时,不再删除所有行,仅移除脚本追加的行(data-slc-appended),保留首屏行,避免数据缺失。
  • 全量加载时指纹去重:在全量加载过程中,相同日期+名称+类型的重复行(如 Steam 分页器回绕)只会存储一份指纹,避免恢复时渲染重复行。

📊 日历热力图 hash 增强

  • 原先的 hash 仅使用首尾行时间戳和总行数,当中间数据变化(如某天新增许可)时可能无法检测到变化。现在增加所有行时间戳的总和 tsSum,使 hash 更敏感,确保数据变更时热力图正确刷新。

🛡️ 绝版游戏检查安全改进

  • appid 强制数字化:外部 JSON 数据中的 appid 现在强制转换为数字,防止在拼接到 onclick 或 URL 时出现 XSS 风险。
  • 事件绑定防重复:在 renderDeliveredContent 中添加 _dlstClickBound 标记,避免因窗口复用导致同一个事件监听器被多次绑定。
  • 刷新时使用最新数据:在事件处理中调用 updateDelistedScroll 时,通过 getDelistedApps() 获取最新绝版数据,确保排序和筛选基于最新列表。

🌍 多语言“未找到许可”检测

  • 将原先硬编码的“未找到许可”检测扩展为多语言数组 NO_LICENSE_TEXTS,包含中英日等常见文案,确保各种语言页面下无效行都能被正确识别并删除。

🔄 其他优化

  • 修复 updateDelistedScroll 中分页按钮事件绑定被覆盖的问题,现在使用 onclick 直接赋值,避免多次绑定导致重复触发。
  • 移除激活窗口中 redeemDone 的冗余判断逻辑,使完成提示更准确。

📌 升级建议

  • 若之前遇到过激活完成后按钮仍灰色、清空历史后计数不归零、或者页面从 BFCache 恢复后数据重复等问题,建议立即更新。
  • 日历热力图在本次更新后会更加准确地反映数据变化,如有不刷新情况可尝试重新打开“许可分析”窗口。

Steam 许可分类器 2.5.3 → 2.5.4 更新日志

本次更新主要修复缓存加载中的关键问题,提升增量加载的稳定性和准确性,避免因 SteamDB 扩展列干扰或分页器回绕导致的死循环、顺序错乱等异常。


🔧 缓存指纹提取优化

  • 跳过 SteamDB 扩展列:extractRowFingerprint() 现在主动过滤 steamdb_license_id_col 类名的列,确保指纹不因第三方扩展的列插入而改变,避免增量对比时将已有许可误判为新行。
  • 指纹计算仅依赖日期、游戏名称、获取方式三列,与扩展列无关,缓存一致性更可靠。

⚡ 增量加载逻辑增强

  • 新增 newFps 数组:收集增量抓取过程中识别的新指纹,并在循环结束后一次性合并到有序列表最前,取代原先的 unshift 方式,防止超大指纹数组展开导致 RangeError。
  • 批内顺序保持:新增指纹按抓取页顺序(新在前、旧在后)正确排列,避免旧版中新增行顺序颠倒的问题。

🛡️ 防死循环与空页处理

  • 全量加载防回绕:新增 pageAllSeen 检测,若某一页的全部指纹均已存在于已加载集合中,立即停止后续抓取,防止分页器循环重复投喂同一页内容导致无限加载。
  • 空页检测:增量/全量加载过程中若遇到 rows.length === 0 的页面,立即终止加载,避免无限等待。
  • finally 块确保 state.isLoading 在任何异常下均被重置为 false,防止界面永久显示“加载中”。

📦 缓存版本升级

  • CACHE_VERSION 自 2 提升至 3,强制旧版本缓存失效,确保新指纹提取逻辑生效,避免历史缓存与新版逻辑不兼容造成数据混乱。

📝 其他优化

  • 调整 autoLoadAllPages 中的日志输出,明确标记空页、回绕等边界情况,便于调试。
  • 微调部分注释,解释增量合并与防回绕机制。

📌 升级建议

  • 更新后首次加载将重新建立缓存(因版本升级),加载时间可能稍长,但后续增量加载将更准确、稳定。
  • 建议若曾遇到“加载记录重复”、“数量对不上”或“一直加载不停”等问题,更新本版本即可解决。

Steam 许可分类器 2.5.2 → 2.5.3 更新日志

本次更新为 Bug 修复补丁,主要修复日期筛选功能在特定时区下不准确的问题,并优化了相同许可面板的滚动体验。


🐛 Bug 修复

🔍 日期筛选时区问题修复

  • 修复了日期范围筛选(“从”/“到”)在部分时区下不准确的问题。
  • 原实现使用 new Date(dateString).getTime() 解析日期输入,该方式会将 YYYY-MM-DD 按 UTC 零点解析,而表中的日期由 parseDate() 按本地时区零点解析,导致两者差值可能偏差 8 小时(或更多),造成部分日期被错误排除。
  • 修复方案:新增 dateInputTs 函数,改用 new Date(year, month - 1, day).getTime() 按本地时区零点解析输入日期,确保与行内日期时间戳完全对齐。

📜 相同许可面板滚动优化

  • 修复了相同许可面板中存在的 双重滚动条 问题。
  • 面板外层容器现在固定高度且 overflow: hidden,仅由内部结果区接管唯一滚动条,避免两个滚动条叠加导致的操作不便。

📦 升级提示

  • 本次更新为稳定性修复,不影响任何功能的使用方式。
  • 日期筛选功能现已准确支持所有时区,建议使用日期筛选的用户更新。
  • 相同许可面板的滚动体验更流畅,列表内容在窗口高度内完整滚动。

🙏 致谢

感谢用户反馈日期筛选时区问题和相同许可面板滚动异常,本次修复使脚本的日期筛选功能更加可靠。

Steam 许可分类器 2.5.1 → 2.5.2 更新日志

本次更新聚焦于 CDKey 激活窗口 的体验优化,新增 表格/卡片双视图 切换,AppID 列 显示,并大幅提升 游戏封面加载 的稳定性和速度。


🖥️ CDKey 激活窗口功能增强

  • 表格/卡片双视图:窗口工具栏新增视图切换按钮,可在传统表格视图与卡片视图间自由切换。
    • 表格视图:保留原有表格布局,新增 AppID 列。
    • 卡片视图:每条激活记录以卡片形式展示,包含结果标识(成功/失败)、Key(可点击复制)、Sub ID、AppID、游戏名称及封面缩略图。
  • AppID 显示:表格新增 AppID 列,激活成功后自动解析并显示对应应用的 AppID,点击可跳转至 Steam 商店页面。
  • 封面加载优化:
    • 采用 多 CDN 资源尝试 机制,依次尝试多个封面地址,大幅提高封面加载成功率。
    • 新增 封面缓存,同一 Sub 的封面不会重复请求,提升后续查看速度。
    • 加载过程中显示 骨架动画,加载失败后显示占位图标,体验更流畅。
  • Key 复制增强:点击表格或卡片中的 Key 列,除切换掩码/完整显示外,自动复制完整 Key 到剪贴板,并弹出提示。

🎨 界面与交互优化

  • 多 Sub 支持:当激活的 Sub 包含多个游戏时,右侧封面区会生成多个封面卡片,分别指向各游戏的商店页面。
  • 卡片视图内操作:卡片内 Key 同样支持点击切换掩码并自动复制,结果状态通过左侧边框颜色(绿色成功/红色失败)直观标识。
  • 操作按钮位置调整:“清空历史”、“复制失败 Key”、“复制 Sub” 按钮移至窗口底部脚注区,与“数据仅供参考”说明并列,布局更合理。
  • 响应式样式:卡片视图网格自适应,卡片内信息紧凑排列,避免内容溢出。

🔧 技术变更

  • 新增 rs.cardView 状态:控制当前激活窗口的视图模式。
  • 新增 syncCard(key):单条卡片同步更新,在激活过程中实时渲染/更新对应卡片。
  • 新增 renderAllCards():批量渲染所有卡片,用于切换视图时的全量刷新。
  • 新增 loadCover(ph, appid, placeholderCls):统一的封面加载函数,支持多 CDN 尝试、缓存、骨架动画与失败降级。
  • 封面请求优化:优先尝试使用 Steam 官方 CDN 的 capsule_231x87.jpg,失败后降级至 capsule_184x69.jpg 和 header.jpg,最后回退至 packagedetails API。
  • 样式扩充:新增 #slc-rcards、.slc-rcard、.slc-rc-key、.rc-ph、.rc-na 等卡片视图样式类。

📦 升级提示

  • 激活窗口入口不变(主界面“激活”按钮或快捷键 R)。
  • 首次打开激活窗口时默认显示 表格视图,点击标题栏的视图切换按钮可切换至卡片视图,状态仅在当前会话有效,关闭窗口后重置。
  • 卡片视图中的封面图片可能因 Steam CDN 响应延迟而短暂显示骨架动画,属正常现象。
  • 建议更新后体验卡片视图,便于快速浏览激活记录的游戏封面。

🙏 致谢

感谢用户对 CDKey 激活窗口封面显示和视图多样性的建议,本次升级使激活体验更加直观、高效。

Steam 许可分类器 2.5.0 → 2.5.1 更新日志

本次更新聚焦于 CDKey 激活窗口 的用户体验升级。激活窗口布局全面重构,新增游戏封面预览、Key 隐藏/显示切换,统计信息移至标题栏,界面更紧凑、信息更直观。


🖥️ CDKey 激活窗口全面改版

  • 布局重构:采用左表格 + 右封面的两栏布局,充分利用窗口空间。
    • 左侧:激活记录表格(序号、Key、结果、Sub、项目名称)
    • 右侧:激活成功后自动显示对应 Sub 的游戏封面卡片
  • 统计信息上移:总计/成功/失败计数移至窗口标题栏右侧,与窗口标题同行,节省垂直空间。
  • Key 隐藏/显示:点击表格中的 Key 列可切换显示完整 Key 或掩码格式(XXXXX-XXXXX-*****),保护隐私的同时便于核对。
  • 封面自动加载:激活成功后自动请求 Sub 详情,获取游戏封面图并显示在右侧区域;若已存在则跳过重复加载。
  • 表格列精简:移除冗余的“详情”列,结果列直接显示成功/失败状态,Sub 和项目名称列保持可点击跳转。

🎨 界面与交互优化

  • 按钮样式统一:激活按钮、粘贴、清空等按钮改用与主界面一致的圆角边框风格,移除旧渐变样式。
  • 输入区布局:文本框与操作按钮采用网格布局,按钮紧凑排列,操作更顺手。
  • 空状态提示:无激活记录时表格显示友好提示“暂无激活记录,输入CDKey后点击「激活Key」开始”;右侧封面区显示“激活游戏后此处显示封面”。
  • 封面卡片悬停:鼠标悬停封面卡片时背景高亮,点击可跳转至对应 Sub 页面。

🌐 国际化更新

新增以下翻译键(已同步至 zh-CN、zh-TW、en):

键名 简体中文 繁体中文 英文
noRedeemRecord 暂无激活记录,输入CDKey后点击「激活Key」开始 暫無激活記錄,輸入CDKey後點擊「激活Key」開始 No activation records yet. Enter CDKeys and click "Redeem Keys"
coverEmpty 激活游戏后此处显示封面 激活遊戲後此處顯示封面 Game covers appear here after activation

🔧 技术变更

  • 新增状态:rs.coverShown 用于跟踪已加载封面的 Sub ID,避免重复请求。
  • 新增函数:addCoverCard(subId, subName) 异步加载 Sub 详情并渲染封面卡片。
  • Key 掩码工具:maskKey(key) 将 Key 末尾段替换为 *****,点击切换掩码状态。
  • 样式新增:#slc-rside、#slc-rgrid、.cv、.rkey 等样式类,支持封面网格布局与 Key 交互。
  • 统计卡片样式精简:#slc-rstats 内边距和字体缩小,适应标题栏空间。

📦 升级提示

  • CDKey 激活窗口入口不变(主界面“激活”按钮或快捷键 R)。
  • 激活过程中统计数字实时更新,右侧封面随成功激活逐张出现。
  • Key 列默认显示掩码,点击可查看完整 Key;再次点击恢复掩码状态。
  • 封面加载依赖 Steam API(packagedetails),请保持网络畅通。

🙏 致谢

感谢用户对 CDKey 激活窗口布局和隐私保护的建议,本次升级使激活体验更加完善。

Steam 许可分类器 2.4.12 → 2.5.0 更新日志

本次更新是许可分类器的重大界面升级。借鉴好友管理器家庭组窗口设计,将所有分析功能整合为统一“许可分析”窗口,新增“月度占比”标签页,优化许可分布交互,并强化缓存稳定性。


🖥️ 统一分析窗口(标签页架构)

  • 将原先“许可分布”、“年份”、“许可频率”、“增加曲线”、“日历热力”、“绝版检查”、“相同许可”七个独立弹窗合并为单一“许可分析”窗口。
  • 顶部标签栏一键切换七个面板,无需反复开关弹窗。
  • 窗口风格与好友管理器家庭组窗口统一,标题栏带主题色渐变。
  • 主界面工具栏多个按钮合并为一个 “许可分析” 按钮,界面更简洁。

📊 新增“月度占比”标签页

  • 月度饼图矩阵展示各年份各月份许可分类构成(商店/零售/礼物/免费)。
  • 每个月份以小饼图呈现,中心显示该月总许可数,扇区颜色对应分类。
  • 页面顶部显示分类图例,底部汇总总许可数、有效月份数、峰值月份单月许可数。
  • 按年份分组滚动浏览,年份标题显示该年总许可数。

📈 许可分布面板升级

  • 将“年份”堆叠柱状图整合至许可分布面板左侧,占比较大,便于查看年度趋势。
  • 右上环形图显示许可分类占比,中心总数,下方紧凑图例。
  • 右下分类柱状图直观对比各分类数量。
  • 年份下钻:点击任意年份柱状条,左侧切换为该年月度堆叠柱状图,并显示“返回”按钮。
  • 独立的“年份”标签页已移除,年度分析统一在许可分布面板内完成。

⚡ 缓存与加载优化

  • STALE_CACHE_THRESHOLD 从 5 提升至 30,避免少量新增误判缓存失效。
  • 新增 STALE_CACHE_RATIO: 0.5:新增行数超过缓存总数 50% 且连续 30 页全为新行时,才判定缓存失效并触发全量重载。
  • 增量加载时每页独立计算缓存命中数,避免跨页累积误判。
  • 修复 IndexedDB 恢复失败:若缓存指纹存在但行数据恢复为 0 条,自动清除失效缓存并执行全量加载。

🎨 样式与界面优化

  • 窗口标题栏与标签页采用毛玻璃效果、柔和阴影,与 Steam 界面风格统一。
  • 各面板内容自适应填充,消除多余滚动。
  • 主界面“排除免费”开关及功能按钮布局微调,按钮文字更清晰。

🔧 技术变更

  • 废弃独立的“年份”与“年份-月份”模态框,新增 mpRefs 管理月度占比面板。
  • 引入 ensureAnalysisShell() 和 activateAnalysisPanel(),统一管理分析窗口。
  • 快捷键 D/Y/F/T/C/S/G 统一触发“许可分析”窗口并切换到对应标签页(Y 已合并至许可分布,不再独立)。
  • showYear() 和 showYearMonthDetail() 移除,功能迁移至 renderDonutTab() 和 drillToMonth()。
  • 延迟加载 CSS 合并至主样式,减少渲染闪烁。

📦 升级提示

  • 分析功能入口统一为“许可分析”按钮,原独立按钮不再保留。
  • 快捷键 D 打开许可分布(含年度趋势),M(新增)直接跳转月度占比。
  • 缓存策略优化后,加载进度条更准确,减少误判导致的重复加载。
  • 建议更新后清空浏览器缓存或重新加载页面,确保新样式正确生效。

🙏 致谢

感谢用户对统一界面的长期建议及缓存误判问题的反馈。本次升级参考 Steam 好友管理器家庭组窗口设计,让许可分析工具更加直观高效。

Steam 许可分类器 2.4.11 → 2.4.12 更新日志

本次更新为数据源迁移,将绝版游戏检查功能的数据源从 Azure Blob Storage 迁移至 GitHub Raw,提升数据源的稳定性和可维护性。


🔄 数据源迁移

  • 绝版游戏数据源 URL 更换:
    • 旧:https://leanisssharedstorage.blob.core.windows.net/copilot/asdm-files/steam_delisted_apps.json
    • 新:https://raw.githubusercontent.com/SmallFork/json/main/steam_delisted_apps.json
  • 新增 @connect raw.githubusercontent.com 网络权限,支持访问 GitHub Raw 资源。
  • 移除 @connect leanisssharedstorage.blob.core.windows.net 权限。

🎯 影响范围

  • 仅影响绝版游戏检查功能的数据加载,其他所有功能(许可分类、统计分析、CDKey 激活、日历热力图等)不受影响。
  • 数据内容保持不变(绝版游戏列表、类型、下架时间、拥有占比、成就数等),仅变更数据托管位置。

🔧 技术变更

项目 2.4.11 2.4.12
资源 URL leanisssharedstorage.blob.core.windows.net raw.githubusercontent.com/SmallFork/json
@connect 权限 leanisssharedstorage.blob.core.windows.net raw.githubusercontent.com

📦 升级提示

  • 本次更新为无感知更新,用户无需任何操作,脚本将自动使用新数据源。
  • 由于数据源变更为 GitHub Raw,首次加载绝版游戏数据可能需要额外网络请求时间,但后续缓存机制(GM_getResourceText)正常工作。
  • 如遇网络环境对 GitHub Raw 域名访问受限,可自行替换资源 URL 或切换网络环境后重试。

🙏 致谢

感谢用户反馈 Azure Blob Storage 偶发性访问不稳定的问题。本次迁移至 GitHub Raw 旨在提升数据源的可用性和可维护性,确保绝版游戏检查功能长期稳定运行。

1.2 初步代码 1.3 架构重构:从"扁平代码"到"配置驱动"、分类关键词:从"广撒网"到"精准简繁英"、移除了大量泛化关键词、Bug 修复 1.4 关键词改为预编译正则匹配、行背景色从 JS 内联样式改为 CSS 类选择器、性能优化、代码精简 1.4.1 划过切换改为点击切换、Bug 修复:表头行误判、筛选逻辑加固、统计逻辑修正 1.4.2 筛选机制重构:从 JS 遍历到 CSS 类切换、性能优化:减少 DOM 操作和查询、日期处理修正、错误处理 1.4.3 表头检测从硬编码索引改为语义判断、日期清理恢复为删除所有空格、Observer 生命周期管理 1.5 完整多语言支持、日志国际化、动态标签、标题模板化 1.5.1 资源清理机制、性能优化:Observer 监听范围缩小、数据结构升级:Object → Map、样式注入幂等、防御性编程、注释完善 1.6 新增翻页功能、筛选容器固定、多语言扩展、事件委托扩展、Observer 回调扩展、资源清理微调 1.6.1 分页信息栏固定宽度、显示全部"模式的页码显示统一 1.7 新增游戏名称搜索功能、多语言扩展、标题区域重构、分页逻辑扩展