Ian Renton and Claude Sonnet 5
e33eecbc4e
Fix mojibake in DX cluster and RBN spot comments
...
Both providers always decoded telnet bytes as Latin-1, which silently
mangles nodes that send UTF-8 (Latin-1 decode never raises, so mixed
encodings across cluster nodes went unnoticed). Added a shared
decode_telnet_bytes() helper that tries UTF-8 first and falls back to
Latin-1, since a byte stream that happens to be valid multi-byte UTF-8
is essentially never accidental Latin-1 text.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com >
2026-09-20 19:08:05 +01:00
Ian Renton
9272766ffb
Fix order in which grids are parsed out of comments
2026-09-20 19:01:48 +01:00
Ian Renton
6f96e0ede1
Improve some activity detection
2026-09-20 10:32:53 +01:00
Ian Renton
190c9f6cef
Improve handling of GMA SOTA spots, SOTA references in comments, and grids in comments on VHF
2026-09-20 10:25:08 +01:00
Ian Renton
d33259d619
Fix a bug in PNP spot handling where an exception would be thrown if an activity had a location name but not a reference ID.
2026-09-20 10:10:39 +01:00
Ian Renton
2df7ecf4b5
Prevent ruff running on a couple of lines where catching and not logging an exception is a deliberate choice.
2026-09-20 09:55:22 +01:00
Ian Renton
1b41520f7c
Merge branch 'main' into 147-sig-activity-changes
...
# Conflicts:
# core/constants.py
# pyproject.toml
2026-09-20 09:51:29 +01:00
Ian Renton
ed172a0063
Release 2.1.3
2026-09-20 09:48:10 +01:00
Ian Renton
f45b7d51b0
Give threads less time to shut down gracefully. Attempt shutdown() rather than stop() on the telnet connections to see if that improves things
2026-09-19 15:07:31 +01:00
Ian Renton
0eb4553406
Merge remote-tracking branch 'origin/main'
...
# Conflicts:
# templates/add_spot.html
# templates/alerts.html
# templates/bands.html
# templates/base.html
# templates/conditions.html
# templates/map.html
# templates/spots.html
# templates/status.html
2026-09-19 10:49:36 +01:00
Ian Renton
682e2c267c
Improve handling of empty JSON repsonses from ParksNPeaks (and potentially others)
2026-09-19 10:49:09 +01:00
Ian Renton
f39215ecdd
Attempt at fixing slight hscroll on mobile
2026-09-19 08:33:15 +01:00
Ian Renton
c9c8ffc1f7
If cache load fails because objects are from a different version and throw an exception, clear the cache.
2026-09-19 08:04:50 +01:00
Ian Renton
59d5f61d90
Potential fix for an issue where the telnet client was reconnecting right at the same time we try to shut down spothole, causing the stop() method to close one telnet object but then a new one is created and read from anyway.
2026-09-19 07:55:12 +01:00
Ian Renton
ab81c136cc
Release 2.1.1
2026-09-18 21:37:05 +01:00
Ian Renton
c1c9bcd5ae
Merge branch 'main' into 147-sig-activity-changes
2026-09-18 21:35:56 +01:00
Ian Renton
f0df4f38ca
Turns out "if x in list" returns true if list[x] = None, so guard against that by checking list.get(x) instead
2026-09-18 21:33:26 +01:00
Ian Renton
a24e03028b
Restrict the activities that we display on the alerts page's filters to just ones that can actually be in alerts #147
2026-09-18 21:20:42 +01:00
Ian Renton
54d779f036
Allow QRP spots from PnP APIs #147
2026-09-18 20:56:46 +01:00
Ian Renton
7bdc26c926
Activity filter on upcoming page #147
2026-09-18 20:49:24 +01:00
Ian Renton
eea045e4b8
Merge branch 'main' into 147-sig-activity-changes
...
# Conflicts:
# providers/activityrefdata/activity_ref_data_provider.py
2026-09-18 18:58:22 +01:00
Ian Renton
4b51dd9ba5
(Hopefully) fix a bug where several sig ref data providers try to write to the data store simultaneously on startup.
2026-09-18 18:57:18 +01:00
Ian Renton
c2c3981cda
If a spot has no other activity but its DX call does match a call from an ongoing DXpedition, assign that activity to it. Closes #147
2026-09-18 18:45:06 +01:00
Ian Renton
1a1743d11c
ruff fixes
2026-09-18 18:38:35 +01:00
Ian Renton
40033d122e
Add a has_refs field to activities #147
2026-09-18 18:28:30 +01:00
Ian Renton
e5caf7353d
Refactor activity names to use an enum instead of a string to avoid typos #147
2026-09-18 18:09:41 +01:00
Ian Renton
ab79e7e01c
More About page tweaks. #147
2026-09-18 17:31:31 +01:00
Ian Renton
75905c5ef7
Add /AM and /MM activities, fix up activities list in OpenAPI spec, few more About page tweaks. #147
2026-09-18 17:29:21 +01:00
Ian Renton
0ad0d25c70
Add QRP and RaDAR Rally activities
2026-09-18 17:14:24 +01:00
Ian Renton
51798fbc81
Doc updates
2026-09-18 17:10:30 +01:00
Ian Renton
cea90695ba
Now that SIGs are rebranded as Activities, we can merge DXpedition and Contest into that without it being too weird, and get rid of AlertType #147
2026-09-18 16:50:00 +01:00
Ian Renton
bf9b4ac68c
In the JS UI, turn each category of Activity into a collapsible section to save space #147
2026-09-18 15:45:23 +01:00
Ian Renton
81cd686a00
Giant refactor to rebrand "SIG" as "Activity" anywhere that doesn't touch API or config file (which is to be addressed in a future breaking change). #147
2026-09-18 14:54:11 +01:00
Ian Renton
556ea56378
v2.1 release
2026-09-18 12:44:09 +01:00
Ian Renton
a367888e14
Missed a couple of _stop_events
2026-09-18 09:27:15 +01:00
Ian Renton
29d8654234
Use _stop_event consistently across all threads as the way to signal that it should stop. Add thread joins with timeouts to allow the program to exit cleanly
2026-09-18 09:21:38 +01:00
Ian Renton
d79c8f72c8
Add missing SIGs to OpenAPI spec
2026-09-18 07:58:55 +01:00
Ian Renton
a03e1336c8
Code review fixes
2026-09-18 07:56:08 +01:00
Ian Renton
0fa8cd763d
Add support for Diplôme des Moulins de France
2026-09-18 07:38:30 +01:00
Ian Renton
4261c60d74
Improve protection against old unsupported objects (e.g. LocationSourceForCallsign.NONE) coming back from the cache and throwing exceptions
2026-09-18 07:28:29 +01:00
Ian Renton
29eea1edc0
Telnet fixes and banner
2026-09-12 08:40:50 +01:00
Ian Renton
7c458a8c5b
Extract webserver metrics into a separate class to avoid passing it into every API call. Change the display to requests per hour rather than just last request time. Add SSE and telnet client connected count.
2026-09-11 22:32:04 +01:00
Ian Renton
4a09e46fe0
Improve asyncio usage in telnet server
2026-09-11 21:38:22 +01:00
Ian Renton
e3df512b9e
Add telnet server
2026-09-11 16:23:10 +01:00
Ian Renton
ee45a15b4e
Add telnet server
2026-09-11 16:18:09 +01:00
Ian Renton
5e56cd3b19
Add telnet server
2026-09-11 15:55:57 +01:00
Ian Renton
04f5df5260
Alerts now displays a "Type" in the table not just the source. Closes #142
2026-09-11 14:43:33 +01:00
Ian Renton
8f8ff46426
country-files.com seems more reliable than Clublog at locating some calls, trying it out as higher priority
2026-09-11 09:47:53 +01:00
Ian Renton
2e51d5fdb2
Doc updates
2026-09-11 08:36:49 +01:00
Ian Renton
3bab3cb784
Add EME SIG and do some refactoring
2026-09-11 08:33:00 +01:00
Ian Renton
a4245ed5ce
Support Hamsat alerts and use an AMSAT SIG for satellite spots
2026-09-11 08:18:34 +01:00
Ian Renton
64bb8ef3eb
Fix a potential NPE and a case where callsign location source could be reported as None instead of DXCC.
2026-09-11 07:32:15 +01:00
Ian Renton
3b575de36a
Fix SSE timeout
2026-09-10 17:58:02 +01:00
Ian Renton
94dc9044c4
Add support for WA7BNM Contest Calendar. Closes #106
2026-09-10 16:45:40 +01:00
Ian Renton
be625c40a4
Add "fields" query parameter to spots and alerts API calls. Closes #140
2026-09-10 07:54:34 +01:00
Ian Renton
0fcc459cc4
Fix some dodgy handling of DME references
2026-09-05 10:24:18 +01:00
Ian Renton
e52790f07d
Alerts page layout fixes
2026-09-05 10:19:53 +01:00
Ian Renton
237cdaa091
Fix icon and ref_type disappearing from SIG Ref lookups
2026-09-05 10:14:37 +01:00
Ian Renton
df724409a5
Fix some dodgy handling of DME references
2026-09-05 09:57:05 +01:00
Ian Renton
3e4327ec0c
Add icons back to spots & alerts
2026-09-05 09:48:56 +01:00
Ian Renton
d6e53c14e9
Support RSGB contests
2026-09-05 09:00:32 +01:00
Ian Renton
d3d1d20821
Support DMVE, DMUE, DCE, DEFE. Closes #137
2026-09-04 19:35:48 +01:00
Ian Renton
ab86bdc4d6
Improve error handling and PWA manifest
2026-09-04 17:50:35 +01:00
Ian Renton
d7202f208c
Allow ACS as well as AS for aircraft scatter
2026-09-04 17:38:46 +01:00
Ian Renton
9d117a6069
Split out event type SIGs, and do other enum conversions. Closes #138
2026-09-02 09:38:05 +01:00
Ian Renton
606cf1be68
Start converting some enum-like strings to proper enums, plus global reformat
2026-09-02 08:37:13 +01:00
Ian Renton
5a6fc19ab5
dxstats.py now uses is_ham_hf flag on bands list instead of providing its own. Closes #139
2026-09-02 07:46:02 +01:00
Ian Renton
9258d680fc
Overnight bug fixes
2026-09-02 07:40:57 +01:00
ian
8189be699e
Consider 6m a de facto HF band
2026-09-02 06:33:13 +00:00
Ian Renton
fa2e4b929a
Start converting some enum-like strings to proper enums
2026-09-02 07:26:02 +01:00
Ian Renton
55eaa871e9
Remove accidentally committed debug code
2026-08-31 21:54:43 +01:00
Ian Renton
1b62d4742b
Support PGA. Closes #135
2026-08-31 21:54:13 +01:00
Ian Renton
b0caf697ae
Support COTA. Closes #131
2026-08-31 21:17:55 +01:00
Ian Renton
a33f02491d
Avoid polling GIRO stations that don't return any data
2026-08-31 20:54:21 +01:00
Ian Renton
892827f1f8
Allow some SIG refs to be picked up from comments without separate SIG name. Closes #134
2026-08-31 20:49:15 +01:00
Ian Renton
e4738b2c7d
Split SIGs list into Worldwide, Regional and Other. Closes #133
2026-08-31 18:38:19 +01:00
Ian Renton
f42fd237b1
Move icons back into SIG data
2026-08-31 17:57:04 +01:00
Ian Renton
d83a979e46
Move icons back into SIG data
2026-08-31 17:31:13 +01:00
Ian Renton
12e9b6a4ca
Remove distinction between DV modes and LSB/USB
2026-08-31 11:17:05 +01:00
Ian Renton
8345238d76
Tweak FEA reference handling, add understanding of BIWOTA, remove some unused junk from ui-ham.js
2026-08-31 11:05:53 +01:00
Ian Renton
bc326388ac
Add support for FEA
2026-08-31 09:39:05 +01:00
Ian Renton
df684a601d
Fix an exception on shutdown
2026-08-31 09:00:23 +01:00
Ian Renton
9083470482
Add support for DTMBA
2026-08-31 08:59:49 +01:00
Ian Renton
ba56acd7ac
Fix a bug where solar conditions and status data were not properly persisted to disk between restarts. Release v2.0.5
2026-08-29 09:17:24 +01:00
Ian Renton
8451ca2727
Release v2.0.4
2026-08-29 08:40:11 +01:00
Ian Renton
7ae77e9fb2
Encourage cluster spot sources to simply be named "Cluster" as the specific node shouldn't matter
2026-08-29 08:37:21 +01:00
Ian Renton
c3a360e691
Consistency about whether "GMA Islands" is plural or not; widen columns on SIG list so it doesn't wrap
2026-08-29 08:34:04 +01:00
Ian Renton
2a4190ec4a
Fix GIRO data source. Release v2.0.3
2026-08-28 21:47:25 +01:00
Ian Renton
c71c0e9d75
Release v2.0.2
2026-08-28 16:10:02 +01:00
Ian Renton
f2ef6e93fa
Merge remote-tracking branch 'origin/main'
...
# Conflicts:
# core/constants.py
# pyproject.toml
# templates/add_spot.html
# templates/alerts.html
# templates/bands.html
# templates/base.html
# templates/conditions.html
# templates/map.html
# templates/spots.html
# templates/status.html
2026-08-28 15:46:24 +01:00
Ian Renton
d63897f8ad
Provide CartoDB API key
2026-08-28 15:43:52 +01:00
Ian Renton
02e2730e47
v2.0.1 release
2026-08-28 07:59:10 +01:00
Ian Renton
b2719d2cd6
Fix a bug where the default maximum spot age was not being applied on first access of the web UI
2026-08-28 07:52:15 +01:00
ian
b9268dd4ca
Update pyproject.toml
2026-08-25 20:42:07 +00:00
ian
0cce38b0ab
Update core/constants.py
2026-08-25 20:41:53 +00:00
ian
5a77248dbc
Fix a bug in calling the V1 add spot endpoint
2026-08-25 20:41:12 +00:00
Ian Renton
14e4886c1b
v2.0 release
2026-08-22 08:11:03 +01:00
Ian Renton
f346444ec3
Defensive coding improvements
2026-08-22 08:08:27 +01:00
Ian Renton
6f21ac83b7
Add timestamp to log output
2026-08-22 08:07:34 +01:00
Ian Renton
a20c29cdd1
GMA Islands support
2026-08-22 08:04:24 +01:00