discord.py команда bot edit snipe, которая удаляет недавно отредактированное сообщение

#python #discord #discord.py #discord.py-rewrite

#python #Discord #discord.py #discord.py-перезаписать

Вопрос:

Я работал над ботом discord, и мне удалось создать команду snipe, которая хорошо удаляет недавнее удаленное сообщение, но теперь я пытаюсь запрограммировать ее так, чтобы она могла редактировать snipe, то есть удалять недавно отредактированное сообщение

Вот мой код удаленных сообщений snipe

     async def on_ready(self):
        print('Snipe commands are working')


    @commands.Cog.listener()
    async def on_message_delete(self, message):

        global snipe_message_content
        global snipe_message_author
        global snipe_message_id
        global snipe_message_channel
        global snipe_message_author_avatar
        global a
        global b

        snipe_message_content = message.content
        snipe_message_author = message.author.id
        snipe_message_id = message.id
        snipe_message_channel = message.channel
        snipe_message_author_avatar = message.author.avatar_url
        a = message.author.name
        b = message.author.discriminator
        
        if (snipe_message_author in botsid):
            m == 1
        else:
            embed = discord.Embed(description=f"🗑️ **Message sent by** <@!{snipe_message_author}> **deleted in** {message.channel.mention} n  n {snipe_message_content}")
            embed.set_author(name= f"‎‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎{message.author.name}#{message.author.discriminator}")
            channel = self.client.get_channel(795726497922809947)
            await channel.send(embed=embed)
 

Комментарии:

1. вам нужно использовать событие on_message_edit.


Ответ №1:

Вы можете просто добиться этого, используя on_message_edit и message_before перед редактированием сообщения. Ниже приведен пример

 async def on_message_edit(message_before, message_after):
      
        author = message_before.author
        guild = message_before.guild.name
        channel = message_before.channel


        await channel.send(f"""
   
        Original Message
        {message_before.content}

        Updated Message
        {message_after.content}""")


 

Из этого вы можете просто скопировать то, что вы сделали выше.