@dpushin1

Как сделать обновление времени каждую минуту?

Как сделать обновление времени каждую минуту так, чтобы остальные функции работали?
Я наверное туплю, но вот кусок кода:
@client.command(pass_context=True)
@commands.has_any_role(admins[0], admins[1], admins[2])
async def clear(ctx, amount=100):
    await ctx.channel.purge(limit=amount + 1)
    emb = discord.Embed(colour=discord.Color.green())
    emb.set_footer(text=f'Администратор {ctx.author.name} удалил {amount} сообщений', icon_url=ctx.author.avatar_url)
    await ctx.send(embed=emb)

И вот таких функций у меня 5, где-то среди них мне нужно делать так, чтобы каждую минуту мне в консоль выводилось текущее время, но через while True у меня не работают другие функции.
  • Вопрос задан
  • 117 просмотров
Решения вопроса 1
Не используйте pass_context. Такого аргумента не существует в rewrite-версии библиотеки

Касательно вопроса - использовать while True в asyncio - коде, обычно, не самая лучшая идея, так как это практически всегда блокирует главный цикл.

Используйте asyncio tasks: https://docs.python.org/3/library/asyncio-task.html
В discord.py так же существует расширение для упрощенного создания и обработки tasks (таких, как, например, отмена цикла, или падение сети при выполнении цикла): https://discordpy.readthedocs.io/en/stable/ext/tas...

from discord.ext import tasks, commands

@tasks.loop(seconds=5.0)
async def printer():
    print("5 seconds has passed")

printer.start()
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы