自托管游戏库管理:从数据采集到状态机,打造个人PS5游戏管家
你有没有过这种时刻PS5 的游戏库越塞越满会免领了一批促销又买了一批真到周末想开机反而对着屏幕发呆半小时最后关了机去刷手机。我前年年底统计过一次自己库里有接近 200 款游戏实际通关的不超过 15 款。就是从那时候起我决定自己动手做一个小工具把 PS5 游戏从堆灰列表变成真正可管理、可追踪、可推荐的数据。这个项目后来被我命名为AnyPS5含义很简单任何一款 PS5 游戏在任何地方都能被快速定位、评估状态、安排下一步动作。AnyPS5 本质上是一个自托管的游戏库管理面板自动抓取账户下的游戏列表、奖杯进度、最后游玩时间然后按我自己的规则给每款游戏打状态标签——没开始、玩了一半、主线已通、白金可冲再根据这些数据生成一个接下来该玩什么的排序。这篇文章把整个项目的完整思路、实现细节和踩坑经历整理出来分享给同样被游戏库存困扰的玩家也希望能给想做类似个人项目的开发者一点参考。1. 为什么做 AnyPS5游戏库存管理这件事到底难在哪1.1 从库存焦虑到需求明确先说痛点。游戏数量和可玩时间之间的矛盾是当代玩家最普遍的问题之一。数字商店的促销机制、会免政策、以及各种限时领取让游戏库膨胀的速度远超实际游玩速度。我自己的经验是库里 80% 以上的游戏都不是主动购买的而是看到便宜就拿了朋友推荐说必玩或者领了不亏。真正让我下定决心自己写工具是三个具体场景反复发生想找某类游戏比如找个能本地双人的得靠记忆翻库而且很多名字根本记不起来同一款游戏玩了一半搁置三个月回来之后完全不记得之前推进到哪、系统机制是什么游戏太多挑选成本极高最后经常演变成哪个都不太想动干脆玩两把竞技游戏算了。市面上的游戏管理工具不是没有但对我来说总有几个别扭的地方要么只支持手动维护打几个字就懒得更新要么数据展示很花哨但我要的状态追踪和决策推荐做得不够直接要么必须把数据托管到第三方服务器上我这种数据洁癖不太能接受。需求写下来其实很简单全自动采集、本地化存储、按我的标准做状态管理和推荐排序。AnyPS5 就是照着这三条做的。1.2 项目定位不做大而全只做个人管家项目一开始我就定了边界不追求覆盖所有平台不做一个万能库不做社交分享。AnyPS5 只服务于我自己的 PS5 账户核心职责有三个。第一采集。定期同步游戏列表、游玩时长、奖杯进度、最后启动时间这个必须全自动不能让我手动录入。第二状态管理。每款游戏在我的规则下必须有一个明确的现在处于什么阶段的结论。这一点看起来简单实际做起来有很多细节后面专门讲。第三决策支持。根据状态、游戏类型、相对冷热度等因素给出优先玩哪些的排序。我不要求它智能到什么程度但排序逻辑必须是我自己能看懂、能手动调整的。我自己平时主要写代码做些小工具Web 前后端都还算熟所以技术选型上没有纠结太久。前端用轻量框架做单页应用后端是一个简单的 API 服务数据库用嵌入式方案整套东西跑在一台家里的老机器上局域网内直接用出了门走隧道回家访问。整个项目从零到能用大概花了两周多业余时间后续又迭代了几轮。2. 游戏数据从哪来采集层设计的整体思路2.1 数据流全景AnyPS5 的第一个关键决策是数据怎么进系统。手动录入绝对不可接受唯一的出路是走官方渠道的公开认证接口。整体数据流是这样的用户登录时跳转到官方认证页面授权授权成功后拿到访问令牌和刷新令牌后台定时任务用令牌调用游戏列表接口拉取该账户下拥有的全部游戏标题对每个游戏标题再请求详细数据包括奖杯组信息、稀有度、获取时间等拉回来的原始数据写入本地数据库同时做标准化处理前端面板只读本地数据库提供筛选、搜索、排序和状态标注。这里要特别强调一下定时同步和增量更新的区别。我第一次做的时候图省事每次同步都是全量拉一遍游戏列表然后逐款游戏去拉详情。结果游戏少的时候还行等库到了 150 款以上一次完整刷新要调几百次接口既慢又容易被限流。后来改成增量策略游戏列表本身每次全量拉这个接口返回快数据量不大但逐款的奖杯和详情数据只在游戏列表发生变化时才去更新已经没变化的游戏直接跳过。同步时间从十几分钟缩到一分钟以内。2.2 关键数据字段与标准化从接口拿到的原始数据是嵌套 JSON字段命名比较平台化直接入库不好用。我建了一层映射层把需要的字段统一成自己的命名规范。下面这张表是我实际使用的核心字段结构标准化字段来源字段说明game_id游戏标题唯一标识关联详情的核心键也是奖杯组的父级标识title标题名称可能包含中英文双版本需要做本地化处理platform平台标识过滤非 PS5 版本时用到image_url封面图地址存 URL不存图片二进制last_played最后游玩时间用于久未启动判断play_duration累计游玩时长部分接口才有缺失时需要降级处理trophy_progress已获得/总奖杯数包括白金、金、银、铜四类分别计数rarity_list各奖杯稀有度用于计算游戏相对热度source记录来源区分会免、购买、其他辅助决策字段标准化这个环节看着不起眼但极其重要。接口偶尔会改动字段名、缺字段或者给了空值映射层是唯一的兜底位置。我在这一层统一处理了空值填充、类型转换、时区转换三件事后续业务代码才不需要到处做防御性判断。如果你也想做类似项目建议从一开始就把字段层和业务层分开不然后面改起来会非常痛苦。2.3 认证与令牌刷新机制认证是采集层最容易出问题的地方。最开始的实现很粗糙把令牌硬编码在配置文件里过期了就手动去登录拿新的。后来发现令牌有效期虽然不短但刷新令牌才是长期运行的保障。我的做法是写了一个独立的认证服务模块负责三件事发起授权、保存令牌、自动刷新。刷新逻辑通过一个后台调度器定时执行在令牌即将过期前自动换新同时把新令牌写回存储。整个流程对业务层透明——业务代码只管调用数据接口完全不感知令牌生命周期。这里有个小细节刷新令牌一定要单独存并且要支持多设备同时访问时的并发刷新不然两个请求同时触发刷新后写的令牌会覆盖先写的导致其中一个失效。我在这里踩过一次坑后面详细说。3. 数据库与数据模型简单但不简陋的存储方案3.1 为什么选嵌入式数据库AnyPS5 的数据量其实很小撑死几千款游戏、几万条奖杯记录用重型数据库完全是杀鸡用牛刀。我选了嵌入式数据库一是单文件部署、备份就是复制文件二是没有独立服务进程省掉一层运维负担三是支持 SQL 查询对后面做统计报表很友好。整个数据库只需要四张核心表games游戏主表存放标准化后的游戏标题、封面、平台、来源等基础信息trophies奖杯明细表存放每个奖杯的 ID、类型、稀有度、是否解锁、解锁时间play_records游玩记录表记录每次同步时采集到的最后游玩时间和累计时长保留历史版本meta元信息表存放同步时间戳、令牌信息、配置项等。其中 trophies 表的数据量最大但一张奖杯组通常也就几十个奖杯单表几千行对嵌入式数据库来说毫无压力。3.2 表设计与索引选择games 表的主键是 game_id这个没问题。但实际使用中最频繁的查询条件并不是 ID而是状态和最后游玩时间。所以我在 games 表上建了两个索引一个是 status 索引一个是 last_played 索引。状态索引用于支撑按状态筛选游戏列表时间索引用于排序最近没玩的游戏。trophies 表则用联合索引game_id trophy_id保证查询某款游戏的全部奖杯时走索引扫描不用全表扫。这里要提醒一点嵌入式数据库虽然轻量但索引设计不合理照样会因为数据量增长而变慢。奖杯表到了几万行之后如果没有联合索引有些查询会明显感觉到延迟。play_records 表的设计是后来迭代加上去的。最初我只存当前最后一次游玩时间但这样就没法回答这个月玩了几个小时这类问题。加了历史记录表之后每次同步都插入一条带时间戳的记录后续做趋势分析就有数据基础了。代价是数据量会线性增长但对单用户场景来说一年也就几百条记录完全可控。3.3 数据一致性与迁移策略自托管项目最容易翻车的地方就是 schema 演进。项目刚开始的时候 I 无所谓直接在代码里改表结构结果数据库文件废了一次全部重新同步才恢复。后来我学乖了在 meta 表里维护一个 schema_version 字段每次表结构调整都写一个迁移脚本启动时按版本号顺序执行未应用的迁移。这个习惯帮我省了后面好几次大改的麻烦。另外一个建议是把原始接口数据和标准化数据分开存储。我一开始只存标准化后的结果后来排查数据对不上的问题时发现原始数据已经没了没法核对到底是接口返回的问题还是我的处理逻辑问题。所以后来新增了一张 raw_responses 表只保留最近一次同步的原始响应用于排查和调试。这个表数据量不小所以我会定时清理只保留最近一两天的内容。4. 核心功能实现状态机、推荐排序与前端面板4.1 游戏状态机答案不是非黑即白状态管理是 AnyPS5 的灵魂也是我最花心思的部分。一开始我想得很简单每款游戏要么未玩要么通关。但用了两天就发现根本不够——很多游戏我玩了一半搁置了说未玩不准确说通关又远远没到。所以我把状态机扩展成五个状态未开始从未启动过进行中最近一段时间玩过且没有通关迹象搁置启动过但超过 60 天没有再次启动主线完成主线通关但奖杯完成度还没拉满白金光合奖杯全解锁。状态之间的转换规则我也定了明确的判断条件。比如进行中和搁置的区别核心指标就是 last_played 是否超过 60 天。这个阈值我调过几次一开始设 30 天结果出差两周回来一堆游戏被标成搁置太敏感后来改成 60 天正好匹配我平均一个月开坑一到两款游戏的节奏。这个阈值应该跟个人游玩习惯绑定不建议照搬我的数字。主线完成这个状态严格来说没法纯粹靠接口数据判断——接口只能告诉我奖杯拿了多少不能告诉我剧情通没通。我的做法是折中当一个游戏的奖杯解锁度超过 50%且已经拿到至少一个剧情相关奖杯时系统会把它标记为疑似主线完成放在候选列表里由我确认。确认一次之后这条记录会被记住后续不再重复提问。这个半自动的设计我特别满意既省了手动维护的麻烦又保留了人的判断权。4.2 推荐排序算法规则简单效果直接排序功能是很多人感兴趣的其实我没有用什么高深算法核心就是一个加权评分函数score 基础奖励分 - 搁置天数惩罚 完成度加权 游戏类型偏好 - 库存体积惩罚具体思路是每个游戏有一个基础分搁置越久加分越高因为回头再玩的价值增加了完成度高的游戏会额外加权因为马上就能白金沉没成本值得兑现游戏类型匹配我当前偏好的会加权比如最近想玩动作游戏库里的动作游戏分数整体抬高库里囤积了大量同类型游戏时单款游戏的权重会适当降低避免推荐结果全是同一个类型。粗看这几个因素之间还有矛盾比如搁置越久分越高和游戏类型偏好似乎没有直接关系。实际操作中我给每个因素设了权重系数在界面上做成可调滑块用户——也就是我自己——可以自由调整想清坑多一些还是想玩喜欢的类型多一些。排序效果我是满意的至少比我自己翻库的决策效率高得多每次打开面板扫一眼前五名基本就不用纠结了。4.3 前端面板信息密度与操作效率的平衡前端界面我没有做得很花哨核心原则是一屏内完成决策。主页面是一张游戏卡片列表每张卡片显示封面、标题、状态标签、最后游玩时间、奖杯进度条。顶部是状态筛选器可以一键只看搁置的游戏或者快白金的游戏。详情页展示奖杯列表、游玩时间线和历史记录以及该游戏的备注。有个细节我觉得特别有用每张卡片会显示一个距离上次游玩 X 天的角标。很多时候我们纠结要不要继续玩某款游戏本质上是不知道搁置了多久一旦看到156 天这个数字决策就变得容易多了——这是临界门槛问题要么果断放弃要么重新推倒再来。交互上我特意加了一个快捷操作区支持从列表直接修改游戏状态、手动添加备注、标记放弃。因为自动状态机再准终究需要人工兜底。这个兜底操作必须在列表层面完成不能让人为了改一个状态点进详情页再出来那就太影响使用频率了。5. 实测踩过的坑时间戳、ID 映射和接口限流5.1 时区坑奖杯时间全部偏移 8 小时第一个印象深刻的坑是时间戳。接口返回的奖杯解锁时间是 UTC 格式我一开始没注意直接存进数据库结果前端展示出来的时间比实际解锁时间晚了 8 个小时。问题倒不大但所有统计图表就差出一天。更麻烦的是最后游玩时间的字段有的接口返回精确到秒的时间戳有的只精确到天还有的干脆不返回。这个我花了不少时间在映射层做兼容处理经验就是所有时间字段必须统一先转成 UTC 入库展示时再转本地时区绝对不能在入库前转时区。5.2 游戏 ID 映射不稳定同名游戏和版本分裂第二个坑比时区隐蔽得多——同一款游戏可能对应多个标题 ID。最典型的场景是跨代版本PS4 版和 PS5 版在接口里是两个独立的 ID但实际是同一款游戏。用户层面是一回事数据层面就麻烦了一个游戏在两套 ID 下奖杯进度分裂我的状态机把PS4 版玩了一半和PS5 版没打开当成两个游戏处理。我做了个 merge 机制在 games 表里加了一个 group_id 字段手动或按标题相似度自动把相关 ID 归为一组组内共享状态、合并奖杯数原始 ID 仍然保留作为数据源头。这个机制需要标题归一化辅助——去掉空格、统一大小写、把中英文版本做映射表。做完整套之后库里的重复游戏从 32 组降到了 4 组剩余 4 组是真正意义上的不同游戏只是名字相似而已。5.3 接口限流并发刷新令牌把自己玩挂了限流和令牌并发这两个问题其实是一起出现的。有一次我手动触发全量同步同时后台定时任务也在跑两个进程同时发现令牌快过期同时刷新结果后写覆盖先写旧令牌被吊销新令牌又被覆盖成旧的直接把自己锁在门外。修复其实很简单刷新令牌的逻辑加个互斥锁分布式环境用数据库行锁单机环境用进程内锁保证同一时间只有一个刷新任务在跑。限流方面官方接口对普通应用有调用频率限制按我的实测短时间连续高频请求会被临时拒绝。我加了自适应退避每次收到限流响应自动把后续请求间隔乘以 1.5成功后再逐步回退到基础间隔。这样既能保证同步完整又不会把自己搞进黑名单。全量同步的时候我会在界面上显示进度条避免无聊等待也不知道到底同步到哪了。5.4 数据缺口部分游戏永远没有游玩时长最后一个想说的是数据本身的缺口。接口返回的游玩时长字段很多老游戏或者没有联网更新过的游戏根本没有值。我最初的处理是显示 0后来发现这会让排序算法误判——一款时长缺失的游戏被当成没玩过状态机直接给到未开始。这个问题的解法是给时长字段加一个质量标记明确返回的标 valid缺失的标 missing状态机判断时只信任 valid 数据missing 一律降级用 last_played 做判断。这个数据质量标记的思路在数据驱动的工具里非常通用推荐大家都采纳。6. 后续还可以怎么折腾从个人工具到通用面板AnyPS5 做到现在已经完全满足了我个人的需求基本每天都在用。不过我脑子里还有一份想做但还没做的清单写出来也给看完这篇文章的朋友一些方向上的启发。第一把推荐排序结果导出成可订阅的日历或通知。比如每周末推送一条消息本周优先清坑X 游戏已搁置 90 天预计白金还需 5 小时。这需要额外做通知渠道的适配不同渠道的模板也不一样属于工作量不小但收益很直接的增强。第二支持多账户合并。我身边有些朋友家里是几个人共用一台主机不同账户有各自的奖杯进度合并到同一个面板里需要处理账户-游戏的权限关系模型会复杂不少。但一旦做出来AnyPS5 就不只是个人工具了小团队、家庭都可以用。第三把游玩数据做成长周期的可视化报表。现在数据库里已经有每日快照数据了画一条过去一年每周游玩时长的趋势线、统计各类型的游玩占比、看每月新开坑数量技术上都不难。这类报告如果做成每月自动生成会很有仪式感也能直观暴露买得太多玩得太少这个残酷事实。最后也是我最近在琢磨的把状态机的判断规则从硬编码改成可编程表达式。现在调整阈值要改代码等我更新一次阈值就觉得麻烦如果能做成在界面上写规则条件比如last_played 45 天 AND 完成度 20% → 搁置那 AnyPS5 就真正变成一个可配置的游戏管理平台了。不过这个改造对数据层的要求更高属于长期计划不急。做 AnyPS5 这段时间最大的体会是一个小工具的价值不取决于技术多新、功能多全而在于它是否精准地解决了一个你反复遇到的真实问题。对我来说它解决的是每天都为玩什么纠结这个看似很小、实则非常消耗精力的折磨。如果你也有类似的管理需求不用照搬我的设计抓到全自动采集、状态兜底、可配置规则这三个核心你的工具大概率也会做得比我的还好用。

