The Pitt S01e11 720p Web-dl [repack] -
return { "show": show, "season": season, "episode": episode, "quality": quality, "source": source.lower(), "extension": ext } def clean_rename(old_path: Path, output_dir: Path = None, dry_run=True): """ Rename a messy TV file to 'Show Name - S01E11 - Quality Source.ext' """ old_path = Path(old_path) info = parse_tv_filename(old_path.name)
if not match: raise ValueError(f"Filename not recognized: {filename}")
if dry_run: print(f"[DRY RUN] Would rename:\n {old_path.name}\n→ {new_name}\n") else: shutil.move(str(old_path), str(new_path)) print(f"✓ Renamed to: {new_name}") the pitt s01e11 720p web-dl
the pitt s01e11 720p web-dl
# Pattern: show name + sXXeYY + optional quality + optional source pattern = r'^(.*?)\s+s(\d+)e(\d+)\s+(\d+p)?\s*-?\s*(\w+)?$' match = re.search(pattern, name, re.IGNORECASE) return { "show": show, "season": season, "episode": episode,
new_name = f"{info['show']} - S{info['season']:02d}E{info['episode']:02d} - {info['quality']} {info['source'].upper()}{info['extension']}" new_path = (output_dir or old_path.parent) / new_name
# Dry run rename clean_rename(Path(test_file), dry_run=True) return { "show": show
show = match.group(1).replace('.', ' ').replace('_', ' ').strip().title() season = int(match.group(2)) episode = int(match.group(3)) quality = match.group(4) or "unknown" source = match.group(5) or "unknown"