Remove unmute task
This commit is contained in:
parent
97c83aa370
commit
ab0e24129d
2 changed files with 1 additions and 29 deletions
|
@ -1,10 +1,9 @@
|
|||
"""J.A.R.V.I.S. background task handlers."""
|
||||
from jarvis.tasks import unban, unlock, unmute, unwarn
|
||||
from jarvis.tasks import unban, unlock, unwarn
|
||||
|
||||
|
||||
def init() -> None:
|
||||
"""Start the background task handlers."""
|
||||
unban.unban.start()
|
||||
unlock.unlock.start()
|
||||
unmute.unmute.start()
|
||||
unwarn.unwarn.start()
|
||||
|
|
|
@ -1,27 +0,0 @@
|
|||
"""J.A.R.V.I.S. unmute background task handler."""
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
from discord.ext.tasks import loop
|
||||
|
||||
import jarvis
|
||||
from jarvis.db.models import Mute, Setting
|
||||
|
||||
|
||||
@loop(minutes=1)
|
||||
async def unmute() -> None:
|
||||
"""J.A.R.V.I.S. unmute background task."""
|
||||
mutes = Mute.objects(duration__gt=0, active=True)
|
||||
mute_roles = Setting.objects(setting="mute")
|
||||
for mute in mutes:
|
||||
if mute.created_at + timedelta(minutes=mute.duration) < datetime.utcnow():
|
||||
mute_role = [x.value for x in mute_roles if x.guild == mute.guild][0]
|
||||
guild = await jarvis.jarvis.fetch_guild(mute.guild)
|
||||
role = guild.get_role(mute_role)
|
||||
user = await guild.fetch_member(mute.user)
|
||||
if user:
|
||||
if role in user.roles:
|
||||
await user.remove_roles(role, reason="Mute expired")
|
||||
|
||||
# Objects can't handle bulk_write, so handle it via raw methods
|
||||
mute.active = False
|
||||
mute.save
|
Loading…
Add table
Reference in a new issue