import os from dataclasses import dataclass HEADERS = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) Unraid-Sync/1.0"} @dataclass class Config: ics_url: str baikal_url: str baikal_user: str baikal_pass: str sync_frequency: int def validate() -> Config: errors = [] ics_url = os.environ.get("ICS_URL") if not ics_url: errors.append("ICS_URL is required") baikal_url = os.environ.get("BAIKAL_URL") if not baikal_url: errors.append("BAIKAL_URL is required") baikal_user = os.environ.get("BAIKAL_USER") if not baikal_user: errors.append("BAIKAL_USER is required") baikal_pass = os.environ.get("BAIKAL_PASS") if not baikal_pass: errors.append("BAIKAL_PASS is required") sync_freq_raw = os.environ.get("SYNC_FREQUENCY", "5") try: sync_frequency = int(sync_freq_raw) if sync_frequency <= 0: raise ValueError except ValueError: errors.append("SYNC_FREQUENCY must be a positive integer") if errors: raise ValueError("\n".join(errors)) return Config( ics_url=ics_url, baikal_url=baikal_url, baikal_user=baikal_user, baikal_pass=baikal_pass, sync_frequency=sync_frequency, )