Перейти к содержанию

Bot Module

Bot(token=None, parse_mode=None, notify=None, disable_link_preview=None, auto_requests=True, default_connection=None, after_input_media_delay=None, auto_check_subscriptions=True, marker_updates=None)

Bases: BaseConnection

Основной класс для работы с API бота.

Предоставляет методы для взаимодействия с чатами, сообщениями, пользователями и другими функциями бота.

Инициализирует экземпляр бота.

Parameters:

Name Type Description Default
token str

Токен доступа к API бота. При None идет получение из под окружения MAX_BOT_TOKEN.

None
parse_mode Optional[ParseMode]

Форматирование по умолчанию.

None
notify Optional[bool]

Отключение уведомлений при отправке сообщений.

None
disable_link_preview Optional[bool]

Если false, сервер не будет генерировать превью для ссылок в тексте сообщений.

None
auto_requests bool

Автоматическое заполнение chat/from_user через API (по умолчанию True).

True
default_connection Optional[DefaultConnectionProperties]

Настройки соединения.

None
after_input_media_delay Optional[float]

Задержка после загрузки файла.

None
auto_check_subscriptions bool

Проверка подписок для метода start_polling.

True
marker_updates Optional[int]

Маркер для получения обновлений.

None
Source code in maxapi/bot.py
def __init__(
    self,
    token: Optional[str] = None,
    parse_mode: Optional[ParseMode] = None,
    notify: Optional[bool] = None,
    disable_link_preview: Optional[bool] = None,
    auto_requests: bool = True,
    default_connection: Optional[DefaultConnectionProperties] = None,
    after_input_media_delay: Optional[float] = None,
    auto_check_subscriptions: bool = True,
    marker_updates: Optional[int] = None,
):
    """
    Инициализирует экземпляр бота.

    Args:
        token (str): Токен доступа к API бота. При None идет получение из под окружения MAX_BOT_TOKEN.
        parse_mode (Optional[ParseMode]): Форматирование по умолчанию.
        notify (Optional[bool]): Отключение уведомлений при отправке сообщений.
        disable_link_preview (Optional[bool]): Если false, сервер не будет генерировать превью для ссылок в тексте сообщений.
        auto_requests (bool): Автоматическое заполнение chat/from_user через API (по умолчанию True).
        default_connection (Optional[DefaultConnectionProperties]): Настройки соединения.
        after_input_media_delay (Optional[float]): Задержка после загрузки файла.
        auto_check_subscriptions (bool): Проверка подписок для метода start_polling.
        marker_updates (Optional[int]): Маркер для получения обновлений.
    """

    super().__init__()
    self.bot = self
    self.default_connection = (
        default_connection or DefaultConnectionProperties()
    )
    self.after_input_media_delay = after_input_media_delay or 2.0
    self.auto_check_subscriptions = auto_check_subscriptions
    self.commands: List[CommandsInfo] = []

    self.__token = token or os.environ.get("MAX_BOT_TOKEN")
    if self.__token is None:
        raise InvalidToken(
            'Токен не может быть None. Укажите токен в Bot(token="...") или в переменную окружения MAX_BOT_TOKEN'
        )

    self.params: Dict[str, Any] = {}
    self.headers: Dict[str, Any] = {"Authorization": self.__token}
    self.marker_updates = marker_updates

    self.parse_mode = parse_mode
    self.notify = notify
    self.disable_link_preview = disable_link_preview
    self.auto_requests = auto_requests

    self.dispatcher: Optional[Dispatcher] = None
    self._me: User | None = None

handlers_commands property

Возвращает список команд из зарегистрированных обработчиков текущего инстанса.

Returns:

Type Description
List[CommandsInfo]

List[CommandsInfo]: Список команд

me property

Возвращает объект пользователя (бота).

Returns:

Type Description
Optional[User]

User | None: Объект пользователя или None.

set_marker_updates(marker_updates)

Устанавливает маркер для получения обновлений.

Parameters:

Name Type Description Default
marker_updates int

Маркер для получения обновлений.

required
Source code in maxapi/bot.py
def set_marker_updates(self, marker_updates: int) -> None:
    """
    Устанавливает маркер для получения обновлений.

    Args:
        marker_updates (int): Маркер для получения обновлений.
    """

    self.marker_updates = marker_updates

close_session() async

Закрывает текущую сессию aiohttp.

Returns:

Type Description
None

None

Source code in maxapi/bot.py
async def close_session(self) -> None:
    """
    Закрывает текущую сессию aiohttp.

    Returns:
        None
    """

    if self.session is not None:
        await self.session.close()

send_message(chat_id=None, user_id=None, text=None, attachments=None, link=None, notify=None, parse_mode=None, disable_link_preview=None, sleep_after_input_media=True) async

Отправляет сообщение в чат или пользователю.

https://dev.max.ru/docs-api/methods/POST/messages

Parameters:

Name Type Description Default
chat_id Optional[int]

ID чата для отправки (если не user_id).

None
user_id Optional[int]

ID пользователя (если не chat_id).

None
text Optional[str]

Текст сообщения.

None
attachments Optional[List[Attachment | InputMedia | InputMediaBuffer]]

Вложения.

None
link Optional[NewMessageLink]

Данные ссылки сообщения.

None
notify Optional[bool]

Флаг уведомления.

None
parse_mode Optional[ParseMode]

Режим форматирования текста.

None
disable_link_preview Optional[bool]

Флаг генерации превью.

None

Returns:

Type Description
Optional[SendedMessage]

Optional[SendedMessage]: Отправленное сообщение или ошибка.

Source code in maxapi/bot.py
async def send_message(
    self,
    chat_id: Optional[int] = None,
    user_id: Optional[int] = None,
    text: Optional[str] = None,
    attachments: Optional[
        List[Attachment | InputMedia | InputMediaBuffer | AttachmentUpload]
        | List[Attachments]
    ] = None,
    link: Optional[NewMessageLink] = None,
    notify: Optional[bool] = None,
    parse_mode: Optional[ParseMode] = None,
    disable_link_preview: Optional[bool] = None,
    sleep_after_input_media: Optional[bool] = True,
) -> Optional[SendedMessage]:
    """
    Отправляет сообщение в чат или пользователю.

    https://dev.max.ru/docs-api/methods/POST/messages

    Args:
        chat_id (Optional[int]): ID чата для отправки (если не user_id).
        user_id (Optional[int]): ID пользователя (если не chat_id).
        text (Optional[str]): Текст сообщения.
        attachments (Optional[List[Attachment | InputMedia | InputMediaBuffer]]): Вложения.
        link (Optional[NewMessageLink]): Данные ссылки сообщения.
        notify (Optional[bool]): Флаг уведомления.
        parse_mode (Optional[ParseMode]): Режим форматирования текста.
        disable_link_preview (Optional[bool]): Флаг генерации превью.

    Returns:
        Optional[SendedMessage]: Отправленное сообщение или ошибка.
    """

    return await SendMessage(
        bot=self,
        chat_id=chat_id,
        user_id=user_id,
        text=text,
        attachments=attachments,
        link=link,
        notify=self._resolve_notify(notify),
        parse_mode=self._resolve_parse_mode(parse_mode),
        disable_link_preview=self._resolve_disable_link_preview(
            disable_link_preview
        ),
        sleep_after_input_media=sleep_after_input_media,
    ).fetch()

send_action(chat_id=None, action=SenderAction.TYPING_ON) async

Отправляет действие в чат (например, "печатает").

https://dev.max.ru/docs-api/methods/POST/chats/-chatId-/actions

Parameters:

Name Type Description Default
chat_id Optional[int]

ID чата.

None
action SenderAction

Тип действия.

TYPING_ON

Returns:

Name Type Description
SendedAction SendedAction

Результат отправки действия.

Source code in maxapi/bot.py
async def send_action(
    self,
    chat_id: Optional[int] = None,
    action: SenderAction = SenderAction.TYPING_ON,
) -> SendedAction:
    """
    Отправляет действие в чат (например, "печатает").

    https://dev.max.ru/docs-api/methods/POST/chats/-chatId-/actions

    Args:
        chat_id (Optional[int]): ID чата.
        action (SenderAction): Тип действия.

    Returns:
        SendedAction: Результат отправки действия.
    """

    return await SendAction(
        bot=self, chat_id=chat_id, action=action
    ).fetch()

edit_message(message_id, text=None, attachments=None, link=None, notify=None, parse_mode=None, sleep_after_input_media=True) async

Редактирует существующее сообщение.

https://dev.max.ru/docs-api/methods/PUT/messages

Parameters:

Name Type Description Default
message_id str

ID сообщения.

required
text Optional[str]

Новый текст.

None
attachments Optional[List[Attachment | InputMedia | InputMediaBuffer]]

Новые вложения.

None
link Optional[NewMessageLink]

Новая ссылка.

None
notify Optional[bool]

Флаг уведомления.

None
parse_mode Optional[ParseMode]

Режим форматирования текста.

None

Returns:

Type Description
Optional[EditedMessage]

Optional[EditedMessage]: Отредактированное сообщение или ошибка.

