Implement user-specific question numbering and update database schema. Added triggers for automatic question numbering and adjustments upon deletion. Enhanced CRUD operations to manage user_question_number effectively.
This commit is contained in:
59
config/config.py
Normal file
59
config/config.py
Normal file
@@ -0,0 +1,59 @@
|
||||
"""
|
||||
Конфигурация бота для анонимных вопросов
|
||||
"""
|
||||
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)
|
||||
Reference in New Issue
Block a user