Skip to main content
Вся структура класса CactusUtils.
Просьба посмотреть всех методы и все классы, вы можете найти вспомогающие вам штуки.

Методы

Все методы являются статичными, то есть не требуют инициализации класса и можно вызывать напрямую: CactusUtils.copy_to_clipboard("Hello, exteraGram!")
Сравнивает версию a с версией b. На выход идёт a >= b.
Пример использования
Возвращает список классов всех плагинов из PluginsController.pluginInstances.
Возвращает класс плагина по его ID.
Этот метод генерирует новый прокси-класс, который расширяет данный java_class и переопределяет определенный метод.
type(jclass("java.lang.Object"))
required
Класс-интерфейс для создания своего класс через dynamic_proxy.
str
required
Имя метода, который будет переопределен в прокси-классе.
bool
default:"False"
Возвращать ли значение вашей функции в ответ в переопределенном методе.
Пример использования
Этот метод похож на gen, но позволяет переопределять несколько методов в сгенерированном прокси-классе.
type(jclass("java.lang.Object"))
required
Класс-интерфейс для создания своего класс через dynamic_proxy.
bool
default:"False"
Возвращать ли значение ваших функций в ответ в переопределенных методах.
dict[str, callable]
required
Именованные аргументы, где ключ - это имя метода, а значение - это вызываемый объект Python, который заменит исходную реализацию метода.
Пример использования
Метод для сжатия данных. Оборачивает в base64 сжатые через zlib данные.
bytes | str
required
Данные для упаковывания.
int
default:"7"
Уровень сжатия. Подробнее
Пример использования
Метод для распаковки данных, сжатых с помощью метода decode_and_decompress.
bytes | str
required
Данные для распаковки.
Пример использования
Возвращает множественную строку, основанную на заданном числе.
int
required
Число, определяющее форму множественного числа.
list[str]
required
Список из 3 слов, представляющих формы единственного, двойственного и множественного числа.
Пример использования
Экранирует html-теги
str
required
Текст для экранирования
Пример использования
Копирует заданный текст в буфер обмена и выводит информацию об этом
str
required
Текст для копирования.
Возвращает текущий префикс системы команд в CactusLib.
Возвращает текущую локаль. Например, en или ru.
Рекомендуется использовать методы в классе плагина.Методы для логирования по уровню и ID. На выход в logcat идёт лог формата: [level] [__id__] {message}
str
required
Текст лога
str
Уровень логов. DEBUG | INFO | WARN | ERROR Одноименные методы автоматически выставляют данный параметр.
str
required
ID плагина.
Метод для получения логов по ID, уровню и времени.
Метод для легкого создания ArrayList. Можно привести список в качестве первого и единственного аргумента, тогда он преобразует данный список в ArrayList.
Пример использования
Метод для редактирования сообщения.
org.telegram.messenger.MessageObject
required
Объект изменяемого сообщения.
str
required
Новый текст сообщения.
bool
default:"True"
Разбирать ли текст на HTML-разметку или Markdown-разметку.
str
default:"HTML"
Режим парсинга. Может быть "HTML" или "MARKDOWN".
list[dict] | CactusUtils.Inline.Markup | ...
default:"None"
Дополнительные параметры, которые передаются в editMessage
Добавлять ли предпросмотр ссылке (наверное).Используется в реквесте TLRPC.TL_messages_editMessage() в качестве параметра no_webpage:
org.telegram.ui.ActionBar.BaseFragment
default:"None"
Фрагмент. Рекомендуется указывать fragment=client_utils.get_last_fragment().
int
default:"0"
Schedule datetime timestamp.
Метод для редактирования Inline-клавиатуры сообщения.
org.telegram.ui.Cells.ChatMessageCell
required
UI-Объект сообщения, который нужно отредактировать.
list[dict] | CactusUtils.Inline.Markup | ...
default:"None"
Объект с Inline клавиатурой (None для удаления клавиатуры у сообщения).
Важный частоиспользуемый метод для отправки сообщений. Текст может быть разобран на HTML-разметку или Markdown-разметку. К сообщению могут быть добавлены Inline кнопки, а также можно отследить отправку сообщения.
int
required
ID чата, в который нужно отправить сообщение.
str
required
Текст отправляемого сообщения.
bool
default:"True"
Разбирать ли текст на HTML-разметку или Markdown-разметку.
str
default:"HTML"
Режим парсинга. Может быть "HTML" или "MARKDOWN".
list[dict] | CactusUtils.Inline.Markup | ...
default:"None"
Callable[[CactusUtils.Inline.CallbackParams], None]
default:"None"
Функция, которая будет вызвана после отправки сообщения. Принимает один аргумент — объект CactusUtils.Inline.CallbackParams (button=None).
Дополнительные параметры, которые передаются в send_message
org.telegram.tgnet.TLRPC.MessageMedia
org.telegram.tgnet.TLRPC.TL_photo
org.telegram.messenger.VideoEditedInfo
org.telegram.tgnet.TLRPC.User
org.telegram.tgnet.TLRPC.TL_document
org.telegram.tgnet.TLRPC.TL_game
org.telegram.tgnet.TLRPC.TL_messageMediaPoll
Torg.telegram.tgnet.LRPC.TL_messageMediaToDo
TLRPC.TL_messageMediaInvoice
TLRPC.TL_messageMediaWebPage
String
org.telegram.messenger.MessageObject
org.telegram.messenger.MessageObject
TLRPC.WebPage
org.telegram.messenger.MessageObject
bool
default:"True"
int
default:"0"
int
default:"0"
java.lang.Object
org.telegram.messenger.MessageObject.SendAnimationData
bool
default:"False"
bool
default:"False"
org.telegram.tgnet.tl.TL_stories.StoryItem
org.telegram.tgnet.tl.TL_stories.StoryItem
ChatActivity.ReplyQuote
String
int
long
default:"not set"
bool
default:"False"
bool
default:"?"
MessageSuggestionParams
Отправляет документ (файл) с возможностью добавить форматированную подпись.
int
required
ID чата.
str
required
Путь к файлу
str
default:"None"
Текст-описание к файлу.
bool
default:"True"
Разбирать ли текст на HTML-разметку или Markdown-разметку.
str
default:"HTML"
Режим парсинга. Может быть "HTML" или "MARKDOWN".
Дополнительные параметры, которые передаются в send_message
Параметры, которые передаются в метод SendMessagesHelper.prepareSendingDocumentInternal
str
default:"text/plain"
MIME type of the file
MessageObject
default:"None"
Message to reply to (maybe params.replyToMsg)
MessageObject
default:"None"
top message to reply to (maybe params.replyToTopMsg)
TL_stories.StoryItem
default:"None"
Режим парсинга. Может быть "HTML" или "MARKDOWN".
ChatActivity.ReplyQuote
default:"None"
Quote
bool
default:"True"
Send message with notification
org.telegram.messenger.MessageObject
default:"None"
Message to edit/add file
int
default:"0"
Schedule datetime
str
default:"None"
Quick reply shortcut
int
default:"0"
Quick reply shortcut ID
int
default:"0"
Message effect ID
bool
default:"False"
Invert media
int
default:"0"
Pay stars
org.telegram.messenger.AccountInstance
default:"client_utils.get_account_instance()"
Current Account instance
ArrayList<TLRPC.MessageEntity>
default:"False"
Message caption entities (Если parse_message=True, данный параметр будет сгенерирован автоматически)
long[]
default:"jarray(jlong)([0])"
Group ID
bool
default:"True"
Is final document in group
Integer[]
default:"jarray(Integer)([0])"
Doc type ID
int
default:"0"
MonoForum peer ID
org.telegram.messenger.MessageSuggestionParams
default:"None"
Suggestion message params
Пример:
logs.plugin
Отправляет документы (файлы) с возможностью добавить форматированную подпись к первому из них.
int
required
ID чата.
list[str]
required
Пути к файлам.
str
default:"None"
Текст-описание к файлу.
bool
default:"True"
Разбирать ли текст на HTML-разметку или Markdown-разметку.
str
default:"HTML"
Режим парсинга. Может быть "HTML" или "MARKDOWN".
Дополнительные параметры, которые передаются в send_message
Параметры, которые передаются в метод SendMessagesHelper.prepareSendingDocumentInternal
str
default:"text/plain"
MIME type of the file
MessageObject
default:"None"
Message to reply to (maybe params.replyToMsg)
MessageObject
default:"None"
top message to reply to (maybe params.replyToTopMsg)
TL_stories.StoryItem
default:"None"
Режим парсинга. Может быть "HTML" или "MARKDOWN".
ChatActivity.ReplyQuote
default:"None"
Quote
bool
default:"True"
Send message with notification
org.telegram.messenger.MessageObject
default:"None"
Message to edit/add file
int
default:"0"
Schedule datetime
str
default:"None"
Quick reply shortcut
int
default:"0"
Quick reply shortcut ID
int
default:"0"
Message effect ID
bool
default:"False"
Invert media
int
default:"0"
Pay stars
org.telegram.messenger.AccountInstance
default:"client_utils.get_account_instance()"
Current Account instance
ArrayList<TLRPC.MessageEntity>
default:"False"
Message caption entities (Если parse_message=True, данный параметр будет сгенерирован автоматически)
long[]
default:"jarray(jlong)([0])"
Group ID
bool
default:"True"
Is final document in group
Integer[]
default:"jarray(Integer)([0])"
Doc type ID
int
default:"0"
MonoForum peer ID
org.telegram.messenger.MessageSuggestionParams
default:"None"
Suggestion message params
Пример:
logs.plugin

