jarvis-bot/jarvis/tasks/unwarn.py

17 lines
614 B
Python

"""J.A.R.V.I.S. unwarn background task handler."""
from datetime import datetime, timedelta
from dis_snek.models.snek.tasks.task import Task
from dis_snek.models.snek.tasks.triggers import IntervalTrigger
from jarvis_core.db import q
from jarvis_core.db.models import Warning
@Task.create(IntervalTrigger(hours=1))
async def unwarn() -> None:
"""J.A.R.V.I.S. unwarn background task."""
warns = Warning.find(q(active=True))
async for warn in warns:
if warn.created_at + timedelta(hours=warn.duration) < datetime.now():
warn.update(q(active=False))
await warn.commit()