made date consistent

pull/351/head
meisnate12 3 years ago
parent 31f6129c7f
commit 18897852d3

@ -844,7 +844,7 @@ class CollectionBuilder:
if discover_data is True: if discover_data is True:
new_dictionary[discover_final] = discover_data new_dictionary[discover_final] = discover_data
elif discover_final in tmdb.discover_dates: elif discover_final in tmdb.discover_dates:
new_dictionary[discover_final] = util.check_date(discover_data, f"{method_name} attribute {discover_final}", return_string=True) new_dictionary[discover_final] = util.validate_date(discover_data, f"{method_name} attribute {discover_final}", return_as="%m/%d/%Y")
elif discover_final in ["primary_release_year", "year", "first_air_date_year"]: elif discover_final in ["primary_release_year", "year", "first_air_date_year"]:
new_dictionary[discover_final] = util.check_number(discover_data, f"{method_name} attribute {discover_final}", minimum=1800, maximum=self.current_year + 1) new_dictionary[discover_final] = util.check_number(discover_data, f"{method_name} attribute {discover_final}", minimum=1800, maximum=self.current_year + 1)
elif discover_final in ["vote_count.gte", "vote_count.lte", "vote_average.gte", "vote_average.lte", "with_runtime.gte", "with_runtime.lte"]: elif discover_final in ["vote_count.gte", "vote_count.lte", "vote_average.gte", "vote_average.lte", "with_runtime.gte", "with_runtime.lte"]:
@ -1379,7 +1379,7 @@ class CollectionBuilder:
elif attribute in ["year", "episode_year"] and modifier in [".gt", ".gte", ".lt", ".lte"]: elif attribute in ["year", "episode_year"] and modifier in [".gt", ".gte", ".lt", ".lte"]:
return util.check_year(data, self.current_year, final) return util.check_year(data, self.current_year, final)
elif attribute in plex.date_attributes and modifier in [".before", ".after"]: elif attribute in plex.date_attributes and modifier in [".before", ".after"]:
return util.check_date(data, final, return_string=True, plex_date=True) return util.validate_date(data, final, return_as="%Y-%m-%d")
elif attribute in plex.number_attributes and modifier in ["", ".not", ".gt", ".gte", ".lt", ".lte"]: elif attribute in plex.number_attributes and modifier in ["", ".not", ".gt", ".gte", ".lt", ".lte"]:
return util.check_number(data, final, minimum=1) return util.check_number(data, final, minimum=1)
elif attribute in plex.float_attributes and modifier in [".gt", ".gte", ".lt", ".lte"]: elif attribute in plex.float_attributes and modifier in [".gt", ".gte", ".lt", ".lte"]:
@ -1458,8 +1458,8 @@ class CollectionBuilder:
elif modifier in [".before", ".after"]: elif modifier in [".before", ".after"]:
if current_data is None: if current_data is None:
return False return False
filter_date = datetime.strptime(str(filter_data), "%m/%d/%Y") filter_date = util.validate_date(filter_data)
if (modifier == ".before" and current_data >= filter_data) or (modifier == ".after" and current_data <= filter_data): if (modifier == ".before" and current_data >= filter_date) or (modifier == ".after" and current_data <= filter_date):
return False return False
elif filter_attr in ["release", "added", "last_played"] and modifier == ".regex": elif filter_attr in ["release", "added", "last_played"] and modifier == ".regex":
jailbreak = False jailbreak = False
@ -1618,7 +1618,7 @@ class CollectionBuilder:
or (filter_method == "tmdb_vote_count.lte" and movie.vote_count > filter_data): or (filter_method == "tmdb_vote_count.lte" and movie.vote_count > filter_data):
match = False match = False
break break
current_title = f"{movie.title} ({util.check_date(movie.release_date, 'test', plex_date=True).year})" if movie.release_date else movie.title current_title = f"{movie.title} ({util.validate_date(movie.release_date, 'test').year})" if movie.release_date else movie.title
if match: if match:
missing_movies_with_names.append((current_title, missing_id)) missing_movies_with_names.append((current_title, missing_id))
if self.details["show_missing"] is True: if self.details["show_missing"] is True:
@ -1958,7 +1958,7 @@ class CollectionBuilder:
logger.error(e) logger.error(e)
continue continue
if self.details["show_missing"] is True: if self.details["show_missing"] is True:
current_title = f"{movie.title} ({util.check_date(movie.release_date, 'test', plex_date=True).year})" if movie.release_date else movie.title current_title = f"{movie.title} ({util.validate_date(movie.release_date, 'test').year})" if movie.release_date else movie.title
logger.info(f"{name} Collection | ? | {current_title} (TMDb: {missing_id})") logger.info(f"{name} Collection | ? | {current_title} (TMDb: {missing_id})")
logger.info("") logger.info("")
logger.info(f"{len(self.run_again_movies)} Movie{'s' if len(self.run_again_movies) > 1 else ''} Missing") logger.info(f"{len(self.run_again_movies)} Movie{'s' if len(self.run_again_movies) > 1 else ''} Missing")