Классы

Класс для управления данными в JSON-файле, наследующий от dict. Он автоматически загружает данные из указанного файла при инициализации и сохраняет изменения при вызове методов, таких как set, pop или update_from.
str
required
Путь к JSON-файлу.
Загружает данные из JSON-файла, указанного при инициализации. Если файл не существует, возвращает пустой словарь.
Сохраняет текущее состояние словаря в JSON-файл.
Устанавливает значение для заданного ключа, а затем сохраняет изменения в JSON-файл.
str
required
Ключ для установки.
Any
required
Значение, которое будет связано с ключом.
Извлекает значение, связанное с заданным ключом. Работает идентично стандартному методу dict.get().
str
required
Ключ для извлечения.
Any
default:"None"
Значение, которое будет возвращено, если ключ не найден.
Удаляет указанный ключ и связанное с ним значение из словаря, а затем сохраняет изменения в JSON-файл.
str
required
Ключ для удаления.
Очищает все данные из словаря и JSON-файла.
Обновляет словарь парами ключ-значение из kwargs, а затем сохраняет изменения в JSON-файл.
Класс, который возвращается в callback функцию команде.
str
Имя команды или псевдоним, который был использован.
list[str]
Список разделенных аргументов после команды.Разделение в основном через пробел, но если нужно передать одним аргументом текст с пробелами, можно использовать ковычки: .test arg1 arg2 "arg3 with many words" -> args = ["arg1", "arg2", "arg3 with many words"] .test arg1 arg2 param="value with many words" -> args = ["arg1", "arg2", "param=value with many words"]
str
Все, что идет после команды, в виде одной строки.
str
Полный текст исходного сообщения.
org.telegram.messenger.SendMessagesHelper$SendMessageParams
Объект с параметрами исходного сообщения (peer, replyToMsg и т.д.).
int
Текущий аккаунт
func
Функция, возвращающая текст исходного сообщения с HTML-разметкой.
func
Функция, возвращающая текст исходного сообщения с Markdown-разметкой.
Отправляет ответное сообщение по заданным параметрам. replyToMsg и replyToTopMsg подставляются автоматически.
str
required
Текст нового сообщения
Дополнительные параметры, которые передаются в CactusUtils.send_message.
Функция, возвращающая текст исходного сообщения с HTML-разметкой.Возвращает CactusUtils.HTML.unparse(self.text, list(self.params.entities.toArray()))
Функция, возвращающая текст исходного сообщения с Markdown-разметкой.Возвращает CactusUtils.Markdown.unparse(self.text, list(self.params.entities.toArray()))
Класс, который возвращается в callback функцию MessageUri ссылки.
MessageObject
Объект сообщения, к которому привязана клавиатура.
ChatMessageCell
UI-элемент сообщения.
str
Метод из ссылки, который сработал.
str
Ссылка, на которую было произведено нажатие
bool
Длительное нажатие на кнопку.
Изменяет сообщение по заданным параметрам.
str
required
Текст нового сообщения
Дополнительные параметры, которые передаются в CactusUtils.edit_message.
Изменяет Inline-клавиатуру текущему сообщению, автоматически подставляя в CactusUtils.edit_message_markup UI-объект сообщения.
Удаляет сообщение.
Класс Telegram предоставляет статические методы для взаимодействия с Telegram API, включая отправку запросов TLRPC, поиск сообщений и получение информации о пользователях, чатах, каналах и стикерпаках.
Внутренний класс, используемый для хранения результатов асинхронных запросов TLRPC.
int
Идентификатор запроса. Уникальный номер, присвоенный отправленному запросу.
TLObject
Объект ответа от Telegram API. Содержит данные, полученные в случае успешного выполнения запроса.
TLRPC.TL_error
Объект ошибки TLRPC. Содержит информацию об ошибке, если запрос завершился неудачей.
Исключение, вызываемое при получении ошибки TLRPC от Telegram API.
int
required
Идентификатор запроса. Уникальный номер запроса, который вызвал данную ошибку.
TLRPC.TL_error
required
Объект ошибки TLRPC. Полный объект ошибки, возвращенный Telegram API.
int
Код ошибки. Числовой код ошибки TLRPC.
str
Текст ошибки. Подробное текстовое описание ошибки TLRPC.
Создает объект запроса TLRPC, устанавливая предоставленные аргументы как атрибуты класса запроса. Это удобный способ инициализировать объекты запросов.
Any
required
Класс запроса TLRPC. Например, TLRPC.TL_messages_search для поиска сообщений.
Any
Аргументы запроса. Именованные аргументы, которые будут установлены как атрибуты создаваемого объекта запроса.
Отправляет запрос TLRPC в Telegram API. Позволяет выбрать синхронное или асинхронное выполнение, а также настроить обработку ошибок и тайм-аутов.
Any
required
Объект запроса TLRPC. Сам запрос, который вы хотите отправить (например, TLRPC.TL_messages_getMessages).
Optional[callable]
default:"None"
Функция обратного вызова. Если wait_response равно False, эта функция будет вызвана с результатом и ошибкой после получения ответа.
bool
default:"True"
Ожидать ли ответ. Если True, метод будет блокироваться до получения ответа и возвращать объект Result. Если False, метод вернет идентификатор запроса немедленно.
int
default:"10"
Тайм-аут. Максимальное время в секундах, которое метод будет ждать ответа, если wait_response равно True.
bool
default:"True"
Вызывать ли исключения. Если True и запрос завершился ошибкой, будет вызвано исключение TLRPCException. Если False, ошибка будет возвращена внутри объекта Result.
Перечисление, представляющее различные фильтры для поиска сообщений. Используется для уточнения типа сообщений, которые вы ищете.
str
GIF. Фильтр для поиска GIF-изображений.
str
MUSIC. Фильтр для поиска музыкальных файлов.
str
CHAT_PHOTOS. Фильтр для поиска фотографий, отправленных в чат.
str
PHOTOS. Фильтр для поиска любых фотографий.
str
URL. Фильтр для поиска сообщений, содержащих URL-адреса.
str
DOCUMENT. Фильтр для поиска документов.
str
PHOTO_VIDEO. Фильтр для поиска фотографий и видео.
str
PHOTO_VIDEO_DOCUMENT. Фильтр для поиска фотографий, видео и документов.
str
GEO. Фильтр для поиска сообщений с геолокациями.
str
PINNED. Фильтр для поиска закрепленных сообщений.
str
MY_MENTIONS. Фильтр для поиска сообщений, в которых упомянут текущий пользователь.
str
ROUND_VOICE. Фильтр для поиска голосовых круглых сообщений.
str
CONTACTS. Фильтр для поиска сообщений с контактами.
str
VOICE. Фильтр для поиска голосовых сообщений.
str
VIDEO. Фильтр для поиска видеосообщений.
str
PHONE_CALLS. Фильтр для поиска информации о телефонных звонках.
str
ROUND_VIDEO. Фильтр для поиска видео круглых сообщений.
str
EMPTY. Пустой фильтр, не применяет специфических ограничений по типу.
Преобразует элемент перечисления SearchFilter в соответствующий объект TLRPC-фильтра сообщений, который можно использовать в запросах к Telegram API.
Осуществляет поиск сообщений в указанном диалоге, позволяя фильтровать по запросу, отправителю, смещению и типу содержимого.
int
required
Идентификатор диалога. ID чата, пользователя или канала, где будет производиться поиск.
Optional[str]
default:"None"
Текст запроса. Строка для поиска в содержимом сообщений.
Optional[int]
default:"None"
Идентификатор отправителя. ID пользователя, от которого должны быть получены сообщения.
int
default:"0"
ID смещения. Сообщения будут возвращены, начиная с этого ID (или после него).
int
default:"20"
Лимит. Максимальное количество сообщений, которое будет возвращено.
Optional[int]
default:"None"
ID сообщения-ответа. Если указано, поиск будет ограничен сообщениями, которые являются ответами на это конкретное сообщение.
Optional[int]
default:"None"
ID верхнего сообщения. Используется в контексте тематических групп (форумов) для указания ID главного сообщения темы.
SearchFilter
default:"SearchFilter.EMPTY"
Фильтр поиска. Тип содержимого, по которому нужно фильтровать сообщения (например, SearchFilter.PHOTOS).
Any
Дополнительные параметры. Любые другие параметры, которые будут переданы базовому методу send, такие как wait_response или timeout.
Получает объект пользователя по его идентификатору.
int
required
Идентификатор пользователя. Уникальный ID пользователя, информацию о котором вы хотите получить.
Получает объект InputUser по идентификатору пользователя. Этот объект используется в других запросах к Telegram API, которым требуется ссылка на пользователя.
int
required
Идентификатор пользователя. Уникальный ID пользователя.
Получает объект Peer по идентификатору пира (пользователя, чата или канала). Peer представляет собой общую сущность в Telegram.
int
required
Идентификатор пира. ID пользователя, чата или канала.
Получает объект InputPeer по идентификатору пира (пользователя, чата или канала). InputPeer — это объект, который API использует для идентификации целевого диалога.
int
required
Идентификатор пира. ID пользователя, чата или канала.
Получает информацию о наборе стикеров по его короткому имени (например, t.me/addstickers/example).
str
required
Короткое имя набора стикеров. Имя, используемое в ссылках для добавления стикеров.
Any
Дополнительные параметры. Любые другие параметры, которые будут переданы базовому методу send.
Получает информацию о групповом чате по его идентификатору.
int
required
Идентификатор чата. ID группового чата, информацию о котором вы хотите получить.
Any
Дополнительные параметры. Любые другие параметры, которые будут переданы базовому методу send.
Получает информацию о канале по его идентификатору.
int
required
Идентификатор канала. ID канала, информацию о котором вы хотите получить.
Any
Дополнительные параметры. Любые другие параметры, которые будут переданы базовому методу send.
Получает фотографии профиля пользователя.
int
required
Идентификатор пользователя. ID пользователя, чьи фотографии профиля вы хотите получить.
int
default:"1"
Лимит. Максимальное количество фотографий профиля для получения. По умолчанию 1.
Any
Дополнительные параметры. Любые другие параметры, которые будут переданы базовому методу send.
Получает конкретные сообщения из канала по их идентификаторам.
ВНИМАНИЕ: Этот метод может не возвращать ожидаемый результат в полной мере. Если у вас есть информация или предложения по исправлению, пожалуйста, свяжитесь с @chillden4ik в Telegram.
Union[int, str, Any]
required
Канал. Может быть передан как:
  • целое число: ID канала.
  • строка: короткое имя канала (username), которое будет автоматически разрешено.
  • любой другой объект: объект канала, который может быть преобразован в InputPeer или TL_inputChannel.
Union[List[int], int]
required
Идентификаторы сообщений. Может быть одним целым числом (ID одного сообщения) или списком целых чисел (ID нескольких сообщений).
Any
Дополнительные параметры. Любые другие параметры, которые будут переданы базовому методу send.
Удаляет одно или несколько сообщений в указанном чате.
Union[List[int], int]
required
Идентификаторы сообщений. ID одного сообщения или список ID сообщений для удаления.
int
required
Идентификатор чата. ID чата, из которого будут удалены сообщения.
int
default:"0"
Идентификатор топика. Если чат является форумом, это ID топика, из которого удаляются сообщения. По умолчанию 0 для обычных чатов.
bool
default:"True"
Удалить для всех. Если True, сообщения будут удалены для всех участников чата. Если False, сообщения будут удалены только для текущего пользователя.
Разрешает короткое имя канала (username, например, @telegram) в полный объект канала. Может работать как синхронно (по умолчанию), так и асинхронно через обратный вызов.
str
required
Короткое имя канала. Username канала, который вы хотите разрешить (без символа @).
Optional[Callable[[Any], None]]
default:"None"
Функция обратного вызова. Если предоставлена, метод будет работать асинхронно, и эта функция будет вызвана с разрешенным объектом канала.
Вспомогательный класс для управления файлами и директориями, предоставляющий методы для работы с базовыми, кеш- и временными директориями, а также для чтения и записи содержимого файлов. Все методы в этом классе являются статическими.
Возвращает базовую директорию приложения. Если предоставлены аргументы path, то будут созданы поддиректории внутри базовой директории, если они не существуют, и будет возвращен объект File для самого глубокого указанного пути.
str
Необязательные компоненты пути для добавления к базовой директории.
Возвращает директорию внешнего кеша приложения. Если предоставлены аргументы path, то будут созданы поддиректории внутри директории кеша, если они не существуют, и будет возвращен объект File для самого глубокого указанного пути.
str
Необязательные компоненты пути для добавления к директории кеша.
Возвращает временную директорию специально для cactuslib_temp_files внутри директории кеша. Создает эту директорию, если она еще не существует.
Читает и возвращает содержимое файла.
str
required
Путь к файлу.
str
default:"rb"
Режим открытия файла (например, &quot;rb&quot; для чтения бинарных данных, &quot;r&quot; для чтения текстовых данных).
Читает и возвращает содержимое файла, расположенного во временной директории. При желании файл может быть запланирован на удаление через указанное количество секунд.
str
required
Имя файла во временной директории.
str
default:"rb"
Режим открытия файла (например, &quot;rb&quot; для чтения бинарных данных, &quot;r&quot; для чтения текстовых данных).
int
default:"0"
Количество секунд, по истечении которых файл должен быть удален. Если 0, файл не удаляется автоматически.
Записывает содержимое в указанный файл.
str
required
Путь к файлу.
Any
required
Содержимое для записи в файл.
str
default:"wb"
Режим открытия файла (например, &quot;wb&quot; для записи бинарных данных, &quot;w&quot; для записи текстовых данных).
Записывает содержимое в файл во временной директории. При желании файл может быть запланирован на удаление через указанное количество секунд.
str
required
Имя файла для создания во временной директории.
Any
required
Содержимое для записи в файл.
str
default:"wb"
Режим открытия файла (например, &quot;wb&quot; для записи бинарных данных, &quot;w&quot; для записи текстовых данных).
int
default:"0"
Количество секунд, по истечении которых файл должен быть удален. Если 0, файл не удаляется автоматически.
Удаляет файл после указанной задержки. Если seconds равно 0, файл удаляется немедленно.
str
required
Путь к файлу для удаления.
int
default:"0"
Количество секунд ожидания перед удалением файла. Если 0, удаление происходит немедленно.
Класс для создания URI-ссылки для хендлера с callback’ом.
str
required
ID плагина.
str
required
Команда.
dict[str, str]
Дополнительные аргументы, передающиеся в функцию callback’а.
Пример использования
Создает экземпляр Uri, автоматически подставляя plugin_id=plugin.id и возвращая сразу строку с ссылкой.
Пример использования
Возвращает сгенерированную ссылку формата tg://cactus/{plugin_id}/{command}?{urlencode(kwargs)}
Декоратор для создания callback функции на определенный метод.
str
required
Метод
Пример использования
Класс для создания URI-ссылки для хендлера с callback’ом, которая будет обрабатываться только в сообщениях. Всё то же самое, что и в Uri, но есть изменения:
  • /cactus/ заменяется на /cactusX/.
  • В callback функцию возвращается экземпляр CactusUtils.UriCallback с необходимыми данными первым аргументом.
