aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar jesopo2020-02-04 15:31:17 +0000
committerGravatar jesopo2020-02-04 15:31:17 +0000
commit8e611c451e027cbad68f2f852d1223b6af77e97a (patch)
treee65ca50977000c5db2f5ac6b5560f8a4594b8d0b /src
parentINFO log on successful SASL authentication (diff)
signature
switch module whitelist/blacklist to its own config file
Diffstat (limited to 'src')
-rw-r--r--src/IRCBot.py15
-rw-r--r--src/core_modules/modules.py17
2 files changed, 20 insertions, 12 deletions
diff --git a/src/IRCBot.py b/src/IRCBot.py
index 1dd96f4b..f5b66b23 100644
--- a/src/IRCBot.py
+++ b/src/IRCBot.py
@@ -6,8 +6,8 @@ URL: str = "https://bitbot.dev"
import enum, queue, os, queue, select, socket, sys, threading, time, traceback
import typing, uuid
-from src import EventManager, Exports, IRCServer, Logging, ModuleManager
-from src import PollHook, PollSource, Socket, Timers, utils
+from src import Config, EventManager, Exports, IRCServer, Logging
+from src import ModuleManager, PollHook, PollSource, Socket, Timers, utils
class TriggerResult(enum.Enum):
Return = 1
@@ -147,9 +147,16 @@ class Bot(object):
self.log.critical("panic() called: %s", [reason], exc_info=exc_info)
sys.exit(utils.consts.Exit.PANIC)
+ def get_config(self, name: str) -> Config.Config:
+ path = os.path.join(self.data_directory, "%s.conf" % name)
+ config = Config.Config(name, path)
+ config.load()
+ return config
+
def _module_lists(self):
- whitelist = self.config.get_list("module-whitelist")
- blacklist = self.config.get_list("module-blacklist")
+ module_lists = self.get_config("modules")
+ whitelist = module_lists.get_list("whitelist")
+ blacklist = module_lists.get_list("blacklist")
return whitelist, blacklist
diff --git a/src/core_modules/modules.py b/src/core_modules/modules.py
index 1259c520..1a0681f0 100644
--- a/src/core_modules/modules.py
+++ b/src/core_modules/modules.py
@@ -102,10 +102,11 @@ class Module(ModuleManager.BaseModule):
event["stderr"].write(result.message)
def _get_blacklist(self):
- return self.bot.config.get_list("module-blacklist")
- def _save_blacklist(self, modules):
- self.bot.config.set_list("module-blacklist", modules)
- self.bot.config.save()
+ config = self.bot.get_config("modules")
+ return config, config.get_list("blacklist")
+ def _save_blacklist(self, config, modules):
+ config.set_list("blacklist", sorted(modules))
+ config.save()
@utils.hook("received.command.enablemodule")
@utils.kwarg("min_args", 1)
@@ -115,12 +116,12 @@ class Module(ModuleManager.BaseModule):
def enable(self, event):
name = event["args_split"][0].lower()
- blacklist = self._get_blacklist()
+ config, blacklist = self._get_blacklist()
if not name in blacklist:
raise utils.EventError("Module '%s' isn't disabled" % name)
blacklist.remove(name)
- self._save_blacklist(blacklist)
+ self._save_blacklist(config, blacklist)
event["stdout"].write("Module '%s' has been enabled and can now "
"be loaded" % name)
@@ -136,11 +137,11 @@ class Module(ModuleManager.BaseModule):
self.bot.modules.unload_module(name)
and_unloaded = " and unloaded"
- blacklist = self._get_blacklist()
+ config, blacklist = self._get_blacklist()
if name in blacklist:
raise utils.EventError("Module '%s' is already disabled" % name)
blacklist.append(name)
- self._save_blacklist(blacklist)
+ self._save_blacklist(config, blacklist)
event["stdout"].write("Module '%s' has been disabled%s" % (
name, and_unloaded))