added debugs

pull/351/head
meisnate12 3 years ago
parent 306102d0ee
commit 4b3056f22d

@ -296,7 +296,7 @@ class CollectionBuilder:
if run_time.startswith("hour"): if run_time.startswith("hour"):
try: try:
if 0 <= int(param) <= 23: if 0 <= int(param) <= 23:
self.schedule += f"\nScheduled to run only on the {util.make_ordinal(param)} hour" self.schedule += f"\nScheduled to run only on the {util.make_ordinal(int(param))} hour"
if self.config.run_hour == int(param): if self.config.run_hour == int(param):
skip_collection = False skip_collection = False
else: else:
@ -314,7 +314,7 @@ class CollectionBuilder:
elif run_time.startswith("month"): elif run_time.startswith("month"):
try: try:
if 1 <= int(param) <= 31: if 1 <= int(param) <= 31:
self.schedule += f"\nScheduled monthly on the {util.make_ordinal(param)}" self.schedule += f"\nScheduled monthly on the {util.make_ordinal(int(param))}"
if self.current_time.day == int(param) or (self.current_time.day == last_day.day and int(param) > last_day.day): if self.current_time.day == int(param) or (self.current_time.day == last_day.day and int(param) > last_day.day):
skip_collection = False skip_collection = False
else: else:
@ -349,7 +349,7 @@ class CollectionBuilder:
logger.warning(f"Collection Warning: run_again attribute is blank defaulting to false") logger.warning(f"Collection Warning: run_again attribute is blank defaulting to false")
else: else:
logger.debug(f"Value: {self.data[methods['run_again']]}") logger.debug(f"Value: {self.data[methods['run_again']]}")
self.run_again = util.get_bool("run_again", self.data[methods["run_again"]]) self.run_again = util.parse_bool("run_again", self.data[methods["run_again"]])
self.sync = self.library.sync_mode == "sync" self.sync = self.library.sync_mode == "sync"
if "sync_mode" in methods: if "sync_mode" in methods:
@ -372,7 +372,7 @@ class CollectionBuilder:
logger.warning(f"Collection Warning: build_collection attribute is blank defaulting to true") logger.warning(f"Collection Warning: build_collection attribute is blank defaulting to true")
else: else:
logger.debug(f"Value: {self.data[methods['build_collection']]}") logger.debug(f"Value: {self.data[methods['build_collection']]}")
self.build_collection = util.get_bool("build_collection", self.data[methods["build_collection"]]) self.build_collection = util.parse_bool("build_collection", self.data[methods["build_collection"]])
if "tmdb_person" in methods: if "tmdb_person" in methods:
logger.info("") logger.info("")
@ -596,7 +596,7 @@ class CollectionBuilder:
else: else:
self.details[method_final] = util.get_list(method_data) self.details[method_final] = util.get_list(method_data)
elif method_name in boolean_details: elif method_name in boolean_details:
self.details[method_name] = util.get_bool(method_name, method_data) self.details[method_name] = util.parse_bool(method_name, method_data)
elif method_name in string_details: elif method_name in string_details:
self.details[method_name] = str(method_data) self.details[method_name] = str(method_data)
@ -638,11 +638,11 @@ class CollectionBuilder:
def _radarr(self, method_name, method_data): def _radarr(self, method_name, method_data):
if method_name == "radarr_add": if method_name == "radarr_add":
self.add_to_radarr = util.get_bool(method_name, method_data) self.add_to_radarr = util.parse_bool(method_name, method_data)
elif method_name == "radarr_folder": elif method_name == "radarr_folder":
self.radarr_options["folder"] = method_data self.radarr_options["folder"] = method_data
elif method_name in ["radarr_monitor", "radarr_search"]: elif method_name in ["radarr_monitor", "radarr_search"]:
self.radarr_options[method_name[7:]] = util.get_bool(method_name, method_data) self.radarr_options[method_name[7:]] = util.parse_bool(method_name, method_data)
elif method_name == "radarr_availability": elif method_name == "radarr_availability":
if str(method_data).lower() in radarr.availability_translation: if str(method_data).lower() in radarr.availability_translation:
self.radarr_options["availability"] = str(method_data).lower() self.radarr_options["availability"] = str(method_data).lower()
@ -656,7 +656,7 @@ class CollectionBuilder:
def _sonarr(self, method_name, method_data): def _sonarr(self, method_name, method_data):
if method_name == "sonarr_add": if method_name == "sonarr_add":
self.add_to_sonarr = util.get_bool(method_name, method_data) self.add_to_sonarr = util.parse_bool(method_name, method_data)
elif method_name == "sonarr_folder": elif method_name == "sonarr_folder":
self.sonarr_options["folder"] = method_data self.sonarr_options["folder"] = method_data
elif method_name == "sonarr_monitor": elif method_name == "sonarr_monitor":
@ -676,7 +676,7 @@ class CollectionBuilder:
else: else:
raise Failed(f"Collection Error: {method_name} attribute must be either standard, daily, or anime") raise Failed(f"Collection Error: {method_name} attribute must be either standard, daily, or anime")
elif method_name in ["sonarr_season", "sonarr_search", "sonarr_cutoff_search"]: elif method_name in ["sonarr_season", "sonarr_search", "sonarr_cutoff_search"]:
self.sonarr_options[method_name[7:]] = util.get_bool(method_name, method_data) self.sonarr_options[method_name[7:]] = util.parse_bool(method_name, method_data)
elif method_name == "sonarr_tag": elif method_name == "sonarr_tag":
self.sonarr_options["tag"] = util.get_list(method_data) self.sonarr_options["tag"] = util.get_list(method_data)
@ -1231,7 +1231,7 @@ class CollectionBuilder:
elif attribute in ["decade", "year", "episode_year"] and modifier in ["", ".not"]: elif attribute in ["decade", "year", "episode_year"] and modifier in ["", ".not"]:
return smart_pair(util.get_year_list(data, self.current_year, final)) return smart_pair(util.get_year_list(data, self.current_year, final))
elif attribute in plex.boolean_attributes: elif attribute in plex.boolean_attributes:
return util.get_bool(attribute, data) return util.parse_bool(attribute, data)
else: else:
raise Failed(f"Collection Error: {final} attribute not supported") raise Failed(f"Collection Error: {final} attribute not supported")

