CactusLib предоставляет прямой доступ к низкоуровневому API Telegram черезDocumentation Index
Fetch the complete documentation index at: https://new-cactus.den4iksop.org/llms.txt
Use this file to discover all available pages before exploring further.
CactusUtils.Telegram.
`CactusUtils.Telegram.send_request
Атрибуты
Объект запроса, например,
TLRPC.TL_users_getUsers().Если
True, метод будет ждать ответа от сервера и вернет результат. Если False, вернет req_id немедленно.Максимальное время ожидания ответа в секундах.
Если
True, в случае ошибки от API будет выброшено исключение TLRPCException. Если False, метод вернет объект Result с заполненным полем .error.Функция, которая будет вызвана с результатом, если
wait_response=False.Пример: получение фотографий профиля пользователя
avatars.plugin
Для продвинутых сценариев CactusLib предоставляет класс-помощник
CactusUtils.Telegram. Он значительно упрощает прямое взаимодействие с методами Telegram API (TLRPC), предлагая синхронный способ выполнения запросов, более привычный для разработчиков и готовые методы-обертки для популярных запросов.
Вместо использования callback-функций, теперь вы можете отправлять запросы и получать результат напрямую, обрабатывая ошибки через стандартный механизм try...except или самостоятельно без этого.
Класс доступен через self.utils.Telegram.
Синхронный запрос (стандартное поведение)
Это основной способ использования. Выполнение кода приостанавливается до получения ответа или истечения таймаута.Запрос “Fire-and-Forget” (без ожидания ответа)
Используйтеwait_response=False, если вам не важен результат запроса, и вы не хотите блокировать выполнение кода.
Использование callback (как обычно)
Если вы предпочитаете использовать callback-функции, вы можете передать их в методsend как аргумент callback.
Вспомогательные методы
tlrpc_object(request_class, **kwargs)
Ключевой метод-помощник для создания и заполнения любого объекта запроса TLRPC.
Вместо того чтобы писать:
Готовые методы-обертки
Эти методы упрощают вызов популярных эндпоинтов API. Они используютsend “под капотом”, поэтому вы можете передавать в них его аргументы (timeout, raise_errors и т.д.).
search_messages(...)
Выполняет поиск сообщений в диалоге по множеству критериев.
dialog_id(int): ID диалога для поиска.query(str): Текстовый запрос.from_id(int): ID отправителя.filter(SearchFilter): Фильтр типа сообщений (см. ниже).limit(int): Количество сообщений для возврата.offset(int): Смещение для начала поиска.
org.telegram.messenger.MessageObject.
SearchFilter - это Enum для удобного выбора фильтра.
Примеры значений: SearchFilter.PHOTO_VIDEO, SearchFilter.URL, SearchFilter.MUSIC, SearchFilter.EMPTY и другие.
get_chat(...) и get_channel(...)
Получают полную информацию о чате или канале.
get_user_photos(...)
Получает фотографии профиля пользователя.
get_sticker_set_by_short_name(...)
Получает информацию о наборе стикеров по его короткому имени.
Короткое имя - это часть URL стикерпака, например, CactusPlugins в t.me/addstickers/CactusPlugins.
delete_messages(messages, chat_id, ...)
Удаляет сообщения в чате.
messages(List[int]): Список ID сообщений для удаления.chat_id(int): ID чата, в котором нужно удалить сообщения.
Доступ к кэшу
Эти методы получают данные из локального кэша приложения и работают мгновенно.get_user(user_id): Возвращает объектTLRPC.User.input_user(user_id): ВозвращаетTLRPC.InputUserдля использования в запросах.peer(peer_id): ВозвращаетTLRPC.Peer.input_peer(peer_id): ВозвращаетTLRPC.InputPeerдля использования в запросах.