### Changelog All notable changes to this project will be documented in this file. Dates are displayed in UTC. Generated by ``auto-changelog` `_. #### `4.2.4 `_ .. 17 October 2025 * update github release build action ``0373db9` `_ * Remove update_timestamp during _send_direct ``6c3c16f` `_ * remove some debug noise ``be26f31` `_ #### `4.2.3 `_ .. 12 October 2025 * Remove printf from tcpkiss ``4b9e7fe` `_ * Added line numbers in trace ``9a1c096` `_ * Stop all collectors on signal ``643e19b` `_ * Added stop_all to stats collector. ``eb8104b` `_ * Cleanup of tcpkiss ``3d353dc` `_ * Driver protocol is_alive is property ``7c5d9ee` `_ * Make fake driver conform to protocol ``093ada0` `_ * Fixed aprsis client connected tracking ``056acc3` `_ * Fixed client base class connection tracking ``24019ae` `_ * Fixed unit tests ``961d3e9` `_ * update for 4.2.3 ``8932524` `_ #### `4.2.2 `_ .. 8 October 2025 * Fixed an issue with client.reset ``4920256` `_ #### `4.2.1 `_ .. 7 October 2025 * Sanity check around decoding packet ``58cb046` `_ * Added CONF.is_digipi ``f3039eb` `_ * Fixed stats issue with tcpkiss client. ``556554b` `_ * Fixed missing f string ``8cd61a7` `_ * Added ThirdPartyPacket decoding in tcpkiss driver ``3961e1d` `_ * refactored list-plugins ``c7c9a92` `_ * Added package ``e15322e` `_ * Some client and driver cleanup. ``328c027` `_ * Fixed some unit tests ``af0feaf` `_ * Update Changelog for 4.2.1 release ``9bf4bfd` `_ #### `4.2.0 `_ .. 12 August 2025 * Reworked the entire client and drivers ``#191` `_ * Update the docker-compose.yml ``#193` `_ * Use OpenWeatherMap One Call v3.0 API ``#186` `_ * use OWM onecall v3.0 ``16bfda4` `_ * Fixed a problem with WeatherPacket ``5469610` `_ * Ensure filter is set ``4c53c13` `_ * Remove flask_enabled ``ce79f01` `_ * Make some catchall fields non hashable. ``acd639a` `_ * Fixed setup for AVWXWeatherPlugin ``2fcd574` `_ * removed old flask_enabled global ``8f471c2` `_ * Updated requirements ``211ac11` `_ * Don't log an IOError on shutdown ``d41064b` `_ * Honor quiet setting for log.setup_logging ``1ae4375` `_ * Make sure packet has addressee field ``034f11b` `_ * Fix tox failures ``74887af` `_ * log the exception when tx fails. ``fa5d0c6` `_ * Updated requirements for 4.2.0 ``2c476d8` `_ * Updated Changelog for 4.2.0 ``b9fea98` `_ #### `4.1.2 `_ .. 6 March 2025 * Allow passing in a custom handler to setup_logging ``d262589` `_ * Changelog for 4.1.2 ``6dba56f` `_ #### `4.1.1 `_ .. 5 March 2025 * Added new config to disable logging to console ``0fa5b07` `_ * Added threads.service ``c1c89fd` `_ * Update requirements ``2b185ee` `_ * Fixed some more ruff checks ``94ba915` `_ * 4.1.1 release ``7ed8028` `_ #### `4.1.0 `_ .. 20 February 2025 * Added new PacketFilter mechanism ``#184` `_ * Update to build from pypi ``3b57e75` `_ * Updated APRSIS driver ``1606585` `_ * Updated packet_list to allow infinit max store ``19c12e7` `_ * Update StatsStore to use existing lock ``227ddbf` `_ * Try and stop chardet logging! ``101904c` `_ * Fixed some pep8 failures. ``e9e7e6b` `_ * updated gitignore ``fd517b3` `_ * Remove sleep in main RX thread ``6cd7e99` `_ * Changed Objectstore log to debug ``361663e` `_ * fix for None packet in rx thread ``d82a81a` `_ * Fix runaway KISS driver on failed connnection ``b6da0eb` `_ * CONF.logging.enable_color option added ``06bdb34` `_ * Update Changelog for 4.1.0 release ``a3cda9f` `_ #### `4.0.2 `_ .. 25 January 2025 * Fix for KISS/Fake client drivers ``edeba7f` `_ * Trap for failed parsing of packets on KISS ``9501a63` `_ * Pass branch in github release_build ``1f65bbe` `_ * Removed some verbose output from KISS ``c1319c3` `_ * Look in multiple places for fortune bin ``97ffffc` `_ * Added uv.lock ``2f26eb8` `_ * Fix the testing of fortune path ``3c4e200` `_ * update the install from github in Dockerfile ``bea4815` `_ * Prep for 4.0.2 ``000adef` `_ #### `4.0.1 `_ .. 24 January 2025 * Update pyproject for README.rst -> md ``e080394` `_ * Updated Changelog ``24f5672` `_ ### `4.0.0 `_ .. 24 January 2025 * Migrate admin web out of aprsd. ``#183` `_ * Enable packet stats for listen command in Docker ``e5d8796` `_ * Added activity to README ``cdd297c` `_ * Added star history to readme ``02e2940` `_ * removed pytest from README ``1cba31f` `_ * Updated Docker for using alpine and uv ``24db814` `_ * Update the admin and setup.sh for container ``044ea4c` `_ * added healthcheck.sh ``1054999` `_ * updated healthcheck.sh ``dabb48c` `_ * try making image for webchat ``ba8acdc` `_ * Added APRSD logo ``0ed648f` `_ * Added plugin and extension links ``447451c` `_ * reduced logo size 50% ``cf4a29f` `_ * Updated README.md TOC ``375a5e5` `_ * chore: update AUTHORS [skip ci] ``c556f51` `_ * Updated requirements ``4a7a902` `_ * Updated ChangeLog for 4.0.0 ``934ebd2` `_ #### `3.5.0 `_ .. 10 January 2025 * Migrate admin web out of aprsd. ``c48ff8d` `_ * Remove webchat as a built in command. ``8f8887f` `_ * Remove email plugin ``0880a35` `_ * Fixed make clean ``ae28dbb` `_ * removed email reference ``fcd1629` `_ * Removed more email references. ``f0c0260` `_ * Removed LocationPlugin from aprsd core ``3bba8a1` `_ * Include haversine library ``bbdbb9a` `_ * Update Makefile ``caa4bb8` `_ * Added new KeepAliveCollector ``30d1eb5` `_ * Changed to ruff ``72d068c` `_ * Changed README.rst -> README.md ``b1a830d` `_ * fixed list-plugins ``ec1adf4` `_ * Updated README.md ``fd74405` `_ * updated workflow ``df14eb8` `_ * Some cleanup with list plugins ``5274c5d` `_ * Updated README.md ``275e335` `_ * removed BeautifulSoup usage ``a21432f` `_ * updated github workflows ``e3a7e7f` `_ * updated requirements-dev ``fbec716` `_ * updated requirements ``7f2c1d7` `_ * updated plugin example ``0073865` `_ * updated docs rst files ``3cd9bfa` `_ * added authors.yml ``c8735c2` `_ * updated action versions ``7702d68` `_ * update to py 3.10 ``3ee422b` `_ * Added .mailmap ``8d98546` `_ * updated tools in pre-commit ``e4f82d6` `_ * some cleanup ``e332d7c` `_ #### `3.4.4 `_ .. 6 December 2024 * Update counter.py ``#182` `_ * Added an option to disable the loading of the help plugin. ``#177` `_ * Added unit test for client base ``#181` `_ * Walt listen test ``#180` `_ * Bump werkzeug from 3.0.4 to 3.0.6 ``#178` `_ * Added new aprsd admin command ``0271ccd` `_ * Added some changes to listen ``df0ca04` `_ * Added some changes to listen ``d863474` `_ * Fix a small issue with packet sending failures ``3fd6069` `_ * Fix a small issue with packet sending failures ``f265e8f` `_ * Added new dump-stats command ``add18f1` `_ * Update PacketList ``7e8d7cd` `_ * Updated APRSClient ``d808e21` `_ * Calculate delta once and reuse it ``0be87d8` `_ * Added unit test for ClientFactory ``ab2de86` `_ * Added unit test for APRSISClient ``224686c` `_ * optimized Packet.get() ``579d0c9` `_ * fixed name for dump-stats output ``563b068` `_ * updated README.rst ``229155d` `_ * Only load EmailStats if email is enabled ``2fdc7b1` `_ * Added rich output for dump-stats ``d0018a8` `_ * Allow disabling sending all AckPackets ``6e62ac1` `_ * Allow loading a specific list of plugins ``9f3c8f8` `_ * Catch and log exceptions in consumer ``adcf94d` `_ * Fixed the protocol for Stats Collector ``bd0bcc1` `_ * Added new features to listen command. ``7d1e739` `_ * Don't break logging aprslib failures ``98a6210` `_ * Change healthcheck email thread check timeout ``03ce5a3` `_ * Addressing comments in PR. ``2471492` `_ * Update utils.trace ``c3df974` `_ * Update requirements ``257fa0d` `_ * Fixes for webchat UI. ``f0b9956` `_ * Sending message to new callsign displays in an active tab ``d42638e` `_ * Update WebChat ``9f7d169` `_ * Update Client to report login status ``06c1fb9` `_ * Updated server client checks ``1c50c39` `_ * Fixed broken unit tests ``c82e9ba` `_ * Fixed pep8 failure on counter.py ``1eaa4b8` `_ * No reason to create the client in init ``e99c906` `_ * Added APRSDThread pause/unpause capability ``95094b8` `_ * Added client_exists() for client factory ``505565d` `_ * Added pause_all, unpause_all in threadlist ``76d275d` `_ * Make sure to sleep(1) in the main RX thread ``98a96cb` `_ * Put safety checks around the timeago for keepalive ``be6357a` `_ * Properly report TCPKISS connection ``3e488db` `_ * Fix call in kiss consumer ``aba5bb0` `_ * Update RX Packet dupe checking ``8f3da96` `_ * Webchat: Don't automatically fetch location KISS ``e8ae380` `_ * Fixed issue not processing null msg ids ``a17b80d` `_ * Updated keepalive thread to report client ``8529f1f` `_ * Fixed webchat popovers not working. ``3a8b8f2` `_ * Fixed issue with packet object and prepare() ``f66b962` `_ * Fixed webchat packets without msgNo ``d4ae726` `_ * Added __contains__ to threadlist ``d94a3e7` `_ * Update healthcheck ``7fb0c74` `_ * Remove dataclasses from requirements ``db73a54` `_ * Update requirements.dev ``0d8a1ac` `_ * Added new acked property to the core Packet ``3c058f3` `_ * Fixed some pep8 failures ``63bcd41` `_ * Update Changelog for 3.4.4 ``bc709b3` `_ #### `3.4.3 `_ .. 18 November 2024 #### `v3.4.3 `_ .. 29 October 2024 * Change virtual env name to .venv ``882e907` `_ * Fixed issue in send_message command ``ecf30d3` `_ * Update Changelog for v3.4.3 ``5780626` `_ #### `v3.4.2 `_ .. 18 October 2024 * Removed remnants of QueryPlugin ``758007e` `_ * Removed dumping of the stats on exit ``5314856` `_ * Added color logging of thread names at keepalive ``5e9f92d` `_ * Added packet log distance and new arrows ``3e9bf24` `_ * Log closing client connection. ``9951b12` `_ * Sort changelog commits by date ``a65262d` `_ * Add final stages in Dockerfile ``8cdbf18` `_ * Collector cleanup ``765e02f` `_ * cleaned up some requirements ``c12c42b` `_ * Cleanup test failures ``14c0a69` `_ #### `v3.4.1 `_ .. 23 September 2024 * Bump zipp from 3.18.2 to 3.19.1 ``#170` `_ * Bump certifi from 2024.2.2 to 2024.7.4 ``#169` `_ * Bump urllib3 from 2.2.1 to 2.2.2 ``#168` `_ * Refactor client and drivers ``#164` `_ * Refactor Dockerfile ``#167` `_ * Bump requests from 2.31.0 to 2.32.0 ``#166` `_ * Bump jinja2 from 3.1.3 to 3.1.4 ``#163` `_ * Put an upper bound on the QueueHandler queue ``93a9cce` `_ * Eliminate need for PBR ``f159741` `_ * Use newer python -m build to build aprsd wheel ``2abf8bc` `_ * updated requirements ``fa2d2d9` `_ * --- ``18fb2a9` `_ * removed ``f7a9f7a` `_ * Updated README ``8f1733e` `_ * Hack Dockerfile for admin fixes? ``f07ef71` `_ * update to pyproject ``4b26e2b` `_ * Fixed reference to ThirdPartyPacket ``ffa28fa` `_ * Use auto-changelog to generate changelog ``673b34c` `_ * Renamed Changelog ``5ebbb52` `_ * Updated Makefile to build Changelog ``3741555` `_ * Update base docs ``92cb92f` `_ * added m2r package to dev requirements ``49e8a62` `_ * Updated requirements ``9d3f45a` `_ * Fixed pep8 with packet_list ``b172c6d` `_ * Rebuild ChangeLog ``af3d741` `_ * No limit on change log commits ``e3ab6e7` `_ * retagged v3.4.1 in prep for release ``a6f84e4` `_ * Build > python 3.10 ``e5662b9` `_ * Update ChangeLog ``9b843ee` `_ * Removed invalid pyproject classifier ``a5dc322` `_ * Update Changelog ``a74a66d` `_ #### `v3.4.0 `_ .. 29 April 2024 * Reworked the stats making the rpc server obsolete. ``#159` `_ * Update client.py to add consumer in the API. ``#158` `_ * Packet updates ``#154` `_ * Bump black from 24.2.0 to 24.3.0 ``#155` `_ * Fixed access to conf.log in logging_setup ``c1acdc2` `_ * Fixed call to setup_logging in uwsgi ``8797dfd` `_ * replaced access to conf from uwsgi ``82b3761` `_ * Update tox for mypy runs ``d0f53c5` `_ * Start to add types ``12dab28` `_ * No need to synchronize on stats ``29b4b04` `_ * Moved Threads list for mypy ``d80277c` `_ * Added type setting on pluging.py for mypy ``9c77ca2` `_ * small refactor of stats usage in version plugin ``90f212e` `_ * removed print ``6f1d6b4` `_ * Refactored packets ``1477e61` `_ * Fixed some tox errors related to mypy ``00e185b` `_ * updated dev-requirements ``eada5e9` `_ * Fix for micE packet decoding with mbits ``386d2be` `_ * Eliminated need for from_aprslib_dict ``e386e91` `_ * Don't call stats so often in webchat ``9858955` `_ * Added missing packet types in listen command ``f450238` `_ * Fixed some logging in webchat ``127d3b3` `_ * Completely redo logging of packets!! ``1e6c483` `_ * Fix some pep8 issues ``b461231` `_ * Added new webchat config option for logging ``9e26df2` `_ * Some packet cleanup ``da7b712` `_ * Added new config option log_packet_format ``c581dc5` `_ * Show comment in multiline packet output ``f4356e4` `_ * More packet cleanup and tests ``f53df24` `_ * added packet counter random int ``873fc06` `_ * Fix for filtering curse words ``f400c60` `_ * Change debug log color ``c062359` `_ * Put packet.json back in ``0321cb6` `_ * update requirements ``8f588e6` `_ * Fix for sample-config warning ``428edac` `_ * Fixed pep8 errors and missing files ``a270c75` `_ * Got unit tests working again ``f92b2ee` `_ * Fixed access to log_monitor ``01cd0a0` `_ * Fixed issues with watch list at startup ``e2e5853` `_ * Allow stats collector to serialize upon creation ``71d72ad` `_ * Lock around client reset ``50e491b` `_ * Remove the logging of the conf password if not set ``a8d56a9` `_ * Removed RPC Server and client. ``333feee` `_ * Admin UI working again ``0ca9072` `_ * Delete more stats from webchat ``fcc02f2` `_ * Remove rpyc as a requirement ``7114269` `_ * Removed json-viewer ``bc3bdc4` `_ * Updated prism to 1.29 ``db2fbce` `_ * changed admin web_ip to StrOpt ``6845d26` `_ * LOG failed requests post to admin ui ``da882b4` `_ * Ensure latest pip is in docker image ``a839dbd` `_ * Ensure StatsStore has empty data ``80705cb` `_ * Admin interface catch empty stats ``2c5bc6c` `_ * Fix some issues with listen command ``8728926` `_ * Fixed scrolling problem with new webchat sent msg ``2e9cf3c` `_ * Added human_info property to MessagePackets ``8f6f800` `_ * Get rid of some useless warning logs ``b388989` `_ * Update webchat, include GATE route along with WIDE, ARISS, etc ``aa6e732` `_ * add GATE route to webchat along with WIDE1, etc ``886ad9b` `_ * Fix time plugin ``94f36e0` `_ * Fix issue not tracking RX Ack packets for stats ``3bef131` `_ * Another fix for ACK packets ``f34120c` `_ * Fixed a problem with the webchat tab notification ``5fa4eaf` `_ * Fixed PacketList maxlen ``5ff62c9` `_ * Lock on stats for PacketList ``f59b65d` `_ * syncronize the add for StatsStore ``026dc6e` `_ * Limit packets to 50 in PacketList ``f682890` `_ * Remove packet from tracker after max attempts ``4c2a40b` `_ * Added new default_ack_send_count config option ``40c028c` `_ * Fixed issue with APRSDThreadList stats() ``66e4850` `_ * Added threads table in the admin web ui ``c6079f8` `_ * ensure thread count is updated ``91ba6d1` `_ * set packetlist max back to 100 ``3bd7add` `_ * Added threads chart to admin ui graphs ``f2d39e5` `_ * Update requirements ``1a7694e` `_ * Added new config optons for PacketList ``8392d6b` `_ * ismall update ``5b2a59f` `_ * force uwsgi to 2.0.24 ``c2f8af0` `_ * added packet_count in packet_list stats ``7c93534` `_ * Fix access to PacketList._maxlen ``1c9f25a` `_ * removed Packet.last_send_attempt and just use send_count ``758ea43` `_ * another fix for tx send ``3e87163` `_ * Added PacketList.set_maxlen() ``4542c0a` `_ * Changed Stats Collector registration ``dc4879a` `_ * Added support for RX replyacks ``8d86764` `_ * Fixed Keepalive access to email stats ``cb0cfee` `_ * Added new PacketCollector ``a656d93` `_ * Fixed issue with PacketList being empty ``7541f13` `_ * Remove error logs from watch list ``27359d6` `_ * Added try except blocks in collectors ``88d2624` `_ * Webchat Send Beacon uses Path selected in UI ``4c7e27c` `_ * Added PacketTrack to packet collector ``717db60` `_ * Call packet collecter after prepare during tx. ``bef3205` `_ * Added default_packet_send_count config ``813bc7e` `_ * Fix APRSDStats start_time ``29d97d9` `_ * Added config for enable_seen_list ``c43652d` `_ * Added fox for entry_points with old python ``09b9708` `_ * Update Dockerfiles ``f02db20` `_ * Removed the requirement on click-completion ``992485e` `_ * Fixed PacketTrack with UnknownPacket ``2b2bf6c` `_ * Make all the Objectstore children use the same lock ``c206f52` `_ * Added config enable_packet_logging ``63f3de4` `_ * Fixed unit tests failing with WatchList ``c4b17ee` `_ * Fixed docker setup.sh comparison ``a5680a7` `_ * Change setup.h ``fc9ab4a` `_ * Updated Changelog for 3.4.0 ``cb2a344` `_ #### `v3.3.4 `_ .. 21 April 2024 * Fix for entry_points where python < 3.10 ``fa9ff7d` `_ * Fixed entry_points ``e9febbb` `_ #### `v3.3.3 `_ .. 27 March 2024 * Fix for sample-config warning ``8e0de9c` `_ #### `v3.3.2 `_ .. 13 March 2024 * Removed print in utils ``f810c02` `_ * Remove warning during sample-config ``d485f48` `_ * Changelog for 3.3.2 ``71cd7e0` `_ #### `v3.3.1 `_ .. 12 March 2024 * Fixed problem with list-plugins ``cb9456b` `_ * Fixed failure with fetch-stats ``10d023d` `_ * Updates for 3.3.1 ``50e24ab` `_ #### `v3.3.0 `_ .. 12 March 2024 * Replace slow rich logging with loguru ``#147` `_ * Added location for callsign tabs in webchat ``#146` `_ * Update for v3.2.3 ``8bceb82` `_ * Update requirements.txt ``a4230d3` `_ * Updated dev test-plugin command ``03c58f8` `_ * Added Location info on webchat interface ``d6f0f05` `_ * update github action branchs to v8 ``a88de2f` `_ * Create codeql.yml ``a00c4ea` `_ * updated gitignore ``1a5c5f0` `_ * Added support for loading extensions ``b143072` `_ * Added some missing classes to threads ``e89f8a8` `_ * Added iterator to objectstore ``df2798e` `_ * removed some unneeded code ``9683459` `_ * updated requirements files ``275bf67` `_ * Added BeaconPacket ``11f1e95` `_ * Cleanup some logs ``68f23d8` `_ * Added installing extensions to Docker run ``4118541` `_ * Added the new APRS Registry thread ``1e4f0ca` `_ * add py310 gh actions ``1ad2e13` `_ * Added sending software string to registry ``8264c94` `_ * Don't send uptime to registry ``38fe408` `_ * py311 fails in github ``f0ad6d7` `_ * fix pep8 failures ``e9c48c1` `_ * Fixed default service registry url ``cb291de` `_ * changed the default packet timeout to 5 minutes ``a1e21e7` `_ * fixed references to conf ``7a5b55f` `_ * fixed frequency_seconds to IntOpt ``6a7d7ad` `_ * Add log info for Beacon and Registry threads ``a4630c1` `_ * Change defaults for beacon and registry ``5fd91a2` `_ * Added list-extensions and updated README.rst ``ff051bc` `_ * Fixed pep8 ``d1a09fc` `_ * Updated requirements ``d092a43` `_ * Put threads first after date/time ``2cb9c2a` `_ * Make registry thread sleep ``5d3f42f` `_ * Disable debug logs for aprslib ``24bbea1` `_ * use log.setup_logging ``aec88d4` `_ * Fixed RegistryThread not sending requests ``0b0afd3` `_ * Changed processpkt message ``66004f6` `_ * Fixed registry url post ``2e9c9d4` `_ * sample-config fix ``0ca5cee` `_ * Changelog for 3.3.0 ``c37e1d5` `_ #### `v3.2.3 `_ .. 9 January 2024 * aprsd: main.py: Fix premature return in sample_config ``#144` `_ * Rework Location Plugin ``#140` `_ * Fixed a bug with OWMWeatherPlugin ``0433768` `_ * Update weather.py ``b6df9de` `_ * Update weather.py both weather plugins have new Ww regex ``651cf01` `_ * Update weather.py because you can't sort icons by penis ``9350cf6` `_ * Added missing fortune app ``f02824b` `_ * Added fortune to Dockerfile-dev ``682e138` `_ * added /usr/games to path ``026a64c` `_ * Force fortune path during setup test ``12a3113` `_ #### `v3.2.2 `_ .. 22 November 2023 * Walt test ``#139` `_ * Try to localize js libs and css for no internet ``#138` `_ * Normalize listen --aprs-login ``#137` `_ * Bump werkzeug from 2.3.7 to 3.0.1 ``#136` `_ * Update INSTALL with new conf files ``#135` `_ * Bump urllib3 from 2.0.6 to 2.0.7 ``#134` `_ * Test new packet serialization ``fe1ebf2` `_ * Reworked the admin graphs ``763c9ab` `_ * Updated requirements ``4b1214d` `_ * removed invalid reference to config.py ``fae7032` `_ * Fixed datetime access in core.py ``b9dd21b` `_ * remove python 3.12 from github builds ``638128a` `_ * pep8 fixes ``6b397cb` `_ * Fix wsgi for prod ``b0bfdaa` `_ * Fix for types ``809a41f` `_ * Update for v3.2.2 release ``c0e2ef1` `_ #### `v3.2.1 `_ .. 9 October 2023 * Bump urllib3 from 2.0.4 to 2.0.6 ``#133` `_ * Fix for dupe packets. ``#132` `_ * Log a warning on dupe ``0d7e50d` `_ * rewrote packet_list and drop dupe packets ``4f87d5d` `_ * pep8 fixes ``99a0f87` `_ * Fixed import of Mutablemapping ``f79b88e` `_ * Fixed issue with packet tracker and msgNO Counter ``9bdfd16` `_ * Fixed another msgNo int issue ``751bbc2` `_ * Don't process AckPackets as dupes ``59cec13` `_ * Make Packet objects hashable ``544600a` `_ * Add ability to change path on every TX packet ``ddd4d25` `_ * Added packet_dupe_timeout conf ``f41488b` `_ * Fix path for KISS clients ``746eeb8` `_ * Set a default password for admin ``8116960` `_ * Fixed default path for tcp_kiss client. ``156d9d9` `_ * Changed the path option to a ListOpt ``0155923` `_ * Update the webchat paths ``5ae45ce` `_ * Update the packet_dupe_timeout warning ``bf905a0` `_ * Update index.html disable form autocomplete ``8e9a021` `_ * Changelog for 3.2.1 ``acf2b62` `_ #### `v3.2.0 `_ .. 26 September 2023 * Bump gevent from 23.9.0.post1 to 23.9.1 ``#131` `_ * Webchat saved bootstrapjs ``#130` `_ * fixed webchat logging.logformat typeoh ``8dd3b05` `_ * Added new webchat config section ``f922b3f` `_ * Make use of webchat gps config options ``2e9a204` `_ * Convert webchat internet urls to local static urls ``1d6a667` `_ * Webchat suppress to display of dupe messages ``a8dd9ce` `_ * click on the div after added. ``377842c` `_ * Added dupe checkig code to webchat mobile ``2416f0e` `_ * fixed an issue in the mobile webchat ``34311f0` `_ * Start keepalive thread first ``859f904` `_ * RPC Server logs the client IP on failed auth ``9582812` `_ * Fixed admin page packet date ``570fdb9` `_ * Removed some RPC server log noise ``82f77b7` `_ * Removed admin_web.py ``a9e8050` `_ * Updated documentation build ``10bf049` `_ * updated github workflows ``4b56e99` `_ * recreate client during reset() ``008b2ab` `_ * Remove VIM from Dockerfile ``619b1b7` `_ * Restore previous conversations in webchat ``7292744` `_ * Updated the webchat UI to look like iMessage ``29f21a9` `_ * Reworked webchat with new UI ``14e984c` `_ * Added close X on webchat tabs ``8527602` `_ * Deleted webchat mobile pages ``70ddc44` `_ * Update index.html to use chat.css ``ba6b410` `_ * Center the webchat input form ``b4e02c7` `_ * webchat: set to_call to value of tab when selected ``8a90d54` `_ * webchat: got active tab onclick working ``1400e3e` `_ * WebChat: Send GPS Beacon working ``81a19dd` `_ * Ensure parse_delta_str doesn't puke ``140fa4a` `_ * Ensure Keepalive doesn't reset client at startup ``ef206b1` `_ * Webchat: Fixed bug deleteing first tab ``f770c5f` `_ * Webchat: tweaks to UI for expanding chat ``b393060` `_ * WebChat: fixed content area scrolling ``7130ca2` `_ * WebChat: Prevent sending message without callsign ``f151ae4` `_ * Webchat: Added tab notifications and raw packet ``9635893` `_ * Webchat: Fix pep8 errors ``3f5dbe0` `_ * WebChat: new tab should get focus ``ff35898` `_ * Webchat: Fix chat css on older browsers ``6b083d4` `_ * Webchat: Fix issue accessing msg.id ``d63c685` `_ * WebChat: flash a dupe message ``12dfdef` `_ * WebChat: cleanup some console.logs ``82d2591` `_ * Webchat: fix input maxlength ``788a72c` `_ * minor cleanup prior to release ``c9dc4f6` `_ * Update Changelog for 3.2.0 ``7408894` `_ #### `v3.1.3 `_ .. 15 August 2023 * Forcefully allow development webchat flask ``33c7871` `_ * prep for 3.1.3 ``e06305f` `_ #### `v3.1.2 `_ .. 15 August 2023 * Removed adhoc ssl support in webchat ``182887c` `_ * Disable the Send GPS Beacon button ``65a5a90` `_ * Added support for ThirdParty packet types ``ae9e4d3` `_ * Updated Changelog for 3.1.2 ``b2f95b0` `_ #### `v3.1.1 `_ .. 7 August 2023 * Fix sending packets over KISS interface ``#128` `_ * Update the Dockerfile ``#125` `_ * Max out the client reconnect backoff to 5 ``26f354b` `_ * remove loop log ``e0c3c5c` `_ * Use config web_ip for running admin ui from module ``011cfc5` `_ * re-enable USWeatherPlugin to use mapClick ``986df39` `_ * Fixed pep8 failures ``db9e1d2` `_ * Updated Changelog for v3.1.1 ``f228144` `_ #### `v3.1.0 `_ .. 24 July 2023 * replacement of flask-socketio with python-socketio ``#124` `_ * Remove flask pinning ``#123` `_ * Update requirements for upgraded cryptography ``#122` `_ * Fixed rain numbers from aprslib ``#119` `_ * Example plugin wrong function ``#116` `_ * Update Dockerfile to help build cryptography ``00f1c3a` `_ * Ensure conf is imported for threads/tx ``4e99e30` `_ * Add .readthedocs.yaml ``43d6b62` `_ * Fixed .readthedocs.yaml format ``cad22e1` `_ * Update location plugin and reworked requirements ``26c1e7a` `_ * Added rpc server for listen ``8b73372` `_ * Fixed pep8 violation ``5bc589f` `_ * Update github workflows ``15bf371` `_ * force tox to 4.3.5 ``da20ff0` `_ * Updated requirements ``319969c` `_ * USe new tox and update githubworkflows ``9931c8a` `_ * Fixed unit tests for Location plugin ``80b85e6` `_ * Add github manual trigger for master build ``09a0c4c` `_ * Update master-build.yml ``f4d6035` `_ * Added manual master build ``311ceba` `_ * add arm64 for manual github build ``b172c69` `_ * Added some utilities to Dockerfile-dev ``9b94414` `_ * Replace ratelimiter with rush ``fe0d71d` `_ * Added the fetch-stats command ``b2e621d` `_ * added counts to the fetch-stats table ``0a14b07` `_ * Populate stats object with threads info ``191e1ff` `_ * Fixed pep8 errors ``005675c` `_ * Try and fix Dockerfile-dev ``bba7b68` `_ * Fix in for aprslib issue #80 ``63bf82a` `_ * Fixed rpc client initialization ``7f2aba7` `_ * Limit the float values to 3 decimal places ``0bd11d0` `_ * Changed weather plugin regex pattern ``565ffe3` `_ * Moved logging to log for wsgi.py ``35d4158` `_ * Replace Dockerfile-dev with python3 slim ``ccd564a` `_ * Added more libs for Dockerfile-dev ``ad00463` `_ * update manual build github ``fa6e738` `_ * Update Dockerfile-dev to fix plugin permissions ``d8318f2` `_ * Update master build to include linux/arm/v8 ``dee73c1` `_ * Removed flask-classful from webchat ``6a6e854` `_ * Update docker bin/admin.sh ``fa452cc` `_ * removed linux/arm/v8 ``5723e3a` `_ * Added timing after each thread loop ``d3a93b7` `_ * updated wsgi config default /config/aprsd.conf ``588e140` `_ * Add info logging for rpc server calls ``6ae55fc` `_ * Ensure fetch-stats ip is a string ``cbef93b` `_ * Change how fetch-stats gets it's defaults ``5383b69` `_ * change port to 8000 ``e51a501` `_ * Fixed pep8 ``4664ead` `_ * Update Dockerfile-dev to include uwsgi ``1ab9c3f` `_ * Fixed sio namespace registration ``099b87e` `_ * Use CONF.admin.web_port for single launch web admin ``c7d629f` `_ * Changelog updates for v3.1.0 ``dfd3688` `_ #### `v3.0.3 `_ .. 25 April 2023 * Add ratelimiting for acks and other packets ``#111` `_ * Update Dockerfile ``8a456ca` `_ * Update Listen command ``483afce` `_ * Added listen.sh for docker ``c353877` `_ * Change listen command plugins ``0ec41f7` `_ * Added listen args. ``66ebb28` `_ * Don't load help plugin for listen command ``17d9c06` `_ * Fixed loading of plugins for server ``e21e2a7` `_ * cleanup some debug messages ``5694cab` `_ * Update Changelog to 3.0.3 ``0527ddf` `_ #### `v3.0.2 `_ .. 16 January 2023 * Import RejectPacket ``4aa4a4b` `_ * Update Changelog for 3.0.2 ``357a193` `_ #### `v3.0.1 `_ .. 14 January 2023 * Add support for Reject messages. ``#109` `_ * Update Docker builds for 3.0.0 ``3872590` `_ * Add support to Reject messages. ``c68b270` `_ ### `v3.0.0 `_ .. 9 January 2023 * Convert config to oslo_config ``#107` `_ * Dataclasses ``#106` `_ * Started using dataclasses to describe packets ``082db73` `_ * Updated plugins and plugin interfaces for Packet ``67a441d` `_ * Reworked all packet processing ``94fb481` `_ * cleanup webchat ``1b49f12` `_ * Added contructing a GPSPacket for sending ``59e5af8` `_ * Cleaned out all references to messaging ``bfc0a5a` `_ * More messaging -> packets cleanup ``6030cb3` `_ * Fix packets timestamp to int ``f1de7bc` `_ * Cleaned up packet transmit class attributes ``c201c93` `_ * Make tracking objectstores work w/o initializing ``1187f1e` `_ * Change RX packet processing to enqueu ``123b3ff` `_ * Removed unused threading code ``9fc5356` `_ * reworked collecting and reporting stats ``e37f99a` `_ * Updated webchat and listen for queue based RX ``ad0d89d` `_ * Added WeatherPacket encoding ``899a6e5` `_ * Add packet filtering for aprsd listen ``d01392f` `_ * Fix pep8 violation ``a1188d2` `_ * Fix some WeatherPacket formatting ``f19043e` `_ * Update routing for weatherpacket ``088cbb8` `_ * Cleaned up PluginManager ``7dfa4e6` `_ * Cleaned up PluginManager ``220fb58` `_ * Fix PluginManager.get_plugins ``2ca3636` `_ * Removed watchlist plugins ``f464ff0` `_ * Removed Packet.send() ``4a65f52` `_ * Fix Rain reporting in WeatherPacket send. ``bbcd7c8` `_ * Added rain formatting unit tests to WeatherPacket ``ce3b29f` `_ * Removed references to old custom config ``7ccfc25` `_ * Added missing conf ``f4a6dfc` `_ * Fix some unit tests and loading of CONF w/o file ``e9a954a` `_ * Dockerfile now produces aprsd.conf ``02e4f78` `_ * Decouple admin web interface from server command ``ff39239` `_ * Update documentation and README ``c929689` `_ * Change ordering of starting up of server command ``83d2e70` `_ * Update regex processing and regex for plugins ``3d0bb8a` `_ * Added ObjectPacket ``ed284a4` `_ * Updated docker/bin/run.sh to use new conf ``79e7ed1` `_ * Updated Healthcheck to use rpc to call aprsd ``c5acdba` `_ * Removed url option from healthcheck in dev ``fe2f7b5` `_ * Added new docs files for 3.0.0 ``29b8764` `_ * reworked usage of importlib.metadata ``a5520b2` `_ * Cleaned up KISS interfaces use of old config ``0758a58` `_ * Fixed pep8 failure ``6391c7e` `_ * Fixed save directory default ``233d49b` `_ * Ensure server command main thread doesn't exit ``c5aba17` `_ * Update Changelog for 3.0.0 ``4a10511` `_ #### `v2.6.1 `_ .. 16 December 2022 * Collections fix ``#105` `_ * Update workflow ``40f23dc` `_ * Fix for Collections change in 3.10 ``9d19502` `_ * remove armv7 build RUST sucks ``321c5a2` `_ * Add unit tests for webchat ``19e5cfa` `_ * Try and fix broken 32bit qemu builds on 64bit system ``87cbcaa` `_ * Fixed position report for webchat beacon ``9571b0b` `_ #### `v2.6.0 `_ .. 12 December 2022 * change from device-detector to user-agents ``#103` `_ * Remove twine from dev-requirements ``#102` `_ * Add support for mobile browsers for webchat ``#101` `_ * Send GPS Beacon from webchat interface ``#100` `_ * Remove email validation ``#99` `_ * Small refactor ``#91` `_ * Update docs on using Docker ``#98` `_ * Bump dependencies to fix python 3.10 ``#89` `_ * Fix #92 (PyPI scraping) ``#96` `_ * README formatting fixes ``#93` `_ * Fix typo on exception ``#94` `_ * Fix plugins not installing via docker-compose ``#97` `_ * Merge pull request #96 from ranguli/fix-pypi-scraping ``#92` `_ * for 2.5.9 ``03a20eb` `_ * Fix logging issue with log messages ``e739441` `_ * Fixed up config option checking for KISS ``1c052a6` `_ * Refactor utils to directory ``bed060f` `_ * Refactored threads.py ``347a6d6` `_ * Fixed pep8 errors ``29b84b4` `_ * Moved trace.py to utils ``a628439` `_ * Moved log.py to logging ``1ccb2f7` `_ * Added webchat command ``585d55f` `_ * Fixed access to threads refactor ``5f28788` `_ * Use new aprsd.callsign as the main callsign ``ad79ed1` `_ * Try sending raw APRSFrames to aioax25 ``2ce50d8` `_ * Allow web interface when running in Docker ``b1db08a` `_ * Merge pull request #95 from ranguli/patch-1 ``74e4e2c` `_ * Fix PyPI scraping ``9ffd320` `_ * Fix typo in docker-compose.yml ``389304c` `_ * Update dev-requirements pip-tools ``7db2242` `_ * Added container build action ``b50f343` `_ * create master-build.yml ``1383352` `_ * Remove docker build from test ``f9d3bc4` `_ * Only tag master build as master ``9671dac` `_ * remove linux/arm/v6 from docker platform build ``358aa59` `_ * Added rustc and cargo to Dockerfile ``3580425` `_ * remove arm build for now ``ab65836` `_ * Add remving existing requirements ``e5f60b5` `_ * Update packets to use wrapt ``967959e` `_ * Update aprsd thread base class to use queue ``9b0c626` `_ * Added click auto_envvar_prefix ``d717a22` `_ * Got webchat working with KISS tcp ``7d970cb` `_ * Updated requirements ``075078b` `_ * Dump config with aprsd dev test-plugin ``fc1ca52` `_ * Removed TimeOpenCageDataPlugin ``528bdb9` `_ * change github workflow ``17e7846` `_ * Fixed failing unit tests ``5acddbd` `_ * Remove python 3.7 from docker build github ``b41e4a9` `_ * Add support for building linux/arm/v7 ``117f81f` `_ * Build on the source not released aprsd ``d9b3973` `_ * Fixed build.sh ``d1a0a98` `_ * specify Dockerfile-dev ``4111d16` `_ * Allow passing in version to the Dockerfile ``d5e56b5` `_ * added workflow for building specific version ``d40927d` `_ * remove linux/arm/v7 for official builds for now ``5add0f9` `_ * Ignore callsign case while processing packets ``44696fb` `_ * Allow werkzeug for admin interface. ``5067f74` `_ * Allow werkzeug for admin interface. ``98fe9da` `_ * Add GPS beacon to mobile page ``ee96108` `_ * remove dev setting for template ``726c8f4` `_ * Mark packets as acked in MsgTracker ``480094b` `_ * Refactored threads a bit ``51b80cd` `_ * Update to latest Makefile.venv ``e4f93a2` `_ * Added pyopenssl for https for webchat ``6d34d9c` `_ * Update Makefile for dev vs. run environments ``576301c` `_ * Removed Makefile comment. ``935f820` `_ * Update requirements ``68472b0` `_ * Prep for 2.6.0 release ``5891c71` `_ * Update Dockerfile and build.sh ``c1db238` `_ * Update Dockerfile to 22.04 ``4fe99c3` `_ * Update workflow again ``a6015ad` `_ #### `v2.5.9 `_ .. 26 January 2022 * update build for 2.5.8 ``79270f9` `_ * Updated build and run for rich lib ``b00c8db` `_ * FIX: logging exceptions ``6257c9e` `_ #### `v2.5.8 `_ .. 7 January 2022 * Send Message command defaults to config ``a7bbde4` `_ * Added unit tests for dev test-plugin ``2f6e7e1` `_ * Renamed virtualenv dir to .aprsd-venv ``610e40a` `_ * Updated list-plugins ``764730c` `_ * Removed debug code ``e8100d8` `_ * For 2.5.8 ``29a60b7` `_ #### `v2.5.7 `_ .. 11 December 2021 * Fixed an KISS config disabled issue ``#79` `_ * Unify the logging to file and stdout ``#77` `_ * Added new feature to list-plugins command ``#76` `_ * Updated README examples ``7c653cc` `_ * more README.rst cleanup ``28b54c3` `_ * Fixed a bug with multiple notify plugins enabled ``e57a2e2` `_ * Updated Changelog ``7530bcf` `_ #### `v2.5.6 `_ .. 7 December 2021 * Unittests ``#75` `_ * Rich logging ``#74` `_ * Added LOG_LEVEL env variable for the docker ``#73` `_ * Added python rich library based logging. ``1d5f76d` `_ * Add tracing for dev command ``1233137` `_ * Fixed some pep8 errors ``b5b286e` `_ * Fixed the NotifyPlugin ``055835c` `_ * Reduced the APRSIS connection reset to 2 minutes ``d3dd087` `_ * Small cleanup on packet logging ``96cc07d` `_ * Added NotifyPlugin unit tests and more ``0ad791b` `_ * Added py39 to tox for tests ``a5184fb` `_ * Updated pytest output ``e0e7514` `_ * Added test_location to test LocationPlugin ``5d6ac5c` `_ * Added unit tests for USWeatherPlugin, USMetarPlugin ``8ea00e9` `_ * Tightened up the packet logging ``440c8d5` `_ * Changelog ``b7791eb` `_ #### `v2.5.5 `_ .. 28 November 2021 * updated docker build ``deec249` `_ * fixed the failure during loading for objectstore ``5e50792` `_ * Update requirements to use aprslib 0.7.0 ``e27887d` `_ #### `v2.5.4 `_ .. 13 November 2021 * Fixed dev command missing initialization ``6fb6105` `_ * Updated Changelog ``ade3c49` `_ #### `v2.5.3 `_ .. 12 November 2021 * Fix admin logging tab ``bda2ef0` `_ #### `v2.5.2 `_ .. 12 November 2021 * Updated Changelog ``10e34d8` `_ * Removed requirement for aprs.fi key ``7787dc1` `_ * Fix test failures ``152132b` `_ * Healthcheck command doesn't need the aprsd.yml config ``8842fb1` `_ * Don't require check-version command to have a config ``a8a6b1a` `_ * Added new list-plugins command ``446484e` `_ #### `v2.5.1 `_ .. 9 November 2021 * Removed the stock plugin ``#72` `_ * Removed stock plugin. ``9469410` `_ #### `v2.5.0 `_ .. 9 November 2021 * Refactor cli ``#71` `_ * Fixed a problem with send-message command ``49f3ea8` `_ * Updated Changelog for 4.2.3 ``30df452` `_ * Refactor the cli ``7d0006b` `_ * Pep8 failures ``2ead6a9` `_ * Removed the need for FROMCALL in dev test-plugin ``3463c6e` `_ * Added healthcheck to the cmds ``82def59` `_ * pep8 ``8287c09` `_ * Ensure common params are honored ``9187b97` `_ * Fixed test-plugin ``617973f` `_ * Reworked all the common arguments ``89727e2` `_ * Cleaned up some verbose output & colorized output ``cdcb98e` `_ * Updated Dockerfile's and build script for docker ``059cc86` `_ * Updated for v2.5.0 ``5d17809` `_ #### `v2.4.2 `_ .. 2 November 2021 * Updated Changelog ``d2e8fe6` `_ * Be more careful picking data to/from disk ``cefb581` `_ * Updated Changelog ``0d5b716` `_ #### `v2.4.1 `_ .. 25 October 2021 * Fixed email connecting to smtp server ``c8c23e6` `_ * Ensure plugins are last to be loaded. ``95fecd2` `_ #### `v2.4.0 `_ .. 22 October 2021 * Refactoring/Cleanup ``#70` `_ * 2.3.1 Changelog ``65ea332` `_ * Refactor utils usage ``23e3876` `_ * Refactored client classes ``270be94` `_ * Fixed email plugin's use of globals ``a6ed7b8` `_ * Added new Config object. ``491644e` `_ * Fixed notify plugins ``e3c5c7b` `_ * Updated dev to use plugin manager ``c097c31` `_ * Increase email delay to +10 ``fdc8c0c` `_ * Added some server startup info logs ``30671cb` `_ * Fixed issue with flask config ``f8d87d0` `_ * Fixed send-message after config/client rework ``725bb2f` `_ * removed usage of config.check_config_option ``5b17228` `_ * Updated build.sh ``db9cbf5` `_ * Updated aprsd-dev to use config for logfile format ``2bf85db` `_ * Added new HelpPlugin ``3b7924b` `_ * Added plugin version to stats reporting ``004795d` `_ * Added new SeenList ``278bb6e` `_ * Only call stop_threads if it exists ``9150f3b` `_ * Added -num option to aprsd-dev test-plugin ``9b22122` `_ * Added objectstore Mixin ``4233827` `_ * PEP8 cleanup ``135e21c` `_ * Enable configuring where to save the objectstore data ``0d51634` `_ * Added SIGTERM to signal_handler ``8ee8b14` `_ * Ensure PacketList is initialized ``66c5d85` `_ * Make sure SeenList update has a from in packet ``89701c8` `_ * Fixed unit tests ``b0d25a7` `_ * Converted MsgTrack to ObjectStoreMixin ``e009791` `_ * Updated Changelog for 2.4.0 release ``a3a3a5a` `_ #### `v2.3.1 `_ .. 13 September 2021 * Fixed packet processing issue with aprsd send-message ``69b215d` `_ * Fixed issue of aprs-is missing keepalive ``560e152` `_ #### `v2.3.0 `_ .. 8 September 2021 * Send Message via admin Web interface ``#59` `_ * Added the ability to use direwolf KISS socket ``#50` `_ * Update Dockerfile to use 2.2.1 ``a7d79a6` `_ * New Admin ui send message page working. ``23cbf32` `_ * Upgraded the send-message POC to use websockets ``c941379` `_ * Cleaned up some pep8 failures ``84ce60b` `_ * Rebased from master ``54c9a6b` `_ * Got TX/RX working with aioax25+direwolf over TCP ``f4dee4b` `_ * Updated Admin UI to show KISS connections ``ca438c9` `_ * Updated requirements ``c537b54` `_ * Added send-message to the main admin UI ``c58031d` `_ * Removed values from forms ``1635feb` `_ * Fixed email validation ``0f6df5f` `_ * Fixed issue at startup with notify plugin ``1ea6c05` `_ * Remove some noisy trace in email plugin ``558710d` `_ * Fixed a problem with the AVWX plugin not working ``8ada789` `_ * Allow passing in aprsis_client ``62ce84b` `_ * Update dev.py ``dfaf3aa` `_ * Added self creating Makefile help target ``d643ca3` `_ * Updated Makefile clean target ``4f088e0` `_ * Added Logfile tab in Admin ui ``d6b3df9` `_ * Removed fixed size on logging queue ``9eff99d` `_ * Updated Dockerfile to use v2.3.0 ``605911c` `_ * Ensure plugin threads are valid ``7e6dffb` `_ * Added enabled flag for every plugin object ``3faf41b` `_ * Enable plugins to return message object ``1b9a993` `_ * Prep 2.3.0 ``4164e89` `_ #### `v2.2.1 `_ .. 25 August 2021 * Silence some log noise ``ec92b07` `_ * Update Changelog for 2.2.1 ``44c4dd6` `_ #### `v2.2.0 `_ .. 25 August 2021 * Refactor Message processing and MORE ``#69` `_ * Fixed aprsd-dev ``d71b0df` `_ * Cleanup of the README.rst ``e8ffaa9` `_ * Updated slack channel link ``2b69446` `_ * Fixed LOG.debug issue in weather plugin ``f1f8aed` `_ * Updated tox.ini ``d6643a8` `_ * Added threads functions to APRSDPluginBase ``86777d8` `_ * Added tracking plugin processing ``8e627c9` `_ * Use Gray instead of Black for code formatting. ``e175f77` `_ * Rebase from master and run gray ``8b5f21e` `_ * Updated select timeouts ``0f384b0` `_ * Added days to uptime string formatting ``2e9b42d` `_ * Removed TXThread ``61967b5` `_ * Removed Black code style reference ``daf1e21` `_ * Updated overview image ``d5d0064` `_ * Updated Changelog for v2.2.0 ``8190353` `_ #### `v2.1.0 `_ .. 13 August 2021 * Enable multiple replies for plugins ``#68` `_ * Added showing symbol images to watch list ``be81794` `_ * Updated the charts Added the packets chart ``6740ff8` `_ * Fixed time plugin ``ed4995b` `_ * Put in a fix for aprslib parse exceptions ``840c8a9` `_ * Prep for v2.1.0 ``691b18f` `_ ### `v2.0.0 `_ .. 17 July 2021 * Reworked the notification threads and admin ui. ``#66` `_ * Refactor the plugin interface and manager ``#65` `_ * Add admin UI tabs for charts, messages, config ``#64` `_ * Dump out the config during startup ``#63` `_ * Bump urllib3 from 1.26.4 to 1.26.5 ``#61` `_ * Added aprsd version checking ``#60` `_ * Bump urllib3 from 1.26.3 to 1.26.4 ``#56` `_ * Prep for v1.6.1 release ``55862a2` `_ * Update README.rst ``2a5ef58` `_ * Update README.rst ``970b32f` `_ * Update my callsign ``b8dc6a3` `_ * Updated INSTALL.txt ``9de0df3` `_ * Added message counts for each plugin. ``3ae5717` `_ * Removed a noisy debug log ``1c66555` `_ * Added messages count to admin messages list. ``5afc7fb` `_ * reworked the admin ui to use semenatic ui more ``3c45d8b` `_ * Add new watchlist feature ``1a1fcba` `_ * Fixed the Ack thread not resending acks ``562ae52` `_ * Move version string output to top of log ``7dc4fb3` `_ * Updated overview images ``90a44bb` `_ * Fixed small bug with packets get_packet_type ``3d38402` `_ * Updated docs for 2.0.0 ``b4713b2` `_ #### `v1.6.1 `_ .. 5 April 2021 * Added aprsd web index page ``#54` `_ * Bump lxml from 4.6.2 to 4.6.3 ``#53` `_ * Bump pygments from 2.7.3 to 2.7.4 ``#55` `_ * Bump jinja2 from 2.11.2 to 2.11.3 ``#52` `_ * Bump urllib3 from 1.26.2 to 1.26.3 ``#51` `_ * Updated README docs ``b6ba90d` `_ * Dockerfile: Make creation of /config quiet failure ``2d5bb85` `_ * Updated Dockerfile for multiplatform builds ``c177748` `_ * Updated Dockerfile for multiplatform builds ``f0034fc` `_ * Updated Dockerfile and build.sh ``9f66774` `_ * Added plugin live reload and StockPlugin ``e6cafeb` `_ * Require python 3.7 and > ``933917b` `_ * Added Dockerfile-dev and updated build.sh ``239e784` `_ * Added log format and dateformat to config file ``0a038da` `_ * Updated web stats index to show messages and ram usage ``c7d10f5` `_ * Added acks with messages graphs ``f10372b` `_ * Make the index page behind auth ``6297ebe` `_ * Provide an initial datapoint on rendering index ``fb979ed` `_ * Added showing APRS-IS server to stats ``d1a2a14` `_ * Added log config for flask and lnav config file ``34d2c31` `_ * Added callsign to the web index page ``123266c` `_ * Reworked the stats dict output and healthcheck ``bf8d2c6` `_ * Added email messages graphs ``d6806c4` `_ * Force all the graphs to 0 minimum ``3ac42ed` `_ * Update Dockerfile-dev to work with startup ``3f21934` `_ * Updated stats output for KeepAlive thread ``7b019d2` `_ * Fixed version unit tests ``23c219f` `_ * Reworked Makefile to use Makefile.venv ``a4a06c9` `_ * ignore Makefile.venv ``4aac17d` `_ * Removed debug log for KeepAlive thread ``fc1ee19` `_ #### `v1.6.0 `_ .. 12 February 2021 * Bump cryptography from 3.3.1 to 3.3.2 ``#49` `_ * Branch to stabilize for the 1.6.0 release. ``#47` `_ * Bump bleach from 3.2.1 to 3.3.0 ``#48` `_ * Added healthcheck app ``#46` `_ * Flask ``#45` `_ * Allow email to be disabled. ``#44` `_ * Reworked the config file and options ``#43` `_ * Added openweathermap weather plugin ``#41` `_ * Added new time plugins ``#40` `_ * Fixed TimePlugin timezone issue ``#38` `_ * Added aprsd-dev plugin test cli and WxPlugin ``#35` `_ * Updated readme to include readthedocs link ``b9f6fcf` `_ * change query char from ? to ! ``7de2820` `_ * fix git with install.txt ``5fb363c` `_ * remove fortune white space ``ca05676` `_ * First hack at flask ``9630279` `_ * Fixed extracting lat/lon ``fefb626` `_ * Updated documentation and config output ``a35cb04` `_ * Added Flask web thread and stats collection ``5c94934` `_ * Add flask and flask_classful reqs ``cae8746` `_ * updated .gitignore ``8bfdefd` `_ * Cleaned up the KeepAlive output ``51894bb` `_ * Fixed an issue with LocationPlugin ``0d18e54` `_ * Added flask messages web UI and basic auth ``aa29069` `_ * Fixed resend email after config rework ``c1e6792` `_ * debug around EmailThread hanging or vanishing ``3ca0eef` `_ * more debug around email thread ``cfb1724` `_ * Enable debug logging for smtp and imap ``030b025` `_ * duplicate email messages from RF would generate usage response ``57d768e` `_ * Fixed email login issue. ``94bad95` `_ * Added tracing facility ``af48c43` `_ * Fixed tox pep8 failure for trace ``0b44fc0` `_ * Added memory tracing in keeplive ``db2b537` `_ * EmailThread was exiting because of IMAP timeout, added exceptions for this ``47135c6` `_ * Wrap all imap calls with try except blocks ``a5cc274` `_ * Wrap another server call with try except ``131919b` `_ * Removed some noisy debug log. ``9ba44a0` `_ * Moved docker related stuffs to docker dir ``24edcad` `_ * Updated path of run.sh for docker build ``7df6462` `_ * 1.6.0 release prep ``a266c98` `_ #### `v1.5.1 `_ .. 15 January 2021 * Update INSTALL.txt ``47ccce5` `_ * Updated README to fix pypi page ``98e3c24` `_ * Updated Changelog for v1.5.1 ``658e6b6` `_ #### `v1.5.0 `_ .. 15 January 2021 * add null reply for send_email ``#33` `_ * Updated README with more workflow details ``#31` `_ * Added Makefile for easy dev setup ``#34` `_ * backout my patch that broke tox, trying to push to craiger-test branch ``#32` `_ * Threads ``#26` `_ * Reworked messaging lib ``9768003` `_ * reworked threading ``f65707c` `_ * Added some plugin unit tests ``171703a` `_ * Added FortunePlugin unit test ``9d3ede6` `_ * Creation of MsgTrack object and other stuff ``2e90c0b` `_ * Added support to save/load MsgTrack on exit/start ``2659a0b` `_ * Added QueryPlugin ``28f3daf` `_ * Added QueryPlugin resend all delayed msgs or Flush ``af0d449` `_ * Update Changelog for v1.5.0 ``8bd8b95` `_ * Added pre-commit hooks ``75f610d` `_ * Updated README to include development env ``25d948b` `_ * Added more pre-commit hook tests ``4c0150d` `_ * don't tell radio emails were sent, ack is enuf ``99c5867` `_ * Fixed failures caused by last commit ``e83ee31` `_ * Cleaned out old ack_dict ``dbc891f` `_ * Lots of fixes ``231c15b` `_ * removed double-quote-string-fixer ``a7c2043` `_ * Fixed email shortcut lookup ``9f4cc27` `_ * Updated Makefile ``c51a945` `_ * refactor Plugin objects to plugins directory ``a385d17` `_ * refactor Plugin objects to plugins directory ``d5a34b4` `_ * Added Sphinx based documentation ``ee2aeb5` `_ * swap Query command characters a bit ``a334623` `_ * undo git disaster ``45dd3f0` `_ * Fix broken test ``1763e94` `_ * switch command characters for query plugin ``e7f2ebf` `_ * Updated build for docs tox -edocs ``bd35a61` `_ * Added some more badges to readme files ``7423df6` `_ * Disable MX record validation ``e6dee3a` `_ * Added APRSD system diagram to docs ``cc0d0fd` `_ * change query character syntax, don't reply that we're resending stuff ``0aa7fe7` `_ * Updated MsgTrack restart_delayed ``1ce2a56` `_ * Added unit test for QueryPlugin ``68e6f5b` `_ * update query plugin to resend last N messages. syntax: ?rN ``d9141dc` `_ * expect different reply from query plugin ``e1a292d` `_ * Extend APRS.IS object to change login string ``ac4c3d6` `_ * Extend APRS.IS object to change login string ``5de1b3e` `_ * getting out of git hell with client.py problems ``76bbdfc` `_ * Fixed fortune plugin failures ``7ab2613` `_ * Fixed unit test for fortune plugin ``9470802` `_ * Added a fix for failed logins to APRS-IS ``3dd23fa` `_ * Added new config for aprs.fi API Key ``bdeaf63` `_ * Added send-message login checking and --no-ack ``90c4c6c` `_ * Fixed --quiet option ``f022a3e` `_ * Added --raw format for sending messages ``54072a2` `_ * Updated docker run.sh script ``264b753` `_ * Added the ability to add comments to the config file ``cdde9c2` `_ * Fixed comments ``42b2e22` `_ * make sample config easier to interpret ``e11a84b` `_ * fixed sample-config double print ``18acd64` `_ * get rid of some debug noise from tracker and email delay ``7e3b95f` `_ * Fixed latitude reporting in locationPlugin ``4ca5c29` `_ * fix query command syntax ?, ?3, ?d(elete), ?a(ll) ``0b5c9da` `_ * fix plugin tests to expect new strings ``e7dc537` `_ * Changed default log level to INFO ``0aa905e` `_ * Removed flask code ``72fa550` `_ * Fixed the queryPlugin unit test ``74be4f8` `_ * test plugin expect responses update to match query output ``3be373d` `_ * Fixed main server client initialization ``7486770` `_ * Enabled some emailthread messages and added timestamp ``d81bfd6` `_ * fix usage statement ``f538fb2` `_ * Fix tox tests. ``0e9cfdd` `_ * Updated Changelog for v1.5.0 release ``33a0e6c` `_ #### `v1.1.0 `_ .. 21 December 2020 * Update .gitignore ``#25` `_ * Major refactor ``#23` `_ * Updated the Dockerfile to use alpine ``#24` `_ * Big patch ``fa51f8f` `_ * Fixed send-message with email command and others ``3261710` `_ * Updated README.rst ``6a61765` `_ * Updated the aprsd-slack-plugin required version ``0992ab8` `_ * Fixed issue when RX ack ``d3ee1b7` `_ * Added Changelog ``6d2160c` `_ * Updated docker-compose ``c39fdde` `_ * Ensure fortune is installed ``18b269a` `_ * Added fix for an unknown packet type ``b260954` `_ * Update README with version 1.1.0 related info ``8161719` `_ * Refactored the main process_packet method ``1d898ea` `_ #### `v1.0.1 `_ .. 15 December 2020 * Fix unknown characterset emails ``#22` `_ * Readme ``#21` `_ * Updates for building containers ``#19` `_ * Don't use the dirname for the plugin path search ``#18` `_ * Reworked Plugin loading ``#17` `_ * Fixed an issue with weather plugin ``eba093b` `_ * Updated README with development information ``3ffa416` `_ * Updated README with a TOC ``21253ff` `_ * Updated loggin timestamp to include [] ``8a62738` `_ #### v1.0.0 .. 14 December 2020 * Fixed the usage string after plugins introduced ``#16` `_ * Created plugin.py for Command Plugins ``#15` `_ * Refactor networking and commands ``#14` `_ * Update tox environment to fix formatting python errors ``#13` `_ * Click ``#12` `_ * Fixed all pep8 errors and some py3 errors ``#11` `_ * Added tox support ``#10` `_ * Fixed SMTP settings ``#9` `_ * removed ASS ``#8` `_ * Added port and fixed telnet user ``#7` `_ * Require ~/.aprsd/config.yml ``#6` `_ * Added reading of a config file ``#5` `_ * First stab at migrating this to a pypi repo structure ``#4` `_ * Added password, callsign and host ``#3` `_ * Cleaned up trailing whitespace ``#2` `_ * Added standard python main() ``#1` `_ * Initial commit ``8cea620` `_ * Add files via upload ``51579d7` `_ * Update README.md ``38d2e51` `_ * Update README.md ``6db4e6f` `_ * Update README.md ``7947d54` `_ * Update README.md ``66f8f82` `_ * Update README.md ``538e2fe` `_ * Update README.md ``e2d9478` `_ * Update README.md ``a3f1d34` `_ * Update README.md ``d31d3bd` `_ * Update README.md ``7e409c7` `_ * Update README.md ``ce66908` `_ * Update README.md ``d9b9fd9` `_ * Update README.md ``134a555` `_ * Update aprsd.py ``2330523` `_ * Update README.md ``821a34b` `_ * Add files via upload ``471af76` `_ * Update aprsd.py ``230cf45` `_ * Update README.md ``04269b3` `_ * Update README.md ``aa184a3` `_ * de-localize ``fcef019` `_ * Update README.md ``34d4da8` `_ * Update README.md ``e3a1841` `_ * Update README.md ``e74fd4f` `_ * Update README.md ``7cfde54` `_ * de-localize ``149580e` `_ * mapme ``48036f9` `_ * added weather and location ``7b74138` `_ * added weather and location 2 ``2fbc0e3` `_ * added weather and location 3 ``f1d25c0` `_ * sanitize readme ``de6ca53` `_ * sanitize readme a bit more ``b6356ce` `_ * sanitize readme a bit more ``19e747d` `_ * drop virtenv on first line ``f3e386c` `_ * tweaks to readme ``8a1c5e0` `_ * make tn a global ``d9caac6` `_ * add tweaked fuzzyclock ``7dc1c5d` `_ * comments ``174da13` `_ * Added argparse for cli options ``8b61116` `_ * First stab at migrating this to a pytpi repo ``ecd797d` `_ * First stab at migrating this to a pytpi repo ``a2b5908` `_ * readme update ``4a8181c` `_ * readme ``d3e5d35` `_ * readme again ``5ac718d` `_ * readme again again ``20c43b4` `_ * readme again again ``d98af66` `_ * sanitize readme ``8390419` `_ * update readme ``c36b14b` `_ * update readme ``b3435c0` `_ * added exit if missing config file ``e3964c5` `_ * added test to ensure shortcuts in config.yml ``8d1d293` `_ * updated README for install and usage instructions ``4eff52f` `_ * Added a try block around imap login ``89d038e` `_ * select inbox if gmail server ``7abc470` `_ * Created fake_aprs.py ``bd47a2b` `_ * Update README.md ``1f31ba0` `_ * fix INBOX ``78add91` `_ * fix bugs after beautification and yaml config additions. Convert to sockets. case insensitive commands ``abc6379` `_ * INSTALL.txt for the average person ``f175f7e` `_ * fix check_email_thread to do proper threading, take delay as arg ``b552f96` `_ * fix check_email_thread to do proper threading, take delay as arg ``e171e16` `_ * socket reconnect on timeout testing ``5e96706` `_ * socket reconnect on timeout testing ``712d66c` `_ * Reconnect on socket timeout ``b553987` `_ * Reconnect on socket timeout ``ecd0e8f` `_ * Reconnect on socket timeout ``766acbb` `_ * socket timeout of 300 instead of 60 ``32e146d` `_ * added decaying email check timer which resets with activity ``cf73add` `_ * George Carlin profanity filter ``3ae7a05` `_ * Update INSTALL.txt ``89069af` `_ * Update INSTALL.txt ``ef132d8` `_ * Update INSTALL.txt ``d1ab8bc` `_ * main loop went into tight loop, added debug print before every continue ``b597228` `_ * main loop went into tight loop, more debug prints ``a4faa76` `_ * Update INSTALL.txt ``54a2c01` `_ * more debugging messages trying to find rare tight loop in main ``3d7e3a4` `_ * Update INSTALL.txt ``22f7123` `_ * can detect closed socket and reconnect now ``b8f37fa` `_ * Detect closed socket, reconnect, with a bit more grace ``4b67df2` `_ * socket timeout 5 minutes ``e6995c3` `_ * clean up code around closed_socket and reconnect ``735cb3a` `_ * clean up code around closed_socket and reconnect ``371a7a0` `_ * fix parse_email unicode probs by using body.decode(errors='ignore') ``44228c6` `_ * fix parse_email unicode probs by using body.decode(errors='ignore').. again ``3c16149` `_ * some failed attempts at getting the first txt or html from a multipart message, currently sends the last ``90fcb99` `_ * found another .decode that didn't include errors='ignore' ``f69f9a2` `_ * Initial conversion to click ``50fb090` `_ * Update INSTALL.txt ``9cd6542` `_ * imap tags are unicode in py3. .decode tags ``4b09fad` `_ * switch from urlib to requests for weather, tested in py3 and py2. still need to update locate, and all other http calls ``00432cf` `_ * cleaned up weather code after switch to requests ... from urllib. works on py2 and py3 ``ad0f96d` `_ * add urllib import back until i replace all calls with requests ``b38f561` `_ * completely off urllib now, tested locate/weather in py2 and py3 ``86bf428` `_ * lose some logging statements ``c5517a7` `_ * fixed fortune. yet another unicode issue, tested in py3 and py2 ``2bebd83` `_ * reset default email check delay to 60, fix a few comments ``d3bb44f` `_ * yet another unicode problem, in resend_email fixed ``bb1a2ee` `_ * get rid of some debug statements ``43509ea` `_ * Rewrote the README.md to README.rst ``e1edbe6` `_