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,10 +66,25 @@ class SatelliteStructuredData(StructuredData):
"status": "status", "status": "status",
"decoder": "decoder" "decoder": "decoder"
} }
structured_data = []
satellite_id_domain = Site.objects.get_current().domain + '/satellite/'
if isinstance(data, dict):
self.data = self.structure_satellite_data(data)
return
structured_data = []
for satellite in data: for satellite in data:
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 = { data_to_append = {
"satellite": { "satellite": {
"@id": satellite_id_domain + str(satellite['norad_cat_id']), "@id": satellite_id_domain + str(satellite['norad_cat_id']),
@ -80,16 +95,14 @@ class SatelliteStructuredData(StructuredData):
} }
if satellite['names']: if satellite['names']:
data_to_append['satellite']['names'] = satellite['names'].replace('\r', data_to_append['satellite']['names'] = satellite['names'].replace('\r', '').split('\n')
'').split('\n')
if satellite['telemetries']: if satellite['telemetries']:
data_to_append['satellite']['decoder'] = [] data_to_append['satellite']['decoder'] = []
for decoder in satellite['telemetries']: for decoder in satellite['telemetries']:
data_to_append['satellite']['decoder'].append(decoder["decoder"]) data_to_append['satellite']['decoder'].append(decoder["decoder"])
structured_data.append(data_to_append) return data_to_append
self.data = structured_data
class TransmitterStructuredData(StructuredData): class TransmitterStructuredData(StructuredData):