Files
2026-07-19 21:24:04 +00:00

48 lines
1.3 KiB
Python

import os
from dataclasses import dataclass
def _require_int(name: str) -> int:
val = os.environ.get(name)
if not val:
raise RuntimeError(f"Env var {name} is required")
return int(val)
def _require_str(name: str) -> str:
val = os.environ.get(name)
if not val:
raise RuntimeError(f"Env var {name} is required")
return val
@dataclass(frozen=True)
class Settings:
api_id: int
api_hash: str
phone_number: str
session_name: str
sessions_dir: str
# Цель звонка по умолчанию: @username или numeric user id — прямой p2p звонок.
call_target: str
call_ring_timeout: int
tts_lang: str
api_token: str | None
def load_settings() -> Settings:
return Settings(
api_id=_require_int("API_ID"),
api_hash=_require_str("API_HASH"),
phone_number=_require_str("PHONE_NUMBER"),
session_name=os.environ.get("SESSION_NAME", "caller"),
sessions_dir=os.environ.get("SESSIONS_DIR", "/data/sessions"),
call_target=_require_str("CALL_TARGET"),
call_ring_timeout=int(os.environ.get("CALL_RING_TIMEOUT", "45")),
tts_lang=os.environ.get("TTS_LANG", "ru"),
api_token=os.environ.get("API_TOKEN") or None,
)
settings = load_settings()