Перейти к содержимому

Context

Context создаётся автоматически при каждом вызове process_update и передаётся в обработчик. Содержит данные из апдейта и методы для ответа.

АтрибутТипОписание
ctx.botBotЭкземпляр бота
ctx.updatedictСырой апдейт от Telegram
ctx.envAnyОбъект env Cloudflare Workers
ctx.requestAnyExecutionContext запроса
ctx.chat_idint | NoneID чата
ctx.message_idint | NoneID сообщения
ctx.from_userdict | NoneИнформация об отправителе
ctx.textstrТекст сообщения (пустая строка если нет)
ctx.commandstr | NoneКоманда (например, "/start")
АтрибутТипОписание
ctx.callback_querydict | NoneОбъект callback query
ctx.callback_datastr | NoneДанные из кнопки
АтрибутТипОписание
ctx.photolist | NoneСписок PhotoSize (от маленького к большому)
ctx.videodict | NoneОбъект видео
ctx.voicedict | NoneГолосовое сообщение
ctx.audiodict | NoneАудиофайл
ctx.stickerdict | NoneСтикер
ctx.animationdict | NoneАнимация (GIF/MP4)
ctx.documentdict | NoneДокумент
АтрибутТипОписание
ctx.checklistdict | NoneОбъект чеклиста
ctx.checklist_tasks_donedict | NoneИнформация о выполненных задачах
СвойствоТипОписание
ctx.usersUserRegistryРеестр пользователей
ctx.keyboardsKeyboardRegistryРеестр клавиатур
ctx.promptsPromptRegistryРеестр промптов

Отправляет новое сообщение в чат (без reply).

await ctx.send(
text: str,
reply_markup: dict | None = None,
parse_mode: str | None = None,
) -> dict

Отвечает с цитированием текущего сообщения.

await ctx.reply(
text: str,
reply_markup: dict | None = None,
parse_mode: str | None = None,
) -> dict

Редактирует текущее сообщение. Обычно используется в callback handler’ах.

await ctx.edit_message(
text: str,
reply_markup: dict | None = None,
parse_mode: str | None = None,
) -> dict

Отвечает на callback query (убирает «часики» на кнопке).

await ctx.answer_callback(
text: str | None = None,
show_alert: bool = False,
) -> dict
ПараметрОписание
textТекст уведомления (toast или alert)
show_alertTrue — модальное окно, False — toast

Все методы принимают file_id или URL. Возвращают ответ Telegram API.

await ctx.send_photo(
photo: str,
caption: str | None = None,
reply_markup: dict | None = None,
parse_mode: str | None = None,
) -> dict
await ctx.send_video(
video: str,
caption: str | None = None,
reply_markup: dict | None = None,
parse_mode: str | None = None,
) -> dict
await ctx.send_voice(
voice: str,
caption: str | None = None,
reply_markup: dict | None = None,
parse_mode: str | None = None,
) -> dict
await ctx.send_audio(
audio: str,
caption: str | None = None,
reply_markup: dict | None = None,
parse_mode: str | None = None,
title: str | None = None,
performer: str | None = None,
) -> dict
await ctx.send_sticker(
sticker: str,
reply_markup: dict | None = None,
) -> dict
await ctx.send_animation(
animation: str,
caption: str | None = None,
reply_markup: dict | None = None,
parse_mode: str | None = None,
) -> dict
await ctx.send_document(
document: str,
caption: str | None = None,
reply_markup: dict | None = None,
parse_mode: str | None = None,
) -> dict