Skip to content
This repository was archived by the owner on Mar 22, 2024. It is now read-only.

Commit 2a0d4d7

Browse files
authored
Merge pull request #4 from MrZablah/renamer_update_5.3.6
[UPDATE] Renamer 5.3.6
2 parents 7c2c16b + 971590f commit 2a0d4d7

File tree

1 file changed

+22
-25
lines changed

1 file changed

+22
-25
lines changed

modules/renamer.py

Lines changed: 22 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
# Name: renamer.py
33
# Description: This script will check for unmatched assets in your Plex library.
44
# It will output the results to a file in the logs folder.
5-
# This is a modified version of the original script by Drazzilb, Version: 5.3.4
5+
# This is a modified version of the original script by Drazzilb:
6+
# Version: 5.3.6
67
# you can find the original script here: https://github.com/Drazzilb08/userScripts/blob/master/python-scripts/renamer.py
78
# ===================================================================================================
89

@@ -179,7 +180,7 @@ def match_media(media, source_file_list, type):
179180
if item['status'] == 'upcoming' or item['status'] == 'announced':
180181
continue
181182
else:
182-
logger.warning(f"Unable to find year in path: {item['path']}")
183+
logger.warning(f"Unable to find year in {item['title']} path")
183184
try:
184185
if item['alternateTitles']:
185186
for i in item['alternateTitles']:
@@ -491,50 +492,46 @@ def sort_files(files, path, dict, basename):
491492

492493

493494
def get_assets_files(assets_path, override_paths):
494-
asset_files = {"series": [], "movies": [], "collections": []}
495-
override_files = {"series": [], "movies": [], "collections": []}
496-
asset_types = ['series', 'movies', 'collections']
495+
asset_files = {asset_type: [] for asset_type in ['series', 'movies', 'collections']}
496+
override_files = {asset_type: [] for asset_type in ['series', 'movies', 'collections']}
497497
if assets_path:
498498
files = get_files(assets_path)
499499
basename = os.path.basename(assets_path.rstrip('/'))
500500
asset_files = sort_files(files, assets_path, asset_files, basename)
501501
if isinstance(override_paths, str):
502502
override_paths = [override_paths]
503503
if override_paths:
504-
for paths in override_paths:
505-
files = get_files(paths)
506-
basename = os.path.basename(paths.rstrip('/'))
507-
override_files = sort_files(files, paths, override_files, basename)
504+
for path in tqdm(override_paths, desc="Processing override paths", total=len(override_paths)):
505+
files = get_files(path)
506+
basename = os.path.basename(path.rstrip('/'))
507+
override_files = sort_files(files, path, override_files, basename)
508508
if override_files and asset_files:
509-
asset_files = handle_override_files(asset_files, override_files, asset_types)
510-
for asset_types in asset_files:
511-
for asset in asset_files[asset_types]:
509+
asset_files = handle_override_files(asset_files, override_files, path, asset_types=['series', 'movies', 'collections'])
510+
for asset_type in asset_files:
511+
for asset in asset_files[asset_type]:
512512
normalized_title = normalize_titles(asset['title'])
513513
asset['normalized_title'] = normalized_title
514-
for asset_types in asset_files:
515-
for asset in asset_files[asset_types]:
516514
asset['files'].sort()
517515
logger.debug(json.dumps(asset_files, indent=4))
518516
return asset_files
519517

520518

521-
def handle_override_files(asset_files, override_files, asset_types):
519+
def handle_override_files(asset_files, override_files, path, asset_types):
522520
for type in asset_types:
523521
for override_asset in override_files[type]:
524-
found = False
522+
asset_found = False
525523
for asset in asset_files[type]:
526524
if override_asset['title'] == asset['title'] and override_asset['year'] == asset['year']:
527-
found = True
528-
seen_files = set()
529-
logger.debug(f"Override asset: {override_asset['title']} {override_asset['year']} will be used instead of {asset['title']} {asset['year']}")
525+
asset_found = True
530526
for override_file in override_asset['files']:
531-
override_file_name = os.path.splitext(os.path.basename(override_file))[0]
532-
if override_file_name not in seen_files:
533-
seen_files.add(override_file_name)
534-
asset['files'] = [f for f in asset['files'] if os.path.splitext(os.path.basename(f))[0] != override_file_name]
535-
asset['files'].append(override_file)
536-
if not found:
527+
over_ride_file_name = os.path.split(override_file)[1]
528+
asset['files'] = [f for f in asset['files'] if os.path.split(f)[1] != over_ride_file_name]
529+
asset['files'].append(override_file)
530+
logger.debug(f"Override: Added {override_file} to {asset['title']}")
531+
break
532+
if not asset_found:
537533
asset_files[type].append(override_asset)
534+
logger.debug(f"Override: Added {override_asset['title']} to {type} from {path}")
538535
return asset_files
539536

540537

0 commit comments

Comments
 (0)