passed data folder to tautulli for helper functions. Fixes #46
This commit is contained in:
parent
693e25c7b6
commit
78ce399f33
4 changed files with 15 additions and 14 deletions
|
@ -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)
|
||||
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue