[PYTHON] Messages mis à jour dans discord.py

Lors de la sortie de texte avec bot, si vous supprimez le message précédent et en publiez un nouveau, C'est pratique car il est affiché comme le dernier message publié.

Cependant, si la publication est faite dans un court laps de temps, la publication peut être affichée deux fois.

C'est fondamentalement un processus de verrouillage multi-thread, Cela fonctionne bien jusqu'à présent, alors je vais laisser la source.

class RenewalMessage():
    def __init__(self, channel):
        self.lastmessage = None
        self.outputlock = 0
        self.channel = channel

    async def SendMessage(self, message):
        if self.outputlock == 1: return
        try:
            while self.outputlock != 0:
                await asyncio.sleep(1)

            if self.lastmessage is not None:
                self.outputlock = 1
                try:
                    await self.lastmessage.delete()
                except discord.errors.NotFound:
                    pass
                self.lastmessage = None

            try:
                self.outputlock = 2
                self.lastmessage = await self.channel.send(message)
            except discord.errors.Forbidden:
                pass
        finally:
            self.outputlock = 0

Recommended Posts

Messages mis à jour dans discord.py
nest cog dans discord.py
Transmettez des arguments à Task dans discord.py
Comprendre les rouages et les extensions dans discord.py