本次更新聚焦于稳定性与交互细节。修复了 VAC 状态长期卡在“检查中”的问题,强化了标题栏自定义按钮在页面切换时的自愈能力;为家庭组热力图新增数字显示开关,并优化了进度条的视觉反馈,整体交互更流畅、信息更直观。
loadVACFromCache 检测到缓存不全时,会自动触发增量补查(最多尝试 3 次),补查完成后状态栏正常更新。state.vac.checking 和 state.vac.autoTries 状态,防止并发检查和无限重试。MutationObserver 监听到 document.body,当检测到标题栏或好友块重建时,自动重新执行美化逻辑(beautifyTitleBar)和好友块增强(applyPageEnhancements),确保按钮永久存在。.sfd-title-btn-group,用于自愈检测,避免重复注入。box-shadow),提升科技感与可见度。box-shadow),视觉层次更丰富。heatmapNumToggleHtml():生成热力图数字开关 HTMLattachHeatmapNumToggle(card):绑定开关交互逻辑state.vac.checking:VAC 检查进行中标志state.vac.autoTries:自动补查尝试计数loadVACFromCache:增加自动补查触发逻辑beautifyTitleBar:增加自愈检测与按钮组标记init:将 MutationObserver 挂载到 document.body,并增加标题栏重建检测renderFamily24hHeatmap 与 renderFamilyHeatmapGrid:集成数字开关.sfd-bottom-progress、.sfd-family-progress-bar 等添加流光与发光样式感谢用户反馈的 VAC 状态卡死和标题栏按钮丢失问题,推动我们进一步完善脚本的自愈能力与交互细节。
1.4.5 聚焦于稳定性加固、数据准确性与错误恢复能力,修复了多个边界条件导致的假死、误报和数据污染问题,同时对缓存与并发逻辑做了系统性优化。
IndexedDB 启动阻塞处理
修复了 IndexedDB 被旧标签页长事务阻塞时脚本永久挂起的问题,现在会正确 reject 并允许启动链继续,避免脚本假死。
VAC 查询失败重试与失败计数
每批 VAC 查询增加 2 次重试,对 429 限流自动等待后重试。新增失败统计并在状态栏显示 ⚠ {n}人查询失败,让用户明确知道哪些好友未能完成检查。
网络请求状态码严格校验gmFetch 与 requestSteamAPI 仅将 HTTP 2xx 视为成功,拒绝将限流页(429)、错误页(5xx)当作有效数据解析或缓存。
预购游戏检测防误判
商店页面请求若非 2xx 不写入缓存,避免因临时限流将已拥有游戏错误标记为“未拥有”并固化 24 小时。
许可页解析防误判
登录页、非 2xx 或解析出 0 条许可时不固化 licenseMap,本会话内交叉验证将重试。
家庭组游玩动态加载失败态
若所有成员游玩数据请求均失败,正确显示错误态和“刷新动态”重试按钮,不再陷入无限加载循环。
withCache 并发去重
同一缓存键的并发调用共享同一个 Promise,避免短时间内重复发起全量游戏库请求,降低 API 压力。
过期缓存自动清理parseStoredTTL 检测到缓存过期后立即从内存镜像和 IndexedDB 中删除,防止积压过期数据。
共同好友缓存版本升级(v3)
自动清理旧版中误存的 -1(私密/限流)数据,下次查询重新获取真实共同好友数量。
并发池动态限速
遇到 429 时并发数动态降低,等待在途任务完成后再取新任务,避免瞬时大量重试加剧限流。
GM 扩展备份同步删除
删除愿望单缓存时同步清理 GM 备份键,防止 IndexedDB 删除后被 _restoreGMBackup 自动恢复。
VAC 缓存恢复字段修正
从缓存恢复时正确解析 VACBanned 等字段,避免将对象赋给布尔字段导致好友被误标封禁。
广播频道响应过滤
仅处理当前队列中的 subid,忽略其他标签页的杂散响应,防止添加计数被污染。
个人游戏库错误态区分
最近游玩网络失败时返回 null 并显示“加载失败”,与“近 2 周未游玩”明确区分。
入库动态“待验证”状态
共拥游戏若个人许可页尚未验证,显示“待验证”而非绿勾,避免误导。
绝版数据加载失败兜底loadDelistedDB 失败时返回 null,不会缓存空结果,下次进入自动重试。
CSV 导出防公式注入
对以 =+@- 开头的字段自动添加前导单引号,防止 Excel/LibreOffice 公式注入风险。
Toast 通知防重叠
连续弹出多条 Toast 时正确取消前一条的定时器,避免第二条被提前消除或内容残留。
面板外部点击排除
点击面板外部关闭时排除贡献概览弹窗,避免误关父窗口。
家庭组愿望单账号切换重置
切换家庭组账号时自动重置愿望单状态,避免显示上一个人的数据。
个人游戏库标签页异步渲染保护
切换标签时递增序号,异步回调检查匹配,防止旧标签数据污染新标签。
好友卡片增强节流
滚动分页插入大量好友块时 DOM 增强节流至 800ms,减少卡顿。
堆叠柱状图 tooltip 滞留修复
重绘图表前主动隐藏全局 tooltip,避免残留。
首次 API Key 提示
无 API Key 时自动弹出设置页仅首次触发,之后不再强制弹窗。
完全向下兼容。共同好友缓存升级后初次查询稍慢,后续恢复高效。如有疑问,欢迎到 GreasyFork 反馈区 提交。
本次更新聚焦于家庭组入库动态体验升级与代码结构优化。新增成员独占筛选模式与每日贡献分段条形图,让入库趋势一目了然;优化成员活跃度时间显示(不足1天显示小时数);重构 SVG 生成工具,减少重复代码;统一成员头像配色体系,视觉更协调。
CHART_COLORS 固定色,条形宽度按贡献数量比例分配。CHART_COLORS 固定色(按成员顺序分配),与其他图表配色保持一致。flex-shrink:0、white-space:nowrap、字体大小等样式声明,CSS 体积减少约 15%。VAC_SHIELD_D 提取为公共常量,避免 5 处重复字符串,减少代码体积。pieSlicePath 与 svgGridLines 工具函数,替代 4 处重复的弧形路径与网格线生成逻辑。CHART_COLORS 固定色,与正式成员逻辑一致。pieSlicePath(饼图扇区路径)、svgGridLines(SVG 网格线生成)family.dynamicSelectedMembers(入库动态独占筛选)showMember90Games(成员 90 天贡献弹窗)renderFamilyDynamicTab(独占筛选 + 分段条形图)、renderMemberInsightsTab(时间显示优化)、renderFamilyPopup(头部头像交互)、buildStackedBarSvg(待加入边框色)、renderFamilyHeatmapTab(饼图路径复用)感谢用户的持续反馈,推动我们不断优化家庭组数据可视化与交互细节。
本次更新为存储可靠性增强与体验大版本。引入 GM 扩展备份镜像机制,彻底解决 IndexedDB 数据被浏览器清理导致好友/VAC/时间线丢失的问题。全新设计设置页新增缓存信息卡片与组级清理功能,优化愿望单与个人游戏库缓存策略。
CHART_COLORS 固定色,待加入成员使用人形占位+虚线边框,视觉更协调。MY_LIBRARY_TTL),覆盖全部游戏/已玩/未玩/游玩时长/最近游玩/入库动态/绝版收藏。?l=schinese 参数,直接返回中文名,减少额外请求。_idbPut 写入失败不再静默,上抛异常并记录日志。GM_deleteValue、GM_listValuesMY_LIBRARY_TTL(24h)、GM_BK_MAX_BYTES(512KB)、CAPSULE_FAIL_RETRY_TTL(7d)copy、database、trash_restoreGMBackup、_mirrorToGM、resetPersonalCacheState、buildPlaytimeGameItem、showMember90Games、_fillCacheSizesAsync_dbSet(GM镜像)、renderSettingsTab(完全重写)、fetchMyOwnedGames 等改用 24h TTL、fetchFamilyInfo 头像兜底、renderFamilyWishlistTab(6 KPI+成员筛选)、showGameCompare(序号防污染+失败回退)本次更新聚焦于数据刷新体验优化与绝版收藏管理增强,新增面板自动刷新、绝版范围筛选、预购检测持久化缓存,并修复若干问题。
buildSegmentedGroupBar),直观展示各成员拥有分布。createModal 管理家庭组弹窗,修复层级混乱、无法关闭等问题。STRESS_DETECT_TTL(1天)、LIBRARY_HISTORY_TTL(12小时),FAMILY_REFRESH_COOLDOWN 改为 12小时。autoRefreshFriends、_loadStressDetectCache、_persistStressDetectResult、getPersonalAppIdSet。showFamilyPopup(冷却判断)、renderDelistedTab/renderPLDelistedTab(范围筛选)、getStressOwnedInfo(缓存集成)、renderStressFamilyTab(分组顺序)、renderFamilySeriesTab(分段进度条)、refreshFamilyWithProgress(重置状态)、refreshPersonalLibraryWithProgress(清除入库缓存)。感谢用户的持续反馈,如有问题欢迎到脚本发布页反馈。
本次更新聚焦于家庭组贡献统计的语义修正,将原先“成员拥有即计入”的统计口径调整为“仅计入首次入库成员”,避免重复购买导致的贡献虚高问题。同时新增分段进度条组件,优化统计卡片的布局与显示。
owners[0])时,才计入该成员的贡献。💡 示例:游戏 A 由成员甲于 2024 年 1 月入库,成员乙于 2024 年 6 月也在 Steam 商店“购买”了该游戏(但非首入),此前版本统计中该游戏会同时计入甲和乙的贡献,导致贡献总数虚高。修正后仅甲获得该游戏贡献,乙不计入。
buildSegmentedGroupBar)buildSegmentedGroupBar 函数,用于在精品游戏和系列游戏的分组头部展示成员拥有分布。CHART_COLORS 中的固定颜色),直观显示每个成员的拥有数量占比。renderPLPlaytimeTab 中的 KPI 卡片行从 flex 布局改为 grid 布局(6 列),对齐更规整。sfd-metric-lbl 添加 white-space:nowrap 和 text-overflow:ellipsis,防止中文 label 被意外截断。sfd-pl-stats 的 grid 样式覆盖(恢复为之前的独立 flex 布局,与 sfd-family-stats-grid 区分开)。感谢用户对家庭组贡献统计准确性的反馈,促成了本次统计口径修正。如有任何问题,欢迎到脚本发布页反馈。
本次更新聚焦于 个人游戏库浮窗 的统计分析功能增强,新增游玩时长 KPI 卡片行,并优化了游戏列表的默认排序方式。
已玩 / 总数)renderPersonalLibrary 在获取游戏库数据后,预计算并缓存 _allGames、_played、_unplayed、_totalHours,提升标签页切换时的渲染性能。感谢用户对游戏库数据分析功能的反馈,促使了本次统计卡片升级。如有任何问题,欢迎到脚本发布页反馈。
本次更新聚焦于 个人游戏库浮窗 的全面升级,新增按游戏状态筛选的标签页,优化了游戏列表的分页与加载体验,并对家庭组刷新策略进行了调优。
playtime_forever > 0)。buildPLGameGrid,与好友对比窗口等保持一致的卡片风格。sfd-img-wrapper 加载骨架,显示科技感加载动画,加载失败时展示占位图标。.sfd-pl-popup 高度为 720px,与其它浮窗高度保持一致。感谢用户对个人游戏库功能的反馈,促使了本次升级。如有任何问题,欢迎到脚本发布页反馈。