相关新闻

文献综述的“暗面”:为什么你读了50篇文献,还是写不出一段像样的综述?

文献综述的“暗面”:为什么你读了50篇文献,还是写不出一段像样的综述?

书匠策AI官网:www.shujiangce.com 微信公众号搜一搜:书匠策AI 综述写不好的根源,不是读得太少,而是你一直在用“读书笔记”的思维做“学术对话”的工作。 我带过的学生里,有一个现象反复出现:开题前信誓旦旦…

2026/10/14 9:52:30 阅读更多 →
2026 毕业党真心话|AI 论文工具真实排名,别再乱花钱踩坑!

2026 毕业党真心话|AI 论文工具真实排名,别再乱花钱踩坑!

写论文这大半年,我几乎把网上热门 AI 论文工具挨个试了一遍。 很多广告只吹降重快、免费好用,但很少告诉你背后藏的坑:参考文献凭空编造、改完 AI 检测直接爆红、论文上传之后原稿泄露、多个工具混用导致全文文风割裂。 2026 年高校审核不再单…

2026/10/14 9:51:29 阅读更多 →
AI内容优化工具原理与实战测评

AI内容优化工具原理与实战测评

1. 内容检测技术现状与应对需求近年来,随着生成式AI技术的快速发展,内容检测工具也同步升级迭代。根据2024年MIT技术评论报告,主流检测工具对AI生成内容的识别准确率已达到78%-92%。这种技术演进直接催生了对内容优化工具的市场需求&#xff…

