From fdb02cedea4dc5084ee1766cc0d367351b7781d2 Mon Sep 17 00:00:00 2001 From: Jesse Mullan Date: Tue, 25 Nov 2014 14:37:26 -0800 Subject: [PATCH] Various small cleanups --- headphones/db.py | 15 ++++++++++----- headphones/lock.py | 4 ++++ headphones/request.py | 5 +++-- headphones/searcher.py | 6 ++++-- 4 files changed, 21 insertions(+), 9 deletions(-) diff --git a/headphones/db.py b/headphones/db.py index cf4cdeae..02d003e9 100644 --- a/headphones/db.py +++ b/headphones/db.py @@ -96,11 +96,16 @@ class DBConnection: genParams = lambda myDict: [x + " = ?" for x in myDict.keys()] - query = "UPDATE " + tableName + " SET " + ", ".join(genParams(valueDict)) + " WHERE " + " AND ".join(genParams(keyDict)) + update_query = "UPDATE " + tableName + " SET " + ", ".join(genParams(valueDict)) + " WHERE " + " AND ".join(genParams(keyDict)) - self.action(query, valueDict.values() + keyDict.values()) + self.action(update_query, valueDict.values() + keyDict.values()) if self.connection.total_changes == changesBefore: - query = "INSERT INTO " + tableName + " (" + ", ".join(valueDict.keys() + keyDict.keys()) + ")" + \ - " VALUES (" + ", ".join(["?"] * len(valueDict.keys() + keyDict.keys())) + ")" - self.action(query, valueDict.values() + keyDict.values()) + insert_query = ( + "INSERT INTO " + tableName + " (" + ", ".join(valueDict.keys() + keyDict.keys()) + ")" + + " VALUES (" + ", ".join(["?"] * len(valueDict.keys() + keyDict.keys())) + ")" + ) + try: + self.action(insert_query, valueDict.values() + keyDict.values()) + except sqlite3.IntegrityError: + logger.info('Queries failed: %s and %s', update_query, insert_query) diff --git a/headphones/lock.py b/headphones/lock.py index 90d860e0..2fcc7ab7 100644 --- a/headphones/lock.py +++ b/headphones/lock.py @@ -2,6 +2,7 @@ Locking-related classes """ +import headphones.logger import time import threading import Queue @@ -38,10 +39,12 @@ class TimedLock(object): sleep_amount = self.minimum_delta - delta if sleep_amount >= 0: # zero sleeps give the cpu a chance to task-switch + headphones.logger.info('Sleeping %s (interval)', sleep_amount) time.sleep(sleep_amount) while not self.queue.empty(): try: seconds = self.queue.get(False) + headphones.logger.info('Sleeping %s (queued)', seconds) time.sleep(seconds) except Queue.Empty: continue @@ -63,6 +66,7 @@ class TimedLock(object): """ # we use a queue so that we don't have to synchronize # across threads and with or without locks + headphones.logger.info('Adding %s to queue', seconds) self.queue.add(seconds) diff --git a/headphones/request.py b/headphones/request.py index 165e8227..2df2cc3e 100644 --- a/headphones/request.py +++ b/headphones/request.py @@ -68,7 +68,8 @@ def request_response(url, method="get", auto_raise=True, try: response.raise_for_status() except: - logger.debug("Response status code %d is not white " \ + logger.debug( + "Response status code %d is not white " "listed, raised exception", response.status_code) raise elif auto_raise: @@ -81,7 +82,7 @@ def request_response(url, method="get", auto_raise=True, "host is up and running.") except requests.Timeout: logger.error( - "Request timed out. The remote host did not respeond timely.") + "Request timed out. The remote host did not respond timely.") except requests.HTTPError as e: if e.response is not None: if e.response.status_code >= 500: diff --git a/headphones/searcher.py b/headphones/searcher.py index 5de7d785..5c1765b0 100644 --- a/headphones/searcher.py +++ b/headphones/searcher.py @@ -593,7 +593,7 @@ def searchNZB(album, new=False, losslessOnly=False, albumlength=None): logger.info("Album type is audiobook/spokenword. Using audiobook category") # Request results - logger.info('Parsing results from nzbs.org') + logger.info('Requesting from nzbs.org') headers = {'User-Agent': USER_AGENT} params = { @@ -606,9 +606,11 @@ def searchNZB(album, new=False, losslessOnly=False, albumlength=None): data = request.request_feed( url='http://beta.nzbs.org/api', - params=params, headers=headers + params=params, headers=headers, + timeout=5 ) + logger.info('Parsing results from nzbs.org') # Process feed if data: if not len(data.entries):