Пример использования
Декоратор для создания callback функции на определенный метод.
str
required
Метод
bool
default:"False"
Будет ли вызываться ваша функция, если было произведено длительное нажатие на ссылку (проверять можно через параметр long_press в UriCallback)На обычное нажатие не влияет.
Пример использования
Базовый класс для плагинов с разными фичами.
Обязательно нужно наследовать свой класс плагина от данного класса, иначе система плагинов может работать неправильно.
CactusUtils
Вы всегда можете обратиться к утилитам с помощью self.utils
str version X.X.X
Минимальная необходимая версия CactusLib для работы вашего плагина. Если текущая версия меньше минимальной требуемой, плагин выдаст ошибку при загрузке.
dict[str, dict[str, str]]
Метод, открывающий экран с настройками плагина.
Метод, позволяющий получить значение из словаря strings по ключу и текущему языку.
Методы для логирования по уровню. На выход в logcat идёт лог формата: [level] [__id__] {message} ID плагина подставляется автоматически.
str
required
Текст лога
Методы для отправки ответного сообщения по параметрам.
org.telegram.messenger.SendMessagesHelper$SendMessageParams
required
Объект с параметрами исходного сообщения.
str
required
Текст отправляемого сообщения.
bool
default:"True"
Разбирать ли текст на HTML-разметку или Markdown-разметку.
str
default:"HTML"
Режим парсинга. Может быть "HTML" или "MARKDOWN".
list[dict] | CactusUtils.Inline.Markup | ...
default:"None"
Дополнительные параметры, которые передаются в CactusUtils.send_message
Класс с методами для создания Inline-клавиатуры.
Создание данных для callback data параметра кнопки.
str
required
ID плагина (self.id в плагине)
str
Имя метода, который будет вызван при нажатии.
Дополнительные аргументы, которые будут переданы в функцию.
Пример кнопки с callback функцией
Создание объекта кнопки по параметрам.Обязательно должен быть указан один любой из аргументов после text.
str
required
Текст кнопки.
str
URL-адрес, который откроется при нажатии.
str
Строка с данными, которая будет отправлена обратно вашему плагину при нажатии. Это основной способ обработки нажатий.Получаем с помощью метода CallbackData
str
Строка, которая будет вставляться напрямую в поле ввода сообщения при нажатии на кнопку.
str
Текст, который будет скопирован в буфер обмена при нажатии на кнопку.
Возвращает словарь с данными кнопки для более удобной работы.
TLRPC.KeyboardButton
required
Кнопка
Класс для создания Inline-клавиатуры.
bool
default:"False"
Если True, то сообщение будет отправлено в чат с метаданными внутри текста сообщения. Это позволит увидеть всем пользователям с CactusLib данную клавиатуру.
callable
Функция, которая будет вызвана после отправки сообщения с клавиатурой и полной инициализации.
Если вы используете is_global=True, то данный параметр будет проигнорирован.
Опциональные аргументы, которые будут переданы в функцию on_sent.
Добавляет ряд кнопок к клавиатуре.В качестве аргумента можно приводить список, тогда все кнопки из него будут добавлены в ряд.Метод возвращает себя, то есть self для удобства.
dict | list[dict | TLRPC.KeyboardButton] | TLRPC.KeyboardButton
required
Кнопки :D
Создает ссылку с метаданными о текущей клавиатуре внутри. Данную ссылку в сообщении будет видеть CactusLib и создавать клавиатуру из данных в ссылке.Возвращает строку типа tg://cactus/mdata/{compressed_data}
Получение собранной клавиатуры в виде TLRPC объекта для дальнейшего использования.
Класс, который возвращается в callback функцию кнопки.
MessageObject
Объект сообщения, к которому привязана клавиатура.
ChatMessageCell
UI-элемент сообщения.
Optional[TLRPC.KeyboardButton]
default:"None"
Кнопка, на которую было произведено нажатие.
bool
Длительное нажатие на кнопку.
Изменяет сообщение по заданным параметрам.
str
required
Текст нового сообщения
Дополнительные параметры, которые передаются в CactusUtils.edit_message.
Изменяет Inline-клавиатуру текущему сообщению, автоматически подставляя в CactusUtils.edit_message_markup UI-объект сообщения.
Удаляет сообщение.
Создает из метода callback-функцию для кнопки с методом, совпадающим с переданным method параметром.
str
required
Метод
bool
default:"False"
Будет ли вызываться ваша функция, если было произведено длительное нажатие на кнопку (проверять можно через параметр is_long в CallbackParams)На обычное нажатие не влияет.
Пример использования
Все методы являются статичными и их можно вызывать без инициализации класса.
str
required
Текст для парсинга HTML разметки.
int
default:"1"
required
Тип Premium-эмодзи для распознания и отправки.0 (NOT_PREMIUM) - убрать все премиум-эмодзи и оставить только обычные, которые были внутри тега.1 (TELEGRAM_PREMIUM) - разрешить обычные премиум эмодзи.2 (CACTUS_PREMIUM) - заменить все теги типа <emoji id=123456789>❤️</emoji> на <a href='tg://cactus/emoji/123456789'>❤️</a>, которые будут преобразовываться CactusLib’ом и видны всем, у кого также установлен соответствующий плагин.
Возвращает словарь с двумя ключами:
  • message (str)
  • entities (list[CactusUtils.RawEntity])