2026/10/14 9:51:29 阅读更多 →

最新新闻

Shell脚本多行注释技巧与工程实践

Shell脚本多行注释技巧与工程实践

1. Shell脚本多行注释的必要性与挑战 在Bash和KornShell(KSH)脚本开发中,我们经常遇到需要临时禁用大段代码或添加详细说明文档的情况。与大多数编程语言不同,Shell脚本原生并不支持类似C语言的/* */或Python的 这样的多行注释语法…

2026/10/14 10:44:53 阅读更多 →
Hadoop发行版选型实战:CDH、HDP与原生版本的生产差异

Hadoop发行版选型实战:CDH、HDP与原生版本的生产差异

1. 为什么今天还要谈Hadoop发行版的选型问题?很多人以为Hadoop已经“过时”了——Spark火了,Flink成了实时计算新宠,云厂商纷纷主推托管数据湖方案,连Kubernetes上跑大数据作业都成了常态。但现实是:某省政务云平台仍在…

2026/10/14 10:44:53 阅读更多 →
MATLAB OCR字符识别实战:从预处理到自定义训练与避坑指南

MATLAB OCR字符识别实战:从预处理到自定义训练与避坑指南

简介:本资源是一套基于MATLAB实现的OCR字符识别完整项目代码,面向具备一定图像处理基础、希望动手实践光学字符识别流程的高校学生与算法初学者。内容围绕图像预处理、行列分割、字符切割、特征提取、模板匹配与结果输出等环节展开,并配有模板…

