KTB-17 Реализовать функционал отображения статистики в боте¶
📝 Описание¶
В текущей версии бота пользователю отправляется заглушка вместо реальной статистики его прогресса в изучении слов. Задача состоит в том, чтобы заменить эту заглушку на актуальные данные из тренажёра.
Для этого необходимо использовать метод trainer.getStatistics(), который будет собирать и возвращать необходимые статы из класса тренажёра.
🗒 Задание¶
- Реализовать метод
trainer.getStatistics()в классе тренажёра. - Сформировать сообщение с текущей статистикой и убедиться в его корректном форматировании для отображения в боте.
- Отправлять сформированное сообщение пользователю, используя соответствующие методы API Telegram.
- Вынести переменные
statistics_clickedиlearn_words_clickedв константы.
❌ Ошибки¶
✏️ Комментарии¶
Давай вынесем `"learn_words_clicked"` в константы `"statistics_clicked"` из тела `sendMenuBody` в константы
Иногда trainer.getStatistics() делают за пределами цикла. Тогда статистика никогда не меняется. Что является грубой ошибкой.
Тут ошибка, статистика считается один раз и больше не пересчитывается по запросу пользователя. Давай делать этот запрос внутри if
Иногда его делают за пределами if (data?.lowercase() == CLICKED_STATISTICS) , это менее критично. Но тоже ошибка:
Вызов `trainer.getStatistics()` приводит по сути к подсчету статистики по выученным словам. В нашем случае это не ресурсоемкая операция, но все же не стоит ее делать каждую итерацию цикла, даже когда пользователь по сути ее не запросил. Давай уберем внутрь if.