feat(parser,sites): W5-D port title/zhconv/site parsing gaps found by MP differential
Title recognition (parseRelease / parseReleasePath):
- anime prefix tags (★N月新番, [国漫], 【22年日剧】), category lead bracket, `A / B` cn aliases
- `Name [01]`, `[TV 04]`, `#13`, `名称 12.mkv`, `S01 13-14`, `E13-14` episodes
- lead bracket as title vs group, trailing [Group], YTS.MX/Hall_of_C style groups, 字幕组 suffix
- `[dot.release.name][…]` unbracketing, `Season 2017` as year, leading date not airDate,
date-only parent dir does not merge as TV
- original disc: Blu-ray + AVC/HEVC/VC-1/MPEG-2 without x26x/H.26x -> BluRay-Disc
- `{[tmdbid=;type=;s=;e=]}` explicit block, bangumi/anilist ids
- bare [1080]/[5.1], DTS-HD MA5.1, £ multi-group, 合集, pinyin title -> cn from subtitle,
streaming platform table, CHS/CHT/GB/BIG5 in subtitle
zh-map: add 迴滾魷瑯臥駭; document one-to-many chars kept out.
Sites: tbody branch + header-row tightening via movieclaw-import rowSelector (18 definitions),
row-level case/hr/labels include the row itself, subtitle branch (searchType: "subtitles"),
parseSizeMp banker's rounding.
Differential snapshots regenerated; MP test sample sources registered in ledger.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
8352e5e881
commit
36dc048e89
41 files changed
+3111
-2372
No files matched your search
@@ -220,3 +220,22 @@ RFC822、ISO、无秒、星期写错这几类两边一致;中文日期、"3 小
|
||||
| P3 | zh-map 补字(§7);`parseSizeMp` 改银行家舍入;RSS 补 HTML 命名实体 | `identity/zh-map.ts`、`sites/spider`、`rss/parse.ts` | 2 小时 | zhconv missing ×6、indexer our_bug ×1 |
|
||||
|
||||
**不迁**:MetaAnime 不输出来源和编码的行为(mp_bug);期号当集号、日期删除、未知组置空(与 README 偏离表一致);jieba。
|
||||
|
||||
## 10. 补迁后一致率(W5-D,2026-09-27)
|
||||
|
||||
按 §9 清单完成:P0 原盘判定、P0 动漫/字幕组命名、P0 `[点分隔发布名]`/`Season 2017`/开头日期与目录日期、P1 显式身份块与 bangumi/anilist、P2 集号写法与裸 `[1080]`/`[5.1]`/`MA5.1`/`E13-14`、P2 流媒体平台表(`release-parser/platforms.ts`)/`£` 多组/"合集"/拼音英文名、副标题拉丁字幕标记 CHS/CHT/GB/BIG5、P1 站点定义 tbody 分支与表头收紧(`movieclaw-import.mjs rowSelector`,18 个定义重新生成)、P1 行级标记包含行自身、P1 字幕页解析分支(`SiteSpider` `searchType: "subtitles"`)、P3 zh-map 补字与 `parseSizeMp` 银行家舍入。MP 自带样本来源(`tests/cases/meta.py`、`tests/test_rust_accel.py`)已登记进 `scripts/mp-sync/ledger.json`。
|
||||
|
||||
| 链路 | 补迁前 | 补迁后 | 补迁后 missing / our_bug | 仍保留的登记 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| 标题识别(216 条 × 18 字段) | 字段级 92.9%(3611/3888);剔除 intentional/mp_bug/representation 后 97.4%;产品等价 177 条 | 字段级 94.4%(3670/3888);剔除后 **100%**(3670/3670);产品等价 216 条,完全一致 93 条 | 0 / 0(前 31 / 65 处) | intentional 135、mp_bug 73、representation 10 |
|
||||
| 显式 ID(find_metainfo) | 8/11 | 10/11 | 0 / 0 | mp_bug 1(`{doubanid=}` MP 不认) |
|
||||
| 过滤规则(可完整表达 644 case) | 95.7%(616/644) | 97.8%(630/644) | 7(每集体积 sizeBasis,属 Slot 能力,W5-C 范围)/ 0(前 our_bug 14) | mp_bug 7;近似规则 84 case 中 31 处(missing 18、not_expressible 14,含新增 R25:t17) |
|
||||
| 站点索引解析 | 98.1%(2069/2108,41 条登记) | 99.5%(2469/2481,13 条登记;tbody 分支让 9 个定义多解析出 45 行) | 0 / 0(前 missing 1、our_bug 4) | mp_bug 12、intentional 1 |
|
||||
| 繁简(69 条) | 84.1%(58/69) | 92.8%(64/69);剔除 intentional/mp_bug 后 100% | 0 / 0 | intentional 4(乾/瞭/髮 一对多字,见 `zh-map.ts` 注释)、mp_bug 1(慶餘年) |
|
||||
| RSS | 95.5%(234/245) | 未变 | 0 / 0 | mp_bug 4、intentional 12 |
|
||||
|
||||
**分类调整说明**:修掉 our_bug 后,有 27 处差异暴露为 MP 侧缺陷,改登记为 mp_bug,主要是 MetaAnime 丢中文名(`[秋叶原冥途战争][Akiba Maid Sensou]…`、`★7月新番[即使如此依旧步步进逼/Soredemo…]`,MP 取 `/` 后段或整块删掉中英混排块,name 随之取英文名)、MetaAnime 不输出 Baha 平台/裸 `[2160]`/BDRIP 来源、把片名方括号当组名、把假名名当英文名、字幕页第 3 行 `div:nth-child(3)` 命中行自身。新增 intentional 10 处都是既有偏离类别:有集号无季号推定第 1 季(6)、开头方括号组名兜底(`[YTS.MX]`、`[Hall_of_C]`,2)、剪辑版本进 cut 字段(`Caligula The Ultimate Cut`,2)。综艺日期/期号、cut、未知组兜底等 REQ 要求的偏离全部保留。
|
||||
|
||||
**取舍**:行内查询的 descendant-or-self 语义只用于促销 case / hr / labels(NexusPHP 把 free_bg、sticky 挂在 `<tr>` 上);取值字段仍只查后代,和 MP Rust 快路径一致,避免 `div:nth-child(n)` 命中行本身。`中文名A / 中文名B` 与 MP 一样取后者。
|
||||
|
||||
**遗留**:字幕分支只到解析层(`SiteSpider.parse` + `searchType`),站点适配器接口(`sites/types.ts` 的搜索字幕方法)未接;过滤器的每集体积、tmdb 放行条件、SPECSUB 等属 Slot 能力扩展;RSS 不带时区时间按站点时区解释(P2)与 HTML 命名实体(P3)未做。
|
||||
@@ -34,7 +34,7 @@ node scripts/mp-sync/movieclaw-import.mjs --check # 只比较,有差异退出
|
||||
## 3. 当前对照总表
|
||||
|
||||
<!-- mp-sync:table:begin -->
|
||||
共 49 个上游文件(`adapters/` = `packages/adapters/src/`)。
|
||||
共 51 个上游文件(`adapters/` = `packages/adapters/src/`)。
|
||||
|
||||
| 上游文件 | 本项目文件 | 移植提交 | sha256(前 12 位) | 来源 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
@@ -87,6 +87,8 @@ node scripts/mp-sync/movieclaw-import.mjs --check # 只比较,有差异退出
|
||||
| `app/modules/qbittorrent/qbittorrent.py` | `adapters/qbittorrent/client.ts`<br>`adapters/qbittorrent/state.ts` | `e6820a8` | `ab02e97e986f` | manual |
|
||||
| `app/modules/themoviedb/tmdbapi.py` | `adapters/tmdb/client.ts`<br>`adapters/tmdb/match.ts` | `e6820a8` | `787553a6f57d` | manual |
|
||||
| `app/schemas/site.py` | `adapters/sites/user-parsers/types.ts` | `e6820a8` | `e7952ed40b7b` | tag |
|
||||
| `tests/cases/meta.py` | `packages/domain/test/differential/meta-mp.json`<br>`packages/domain/test/differential/meta-samples.json` | `e6820a8` | `3af375cf2c43` | manual |
|
||||
| `tests/test_rust_accel.py` | `packages/adapters/test/differential/indexer.json`<br>`scripts/mp-sync/gen-differential.py` | `e6820a8` | `0259f245d278` | manual |
|
||||
<!-- mp-sync:table:end -->
|
||||
|
||||
## 4. 移植时的统一偏离(每个文件头另有细节)
|
||||
|
||||
Reference in new issue
Block a user