#python #discord #discord.py
#python #Discord #discord.py
Вопрос:
У меня есть бот, созданный с использованием discord.py . Я добавил команду suggest и добавил к ней время перезарядки. После этого я добавил этот код:
@suggest.error
async def suggest_error(ctx, error):
if isinstance(error, commands.CommandOnCooldown):
msg = 'You are too fast! Please try again in {:.2f}s'.format(error.retry_after)
await ctx.send(msg)
else:
raise error
Теперь он показывает время в секундах, как мне заставить его отображаться в формате hr: min: sec?
Ответ №1:
Вы можете сделать это с помощью модуля datetime
import datetime
remaining_time = str(datetime.timedelta(seconds=int(error.retry_after)))
Комментарии:
1. @suggest.error асинхронное определение suggest_error(ctx, ошибка): если isinstance(ошибка, команды. CommandOnCooldown): remaining_time = str(datetime.timedelta(seconds = int(error.retry_after))) msg = ‘Вы слишком быстры! Пожалуйста, попробуйте еще раз в ‘ remaining_time await ctx.send (сообщение об ошибке) else: ошибка вызова Я написал это, и я все еще получаю различные ошибки.. Кстати, есть ли способ преобразовать это напрямую: @commands.cooldown(1, 3600, тип = команды. Тип корзины.по умолчанию)
Ответ №2:
def hms_from_secs(seconds: int) -> str:
seconds = int(seconds)
hours = seconds // 3600
minutes = (seconds % 3600) // 60
seconds = seconds % 60
return f"{hours:02} hour(s) {minutes:02} minute(s)"
Комментарии:
1. пожалуйста, добавьте некоторые пояснения