added: dictionary support for censore message/user management with dict triggers
25 lines
929 B
Python
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) |