| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- #!/usr/bin/python3
- from tle_database import TleDatabase
- from tle_reader import TleReader
- import logging
- import os
- CELESTRAK_ROOT = 'https://www.celestrak.com/NORAD/elements/'
- groups = [
- 'weather',
- 'noaa',
- 'goes',
- 'resource',
- 'sarsat',
- 'dmc',
- 'tdrss',
- 'argos',
- 'planet',
- 'spire',
- 'geo',
- 'intelsat',
- 'ses',
- 'iridium',
- 'iridium-NEXT',
- 'starlink',
- 'oneweb',
- 'orbcomm',
- 'globalstar',
- 'swarm',
- 'amateur',
- 'x-comm',
- 'other-comm',
- 'satnogs',
- 'gorizont',
- 'raduga',
- 'molniya',
- 'gnss',
- 'gps-ops',
- 'glo-ops',
- 'galileo',
- 'beidou',
- 'sbas',
- 'nnss',
- 'musson',
- 'science',
- 'geodetic',
- 'engineering',
- 'education',
- 'military',
- 'radar',
- 'cubesat',
- 'other'
- ]
- log = logging.getLogger('tle_fetcher')
- log.setLevel(logging.INFO)
- time_string = "%m/%d/%Y %H:%M:%S %Z"
- formatter = logging.Formatter(
- fmt='{asctime} [{module}] {message}',
- datefmt=time_string,
- style='{')
- log_path = os.path.join(os.path.expanduser('~'), 'log/tle_fetcher.log')
- f_handler = logging.FileHandler(log_path, mode='a')
- f_handler.setLevel(logging.INFO)
- f_handler.setFormatter(formatter)
- log.addHandler(f_handler)
- c_handler = logging.StreamHandler()
- c_handler.setLevel(logging.INFO)
- c_handler.setFormatter(formatter)
- log.addHandler(c_handler)
- log.info("TLE fetcher started")
- def main(tle_rd: TleReader, tle_db: TleDatabase) -> None:
- tles = tle_rd.get_tles()
- tle_db.connect_db()
- tle_db.delete_rows()
- tle_db.update_tles(tles)
- for group in groups:
- gp = tle_rd.get_group(group)
- tle_db.update_sat_group(gp)
- tle_db.close_db()
- log.info("TLE fetcher completed")
- if __name__ == "__main__":
- main(TleReader(CELESTRAK_ROOT), TleDatabase())
|