(Moderation): Base moderation and video system.

Migration to data v2.
Complete core Ticket-based moderation system.
StudyBan ticket implementation.
Video-channel tracking system.
This commit is contained in:
2021-09-25 14:43:28 +03:00
parent 87f3918126
commit 6f48f47ffd
23 changed files with 1530 additions and 303 deletions

View File

@@ -53,7 +53,7 @@ def add_pending(pending):
guild_config = RowTable(
'guild_config',
('guildid', 'admin_role', 'mod_role', 'event_log_channel',
('guildid', 'admin_role', 'mod_role', 'event_log_channel', 'alert_channel',
'min_workout_length', 'workout_reward',
'max_tasks', 'task_reward', 'task_reward_limit',
'study_hourly_reward', 'study_hourly_live_bonus',
@@ -73,7 +73,7 @@ lions = RowTable(
'tracked_time', 'coins',
'workout_count', 'last_workout_start',
'last_study_badgeid',
'study_ban_count',
'video_warned',
),
('guildid', 'userid'),
cache=TTLCache(5000, ttl=60*5),

View File

@@ -2,6 +2,8 @@ import logging
import asyncio
from meta import client, conf
from settings import GuildSettings, UserSettings
from LionModule import LionModule
from .lion import Lion
@@ -26,6 +28,18 @@ async def _lion_sync_loop():
await asyncio.sleep(conf.bot.getint("lion_sync_period"))
@module.init_task
def setting_initialisation(client):
"""
Execute all Setting initialisation tasks from GuildSettings and UserSettings.
"""
for setting in GuildSettings.settings.values():
setting.init_task(client)
for setting in UserSettings.settings.values():
setting.init_task(client)
@module.launch_task
async def launch_lion_sync_loop(client):
asyncio.create_task(_lion_sync_loop())