| Next revision | Previous revision |
| chat-bots:dispatcher_klaviatury [2025/10/14 17:54] – created olegsklyarov | chat-bots:dispatcher_klaviatury [2025/10/14 18:28] (current) – [Практика (для зачета)] olegsklyarov |
|---|
| Дорабатываем бот из прошлого Д/з (новый создавать не нужно). | Дорабатываем бот из прошлого Д/з (новый создавать не нужно). |
| |
| - Реализовать модуль ''dispatcher.py'', содержащий класс ''Dispatcher'' | ===Требуется реализовать модули=== |
| - Реализовать модуль ''long_polling.pu'', содержащий единственную функцию ''start_long_polling''. Эта функция принимает на вход объект типа ''Dispatcher'' и запускает бесконечный цикл получения апдейтов от Telegram. Так же контролирует обновление ''offset'' для ''getUpdates''. | |
| - Реализовать модуль ''handler.py'' с базовым классом ''Handler'' (интерфейс) | |
| - Реализовать модуль ''handlers/message_echo.py'' с классом ''MessageEcho(Handler)'', который обрабатывает только текстовые апдейты. Поведение - отправить это сообщение как в прошлой Д/з. | |
| - Реализовать модуль ''handlers/database_logger.py'', с классом ''DatabaseLogger(Handler)'', который обрабатывает абсолютно все входящие апдейты. Поведение - записать апдейт в таблицу ''telegram_updates'' (как в прошлом Д/з). Важно: данный хэндлер должен давать сигнал диспетчеру на ПРОДОЛЖЕНИЕ обработки. | |
| - TBD... | |
| |
| | - ''dispatcher.py'', содержащий класс ''Dispatcher'' |
| | - ''long_polling.pu'', содержащий функцию ''start_long_polling()''. Эта функция принимает на вход объект типа ''Dispatcher'' и запускает бесконечный цикл получения апдейтов от Telegram. Так же контролирует обновление ''offset'' для ''getUpdates''. |
| | - ''handler.py'' с базовым классом ''Handler'' (интерфейс ABC) |
| | - ''handlers/message_text_echo.py'' с классом ''MessageTextEcho(Handler)'', который обрабатывает текстовые апдейты. Поведение — отправить эхо сообщение (как в прошлом Д/з). |
| | - ''handlers/database_logger.py'' с классом ''DatabaseLogger(Handler)'', который обрабатывает все входящие апдейты. Поведение — записать апдейт в таблицу ''telegram_updates'' (как в прошлом Д/з). **Важно**: данный хэндлер даёт сигнал диспетчеру на __продолжение__ обработки. |
| | - ''handlers/message_photo_echo.py'' с классом ''MessagePhotoEcho(Handler)'', который обрабатывает апдейты с фото. Поведение — отправить эхо сообщение с той же картинкой (отправить картинку с максимальным в байтах размером) |
| | - Внесите сопутствующие изменения в ''__main__.py'' и остальные файлы при необходимости. |
| | |
| | ===Процесс сдачи=== |
| | |
| | Свяжитесь в ТГ с [[https://t.me/olegsklyarov|преподавателем]] для выбора удобного времени сдачи. |
| | |
| | - (студент): напишите в ТГ [[https://t.me/olegsklyarov|преподавателю]] **одно** сообщение, содержащее текст: |
| | - ''Для сдачи Д/з Dispatcher, бот запущен'' |
| | - Ссылка на гит с исходным кодом бота |
| | - Ссылка на ваш бот |
| | - (преподаватель) отправляем вашему боту тестовые сообщения, проверяет что пришли эхо сообщения. |
| | - (преподаватель) пишем вам в ТГ личку запрос на скриншоты терминала с запущенным ботом и результат выполнения SQL запроса |
| | - (студент) сделать запрошенные скриншоты, отправить в личку преподавателю |
| | - (преподаватель) проверяет скриншоты, при необходимости задает дополнительные вопросы. |
| | - ... |
| | - (преподаватель) отправляет с ТГ личку студенту сообщение "ФИО ✅ 4️⃣" |
| | - (студент) заходит [[chat-bots:Таблица успеваемости|на страницу успеваемости]] и проверяет корректность своей успеваемости. |
| |
| |