Работа с сообщениями

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)