Files
tg_post_min/app/config.py
2025-08-20 21:10:31 +09:00

24 lines
820 B
Python

import os
from dataclasses import dataclass
@dataclass
class Config:
bot_token: str
database_url: str
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}"
return Config(bot_token=bot_token, database_url=db_url)