Merge pull request #62 from StudyLions/rewrite

Admin and Moderation
This commit is contained in:
Interitio
2023-10-24 14:34:52 +03:00
committed by GitHub
110 changed files with 3223 additions and 3016 deletions

View File

@@ -16,7 +16,7 @@ from meta.app import appname
from meta.monitor import ComponentMonitor, ComponentStatus, StatusLevel
from utils.lib import utc_now, error_embed
from wards import low_management_ward, sys_admin_ward
from wards import low_management_ward, sys_admin_ward, low_management_iward
from . import babel, logger
from .data import TextTrackerData
@@ -116,7 +116,7 @@ class TextTrackerCog(LionCog):
"Attempting to load the TextTrackerCog before ConfigCog! Failed to crossload configuration group."
)
else:
self.crossload_group(self.configure_group, configcog.configure_group)
self.crossload_group(self.configure_group, configcog.config_group)
if self.bot.is_ready():
await self.initialise()
@@ -318,7 +318,6 @@ class TextTrackerCog(LionCog):
xp_per_period=TextTrackerSettings.XPPerPeriod._desc,
word_xp=TextTrackerSettings.WordXP._desc,
)
@appcmds.default_permissions(manage_guild=True)
@low_management_ward
async def configure_text_tracking_cmd(self, ctx: LionContext,
xp_per_period: Optional[appcmds.Range[int, 0, 2**15]] = None,

View File

@@ -11,6 +11,7 @@ from meta.sharding import THIS_SHARD
from meta.logger import log_wrap
from core.data import CoreData
from babel.translator import ctx_translator
from wards import low_management_iward
from . import babel, logger
from .data import TextTrackerData
@@ -28,7 +29,8 @@ class TextTrackerSettings(SettingGroup):
"""
class XPPerPeriod(ModelData, IntegerSetting):
setting_id = 'xp_per_period'
_set_cmd = 'configure message_exp'
_set_cmd = 'config message_exp'
_write_ward = low_management_iward
_display_name = _p('guildset:xp_per_period', "xp_per_5min")
_desc = _p(
@@ -60,7 +62,8 @@ class TextTrackerSettings(SettingGroup):
class WordXP(ModelData, IntegerSetting):
setting_id = 'word_xp'
_set_cmd = 'configure message_exp'
_set_cmd = 'config message_exp'
_write_ward = low_management_iward
_display_name = _p('guildset:word_xp', "xp_per_100words")
_desc = _p(
@@ -91,6 +94,7 @@ class TextTrackerSettings(SettingGroup):
class UntrackedTextChannels(ListData, ChannelListSetting):
setting_id = 'untracked_text_channels'
_write_ward = low_management_iward
_display_name = _p('guildset:untracked_text_channels', "untracked_text_channels")
_desc = _p(

View File

@@ -35,6 +35,7 @@ class TextTrackerConfigUI(ConfigUI):
async def untracked_channels_menu(self, selection: discord.Interaction, selected):
await selection.response.defer()
setting = self.instances[2]
await setting.interaction_check(setting.parent_id, selection)
setting.value = selected.values
await setting.write()
@@ -86,7 +87,7 @@ class TextTrackerConfigUI(ConfigUI):
class TextTrackerDashboard(DashboardSection):
section_name = _p(
'dash:text_tracking|title',
"Message XP configuration ({commands[configure message_exp]})",
"Message XP configuration ({commands[config message_exp]})",
)
_option_name = _p(
"dash:text_tracking|dropdown|placeholder",

View File

@@ -133,7 +133,7 @@ class VoiceTrackerCog(LionCog):
"Attempting to load VoiceTrackerCog before ConfigCog! Cannot crossload configuration group."
)
else:
self.crossload_group(self.configure_group, configcog.configure_group)
self.crossload_group(self.configure_group, configcog.config_group)
if self.bot.is_ready():
await self.initialise()
@@ -867,7 +867,6 @@ class VoiceTrackerCog(LionCog):
hourly_live_bonus=VoiceTrackerSettings.HourlyLiveBonus._desc,
daily_voice_cap=VoiceTrackerSettings.DailyVoiceCap._desc,
)
@appcmds.default_permissions(manage_guild=True)
@low_management_ward
async def configure_voice_tracking_cmd(self, ctx: LionContext,
hourly_reward: Optional[int] = None, # TODO: Change these to Ranges

View File

@@ -14,6 +14,7 @@ from meta.sharding import THIS_SHARD
from meta.logger import log_wrap
from utils.lib import MessageArgs
from utils.ui import LeoUI, ConfigUI, DashboardSection
from wards import low_management_iward
from core.data import CoreData
from core.lion_guild import VoiceMode
@@ -35,7 +36,8 @@ class VoiceTrackerSettings(SettingGroup):
class UntrackedChannels(ListData, ChannelListSetting):
setting_id = 'untracked_channels'
_event = 'guildset_untracked_channels'
_set_cmd = 'configure voice_rewards'
_set_cmd = 'config voice_rewards'
_write_ward = low_management_iward
_display_name = _p('guildset:untracked_channels', "untracked_channels")
_desc = _p(
@@ -112,7 +114,8 @@ class VoiceTrackerSettings(SettingGroup):
class HourlyReward(ModelData, IntegerSetting):
setting_id = 'hourly_reward'
_event = 'on_guildset_hourly_reward'
_set_cmd = 'configure voice_rewards'
_set_cmd = 'config voice_rewards'
_write_ward = low_management_iward
_display_name = _p('guildset:hourly_reward', "hourly_reward")
_desc = _p(
@@ -192,7 +195,8 @@ class VoiceTrackerSettings(SettingGroup):
"""
setting_id = 'hourly_live_bonus'
_event = 'on_guildset_hourly_live_bonus'
_set_cmd = 'configure voice_rewards'
_set_cmd = 'config voice_rewards'
_write_ward = low_management_iward
_display_name = _p('guildset:hourly_live_bonus', "hourly_live_bonus")
_desc = _p(
@@ -243,7 +247,8 @@ class VoiceTrackerSettings(SettingGroup):
class DailyVoiceCap(ModelData, DurationSetting):
setting_id = 'daily_voice_cap'
_event = 'on_guildset_daily_voice_cap'
_set_cmd = 'configure voice_rewards'
_set_cmd = 'config voice_rewards'
_write_ward = low_management_iward
_display_name = _p('guildset:daily_voice_cap', "daily_voice_cap")
_desc = _p(
@@ -465,6 +470,7 @@ class VoiceTrackerConfigUI(ConfigUI):
async def untracked_channels_menu(self, selection: discord.Interaction, selected):
await selection.response.defer()
setting = self.instances[3]
await setting.interaction_check(setting.parent_id, selection)
setting.value = selected.values
await setting.write()
@@ -528,7 +534,7 @@ class VoiceTrackerConfigUI(ConfigUI):
class VoiceTrackerDashboard(DashboardSection):
section_name = _p(
'dash:voice_tracker|title',
"Voice Tracker Configuration ({commands[configure voice_rewards]})"
"Voice Tracker Configuration ({commands[config voice_rewards]})"
)
_option_name = _p(
"dash:voice_tracking|dropdown|placeholder",