1
0
Fork 0

fix satellite structured data

fixes #431

Signed-off-by: Julien Flawinne <jf.satnogs at protonmail dot com>
spacecruft
deckbsd 2020-12-03 20:06:41 +01:00 committed by deck
parent 9e8e1b169f
commit c07696c80e
1 changed files with 33 additions and 20 deletions

View File

@ -66,31 +66,44 @@ class SatelliteStructuredData(StructuredData):
"status": "status",
"decoder": "decoder"
}
if isinstance(data, dict):
self.data = self.structure_satellite_data(data)
return
structured_data = []
satellite_id_domain = Site.objects.get_current().domain + '/satellite/'
for satellite in data:
data_to_append = {
"satellite": {
"@id": satellite_id_domain + str(satellite['norad_cat_id']),
"norad_cat_id": satellite['norad_cat_id'],
"name": satellite['name'],
"status": satellite['status'],
}
}
if satellite['names']:
data_to_append['satellite']['names'] = satellite['names'].replace('\r',
'').split('\n')
if satellite['telemetries']:
data_to_append['satellite']['decoder'] = []
for decoder in satellite['telemetries']:
data_to_append['satellite']['decoder'].append(decoder["decoder"])
data_to_append = self.structure_satellite_data(satellite)
structured_data.append(data_to_append)
self.data = structured_data
@staticmethod
def structure_satellite_data(satellite):
"""Return structured data for one satellite.
:param satellite: the satellite to be structured
"""
satellite_id_domain = Site.objects.get_current().domain + '/satellite/'
data_to_append = {
"satellite": {
"@id": satellite_id_domain + str(satellite['norad_cat_id']),
"norad_cat_id": satellite['norad_cat_id'],
"name": satellite['name'],
"status": satellite['status'],
}
}
if satellite['names']:
data_to_append['satellite']['names'] = satellite['names'].replace('\r', '').split('\n')
if satellite['telemetries']:
data_to_append['satellite']['decoder'] = []
for decoder in satellite['telemetries']:
data_to_append['satellite']['decoder'].append(decoder["decoder"])
return data_to_append
class TransmitterStructuredData(StructuredData):
"""Generic structered data class for Transmitter model"""