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

380 Commits

Author SHA1 Message Date
8b5f21eece Rebase from master and run gray
This patch is a rebase of master after the introduction
of switching from black to gray code formatting.
2021-08-23 14:08:14 -04:00
8e627c98b3 Added tracking plugin processing
This patch adds plugin rx/tx processing of packets.
This tracks how many messages a plugin processes (recieves) and
how many packets result in a plugin sending a message out.

This patch also adds a new plugins tab on the admin page.
2021-08-23 13:45:01 -04:00
86777d838c Added threads functions to APRSDPluginBase
This patch updates the APRSDPluginBase class to include
standard methods for allowing plugins to create, start, stop
threads that the plugin might need/use.  Also update the aprsd-dev
to correctly start the threads and stop them for testing plugin
functionality.
Also added more unit tests and fake objects for unit tests.
2021-08-23 13:44:58 -04:00
5f4cf89733 Refactor Message processing and MORE
This patch refactors how the recieved message processing happens.
We now handle all incoming packets the same.  Removed the notification
thread to handle the watchlist packets.  This is now done with a
unified plugins architecture that allows different capabilities
via the new plugin structure.  All packets sent to us will be
sent through all of the plugins.  It's the plugins job to decide what to
do with that packet or ignore it.

Email is no longer a special case for the most part.  All email
functions have been migrated to the EmailPlugin, including starting the
EmailThread, which works in the background to check for new emails and
send those to the registered callsign.   The EmailPlugin now starts the
EmailThread itself.

All plugins are now build on the new APRSDPluginBase which has a common
set of features.  The APRSDPluginBase calls self.setup() upon creation,
which allows all plugins to do whatever they want for initiali startup.
The EmailPlugin uses setup() to start the EmailThread if email is
enabled.
2021-08-23 13:43:53 -04:00
e175f77347 Use Gray instead of Black for code formatting.
The Black code formatter sucks with respect to function
declarations with a lot of params.  Completely unreadable.
2021-08-23 13:32:09 -04:00
d6643a8e96 Updated tox.ini
this patch updates tox.ini to support coverage tests.
2021-08-19 19:23:12 -04:00
f1f8aed8c4 Fixed LOG.debug issue in weather plugin 2021-08-19 19:07:45 -04:00
2b694462f0 Updated slack channel link 2021-08-19 16:53:02 -04:00
e8ffaa92b6 Cleanup of the README.rst
Added badge section.
2021-08-19 16:45:23 -04:00
d71b0df314 Fixed aprsd-dev
This patch fixes running the aprsd-dev plugin development tool.
It currently only works for message based plugins.
2021-08-18 20:14:03 -04:00
691b18fd1c Prep for v2.1.0
Update the Changelog for v2.1.0
2021-08-13 13:11:49 -04:00
911730b28a
Merge pull request #68 from craigerl/plugins_multiple_msgs
Enable multiple replies for plugins
2021-08-13 12:45:52 -04:00
349250685b Enable multiple replies for plugins
This patch adds the ability for plugins to send multiple messages
back in response to a command/message.  The plugin simple needs
to return a list of messages (Strings).  Each string in that list
will result in a separate message being sent back to the originator
of the message.
2021-08-13 12:36:48 -04:00
840c8a990e Put in a fix for aprslib parse exceptions
This patch adds a fix for the aprslib consumer function
to ensure that we don't bail when logging a ParseError
2021-08-13 10:31:45 -04:00
ed4995b6eb Fixed time plugin 2021-07-29 20:17:58 -04:00
6740ff80be Updated the charts Added the packets chart
This patch adds the APRS Packets chart to the charts admin ui.
Also moves the raw json as it's own tab
2021-07-22 20:44:20 -04:00
be8179415a Added showing symbol images to watch list
This patch updates the Admin UI to display the APRS icon symbol
associated with a mic-e packet on the watch list tab for all
entries in the watch list.
2021-07-21 09:21:04 -04:00
b4713b2694 Updated docs for 2.0.0 2021-07-17 15:15:52 -04:00
b606495fbf
Merge pull request #66 from craigerl/notify_rework
Reworked the notification threads and admin ui.
2021-07-17 14:45:18 -04:00
2fceba10e1 Reworked the notification threads and admin ui.
This patch updates the notification thread to send all packets
through the notification plugins.   The plugins themselves need to
do smart filter to not reply to every packet.  This allows for
more interesting plugins.

