def clear_tracker_without_ip(self): self.country, self.network, self.country_code = None, None, None self.latency = None self.last_checked = int(time()) self.is_down() self.update_uptime() if self.uptime == 0: self.interval = 10800 debug = {'url': self.url, 'ip': None, 'time': strftime("%H:%M:%S UTC", gmtime(time())), 'status': 0, 'info': "Can't resolve IP"} trackon.raw_data.appendleft(debug) trackon.update_in_db(self)
def update_status(self): try: self.update_ips() except RuntimeError: self.ip = None if not self.ip: self.clear_tracker_without_ip() return self.update_ipapi_data() self.last_checked = int(time()) pp = pprint.PrettyPrinter(width=999999, compact=True) t1 = time() debug = { 'url': self.url, 'ip': list(self.ip)[0], 'time': strftime("%H:%M:%S UTC", gmtime(t1)) } try: if parse.urlparse(self.url).scheme == 'udp': parsed, raw, ip = scraper.announce_udp(self.url) self.interval = parsed['interval'] pretty_data = pp.pformat(parsed) for one_ip in scraper.my_ips: pretty_data = pretty_data.replace(one_ip, 'redacted') debug['info'] = pretty_data trackon.raw_data.appendleft(debug) else: response = scraper.announce_http(self.url) self.interval = response['interval'] pretty_data = pp.pformat(response) for one_ip in scraper.my_ips: pretty_data = pretty_data.replace(one_ip, 'redacted') debug['info'] = pretty_data trackon.raw_data.appendleft(debug) self.latency = int((time() - t1) * 1000) self.is_up() debug['status'] = 1 print("TRACKER UP") except RuntimeError as e: logger.info('Tracker down: ' + self.url + ' Cause: ' + str(e)) debug.update({'info': str(e), 'status': 0}) trackon.raw_data.appendleft(debug) print("TRACKER DOWN") self.is_down() if self.uptime == 0: self.interval = 10800 self.update_uptime() trackon.update_in_db(self)
def clear_tracker_without_ip(self): self.country, self.network, self.country_code = None, None, None self.latency = None self.last_checked = int(time()) self.is_down() self.update_uptime() if self.uptime == 0: self.interval = 10800 debug = { "url": self.url, "ip": None, "time": strftime("%H:%M:%S UTC", gmtime(time())), "status": 0, "info": "Can't resolve IP", } trackon.raw_data.appendleft(debug) trackon.update_in_db(self)
def update_status(self): try: self.update_ips() except RuntimeError: logger.info('Hostname not found') return self.update_ipapi_data() print("TRACKER TO CHECK: " + self.url) self.last_checked = int(time()) pp = pprint.PrettyPrinter(width=999999, compact=True) t1 = time() debug = { 'url': self.url, 'ip': self.ip[0], 'time': strftime("%H:%M:%S UTC", gmtime(t1)) } try: if urlparse(self.url).scheme == 'udp': parsed, raw, ip = scraper.announce_udp(self.url) self.interval = parsed['interval'] pretty_data = pp.pformat(parsed) debug[ 'info'] = "Hex response: " + raw + '<br>' + "Parsed: " + pretty_data trackon.raw_data.appendleft(debug) else: response = scraper.announce_http(self.url) self.interval = response['interval'] pretty_data = pp.pformat(response) debug['info'] = pretty_data trackon.raw_data.appendleft(debug) self.latency = int((time() - t1) * 1000) self.is_up() debug['status'] = 1 print("TRACKER UP") except RuntimeError as e: logger.info('Tracker down: ' + self.url + ' Cause: ' + str(e)) debug.update({'info': str(e), 'status': 0}) trackon.raw_data.appendleft(debug) print("TRACKER DOWN") self.is_down() self.update_uptime() trackon.update_in_db(self)
def update_status(self): try: self.update_ips() except RuntimeError: self.ip = None if not self.ip: self.clear_tracker_without_ip() return self.update_ipapi_data() self.last_checked = int(time()) pp = pprint.PrettyPrinter(width=999999, compact=True) t1 = time() debug = { "url": self.url, "ip": list(self.ip)[0], "time": strftime("%H:%M:%S UTC", gmtime(t1)), } try: if parse.urlparse(self.url).scheme == "udp": response, _, _ = scraper.announce_udp(self.url) else: response = scraper.announce_http(self.url) self.interval = response["interval"] pretty_data = scraper.redact_origin(pp.pformat(response)) debug["info"] = pretty_data trackon.raw_data.appendleft(debug) self.latency = int((time() - t1) * 1000) self.is_up() debug["status"] = 1 logger.info(f"{self.url} status is UP") except RuntimeError as e: logger.info(f"{self.url} status is DOWN. Cause: {str(e)}") debug.update({"info": str(e), "status": 0}) trackon.raw_data.appendleft(debug) self.is_down() if self.uptime == 0: self.interval = 10800 self.update_uptime() trackon.update_in_db(self)