1
0
Fork 0

Fix wrong break statements and optimize django query

Fixes issue 427

Signed-off-by: Patrick Dohmen <dl4pd@darc.de>
spacecruft
Patrick Dohmen 2020-09-24 14:16:05 +02:00
parent 8e2f52a59f
commit cb0b00e304
No known key found for this signature in database
GPG Key ID: ED687298E5D24FC5
1 changed files with 8 additions and 6 deletions

View File

@ -15,8 +15,8 @@ from influxdb import InfluxDBClient
from satnogsdecoders import __version__ as decoders_version
from satnogsdecoders import decoder
from db.base.models import DemodData, LatestTleSet, Mode, Satellite, \
Telemetry, Tle, Transmitter
from db.base.models import DemodData, LatestTleSet, Mode, Satellite, Tle, \
Transmitter
LOGGER = logging.getLogger('db')
@ -295,7 +295,8 @@ def decode_data(norad, period=None, handle=None): # pylint: disable=R0912,R0914
:param handle: if handle exists, we are trying to decode the currently
saved frame that got in
"""
sat = Satellite.objects.get(norad_cat_id=norad)
sat = Satellite.objects.prefetch_related('telemetries').get(norad_cat_id=norad)
if not sat.telemetry_decoder_count:
return
@ -308,7 +309,8 @@ def decode_data(norad, period=None, handle=None): # pylint: disable=R0912,R0914
data = DemodData.objects.filter(id=handle)
else:
data = DemodData.objects.filter(satellite=sat)
telemetry_decoders = Telemetry.objects.filter(satellite=sat)
telemetry_decoders = sat.telemetries.all()
# iterate over DemodData objects
for obj in data:
@ -336,7 +338,7 @@ def decode_data(norad, period=None, handle=None): # pylint: disable=R0912,R0914
obj.payload_decoded = 'influxdb'
obj.is_decoded = True
obj.save()
break
continue
except Exception: # pylint: disable=W0703
obj.is_decoded = False
obj.save()
@ -356,7 +358,7 @@ def decode_data(norad, period=None, handle=None): # pylint: disable=R0912,R0914
obj.payload_decoded = json_obj
obj.is_decoded = True
obj.save()
break
continue
except (IOError, binascii.Error) as error:
LOGGER.error(error, exc_info=True)
continue