diff --git a/video_metadata/schema.sql b/video_metadata/schema.sql index 7813cfc..7517a7f 100644 --- a/video_metadata/schema.sql +++ b/video_metadata/schema.sql @@ -21,8 +21,8 @@ CREATE TABLE query_details( DROP TABLE IF EXISTS query_mapping; CREATE TABLE query_mapping( - query_id integer, - detail_id integer, + query_id integer not null, + detail_id integer not null, foreign key(query_id) references query_cache(query_id), foreign key(detail_id) references query_details(detail_id) ); @@ -35,43 +35,3 @@ CREATE TABLE path_cache( foreign key(detail_id) references query_details(detail_id) ); -DROP TABLE IF EXISTS movie_genres; -CREATE TABLE movie_genres( - id integer primary key not null, - name text -); - -DROP TABLE IF EXISTS tv_genres; -CREATE TABLE tv_genres( - id integer primary key not null, - name text -); - -DROP TABLE IF EXISTS movie_genre_mapping; -CREATE TABLE movie_genre_mapping( - genre_id integer, - movie_id integer, - foreign key(genre_id) references movie_genres(genre_id), - foreign key(movie_id) references query_details(movie_id) -); - -DROP TABLE IF EXISTS actor_details; -CREATE TABLE actor_details( - actor_id integer primary key not null, - name text, - date_of_birth date, - poster_path text -); - -DROP TABLE IF EXISTS actor_movie_mapping; -CREATE TABLE actor_movie_mapping( - movie_id integer, - actor_id integer, - character_name text, - foreign key(movie_id) references query_details(movie_id), - foreign key(actor_id) references actor_details(actor_id) -); - - --- TODO: tv seasons, episodes - diff --git a/video_metadata/static/file_listing.js b/video_metadata/static/file_listing.js index 51cd903..ec349ce 100644 --- a/video_metadata/static/file_listing.js +++ b/video_metadata/static/file_listing.js @@ -84,6 +84,10 @@ function openQueryDialog(dataset, element) { + '?query=' + dataset.base_name + '&rel_path=' + dataset.rel_path; fetchJSON(query_str, function(json) { + + console.log('openQueryDialog(), ' + query_str); + console.log(json); + if (json.errors) { for (let e of json.errors) logError(e) diff --git a/video_metadata/views/tmdb.py b/video_metadata/views/tmdb.py index cdf3a1f..b368bf9 100644 --- a/video_metadata/views/tmdb.py +++ b/video_metadata/views/tmdb.py @@ -247,6 +247,10 @@ def create_path_mapping(): and 'detail_id' in request.form ): errors.append(f'required parameters: rel_path, id') + elif request.form['rel_path'] is '': + errors.append('rel_path is empty') + elif request.form['detail_id'] is '0': + errors.append('detail_id is unset') else: detail_id = request.form['detail_id'] rel_path = request.form['rel_path'] @@ -292,12 +296,6 @@ def doQueryAlgorithm(query:query_data) -> dict: except json.JSONDecodeError as e: errors.append(e) - # TODO: testing ############ - errors.extend(query.errors) - errors.extend(response.errors) - return {'errors': errors, 'results': view_results} - ########################### - if response.parsed_response and 'total_results' in response.parsed_response: response.result_count = response.parsed_response['total_results'] @@ -390,6 +388,10 @@ def makeLocalQuery(query_obj): def buildViewResult(db_row): + if not db_row: + current_app.logger.error('empty db_row parameter') + return None + vr = view_result() vr.detail_id = db_row['detail_id'] vr.media_type = db_row['media_type'] @@ -530,6 +532,9 @@ def storeTMDBQueryResults(query_obj, result_list): (r.id, 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, cur.lastrowid) )