discord py, постоянное обновление информации из json

У меня есть команда, которая по api выводит в Embed онлайн сервера. Могу ли я реализовать такую функцию, чтобы каждую секунду бот обновлял данные из api через message.edit?

embed=discord.Embed(title="", description=f"Сейчас на сервере **{onl}** из **{max_onl} игроков.**", color = 0x2f3136)
await message.edit(embed=embed)

Именно сам обновлял данные, без ввода команды по новой.


Ответы (1 шт):

Автор решения: RAINGM

Каждую секунду нет, так как discord rate limits не позволят этого, но можно, например каждые 45 секунд через tasks
Вот пример кога:

class Tasks(commands.Cog):
    def __init__(self, bot: Bot):
        self.bot = bot
        self.update_message.start()

    def cog_unload(self):
        self.update_message.cancel()

    @tasks.loop(seconds=45)
    async def update_message(self):
        channel = discord.utils.get(self.bot.get_guild(айди гильдии).text_channels, id=айди канала)
        message = await channel.fetch_message(айди сообщения)
        embed=discord.Embed(title="", description=f"Сейчас на сервере **{onl}** из **{max_onl} игроков.**", color = 0x2f3136)
        await message.edit(embed=embed)

def setup(bot):
    bot.add_cog(Tasks(bot))
→ Ссылка