""" Конфигурация бота для анонимных вопросов """ import os from typing import List from dotenv import load_dotenv # Загружаем переменные окружения из .env файла load_dotenv() class Config: """Класс конфигурации бота""" # Токен бота (обязательно) BOT_TOKEN: str = os.getenv('BOT_TOKEN', '') # Список ID администраторов (через запятую) ADMINS: List[int] = [ int(admin_id.strip()) for admin_id in os.getenv('ADMINS', '').split(',') if admin_id.strip() ] # Путь к базе данных SQLite DATABASE_PATH: str = os.getenv('DATABASE_PATH', 'database/anon_qna.db') # Режим отладки DEBUG: bool = os.getenv('DEBUG', 'False').lower() == 'true' # Максимальная длина вопроса MAX_QUESTION_LENGTH: int = int(os.getenv('MAX_QUESTION_LENGTH', '1000')) # Максимальная длина ответа MAX_ANSWER_LENGTH: int = int(os.getenv('MAX_ANSWER_LENGTH', '2000')) @classmethod def validate(cls) -> bool: """Проверка корректности конфигурации""" if not cls.BOT_TOKEN: raise ValueError("BOT_TOKEN не установлен в переменных окружения") if not cls.ADMINS: print("Предупреждение: ADMINS не установлен") return True # Создаем экземпляр конфигурации config = Config() # Проверяем конфигурацию при импорте try: config.validate() except ValueError as e: print(f"Ошибка конфигурации: {e}") exit(1)