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

GetMembersChat

GetMembersChat(bot, chat_id, user_ids=None, marker=None, count=None)

Bases: BaseConnection

Класс для получения списка участников чата через API.

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

Attributes:

Name Type Description
bot

Экземпляр бота для выполнения запроса.

chat_id

Идентификатор чата.

user_ids

Список ID пользователей для фильтрации. По умолчанию None.

marker

Маркер для пагинации (начальная позиция). По умолчанию None.

count

Максимальное количество участников для получения. По умолчанию None.

Source code in maxapi/methods/get_members_chat.py
def __init__(
    self,
    bot: "Bot",
    chat_id: int,
    user_ids: list[int] | None = None,
    marker: int | None = None,
    count: int | None = None,
):
    if count is not None and not (1 <= count <= 100):
        raise ValueError("count не должен быть меньше 1 или больше 100")

    super().__init__()
    self.bot = bot
    self.chat_id = chat_id
    self.user_ids = user_ids
    self.marker = marker
    self.count = count

fetch() async

Выполняет GET-запрос для получения участников чата с опциональной фильтрацией.

Формирует параметры запроса с учётом фильтров и передаёт их базовому методу.

Returns:

Name Type Description
GettedMembersChat GettedMembersChat

Объект с данными по участникам чата.

Source code in maxapi/methods/get_members_chat.py
async def fetch(self) -> GettedMembersChat:
    """
    Выполняет GET-запрос для получения участников чата с
    опциональной фильтрацией.

    Формирует параметры запроса с учётом фильтров и передаёт их
    базовому методу.

    Returns:
        GettedMembersChat: Объект с данными по участникам чата.
    """

    bot = self._ensure_bot()

    params = bot.params.copy()

    if self.user_ids:
        params["user_ids"] = ",".join(
            [str(user_id) for user_id in self.user_ids]
        )

    if self.marker is not None:
        params["marker"] = self.marker
    if self.count:
        params["count"] = self.count

    response = await super().request(
        method=HTTPMethod.GET,
        path=ApiPath.CHATS.value
        + "/"
        + str(self.chat_id)
        + ApiPath.MEMBERS,
        model=GettedMembersChat,
        params=params,
    )

    return cast(GettedMembersChat, response)