From 1c296826d7e20def21ec577c71590dee4bb1c0e1 Mon Sep 17 00:00:00 2001 From: jesopo Date: Sun, 12 May 2019 14:10:59 +0100 Subject: Move module black/white list to IRCBot, allow "safe" loading of all modules --- src/ModuleManager.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'src/ModuleManager.py') diff --git a/src/ModuleManager.py b/src/ModuleManager.py index f764b445..49d00772 100644 --- a/src/ModuleManager.py +++ b/src/ModuleManager.py @@ -193,14 +193,26 @@ class ModuleManager(object): return loaded_module def load_modules(self, bot: "IRCBot.Bot", whitelist: typing.List[str]=[], - blacklist: typing.List[str]=[]): + blacklist: typing.List[str]=[], safe: bool=False + ) -> typing.Tuple[typing.List[str], typing.List[str]]: + fail = [] + success = [] for type, path in self.list_modules(): name = self._module_name(path) if name in whitelist or (not whitelist and not name in blacklist): try: self.load_module(bot, name) except ModuleWarning: - pass + fail.append(name) + continue + except Exception as e: + if safe: + fail.append(name) + continue + else: + raise + success.append(name) + return success, fail def unload_module(self, name: str): if not name in self.modules: -- cgit v1.3.1-10-gc9f91