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
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
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
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
682e2c267c
Improve handling of empty JSON repsonses from ParksNPeaks (and potentially others)
2026-09-19 10:49:09 +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
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
54d779f036
Allow QRP spots from PnP APIs #147
2026-09-18 20:56:46 +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
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
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
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
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
a03e1336c8
Code review fixes
2026-09-18 07:56:08 +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
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
a4245ed5ce
Support Hamsat alerts and use an AMSAT SIG for satellite spots
2026-09-11 08:18:34 +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
df724409a5
Fix some dodgy handling of DME references
2026-09-05 09:57:05 +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
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
9258d680fc
Overnight bug fixes
2026-09-02 07:40:57 +01:00
Ian Renton
fa2e4b929a
Start converting some enum-like strings to proper enums
2026-09-02 07:26:02 +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
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
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
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
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
f346444ec3
Defensive coding improvements
2026-08-22 08:08:27 +01:00
Ian Renton
1fd6611ac2
GMA Islands support
2026-08-22 08:02:57 +01:00
Ian Renton
c5d6a65786
Bug fixes and minor doc clarifications
2026-08-20 07:30:21 +01:00
Ian Renton
7f1a5ae3be
Overnight bug fixes
2026-08-18 17:56:31 +01:00
Ian Renton
38bc03a603
Improve checking callsign validity by regex, and fix passing v1 type credentials into v2 APIs
2026-08-17 16:30:24 +01:00
Ian Renton
03164d747f
More defensive coding
2026-08-17 13:43:40 +01:00
Ian Renton
7623ae667e
Overnight bug fixes
2026-08-17 06:47:20 +01:00