init
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
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()
|
||||
Reference in New Issue
Block a user