From a18a7b517402e7166e64f7814a718e105da66f2a Mon Sep 17 00:00:00 2001 From: Elegy233 <82034747+wan0ge@users.noreply.github.com> Date: Sun, 26 Jul 2026 21:00:07 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=90=88=E5=B9=B6=E5=90=88=E9=9B=86?= =?UTF-8?q?=E6=8E=A2=E6=B5=8B=E5=88=86=E7=A6=BB=203D/2D=20=E7=BB=B4?= =?UTF-8?q?=E5=BA=A6=EF=BC=8C=E9=98=B2=E6=AD=A2=E8=AF=AF=E5=88=A4=E6=96=AD?= =?UTF-8?q?=E5=90=88=E5=B9=B6=20(#386)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit getContentCategory 对 2D 动漫和 3D 动漫均返回 ANIME, 导致同 baseTitle 的 3D 番进入与 2D 番同一合集探测组。 如 tencent 择天记(2020)【动漫】(2D,61集) 与 iqiyi 择天记(2026)【3D动漫】(3D,26集) 被误分到同一组而产生错误合并。 合集探测分组 key 中加入维度标记(3D/2D/-),使 3D 与 2D 番剧互不进入同一探测组,合集探测各查各的。 --- danmu_api/utils/merge-util.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/danmu_api/utils/merge-util.js b/danmu_api/utils/merge-util.js index 08c8fd8..e43b674 100644 --- a/danmu_api/utils/merge-util.js +++ b/danmu_api/utils/merge-util.js @@ -2145,14 +2145,19 @@ function detectCollectionCandidates(curAnimes) { if (!clean) return; const category = getContentCategory(anime.animeTitle, realAnime.typeDescription, realAnime.source); - const groupKey = `${clean}|${category}`; + // 3D/2D 维度分离:防止【3D动漫】与【动漫】在同一个合集探测组内被误合并 + // 如 tencent 择天记(2020)【动漫】(2D) 与 iqiyi 择天记(2026)【3D动漫】(3D) 不应互成合集 + const is3D = (realAnime.typeDescription || '').includes('3D') || /3[dD]/.test(anime.animeTitle || ''); + const is2D = (realAnime.typeDescription || '').includes('2D') || /2[dD]/.test(anime.animeTitle || ''); + const dim = is3D ? '3D' : (is2D ? '2D' : '-'); + const groupKey = `${clean}|${category}|${dim}`; if (!groups.has(groupKey)) groups.set(groupKey, []); groups.get(groupKey).push(anime); }); for (const [groupKey, list] of groups.entries()) { if (list.length < 2) continue; - const [baseTitle, category] = groupKey.split('|'); + const [baseTitle, category, dim] = groupKey.split('|'); const itemDetails = list.map(a => ` - [${a.source}] ${a.animeTitle}`).join('\n'); log("info", `[Merge-Check] [合集探测] 正在检查分组: "${baseTitle}" [${category}] (包含 ${list.length} 个条目):\n${itemDetails}`);