Source code in maxapi/bot.py
async def edit_message(
    self,
    message_id: str,
    text: Optional[str] = None,
    attachments: Optional[
        List[Attachment | InputMedia | InputMediaBuffer | AttachmentUpload]
        | List[Attachments]
    ] = None,
    link: Optional[NewMessageLink] = None,
    notify: Optional[bool] = None,
    parse_mode: Optional[ParseMode] = None,
    sleep_after_input_media: Optional[bool] = True,
) -> Optional[EditedMessage]:
    """
    Редактирует существующее сообщение.

    https://dev.max.ru/docs-api/methods/PUT/messages

    Args:
        message_id (str): ID сообщения.
        text (Optional[str]): Новый текст.
        attachments (Optional[List[Attachment | InputMedia | InputMediaBuffer]]): Новые вложения.
        link (Optional[NewMessageLink]): Новая ссылка.
        notify (Optional[bool]): Флаг уведомления.
        parse_mode (Optional[ParseMode]): Режим форматирования текста.

    Returns:
        Optional[EditedMessage]: Отредактированное сообщение или ошибка.
    """

    return await EditMessage(
        bot=self,
        message_id=message_id,
        text=text,
        attachments=attachments,
        link=link,
        notify=self._resolve_notify(notify),
        parse_mode=self._resolve_parse_mode(parse_mode),
        sleep_after_input_media=sleep_after_input_media,
    ).fetch()

delete_message(message_id) async

Удаляет сообщение.

https://dev.max.ru/docs-api/methods/DELETE/messages

Parameters:

Name Type Description Default
message_id str

ID сообщения.

required

Returns:

Name Type Description
DeletedMessage DeletedMessage

Результат удаления.

Source code in maxapi/bot.py
async def delete_message(self, message_id: str) -> DeletedMessage:
    """
    Удаляет сообщение.

    https://dev.max.ru/docs-api/methods/DELETE/messages

    Args:
        message_id (str): ID сообщения.

    Returns:
        DeletedMessage: Результат удаления.
    """

    return await DeleteMessage(
        bot=self,
        message_id=message_id,
    ).fetch()

delete_chat(chat_id) async

Удаляет чат.

https://dev.max.ru/docs-api/methods/DELETE/chats/-chatId-

Parameters:

Name Type Description Default
chat_id int

ID чата.

required

Returns:

Name Type Description
DeletedChat DeletedChat

Результат удаления чата.

Source code in maxapi/bot.py
async def delete_chat(self, chat_id: int) -> DeletedChat:
    """
    Удаляет чат.

    https://dev.max.ru/docs-api/methods/DELETE/chats/-chatId-

    Args:
        chat_id (int): ID чата.

    Returns:
        DeletedChat: Результат удаления чата.
    """

    return await DeleteChat(
        bot=self,
        chat_id=chat_id,
    ).fetch()

get_messages(chat_id=None, message_ids=None, from_time=None, to_time=None, count=50) async

Получает сообщения из чата.

https://dev.max.ru/docs-api/methods/GET/messages

Parameters:

Name Type Description Default
chat_id Optional[int]

ID чата.

None
message_ids Optional[List[str]]

ID сообщений.

None
from_time Optional[datetime | int]

Начало периода.

None
to_time Optional[datetime | int]

Конец периода.

None
count int

Количество сообщений.

50

Returns:

Name Type Description
Messages Messages

Список сообщений.

Source code in maxapi/bot.py
async def get_messages(
    self,
    chat_id: Optional[int] = None,
    message_ids: Optional[List[str]] = None,
    from_time: Optional[Union[datetime, int]] = None,
    to_time: Optional[Union[datetime, int]] = None,
    count: int = 50,
) -> Messages:
    """
    Получает сообщения из чата.

    https://dev.max.ru/docs-api/methods/GET/messages

    Args:
        chat_id (Optional[int]): ID чата.
        message_ids (Optional[List[str]]): ID сообщений.
        from_time (Optional[datetime | int]): Начало периода.
        to_time (Optional[datetime | int]): Конец периода.
        count (int): Количество сообщений.

    Returns:
        Messages: Список сообщений.
    """

    return await GetMessages(
        bot=self,
        chat_id=chat_id,
        message_ids=message_ids,
        from_time=from_time,
        to_time=to_time,
        count=count,
    ).fetch()

get_message(message_id) async

Получает одно сообщение по ID.

https://dev.max.ru/docs-api/methods/GET/messages/-messageId-

Parameters:

Name Type Description Default
message_id str

ID сообщения.

required

Returns:

Name Type Description
Message Message

Объект сообщения.

Source code in maxapi/bot.py
async def get_message(self, message_id: str) -> Message:
    """
    Получает одно сообщение по ID.

    https://dev.max.ru/docs-api/methods/GET/messages/-messageId-

    Args:
        message_id (str): ID сообщения.

    Returns:
        Message: Объект сообщения.
    """

    return await GetMessage(bot=self, message_id=message_id).fetch()

get_me() async

Получает информацию о текущем боте.

https://dev.max.ru/docs-api/methods/GET/me

Returns:

Name Type Description
User User

Объект пользователя бота.

Source code in maxapi/bot.py
async def get_me(self) -> User:
    """
    Получает информацию о текущем боте.

    https://dev.max.ru/docs-api/methods/GET/me

    Returns:
        User: Объект пользователя бота.
    """

    return await GetMe(self).fetch()

get_pin_message(chat_id) async

Получает закрепленное сообщение в чате.

https://dev.max.ru/docs-api/methods/GET/chats/-chatId-/pin

Parameters:

Name Type Description Default
chat_id int

ID чата.

required

