Fix TheTVDB matching for 04x01 filenames and add all-seasons mode.

Parse NxNN and SxxExx layouts, match across every season when season is 0, and rewrite season plus episode numbers.

Co-authored-by: Cursor <[email protected]>
This commit is contained in:
Bulk Renamer
2026-07-03 17:34:12 -05:00
co-authored by Cursor
parent c54ee7876c
commit 69f759b6ce
6 changed files with 265 additions and 101 deletions
+9 -5
View File
@@ -9,7 +9,7 @@ from dataclasses import dataclass, field
from pathlib import Path
from typing import List, Optional
from .episode_match import rewrite_episode_number
from .episode_match import rewrite_episode_stem, EpisodeTarget, _coerce_target, parse_episode_stem
@dataclass
@@ -279,12 +279,16 @@ class TvdbEpisodeRenumberRule(Rule):
) -> tuple[str, str]:
if not self.episode_mapping or original_name is None:
return stem, ext
new_ep = self.episode_mapping.get(original_name)
if new_ep is None:
target_raw = self.episode_mapping.get(original_name)
if target_raw is None:
return stem, ext
new_stem = rewrite_episode_number(
parsed = parse_episode_stem(stem, self.pattern)
if not parsed:
return stem, ext
target = _coerce_target(target_raw, parsed)
new_stem = rewrite_episode_stem(
stem,
int(new_ep),
target,
padding=self.padding,
pattern=self.pattern,
)