Add helper itemgetter function for TautulliStream fields (#157)

Add helper itemgetter function for TautulliStream fields
This commit is contained in:
samwiseg0 2019-10-07 17:00:11 -04:00 committed by GitHub
commit 217ed0612d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 9 deletions

View file

@ -203,3 +203,6 @@ def boolcheck(var):
return True return True
else: else:
return False return False
def itemgetter_with_default(**defaults):
return lambda obj: tuple(obj.get(k, v) for k, v in defaults.items())

View file

@ -1,12 +1,11 @@
from logging import getLogger from logging import getLogger
from operator import itemgetter
from requests import Session, Request from requests import Session, Request
from geoip2.errors import AddressNotFoundError from geoip2.errors import AddressNotFoundError
from datetime import datetime, timezone, date, timedelta from datetime import datetime, timezone, date, timedelta
from influxdb.exceptions import InfluxDBClientError from influxdb.exceptions import InfluxDBClientError
from varken.structures import TautulliStream 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): class TautulliAPI(object):
@ -35,13 +34,7 @@ class TautulliAPI(object):
return return
get = g['response']['data'] get = g['response']['data']
fields = itemgetter_with_default(**TautulliStream._field_defaults)
# Remove erroneous key from sessions
for session in get['sessions']:
if session.get('_cache_time'):
del session['_cache_time']
fields = itemgetter(*TautulliStream._fields)
try: try:
sessions = [TautulliStream(*fields(session)) for session in get['sessions']] sessions = [TautulliStream(*fields(session)) for session in get['sessions']]