mirror of
https://github.com/meisnate12/Plex-Meta-Manager
synced 2024-11-10 06:54:21 +00:00
added show_missing and save_missing
This commit is contained in:
parent
fd20782ae6
commit
4ef6ca7c21
4 changed files with 51 additions and 11 deletions
|
@ -11,7 +11,12 @@ class CollectionBuilder:
|
|||
self.library = library
|
||||
self.name = name
|
||||
self.data = data
|
||||
self.details = {"arr_tag": None}
|
||||
self.details = {
|
||||
"arr_tag": None,
|
||||
"show_filtered": library.show_filtered,
|
||||
"show_missing": library.show_missing,
|
||||
"save_missing": library.save_missing
|
||||
}
|
||||
self.methods = []
|
||||
self.filters = []
|
||||
self.posters = []
|
||||
|
@ -242,11 +247,11 @@ class CollectionBuilder:
|
|||
elif method_name == "file_background":
|
||||
if os.path.exists(data[m]): self.backgrounds.append(("file", os.path.abspath(data[m]), method_name))
|
||||
else: raise Failed("Collection Error: Background Path Does Not Exist: {}".format(os.path.abspath(data[m])))
|
||||
elif method_name in ["add_to_arr", "show_filtered"]:
|
||||
if isinstance(data[m], bool): self.details[method_name] = data[m]
|
||||
else: raise Failed("Collection Error: {} must be either true or false".format(method_name))
|
||||
elif method_name == "arr_tag":
|
||||
self.details[method_name] = util.get_list(data[m])
|
||||
elif method_name in util.boolean_details:
|
||||
if isinstance(data[m], bool): self.details[method_name] = data[m]
|
||||
else: raise Failed("Collection Error: {} must be either true or false".format(method_name))
|
||||
elif method_name in util.all_details:
|
||||
self.details[method_name] = data[m]
|
||||
elif method_name in ["year", "year.not"]:
|
||||
|
@ -604,7 +609,7 @@ class CollectionBuilder:
|
|||
elif "trakt" in method: items_found += check_map(self.config.Trakt.get_items(method, value, self.library.is_movie))
|
||||
else: logger.error("Collection Error: {} method not supported".format(method))
|
||||
|
||||
if len(items) > 0: map = self.library.add_to_collection(collection_obj if collection_obj else collection_name, items, self.filters, self.library.show_filtered, map, movie_map, show_map)
|
||||
if len(items) > 0: map = self.library.add_to_collection(collection_obj if collection_obj else collection_name, items, self.filters, self.details["show_filtered"], map, movie_map, show_map)
|
||||
else: logger.error("No items found to add to this collection ")
|
||||
|
||||
if len(missing_movies) > 0 or len(missing_shows) > 0:
|
||||
|
@ -625,13 +630,15 @@ class CollectionBuilder:
|
|||
title = str(movie.title)
|
||||
if not_lang is None or (not_lang is True and movie.original_language not in terms) or (not_lang is False and movie.original_language in terms):
|
||||
missing_movies_with_names.append((title, missing_id))
|
||||
logger.info("{} Collection | ? | {} (TMDb: {})".format(collection_name, title, missing_id))
|
||||
elif self.library.show_filtered is True:
|
||||
if self.details["show_missing"] is True:
|
||||
logger.info("{} Collection | ? | {} (TMDb: {})".format(collection_name, title, missing_id))
|
||||
elif self.details["show_filtered"] is True:
|
||||
logger.info("{} Collection | X | {} (TMDb: {})".format(collection_name, title, missing_id))
|
||||
except Failed as e:
|
||||
logger.error(e)
|
||||
logger.info("{} Movie{} Missing".format(len(missing_movies_with_names), "s" if len(missing_movies_with_names) > 1 else ""))
|
||||
self.library.add_missing(collection_name, missing_movies_with_names, True)
|
||||
if self.details["save_missing"] is True:
|
||||
self.library.add_missing(collection_name, missing_movies_with_names, True)
|
||||
if self.do_arr and self.library.Radarr:
|
||||
self.library.Radarr.add_tmdb([missing_id for title, missing_id in missing_movies_with_names], tag=self.details["arr_tag"])
|
||||
if len(missing_shows) > 0 and self.library.is_show:
|
||||
|
@ -640,11 +647,13 @@ class CollectionBuilder:
|
|||
try:
|
||||
title = str(self.config.TVDb.get_series(self.library.Plex.language, tvdb_id=missing_id).title.encode("ascii", "replace").decode())
|
||||
missing_shows_with_names.append((title, missing_id))
|
||||
logger.info("{} Collection | ? | {} (TVDB: {})".format(collection_name, title, missing_id))
|
||||
if self.details["show_missing"] is True:
|
||||
logger.info("{} Collection | ? | {} (TVDB: {})".format(collection_name, title, missing_id))
|
||||
except Failed as e:
|
||||
logger.error(e)
|
||||
logger.info("{} Show{} Missing".format(len(missing_shows_with_names), "s" if len(missing_shows_with_names) > 1 else ""))
|
||||
self.library.add_missing(c, missing_shows_with_names, False)
|
||||
if self.details["save_missing"] is True:
|
||||
self.library.add_missing(c, missing_shows_with_names, False)
|
||||
if self.do_arr and self.library.Sonarr:
|
||||
self.library.Sonarr.add_tvdb([missing_id for title, missing_id in missing_shows_with_names], tag=self.details["arr_tag"])
|
||||
|
||||
|
|
|
@ -151,6 +151,8 @@ class Config:
|
|||
self.general["plex"]["sync_mode"] = check_for_attribute(self.data, "sync_mode", parent="plex", default="append", test_list=["append", "sync"], options="| \tappend (Only Add Items to the Collection)\n| \tsync (Add & Remove Items from the Collection)") if "plex" in self.data else "append"
|
||||
self.general["plex"]["show_unmanaged"] = check_for_attribute(self.data, "show_unmanaged", parent="plex", var_type="bool", default=True) if "plex" in self.data else True
|
||||
self.general["plex"]["show_filtered"] = check_for_attribute(self.data, "show_filtered", parent="plex", var_type="bool", default=False) if "plex" in self.data else False
|
||||
self.general["plex"]["show_missing"] = check_for_attribute(self.data, "show_missing", parent="plex", var_type="bool", default=True) if "plex" in self.data else True
|
||||
self.general["plex"]["save_missing"] = check_for_attribute(self.data, "save_missing", parent="plex", var_type="bool", default=True) if "plex" in self.data else True
|
||||
|
||||
self.general["radarr"] = {}
|
||||
self.general["radarr"]["url"] = check_for_attribute(self.data, "url", parent="radarr", default_is_none=True) if "radarr" in self.data else None
|
||||
|
@ -267,6 +269,26 @@ class Config:
|
|||
else:
|
||||
logger.warning("Config Warning: plex sub-attribute show_filtered is blank using general value: {}".format(self.general["plex"]["show_filtered"]))
|
||||
|
||||
params["show_missing"] = self.general["plex"]["show_missing"]
|
||||
if "plex" in libs[lib] and "show_missing" in libs[lib]["plex"]:
|
||||
if libs[lib]["plex"]["show_missing"]:
|
||||
if isinstance(libs[lib]["plex"]["show_missing"], bool):
|
||||
params["plex"]["show_missing"] = libs[lib]["plex"]["show_missing"]
|
||||
else:
|
||||
logger.warning("Config Warning: plex sub-attribute show_missing must be either true or false using general value: {}".format(self.general["plex"]["show_missing"]))
|
||||
else:
|
||||
logger.warning("Config Warning: plex sub-attribute show_missing is blank using general value: {}".format(self.general["plex"]["show_missing"]))
|
||||
|
||||
params["save_missing"] = self.general["plex"]["save_missing"]
|
||||
if "plex" in libs[lib] and "save_missing" in libs[lib]["plex"]:
|
||||
if libs[lib]["plex"]["save_missing"]:
|
||||
if isinstance(libs[lib]["plex"]["save_missing"], bool):
|
||||
params["plex"]["save_missing"] = libs[lib]["plex"]["save_missing"]
|
||||
else:
|
||||
logger.warning("Config Warning: plex sub-attribute save_missing must be either true or false using general value: {}".format(self.general["plex"]["save_missing"]))
|
||||
else:
|
||||
logger.warning("Config Warning: plex sub-attribute save_missing is blank using general value: {}".format(self.general["plex"]["save_missing"]))
|
||||
|
||||
params["tmdb"] = self.TMDb
|
||||
params["tvdb"] = self.TVDb
|
||||
|
||||
|
|
|
@ -78,6 +78,8 @@ class PlexAPI:
|
|||
self.sync_mode = params["sync_mode"]
|
||||
self.show_unmanaged = params["show_unmanaged"]
|
||||
self.show_filtered = params["show_filtered"]
|
||||
self.show_missing = params["show_missing"]
|
||||
self.save_missing = params["save_missing"]
|
||||
self.plex = params["plex"]
|
||||
self.radarr = params["radarr"]
|
||||
self.sonarr = params["sonarr"]
|
||||
|
|
|
@ -386,13 +386,20 @@ movie_only_filters = [
|
|||
"video_resolution", "video_resolution.not",
|
||||
"writer", "writer.not"
|
||||
]
|
||||
boolean_details = [
|
||||
"add_to_arr",
|
||||
"show_filtered",
|
||||
"show_missing",
|
||||
"save_missing"
|
||||
]
|
||||
all_details = [
|
||||
"sort_title", "content_rating",
|
||||
"summary", "tmdb_summary", "tmdb_description", "tmdb_biography",
|
||||
"collection_mode", "collection_order",
|
||||
"url_poster", "tmdb_poster", "tmdb_profile", "file_poster",
|
||||
"url_background", "file_background",
|
||||
"name_mapping", "add_to_arr"
|
||||
"name_mapping", "add_to_arr",
|
||||
"show_filtered", "show_missing", "save_missing"
|
||||
]
|
||||
discover_movie = [
|
||||
"language", "with_original_language", "region", "sort_by",
|
||||
|
|
Loading…
Reference in a new issue