首页
返回作品集
工具 维护中 2025 — 至今

补番进度小工具

一条命令记录「看到第几集」,并按时区把每周更新排成一张表;数据就是一个 Markdown 文件,换电脑带着走。

角色:个人工具 技术栈:Node.js · SQLite · CLI
补番进度小工具 封面
维护条目
214
命令响应
12ms
依赖数量
2

背景

每季二三十部番,追到一半就忘了看到第几集。现成的追番应用都要登录、都有推送、都会在季度结束后把数据带走。

做法

数据落在 Markdown 表格里,工具只做三件事:解析、加一集、按星期重排打印。SQLite 只用来存历史变更,方便回溯「什么时候开始拖的」。

track add 示例A          # 集数 +1
track list --weekday     # 按更新日排成一周
track stats --season 2026-10

难点

时区:日本深夜档换算成本地时间经常跨日,一开始整周错位一天。改成存「日本播出日 + 换算后本地时刻」,打印时再折算。

去重:同一个番在多个字幕组下会有不同标题,靠标准化(去括号、去字幕组后缀)合并,冲突时以最近添加的为准。

踩坑记录

  • 用文件名当主键,重命名后进度丢失 → 改用人写的短 ID。
  • 一开始读改 Markdown 都直接覆盖整个文件,手滑一次就没了 → 改成写临时文件再原子替换。

结果

214 部、单命令 12ms、依赖只有 node:sqlite 与一个日期库。真正的收获不是工具,而是「一集一集记录」之后的自觉:拖到第 4 集的番,确实该弃。

补番清单在终端里的输出:按星期分组,显示集数与进度
设计成用眼睛扫得完的窄表,一屏显示一周