mirror of
https://git.ianrenton.com/ian/spothole.git
synced 2025-10-27 08:49:27 +00:00
First commit
This commit is contained in:
58
core/utils.py
Normal file
58
core/utils.py
Normal file
@@ -0,0 +1,58 @@
|
||||
from core.constants import BANDS, UNKNOWN_BAND
|
||||
from pyhamtools import LookupLib, Callinfo
|
||||
|
||||
# Static lookup helpers from pyhamtools
|
||||
# todo in future add QRZ as a second lookup option in case it provides more data?
|
||||
lookuplib = LookupLib(lookuptype="countryfile")
|
||||
callinfo = Callinfo(lookuplib)
|
||||
|
||||
# Infer a "mode family" from a mode.
|
||||
def infer_mode_family_from_mode(mode):
|
||||
if mode.upper() == "CW":
|
||||
return "CW"
|
||||
elif mode.upper() in ["PHONE", "SSB", "USB", "LSB", "AM", "FM", "DMR", "DSTAR", "C4FM", "M17"]:
|
||||
return "PHONE"
|
||||
else:
|
||||
return "DIGI"
|
||||
|
||||
# Infer a band from a frequency in kHz
|
||||
def infer_band_from_freq(freq):
|
||||
for b in BANDS:
|
||||
if b.start_freq <= freq <= b.end_freq:
|
||||
return b
|
||||
return UNKNOWN_BAND
|
||||
|
||||
# Infer a country name from a callsign
|
||||
def infer_country_from_callsign(call):
|
||||
try:
|
||||
return callinfo.get_country_name(call)
|
||||
except KeyError as e:
|
||||
return None
|
||||
|
||||
# Infer a DXCC ID from a callsign
|
||||
def infer_dxcc_id_from_callsign(call):
|
||||
try:
|
||||
return callinfo.get_adif_id(call)
|
||||
except KeyError as e:
|
||||
return None
|
||||
|
||||
# Infer a continent shortcode from a callsign
|
||||
def infer_continent_from_callsign(call):
|
||||
try:
|
||||
return callinfo.get_continent(call)
|
||||
except KeyError as e:
|
||||
return None
|
||||
|
||||
# Infer a CQ zone from a callsign
|
||||
def infer_cq_zone_from_callsign(call):
|
||||
try:
|
||||
return callinfo.get_cqz(call)
|
||||
except KeyError as e:
|
||||
return None
|
||||
|
||||
# Infer a ITU zone from a callsign
|
||||
def infer_itu_zone_from_callsign(call):
|
||||
try:
|
||||
return callinfo.get_ituz(call)
|
||||
except KeyError as e:
|
||||
return None
|
||||
Reference in New Issue
Block a user