File size: 1,077 Bytes
9a1712b
 
 
 
 
 
 
 
 
 
 
fae6cf3
 
9a1712b
 
fae6cf3
 
 
 
 
 
9a1712b
fae6cf3
9a1712b
 
 
fae6cf3
9a1712b
 
 
 
 
 
 
 
 
fae6cf3
 
9a1712b
 
fae6cf3
9a1712b
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
"""
config.py — Centralized configuration loader.
"""

import os
from dotenv import load_dotenv

load_dotenv()


class Config:
    # Telegram
    BOT_TOKEN:      str = os.getenv("BOT_TOKEN", "")
    OWNER_USERNAME: str = os.getenv("OWNER_USERNAME", "Ahmad_Gebril")

    # Database
    DATABASE_URL:   str = os.getenv("DATABASE_URL", "")

    # Webhook — your HF Space public URL (no trailing slash)
    # Example: https://ahmad3g-telegram-bot.hf.space
    WEBHOOK_URL:    str = os.getenv("WEBHOOK_URL", "")

    # Web server
    WEB_HOST: str = "0.0.0.0"
    WEB_PORT: int = 7860

    # Pagination
    ITEMS_PER_PAGE: int = 10

    @classmethod
    def validate(cls):
        missing = []
        if not cls.BOT_TOKEN:
            missing.append("BOT_TOKEN")
        if not cls.DATABASE_URL:
            missing.append("DATABASE_URL")
        if not cls.WEBHOOK_URL:
            missing.append("WEBHOOK_URL")
        if missing:
            raise EnvironmentError(
                f"❌ Missing environment variables: {', '.join(missing)}"
            )


config = Config()