From 5349554b0137b0cc9f6309ad6ef8c1b18e29cd20 Mon Sep 17 00:00:00 2001 From: Sucukdeluxe Date: Wed, 3 Jun 2026 11:55:42 +0200 Subject: [PATCH] =?UTF-8?q?Renaming:=20Scene-Gruppen=20mit=20Unterstrich?= =?UTF-8?q?=20erkennen=20(-idTV=5FiNT)=20=E2=80=94=20kein=20Verschlimmbess?= =?UTF-8?q?ern=20zum=20Paketnamen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit User-Report (aus Desktop-Rename-Log): castle.s08e02.german.dl.720p.web.h264-idtv_int.mkv im sauberen Episoden-Ordner "Castle.S08E02.GERMAN.DL.720p.WEB.H264-idTV_iNT" (Paket "scn2-cstl7") wurde zu "scn2-cstl7.S08E02.mkv" VERSCHLIMMBESSERT (guter Quellname -> obfuskierter Paketname). Ursache (vorbestehend, nicht durch v1.7.178): hasSceneGroupSuffix erkannte die Scene-Gruppe "-idTV_iNT" nicht (SCENE_GROUP_SUFFIX_RE + Fallback verbieten Unterstriche). Der saubere Episoden-Ordner wurde dadurch als Nicht-Scene-Ordner verworfen, und die Namensherleitung fiel auf den obfuskierten Paket-Ordner "scn2-cstl7" zurueck -> "scn2-cstl7.S08E02". Fix: hasSceneGroupSuffix nutzt jetzt zusaetzlich extractFlexibleSceneGroupSuffix (existierte bereits, war aber nicht verdrahtet), das Unterstrich-Gruppen korrekt erkennt (splittet auf "_", validiert jeden Teil). Der saubere Ordner wird akzeptiert -> idealer Name "Castle.S08E02.GERMAN.DL.720p.WEB.H264-idTV_iNT". Mein v1.7.178-Folder-Token-Guard schuetzt generische Paketordner (Mega-Direct) weiterhin. Verifiziert: tsc 6, 679 Tests gruen (+1 Charakterisierung fuer den idTV_iNT-Fall), Build gruen. Co-Authored-By: Claude Opus 4.8 (1M context) --- src/main/download-manager.ts | 9 ++++++++- tests/auto-rename.test.ts | 16 ++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/main/download-manager.ts b/src/main/download-manager.ts index e0b72b2..3bae838 100644 --- a/src/main/download-manager.ts +++ b/src/main/download-manager.ts @@ -1029,7 +1029,14 @@ function hasSceneGroupSuffix(fileName: string): boolean { const fallbackMatch = text.match(SCENE_GROUP_SUFFIX_FALLBACK_RE); const suffix = String(fallbackMatch?.[1] || "").trim(); - return isValidSceneGroupSuffix(suffix); + if (isValidSceneGroupSuffix(suffix)) { + return true; + } + // Auch Scene-Gruppen MIT Unterstrich erkennen (z.B. "-idTV_iNT", "-NZ_iNT", "-DUBBED_iNT"). + // Sonst wird ein sauber benannter Episoden-Ordner wie "Castle.S08E02.GERMAN.DL.720p.WEB.H264- + // idTV_iNT" faelschlich NICHT als Scene-Ordner erkannt → die Namensherleitung faellt auf den + // obfuskierten Paket-Ordner ("scn2-cstl7") zurueck und verschlimmbessert den Namen. + return extractFlexibleSceneGroupSuffix(text) !== null; } /** Older scene releases used "1x01" instead of "S01E01". The episode group diff --git a/tests/auto-rename.test.ts b/tests/auto-rename.test.ts index fb14d69..81b7b82 100644 --- a/tests/auto-rename.test.ts +++ b/tests/auto-rename.test.ts @@ -112,6 +112,22 @@ describe("decideAutoRenameBaseName (shared naming decision — used by auto-rena ); expect(decision.kind).toBe("skip"); }); + + it("uses the CLEAN per-episode folder (scene group WITH underscore, e.g. -idTV_iNT) — not the obfuscated package folder", () => { + // User-Report v1.7.178: castle.s08e02....mkv im sauberen Ordner "Castle.S08E02...H264-idTV_iNT" + // (Paket: "scn2-cstl7") wurde zu "scn2-cstl7.S08E02" verschlimmbessert, weil hasSceneGroupSuffix + // die Unterstrich-Gruppe "-idTV_iNT" nicht erkannte und auf den Paketordner zurueckfiel. + const epFolder = "Castle.S08E02.GERMAN.DL.720p.WEB.H264-idTV_iNT"; + const decision = decideAutoRenameBaseName( + [epFolder, "scn2-cstl7"], + "castle.s08e02.german.dl.720p.web.h264-idtv_int.mkv", + "castle.s08e02.german.dl.720p.web.h264-idtv_int", + epFolder, + "scn2-cstl7" + ); + expect(decision.kind).toBe("rename"); + expect(decision.kind === "rename" && decision.baseName).toBe(epFolder); + }); }); describe("hasMeaningfulSeriesPrefix", () => {