Files

54 lines
1.3 KiB
Python

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,
)