"
f"
eRecept — denní souhrn {souhrn.datum}
"
f"{krit}"
f"
Stažení: {len(stazeno_ok)} OK | {len(stazeno_chyby)} chyb
"
f"
Parsování: {len(parse_ok)} zpracováno | {len(parse_chyby)} chyb
"
+ tabulka_stazeni(stazeno_ok, "Stažené recepty")
+ tabulka_stazeni(stazeno_chyby, "Chyby při stahování")
+ tabulka_parse(parse_ok, "Zpracované recepty")
+ tabulka_parse(parse_chyby, "Chyby při parsování")
+ "
"
)
return predmet, body
# ─────────────────────────────────────────────────────────────────────────────
# MAIN
# ─────────────────────────────────────────────────────────────────────────────
def main():
parser = argparse.ArgumentParser()
parser.add_argument("--od", default=DATUM_OD_DEFAULT, help="Recepty od data (YYYY-MM-DD)")
parser.add_argument("--limit", type=int, default=None, help="Max počet receptů ke stažení")
args = parser.parse_args()
dnes = date.today().isoformat()
out_dir = XML_DIR / dnes
out_dir.mkdir(parents=True, exist_ok=True)
souhrn = Souhrn(datum=dnes)
try:
print("=" * 60)
print(f" FÁZE 1: Stahování XML ({dnes})")
print("=" * 60)
faze_stazeni(args.od, args.limit, out_dir, souhrn)
print("\n" + "=" * 60)
print(f" FÁZE 2: Parsování XML ({dnes})")
print("=" * 60)
faze_parsovani(dnes, out_dir, souhrn)
except Exception:
souhrn.kriticka_chyba = traceback.format_exc()
print(f"\nKRITICKÁ CHYBA:\n{souhrn.kriticka_chyba}", file=sys.stderr)
# ── Souhrn do terminálu ───────────────────────────────────────────────────
stazeno_ok = sum(1 for r in souhrn.stazeni if r.stav == "OK")
stazeno_chyby = sum(1 for r in souhrn.stazeni if r.stav == "CHYBA")
parse_ok = sum(1 for r in souhrn.parse if r.stav == "OK")
parse_chyby = sum(1 for r in souhrn.parse if r.stav == "CHYBA")
print(f"\n{'='*60}")
print(f" SOUHRN {dnes}")
print(f" Stažení: {stazeno_ok} OK, {stazeno_chyby} chyb")
print(f" Parsování: {parse_ok} zpracováno, {parse_chyby} chyb")
if souhrn.kriticka_chyba:
print(" !! Kritická chyba — viz email")
print(f"{'='*60}\n")
# ── Email ─────────────────────────────────────────────────────────────────
try:
predmet, body = sestav_email(souhrn)
send_mail(to=EMAIL_PRIJEMCE, subject=predmet, body=body, html=True)
print(f"Email odeslán: {EMAIL_PRIJEMCE}")
except Exception as e:
print(f"CHYBA odeslání emailu: {e}", file=sys.stderr)
if __name__ == "__main__":
main()