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 режима
|
|||
|
|
- Результаты и список ответов
|