|
|
|
|
@ -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 |
|
|
|
|
|
|
|
|
|
|