Repository navigation
Releases
v0.47
本版修复
带作品名的文件夹被改成「Season 01」
度华年,The.Princess.Royal.S01.2024.2160p.HQ.WEB-DL.H265.60fps.DDP5.1-CHDWEB
↓
Season 01 ← 作品名整个丢了
原因:上一版为了修「分析 S4 子目录时被改回父目录名」,加了
「看起来像季目录就当季目录」的判断。而那个判断只要名字里出现 S01
就算数——带完整作品名的目录也会命中。
这个函数本来是给子目录用的(如 进击的巨人 S4),
我用在了当前选中的根目录上,范围太宽。
修复:两个判据
① 纯季目录的正确定义
去掉季号、规格、年份、发布组之后,看是否还剩作品名:
Season 01 → 不剩 → 纯季目录
Season 1 [1080p] → 不剩 → 纯季目录
第二季 / S01 / 1st Season → 不剩 → 纯季目录
度华年,The.Princess.Royal.S01… → 剩「度华年 The Princess Royal」
→ 不是纯季目录
② 父目录是否已是同一部作品
父目录「中国」 → 不是同一部 → 本目录是作品根目录
→ 改剧集文件夹名
父目录「[BD-REMUX]进击的巨人」 → 是同一部 → 本目录是季子目录
→ 改 Season 04
修复后
| 场景 | 结果 |
|---|---|
度华年,The.Princess.Royal.S01… |
度华年 The Princess Royal (2024) [tmdbid-243329] |
Season 1 |
Season 01 |
进击的巨人 S4[…](父目录同名) |
Season 04 |
说明
这次改动差点又引入「季子目录撞父目录名」的旧问题,
是已有的 test_season_crosstalk 测试拦下来的。
回归
快速模式 43/43 通过。
新增 test_pure_season_dir.py:验证带作品名的目录改剧集名、
纯季目录仍改 Season NN、季子目录仍改 Season NN 而不撞父目录。
v0.46
本版修复
1. 匹配到外传时自动纠正
[BD-REMUX]关于我转生变成史莱姆这档事 転生したらスライムだった件/
S1/ ← 16 个 転生したらスライムだった件 E01~E16.m2ts
以前:正传被匹配成外传《转生史莱姆日记 転スラ日記》,
任务标题、新名字全用了外传,而且置信度标的 100%。
原因:目录名只有 S1,只能用父目录的混合长串去搜,
外传条目相似度更高被排在前面;而 _match() 拿到结果后没有任何校验。
现在两道防线:
防线一:拿到结果后核对标题
匹配结果的所有名称/别名 与 本地片名 逐一比对
全都对不上 → 置信度降到 30%、标记「需确认」、写明原因
防线二:用文件名里的片名重搜
第 1 次搜「关于我转生… 転生したらスライムだった件」→ 命中外传 ✗
第 2 次搜「転生したらスライムだった件」 → 命中正传 ✓
修复后任务标题、TMDB ID、新名字全部回到正传,置信度 100%。
2. 3rd Season - E49 集号识别
転生したらスライムだった件 3rd Season - E49.m2ts
以前:集号完全认不出 → 整批被判成电影、置信度 0%;
连带字幕也被改成 片名 3rd Season - E49.srt(不带季集)。
两个原因:
| 问题 | 说明 |
|---|---|
- E49 被当成季号数字 |
检查前 16 个字符看到 3rd Season - 就判定「这是季号后面的数字」 |
3rd Season 不认 |
只认 Season 3,不认序数词在前的写法 |
修复后:
| 文件名 | 季 | 集 |
|---|---|---|
... 3rd Season - E49.m2ts |
3 | 49 |
... 2nd Season - E01.m2ts |
2 | 1 |
... 1st Season - EP10.mkv |
1 | 10 |
防误判:Part 2 / Season 3 / Vol.2 / Disc 1 里的数字仍不算集号。
3. 累计集号自动纠正
S2/転生したらスライムだった件 2nd E25 「リムルの忙しい日々」.m2ts
以前:只有一句「请核对」的提示,不会改。
但 TMDB 第 2 季是按本季重新计数的(E01~E24),
你截图里「第 2 季 第 1 集 利姆鲁繁忙的每一天」正是这个文件。
现在自动换算:
S2 目录:E25~E48 → S02E01~S02E24
判定条件(四条全满足才改,宁可少改也不改错):
- TMDB 有该季的集数
- 全部集号都越界(不是个别文件写错)
- 集号数量不超过本季集数
- 最小集号减偏移后正好等于 1
偏移量优先用「前面所有季的集数之和」(第 1 季 24 集 → 减 24)。
不满足条件时保持原样,只提示。
回归
快速模式 41/41 通过。新增 3 个测试:
test_spinoff_retry:外传误匹配 → 用文件名片名重搜 → 命中正传;
匹配正确时不产生多余请求test_ordinal_season:8 种季集写法 + 4 种不能误判的情况test_cumulative_ep:E25E48 正确换算、E01E24 不被误改
v0.45
本版修复
字幕语言写法 chs&jpn 无法识别
中二病でも恋がしたい! S1E01.chs&jpn.ass
中二病でも恋がしたい! S1E01.jap.ass
中二病でも恋がしたい! S1E13.chs&jpn.ass
以前:三份字幕全变成同一个名字
S1E01.chs&jpn.ass → S01E01.简日.ass
S1E01.jap.ass → S01E01.简日.ass ← 撞名
S1E13.chs&jpn.ass → S01E13.ass ← 标签整个丢了
原因:识别语言标记的规则里只允许 - 和 _ 作连接符
(jp-sc、jp_sc),chs&jpn 里的 & 不在字符集内,整体匹配失败,
被当成「没有语言标记」。
于是 E01 的两份字幕一份标签为空、一份是「日语」,没有被识别成
多字幕,各自走了自动改名。
修复
- 语言标记之间允许
&、+、.三种连接符:
chs&jpn/chs+jpn/CHS&JPN/sc&jp/zh.cn.ja - 拆段时统一归一化,五种分隔符(
-_&+.)都按同一套逻辑处理。
修复后
| 字幕标记 | 识别 | 新名字 |
|---|---|---|
chs&jpn |
简日 | .简日.ass |
chs+jpn |
简日 | .简日.ass |
jap |
日语 | .日语.ass |
JPSC |
简日 | .简日.ass |
zh_CN-ja |
简日 | .简日.ass |
zh_TW-ja |
繁日 | .繁日.ass |
关键改善:E01 的两份现在被正确识别为两种不同语种,进入
多字幕待确认(不再自动撞名);E13 单份正常改成 .简日.ass。
同类问题的第三次修复
语言/集号标记的连接符写法已经修过三轮:
| 写法 | 以前的问题 |
|---|---|
zh_CN-ja / zh_TW-ja |
只取到尾巴的 ja,简日与繁日撞名 |
SOE01 |
季号字母形近数字(O 当 0) |
chs&jpn |
& 不在允许的字符集里 |
现在 - _ & + . 五种连接符全部支持。
回归
快速模式 38/38 通过。
新增 test_sub_lang_amp.py:覆盖 8 种语言写法识别,
以及完整目录分析中「E01 两份进待确认、E13 正常改名」。