Мини-игры (/games): - Speed Round: 10 раундов, 10 секунд на ответ, очки за скорость - Match Pairs: 5 слов + 5 переводов, соединить пары Premium-функции: - Поля is_premium и premium_until для пользователей - AI режим проверки ответов (учитывает синонимы) - Batch проверка всех ответов одним запросом Улучшения: - Примеры использования для всех добавляемых слов - Разбиение переводов по запятой на отдельные записи - Полные предложения в контекстах (без ___) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
73 lines
4.4 KiB
Markdown
73 lines
4.4 KiB
Markdown
# Версия 1.5.0
|
||
|
||
**Дата:** 2025-12-10
|
||
|
||
## Новые функции
|
||
|
||
### Мини-игры
|
||
- Добавлен раздел мини-игр (`/games`)
|
||
- **Быстрый перевод (Speed Round)**
|
||
- 10 раундов, 10 секунд на ответ
|
||
- Очки за скорость ответа
|
||
- Прогресс-бар таймера в реальном времени
|
||
- Фильтрация слов по изучаемому языку
|
||
- Список ответов с результатами в конце игры
|
||
- **Найди пару (Match Pairs)**
|
||
- 5 слов и 5 переводов вперемешку
|
||
- Нужно соединить правильные пары (формат: 1A, 2B, 3C...)
|
||
- Учёт времени прохождения
|
||
- Подсчёт очков за правильные пары
|
||
- Кнопка "Мини-игры" в главном меню
|
||
|
||
### Система подписки (Premium)
|
||
- Добавлено поле `is_premium` для пользователей
|
||
- Добавлено поле `premium_until` для даты окончания подписки
|
||
- Премиум-пользователи могут выбирать режим проверки в играх:
|
||
- **AI режим** - проверка с учётом синонимов и вариаций ответа
|
||
- **Простой режим** - точное сравнение с переводами из словаря
|
||
|
||
### Улучшенная проверка ответов
|
||
- В простом режиме теперь учитываются все переводы слова из таблицы `word_translations`
|
||
- Добавлен метод `check_translations_batch` в AI сервис для пакетной проверки всех ответов одним запросом
|
||
- AI проверка выполняется в конце игры (оптимизация количества запросов)
|
||
- Предупреждение о работе AI режима перед началом игры
|
||
|
||
### Унификация добавления слов
|
||
- Все способы добавления слов теперь сохраняют перевод в таблицу `word_translations`
|
||
- Это обеспечивает корректную работу проверки в мини-играх для всех слов
|
||
- Добавлен метод `add_translation_split` - автоматическое разбиение переводов по запятой/точке с запятой на отдельные записи
|
||
|
||
## Изменения в базе данных
|
||
|
||
### Новые поля в таблице `users`
|
||
- `is_premium` (Boolean) - флаг подписки
|
||
- `premium_until` (DateTime) - дата окончания подписки
|
||
|
||
### Миграция
|
||
- `20251210_add_is_premium.py`
|
||
|
||
## Новые файлы
|
||
- `bot/handlers/minigames.py` - обработчики мини-игр
|
||
- `versions/v1.5.0.md` - файл обновления
|
||
|
||
## Изменённые файлы
|
||
- `database/models.py` - добавлены поля подписки
|
||
- `services/ai_service.py` - метод `check_translations_batch` для пакетной проверки
|
||
- `services/vocabulary_service.py` - методы `get_random_words_with_translations`, `add_translation_split`
|
||
- `bot/handlers/start.py` - кнопка мини-игр в меню
|
||
- `bot/handlers/words.py` - добавление в word_translations при добавлении тематических слов
|
||
- `bot/handlers/import_text.py` - добавление в word_translations при импорте из текста
|
||
- `bot/handlers/stories.py` - добавление в word_translations при добавлении слов из историй
|
||
- `bot/handlers/wordofday.py` - добавление в word_translations при добавлении слова дня
|
||
- `main.py` - регистрация роутера мини-игр
|
||
- `locales/ru.json`, `locales/en.json`, `locales/ja.json` - локализация мини-игр
|
||
|
||
## Локализация
|
||
Добавлены ключи для мини-игр на всех языках (ru/en/ja):
|
||
- Меню мини-игр
|
||
- Правила Speed Round
|
||
- Правила Match Pairs
|
||
- Режимы проверки (AI/простой)
|
||
- Предупреждение о работе AI режима
|
||
- Результаты и список ответов
|