|
|
|
|
@ -176,27 +176,28 @@ def makeLocalQuery(query_obj):
|
|
|
|
|
cur = conn.cursor() |
|
|
|
|
results = [] |
|
|
|
|
|
|
|
|
|
if query_obj.query_type == query_type.MOVIE: |
|
|
|
|
cur.execute('SELECT * FROM movie_queries WHERE query=?', (query_obj.parsed_query_str,)) |
|
|
|
|
elif query_obj.query_type == query_type.TV_SHOW: |
|
|
|
|
pass |
|
|
|
|
|
|
|
|
|
rows = cur.fetchall() |
|
|
|
|
logger.debug('number of rows matched: "{}"'.format(len(rows))) |
|
|
|
|
|
|
|
|
|
if len(rows) > 0: |
|
|
|
|
logger.debug('query string "{}", match found in local db'.format( |
|
|
|
|
query_obj.parsed_query_str) |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
for row in rows: |
|
|
|
|
vr = view_result() |
|
|
|
|
vr.title = row["query"] |
|
|
|
|
results.append(vr) |
|
|
|
|
else: |
|
|
|
|
logger.debug('query string "{}", no matches found in local db'.format( |
|
|
|
|
query_obj.parsed_query_str) |
|
|
|
|
) |
|
|
|
|
fancy_query = '''SELECT |
|
|
|
|
md.* |
|
|
|
|
FROM |
|
|
|
|
movie_queries mq |
|
|
|
|
JOIN movie_query_mapping map ON mq.query_id = map.query_id |
|
|
|
|
JOIN movie_details md ON md.movie_id = map.movie_id |
|
|
|
|
WHERE |
|
|
|
|
mq.query = ?''' |
|
|
|
|
|
|
|
|
|
for row in cur.execute(fancy_query, (query_obj.parsed_query_str, )): |
|
|
|
|
vr = view_result() |
|
|
|
|
vr.id = row['movie_id'] |
|
|
|
|
vr.title = row['title'] |
|
|
|
|
vr.overview = row['overview'] |
|
|
|
|
vr.release_date = row['release_date'] |
|
|
|
|
vr.original_language = row['original_language'] |
|
|
|
|
vr.tmdb_link = "{}{}{}".format(TMDB_MOVIE_LINK_URL, '/', vr.id) |
|
|
|
|
|
|
|
|
|
if row['poster_path'] != None: |
|
|
|
|
vr.poster_path = row['poster_path'] |
|
|
|
|
|
|
|
|
|
results.append(vr) |
|
|
|
|
|
|
|
|
|
return results |
|
|
|
|
|
|
|
|
|
@ -271,24 +272,35 @@ def parseTMDBResult(result, query_type):
|
|
|
|
|
def storeTMDBQueryResults(query_obj, result_list): |
|
|
|
|
conn = db.get_db() |
|
|
|
|
cur = conn.cursor() |
|
|
|
|
query_id = 0 |
|
|
|
|
|
|
|
|
|
logger.debug('adding query string "{}" into local cache'.format(query_obj.parsed_query_str)) |
|
|
|
|
|
|
|
|
|
try: |
|
|
|
|
cur.execute('BEGIN TRANSACTION') |
|
|
|
|
cur.execute('INSERT INTO movie_queries(query, year) VALUES (?, ?)', |
|
|
|
|
(query_obj.parsed_query_str, query_obj.movie_year) |
|
|
|
|
) |
|
|
|
|
query_id = cur.lastrowid |
|
|
|
|
except DatabaseError as e: |
|
|
|
|
query_obj.errors.append(e) |
|
|
|
|
|
|
|
|
|
for result in result_list: |
|
|
|
|
try: |
|
|
|
|
cur.execute("INSERT INTO movie_details(" |
|
|
|
|
+ "movie_id, title, overview, release_date, poster_path)" |
|
|
|
|
+ " VALUES (?,?,?,?,?)", |
|
|
|
|
(result.id, result.title, result.overview, result.release_date, result.poster_path) |
|
|
|
|
+ "movie_id, title, overview, release_date, original_language, poster_path)" |
|
|
|
|
+ " VALUES (?,?,?,?,?,?)", |
|
|
|
|
(result.id, result.title, result.overview, result.release_date, |
|
|
|
|
result.original_language, result.poster_path) |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
cur.execute("INSERT INTO movie_query_mapping(query_id, movie_id)" |
|
|
|
|
+ " VALUES (?,?)", (query_id, result.id) |
|
|
|
|
) |
|
|
|
|
except DatabaseError as e: |
|
|
|
|
query_obj.errors.append(e) |
|
|
|
|
|
|
|
|
|
conn.commit() |
|
|
|
|
if len(query_obj.errors) == 0: |
|
|
|
|
conn.commit() |
|
|
|
|
else: |
|
|
|
|
conn.rollback() |
|
|
|
|
|