Improve the way hamsat alerts work, and add the ability to detect satellite names from spot comments. Closes #149

This commit is contained in:
Ian Renton
2026-09-23 22:08:36 +01:00
parent 981fea57ed
commit c26482f06b
15 changed files with 90 additions and 35 deletions
+9 -6
View File
@@ -22,17 +22,20 @@ class Hamsat(HTTPAlertProvider):
# Iterate through source data
for source_alert in http_response.json()["data"]:
# Convert to our alert format
freqs_modes = source_alert.get("mode", "")
if "mhz" in source_alert:
if "mhz_direction" in source_alert:
freqs_modes = f"{source_alert['mhz']!s} {source_alert['mhz_direction']}, {freqs_modes}"
freqs_modes = source_alert.get("mode") or ""
mhz = source_alert.get("mhz")
if mhz is not None:
mhz_direction = source_alert.get("mhz_direction")
if mhz_direction is not None:
freqs_modes = f"{mhz!s} {mhz_direction}, {freqs_modes}"
else:
freqs_modes = f"{source_alert['mhz']!s}, {freqs_modes}"
freqs_modes = f"{mhz!s}, {freqs_modes}"
alert = Alert(
source=self.name,
source_id=source_alert["id"],
dx_calls=[source_alert["callsign"].upper()],
dx_grid=source_alert["grids"][0],
freqs_modes=freqs_modes,
comment=source_alert["comment"],
sig=ActivityName.SATELLITE,
@@ -40,7 +43,7 @@ class Hamsat(HTTPAlertProvider):
sig_refs=[
ActivityRef(
sig=ActivityName.SATELLITE,
id=f"{source_alert['satellite']['name']} from {source_alert['grids'][0]}",
id=source_alert["satellite"]["name"],
)
],
start_time=datetime.strptime(source_alert["aos_at"], "%Y-%m-%dT%H:%M:%SZ")