diff --git a/varken/helpers.py b/varken/helpers.py index 65b886b..0dc43bc 100644 --- a/varken/helpers.py +++ b/varken/helpers.py @@ -203,3 +203,6 @@ def boolcheck(var): return True else: return False + +def itemgetter_with_default(**defaults): + return lambda obj: tuple(obj.get(k, v) for k, v in defaults.items()) diff --git a/varken/tautulli.py b/varken/tautulli.py index af0d979..3eeaada 100644 --- a/varken/tautulli.py +++ b/varken/tautulli.py @@ -1,12 +1,11 @@ from logging import getLogger -from operator import itemgetter from requests import Session, Request from geoip2.errors import AddressNotFoundError from datetime import datetime, timezone, date, timedelta from influxdb.exceptions import InfluxDBClientError from varken.structures import TautulliStream -from varken.helpers import hashit, connection_handler +from varken.helpers import hashit, connection_handler, itemgetter_with_default class TautulliAPI(object): @@ -35,13 +34,7 @@ class TautulliAPI(object): return get = g['response']['data'] - - # Remove erroneous key from sessions - for session in get['sessions']: - if session.get('_cache_time'): - del session['_cache_time'] - - fields = itemgetter(*TautulliStream._fields) + fields = itemgetter_with_default(**TautulliStream._field_defaults) try: sessions = [TautulliStream(*fields(session)) for session in get['sessions']]