User Tools

Site Tools


chat-bots:dispatcher_klaviatury

Differences

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

Link to this comparison view

Next revision
Previous revision
chat-bots:dispatcher_klaviatury [2025/10/14 17:54] – created olegsklyarovchat-bots:dispatcher_klaviatury [2025/10/14 18:28] (current) – [Практика (для зачета)] olegsklyarov
Line 12: Line 12:
 Дорабатываем бот из прошлого Д/з (новый создавать не нужно). Дорабатываем бот из прошлого Д/з (новый создавать не нужно).
  
-  - Реализовать модуль ''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:Таблица успеваемости|на страницу успеваемости]] и проверяет корректность своей успеваемости.
  
  
chat-bots/dispatcher_klaviatury.1760453678.txt.gz · Last modified: by olegsklyarov