From 5536943210b53f6f3fa0eb991e88912411c08414 Mon Sep 17 00:00:00 2001 From: cinnaboot Date: Sun, 12 Apr 2020 18:38:36 -0400 Subject: [PATCH] add new function buildViewResultFromAPI --- video_metadata/views/tmdb.py | 53 +++++++++++++++++++++--------------- 1 file changed, 31 insertions(+), 22 deletions(-) diff --git a/video_metadata/views/tmdb.py b/video_metadata/views/tmdb.py index cb72f2e..50ea3a1 100644 --- a/video_metadata/views/tmdb.py +++ b/video_metadata/views/tmdb.py @@ -353,28 +353,7 @@ 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: - vr = view_result() - 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) - - 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 - vr.tmdb_link = TMDB_TV_LINK_URL + str(r.id) - vr.release_date = r.first_air_date - - view_results.append(vr) + view_results.append(buildViewResultFromAPI(r, query.media_type)) storeTMDBQueryResults(query, view_results) @@ -451,6 +430,36 @@ def makeLocalQuery(query_obj): return results +def buildViewResultFromAPI(api_result:dict, mediaType:int) -> view_result: + vr = view_result() + vr.media_type = mediaType + + for k, v in api_result.__dict__.items(): + if k == 'overview': vr.overview = v + elif k == 'genre_ids': vr.genre_ids = v + elif k == 'original_language': vr.original_language = v + elif k == 'poster_path': vr.poster_path = v + elif k == 'media_type': vr.media_type = v + + elif vr.media_type == media_type.MOVIE: + if k == 'title': + vr.title = v + elif k == 'id': + vr.movie_id = v + vr.tmdb_link = TMDB_MOVIE_LINK_URL + str(v) + elif k == 'release_date': + vr.release_date = v + elif vr.media_type == media_type.TV_SHOW: + if k == 'name': + vr.title = v + elif k == 'id': + vr.tv_id = v + vr.tmdb_link = TMDB_TV_LINK_URL + str(v) + elif k == 'first_air_date': + vr.release_date = v + + return vr + def buildViewResult(db_row): if not db_row: current_app.logger.error('empty db_row parameter')