diff --git a/bot/core/module.py b/bot/core/module.py index daaa4bc7..0bf870c0 100644 --- a/bot/core/module.py +++ b/bot/core/module.py @@ -68,9 +68,10 @@ async def preload_studying_members(client): ) -@module.launch_task -async def launch_lion_sync_loop(client): - asyncio.create_task(_lion_sync_loop()) +# Removing the sync loop in favour of the studybadge sync. +# @module.launch_task +# async def launch_lion_sync_loop(client): +# asyncio.create_task(_lion_sync_loop()) @module.unload_task diff --git a/bot/modules/study/__init__.py b/bot/modules/study/__init__.py index eec16e1d..30f59149 100644 --- a/bot/modules/study/__init__.py +++ b/bot/modules/study/__init__.py @@ -1,9 +1,8 @@ from .module import module -from . import data -from . import admin -from . import badge_tracker -from . import time_tracker +from . import badges +from . import timers +from . import tracking + from . import top_cmd -from . import studybadge_cmd from . import stats_cmd diff --git a/bot/modules/study/badges/__init__.py b/bot/modules/study/badges/__init__.py new file mode 100644 index 00000000..8db92c34 --- /dev/null +++ b/bot/modules/study/badges/__init__.py @@ -0,0 +1,2 @@ +from . import badge_tracker +from . import studybadge_cmd diff --git a/bot/modules/study/badge_tracker.py b/bot/modules/study/badges/badge_tracker.py similarity index 99% rename from bot/modules/study/badge_tracker.py rename to bot/modules/study/badges/badge_tracker.py index cf69057a..34e97c3a 100644 --- a/bot/modules/study/badge_tracker.py +++ b/bot/modules/study/badges/badge_tracker.py @@ -13,7 +13,7 @@ from core.data import lions from utils.lib import strfdur from settings import GuildSettings -from .module import module +from ..module import module from .data import new_study_badges, study_badges @@ -287,6 +287,7 @@ async def study_badge_tracker(): """ while True: try: + Lion.sync() await update_study_badges() except Exception: # Unknown exception. Catch it so the loop doesn't die. diff --git a/bot/modules/study/data.py b/bot/modules/study/badges/data.py similarity index 92% rename from bot/modules/study/data.py rename to bot/modules/study/badges/data.py index 005765bb..eca5f220 100644 --- a/bot/modules/study/data.py +++ b/bot/modules/study/badges/data.py @@ -2,8 +2,6 @@ from cachetools import cached from data import Table, RowTable -untracked_channels = Table('untracked_channels') - study_badges = RowTable( 'study_badges', ('badgeid', 'guildid', 'roleid', 'required_time'), diff --git a/bot/modules/study/studybadge_cmd.py b/bot/modules/study/badges/studybadge_cmd.py similarity index 99% rename from bot/modules/study/studybadge_cmd.py rename to bot/modules/study/badges/studybadge_cmd.py index 99e28fec..1d9aea9c 100644 --- a/bot/modules/study/studybadge_cmd.py +++ b/bot/modules/study/badges/studybadge_cmd.py @@ -12,7 +12,7 @@ from wards import is_guild_admin from core.data import lions from settings import GuildSettings -from .module import module +from ..module import module from .data import study_badges, guild_role_cache, new_study_badges from .badge_tracker import _update_guild_badges diff --git a/bot/modules/study/timers/__init__.py b/bot/modules/study/timers/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/bot/modules/study/tracking/__init__.py b/bot/modules/study/tracking/__init__.py new file mode 100644 index 00000000..a80dd7a7 --- /dev/null +++ b/bot/modules/study/tracking/__init__.py @@ -0,0 +1,4 @@ +from . import data +from . import settings +from . import time_tracker +from . import session_tracker diff --git a/bot/modules/study/tracking/data.py b/bot/modules/study/tracking/data.py new file mode 100644 index 00000000..12bd8d77 --- /dev/null +++ b/bot/modules/study/tracking/data.py @@ -0,0 +1,3 @@ +from data import Table + +untracked_channels = Table('untracked_channels') diff --git a/bot/modules/study/tracking/session_tracker.py b/bot/modules/study/tracking/session_tracker.py new file mode 100644 index 00000000..e69de29b diff --git a/bot/modules/study/admin.py b/bot/modules/study/tracking/settings.py similarity index 100% rename from bot/modules/study/admin.py rename to bot/modules/study/tracking/settings.py diff --git a/bot/modules/study/time_tracker.py b/bot/modules/study/tracking/time_tracker.py similarity index 85% rename from bot/modules/study/time_tracker.py rename to bot/modules/study/tracking/time_tracker.py index 26afddd6..1cb35fa0 100644 --- a/bot/modules/study/time_tracker.py +++ b/bot/modules/study/tracking/time_tracker.py @@ -7,8 +7,8 @@ from time import time from meta import client from core import Lion -from .module import module -from . import admin +from ..module import module +from .settings import untracked_channels, hourly_reward, hourly_live_bonus last_scan = {} # guildid -> timestamp @@ -36,9 +36,9 @@ def _scan(guild): if interval > 60 * 20: return - untracked = admin.untracked_channels.get(guild.id).data - hourly_reward = admin.hourly_reward.get(guild.id).data - hourly_live_bonus = admin.hourly_live_bonus.get(guild.id).data + untracked = untracked_channels.get(guild.id).data + guild_hourly_reward = hourly_reward.get(guild.id).data + guild_hourly_live_bonus = hourly_live_bonus.get(guild.id).data channel_members = ( channel.members for channel in guild.voice_channels if channel.id not in untracked @@ -61,9 +61,9 @@ def _scan(guild): lion.addTime(interval, flush=False) # Add coins - hour_reward = hourly_reward + hour_reward = guild_hourly_reward if member.voice.self_stream or member.voice.self_video: - hour_reward += hourly_live_bonus + hour_reward += guild_hourly_live_bonus lion.addCoins(hour_reward * interval / (3600), flush=False) @@ -102,7 +102,7 @@ async def _study_tracker(): @module.launch_task async def launch_study_tracker(client): # First pre-load the untracked channels - await admin.untracked_channels.launch_task(client) + await untracked_channels.launch_task(client) asyncio.create_task(_study_tracker())