Пример #1
0
    def handle(self, *args, **options):
        for item in args:
            if options['delete']:
                try:
                    Satellite.objects.get(norad_cat_id=item).delete()
                    self.stdout.write('Satellite {}: deleted'.format(item))
                    continue
                except Satellite.DoesNotExist:
                    raise CommandError(
                        'Satellite with Identifier {} does not exist'.format(
                            item))

            try:
                sat = satellite(item)
            except IndexError:
                raise CommandError(
                    'Satellite with Identifier {} does not exist'.format(item))

            try:
                obj = Satellite.objects.get(norad_cat_id=item)
            except Satellite.DoesNotExist:
                obj = Satellite(norad_cat_id=item)

            obj.name = sat.name()
            tle = sat.tle()
            obj.tle0 = tle[0]
            obj.tle1 = tle[1]
            obj.tle2 = tle[2]
            obj.save()

            self.stdout.write('fetched data for {}: {}'.format(
                obj.norad_cat_id, obj.name))
Пример #2
0
    def handle(self, *args, **options):
        for item in args:
            if options['delete']:
                try:
                    Satellite.objects.get(norad_cat_id=item).delete()
                    self.stdout.write('Satellite {}: deleted'.format(item))
                    continue
                except:
                    raise CommandError('Satellite with Identifier {} does not exist'.format(item))

            try:
                sat = satellite(item)
            except:
                raise CommandError('Satellite with Identifier {} does not exist'.format(item))

            try:
                obj = Satellite.objects.get(norad_cat_id=item)
            except:
                obj = Satellite(norad_cat_id=item)

            obj.name = sat.name()
            tle = sat.tle()
            obj.tle0 = tle[0]
            obj.tle1 = tle[1]
            obj.tle2 = tle[2]
            obj.save()

            self.stdout.write('fetched data for {}: {}'.format(obj.norad_cat_id, obj.name))
Пример #3
0
    def handle(self, *args, **options):
        apiurl = settings.DB_API_ENDPOINT
        satellites_url = "{0}satellites".format(apiurl)
        transmitters_url = "{0}transmitters".format(apiurl)
        self.stdout.write("Fetching from: {0}".format(satellites_url))
        try:
            satellites = urllib2.urlopen(satellites_url).read()
            transmitters = urllib2.urlopen(transmitters_url).read()
        except:
            raise CommandError('API is unreachable')

        for satellite in json.loads(satellites):
            norad_cat_id = satellite['norad_cat_id']
            name = satellite['name']
            try:
                sat = Satellite.objects.get(norad_cat_id=norad_cat_id)
                self.stdout.write('Satellite {0}-{1} already exists'.format(norad_cat_id, name))
            except:
                sat = Satellite(norad_cat_id=norad_cat_id, name=name)
                sat.save()
                self.stdout.write('Satellite {0}-{1} added'.format(norad_cat_id, name))

        for transmitter in json.loads(transmitters):
            norad_cat_id = transmitter['norad_cat_id']
            uuid = transmitter['uuid']
            description = transmitter['description']

            try:
                sat = Satellite.objects.get(norad_cat_id=norad_cat_id)
            except:
                self.stdout.write('Satellite {0} not present'.format(norad_cat_id))
            transmitter.pop('norad_cat_id')
            try:
                existing_transmitter = Transmitter.objects.get(uuid=uuid)
                existing_transmitter.__dict__.update(transmitter)
                existing_transmitter.satellite = sat
                self.stdout.write('Transmitter {0}-{1} updated'.format(uuid, description))
            except Transmitter.DoesNotExist:
                new_transmitter = Transmitter.objects.create(**transmitter)
                new_transmitter.satellite = sat
                new_transmitter.save()
                self.stdout.write('Transmitter {0}-{1} created'.format(uuid, description))