first commit
This commit is contained in:
36
src/config.py
Normal file
36
src/config.py
Normal file
@@ -0,0 +1,36 @@
|
||||
import os
|
||||
from dataclasses import dataclass
|
||||
from typing import Set
|
||||
|
||||
|
||||
def _parse_chat_ids(value: str) -> Set[int]:
|
||||
chat_ids = set()
|
||||
for item in (value or "").replace(";", ",").split(","):
|
||||
item = item.strip()
|
||||
if not item:
|
||||
continue
|
||||
chat_ids.add(int(item))
|
||||
return chat_ids
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class Config:
|
||||
bot_token: str
|
||||
api_base_url: str
|
||||
api_key: str
|
||||
allowed_chat_ids: Set[int]
|
||||
request_timeout: float
|
||||
|
||||
|
||||
def load_config() -> Config:
|
||||
allowed_chat_ids = _parse_chat_ids(
|
||||
os.environ.get("BOT_ALLOWED_CHAT_IDS") or os.environ.get("STAFF_CHAT_ID", "")
|
||||
)
|
||||
|
||||
return Config(
|
||||
bot_token=os.environ["TELEGRAM_BOT_TOKEN"],
|
||||
api_base_url=os.environ.get("GROUPFACTORY_API_BASE_URL", "http://groupfactory:8000").rstrip("/"),
|
||||
api_key=os.environ["GROUPFACTORY_API_KEY"],
|
||||
allowed_chat_ids=allowed_chat_ids,
|
||||
request_timeout=float(os.environ.get("GROUPFACTORY_API_TIMEOUT", "300")),
|
||||
)
|
||||
Reference in New Issue
Block a user