Discord-бот, который будет отслеживать, кто прислал скриншот в ветке ⇐ Python

Программы на Python
Anonymous
Discord-бот, который будет отслеживать, кто прислал скриншот в ветке

Сообщение Anonymous »

Я создал бота, который помогает с нашими событиями в игре.
Сейчас он добавляет список пользователей, которые отреагировали большим пальцем вверх, и публикует их имена в теме, которую он создает после того, как ему сообщили (реакция денежного мешка добавлена ​​автором сообщения ).
Люди должны присылать скриншоты в этой теме И добавлять реакцию денежного мешка к ПРЕДЫДУЩЕМУ сообщению. Дело в том, что пользователи обычно забывают добавить эту реакцию, и я хотел бы напомнить им об этом:
  • BOT сообщит всякий раз, когда кто-то добавит эту реакцию. li>
    BOT отправит пользователю пинг через 20 часов с сообщением о том, что он не реагирует.
Вот часть моего кода где бот:
  • не допускает реакции денежного мешка, если не реакции черепа
  • фильтрует сообщение
  • добавить список пользователей, которые отреагировали лайком
  • создать ветку
  • отправить имена пользователей в ветку
Я не уверен, стоит ли мне делать это (часть, которую я хотел бы реализовать) для on_reaction_add или, скорее, для on_thread_create, а может быть, для того и другого? Может ли кто-нибудь помочь мне с этим? Я новичок в Python.
if user == reaction.message.author and str(reaction.emoji) == "💰":
channel = client.get_channel(1245389918361092126) #💰-payments

moneybag_reaction = discord.utils.get(reaction.message.reactions, emoji='💰')
skull_reaction = discord.utils.get(reaction.message.reactions, emoji='\U00002620\U0000fe0f')
print("2")

if not skull_reaction:
print("3")
await moneybag_reaction.remove(user)
return

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}")
await message.add_reaction("💰")

thumbsuplist = []
message = reaction.message
for reaction in message.reactions:
print("2")
if reaction.emoji == '👍':
async for user in reaction.users():
if user != client.user:
thumbsuplist.append(user.mention)
joined = ", ".join(thumbsuplist)
print(joined)

thread_name = f"{filtered_content} by {reaction.message.author.display_name}"
thread = await channel.create_thread(name=thread_name, auto_archive_duration=1440, reason=None, type=discord.ChannelType.public_thread)
await thread.send(str(joined))


Подробнее здесь: https://stackoverflow.com/questions/790 ... the-thread

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