Returns:

Name Type Description
GettedPin GettedPin

Закрепленное сообщение.

Source code in maxapi/bot.py
async def get_pin_message(self, chat_id: int) -> GettedPin:
    """
    Получает закрепленное сообщение в чате.

    https://dev.max.ru/docs-api/methods/GET/chats/-chatId-/pin

    Args:
        chat_id (int): ID чата.

    Returns:
        GettedPin: Закрепленное сообщение.
    """

    return await GetPinnedMessage(bot=self, chat_id=chat_id).fetch()

change_info(first_name=None, last_name=None, description=None, commands=None, photo=None) async

Изменяет данные текущего бота (PATCH /me).

.. deprecated:: 0.9.8 Этот метод отсутствует в официальной swagger-спецификации API MAX. Использование не рекомендуется.

https://dev.max.ru/docs-api/methods/PATCH/me

Parameters:

Name Type Description Default
first_name Optional[str]

Новое имя бота (1–64 символа).

None
last_name str

Второе имя бота (1–64 символа).

None
description Optional[str]

Новое описание бота (1–16000 символов).

None
commands Optional[List[BotCommand]]

Список команд бота (до 32 элементов). Передайте пустой список, чтобы удалить все команды.

None
photo Optional[PhotoAttachmentRequestPayload]

Новое фото бота.

None

Returns:

Name Type Description
User User

Объект с обновлённой информацией о боте.

Source code in maxapi/bot.py
async def change_info(
    self,
    first_name: Optional[str] = None,
    last_name: Optional[str] = None,
    description: Optional[str] = None,
    commands: Optional[List[BotCommand]] = None,
    photo: Optional[PhotoAttachmentRequestPayload] = None,
) -> User:
    """
    Изменяет данные текущего бота (PATCH /me).

    .. deprecated:: 0.9.8
        Этот метод отсутствует в официальной swagger-спецификации API MAX.
        Использование не рекомендуется.

    https://dev.max.ru/docs-api/methods/PATCH/me

    Args:
        first_name (Optional[str]): Новое имя бота (1–64 символа).
        last_name (str, optional): Второе имя бота (1–64 символа).
        description (Optional[str]): Новое описание бота (1–16000 символов).
        commands (Optional[List[BotCommand]]): Список команд бота (до 32 элементов).
            Передайте пустой список, чтобы удалить все команды.
        photo (Optional[PhotoAttachmentRequestPayload]): Новое фото бота.

    Returns:
        User: Объект с обновлённой информацией о боте.
    """

    warnings.warn(
        "bot.change_info() устарел и отсутствует в официальной swagger-спецификации API MAX. "
        "Использование не рекомендуется.",
        DeprecationWarning,
        stacklevel=2,
    )

    return await ChangeInfo(
        bot=self,
        first_name=first_name,
        last_name=last_name,
        description=description,
        commands=commands,
        photo=photo,
    ).fetch()

get_chats(count=None, marker=None) async

Получает список чатов бота.

https://dev.max.ru/docs-api/methods/GET/chats

Parameters:

Name Type Description Default
count Optional[int]

Количество чатов (по умолчанию 50) (1-100).

None
marker Optional[int]

Маркер для пагинации.

None

Returns:

Name Type Description
Chats Chats

Список чатов.

Source code in maxapi/bot.py
async def get_chats(
    self, count: Optional[int] = None, marker: Optional[int] = None
) -> Chats:
    """
    Получает список чатов бота.

    https://dev.max.ru/docs-api/methods/GET/chats

    Args:
        count (Optional[int]): Количество чатов (по умолчанию 50) (1-100).
        marker (Optional[int]): Маркер для пагинации.

    Returns:
        Chats: Список чатов.
    """

    return await GetChats(bot=self, count=count, marker=marker).fetch()

Получает чат по ссылке.

https://dev.max.ru/docs-api/methods/GET/chats/-chatLink-

Parameters:

Name Type Description Default
link str

Ссылка на чат.

required

Returns:

Name Type Description
Chat Chat

Объект чата.

Source code in maxapi/bot.py
async def get_chat_by_link(self, link: str) -> Chat:
    """
    Получает чат по ссылке.

    https://dev.max.ru/docs-api/methods/GET/chats/-chatLink-

    Args:
        link (str): Ссылка на чат.

    Returns:
        Chat: Объект чата.
    """

    return await GetChatByLink(bot=self, link=link).fetch()

get_chat_by_id(id) async

Получает чат по ID.

https://dev.max.ru/docs-api/methods/GET/chats/-chatId-

Parameters:

Name Type Description Default
id int

ID чата.

required

Returns:

Name Type Description
Chat Chat

Объект чата.

Source code in maxapi/bot.py
async def get_chat_by_id(self, id: int) -> Chat:
    """
    Получает чат по ID.

    https://dev.max.ru/docs-api/methods/GET/chats/-chatId-

    Args:
        id (int): ID чата.

    Returns:
        Chat: Объект чата.
    """

    return await GetChatById(bot=self, id=id).fetch()

edit_chat(chat_id, icon=None, title=None, pin=None, notify=None) async

Редактирует информацию о чате.

https://dev.max.ru/docs-api/methods/PATCH/chats/-chatId-

Parameters:

Name Type Description Default
chat_id int

ID чата.

required
icon Optional[PhotoAttachmentRequestPayload]

Иконка.

None
title Optional[str]

Новый заголовок (1-200 символов).

None
pin Optional[str]

ID сообщения для закрепления.

None
notify Optional[bool]

Флаг уведомления.

None

Returns:

Name Type Description
Chat Chat

Обновленный объект чата.

Source code in maxapi/bot.py
async def edit_chat(
    self,
    chat_id: int,
    icon: Optional[PhotoAttachmentRequestPayload] = None,
    title: Optional[str] = None,
    pin: Optional[str] = None,
    notify: Optional[bool] = None,
) -> Chat:
    """
    Редактирует информацию о чате.

    https://dev.max.ru/docs-api/methods/PATCH/chats/-chatId-

    Args:
        chat_id (int): ID чата.
        icon (Optional[PhotoAttachmentRequestPayload]): Иконка.
        title (Optional[str]): Новый заголовок (1-200 символов).
        pin (Optional[str]): ID сообщения для закрепления.
        notify (Optional[bool]): Флаг уведомления.

    Returns:
        Chat: Обновленный объект чата.
    """

    return await EditChat(
        bot=self,
        chat_id=chat_id,
        icon=icon,
        title=title,
        pin=pin,
        notify=self._resolve_notify(notify),
    ).fetch()

get_video(video_token) async

Получает видео по токену.

https://dev.max.ru/docs-api/methods/GET/videos/-videoToken-

Parameters:

Name Type Description Default
video_token str

Токен видео.

required

Returns:

Name Type Description
Video Video

Объект видео.

Source code in maxapi/bot.py
async def get_video(self, video_token: str) -> Video:
    """
    Получает видео по токену.

    https://dev.max.ru/docs-api/methods/GET/videos/-videoToken-

    Args:
        video_token (str): Токен видео.

    Returns:
        Video: Объект видео.
    """

    return await GetVideo(bot=self, video_token=video_token).fetch()

send_callback(callback_id, message=None, notification=None) async

Отправляет callback ответ.

https://dev.max.ru/docs-api/methods/POST/answers

Parameters:

Name Type Description Default
callback_id str

ID callback.

required
message Optional[MessageForCallback]

Сообщение для отправки.

None
notification Optional[str]

Текст уведомления.

None

Returns:

Name Type Description
SendedCallback SendedCallback

Результат отправки callback.

Source code in maxapi/bot.py
async def send_callback(
    self,
    callback_id: str,
    message: Optional[MessageForCallback] = None,
    notification: Optional[str] = None,
) -> SendedCallback:
    """
    Отправляет callback ответ.

    https://dev.max.ru/docs-api/methods/POST/answers

    Args:
        callback_id (str): ID callback.
        message (Optional[MessageForCallback]): Сообщение для отправки.
        notification (Optional[str]): Текст уведомления.

    Returns:
        SendedCallback: Результат отправки callback.
    """

    return await SendCallback(
        bot=self,
        callback_id=callback_id,
        message=message,
        notification=notification,
    ).fetch()

pin_message(chat_id, message_id, notify=None) async

Закрепляет сообщение в чате.

https://dev.max.ru/docs-api/methods/PUT/chats/-chatId-/pin

Parameters:

Name Type Description Default
chat_id int

ID чата.

required
message_id str

ID сообщения.

required
notify Optional[bool]

Флаг уведомления.

None

Returns:

Name Type Description
PinnedMessage PinnedMessage

Закрепленное сообщение.

Source code in maxapi/bot.py
async def pin_message(
    self, chat_id: int, message_id: str, notify: Optional[bool] = None
) -> PinnedMessage:
    """
    Закрепляет сообщение в чате.

    https://dev.max.ru/docs-api/methods/PUT/chats/-chatId-/pin

    Args:
        chat_id (int): ID чата.
        message_id (str): ID сообщения.
        notify (Optional[bool]): Флаг уведомления.

    Returns:
        PinnedMessage: Закрепленное сообщение.
    """

    return await PinMessage(
        bot=self,
        chat_id=chat_id,
        message_id=message_id,
        notify=self._resolve_notify(notify),
    ).fetch()

delete_pin_message(chat_id) async

Удаляет закрепленное сообщение в чате.

https://dev.max.ru/docs-api/methods/DELETE/chats/-chatId-/pin

Parameters:

Name Type Description Default
chat_id int

ID чата.

required

Returns:

Name Type Description
DeletedPinMessage DeletedPinMessage

Результат удаления.

Source code in maxapi/bot.py
async def delete_pin_message(
    self,
    chat_id: int,
) -> DeletedPinMessage:
    """
    Удаляет закрепленное сообщение в чате.

    https://dev.max.ru/docs-api/methods/DELETE/chats/-chatId-/pin

    Args:
        chat_id (int): ID чата.

    Returns:
        DeletedPinMessage: Результат удаления.
    """

    return await DeletePinMessage(
        bot=self,
        chat_id=chat_id,
    ).fetch()

get_me_from_chat(chat_id) async

Получает информацию о боте в чате.

https://dev.max.ru/docs-api/methods/GET/chats/-chatId-/members/me

Parameters:

Name Type Description Default
chat_id int

ID чата.

required

Returns:

Name Type Description
ChatMember ChatMember

Информация о боте в чате.

Source code in maxapi/bot.py
async def get_me_from_chat(
    self,
    chat_id: int,
) -> ChatMember:
    """
    Получает информацию о боте в чате.

    https://dev.max.ru/docs-api/methods/GET/chats/-chatId-/members/me

    Args:
        chat_id (int): ID чата.

    Returns:
        ChatMember: Информация о боте в чате.
    """

    return await GetMeFromChat(
        bot=self,
        chat_id=chat_id,
    ).fetch()

delete_me_from_chat(chat_id) async

Удаляет бота из чата.

https://dev.max.ru/docs-api/methods/DELETE/chats/-chatId-/members/me

Parameters:

Name Type Description Default
chat_id int

ID чата.

required

Returns:

Name Type Description
DeletedBotFromChat DeletedBotFromChat

Результат удаления.

Source code in maxapi/bot.py
async def delete_me_from_chat(
    self,
    chat_id: int,
) -> DeletedBotFromChat:
    """
    Удаляет бота из чата.

    https://dev.max.ru/docs-api/methods/DELETE/chats/-chatId-/members/me

    Args:
        chat_id (int): ID чата.

    Returns:
        DeletedBotFromChat: Результат удаления.
    """

    return await DeleteMeFromMessage(
        bot=self,
        chat_id=chat_id,
    ).fetch()

get_list_admin_chat(chat_id) async

Получает список администраторов чата.

https://dev.max.ru/docs-api/methods/GET/chats/-chatId-/members/admins

Parameters:

Name Type Description Default
chat_id int

ID чата.

required

Returns:

Name Type Description
GettedListAdminChat GettedListAdminChat

Список администраторов.

Source code in maxapi/bot.py
async def get_list_admin_chat(
    self,
    chat_id: int,
) -> GettedListAdminChat:
    """
    Получает список администраторов чата.

    https://dev.max.ru/docs-api/methods/GET/chats/-chatId-/members/admins

    Args:
        chat_id (int): ID чата.

    Returns:
        GettedListAdminChat: Список администраторов.
    """

    return await GetListAdminChat(
        bot=self,
        chat_id=chat_id,
    ).fetch()

add_list_admin_chat(chat_id, admins, marker=None) async

Добавляет администраторов в чат.

https://dev.max.ru/docs-api/methods/POST/chats/-chatId-/members/admins

Parameters:

Name Type Description Default
chat_id int

ID чата.

required
admins List[ChatAdmin]

Список администраторов.

required
marker Optional[int]

Маркер для пагинации.

None

Returns:

Name Type Description
AddedListAdminChat AddedListAdminChat

Результат добавления.

Source code in maxapi/bot.py
async def add_list_admin_chat(
    self,
    chat_id: int,
    admins: List[ChatAdmin],
    marker: Optional[int] = None,
) -> AddedListAdminChat:
    """
    Добавляет администраторов в чат.

    https://dev.max.ru/docs-api/methods/POST/chats/-chatId-/members/admins

    Args:
        chat_id (int): ID чата.
        admins (List[ChatAdmin]): Список администраторов.
        marker (Optional[int]): Маркер для пагинации.

    Returns:
        AddedListAdminChat: Результат добавления.
    """

    return await AddAdminChat(
        bot=self,
        chat_id=chat_id,
        admins=admins,
        marker=marker,
    ).fetch()

remove_admin(chat_id, user_id) async

Удаляет администратора из чата.

https://dev.max.ru/docs-api/methods/DELETE/chats/-chatId-/members/admins/-userId-

Parameters:

Name Type Description Default
chat_id int

ID чата.

required
user_id int

ID пользователя.

required

Returns:

Name Type Description
RemovedAdmin RemovedAdmin

Результат удаления.

Source code in maxapi/bot.py
async def remove_admin(self, chat_id: int, user_id: int) -> RemovedAdmin:
    """
    Удаляет администратора из чата.

    https://dev.max.ru/docs-api/methods/DELETE/chats/-chatId-/members/admins/-userId-

    Args:
        chat_id (int): ID чата.
        user_id (int): ID пользователя.

    Returns:
        RemovedAdmin: Результат удаления.
    """

    return await RemoveAdmin(
        bot=self,
        chat_id=chat_id,
        user_id=user_id,
    ).fetch()