Also fixed an issue with the messages tab in the admin ui, not
showing all of the recieved packets.   The messages tab now also
sees all the packets that aprsd recieves.
2021-07-17 14:30:29 -04:00
3d38402be2 Fixed small bug with packets get_packet_type
This fixes an issue with trying to decode the packet type.
Also updated some of the log entries.
2021-07-16 12:15:04 -04:00
90a44bb5ed Updated overview images
This patch includes updated aprsd_overview diagram images
which now includes the new watch list feature.
2021-07-16 12:12:34 -04:00
7dc4fb3e77 Move version string output to top of log 2021-07-16 12:11:51 -04:00
f31a4c07b4
Merge pull request #65 from craigerl/plugin_interface_change
Refactor the plugin interface and manager
2021-07-16 08:43:24 -04:00
1a1fcba1c4 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.
2021-07-16 08:31:38 -04:00
562ae52c1e Fixed the Ack thread not resending acks
This patch fixes a bug in the AckThread.  The thread loop
was exiting after the first attempt to send the ack.
Thread loops have to return True, in order to be called again
as this is the mechanism in which aprsd gracefully shuts down all
threads.
2021-07-15 14:11:30 -04:00
3c45d8bd0f reworked the admin ui to use semenatic ui more 2021-07-14 15:00:23 -04:00
5afc7fb664 Added messages count to admin messages list.
This patch adds a simple count of packets shown in the
messages list on the admin ui.
2021-07-14 10:29:12 -04:00
ccaab72124
Merge pull request #64 from craigerl/web_tabs
Add admin UI tabs for charts, messages, config
2021-07-12 12:17:51 -04:00
de62579852 Add admin UI tabs for charts, messages, config
This patch updates the admin UI to include 3 tabs
of content.
Charts
messages
config

The charts tab is the existing line charts.
The messages tab shows a list of RX (green) and TX (red) messages
from/to aprsd.
The config tab shows the config loaded at startup time.
2021-07-12 12:12:14 -04:00
1c66555450 Removed a noisy debug log 2021-07-09 15:22:53 -04:00
13be30f772
Merge pull request #63 from craigerl/dump_config
Dump out the config during startup
2021-07-05 11:02:17 -04:00
9a1ab1c0d6 Dump out the config during startup
This patch adds the dumping out of a flattened config to the log
at startup.  This is helpful for seeing what aprsd server is actually
using for config entries at startup and since it's in the log, you can
reference it.
2021-07-05 10:57:22 -04:00
3ae5717452 Added message counts for each plugin.
This patch adds a message counter for each plugin.  When the regex for
a plugin passes and the message is pass into the plugin for processing,
that message is tracked.  This message count is reported by the stats
tracking object now for the web admin ui.
2021-06-17 16:37:47 -04:00
d8950f0995
Merge pull request #61 from craigerl/dependabot/pip/urllib3-1.26.5
Bump urllib3 from 1.26.4 to 1.26.5
2021-06-03 17:20:54 -04:00
dependabot[bot]
6fb16421e8
Bump urllib3 from 1.26.4 to 1.26.5
Bumps [urllib3](https://github.com/urllib3/urllib3) from 1.26.4 to 1.26.5.
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/1.26.4...1.26.5)

---
updated-dependencies:
- dependency-name: urllib3
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-02 03:40:23 +00:00
c14b1bc985
Merge pull request #60 from craigerl/update_checker
Added aprsd version checking
2021-05-04 10:10:09 -04:00
17302aa76d Added aprsd version checking
This patch adds usage of update_checker to check to make sure the
version of APRSD being launched is the latest version.  Also added a
call to upate_checker as part of the KeepAlive thread.  It will
call update_check every hour.  If there is no aprsd connectivitity,
the update check will silently fail.
2021-05-04 10:06:43 -04:00
2f7fa0c3d5
Merge pull request #56 from craigerl/dependabot/pip/urllib3-1.26.4
Bump urllib3 from 1.26.3 to 1.26.4
2021-05-03 09:54:54 -04:00
9de0df31eb Updated INSTALL.txt
This patch added some changes to the INSTALL.txt file to fix a user
issue: https://github.com/craigerl/aprsd/issues/58

Added documentation to the INSTALL.txt to use the makefile.  It's
far easier and superior in every way to setup and install than the
manual instructions.   Use pypi for the official package.
2021-04-30 21:28:22 -04:00
b8dc6a329b
Update my callsign
This patch updates my callsign for the README.rst
2021-04-21 21:56:32 -04:00
Craig Lamparter
970b32f238
Update README.rst 2021-04-12 16:30:20 -07:00
Craig Lamparter
2a5ef58295
Update README.rst 2021-04-12 16:29:31 -07:00
dependabot[bot]
2696a399cb
Bump urllib3 from 1.26.3 to 1.26.4
Bumps [urllib3](https://github.com/urllib3/urllib3) from 1.26.3 to 1.26.4.
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/1.26.3...1.26.4)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-06 18:24:15 +00:00
55862a2790 Prep for v1.6.1 release 2021-04-05 14:32:36 -04:00
fc1ee19516 Removed debug log for KeepAlive thread
No need to dump out the length of the keepalive string for now.
2021-04-05 14:14:33 -04:00
4aac17dc98 ignore Makefile.venv 2021-04-05 12:47:13 -04:00
a4a06c9763 Reworked Makefile to use Makefile.venv
Completely reworked the Makefile to make use
of an existing 'library' to manage python
virtual environments.

https://github.com/sio/Makefile.venv
2021-04-05 12:38:38 -04:00
23c219f0d2 Fixed version unit tests 2021-04-05 08:55:46 -04:00
7b019d24f0 Updated stats output for KeepAlive thread
Also added the aprsd uptime to the VersionPlugin
2021-04-02 18:54:00 -04:00