diff --git a/video_metadata/util.py b/video_metadata/util.py index fc3bda2..29e9f2a 100644 --- a/video_metadata/util.py +++ b/video_metadata/util.py @@ -14,65 +14,11 @@ def getLogger(is_debug): handler = logging.StreamHandler(sys.stdout) handler.setLevel(logging.DEBUG) handler.setFormatter(formatter) + logger.propagate = False logger.addHandler(handler) return logger -# NOTE: modified from here: https://code.activestate.com/recipes/137951-dump-all-the-attributes-of-an-object/ -# to only print attributes -def dumpObjAttr(obj): - import types - - MethodWrapperType = type(object().__hash__) - objclass = getattr(obj, '__class__') - attrs = [] - - for slot in dir(obj): - attr = getattr(obj, slot) - if slot == '__class__': - objclass = attr.__name__ - elif slot == '__doc__': - pass - elif slot == '__module__': - pass - elif slot == '__dict__': - pass - elif slot == '__weakref__': - pass - elif (isinstance(attr, types.BuiltinMethodType) or - isinstance(attr, MethodWrapperType)): - pass - elif (isinstance(attr, types.MethodType) or - isinstance(attr, types.FunctionType)): - pass - else: - attrs.append( (slot, attr) ) - - sOut = objclass + ':' - for key, value in attrs: - # NOTE: pretty print for long lists - if isinstance(value, list) or isinstance(value, tuple): - sOut += '\n\t' + key + ':' - sOut += dumpList(value, 2) - else: - sOut += '\n\t' + key + ': ' + str(value) - - return sOut - -def dumpList(value, indent): - s = '' - if len(value) > 0: - if isinstance(value[0], tuple): - for k, v in value: - s += '\n' + (indent * '\t') + k + ': ' + str(v) - elif isinstance(value, list): - for item in value: - s += '\n' + (indent * '\t') + str(item) - else: - pass - - return s - def getFunctionName(): import sys return sys._getframe(1).f_code.co_name diff --git a/video_metadata/views/tmdb.py b/video_metadata/views/tmdb.py index a9b6a51..986248b 100644 --- a/video_metadata/views/tmdb.py +++ b/video_metadata/views/tmdb.py @@ -9,6 +9,7 @@ import ssl from urllib.error import URLError, HTTPError import urllib.parse import urllib.request +import yaml from flask import Blueprint, current_app, flash, Flask, request, render_template @@ -95,10 +96,6 @@ class view_result(object): @bp.route('/query_movie') def query_movie(): - - logger.debug('Flask(__name__): {}'.format(Flask(__name__))) - logger.debug('debug: {}'.format(Flask(__name__).config['DEBUG'])) - errors = [] query = query_data() response = response_data() @@ -143,9 +140,11 @@ def query_movie(): return render_template( 'tmdb/query.html', view_data = view_results, - debug_str = str(util.dumpObjAttr(query) + '\n' - + util.dumpObjAttr(response)) + '\n' - + util.dumpList(view_results, 0) + '\n' + debug_str = '{} \n {} \n {} \n'.format( + yaml.dump(query, indent=4), + yaml.dump(response, indent=4), + yaml.dump(view_results, indent=4) + ) ) @@ -156,6 +155,7 @@ def query_movie(): # with legitimate dates in the title def parseQueryStr(query_obj): s = query_obj.raw_query_str.replace('.', ' ').strip() + s = re.sub('[(){}\[\]]', '', s).strip() # NOTE: remove some common characters current_year = date.today().year # NOTE: find all 4 digit numbers to match the year of queries with 4 digit numbers in the title @@ -199,16 +199,17 @@ def makeLocalQuery(query_obj): elif query_obj.query_type == query_type.TV_SHOW: pass - logger.debug('number of rows matched: "{}"'.format(len(cur.fetchall()))) + rows = cur.fetchall() + logger.debug('number of rows matched: "{}"'.format(len(rows))) - if len(cur.fetchall()) > 0: + if len(rows) > 0: logger.debug('query string "{}", match found in local db'.format( query_obj.parsed_query_str) ) - for row in cur: + for row in rows: vr = view_result() - vr.title = row["title"] + vr.title = row["query"] results.append(vr) else: logger.debug('query string "{}", no matches found in local db'.format(