get_chat_members(chat_id, user_ids=None, marker=None, count=None) async

Получает участников чата.

https://dev.max.ru/docs-api/methods/GET/chats/-chatId-/members

Parameters:

Name Type Description Default
chat_id int

ID чата.

required
user_ids Optional[List[int]]

Список ID участников.

None
marker Optional[int]

Маркер для пагинации.

None
count Optional[int]

Количество участников (по умолчанию 20) (1-100).

None

Returns:

Name Type Description
GettedMembersChat GettedMembersChat

Список участников.

Source code in maxapi/bot.py
async def get_chat_members(
    self,
    chat_id: int,
    user_ids: Optional[List[int]] = None,
    marker: Optional[int] = None,
    count: Optional[int] = None,
) -> GettedMembersChat:
    """
    Получает участников чата.

    https://dev.max.ru/docs-api/methods/GET/chats/-chatId-/members

    Args:
        chat_id (int): ID чата.
        user_ids (Optional[List[int]]): Список ID участников.
        marker (Optional[int]): Маркер для пагинации.
        count (Optional[int]): Количество участников (по умолчанию 20) (1-100).

    Returns:
        GettedMembersChat: Список участников.
    """

    return await GetMembersChat(
        bot=self,
        chat_id=chat_id,
        user_ids=user_ids,
        marker=marker,
        count=count,
    ).fetch()

get_chat_member(chat_id, user_id) async

Получает участника чата.

https://dev.max.ru/docs-api/methods/GET/chats/-chatId-/members

Parameters:

Name Type Description Default
chat_id int

ID чата.

required
user_id int

ID участника.

required

Returns:

Type Description
Optional[ChatMember]

Optional[ChatMember]: Участник.

Source code in maxapi/bot.py
async def get_chat_member(
    self,
    chat_id: int,
    user_id: int,
) -> Optional[ChatMember]:
    """
    Получает участника чата.

    https://dev.max.ru/docs-api/methods/GET/chats/-chatId-/members

    Args:
        chat_id (int): ID чата.
        user_id (int): ID участника.

    Returns:
        Optional[ChatMember]: Участник.
    """

    members = await self.get_chat_members(
        chat_id=chat_id, user_ids=[user_id]
    )

    if members.members:
        return members.members[0]

    return None

add_chat_members(chat_id, user_ids) async

Добавляет участников в чат.

https://dev.max.ru/docs-api/methods/POST/chats/-chatId-/members

Parameters:

Name Type Description Default
chat_id int

ID чата.

required
user_ids List[int]

Список ID пользователей.

required

Returns:

Name Type Description
AddedMembersChat AddedMembersChat

Результат добавления.

Source code in maxapi/bot.py
async def add_chat_members(
    self,
    chat_id: int,
    user_ids: List[int],
) -> AddedMembersChat:
    """
    Добавляет участников в чат.

    https://dev.max.ru/docs-api/methods/POST/chats/-chatId-/members

    Args:
        chat_id (int): ID чата.
        user_ids (List[int]): Список ID пользователей.

    Returns:
        AddedMembersChat: Результат добавления.
    """

    return await AddMembersChat(
        bot=self,
        chat_id=chat_id,
        user_ids=user_ids,
    ).fetch()

kick_chat_member(chat_id, user_id, block=False) async

Исключает участника из чата.

https://dev.max.ru/docs-api/methods/DELETE/chats/-chatId-/members

Parameters:

Name Type Description Default
chat_id int

ID чата.

required
user_id int

ID пользователя.

required
block bool

Блокировать пользователя (по умолчанию False).

False

Returns:

Name Type Description
RemovedMemberChat RemovedMemberChat

Результат исключения.

Source code in maxapi/bot.py
async def kick_chat_member(
    self,
    chat_id: int,
    user_id: int,
    block: bool = False,
) -> RemovedMemberChat:
    """
    Исключает участника из чата.

    https://dev.max.ru/docs-api/methods/DELETE/chats/-chatId-/members

    Args:
        chat_id (int): ID чата.
        user_id (int): ID пользователя.
        block (bool): Блокировать пользователя (по умолчанию False).

    Returns:
        RemovedMemberChat: Результат исключения.
    """

    return await RemoveMemberChat(
        bot=self,
        chat_id=chat_id,
        user_id=user_id,
        block=block,
    ).fetch()

get_updates(limit=None, timeout=None, marker=None, types=None) async

Получает обновления для бота.

https://dev.max.ru/docs-api/methods/GET/updates

Returns:

Name Type Description
Dict Dict

Список обновлений.

Source code in maxapi/bot.py
async def get_updates(
    self,
    limit: Optional[int] = None,
    timeout: Optional[int] = None,
    marker: Optional[int] = None,
    types: Optional[Sequence[UpdateType]] = None,
) -> Dict:
    """
    Получает обновления для бота.

    https://dev.max.ru/docs-api/methods/GET/updates

    Returns:
        Dict: Список обновлений.
    """

    return await GetUpdates(
        bot=self, limit=limit, marker=marker, types=types, timeout=timeout
    ).fetch()

