kopia lustrzana https://github.com/mate-dev/meshtastic-matrix-relay
34 wiersze
905 B
Python
34 wiersze
905 B
Python
import sys
|
|
import importlib
|
|
from pathlib import Path
|
|
from log_utils import get_logger
|
|
|
|
logger = get_logger(name="Plugins")
|
|
|
|
plugins = []
|
|
|
|
|
|
def load_plugins():
|
|
global plugins
|
|
if plugins:
|
|
return plugins
|
|
|
|
plugins = []
|
|
plugin_dirs = [Path("plugins"), Path("custom_plugins")]
|
|
|
|
for plugin_folder in plugin_dirs:
|
|
sys.path.insert(0, str(plugin_folder.resolve()))
|
|
|
|
for plugin_file in plugin_folder.glob("*.py"):
|
|
plugin_name = plugin_file.stem
|
|
if plugin_name == "__init__":
|
|
continue
|
|
plugin_module = importlib.import_module(plugin_name)
|
|
if hasattr(plugin_module, "Plugin"):
|
|
plugin = plugin_module.Plugin()
|
|
if plugin.config["active"]:
|
|
logger.debug(f"Loaded plugin {plugin_folder/plugin_name}")
|
|
plugins.append(plugin)
|
|
|
|
return plugins
|