LichessStatTgWeb/LichessClientTG_bot/config.py

58 lines
2.2 KiB
Python
Raw Normal View History

import os
from dotenv import load_dotenv
load_dotenv()
2026-02-05 01:38:33 +03:00
IS_PROD = True
2025-11-16 22:09:37 +03:00
# Telegram Bot Configuration (Production)
TELEGRAM_BOT_TOKEN_PROD = "8241474807:AAH684LTY93aXRou4-LtqU5-p8LuEjzYn8U"
# Admin Panel Bot Configuration (Production)
ADMINPANEL_TELEGRAM_BOT_TOKEN_PROD = "7918349610:AAEZH7lbzdams31rCDZXeaAzFluDWfUQoLg"
# Telegram Bot Configuration (Test)
TELEGRAM_BOT_TOKEN_TEST = "7903295042:AAGBO2k8pfBDy4RoLRFsknwE7z0N-thAPI8"
# Admin Panel Bot Configuration (Test)
ADMINPANEL_TELEGRAM_BOT_TOKEN_TEST = "8588876086:AAHoZncfhTCbul1BblpvnZMzvz7jAYVFmcw"
# Select tokens based on IS_PROD flag
if IS_PROD:
TELEGRAM_BOT_TOKEN = TELEGRAM_BOT_TOKEN_PROD
ADMINPANEL_TELEGRAM_BOT_TOKEN = ADMINPANEL_TELEGRAM_BOT_TOKEN_PROD
else:
TELEGRAM_BOT_TOKEN = TELEGRAM_BOT_TOKEN_TEST
ADMINPANEL_TELEGRAM_BOT_TOKEN = ADMINPANEL_TELEGRAM_BOT_TOKEN_TEST
2025-11-13 01:00:48 +03:00
# Lichess API Configuration
LICHESS_API_BASE_URL = "https://lichess.org/api"
LICHESS_STATS_API_BASE_URL = "http://localhost:8001" # For Docker container access
2026-02-04 23:51:32 +03:00
# Минимальная задержка (сек) между запросами к Lichess в очереди мониторинга (избежание бана)
2026-02-05 01:38:33 +03:00
LICHESS_REQUEST_QUEUE_MIN_DELAY = 4.0
# Database Configuration
2025-11-16 13:38:25 +03:00
def _resolve_database_path() -> str:
# 1) Explicit env var has highest priority
db_from_env = os.getenv("DATABASE_PATH")
if db_from_env:
return db_from_env
# 2) Docker default if volume is mounted
docker_data_dir = "/app/data"
if os.path.isdir(docker_data_dir):
return os.path.join(docker_data_dir, "lichess_bot.db")
# 3) Local development fallback (repo data dir)
repo_data_dir = os.path.join(os.path.dirname(__file__), "data")
os.makedirs(repo_data_dir, exist_ok=True)
return os.path.join(repo_data_dir, "lichess_bot.db")
DATABASE_PATH = _resolve_database_path()
# Period options for /setperiod command
2025-11-16 21:01:14 +03:00
PERIOD_OPTIONS = [0, 15, 30, 60, 120, 180, 360, 720, 1440] # minutes (0=disable, then: 15min, 30min, 1h, 2h, 3h, 6h, 12h, 24h)
# Telegram Bot Long Polling Configuration
POLL_INTERVAL = 1.0 # seconds
POLL_TIMEOUT = 30 # seconds
2025-11-13 01:00:48 +03:00
DROP_PENDING_UPDATES = True # Drop pending updates on startup
ALLOWED_UPDATES = ["message", "callback_query"]