diff --git a/providers/callsigndata/callsign_data_provider.py b/providers/callsigndata/callsign_data_provider.py index f8d9b43..6281a51 100644 --- a/providers/callsigndata/callsign_data_provider.py +++ b/providers/callsigndata/callsign_data_provider.py @@ -1,3 +1,4 @@ +import logging from datetime import datetime import pytz diff --git a/providers/callsigndata/hamqth.py b/providers/callsigndata/hamqth.py index 1836e64..9216d27 100644 --- a/providers/callsigndata/hamqth.py +++ b/providers/callsigndata/hamqth.py @@ -29,7 +29,8 @@ class HamQTH(APIQueryCallsignDataProvider): expire_after=timedelta(minutes=55)) def _perform_new_lookup(self, callsign, lookup_credentials): - # If we don't have HamQTH credentials, skip this lookup + # If we don't have HamQTH credentials, skip this lookup Return None so we don't *cache* the lack of data, because + # # someone might provide credentials next time around. if not lookup_credentials or not ((lookup_credentials.hamqth_username and lookup_credentials.hamqth_password) or lookup_credentials.hamqth_session_key): return None @@ -75,6 +76,8 @@ class HamQTH(APIQueryCallsignDataProvider): self._HAMQTH_BASE_URL + "?id=" + session_key + "&callsign=" + urllib.parse.quote_plus( lookup_call) + "&prg=" + self._PRG, headers=HTTP_HEADERS, timeout=10) if response.ok: + self.status = "OK" + self.last_update_time = datetime.now(pytz.UTC) data = xmltodict.parse(response.content)["HamQTH"]["search"] # Found data, convert it to our object and return it return self.hamqth_response_to_callsign(callsign, data) diff --git a/providers/callsigndata/qrz.py b/providers/callsigndata/qrz.py index f3778e3..839ef83 100644 --- a/providers/callsigndata/qrz.py +++ b/providers/callsigndata/qrz.py @@ -27,7 +27,8 @@ class QRZ(APIQueryCallsignDataProvider): expire_after=timedelta(minutes=55)) def _perform_new_lookup(self, callsign, lookup_credentials): - # If we don't have QRZ credentials, skip this lookup + # If we don't have QRZ credentials, skip this lookup. Return None so we don't *cache* the lack of data, because + # someone might provide credentials next time around. if not lookup_credentials or not ((lookup_credentials.qrz_username and lookup_credentials.qrz_password) or lookup_credentials.qrz_session_key): return None @@ -77,6 +78,8 @@ class QRZ(APIQueryCallsignDataProvider): qrz_response = xmltodict.parse(response.content).get("QRZDatabase", {}) if qrz_response: if "Callsign" in qrz_response: + self.status = "OK" + self.last_update_time = datetime.now(pytz.UTC) # Found data, convert it to our object and return it return self.qrz_response_to_callsign(callsign, qrz_response.get("Callsign"))