1
0
mirror of https://github.com/craigerl/aprsd.git synced 2024-12-19 08:05:56 -05:00

Merge pull request #68 from craigerl/plugins_multiple_msgs

Enable multiple replies for plugins
This commit is contained in:
Walter A. Boring IV 2021-08-13 12:45:52 -04:00 committed by GitHub
commit 911730b28a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -253,21 +253,35 @@ class APRSDRXThread(APRSDThread):
try:
results = pm.run(packet)
for reply in results:
found_command = True
# A plugin can return a null message flag which signals
# us that they processed the message correctly, but have
# nothing to reply with, so we avoid replying with a usage string
if reply is not messaging.NULL_MESSAGE:
LOG.debug("Sending '{}'".format(reply))
if isinstance(reply, list):
# one of the plugins wants to send multiple messages
found_command = True
for subreply in reply:
LOG.debug("Sending '{}'".format(subreply))
msg = messaging.TextMessage(
self.config["aprs"]["login"],
fromcall,
subreply,
)
self.msg_queues["tx"].put(msg)
msg = messaging.TextMessage(
self.config["aprs"]["login"],
fromcall,
reply,
)
self.msg_queues["tx"].put(msg)
else:
LOG.debug("Got NULL MESSAGE from plugin")
found_command = True
# A plugin can return a null message flag which signals
# us that they processed the message correctly, but have
# nothing to reply with, so we avoid replying with a usage string
if reply is not messaging.NULL_MESSAGE:
LOG.debug("Sending '{}'".format(reply))
msg = messaging.TextMessage(
self.config["aprs"]["login"],
fromcall,
reply,
)
self.msg_queues["tx"].put(msg)
else:
LOG.debug("Got NULL MESSAGE from plugin")
if not found_command:
plugins = pm.get_msg_plugins()