Fix bot polling, downloads, and file delivery
This commit is contained in:
commit
8a21cbe18a
16 changed files with 1712 additions and 0 deletions
47
app/config.py
Normal file
47
app/config.py
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
"""Конфигурация приложения из переменных окружения."""
|
||||
import os
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
class Config:
|
||||
"""Класс для хранения конфигурации."""
|
||||
|
||||
def __init__(self):
|
||||
self.is_prod = os.getenv("IS_PROD", "false").lower() == "true"
|
||||
|
||||
# Выбор токенов в зависимости от режима
|
||||
if self.is_prod:
|
||||
self.user_bot_token = os.getenv("TG_USER_BOT_TOKEN_PROD")
|
||||
self.admin_bot_token = os.getenv("TG_ADMIN_BOT_TOKEN_PROD")
|
||||
else:
|
||||
self.user_bot_token = os.getenv("TG_USER_BOT_TOKEN_TEST")
|
||||
self.admin_bot_token = os.getenv("TG_ADMIN_BOT_TOKEN_TEST")
|
||||
|
||||
self.admin_chat_id = os.getenv("ADMIN_CHAT_ID")
|
||||
self.workdir = Path(os.getenv("WORKDIR", "/data"))
|
||||
self.log_level = os.getenv("LOG_LEVEL", "INFO")
|
||||
|
||||
# Таймауты для Telegram API (секунды)
|
||||
self.tg_connect_timeout = float(os.getenv("TG_CONNECT_TIMEOUT", "20"))
|
||||
self.tg_read_timeout = float(os.getenv("TG_READ_TIMEOUT", "120"))
|
||||
self.tg_write_timeout = float(os.getenv("TG_WRITE_TIMEOUT", "120"))
|
||||
self.tg_pool_timeout = float(os.getenv("TG_POOL_TIMEOUT", "20"))
|
||||
|
||||
# Параметры для yt-dlp (обход 403 при необходимости)
|
||||
self.ytdlp_cookies_file = os.getenv("YTDLP_COOKIES_FILE")
|
||||
self.ytdlp_user_agent = os.getenv("YTDLP_USER_AGENT")
|
||||
self.ytdlp_player_client = os.getenv("YTDLP_PLAYER_CLIENT", "android")
|
||||
self.ytdlp_force_ipv4 = os.getenv("YTDLP_FORCE_IPV4", "true").lower() == "true"
|
||||
|
||||
# Параметры отправки файлов в Telegram
|
||||
self.max_part_mb = int(os.getenv("MAX_PART_MB", "40"))
|
||||
self.audio_bitrate_kbps = int(os.getenv("AUDIO_BITRATE_KBPS", "128"))
|
||||
|
||||
# Создаём рабочую директорию если её нет
|
||||
self.workdir.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
# Проверка обязательных переменных
|
||||
if not self.user_bot_token:
|
||||
raise ValueError("TG_USER_BOT_TOKEN не установлен")
|
||||
if not self.admin_bot_token:
|
||||
raise ValueError("TG_ADMIN_BOT_TOKEN не установлен")
|
||||
Loading…
Add table
Add a link
Reference in a new issue