|
|
|
|
@ -50,7 +50,7 @@ class media_type(IntEnum):
|
|
|
|
|
@dataclass |
|
|
|
|
class query_data: |
|
|
|
|
errors: List[str] = field(default_factory=list) |
|
|
|
|
is_valid:bool = True |
|
|
|
|
is_valid:bool = False |
|
|
|
|
raw_query_str:str = '' |
|
|
|
|
parsed_query_str:str = '' |
|
|
|
|
title:str = '' |
|
|
|
|
@ -163,8 +163,6 @@ def manual_query():
|
|
|
|
|
view_results = [] |
|
|
|
|
errors = [] |
|
|
|
|
|
|
|
|
|
flash('boo') |
|
|
|
|
|
|
|
|
|
if 'query' in request.form: |
|
|
|
|
query.raw_query_str = request.form['query'] |
|
|
|
|
q_res = doQueryAlgorithm(query) |
|
|
|
|
@ -364,7 +362,10 @@ def doQueryAlgorithm(query:query_data) -> dict:
|
|
|
|
|
vr.title = r.title |
|
|
|
|
vr.movie_id = r.id |
|
|
|
|
vr.tmdb_link = TMDB_MOVIE_LINK_URL + str(r.id) |
|
|
|
|
vr.release_date = r.release_date |
|
|
|
|
|
|
|
|
|
if 'release_date' in r.__dict__: |
|
|
|
|
vr.release_date = r.release_date |
|
|
|
|
|
|
|
|
|
elif query.media_type == media_type.TV_SHOW: |
|
|
|
|
vr.title = r.name |
|
|
|
|
vr.tv_id = r.id |
|
|
|
|
@ -386,20 +387,22 @@ def guessMedia(query:query_data) -> query_data:
|
|
|
|
|
guess = guessit(query.raw_query_str) |
|
|
|
|
logging.disable(logging.NOTSET) |
|
|
|
|
|
|
|
|
|
query.title = guess['title'] |
|
|
|
|
query.parsed_query_str = guess['title'].lower() |
|
|
|
|
|
|
|
|
|
try: |
|
|
|
|
if guess['type'] == 'movie': |
|
|
|
|
query.media_type = media_type.MOVIE |
|
|
|
|
query.movie_year = guess['year'] |
|
|
|
|
else: # NOTE: 'type' has to be 'episode' here. guessit has no 'unknown' equivalent |
|
|
|
|
query.media_type = media_type.TV_SHOW |
|
|
|
|
query.tv_season = guess['season'] |
|
|
|
|
query.tv_episode = guess['episode'] |
|
|
|
|
except KeyError as e: |
|
|
|
|
query.is_valid = False |
|
|
|
|
current_app.logger.error(f'invalid key: {e}, for query: {query.raw_query_str}') |
|
|
|
|
for k, v in guess.items(): |
|
|
|
|
if k == 'type': |
|
|
|
|
if v == 'movie': query.media_type = media_type.MOVIE |
|
|
|
|
elif v == 'episode': query.media_type = media_type.TV_SHOW |
|
|
|
|
elif k == 'title': |
|
|
|
|
query.title = v |
|
|
|
|
query.parsed_query_str = v.lower() |
|
|
|
|
elif k == 'year': |
|
|
|
|
query.movie_year = v |
|
|
|
|
elif k == 'season': |
|
|
|
|
query.tv_season = v |
|
|
|
|
elif k == 'episode': |
|
|
|
|
query.tv_episode = v |
|
|
|
|
|
|
|
|
|
if query.title != '' and query.media_type != media_type.UNKNOWN: |
|
|
|
|
query.is_valid = True |
|
|
|
|
|
|
|
|
|
return query |
|
|
|
|
|
|
|
|
|
|