CI / lint + test + build (push) Canceled after 0s
- README 现代化重写:徽章区、特性一览、统一 GitHub 提示块格式、修正版本号与 AI 默认值 - 新增 docs/PROJECT_REPORT.md 学术项目报告(含许可证合规分析与死链修复记录) - 收录 23 份 ADR 架构决策记录与 CONTEXT.md 领域术语表 - 新增开发配置:.editorconfig / .shellcheckrc / .markdownlint-cli2.jsonc - .gitignore 补充 mo_map/、检查报告、编辑器临时文件 - 新增 config.example.json 配置模板(不含真实密钥)
1.4 KiB
1.4 KiB
公共子串剥离提集号:同目录差异数字作集号
压制组风格文件([Group] Title - 01.mkv)无方括号数字、无 SxxExx 时,parse 回退"正片计数 ≥2 → tv, episode=0"——集号丢失,命名退化为 S01E00。决定:无特征且判定为剧集时,调用 extract_episode_from_peers——对同目录全部视频文件名求最长公共前缀 + 最长公共后缀(逐字符比较,bash 实现),当前文件剥离前后缀后的中段提取末尾数字(集号通常在末尾)作集号,排除分辨率(1080/720/480/2160/4320)。
边界语义:① 仅在"无特征 → tv"回退分支启用(有 SxxExx/方括号数字的文件走主路径,行为不变);② 少于 2 个视频文件不适用(无公共部分可言);③ 中段无数字/数字被排除 → 保持 episode=0(不猜);④ 后缀公共部分不越过公共前缀边界(短文件名防重叠);⑤ 与 BAR 的 difflib 公共子串思路同源,但只取前后缀(bash 内实现,无新依赖)——中间公共块(如季名在中间)场景不处理,由目录兜底/AI 覆盖。
Considered Options: 维持 episode=0(原状)——集号丢失进 S01E00 与 TMDB 集名错配;引入 difflib——新运行时依赖(python),与纯 bash 定位冲突;全公共子串(BAR 原版)——中间公共块场景罕见,前后缀已覆盖主要形态。