From 59bfb4a567c78e67490fe277203bba291feef9f6 Mon Sep 17 00:00:00 2001 From: "Nicholas St. Germain" Date: Thu, 6 Dec 2018 11:39:51 -0600 Subject: [PATCH] added logger to all subclasses, and added exception handling for structure creation --- varken/ombi.py | 2 ++ varken/radarr.py | 21 ++++++++++++++++++--- varken/sonarr.py | 16 +++++++++++++--- varken/tautulli.py | 4 ++-- 4 files changed, 35 insertions(+), 8 deletions(-) diff --git a/varken/ombi.py b/varken/ombi.py index 6e0fc6e..dbc582b 100644 --- a/varken/ombi.py +++ b/varken/ombi.py @@ -1,3 +1,4 @@ +import logging from requests import Session, Request from datetime import datetime, timezone @@ -13,6 +14,7 @@ class OmbiAPI(object): # Create session to reduce server web thread load, and globally define pageSize for all requests self.session = Session() self.session.headers = {'Apikey': self.server.api_key} + self.logger = logging.getLogger() def __repr__(self): return "".format(self.server.id) diff --git a/varken/radarr.py b/varken/radarr.py index 62ad2bf..ec4d723 100644 --- a/varken/radarr.py +++ b/varken/radarr.py @@ -1,3 +1,4 @@ +import logging from requests import Session, Request from datetime import datetime, timezone @@ -13,6 +14,7 @@ class RadarrAPI(object): # Create session to reduce server web thread load, and globally define pageSize for all requests self.session = Session() self.session.headers = {'X-Api-Key': self.server.api_key} + self.logger = logging.getLogger() def __repr__(self): return "".format(self.server.id) @@ -29,7 +31,11 @@ class RadarrAPI(object): if not get: return - movies = [Movie(**movie) for movie in get] + try: + movies = [Movie(**movie) for movie in get] + except TypeError as e: + self.logger.error('TypeError has occurred : %s', e) + return for movie in movies: if not movie.downloaded: @@ -74,8 +80,17 @@ class RadarrAPI(object): return for movie in get: - movie['movie'] = Movie(**movie['movie']) - download_queue = [Queue(**movie) for movie in get] + try: + movie['movie'] = Movie(**movie['movie']) + except TypeError as e: + self.logger.error('TypeError has occurred : %s', e) + return + + try: + download_queue = [Queue(**movie) for movie in get] + except TypeError as e: + self.logger.error('TypeError has occurred : %s', e) + return for queue_item in download_queue: name = '{} ({})'.format(queue_item.movie.title, queue_item.movie.year) diff --git a/varken/sonarr.py b/varken/sonarr.py index 1ff0263..65f2035 100644 --- a/varken/sonarr.py +++ b/varken/sonarr.py @@ -1,3 +1,4 @@ +import logging from requests import Session, Request from datetime import datetime, timezone, date, timedelta @@ -16,6 +17,7 @@ class SonarrAPI(object): self.session = Session() self.session.headers = {'X-Api-Key': self.server.api_key} self.session.params = {'pageSize': 1000} + self.logger = logging.getLogger() def __repr__(self): return "".format(self.server.id) @@ -38,7 +40,7 @@ class SonarrAPI(object): try: tv_shows = [TVShow(**show) for show in get] except TypeError as e: - logger.error('TypeError has occurred : %s', e) + self.logger.error('TypeError has occurred : %s', e) return # Add show to missing list if file does not exist @@ -85,7 +87,11 @@ class SonarrAPI(object): if not get: return - tv_shows = [TVShow(**show) for show in get] + try: + tv_shows = [TVShow(**show) for show in get] + except TypeError as e: + self.logger.error('TypeError has occurred : %s', e) + return for show in tv_shows: sxe = 'S{:0>2}E{:0>2}'.format(show.seasonNumber, show.episodeNumber) @@ -131,7 +137,11 @@ class SonarrAPI(object): if not get: return - download_queue = [Queue(**show) for show in get] + try: + download_queue = [Queue(**show) for show in get] + except TypeError as e: + self.logger.error('TypeError has occurred : %s', e) + return for show in download_queue: sxe = 'S{:0>2}E{:0>2}'.format(show.episode['seasonNumber'], show.episode['episodeNumber']) diff --git a/varken/tautulli.py b/varken/tautulli.py index ebd2573..d4a5345 100644 --- a/varken/tautulli.py +++ b/varken/tautulli.py @@ -1,8 +1,7 @@ import logging - +from requests import Session, Request from datetime import datetime, timezone from geoip2.errors import AddressNotFoundError -from requests import Session, Request from varken.helpers import geo_lookup, hashit, connection_handler from varken.structures import TautulliStream @@ -33,6 +32,7 @@ class TautulliAPI(object): return get = g['response']['data'] + try: sessions = [TautulliStream(**session) for session in get['sessions']] except TypeError as e: