24 lines
840 B
Python
24 lines
840 B
Python
from datetime import datetime
|
|
from datetime import timedelta
|
|
|
|
from discord.ext.tasks import loop
|
|
|
|
import jarvis
|
|
from jarvis.db.models import Lock
|
|
|
|
|
|
@loop(minutes=1)
|
|
async def unlock():
|
|
locks = Lock.objects(active=True)
|
|
for lock in locks:
|
|
if lock.created_at + timedelta(minutes=lock.duration) < datetime.utcnow():
|
|
guild = await jarvis.jarvis.fetch_guild(lock.guild)
|
|
channel = await jarvis.jarvis.fetch_channel(lock.channel)
|
|
if channel:
|
|
roles = await guild.fetch_roles()
|
|
for role in roles:
|
|
overrides = channel.overwrites_for(role)
|
|
overrides.send_messages = None
|
|
await channel.set_permissions(role, overwrite=overrides, reason="Lock expired")
|
|
lock.active = False
|
|
lock.save()
|