Шорткаты⚓︎
Работа с объектом Message⚓︎
При обработке входящего сообщения в функцию-обработчик обычно передается объект Message:
from trueconf import Router
from trueconf.types import Message
r = Router()
@r.message()
async def on_message(message: Message):
await message.answer("Сообщение получено")
Message передается в обработчик автоматически и содержит контекст текущего события: данные об авторе, чате, типе сообщения, содержимом, идентификаторе сообщения и других параметрах. Кроме того, через объект сообщения можно получить доступ к экземпляру бота, который обрабатывает текущее событие:
Это удобно, когда экземпляр бота создан в другом файле или объявлен ниже в коде, и внутри обработчика нельзя напрямую обратиться к переменной bot.
В таком случае доступ к текущему экземпляру бота можно получить через объект сообщения: message.bot.
Шорткаты Message⚓︎
Для Message реализованы шорткаты — вспомогательные методы, которые позволяют выполнять частые действия без явной передачи chat_id, message_id и других параметров. Эти значения автоматически берутся из текущего сообщения.
Note
На данный момент шорткаты реализованы только для типа Message. В будущем аналогичные методы могут появиться и для других типов событий.
Например, вместо прямого вызова метода бота:
@r.message()
async def on_message(message: Message):
await message.bot.send_message(
chat_id=message.chat_id,
text="Привет!"
)
можно использовать шорткат:
Шорткаты особенно полезны в обработчиках, где действие связано с текущим сообщением или текущим чатом. Они делают код короче и уменьшают количество повторяющихся параметров.
Например, message.answer(...) автоматически использует чат, из которого пришло сообщение, а message.reply(...) дополнительно связывает ответ с исходным сообщением.
Tip
Список всех доступных шорткатов вы можете изучить в разделе с описанием класса Message.