preiums_bot / config.py
ibrohm's picture
fix: Cloudflare Worker proxy support + retry logic for Telegram API
df1c82c
Raw
History Blame Contribute Delete
2.06 kB
import os
from dotenv import load_dotenv
load_dotenv()
# Bot tokeni
BOT_TOKEN: str = os.getenv("BOT_TOKEN", "")
# Telegram API manzili.
# Hugging Face Spaces api.telegram.org'ni bloklaydi β€” shu sababli
# Cloudflare Worker orqali proxy qilamiz. Agar Worker yo'q bo'lsa,
# standart Telegram API manziliga qaytamiz.
TELEGRAM_API_URL: str = os.getenv(
"TELEGRAM_API_URL",
"https://api.telegram.org"
)
# Admin ID lari (vergul bilan ajratilgan)
_admin_ids_raw = os.getenv("ADMIN_IDS", "")
ADMIN_IDS: list[int] = [
int(i.strip()) for i in _admin_ids_raw.split(",") if i.strip()
]
# Ma'lumotlar bazasi yo'li
DB_PATH: str = os.getenv("DB_PATH", "shop.db")
MONGO_URI: str = os.getenv("MONGO_URI", "mongodb://localhost:27017")
# Mahsulotlar (Stars narxlari β€” Telegram rasmiy kursi bo'yicha)
PRODUCTS = [
{
"id": 1,
"name": "Telegram Premium β€” 1 oy",
"description": "1 oylik Telegram Premium obunasi. Stars orqali to'lov.",
"duration_months": 1,
"stars_price": 265,
"emoji": "πŸ₯ˆ",
},
{
"id": 2,
"name": "Telegram Premium β€” 3 oy",
"description": "3 oylik Telegram Premium obunasi. Stars orqali to'lov.",
"duration_months": 3,
"stars_price": 725,
"emoji": "πŸ₯‡",
},
{
"id": 3,
"name": "Telegram Premium β€” 6 oy",
"description": "6 oylik Telegram Premium obunasi. Stars orqali to'lov.",
"duration_months": 6,
"stars_price": 1450,
"emoji": "πŸ’Ž",
},
{
"id": 4,
"name": "Telegram Premium β€” 12 oy",
"description": "12 oylik Telegram Premium obunasi. Stars orqali to'lov.",
"duration_months": 12,
"stars_price": 2900,
"emoji": "πŸ‘‘",
},
]
# Tekshirish
if not BOT_TOKEN:
raise ValueError("BOT_TOKEN .env faylida topilmadi!")
# TELEGRAM_API_URL oxirida "/" bo'lmasligi kerak (aiogram talabi)
TELEGRAM_API_URL = TELEGRAM_API_URL.rstrip("/")
if not ADMIN_IDS:
raise ValueError("ADMIN_IDS .env faylida topilmadi!")