Авторы реакций сообщения discord.py
Мне нужно получить массив всех пользователей использовавших любую реакцию. У меня есть нужное сообщение (оно определяется по id). Я пробовал msg.reactions.users(), msg.reactions[x].users(), list(msg.reactions[x].users()), но все безуспешно. Либо ошибка атрибута, либо не получается конвертировать в лист.
@bot.slash_command()
@commands.is_owner()
async def check(inter:disnake.CommandInteraction, msg:disnake.Message):
#msg - нужное сообщение
users = ...
В документации тоже ничего не нашёл
Ответы (1 шт):
Автор решения: denisnumb
→ Ссылка
Переходим к классу реакции и по ключевому слову async for видим, что метод users возвращает вам не список пользователей, а итератор, который можно использовать в цикле.
Нажимаем на него и получаем примеры использования
И далее, имея все это несложно написать код:
# msg - нужное сообщение
users = []
for reaction in msg.reactions:
async for user in reaction.users():
users.append(user)
# вывод имен пользователей для проверки
for user in users:
print(user.name)
Или можно заполнить список проще, через генератор:
users = [user for reaction in msg.reactions async for user in reaction.users()]

