Fix: bereits sauber benannte Folgen werden vom Collect nicht mehr verkrueppelt (Miniserien)
Bei Serien, deren per-Episode-Ordner nur einen Episode-only-Token + Titel tragen
("Show.E01.Titel...-GRP", KEIN S01), benannte der Collect eine vom Auto-Rename bereits
korrekt benannte Datei ("Show.S01E01...-GRP.mkv") neu — und haengte den Staffel/Folgen-
Token HINTER die Scene-Gruppe ("...-GRP.S01E01"). In der Library stand dann der Episoden-
titel + ein angehaengtes S01E01 statt sauber S01E01 (gemeldet fuer "Steven Spielbergs Taken").
decideAutoRenameBaseName behaelt im Guard-B-Zweig "Ziel-Ordner ohne SxxExx" jetzt die
QUELLE, wenn sie ein nicht obfuskierter Scene-Name ist (sie traegt dort den einzigen echten
SxxExx-Token) — statt den Token an den Ordnernamen anzuhaengen. Obfuskierte/rohe Quellen
werden weiter aus dem Ordner sauber benannt. Wirkt in Collect und Auto-Rename.
Adversarial (Workflow) abgesichert: der Diskriminator ist allein "Quelle obfuskiert?" —
die Praefix-Laenge ist KEIN Kriterium, sonst fielen kurze Serien (ER, V, 24, Yu) durch und
zeigten denselben Bug. Regressionstest mit ER.S01E01 gepinnt. 4 Unit- + 1 Integrationstest.
This commit is contained in:
@@ -1502,6 +1502,19 @@ export function decideAutoRenameBaseName(
|
||||
if (targetBaseName && sourceEpisodeToken) {
|
||||
const targetEpisodeToken = extractEpisodeToken(targetBaseName);
|
||||
if (!targetEpisodeToken) {
|
||||
// Die QUELLE traegt einen sauberen SxxExx-Token, der Ziel-Ordner aber nur einen
|
||||
// Episoden-Titel mit Episode-only-Token (Ordner "Show.E01.Titel...-GRP", Quelle bereits
|
||||
// "Show.S01E01...-GRP" — z.B. Miniserien, die der Auto-Rename schon korrekt benannt hat).
|
||||
// Den Quell-Token an den Ordnernamen anzuhaengen erzeugt einen verkrueppelten Namen
|
||||
// ("...-GRP.S01E01" — Token HINTER der Gruppe). In DIESEM Zweig traegt die Quelle den
|
||||
// EINZIGEN SxxExx-Token (der Ordner hat keinen) → ist die Quelle ein sauberer, NICHT
|
||||
// obfuskierter Scene-Name, ist sie autoritativ → behalten, den Ordner NICHT verwenden.
|
||||
// (Die Laenge des Serien-Praefixes ist KEIN Kriterium: kurze Serien wie "ER"/"V"/"24"
|
||||
// sind genauso autoritativ; nur Obfuskierung soll den Ordner gewinnen lassen.) Greift
|
||||
// v.a. im Collect, der sonst den fertigen Auto-Rename-Namen wieder zerstoeren wuerde.
|
||||
if (!looksLikeObfuscatedSceneFileName(sourceName)) {
|
||||
return { kind: "skip", reason: "source-better", targetBaseName };
|
||||
}
|
||||
const insertedEpisode = targetBaseName.replace(
|
||||
/(^|[._\-\s])(s\d{1,2})(?=[A-Za-z0-9])/i,
|
||||
`$1${sourceEpisodeToken}.`
|
||||
|
||||
Reference in New Issue
Block a user