Files
AnonBot/config/config.py

60 lines
1.8 KiB
Python

"""
Конфигурация бота для анонимных вопросов
"""
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)