refactor for simplicity
This commit is contained in:
parent
1daf98c919
commit
328d297ed8
@ -25,29 +25,24 @@ class PluginLoader():
|
||||
def __init__(self, api) -> None:
|
||||
self.api = api
|
||||
self.plugins = []
|
||||
self.plugins_dir = os.path.join(os.path.dirname(__file__), 'plugins')
|
||||
self._prefix = 'rsbbs.plugins'
|
||||
self._identifier = 'plugin'
|
||||
|
||||
def load_plugins(self) -> None:
|
||||
# Path to command plugin directory
|
||||
plugins_dir = os.path.join(os.path.dirname(__file__), 'plugins')
|
||||
|
||||
@property
|
||||
def _plugin_dirs(self) -> list:
|
||||
# Discover all subdirectories in the plugins directory
|
||||
plugin_dirs = [d
|
||||
for d in os.listdir(plugins_dir)
|
||||
if os.path.isdir(os.path.join(plugins_dir, d))
|
||||
for d in os.listdir(self.plugins_dir)
|
||||
if os.path.isdir(os.path.join(self.plugins_dir, d))
|
||||
and not d.startswith('__')]
|
||||
return plugin_dirs
|
||||
|
||||
if self.api.config.debug:
|
||||
print(f"Plugin dirs: {plugin_dirs}")
|
||||
|
||||
# Loop over each plugin directory
|
||||
for plugin_dir in plugin_dirs:
|
||||
def load_plugin(self, plugin_dir) -> None:
|
||||
try:
|
||||
# Import the module containing the plugin class
|
||||
if self.api.config.debug:
|
||||
print(f"Import rsbbs.plugins.{plugin_dir}.plugin")
|
||||
|
||||
plugin_module = importlib.import_module(
|
||||
f"rsbbs.plugins.{plugin_dir}.plugin")
|
||||
f"{self._prefix}.{plugin_dir}.{self._identifier}")
|
||||
|
||||
# Get a reference to the plugin class
|
||||
plugin_class = plugin_module.Plugin
|
||||
@ -59,8 +54,9 @@ class PluginLoader():
|
||||
# Add the loaded plugin to the list of plugins
|
||||
self.plugins.append(plugin)
|
||||
except Exception as e:
|
||||
if self.api.config.debug:
|
||||
print(f"{e}")
|
||||
raise
|
||||
else:
|
||||
continue
|
||||
|
||||
def load_plugins(self) -> None:
|
||||
# Loop over each plugin directory
|
||||
for plugin_dir in self._plugin_dirs:
|
||||
self.load_plugin(plugin_dir)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user