import urllib.request import sys import logging logger = logging.getLogger('tle_fetcher.' + __name__) class TleReader(): def __init__(self, url_root: str): self.url_root = url_root def get_tles(self) -> list: url = self.url_root + 'active.txt' tles = [] try: with urllib.request.urlopen(url) as txt: i = 0 sat = '' tle = '' for line in txt: line = line.strip().decode('utf-8') if i % 3 == 0: sat = line elif i % 3 == 1: tle = line else: tle += "\n" + line tles.append((sat, line.split()[1], tle)) i += 1 except Exception as ex: logger.error("Error getting TLEs: %s", ex) sys.exit(1) return tles def get_group(self, group_name: str) -> list: url = self.url_root + group_name + '.txt' group = [] try: with urllib.request.urlopen(url) as txt: i = 0 for line in txt: line = line.strip().decode('utf-8') if i % 3 == 2: group.append((line.split()[1], group_name)) i += 1 except Exception as ex: logger.error("Error getting groups: %s", ex) sys.exit(1) return group