Files
tg_bot_language/versions/v1.5.0.md
mamonov.ep adc8a6bf8e feat: мини-игры, premium подписка, улучшенные контексты
Мини-игры (/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>
2025-12-10 19:42:10 +03:00

4.4 KiB
Raw Blame History

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