Files
tg_post_min/app/config.py
Andrey K. Choi c16ec54891 Bot become a Community Guard & Post send manager
added: dictionary support for censore
message/user management with dict triggers
2025-08-22 21:44:14 +09:00

25 lines
929 B
Python

import os
from dataclasses import dataclass
@dataclass
class Config:
bot_token: str
database_url: str
metrics_port: int = 8000
log_level: str = os.getenv("LOG_LEVEL", "INFO")
def load_config() -> "Config":
bot_token = os.getenv("BOT_TOKEN", "").strip()
if not bot_token:
raise RuntimeError("BOT_TOKEN is not set")
# DATABASE_URL takes precedence; else compose from parts
db_url = os.getenv("DATABASE_URL", "").strip()
if not db_url:
host = os.getenv("DB_HOST", "db")
port = os.getenv("DB_PORT", "5432")
name = os.getenv("DB_NAME", "tg_poster")
user = os.getenv("DB_USER", "postgres")
pwd = os.getenv("DB_PASSWORD", "postgres")
db_url = f"postgresql+psycopg://{user}:{pwd}@{host}:{port}/{name}"
metric_port = int(os.getenv("METRICS_PORT", 9010))
return Config(bot_token=bot_token, database_url=db_url, metrics_port=metric_port)