Работа с сообщениями¶
CactusUtils.send_message(peer: int, text: str, *, parse_message: bool = True, parse_mode: str = "HTML", markup: Any = None, on_sent: Optional[Callable] = None, **kwargs)¶
Важный частоиспользуемый метод для отправки сообщений. Текст может быть разобран на HTML-разметку или Markdown-разметку. К сообщению могут быть добавлены Inline кнопки, а также можно отследить отправку сообщения.
peer(int): ID чата, в который нужно отправить сообщение.text(str): Текст сообщения.parse_message(bool): ЕслиTrue, то текст будет разобран на HTML-разметку.parse_mode(str): Режим парсинга. Может быть"HTML"или"MARKDOWN".markup(Any): Объект с Inline клавиатурой.on_sent(Optional[Callable]): Функция, которая будет вызвана после отправки сообщения. Принимает один аргумент — объектCactusUtils.Inline.CallbackParams(button=None).**kwargs: Дополнительные параметры.
CactusUtils.edit_message(message_object: MessageObject, text: str, *, parse_message: bool = True, parse_mode: str = "HTML", markup: Any = None, **kwargs)¶
Метод для редактирования сообщения.
message_object(org.telegram.messenger.MessageObject): Объект сообщения, который нужно отредактировать.text(str): Новый текст сообщения.parse_message(bool): ЕслиTrue, то текст будет разобран на HTML-разметку.parse_mode(str): Режим парсинга. Может быть"HTML"или"MARKDOWN".markup(Any): Объект с Inline клавиатурой.**kwargs: Дополнительные параметры.
CactusUtils.edit_message_markup(cell: ChatMessageCell, markup)¶
Метод для редактирования Inline-клавиатуры сообщения.
cell(org.telegram.ui.Cells.ChatMessageCell): Объект сообщения, который нужно отредактировать.markup: Объект с Inline клавиатурой илиNone(удаляет клавиатуру).
self.answer_file(self, params, path: str, caption: Optional[str] = None, *, parse_markdown: bool = True, **kwargs) (CactusUtils.Plugin.answer_file)¶
Отправляет документ (файл) с возможностью добавить подпись.
Пример:
@command("getlogs")
def handle_logs(self, command: CactusUtils.Command):
log_content = "some log data..."
# Записываем контент во временный файл
file_path = self.utils.FileSystem.write_temp_file("logs.txt", log_content.encode("utf-8"), delete_after=60)
self.answer_file(command.params, file_path, caption="Вот ваши логи:")
return HookResult(strategy=HookStrategy.CANCEL)