aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar jesopo2019-06-19 23:11:56 +0100
committerGravatar jesopo2019-06-19 23:11:56 +0100
commit70839e66ba9f482f25768247629eff4cc78643be (patch)
treea505a1243267704212166177ab00ea3e87dfbb68
parentDifferentiate between module "not found" and "not loaded" (diff)
signature
Catch a module not being "found" in modules.py
-rw-r--r--modules/modules.py10
1 files changed, 7 insertions, 3 deletions
diff --git a/modules/modules.py b/modules/modules.py
index 557e82ba..25a2c289 100644
--- a/modules/modules.py
+++ b/modules/modules.py
@@ -6,8 +6,10 @@ from src import ModuleManager, utils
class Module(ModuleManager.BaseModule):
def _catch(self, name, func):
try:
- func()
+ return func()
except ModuleManager.ModuleNotFoundException:
+ raise utils.EventError("Module '%s' not found" % name)
+ except ModuleManager.ModuleNotLoadedException:
raise utils.EventError("Module '%s' isn't loaded" % name)
except ModuleManager.ModuleWarning as warning:
raise utils.EventError("Module '%s' not loaded: %s" % (
@@ -26,7 +28,8 @@ class Module(ModuleManager.BaseModule):
name = event["args_split"][0].lower()
if name in self.bot.modules.modules:
raise utils.EventError("Module '%s' is already loaded" % name)
- definition = self.bot.modules.find_module(name)
+ definition = self._catch(name,
+ lambda: self.bot.modules.find_module(name))
self._catch(name, lambda: self.bot.modules.load_module(self.bot, definition))
event["stdout"].write("Loaded '%s'" % name)
@@ -47,7 +50,8 @@ class Module(ModuleManager.BaseModule):
def _reload(self, name):
self.bot.modules.unload_module(name)
- definition = self.bot.modules.find_module(name)
+ definition = self._catch(name,
+ lambda: self.bot.modules.find_module(name))
self.bot.modules.load_module(self.bot, definition)
@utils.hook("received.command.reloadmodule", min_args=1)
def reload(self, event):