kopia lustrzana https://github.com/mate-dev/meshtastic-matrix-relay
65 wiersze
1.9 KiB
Python
65 wiersze
1.9 KiB
Python
from log_utils import get_logger
|
|
|
|
logger = get_logger(name="Plugins")
|
|
|
|
sorted_active_plugins = []
|
|
|
|
|
|
def load_plugins():
|
|
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
|
|
from plugins.nodes_plugin import Plugin as NodesPlugin
|
|
from plugins.drop_plugin import Plugin as DropPlugin
|
|
from plugins.debug_plugin import Plugin as DebugPlugin
|
|
from plugins.chutilz_plugin import Plugin as ChutilzPlugin
|
|
from plugins.airutilz_plugin import Plugin as AirutilzPlugin
|
|
from plugins.voltage_plugin import Plugin as VoltagePlugin
|
|
from plugins.battery_plugin import Plugin as BatteryPlugin
|
|
from plugins.snr_plugin import Plugin as SNRPlugin
|
|
|
|
|
|
global sorted_active_plugins
|
|
if sorted_active_plugins:
|
|
return sorted_active_plugins
|
|
|
|
plugins = [
|
|
HealthPlugin(),
|
|
MapPlugin(),
|
|
MeshRelayPlugin(),
|
|
PingPlugin(),
|
|
TelemetryPlugin(),
|
|
WeatherPlugin(),
|
|
HelpPlugin(),
|
|
NodesPlugin(),
|
|
DropPlugin(),
|
|
DebugPlugin(),
|
|
ChutilzPlugin(),
|
|
AirutilzPlugin(),
|
|
VoltagePlugin(),
|
|
BatteryPlugin(),
|
|
SNRPlugin(),
|
|
|
|
|
|
|
|
]
|
|
|
|
active_plugins = []
|
|
for plugin in plugins:
|
|
if plugin.config["active"]:
|
|
plugin.priority = (
|
|
plugin.config["priority"]
|
|
if "priority" in plugin.config
|
|
else plugin.priority
|
|
)
|
|
active_plugins.append(plugin)
|
|
plugin.start()
|
|
|
|
sorted_active_plugins = sorted(active_plugins, key=lambda plugin: plugin.priority)
|
|
return sorted_active_plugins
|
|
|