Данный бот призван помочь в изучениии новых английских слов. Пользователю предлагается подборка слов для изучения, а так же возможность запуска экзамена по выданной ранее подборке слов.
Бот обрабатывает файл words.txt и присылает то количество слов, которое установлено пользователем (см. пункт 2). Налажено общение с Google Translate API, который обрабатывает поступающие слова из файла и парсит их в коллекцию с переводами.
После выдачи слов пользователю - они помещаются в .csv-файл в формате "слово, перевод" для дальнейшей выдачи через кнопку "Запустить тестирование" (см. пункт 3).
Бот взаимодействует с ранее описанным .csv-файлом для выдачи для проверки именно тех слов, которые ранее выдавались пользователю.
Сообщение приходит в таком формате: Английское слово и 4 кнопки (слова переводы, один из которых верный). Сверка правильного ответа происходит благодаря подставляемому в кнопку-перевод callbackData, что позволяет динамично проверять ответы пользователя на правильность.
- Если пользователь отвечает не правильно, то бот присылает сообщение "Не правильный ответ"
- Если пользователь отвечает верно, то данная пара (слово-перевод) удаляется из файла и в при последующем экзаменее не предлагается.
При прохождении тестирования пользователю доступна кнопка "Завершить тестирование досрочно 🏃♂️", она позволяет прервать тестирования и зафиксировать текущий прогресс.
В данном разделе пользователю предлагается изменить дневной лимит слов и обнулить свой прогресс.
После нажатия на кнопку пользователю присылается сообщение с прикрепленными кнопками:
При выборе любого лимита через нажатие, боту приходит информация о callbackData (id нажатой кнопки), которую бот обрабатывает следующим образом: В существующем файле (user_limits/limits.csv) считывает всё содержимое в коллекцию типа List<String[]>, и проходится по каждой записи, сверяя chatId и новый лимит. Если записи нет - записывает её, если запись есть и новый установленный лимит соответствует уже записанному - возвращает этот лимит, а если запись имеется, но записанный лимит и устанавливаемый - не соответствуют друг другу, то обновляет запись.
После успешной установки лимита - пользователю приходит ответ от бота: "Новый лимит установлен ✅"
В процессе изучения новых слов - файл с которого осуществляется парсинг слов для выдачи пользователю по кнопке "Изучить слова 📚" подчищается (из него удаляются все выученные слова). С помощью данной кнопки файл можно обновить, вернув его в первоначальную форму.
После нажатия на кнопку пользователя встречает сообщение: