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

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 Bot

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

chat_id int

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

user_ids Optional[List[str]]

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

marker Optional[int]

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

count Optional[int]

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

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

    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:
        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)