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:
2025-09-06 18:35:12 +03:00
parent 50be010026
commit 596a2fa813
111 changed files with 16847 additions and 65 deletions

63
.env_example Normal file
View File

@@ -0,0 +1,63 @@
# Пример файла .env для настройки бота
# Скопируйте этот файл в .env и заполните своими данными
# Токен бота от @BotFather
BOT_TOKEN=your_bot_token_here
# ID администраторов через запятую (можно получить у @userinfobot)
ADMINS=123456789,987654321
# Путь к базе данных SQLite
DATABASE_PATH=database/anon_qna.db
# Режим отладки (true/false)
DEBUG=false
# Максимальная длина вопроса
MAX_QUESTION_LENGTH=1000
# Максимальная длина ответа
MAX_ANSWER_LENGTH=2000
# ===========================================
# Настройки Rate Limiting
# ===========================================
# Окружение для rate limiting (development/production/strict)
RATE_LIMIT_ENV=production
# Основные настройки rate limiting (основаны на лимитах Telegram API)
# Telegram API лимиты: 1 сообщение/сек в личных чатах, 20 сообщений/мин в группах, 30 запросов/сек глобально
RATE_LIMIT_MESSAGES_PER_SECOND=0.5
RATE_LIMIT_BURST_LIMIT=2
RATE_LIMIT_RETRY_MULTIPLIER=1.5
RATE_LIMIT_MAX_RETRY_DELAY=30.0
RATE_LIMIT_MAX_RETRIES=3
# Задержки для разных типов сообщений
RATE_LIMIT_VOICE_DELAY=2.5
RATE_LIMIT_MEDIA_DELAY=2.0
RATE_LIMIT_TEXT_DELAY=1.5
# Множители для разных типов чатов
RATE_LIMIT_PRIVATE_MULTIPLIER=1.0
RATE_LIMIT_GROUP_MULTIPLIER=0.8
RATE_LIMIT_CHANNEL_MULTIPLIER=0.6
# Глобальные ограничения (консервативные настройки)
RATE_LIMIT_GLOBAL_MESSAGES_PER_SECOND=20.0
RATE_LIMIT_GLOBAL_BURST_LIMIT=15
# ===========================================
# Переменные окружения для Docker
# ===========================================
# Python настройки
PYTHONPATH=/app
PYTHONUNBUFFERED=1
# Путь к базе данных в Docker контейнере
DATABASE_PATH_DOCKER=/app/database/anon_qna.db
# Путь к логам в Docker контейнере
LOGS_PATH_DOCKER=/app/logs