passed data folder to tautulli for helper functions. Fixes #46

This commit is contained in:
Nicholas St. Germain 2018-12-09 22:56:09 -06:00
parent 693e25c7b6
commit 78ce399f33
4 changed files with 15 additions and 14 deletions

View file

@ -79,7 +79,7 @@ if __name__ == "__main__":
if CONFIG.tautulli_enabled:
for server in CONFIG.tautulli_servers:
TAUTULLI = TautulliAPI(server, DBMANAGER)
TAUTULLI = TautulliAPI(server, DBMANAGER, DATA_FOLDER)
if server.get_activity:
schedule.every(server.get_activity_run_seconds).seconds.do(threaded, TAUTULLI.get_activity)

View file

@ -39,7 +39,6 @@ class CiscoAPI(object):
return
req = self.session.prepare_request(Request('GET', self.firewall.url + endpoint))
print(req.headers)
get = connection_handler(self.session, req, self.firewall.verify_ssl)
if not get:

View file

@ -14,21 +14,22 @@ from urllib.request import urlretrieve
logger = logging.getLogger('varken')
def geoip_download():
tar_dbfile = abspath(join('.', 'data', 'GeoLite2-City.tar.gz'))
def geoip_download(data_folder):
datafolder = data_folder
tar_dbfile = abspath(join(datafolder, 'GeoLite2-City.tar.gz'))
url = 'http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.tar.gz'
urlretrieve(url, tar_dbfile)
tar = tarfile.open(tar_dbfile, 'r:gz')
for files in tar.getmembers():
if 'GeoLite2-City.mmdb' in files.name:
files.name = os.path.basename(files.name)
tar.extract(files, abspath(join('.', 'data')))
tar.extract(files, datafolder)
os.remove(tar_dbfile)
def geo_lookup(ipaddress):
dbfile = abspath(join('.', 'data', 'GeoLite2-City.mmdb'))
def geo_lookup(ipaddress, data_folder):
datafolder = data_folder
dbfile = abspath(join(datafolder, 'GeoLite2-City.mmdb'))
now = time.time()
try:
@ -36,9 +37,9 @@ def geo_lookup(ipaddress):
db_age = now - dbinfo.st_ctime
if db_age > (35 * 86400):
os.remove(dbfile)
geoip_download()
geoip_download(datafolder)
except FileNotFoundError:
geoip_download()
geoip_download(datafolder)
reader = geoip2.database.Reader(dbfile)

View file

@ -8,7 +8,7 @@ from varken.structures import TautulliStream
class TautulliAPI(object):
def __init__(self, server, dbmanager):
def __init__(self, server, dbmanager, data_folder):
# Set Time of initialization
self.now = datetime.now(timezone.utc).astimezone().isoformat()
self.dbmanager = dbmanager
@ -17,6 +17,7 @@ class TautulliAPI(object):
self.session.params = {'apikey': self.server.api_key, 'cmd': 'get_activity'}
self.endpoint = '/api/v2'
self.logger = logging.getLogger()
self.data_folder = data_folder
def __repr__(self):
return "<tautulli-{}>".format(self.server.id)
@ -41,13 +42,13 @@ class TautulliAPI(object):
for session in sessions:
try:
geodata = geo_lookup(session.ip_address_public)
geodata = geo_lookup(session.ip_address_public, self.data_folder)
except (ValueError, AddressNotFoundError):
if self.server.fallback_ip:
geodata = geo_lookup(self.server.fallback_ip)
geodata = geo_lookup(self.server.fallback_ip, self.data_folder)
else:
my_ip = self.session.get('http://ip.42.pl/raw').text
geodata = geo_lookup(my_ip)
geodata = geo_lookup(my_ip, self.data_folder)
if not all([geodata.location.latitude, geodata.location.longitude]):
latitude = 37.234332396