From 2ef7691bd4b16ee4ad46cfb5d75b2ebbab59b95e Mon Sep 17 00:00:00 2001 From: cinnaboot Date: Sun, 21 Jun 2020 17:57:58 -0400 Subject: [PATCH] condense/reorder logic in storeTMDBQueryResults() --- video_metadata/views/tmdb.py | 50 +++++++++++++++++++----------------- 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/video_metadata/views/tmdb.py b/video_metadata/views/tmdb.py index d43fd99..94c20dc 100644 --- a/video_metadata/views/tmdb.py +++ b/video_metadata/views/tmdb.py @@ -512,31 +512,33 @@ def storeTMDBQueryResults(query_obj, 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 * FROM query_details WHERE {id_column}=?', (id_val, )) - match = cur.fetchone() - if match is not None: - cur.execute(f'INSERT INTO query_mapping(query_id, detail_id)' - + ' VALUES (?,?)', (query_id, match['detail_id']) - ) - - current_app.logger.debug( - f'skipping result that is already saved. {id_column}: {id_val}, title: {r.title}' - ) - break - try: - current_app.logger.debug(f'adding query details for "{r.title}"') - cur.execute(f'INSERT INTO query_details({id_column}, ' - + 'media_type, title, overview, release_date, original_language, poster_path)' - + ' VALUES (?,?,?,?,?,?,?)', - (id_val, r.media_type, r.title, r.overview, r.release_date, - r.original_language, r.poster_path) - ) - - # NOTE: need to set detail_id here to avoid a second query in create_path_mapping - r.detail_id = cur.lastrowid + # NOTE: check stored details before trying to add to local db to avoid unique key + # constraint error + cur.execute(f'SELECT * FROM query_details WHERE {id_column}=?', (id_val, )) + match = cur.fetchone() + + if match is not None: + r.detail_id = match['detail_id'] + cur.execute(f'INSERT INTO query_mapping(query_id, detail_id)' + + ' VALUES (?,?)', (query_id, r.detail_id) + ) + + current_app.logger.debug( + f'skipping result that is already saved. {id_column}: {id_val}, title: {r.title}' + ) + + else: + current_app.logger.debug(f'adding query details for "{r.title}"') + cur.execute(f'INSERT INTO query_details({id_column}, ' + + 'media_type, title, overview, release_date, original_language, poster_path)' + + ' VALUES (?,?,?,?,?,?,?)', + (id_val, r.media_type, r.title, r.overview, r.release_date, + r.original_language, r.poster_path) + ) + + # NOTE: need to set detail_id here to avoid a second query in create_path_mapping + r.detail_id = cur.lastrowid cur.execute(f'INSERT INTO query_mapping(query_id, detail_id)' + ' VALUES (?,?)', (query_id, r.detail_id)