Как сделать чтобы команда работа только днем python

Есть команда:

@bot.command()
async def xp(ctx, amount=10):
        await ctx.message.delete()
        now = datetime.now()
        now_time = now.time()
        print(now_time)
        for ft in range(amount):
            if now_time > time(1,30) or now_time < time(8,00):
                print("nith")
            else:
                channel = bot.get_channel(id)
                message = await channel.send(random.choice(words))
                await asyncio.sleep(random.uniform(0,3))
                await message.delete()
                await asyncio.sleep(random.uniform(5,10))

Но проблема в том, что если цикл ft начался до 01:30 он продолжить работать и после, как это можно исправить Хочу чтобы ночью команда продолжала работу, если больше 01:30 и до 08, а дальше продолжала работать если цикл еще не закончился


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

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

Вам нужно обновлять текущее время в цикле, а иначе вы всегда сравниваете ваш промежуток с тем временем, в которое цикл запустился.

@bot.command()
async def xp(ctx, amount=10):
        await ctx.message.delete()
        for ft in range(amount):
            now_time = datetime.now().time()
            if now_time > time(1,30) or now_time < time(8,00):
                print("nith")
            else:
                channel = bot.get_channel(id)
                message = await channel.send(random.choice(words))
                await asyncio.sleep(random.uniform(0,3))
                await message.delete()
                await asyncio.sleep(random.uniform(5,10))
→ Ссылка