Skip to content

Releases

v0.47

Choose a tag to compare

@694185819 694185819 released this 07 Nov 05:33

本版修复

带作品名的文件夹被改成「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

Choose a tag to compare

@694185819 694185819 released this 06 Nov 18:01

本版修复

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

判定条件(四条全满足才改,宁可少改也不改错):

  1. TMDB 有该季的集数
  2. 全部集号都越界(不是个别文件写错)
  3. 集号数量不超过本季集数
  4. 最小集号减偏移后正好等于 1

偏移量优先用「前面所有季的集数之和」(第 1 季 24 集 → 减 24)。

不满足条件时保持原样,只提示。

回归

快速模式 41/41 通过。新增 3 个测试:

  • test_spinoff_retry:外传误匹配 → 用文件名片名重搜 → 命中正传;
    匹配正确时不产生多余请求
  • test_ordinal_season:8 种季集写法 + 4 种不能误判的情况
  • test_cumulative_ep:E25E48 正确换算、E01E24 不被误改

v0.45

Choose a tag to compare

@694185819 694185819 released this 04 Nov 15:07

本版修复

字幕语言写法 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 的两份字幕一份标签为空、一份是「日语」,没有被识别成
多字幕
,各自走了自动改名。

修复

  1. 语言标记之间允许 &、+、. 三种连接符:
    chs&jpn / chs+jpn / CHS&JPN / sc&jp / zh.cn.ja
  2. 拆段时统一归一化,五种分隔符(- _ & + .)都按同一套逻辑处理。

修复后

字幕标记 识别 新名字
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 正常改名」。

v0.44

Choose a tag to compare

@694185819 694185819 released this 03 Nov 18:47

v0.44

请在 Release 说明中补充本版改动。