Discord Bot отправляет сообщения в теме с упоминаниями пользователей, но есть одна загвоздкаPython

Программы на Python
Anonymous
Discord Bot отправляет сообщения в теме с упоминаниями пользователей, но есть одна загвоздка

Сообщение Anonymous »

Код: Выделить всё

    if user == reaction.message.author and str(reaction.emoji) == "\U0001F5BC\U0000FE0F":
channel = client.get_channel(1287186067405017109)

# Filter out mention at the start
mention_regex = re.compile(r"^ ")
filtered_content = mention_regex.sub("", reaction.message.content, 1)
print(filtered_content)
message = await channel.send(f"{filtered_content} by {reaction.message.author.mention}")
thread_name = f"{filtered_content} by {reaction.message.author.display_name}"
await message.add_reaction("\U0001F5BC\U0000FE0F")
await message.channel.create_thread(name=thread_name, auto_archive_duration=1440, reason=None)
print("1")

list = []
message = reaction.message
for reaction in message.reactions:
list.append(user.mention)
print("4")
if reaction.emoji == '👍':
async for user in reaction.users():
if user != client.user:
print("5")
break
thread_name = f"{filtered_content} by {reaction.message.author.display_name}"
thread = await message.channel.create_thread(name=thread_name, auto_archive_duration=1440, reason=None, type=discord.ChannelType.public_thread)
await thread.send(list)
print("6")
Я постараюсь объяснить это настолько хорошо, насколько смогу.
Что у меня сейчас есть: Reaction.message.author добавляет реакцию \ U0001F5BC\U0000FE0F к сообщению X на канале X.
Бот отправляет сообщение Y (message X message.content) на канал Y и создает там тред.
Теперь что я пытаюсь сделать сделать: бот захватывает всех пользователей, которые отреагировали 👍 на сообщение X, и упоминает их в только что созданной теме.
Я не уверен, правильно ли я делаю, так как не знаю Я не хочу вводить бота в заблуждение так, что он будет думать, что ему нужно перехватить пользователей, которые отреагировали 👍 на сообщение бота Y, надеюсь, это понятно.
Редактировать: Я каким-то образом сделал так, что бот отправляет пользователю лайк, за исключением одного — он упоминает только меня.
Редактировать 2: теперь он упоминает только одного человека, который отреагировал 👍

Редактировать 3: сейчас это работает, но в ветке меня упоминают дважды (один для
👍, а другой для \U0001F5BC\U0000FE0F, вероятно. Как мне это изменить ?)

Также я сейчас работаю на одном канале.

Код: Выделить всё

channel = client.get_channel(1287186067405017109)
Как заставить бота брать информацию со всех каналов и отправлять ее на этот, потому что сейчас он берет информацию только с этого канала.
Может кто-нибудь мне с этим помочь? Я думал, единственная проблема в том, что я не знаю, как точно определить резьбу = но я больше не знаю!
Я пробовал и пробовал много всего. Я действительно не хочу менять способ, которым я это делаю, поскольку сейчас он находится в функции on_reaction_add.
Вот мой полный код: https://codeshare.io/ONeQmA
Рабочие линии: 226 - 247

Подробнее здесь: https://stackoverflow.com/questions/790 ... es-a-catch

Вернуться в «Python»