Skip to content

Commit 938cde5

Browse files
committed
Clean up internal config cache
1 parent 403e001 commit 938cde5

File tree

4 files changed

+22
-22
lines changed

4 files changed

+22
-22
lines changed

bot.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,6 @@
4949

5050
class ModmailBot(commands.Bot):
5151

52-
mutable_config_keys = ['prefix', 'status', 'guild_id', 'mention', 'autoupdates', 'modmail_guild_id']
53-
5452
def __init__(self):
5553
super().__init__(command_prefix=self.get_pre)
5654
self.version = __version__

cogs/utility.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -355,11 +355,11 @@ async def _set(self, ctx, key: str.lower, *, value):
355355
description=f'Set `{key}` to `{value}`'
356356
)
357357

358-
if key not in self.bot.mutable_config_keys:
358+
if key not in self.bot.config.allowed_to_change_in_command:
359359
em.title = 'Error'
360360
em.color = discord.Color.green()
361361
em.description = f'{key} is an invalid key.'
362-
valid_keys = [f'`{k}`' for k in self.bot.mutable_config_keys]
362+
valid_keys = [f'`{k}`' for k in self.bot.config.allowed_to_change_in_command]
363363
em.add_field(name='Valid keys', value=', '.join(valid_keys))
364364
else:
365365
await self.bot.config.update({key: value})
@@ -375,11 +375,11 @@ async def _del(self, ctx, key: str.lower):
375375
description=f'Set `{key}` to nothing.'
376376
)
377377

378-
if key not in self.bot.mutable_config_keys:
378+
if key not in self.bot.config.allowed_to_change_in_command:
379379
em.title = 'Error'
380380
em.color = discord.Color.green()
381381
em.description = f'{key} is an invalid key.'
382-
valid_keys = [f'`{k}`' for k in self.bot.mutable_config_keys]
382+
valid_keys = [f'`{k}`' for k in self.bot.config.allowed_to_change_in_command]
383383
em.add_field(name='Valid keys', value=', '.join(valid_keys))
384384
else:
385385
self.bot.config.cache[key] = None
@@ -393,11 +393,11 @@ async def get(self, ctx, key=None):
393393
em = discord.Embed(color=discord.Color.green())
394394
em.set_author(name='Current config', icon_url=self.bot.user.avatar_url)
395395

396-
if key and key not in self.bot.mutable_config_keys:
396+
if key and key not in self.bot.config.allowed_to_change_in_command:
397397
em.title = 'Error'
398398
em.color = discord.Color.green()
399399
em.description = f'`{key}` is an invalid key.'
400-
valid_keys = [f'`{k}`' for k in self.bot.mutable_config_keys]
400+
valid_keys = [f'`{k}`' for k in self.bot.config.allowed_to_change_in_command]
401401
em.add_field(name='Valid keys', value=', '.join(valid_keys))
402402
elif key:
403403
em.set_author(name='Config variable', icon_url=self.bot.user.avatar_url)
@@ -407,7 +407,7 @@ async def get(self, ctx, key=None):
407407

408408
config = {
409409
k: v for k, v in self.bot.config.cache.items()
410-
if v and k in self.bot.mutable_config_keys
410+
if v and k in self.bot.config.allowed_to_change_in_command
411411
}
412412

413413
for k, v in reversed(list(config.items())):

core/api.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,9 @@ def get_config(self):
6868
return self.request(self.config)
6969

7070
def update_config(self, data):
71-
valid_keys = ['prefix', 'status', 'guild_id', 'mention', 'snippets', 'aliases', 'autoupdates', 'modmail_guild_id']
71+
72+
valid_keys = self.app.config.valid_keys - {'token', 'modmail_api_token', 'modmail_guild_id', 'guild_id'}
73+
7274
data = {k: v for k, v in data.items() if k in valid_keys}
7375
return self.request(self.config, method='PATCH', payload=data)
7476

core/config.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,17 @@
77
class ConfigManager:
88
"""Class that manages a cached configuration"""
99

10+
valid_keys = {
11+
'prefix', 'status', 'guild_id',
12+
'mention', 'disable_autoupdates',
13+
'modmail_guild_id', 'token', 'snippets',
14+
'aliases', 'owners', 'modmail_api_token'
15+
}
16+
17+
18+
allowed_to_change_in_command = valid_keys - {'token', 'snippets', 'aliases', 'owners', 'modmail_api_token'}
19+
20+
1021
def __init__(self, bot):
1122
self.bot = bot
1223
self.cache = box.Box()
@@ -24,7 +35,7 @@ def populate_cache(self):
2435
data = {}
2536
finally:
2637
data.update(os.environ)
27-
data = {k.lower(): v for k, v in data.items()}
38+
data = {k.lower(): v for k, v in data.items() if k.lower() in self.valid_keys}
2839
self.cache = data
2940

3041
self.bot.loop.create_task(self.refresh())
@@ -52,14 +63,3 @@ def __getitem__(self, key):
5263

5364
def get(self, value, default=None):
5465
return self.cache.get(value) or default
55-
56-
@property
57-
def modified(self):
58-
return self._modified
59-
60-
@modified.setter
61-
def modified(self, flag):
62-
"""If set to true, update() will be called"""
63-
if flag is True:
64-
asyncio.create_task(self.update())
65-
self._modified = True

0 commit comments

Comments
 (0)