From 50c65ef5acf5f3cb618e1ad63aa1120989bf4957 Mon Sep 17 00:00:00 2001 From: samwiseg0 Date: Mon, 7 Jan 2019 23:12:34 -0800 Subject: [PATCH] Cleanup external IP lookup to only happen once --- varken/tautulli.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/varken/tautulli.py b/varken/tautulli.py index a0f4ea7..953dd2d 100644 --- a/varken/tautulli.py +++ b/varken/tautulli.py @@ -17,6 +17,8 @@ class TautulliAPI(object): self.session.params = {'apikey': self.server.api_key} self.endpoint = '/api/v2' self.logger = getLogger() + self.my_ip = None + def __repr__(self): return f"" @@ -56,17 +58,22 @@ class TautulliAPI(object): try: geodata = self.geoiphandler.lookup(session.ip_address_public) except (ValueError, AddressNotFoundError): - if self.server.fallback_ip: + self.logger.debug('Public IP missing for Tautulli session...') + if not self.my_ip: # Try the fallback ip in the config file try: + self.logger.debug('Atempting to use the failback IP...') geodata = self.geoiphandler.lookup(self.server.fallback_ip) except AddressNotFoundError as e: self.logger.error('%s', e) - _exit(1) + + self.my_ip = self.session.get('http://ip.42.pl/raw').text + self.logger.debug('Looked the public IP and set it to %s', self.my_ip) + + geodata = self.geoiphandler.lookup(self.my_ip) else: - my_ip = self.session.get('http://ip.42.pl/raw').text - geodata = self.geoiphandler.lookup(my_ip) + geodata = self.geoiphandler.lookup(self.my_ip) if not all([geodata.location.latitude, geodata.location.longitude]): latitude = 37.234332396