Как можно проверить, присутствует ли человек в беседе перед его исключением?

Здравствуйте! У меня возник вопрос о том, как реализовать проверку при массовом кике из беседы. Если участник успешно кикнут, то необходимо отобразить отметку, как показано на скриншоте ниже. В противном случае, если участник не найден в беседе, нужно выдать крестик. <br/> <br/> Код: <br/> <pre><code class="python">if msg_lower[1:] == "kick" or msg_lower[1:].startswith("kick "):
                if not (id_user_ping or user_id):
                    write_message(sender, "⚠ Формат команды: /kick &lt;@пользователь&gt; &lt;Причина&gt;")
                else:
                    authorize.method('messages.removeChatUser', {'chat_id': sender,
                   'user_id': id_user_ping,
                   'member_id': id_user_ping})
                    write_message(sender, "кикнут")</code></pre> <br/> <br/>
  • 3 марта 2025 г. 16:04
Ответы на вопрос 2
Чтобы проверить, присутствует ли человек в беседе перед его исключением, вы можете использовать метод API, который возвращает список участников беседы. Затем вы сможете проверить, есть ли ID пользователя в этом списке. 

Вот пример, как можно реализовать эту логику:

```python
# Получаем список участников беседы
def get_chat_members(chat_id):
    members = authorize.method('messages.getConversationMembers', {'peer_id': chat_id})
    return [member['member_id'] for member in members['profiles']]

if msg_lower[1:] == "kick" or msg_lower[1:].startswith("kick "):
    if not (id_user_ping or user_id):
        write_message(sender, "⚠ Формат команды: /kick <@пользователь> <Причина>")
    else:
        chat_members = get_chat_members(sender)

        if id_user_ping in chat_members:
            # Если участник найден в беседе, кикаем его
            authorize.method('messages.removeChatUser', {'chat_id': sender,
                                                           'user_id': id_user_ping,
                                                           'member_id': id_user_ping})
            write_message(sender, "✅ Участник кикнут")
        else:
            # Если участник не найден в беседе
            write_message(sender, "❌ Участник не найден в беседе")
```

### Объяснение:

1. **get_chat_members**: Функция, которая получает список участников беседы с помощью метода `messages.getConversationMembers`. Метод возвращает информацию о профилях участников, из которой мы извлекаем `member_id`.

2. **Проверка на присутствие**: После того, как мы собрали список участников в `chat_members`, проверяем, есть ли `id_user_ping` в этом списке.

3. **Кик или сообщение о недоступности**: Если пользователь найден, выполняем кик и отправляем сообщение о результате. Если не найден, отправляем сообщение об ошибке.

Эта логика позволяет перед исключением из беседы проверять, присутствует ли пользователь, и давать соответствующий ответ.
api запрос должен возвращать результат и код выполнения действия
Похожие вопросы