54 lines
1.3 KiB
Python
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,
|
|
)
|