diff --git a/video_metadata/views/tmdb.py b/video_metadata/views/tmdb.py index 14ce5f5..57fdb43 100644 --- a/video_metadata/views/tmdb.py +++ b/video_metadata/views/tmdb.py @@ -373,10 +373,18 @@ def doQueryAlgorithm(query:query_data) -> dict: # TODO: need a way to correctly parse titles like: "2001: A Space Odyssey (1968)" # with legitimate dates in the title def parseQueryStr(query_obj): - s = query_obj.raw_query_str.replace('.', ' ').strip() + s = query_obj.raw_query_str.replace('.', ' ').strip().lower() s = re.sub('[(){}\[\]]', '', s).strip() # NOTE: remove some common characters current_year = date.today().year + # NOTE: check for a string that looks like a tv show + m = re.search(r's[0-9]{1,2}|season ?[0-9]{1,2}', s, re.IGNORECASE) + + if m: + query_obj.parsed_query_str = s[0:m.start()].strip() + query_obj.media_type = media_type.TV_SHOW + return True + # NOTE: find all 4 digit numbers to match the year of queries with 4 digit numbers in the title # ex) "2036.Origin.Unknown.2018" regex = re.compile('[0-9]{4}') @@ -389,15 +397,6 @@ def parseQueryStr(query_obj): query_obj.media_type = media_type.MOVIE return True - # NOTE: if not a movie, check for a string that looks like a tv show - if query_obj.media_type == media_type.UNKNOWN: - m = re.compile(r's[0-9]{1,2}|season ?[0-9]{1,2}', re.IGNORECASE).search(s) - - if m: - query_obj.parsed_query_str = s[0:m.start()].strip() - query_obj.media_type = media_type.TV_SHOW - return True - current_app.logger.warning(f'unable to guess media type for "{query_obj.raw_query_str}"') return False