Files
BeacherZ 4c2d8acd73 feat: 跟随上游更新的完整机制(同步工具 + 补丁化 + 面板溯源)
引擎是内置源码,上游更新不会自己流进来。这次把「怎么更新」做成了一条命令:

- patches/: 把相对上游的 2 处改动导出为标准 unified diff(B 站 newlist 接口修复、
  通知默认合并成一条),同步上游时由工具自动重放,不再怕被整目录覆盖冲掉
- tools/sync_upstream.py: 下载上游源码 → 替换 dailycheckin/ → 重放补丁 → 更新
  UPSTREAM.json → 报告站点增减与元数据缺口;补丁打不上就整体回滚。支持
  --check(只查更新)/ --ref(指定 tag 分支)/ --dry-run(只比对)
- tools/test_sync_upstream.py: 41 项离线自测,覆盖补丁往返逐字节还原、行号漂移、
  上游改写代码时必须报错、以及「上游新增站点后面板降级但可用」
- UPSTREAM.json: 记录引擎来源(repo/ref/commit/version/patches/sites),面板读它展示
- .github/workflows/sync-upstream.yml: 手动一键同步并重建发布镜像;每周自动检查,
  上游有新提交就开 issue 提醒
- panel: 设置页显示引擎来源与待补元数据站点;上游新站点的卡片标注「通用配置」
- CI: 新增引擎溯源与补丁完整性校验(补丁代码特征必须在、面板必须能读到来源)
- README: 新增「跟随上游更新」章节,并更新目录结构

引擎源码本身逐字节未变(同步后哈希与同步前完全一致)。
2026-10-15 19:02:29 -07:00

51 lines
1.3 KiB
JSON

{
"repo": "Sitoi/dailycheckin",
"ref": "main",
"commit": "135cc236e59ac4f14bcddc44acb3cbb3ed6010b5",
"commit_date": "2026-07-09T08:56:15Z",
"version": "25.12.9",
"synced_at": "2026-10-16T01:53:53Z",
"sync_tool": "tools/sync_upstream.py",
"patches": [
"0001-bilibili-newlist.patch",
"0002-notice-single-message.patch"
],
"engine_sites": [
"ACFUN",
"ALIYUN",
"AOLAXING",
"BAIDU",
"BAIDUWP",
"BILIBILI",
"ENSHAN",
"FNNASCLUB",
"IMAOTAI",
"IQIYI",
"KGQQ",
"MIMOTION",
"SMZDM",
"TIEBA",
"V2EX",
"YOUDAO"
],
"tracked_files": {
"requirements.txt": {
"upstream_sha256": "b20fc1decb05cf7e62b27ba7f3c7961e2e4eeb4bb4db1b5059709c1ac0b45840",
"local": "same"
},
"pyproject.toml": {
"upstream_sha256": "246d1d1ca1b2786ddc24656f752048d43fdf9ecf87e2bcb8ead828c9833fe17b",
"local": "same"
},
"setup.py": {
"upstream_sha256": "00d3f0df4503918562d792df45a68119e0e7099b5041fea3e356570a7346b08c",
"local": "modified"
},
"LICENSE": {
"upstream_sha256": "e7f3a06f4801475d647509f25a66073a408f2a9cde3277ba31f4e924b8fbb1be",
"local": "same"
}
},
"note": "引擎源码来自上游,patches/ 里的补丁在同步后自动重放。不要手工覆盖 dailycheckin/。"
}