str
required
Текст для распаковывания всех энтити
list[org.telegram.tgnet.TLRPC.MessageEntity]
required
Список со всеми entity текста.
Возвращает изначальную строку со всеми тегами.
Все методы являются статичными и их можно вызывать без инициализации класса.
str
required
Текст для парсинга Markdown разметки.
bool
default:"False"
int
default:"1"
required
Тип Premium-эмодзи для распознания и отправки.0 (NOT_PREMIUM) - убрать все премиум-эмодзи и оставить только обычные, которые были внутри тега.1 (TELEGRAM_PREMIUM) - разрешить обычные премиум эмодзи.2 (CACTUS_PREMIUM) - заменить все теги типа [❤️](123456789) на [❤️](tg://cactus/emoji/123456789), которые будут преобразовываться CactusLib’ом и видны всем, у кого также установлен соответствующий плагин.
Возвращает словарь с двумя ключами:
  • message (str)
  • entities (list[CactusUtils.RawEntity])
str
required
Текст для распарсивания всех энтити
list[org.telegram.tgnet.TLRPC.MessageEntity]
required
Список со всеми entity текста.
Возвращает изначальную строку со всеми delim’ами.
TLEntityType
required
Тип entity
int
required
Позиция начала текста
int
required
Длина текста внутри тега
str
Язык программирования.Используется в TLRPC.TL_messageEntityPre при type == TLEntityType.PRE.
str
Ссылка.Используется в TLRPC.TL_messageEntityTextUrl при type == TLEntityType.TEXT_LINK.
int
ID Premium-эмодзи.Используется в TLRPC.TL_messageEntityCustomEmoji при type == TLEntityType.CUSTOM_EMOJI
bool
Добавить ли возможность скрывать цитату.Используется в TLRPC.TL_messageEntityBlockquote при type == TLEntityType.BLOCKQUOTE
Возвращает созданный объект типа TLRPC.MessageEntity.
TLRPC.TL_messageEntityCode
TLRPC.TL_messageEntityPre
TLRPC.TL_messageEntityStrike
Tentity, TLRPC.TL_messageEntityBold
TLRPC.TL_messageEntityItalic
TLRPC.TL_messageEntityUnderline
TLRPC.TL_messageEntitySpoiler
TLRPC.TL_messageEntityCustomEmoji
TLRPC.TL_messageEntityBlockquote
Возвращает тип на основе переданного entity.