@ -90,7 +90,7 @@ class Metadata:
try: try:
current = str(getattr(current_item, key, "")) current = str(getattr(current_item, key, ""))
if var_type == "date": if var_type == "date":
final_value = util.check_date(value, name, return_string=True, plex_date=True) final_value = util.validate_date(value, name, return_as="%Y-%m-%d")
current = current[:-9] current = current[:-9]
elif var_type == "float": elif var_type == "float":
final_value = util.check_number(value, name, number_type="float", minimum=0, maximum=10) final_value = util.check_number(value, name, number_type="float", minimum=0, maximum=10)

@ -1,5 +1,4 @@
import logging, tmdbv3api import logging, tmdbv3api
from datetime import datetime
from modules import util from modules import util
from modules.util import Failed from modules.util import Failed
from retrying import retry from retrying import retry
@ -254,7 +253,7 @@ class TMDb:
count = 0 count = 0
for date_attr in discover_dates: for date_attr in discover_dates:
if date_attr in attrs: if date_attr in attrs:
attrs[date_attr] = datetime.strftime(datetime.strptime(attrs[date_attr], "%m/%d/%Y"), "%Y-%m-%d") attrs[date_attr] = util.validate_date(attrs[date_attr], return_as="%Y-%m-%d")
self.Discover.discover_movies(attrs) if is_movie else self.Discover.discover_tv_shows(attrs) self.Discover.discover_movies(attrs) if is_movie else self.Discover.discover_tv_shows(attrs)
total_pages = int(self.TMDb.total_pages) total_pages = int(self.TMDb.total_pages)
total_results = int(self.TMDb.total_results) total_results = int(self.TMDb.total_results)

@ -270,10 +270,10 @@ def check_number(value, method, number_type="int", minimum=None, maximum=None):
else: else:
return num_value return num_value
def check_date(date_text, method, return_string=False, plex_date=False): def validate_date(date_text, method, return_as=None):
try: date_obg = datetime.strptime(str(date_text), "%Y-%m-%d" if plex_date else "%m/%d/%Y") try: date_obg = datetime.strptime(str(date_text), "%Y-%m-%d" if "-" in str(date_text) else "%m/%d/%Y")
except ValueError: raise Failed(f"Collection Error: {method}: {date_text} must match pattern {'YYYY-MM-DD e.g. 2020-12-25' if plex_date else 'MM/DD/YYYY e.g. 12/25/2020'}") except ValueError: raise Failed(f"Collection Error: {method}: {date_text} must match pattern YYYY-MM-DD (e.g. 2020-12-25) or MM/DD/YYYY (e.g. 12/25/2020)")
return str(date_text) if return_string else date_obg return datetime.strftime(date_obg, return_as) if return_as else date_obg
def logger_input(prompt, timeout=60): def logger_input(prompt, timeout=60):
if windows: return windows_input(prompt, timeout) if windows: return windows_input(prompt, timeout)

Loading…
Cancel
Save