@ -376,6 +376,10 @@ class Plex:
@retry(stop_max_attempt_number=6, wait_fixed=10000, retry_on_exception=util.retry_if_not_plex) @retry(stop_max_attempt_number=6, wait_fixed=10000, retry_on_exception=util.retry_if_not_plex)
def _upload_image(self, item, image): def _upload_image(self, item, image):
logger.debug(item)
logger.debug(image.is_poster)
logger.debug(image.is_url)
logger.debug(image.location)
if image.is_poster and image.is_url: if image.is_poster and image.is_url:
item.uploadPoster(url=image.location) item.uploadPoster(url=image.location)
elif image.is_poster: elif image.is_poster:
@ -388,6 +392,8 @@ class Plex:
@retry(stop_max_attempt_number=6, wait_fixed=10000, retry_on_exception=util.retry_if_not_plex) @retry(stop_max_attempt_number=6, wait_fixed=10000, retry_on_exception=util.retry_if_not_plex)
def upload_file_poster(self, item, image): def upload_file_poster(self, item, image):
logger.debug(item)
logger.debug(image)
item.uploadPoster(filepath=image) item.uploadPoster(filepath=image)
self.reload(item) self.reload(item)
@ -546,13 +552,13 @@ class Plex:
def get_collection(self, data): def get_collection(self, data):
if isinstance(data, int): if isinstance(data, int):
collection = self.fetchItem(data) return self.fetchItem(data)
elif isinstance(data, Collection): elif isinstance(data, Collection):
collection = data return data
else: else:
collection = util.choose_from_list(self.search(title=str(data), libtype="collection"), "collection", str(data), exact=True) for d in self.search(title=str(data), libtype="collection"):
if collection: if d.title == data:
return collection return d
raise Failed(f"Plex Error: Collection {data} not found") raise Failed(f"Plex Error: Collection {data} not found")
def validate_collections(self, collections): def validate_collections(self, collections):
@ -689,7 +695,10 @@ class Plex:
kwargs = {} kwargs = {}
if year is not None: if year is not None:
kwargs["year"] = year kwargs["year"] = year
return util.choose_from_list(self.search(title=str(data), **kwargs), "movie" if self.is_movie else "show", str(data), exact=True) for d in self.search(title=str(data), **kwargs):
if d.title == data:
return d
return None
def edit_item(self, item, name, item_type, edits, advanced=False): def edit_item(self, item, name, item_type, edits, advanced=False):
if len(edits) > 0: if len(edits) > 0:

@ -93,48 +93,13 @@ def tab_new_lines(data):
return str(data).replace("\n", "\n|\t ") if "\n" in str(data) else str(data) return str(data).replace("\n", "\n|\t ") if "\n" in str(data) else str(data)
def make_ordinal(n): def make_ordinal(n):
n = int(n) return f"{n}{'th' if 11 <= (n % 100) <= 13 else ['th', 'st', 'nd', 'rd', 'th'][min(n % 10, 4)]}"
suffix = ["th", "st", "nd", "rd", "th"][min(n % 10, 4)]
if 11 <= (n % 100) <= 13:
suffix = "th"
return str(n) + suffix
def choose_from_list(datalist, description, data=None, list_type="title", exact=False):
if len(datalist) > 0:
if len(datalist) == 1 and (description != "collection" or datalist[0].title == data):
return datalist[0]
zero_option = f"Create New Collection: {data}" if description == "collection" else "Do Nothing"
message = f"Multiple {description}s Found\n0) {zero_option}"
for i, d in enumerate(datalist, 1):
if list_type == "title":
if d.title == data:
return d
message += f"\n{i}) {d.title}"
else:
message += f"\n{i}) [{d[0]}] {d[1]}"
if exact:
return None
print_multiline(message, info=True)
while True:
try:
selection = int(logger_input(f"Choose {description} number")) - 1
if selection >= 0: return datalist[selection]
elif selection == -1: return None
else: logger.info(f"Invalid {description} number")
except IndexError: logger.info(f"Invalid {description} number")
except TimeoutExpired:
if list_type == "title":
logger.warning(f"Input Timeout: using {data}")
return None
else:
logger.warning(f"Input Timeout: using {datalist[0][1]}")
return datalist[0]
else:
return None
def get_bool(method_name, method_data): def parse_bool(method_name, method_data):
if isinstance(method_data, bool): if isinstance(method_data, bool):
return method_data return method_data
elif isinstance(method_data, int):
return method_data > 0
elif str(method_data).lower() in ["t", "true"]: elif str(method_data).lower() in ["t", "true"]:
return True return True
elif str(method_data).lower() in ["f", "false"]: elif str(method_data).lower() in ["f", "false"]:

Loading…
Cancel
Save