Cat

AIOgram3 4. Эхо-бот

В этом посте создадим простейшего эхо-бота, запустим и протестируем.

Все статьи

Icon Link

Дополнительные материалы

Icon Link

Реклама

Icon Link
Telegram-бот на AIOgram3 proDream 28 Июль 2023 Просмотров: 3643

Функция echo().

Для того, что бы сделать повторяющего за нами бота, давайте создадим функцию echo.
Между импортами и функцией start() создадим функцию:

from aiogram.types import Message  


async def echo(message: Message):

 

Эхо - ответ на сообщение.

В теле функции напишем код ответа на сообщение:

    await message.answer(message.text)

 

Переменная message, переданная в функцию, является объектом класса Message. Мы, используя доступный нам метод answer, отвечаем пользователю, отправившему сообщение боту.

 

В качестве ответа пользователю, мы отправляем его же сообщение. Текст ответа получим из переменной message воспользовавшись ещё одним методом text, возвращающим текстовое представление данных.

 

Await.

Также, стоит упомянуть про await.
Ключевое слово await используется только внутри асинхронной функции и только для вызова асинхронных операций. 
Оно используется с операциями, которые могут занять некоторое время. 
Поскольку эти операции требуют времени на выполнение, программа может продолжить выполнение других задач в это время, а затем вернуться к исходной задаче только после завершения асинхронной операции.

Таким образом, await в данном случае означает, что программа должна дождаться отправки сообщения, прежде чем продолжить дальнейшее выполнение кода.

 

Регистрация функции.

Теперь нам необходимо зарегистрировать данную функцию.
В функции start(), после инициализации диспетчера, но до блока try-finally, регистрируем функцию, на приём всех сообщений:

    dp.message.register(echo)

Обратите внимание! При регистрации функции, мы пишем только её название, без круглых скобок!

 

Первый запуск.

Настало время запустить бота и проверить его работу. Запускаем файл main.py.
Поскольку у нас не инициализирован логгер и нет оповещения о запуске, то в терминале будет пусто, однако, если мы напишем боту... То он начнёт нам отвечать!

 

Для остановки бота, если он запущен в PyCharm, достаточно нажать на остановку.
Если бот запущен в терминале, то для остановки необходимо выполнить сочетание клавиш CTRL+C.

Поздравляю, бот работает.

Автор

  • 14 августа 2024 г. 19:52

    Всё остальные IDE запускают в консоли, а у PyCharm своя консоль для запущенных. Так что тут всё верно. Если запущен бот в PyCharm, то останавливаем кнопкой остановки, а если в терминале (другой IDE), то CTRL+C.

  • 14 августа 2024 г. 17:42

    если он запущен в PyCharm(c) - лучше написать если он запущен в IDE, а то не у всех же юзеров PyCharm в качестве IDE

  • Реклама