User Tools

Site Tools


chat-bots-2025-fall:dispatcher_klaviatury

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
chat-bots-2025-fall:dispatcher_klaviatury [2026/03/02 12:34] – removed - external edit (Unknown date) 127.0.0.1chat-bots-2025-fall:dispatcher_klaviatury [2026/03/02 12:34] (current) – ↷ Links adapted because of a move operation olegsklyarov
Line 1: Line 1:
 +====== Dispatcher, клавиатуры ======
 +
 +===== Д/З =====
 +
 +==== Reading assignment (прочитать и понять) ====
 +
 +  * Паттерн Observer (Наблюдатель) https://refactoring.guru/ru/design-patterns/observer (нужен VPN)
 +  * [[https://docs.python.org/3/library/abc.html|abc]] — Abstract Base Classes
 +
 +==== Практика (для зачета) ====
 +
 +Дорабатываем бот из прошлого Д/з (новый создавать не нужно).
 +
 +===Требуется реализовать модули===
 +
 +  - ''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-2025-fall:tablica_uspevaemosti|на страницу успеваемости]] и проверяет корректность своей успеваемости.
 +