|
|
|
|
@ -81,7 +81,7 @@ class response_data:
|
|
|
|
|
@dataclass |
|
|
|
|
class view_result: |
|
|
|
|
detail_id:int = 0 |
|
|
|
|
media_type:str = 'unknown' |
|
|
|
|
media_type:media_type = media_type.UNKNOWN |
|
|
|
|
movie_id:int = 0 |
|
|
|
|
tv_id:int = 0 |
|
|
|
|
title:str = '' |
|
|
|
|
@ -369,21 +369,21 @@ def doQueryAlgorithm(query:query_data) -> dict:
|
|
|
|
|
# TODO: it's possible for the query results to span multiple 'pages' |
|
|
|
|
# see) https://developers.themoviedb.org/3/search/search-movies |
|
|
|
|
for r in res: |
|
|
|
|
current_app.logger.debug(util.dumpObject(r)) |
|
|
|
|
vr = view_result() |
|
|
|
|
vr.detail_id = r.id |
|
|
|
|
vr.media_type = media_type.MOVIE |
|
|
|
|
vr.overview = r.overview |
|
|
|
|
vr.genre_ids = r.genre_ids |
|
|
|
|
vr.original_language = r.original_language |
|
|
|
|
vr.poster_path = r.poster_path |
|
|
|
|
vr.media_type = query.media_type |
|
|
|
|
|
|
|
|
|
if query.media_type == media_type.MOVIE: |
|
|
|
|
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 |
|
|
|
|
elif query.media_type == media_type.TV_SHOW: |
|
|
|
|
vr.title = r.name |
|
|
|
|
vr.tv_id = r.id |
|
|
|
|
vr.tmdb_link = TMDB_TV_LINK_URL + str(r.id) |
|
|
|
|
vr.release_date = r.first_air_date |
|
|
|
|
|
|
|
|
|
@ -507,14 +507,15 @@ def storeTMDBQueryResults(query_obj, result_list):
|
|
|
|
|
|
|
|
|
|
for r in result_list: |
|
|
|
|
id_column = getIDColumn(r.media_type) |
|
|
|
|
id_val = r.movie_id if (r.media_type == media_type.MOVIE) else r.tv_id |
|
|
|
|
|
|
|
|
|
# NOTE: check stored details before trying to add to local db to avoid unique key |
|
|
|
|
# constraint error |
|
|
|
|
cur.execute(f'SELECT COUNT(*) FROM query_details WHERE {id_column}=?', (r.detail_id, )) |
|
|
|
|
cur.execute(f'SELECT COUNT(*) FROM query_details WHERE {id_column}=?', (id_val, )) |
|
|
|
|
count = cur.fetchone()[0] |
|
|
|
|
if count > 0: |
|
|
|
|
current_app.logger.debug( |
|
|
|
|
f'skipping result that is already saved. id: {r.detail_id}, title: {r.title}' |
|
|
|
|
f'skipping result that is already saved. {id_column}: {id_val}, title: {r.title}' |
|
|
|
|
) |
|
|
|
|
break |
|
|
|
|
|
|
|
|
|
@ -523,7 +524,7 @@ def storeTMDBQueryResults(query_obj, result_list):
|
|
|
|
|
cur.execute(f'INSERT INTO query_details({id_column}, ' |
|
|
|
|
+ 'media_type, title, overview, release_date, original_language, poster_path)' |
|
|
|
|
+ ' VALUES (?,?,?,?,?,?,?)', |
|
|
|
|
(r.detail_id, r.media_type, r.title, r.overview, r.release_date, |
|
|
|
|
(id_val, r.media_type, r.title, r.overview, r.release_date, |
|
|
|
|
r.original_language, r.poster_path) |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|