diff --git a/jarvis_tasks/tasks/warning.py b/jarvis_tasks/tasks/warning.py index 03a96b1..0bf35fa 100644 --- a/jarvis_tasks/tasks/warning.py +++ b/jarvis_tasks/tasks/warning.py @@ -31,12 +31,13 @@ async def unwarn(bot: Snake) -> None: logger.debug("Starting Task-unwarn") while True: max_ts = datetime.now(tz=timezone.utc) + timedelta(minutes=55) - warns = Warning.find(q(active=True, created_at__lte=max_ts)) + warns = Warning.find(q(active=True, expires_at__lte=max_ts, id__nin=queue)) async for warn in warns: if warn.id in queue: + logger.warn("Warning found despite filter") continue coro = _unwarn(warn) - when = warn.created_at + timedelta(hours=warn.duration) + when = warn.expires_at asyncio.create_task(runat(when, coro, logger)) queue.append(warn.id) # Check every hour