""" Orchestrační skript — stáhne nové zprávy ze všech pojišťoven po sobě. Spouští 04_prihlaseni_a_stahuj_nove.py v každém adresáři pojišťovny. Pokud jedna pojišťovna selže, pokračuje dál na další. POUŽITÍ: python stahuj_vse_pojistovny.py """ import subprocess import sys import os from datetime import datetime sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", "..", "..")) from Knihovny.EmailMessagingGraph import send_mail BASE_DIR = os.path.dirname(os.path.abspath(__file__)) EMAIL_PRIJEMCE = "vladimir.buzalka@buzalka.cz" POJISTOVNY = [ ("111 VZP", "VZP"), ("205 ČPZP", "ČPZP"), ("207 OZP", "OZP"), ("209 ZPŠ", "ZPŠ"), ("211 ZPMVČR", "ZPMVČR"), ("213 RBP", "RBP"), ] SKRIPT = "04_prihlaseni_a_stahuj_nove.py" def main() -> None: start = datetime.now() print(f"=== Stahování zpráv ze všech pojišťoven ===") print(f"Spuštěno: {start.strftime('%Y-%m-%d %H:%M:%S')}\n") vysledky = [] for adresar, nazev in POJISTOVNY: skript_path = os.path.join(BASE_DIR, adresar, SKRIPT) if not os.path.exists(skript_path): print(f"\n[{nazev}] PŘESKOČENO — skript nenalezen: {skript_path}") vysledky.append((nazev, "přeskočeno")) continue print(f"\n{'='*50}") print(f" {nazev}") print(f"{'='*50}") result = subprocess.run( [sys.executable, skript_path], cwd=os.path.join(BASE_DIR, adresar), check=False, ) if result.returncode == 0: print(f"[{nazev}] OK") vysledky.append((nazev, "OK")) else: print(f"[{nazev}] CHYBA (kód {result.returncode})") vysledky.append((nazev, f"chyba (kód {result.returncode})")) elapsed = datetime.now() - start print(f"\n{'='*50}") print(f"Hotovo za {int(elapsed.total_seconds())} s") print(f"{'='*50}") for nazev, stav in vysledky: print(f" {nazev:<12} {stav}") chyby = [n for n, s in vysledky if s != "OK" and s != "přeskočeno"] ok = [n for n, s in vysledky if s == "OK"] predmet = f"Pojišťovny {start.strftime('%d.%m.%Y')} — " predmet += "vše OK ✓" if not chyby else f"CHYBA: {', '.join(chyby)}" radky = "".join( f"
Stahování zpráv z pojišťoven dokončeno za {int(elapsed.total_seconds())} s.
" f"Spuštěno: {start.strftime('%Y-%m-%d %H:%M:%S')}
" ) try: send_mail(to=EMAIL_PRIJEMCE, subject=predmet, body=body, html=True) print(f"\nEmail odeslán: {EMAIL_PRIJEMCE}") except Exception as e: print(f"\nEmail se nepodařilo odeslat: {e}") if __name__ == "__main__": main()