2023-04-27 23:58:29 +00:00
|
|
|
from log_utils import get_logger
|
|
|
|
|
|
|
|
logger = get_logger(name="Plugins")
|
2023-04-27 17:04:54 +00:00
|
|
|
|
2023-05-27 18:02:52 +00:00
|
|
|
sorted_active_plugins = []
|
2023-04-27 17:04:54 +00:00
|
|
|
|
|
|
|
|
|
|
|
def load_plugins():
|
2023-05-17 23:31:33 +00:00
|
|
|
from plugins.health_plugin import Plugin as HealthPlugin
|
|
|
|
from plugins.map_plugin import Plugin as MapPlugin
|
|
|
|
from plugins.mesh_relay_plugin import Plugin as MeshRelayPlugin
|
|
|
|
from plugins.ping_plugin import Plugin as PingPlugin
|
|
|
|
from plugins.telemetry_plugin import Plugin as TelemetryPlugin
|
|
|
|
from plugins.weather_plugin import Plugin as WeatherPlugin
|
|
|
|
from plugins.help_plugin import Plugin as HelpPlugin
|
2023-05-18 01:06:11 +00:00
|
|
|
from plugins.nodes_plugin import Plugin as NodesPlugin
|
2023-05-27 18:02:52 +00:00
|
|
|
from plugins.drop_plugin import Plugin as DropPlugin
|
|
|
|
from plugins.debug_plugin import Plugin as DebugPlugin
|
2023-05-17 23:31:33 +00:00
|
|
|
|
2023-05-27 18:02:52 +00:00
|
|
|
global sorted_active_plugins
|
|
|
|
if sorted_active_plugins:
|
|
|
|
return sorted_active_plugins
|
2023-05-14 02:05:32 +00:00
|
|
|
|
|
|
|
plugins = [
|
|
|
|
HealthPlugin(),
|
|
|
|
MapPlugin(),
|
|
|
|
MeshRelayPlugin(),
|
|
|
|
PingPlugin(),
|
|
|
|
TelemetryPlugin(),
|
|
|
|
WeatherPlugin(),
|
2023-05-17 23:31:33 +00:00
|
|
|
HelpPlugin(),
|
2023-05-18 01:06:11 +00:00
|
|
|
NodesPlugin(),
|
2023-05-27 18:02:52 +00:00
|
|
|
DropPlugin(),
|
|
|
|
DebugPlugin(),
|
2023-05-14 02:05:32 +00:00
|
|
|
]
|
|
|
|
|
2023-05-27 18:02:52 +00:00
|
|
|
active_plugins = []
|
2023-05-14 02:05:32 +00:00
|
|
|
for plugin in plugins:
|
|
|
|
if plugin.config["active"]:
|
2023-05-27 18:02:52 +00:00
|
|
|
plugin.priority = (
|
|
|
|
plugin.config["priority"]
|
|
|
|
if "priority" in plugin.config
|
|
|
|
else plugin.priority
|
|
|
|
)
|
2023-05-14 02:05:32 +00:00
|
|
|
active_plugins.append(plugin)
|
2023-06-03 02:32:10 +00:00
|
|
|
plugin.start()
|
2023-05-14 02:05:32 +00:00
|
|
|
|
2023-05-27 18:02:52 +00:00
|
|
|
sorted_active_plugins = sorted(active_plugins, key=lambda plugin: plugin.priority)
|
|
|
|
return sorted_active_plugins
|