From a87ec0adf0627dcfbc6b73a1f9f8b0bed50d6b5a Mon Sep 17 00:00:00 2001 From: zevaryx Date: Sat, 19 Feb 2022 14:28:18 -0700 Subject: [PATCH] Add warning task --- jarvis_tasks/tasks/warning.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 jarvis_tasks/tasks/warning.py diff --git a/jarvis_tasks/tasks/warning.py b/jarvis_tasks/tasks/warning.py new file mode 100644 index 0000000..e76dcbb --- /dev/null +++ b/jarvis_tasks/tasks/warning.py @@ -0,0 +1,23 @@ +"""JARVIS warnings tasks.""" +import asyncio +from datetime import datetime, timedelta + +from dis_snek import Snake +from jarvis_core.db import q +from jarvis_core.db.models import Warning + + +async def unwarn(bot: Snake) -> None: + """ + Deactivate warnings when they expire. + + Args: + bot: Snake instance + """ + while True: + asyncio.sleep(3600) + warns = Warning.find(q(active=True)) + async for warn in warns: + if warn.created_at + timedelta(hours=warn.duration) < datetime.utcnow(): + warn.update(q(active=False)) + await warn.commit()