Added new fields. Better error handling of geoip
This commit is contained in:
parent
4c1b771909
commit
addb7c1a6d
1 changed files with 16 additions and 6 deletions
22
tautulli.py
22
tautulli.py
|
@ -30,12 +30,12 @@ def GeoLite2db(ipaddress):
|
||||||
tempfullpath = os.path.join(tempfolder, dbfile)
|
tempfullpath = os.path.join(tempfolder, dbfile)
|
||||||
os.rename(tempfullpath, dbfile)
|
os.rename(tempfullpath, dbfile)
|
||||||
shutil.rmtree(tempfolder)
|
shutil.rmtree(tempfolder)
|
||||||
|
|
||||||
reader = geoip2.database.Reader(dbfile)
|
reader = geoip2.database.Reader(dbfile)
|
||||||
geodata = reader.city(ipaddress)
|
geodata = reader.city(ipaddress)
|
||||||
|
|
||||||
return geodata
|
return geodata
|
||||||
|
|
||||||
|
|
||||||
influx_payload = [
|
influx_payload = [
|
||||||
{
|
{
|
||||||
|
@ -51,10 +51,18 @@ influx_payload = [
|
||||||
]
|
]
|
||||||
|
|
||||||
for session in sessions.keys():
|
for session in sessions.keys():
|
||||||
geodata = GeoLite2db(sessions[session]['ip_address_public'])
|
try:
|
||||||
|
geodata = GeoLite2db(sessions[session]['ip_address_public'])
|
||||||
|
except ValueError:
|
||||||
|
if configuration.tautulli_failback_ip:
|
||||||
|
geodata =GeoLite2db(configuration.tautulli_failback_ip)
|
||||||
|
else:
|
||||||
|
geodata = GeoLite2db(requests.get('http://ip.42.pl/raw').text)
|
||||||
|
|
||||||
decision = sessions[session]['transcode_decision']
|
decision = sessions[session]['transcode_decision']
|
||||||
if decision == 'copy':
|
if decision == 'copy':
|
||||||
decision = 'direct stream'
|
decision = 'direct stream'
|
||||||
|
|
||||||
influx_payload.append(
|
influx_payload.append(
|
||||||
{
|
{
|
||||||
"measurement": "Tautulli",
|
"measurement": "Tautulli",
|
||||||
|
@ -68,13 +76,15 @@ for session in sessions.keys():
|
||||||
"name": sessions[session]['friendly_name'],
|
"name": sessions[session]['friendly_name'],
|
||||||
"title": sessions[session]['full_title'],
|
"title": sessions[session]['full_title'],
|
||||||
"quality": '{}p'.format(sessions[session]['video_resolution']),
|
"quality": '{}p'.format(sessions[session]['video_resolution']),
|
||||||
|
"video_decision": sessions[session]['stream_video_decision'],
|
||||||
"transcode_decision": decision.title(),
|
"transcode_decision": decision.title(),
|
||||||
|
"product_version": sessions[session]['product_version'],
|
||||||
"quality_profile": sessions[session]['quality_profile'],
|
"quality_profile": sessions[session]['quality_profile'],
|
||||||
"location": geodata.city.name,
|
"location": geodata.city.name,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
influx = InfluxDBClient(configuration.grafana_url, configuration.grafana_port, configuration.grafana_username,
|
influx = InfluxDBClient(configuration.influxdb_url, configuration.influxdb_port, configuration.influxdb_username,
|
||||||
configuration.grafana_password, configuration.tautulli_grafana_db_name)
|
configuration.influxdb_password, configuration.tautulli_influxdb_db_name)
|
||||||
influx.write_points(influx_payload)
|
influx.write_points(influx_payload)
|
||||||
|
|
Loading…
Reference in a new issue