2026/10/14 10:44:53 阅读更多 →
Unity3D垃圾分类教育系统开发与多模态交互设计

Unity3D垃圾分类教育系统开发与多模态交互设计

1. 项目概述:Unity3D垃圾分类教育系统开发实录去年参与某社区环保项目时,我负责开发了一套垃圾分类互动教育系统。这个基于Unity3D的解决方案包含四大核心模块:分类知识库、智能查询、宣传短片和交互界面。不同于传统宣传册,我们通…

2026/10/14 10:44:53 阅读更多 →
从单节点到分片集群:MongoDB水平扩展与Spring Boot实践

从单节点到分片集群:MongoDB水平扩展与Spring Boot实践

大数据量的业务做到中期,MongoDB 单机常常会先报警。磁盘空间、CPU、IOPS 总有一个先扛不住。我最近刚帮某团队把核心订单数据从单节点迁移到 Linux 环境下的 MongoDB 分片集群,顺带把 Spring Boot 服务的访问链路也彻底理了一遍。这篇就把分片集群从架构…

2026/10/14 10:44:53 阅读更多 →
rea三段式流水线设计:从raw到aggregate的通用数据处理模式

rea三段式流水线设计:从raw到aggregate的通用数据处理模式

1. 从“rea”这个标题说起:一个被低估的通用缩写第一次看到“rea”这个标题,很多人会愣一下——三个字母,没有上下文,没有说明,甚至连大小写都不明确。但恰恰是这种极简的命名方式,在技术圈和创意圈里非常常…

2026/10/14 10:43:52 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →