From 1334eded622aad15b85cf313360d237d540786e7 Mon Sep 17 00:00:00 2001 From: Adam Fourney Date: Thu, 26 Sep 2024 11:24:16 -0700 Subject: [PATCH] Added an option to disable the loading of the help plugin. --- aprsd/conf/common.py | 5 +++++ aprsd/plugin.py | 6 +++++- aprsd/threads/rx.py | 18 ++++++++++++++++-- 3 files changed, 26 insertions(+), 3 deletions(-) diff --git a/aprsd/conf/common.py b/aprsd/conf/common.py index 89725b4..e6eee38 100644 --- a/aprsd/conf/common.py +++ b/aprsd/conf/common.py @@ -136,6 +136,11 @@ aprsd_opts = [ default=True, help="Set this to False, to disable logging of packets to the log file.", ), + cfg.BoolOpt( + "load_help_plugin", + default=True, + help="Set this to False to disable the help plugin.", + ), ] watch_list_opts = [ diff --git a/aprsd/plugin.py b/aprsd/plugin.py index 6c5f973..5574463 100644 --- a/aprsd/plugin.py +++ b/aprsd/plugin.py @@ -473,9 +473,13 @@ class PluginManager: del self._pluggy_pm self.setup_plugins() - def setup_plugins(self, load_help_plugin=True): + def setup_plugins(self, load_help_plugin=None): """Create the plugin manager and register plugins.""" + # If load_help_plugin is not specified, load it from the config + if load_help_plugin is None: + load_help_plugin = CONF.load_help_plugin + LOG.info("Loading APRSD Plugins") # Help plugin is always enabled. if load_help_plugin: diff --git a/aprsd/threads/rx.py b/aprsd/threads/rx.py index 3c88958..4002541 100644 --- a/aprsd/threads/rx.py +++ b/aprsd/threads/rx.py @@ -328,8 +328,22 @@ class APRSDPluginProcessPacketThread(APRSDProcessPacketThread): # If the message was for us and we didn't have a # response, then we send a usage statement. if to_call == CONF.callsign and not replied: - LOG.warning("Sending help!") - message_text = "Unknown command! Send 'help' message for help" + + # Is the help plugin installed? + help_available = False + for p in pm.get_message_plugins(): + if isinstance(p, plugin.HelpPlugin): + help_available = True + break + + # Tailor the messages accordingly + if help_available: + LOG.warning("Sending help!") + message_text = "Unknown command! Send 'help' message for help" + else: + LOG.warning("Unknown command!") + message_text = "Unknown command!" + tx.send( packets.MessagePacket( from_call=CONF.callsign,