Browse Source

add logging and error handling for tmdb:makeTMDBQuery()

master
cinnaboot 6 years ago
parent
commit
9cd59d67f5
  1. 4
      video_metadata/util.py
  2. 23
      video_metadata/views/tmdb.py

4
video_metadata/util.py

@ -35,6 +35,10 @@ def dumpObject(obj):
return yaml.dump(obj)
def getCurrentFileName() -> str:
from inspect import currentframe, getframeinfo
return currentframe().f_back.f_code.co_filename
def getLineNum() -> int:
from inspect import currentframe, getframeinfo
return currentframe().f_back.f_lineno

23
video_metadata/views/tmdb.py

@ -122,7 +122,7 @@ def list_movie_test(sorting = 'title'):
md.*, pc.path
FROM
query_details md
JOIN path_cache pc ON pc.detail_id=md.detail_id
JOIN path_cache pc ON pc.detail_id=md._id
ORDER BY
{orderby}'''
@ -288,16 +288,18 @@ def doQueryAlgorithm(query:query_data) -> dict:
if isQueryCached(query.parsed_query_str):
view_results = makeLocalQuery(query)
current_app.logger.debug(f'view_results length: {len(view_results)}')
else:
makeTMDBQuery(query, response)
elif makeTMDBQuery(query, response):
try:
response.parsed_response = json.loads(response.response_body)
except json.JSONDecodeError as e:
errors.append(e)
errors.append(str(e))
if response.parsed_response and 'total_results' in response.parsed_response:
#if response.parsed_response and 'total_results' in response.parsed_response:
# response.result_count = response.parsed_response['total_results']
try:
response.result_count = response.parsed_response['total_results']
except TypeError as e:
errors.append(str(e))
# TODO: it's possible for the query results to span multiple 'pages'
# see) https://developers.themoviedb.org/3/search/search-movies
@ -423,6 +425,11 @@ def makeTMDBQuery(query_obj, response_obj):
query_obj.errors.append('query type is not set')
return False
if query_obj.parsed_query_str == '':
query_obj.errors.append(f'{util.getCurrentFileName()}:{util.getLineNum()},'
f'{util.getFunctionName()}, empty query string')
return False
current_app.logger.info(
f'making remote query to TMDB API: '
f'{query_obj.media_type.name}, "{query_obj.parsed_query_str}"'
@ -444,10 +451,10 @@ def makeTMDBQuery(query_obj, response_obj):
try:
response = urllib.request.urlopen(req, context=context)
except HTTPError as e:
query_obj.errors.append(e)
query_obj.errors.append(str(e))
return False
except URLError as e:
query_obj.errors.append(e)
query_obj.errors.append(str(e))
return False
for k, v in response.info().items():

Loading…
Cancel
Save