mirror of
https://github.com/craigerl/aprsd.git
synced 2025-06-16 21:32:26 -04:00
This patch adds the new APRSD Command Plugin architecture. All Comand plugins must implement the same object API, which includes plugin object is subclass of APRSDPluginBase version attribute command_regex attribute command method When an APRS command is detected, then the regex is run against the command. If the command_regex matches, then the plugin's command() method will be called. If the command() method returns a string, then that string is sent as a reply to the APRS caller. A new aprs.yml config section is added to support selecting which plugins to enable. If you want all plugins enabled, then omit "enabled_plugins" entirely from the aprs section of the config. To load custom plugins: 1) create a directory with an __init__.py file 2) Add a plugin.py file that contains your plugin Look at the exmaples directory for an example plugin.
19 lines
385 B
Python
19 lines
385 B
Python
import logging
|
|
|
|
from aprsd import plugin
|
|
|
|
LOG = logging.getLogger("APRSD")
|
|
|
|
|
|
class HelloPlugin(plugin.APRSDPluginBase):
|
|
"""Hello World."""
|
|
|
|
version = "1.0"
|
|
# matches any string starting with h or H
|
|
command_regex = "^[hH]"
|
|
|
|
def command(self, fromcall, message, ack):
|
|
LOG.info("HelloPlugin")
|
|
reply = "Hello '{}'".format(fromcall)
|
|
return reply
|