get_upload_url(type) async

Получает URL для загрузки файлов.

https://dev.max.ru/docs-api/methods/POST/uploads

Parameters:

Name Type Description Default
type UploadType

Тип загружаемого файла.

required

Returns:

Name Type Description
GettedUploadUrl GettedUploadUrl

URL для загрузки.

Source code in maxapi/bot.py
async def get_upload_url(self, type: UploadType) -> GettedUploadUrl:
    """
    Получает URL для загрузки файлов.

    https://dev.max.ru/docs-api/methods/POST/uploads

    Args:
        type (UploadType): Тип загружаемого файла.

    Returns:
        GettedUploadUrl: URL для загрузки.
    """

    return await GetUploadURL(bot=self, type=type).fetch()

set_my_commands(*commands) async

Устанавливает список команд бота.

Parameters:

Name Type Description Default
*commands BotCommand

Список команд.

()

Returns:

Name Type Description
User User

Обновленная информация о боте.

Source code in maxapi/bot.py
async def set_my_commands(self, *commands: BotCommand) -> User:
    """
    Устанавливает список команд бота.

    Args:
        *commands (BotCommand): Список команд.

    Returns:
        User: Обновленная информация о боте.
    """

    warnings.warn(
        "bot.change_info() устарел и отсутствует в официальной swagger-спецификации API MAX. "
        "Использование не рекомендуется.",
        DeprecationWarning,
        stacklevel=2,
    )

    return await ChangeInfo(bot=self, commands=list(commands)).fetch()

get_subscriptions() async

Получает список всех подписок.

https://dev.max.ru/docs-api/methods/GET/subscriptions

Returns:

Name Type Description
GettedSubscriptions GettedSubscriptions

Объект со списком подписок.

Source code in maxapi/bot.py
async def get_subscriptions(self) -> GettedSubscriptions:
    """
    Получает список всех подписок.

    https://dev.max.ru/docs-api/methods/GET/subscriptions

    Returns:
        GettedSubscriptions: Объект со списком подписок.
    """

    return await GetSubscriptions(bot=self).fetch()

subscribe_webhook(url, update_types=None, secret=None) async

Подписывает бота на получение обновлений через WebHook.

https://dev.max.ru/docs-api/methods/POST/subscriptions

Parameters:

Name Type Description Default
url str

URL HTTP(S)-эндпойнта вашего бота.

required
update_types Optional[List[UpdateType]]

Список типов обновлений.

None
secret Optional[str]

Секрет для Webhook (5-256 симолов).

None

Returns:

Name Type Description
Subscribed Subscribed

Результат подписки.

Source code in maxapi/bot.py
async def subscribe_webhook(
    self,
    url: str,
    update_types: Optional[List[UpdateType]] = None,
    secret: Optional[str] = None,
) -> Subscribed:
    """
    Подписывает бота на получение обновлений через WebHook.

    https://dev.max.ru/docs-api/methods/POST/subscriptions

    Args:
        url (str): URL HTTP(S)-эндпойнта вашего бота.
        update_types (Optional[List[UpdateType]]): Список типов обновлений.
        secret (Optional[str]): Секрет для Webhook (5-256 симолов).

    Returns:
        Subscribed: Результат подписки.
    """

    return await SubscribeWebhook(
        bot=self, url=url, update_types=update_types, secret=secret
    ).fetch()

unsubscribe_webhook(url) async

Отписывает бота от получения обновлений через WebHook.

https://dev.max.ru/docs-api/methods/DELETE/subscriptions

Parameters:

Name Type Description Default
url str

URL HTTP(S)-эндпойнта вашего бота.

required

Returns:

Name Type Description
Unsubscribed Unsubscribed

Результат отписки.

Source code in maxapi/bot.py
async def unsubscribe_webhook(
    self,
    url: str,
) -> Unsubscribed:
    """
    Отписывает бота от получения обновлений через WebHook.

    https://dev.max.ru/docs-api/methods/DELETE/subscriptions

    Args:
        url (str): URL HTTP(S)-эндпойнта вашего бота.

    Returns:
        Unsubscribed: Результат отписки.
    """

    return await UnsubscribeWebhook(
        bot=self,
        url=url,
    ).fetch()

delete_webhook() async

Удаляет все подписки на Webhook.

https://dev.max.ru/docs-api/methods/DELETE/subscriptions

Returns:

Type Description
None

None

Source code in maxapi/bot.py
async def delete_webhook(self) -> None:
    """
    Удаляет все подписки на Webhook.

    https://dev.max.ru/docs-api/methods/DELETE/subscriptions

    Returns:
        None
    """

    subs = await self.get_subscriptions()
    if subs.subscriptions:
        for sub in subs.subscriptions:
            await self.unsubscribe_webhook(sub.url)
            logger_bot.info("Удалена подписка на Webhook: %s", sub.url)