# -*- encoding: utf-8 -*- import logging import sys import typing as T from latecomers.retrieve import retrieve_from_inst, retrieve_from_fr24 from latecomers.parse import find_table, get_details, Details, parse_fr24 from latecomers.serializer import to_excel from latecomers.notifier import Notifier from latecomers.config import Config logging.basicConfig( level=logging.INFO, format="[%(asctime)s] %(levelname)s - %(message)s", datefmt="%H:%M:%S", ) logger = logging.getLogger(__name__) def main(config: Config): """ The main cli entrypoint. """ out = Notifier(**config.smtp) body = retrieve_from_inst() table = find_table(body) fr24_data = retrieve_from_fr24() aux_data = parse_fr24(fr24_data) data: T.List[Details] = [] for row in table: data.append(get_details(row, aux_data)) if not data: out.send_no_data(config.to, config.cc) excel = to_excel(data, config.store) out.send_result(config.to, config.cc, excel) def cli(): if len(sys.argv) < 2: logger.error(f"Missing arguments: {sys.argv[0]} ") sys.exit(4) config_path = sys.argv[1] config = Config(config_path) main(config)