"
+ 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()