Я хочу пересылать сообщения, отправленные по определенному каналу, на другой канал, основываясь на количестве реакций на реакцию ? emoji. Сообщение содержит несколько вложений и отправляется ботом YAGPDB.xyz из дополнительного реддита. Если сообщение в определенном канале получает более одного отклика, я хочу переслать это сообщение в другой канал и удалить его на текущем канале. Вот как выглядит типичное сообщение от этого бота (со вставками):
Я написал следующий код:
@client.event
async def on_raw_reaction_add(payload):
if payload.channel_id in CHANNEL_LIST:
if payload.emoji.name=='\U0001F53C':
channel=client.get_channel(payload.channel_id)
message=await channel.fetch_message(payload.message_id)
reaction=get(message.reactions,emoji=payload.emoji.name)
if reaction and reaction.count>1:
await message.pin()
elif payload.emoji.name=='\U0001F53B':
channel=client.get_channel(payload.channel_id)
message=await channel.fetch_message(payload.message_id)
reaction=get(message.reactions,emoji=payload.emoji.name)
if reaction and reaction.count>1:
channel=client.get_channel(DELETED_MESSAGES_CHANNEL)
await channel.send('{}: {}'.format(message.author, message.content),embed=message.content.embeds)
await message.delete()
Я получаю следующее ошибка,
Ignoring exception in on_raw_reaction_add
Traceback (most recent call last):
File "C:\Python\Python38\lib\site-packages\discord\client.py", line 312, in _run_event
await coro(*args, **kwargs)
File "s.py", line 46, in on_raw_reaction_add
await channel.send('{}: {}'.format(message.author, message.content),embed=message.content.embeds)
AttributeError: 'str' object has no attribute 'embeds'
Если я использую embed=message.embeds
вместо message.content.embeds
, я получаю следующую ошибку,
Ignoring exception in on_raw_reaction_add
Traceback (most recent call last):
File "C:\Python\Python38\lib\site-packages\discord\client.py", line 312, in _run_event
await coro(*args, **kwargs)
File "s.py", line 46, in on_raw_reaction_add
await channel.send('{}: {}'.format(message.author, message.content),embed=message.embeds)
File "C:\Python\Python38\lib\site-packages\discord\abc.py", line 828, in send
embed = embed.to_dict()
AttributeError: 'list' object has no attribute 'to_dict'
Как мне получить все вставки в этом сообщении и переслать это как было отправлено сюда на другой канал? А также, как мне узнать количество пользователей на моем сервере, которые НЕ БОТЫ ? Любые предложения очень ценятся!