mirror of
https://github.com/meisnate12/Plex-Meta-Manager
synced 2024-11-25 22:10:22 +00:00
commit
d6336815b5
6 changed files with 14 additions and 10 deletions
|
@ -1,5 +1,5 @@
|
|||
# Plex Meta Manager
|
||||
#### Version 1.7.1
|
||||
#### Version 1.7.2
|
||||
|
||||
The original concept for Plex Meta Manager is [Plex Auto Collections](https://github.com/mza921/Plex-Auto-Collections), but this is rewritten from the ground up to be able to include a scheduler, metadata edits, multiple libraries, and logging. Plex Meta Manager is a Python 3 script that can be continuously run using YAML configuration files to update on a schedule the metadata of the movies, shows, and collections in your libraries as well as automatically build collections based on various methods all detailed in the wiki. Some collection examples that the script can automatically build and update daily include Plex Based Searches like actor, genre, or studio collections or Collections based on TMDb, IMDb, Trakt, TVDb, AniDB, or MyAnimeList lists and various other services.
|
||||
|
||||
|
|
|
@ -638,13 +638,13 @@ class CollectionBuilder:
|
|||
prefix_list = []
|
||||
if "exclude_prefix" in dict_methods and method_data[dict_methods["exclude_prefix"]]:
|
||||
if isinstance(method_data[dict_methods["exclude_prefix"]], list):
|
||||
prefix_list.extend(method_data[dict_methods["exclude_prefix"]])
|
||||
prefix_list.extend([exclude for exclude in method_data[dict_methods["exclude_prefix"]] if exclude])
|
||||
else:
|
||||
prefix_list.append(str(method_data[dict_methods["exclude_prefix"]]))
|
||||
exact_list = []
|
||||
if "exclude" in dict_methods and method_data[dict_methods["exclude"]]:
|
||||
if isinstance(method_data[dict_methods["exclude"]], list):
|
||||
exact_list.extend(method_data[dict_methods["exclude"]])
|
||||
exact_list.extend([exclude for exclude in method_data[dict_methods["exclude"]] if exclude])
|
||||
else:
|
||||
exact_list.append(str(method_data[dict_methods["exclude"]]))
|
||||
if len(prefix_list) == 0 and len(exact_list) == 0:
|
||||
|
@ -1230,6 +1230,9 @@ class CollectionBuilder:
|
|||
except BadRequest:
|
||||
logger.error(f"Detail: {image_method} failed to update {message}")
|
||||
|
||||
if len(self.posters) > 0:
|
||||
logger.info("")
|
||||
|
||||
if len(self.posters) > 1:
|
||||
logger.info(f"{len(self.posters)} posters found:")
|
||||
for p in self.posters:
|
||||
|
@ -1254,7 +1257,8 @@ class CollectionBuilder:
|
|||
elif "tmdb_show_details" in self.posters: set_image("tmdb_show_details", self.posters)
|
||||
else: logger.info("No poster to update")
|
||||
|
||||
logger.info("")
|
||||
if len(self.backgrounds) > 0:
|
||||
logger.info("")
|
||||
|
||||
if len(self.backgrounds) > 1:
|
||||
logger.info(f"{len(self.backgrounds)} backgrounds found:")
|
||||
|
|
|
@ -677,7 +677,7 @@ class Config:
|
|||
util.print_end(length, str(e))
|
||||
continue
|
||||
new_genres = [genre.name for genre in tmdb_item.genres]
|
||||
elif library.mass_genre_update == "omdb":
|
||||
elif library.mass_genre_update in ["omdb", "imdb"]:
|
||||
if self.OMDb.limit is True:
|
||||
break
|
||||
if "imdb" not in ids:
|
||||
|
|
|
@ -12,7 +12,7 @@ from ruamel import yaml
|
|||
|
||||
logger = logging.getLogger("Plex Meta Manager")
|
||||
|
||||
builders = ["plex_all", "plex_collection", "plex_collectionless", "plex_search",]
|
||||
builders = ["plex_all", "plex_collection", "plex_collectionless", "plex_search"]
|
||||
search_translation = {
|
||||
"audio_language": "audioLanguage",
|
||||
"content_rating": "contentRating",
|
||||
|
@ -685,8 +685,8 @@ class PlexAPI:
|
|||
match = re.search("[Ss]\\d+[Ee]\\d+", episode_str)
|
||||
if match:
|
||||
output = match.group(0)[1:].split("E" if "E" in match.group(0) else "e")
|
||||
episode_id = int(output[0])
|
||||
season_id = int(output[1])
|
||||
season_id = int(output[0])
|
||||
episode_id = int(output[1])
|
||||
logger.info(f"Updating episode S{episode_id}E{season_id} of {mapping_name}...")
|
||||
try: episode = item.episode(season=season_id, episode=episode_id)
|
||||
except NotFound: logger.error(f"Metadata Error: episode {episode_id} of season {season_id} not found")
|
||||
|
|
|
@ -93,7 +93,7 @@ class SonarrAPI:
|
|||
folder = options["folder"] if "folder" in options else self.root_folder_path
|
||||
monitor = options["monitor"] if "monitor" in options else self.monitor
|
||||
quality_profile_id = self.get_profile_id(options["quality"], "quality_profile") if "quality" in options else self.quality_profile_id
|
||||
language_profile_id = self.get_profile_id(options["language"], "language_profile") if "quality" in options else self.quality_profile_id
|
||||
language_profile_id = self.get_profile_id(options["language"], "language_profile") if "quality" in options else self.language_profile_id
|
||||
series = options["series"] if "series" in options else self.series_type
|
||||
season = options["season"] if "season" in options else self.season_folder
|
||||
tags = options["tag"] if "tag" in options else self.tag
|
||||
|
|
|
@ -89,7 +89,7 @@ util.centered("| |_) | |/ _ \\ \\/ / | |\\/| |/ _ \\ __/ _` | | |\\/| |/ _` | '_
|
|||
util.centered("| __/| | __/> < | | | | __/ || (_| | | | | | (_| | | | | (_| | (_| | __/ | ")
|
||||
util.centered("|_| |_|\\___/_/\\_\\ |_| |_|\\___|\\__\\__,_| |_| |_|\\__,_|_| |_|\\__,_|\\__, |\\___|_| ")
|
||||
util.centered(" |___/ ")
|
||||
util.centered(" Version: 1.7.1 ")
|
||||
util.centered(" Version: 1.7.2 ")
|
||||
util.separator()
|
||||
|
||||
if my_tests:
|
||||
|
|
Loading…
Reference in a new issue