Refactor of caching & data storage part 17 #118

This commit is contained in:
Ian Renton
2026-08-04 22:11:34 +01:00
parent 459d999f57
commit 62b3414d29
31 changed files with 135 additions and 67 deletions
@@ -32,7 +32,7 @@ class FileDownloadCallsignDataProvider(CallsignDataProvider):
# subsequent polls, so start() returns immediately and the application can continue starting.
logging.info(
"Set up query of " + self.name + " callsign reference data every " + str(self._poll_interval) + " days.")
self._thread = Thread(target=self._run, daemon=True)
self._thread = Thread(target=self._run, name=f"FileDownloadCallsignDataProvider-{self.name}")
self._thread.start()
def stop(self):
+2 -2
View File
@@ -77,11 +77,11 @@ class HamQTH(APIQueryCallsignDataProvider):
self._HAMQTH_BASE_URL + "?id=" + session_id + "&callsign=" + urllib.parse.quote_plus(
lookup_call) + "&prg=" + self._PRG, headers=HTTP_HEADERS, timeout=10)
if response.ok:
# Found data, convert it to our object and return it
data = xmltodict.parse(response.content)["HamQTH"]["search"]
self.status = "OK"
self.last_update_time = datetime.now(pytz.UTC)
self.lookup_count += 1
# Found data, convert it to our object and return it
data = xmltodict.parse(response.content)["HamQTH"]["search"]
return self.hamqth_response_to_callsign(callsign, data)
elif not response.from_cache:
+2 -1
View File
@@ -79,11 +79,12 @@ class QRZ(APIQueryCallsignDataProvider):
qrz_response = xmltodict.parse(response.content).get("QRZDatabase", {})
if qrz_response:
if "Callsign" in qrz_response:
qrz_data = qrz_response.get("Callsign")
self.status = "OK"
self.last_update_time = datetime.now(pytz.UTC)
self.lookup_count += 1
# Found data, convert it to our object and return it
return self.qrz_response_to_callsign(callsign, qrz_response.get("Callsign"))
return self.qrz_response_to_callsign(callsign, qrz_data)
elif "Session" in qrz_response and "Error" in qrz_response.get("Session"):
# Errors here are normally just "callsign not in database", no need to log that ourselves