craigerl / aprsd

Amateur radio APRS daemon which listens for messages and responds. By KM6LYW.
Apache License 2.0
120 stars 19 forks source link

Refactor the plugin interface and manager #65

Closed hemna closed 2 years ago

hemna commented 2 years ago

Add new watchlist feature This patch adds a new optional feature called Watch list. Aprsd will filter IN all aprs packets from a list of callsigns. APRSD will keep track of the last time a callsign has been seen. When the configured timeout value has been reached, the next time a callsign is seen, APRSD will send the next packet from that callsign through the new notification plugins list.

The new BaseNotifyPlugin is the default core APRSD notify based plugin. When it gets a packet it will construct a reply message to be sent to the configured alert callsign to alert them that the seen callsign is now on the APRS network.

This basically acts as a notification that your watched callsign list is available on APRS.

The new configuration options: aprsd: watch_list:

The callsign to send a message to once a watch list callsign

    # is now seen on APRS-IS
    alert_callsign: NOCALL
    # The time in seconds to wait for notification.
    # The default is 12 hours.
    alert_time_seconds: 43200
    # The list of callsigns to watch for
    callsigns:
      - WB4BOR
      - KFART
    # Enable/disable this feature
    enabled: false
    # The list of notify based plugins to load for
    # processing a new seen packet from a callsign.
    enabled_plugins:
    - aprsd.plugins.notify.BaseNotifyPlugin

This patch also adds a new section in the Admin UI for showing the watch list and the age of the last seen packet for each callsing since APRSD startup.