some general fixes needed to handle NPC corps.
This commit is contained in:
@@ -6,42 +6,43 @@ from django.db.models.signals import post_save
|
||||
from django.dispatch import receiver
|
||||
# Create your models here.
|
||||
from django.utils import timezone
|
||||
from datetime import date
|
||||
|
||||
|
||||
class Station(models.Model):
|
||||
# station = {
|
||||
# "station_id": 60014740,
|
||||
# "name": "Balle VII - Moon 17 - Center for Advanced Studies School",
|
||||
# "type_id": 57,
|
||||
# "position": {
|
||||
# "x": 1888188211200,
|
||||
# "y": -102009446400,
|
||||
# "z": 859582832640
|
||||
# },
|
||||
# "system_id": 30002634,
|
||||
# "reprocessing_efficiency": 0.5,
|
||||
# "reprocessing_stations_take": 0.05,
|
||||
# "max_dockable_ship_volume": 50000000,
|
||||
# "office_rental_cost": 19056579,
|
||||
# "services": [
|
||||
# "bounty-missions",
|
||||
# "courier-missions",
|
||||
# "reprocessing-plant",
|
||||
# "market",
|
||||
# "cloning",
|
||||
# "repair-facilities",
|
||||
# "factory",
|
||||
# "fitting",
|
||||
# "news",
|
||||
# "insurance",
|
||||
# "docking",
|
||||
# "office-rental",
|
||||
# "loyalty-point-store",
|
||||
# "navy-offices"
|
||||
# ],
|
||||
# "owner": 1000169,
|
||||
# "race_id": 8
|
||||
# }
|
||||
station = {
|
||||
"station_id": 60014740,
|
||||
"name": "Balle VII - Moon 17 - Center for Advanced Studies School",
|
||||
"type_id": 57,
|
||||
"position": {
|
||||
"x": 1888188211200,
|
||||
"y": -102009446400,
|
||||
"z": 859582832640
|
||||
},
|
||||
"system_id": 30002634,
|
||||
"reprocessing_efficiency": 0.5,
|
||||
"reprocessing_stations_take": 0.05,
|
||||
"max_dockable_ship_volume": 50000000,
|
||||
"office_rental_cost": 19056579,
|
||||
"services": [
|
||||
"bounty-missions",
|
||||
"courier-missions",
|
||||
"reprocessing-plant",
|
||||
"market",
|
||||
"cloning",
|
||||
"repair-facilities",
|
||||
"factory",
|
||||
"fitting",
|
||||
"news",
|
||||
"insurance",
|
||||
"docking",
|
||||
"office-rental",
|
||||
"loyalty-point-store",
|
||||
"navy-offices"
|
||||
],
|
||||
"owner": 1000169,
|
||||
"race_id": 8
|
||||
}
|
||||
id = models.IntegerField(primary_key=True)
|
||||
name = models.CharField(max_length=100, blank=True, null=True)
|
||||
|
||||
@@ -94,6 +95,9 @@ class Alliance(models.Model):
|
||||
self.executor_corporation = executor_corporation
|
||||
self.save()
|
||||
|
||||
def __str__(self):
|
||||
return self.name if self.name else super().__str__()
|
||||
|
||||
|
||||
class Corporation(models.Model):
|
||||
corp = {
|
||||
@@ -140,7 +144,7 @@ class Corporation(models.Model):
|
||||
|
||||
def update(self):
|
||||
res = requests.get(f'https://esi.tech.ccp.is/latest/corporations/{self.id}/?datasource=tranquility')
|
||||
data = res.json()
|
||||
data: dict = res.json()
|
||||
self.name = data['name']
|
||||
self.ticker = data['ticker']
|
||||
ceo, created = Character.objects.get_or_create(id=data['ceo_id'])
|
||||
@@ -157,9 +161,11 @@ class Corporation(models.Model):
|
||||
if created:
|
||||
alliance.update()
|
||||
self.alliance = alliance
|
||||
self.date_founded = parser.parse(data['date_founded'])
|
||||
# The backup date here is the release date of eve-online it
|
||||
# raises a warning but timezones don't really matter here.
|
||||
self.date_founded = parser.parse(data['date_founded']) if 'date_founded' in data else date(2003, 5, 6)
|
||||
self.description = data['description']
|
||||
self.url = data['url']
|
||||
self.url = data.get('url', None)
|
||||
home_station, created = Station.objects.get_or_create(id=data['home_station_id'])
|
||||
if created:
|
||||
home_station.update()
|
||||
@@ -167,7 +173,7 @@ class Corporation(models.Model):
|
||||
self.save()
|
||||
|
||||
def __str__(self):
|
||||
return self.name if self.name else ''
|
||||
return self.name if self.name else super().__str__()
|
||||
|
||||
|
||||
class Character(models.Model):
|
||||
@@ -193,7 +199,10 @@ class Character(models.Model):
|
||||
def update(self):
|
||||
res = requests.get(f'https://esi.tech.ccp.is/latest/characters/{self.id}/?datasource=tranquility')
|
||||
data = res.json()
|
||||
print(data)
|
||||
if 'error' in data:
|
||||
self.name = 'NPC Character'
|
||||
self.save()
|
||||
return
|
||||
corp, created = Corporation.objects.get_or_create(id=data['corporation_id'])
|
||||
if created:
|
||||
corp.update()
|
||||
@@ -202,3 +211,6 @@ class Character(models.Model):
|
||||
self.security_status = data['security_status']
|
||||
self.birthday = parser.parse(data['birthday'])
|
||||
self.save()
|
||||
|
||||
def __str__(self):
|
||||
return self.name if self.name else super().__str__()
|
||||
|
||||
Reference in New Issue
Block a user