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
|
from django.dispatch import receiver
|
||||||
# Create your models here.
|
# Create your models here.
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
|
from datetime import date
|
||||||
|
|
||||||
|
|
||||||
class Station(models.Model):
|
class Station(models.Model):
|
||||||
# station = {
|
station = {
|
||||||
# "station_id": 60014740,
|
"station_id": 60014740,
|
||||||
# "name": "Balle VII - Moon 17 - Center for Advanced Studies School",
|
"name": "Balle VII - Moon 17 - Center for Advanced Studies School",
|
||||||
# "type_id": 57,
|
"type_id": 57,
|
||||||
# "position": {
|
"position": {
|
||||||
# "x": 1888188211200,
|
"x": 1888188211200,
|
||||||
# "y": -102009446400,
|
"y": -102009446400,
|
||||||
# "z": 859582832640
|
"z": 859582832640
|
||||||
# },
|
},
|
||||||
# "system_id": 30002634,
|
"system_id": 30002634,
|
||||||
# "reprocessing_efficiency": 0.5,
|
"reprocessing_efficiency": 0.5,
|
||||||
# "reprocessing_stations_take": 0.05,
|
"reprocessing_stations_take": 0.05,
|
||||||
# "max_dockable_ship_volume": 50000000,
|
"max_dockable_ship_volume": 50000000,
|
||||||
# "office_rental_cost": 19056579,
|
"office_rental_cost": 19056579,
|
||||||
# "services": [
|
"services": [
|
||||||
# "bounty-missions",
|
"bounty-missions",
|
||||||
# "courier-missions",
|
"courier-missions",
|
||||||
# "reprocessing-plant",
|
"reprocessing-plant",
|
||||||
# "market",
|
"market",
|
||||||
# "cloning",
|
"cloning",
|
||||||
# "repair-facilities",
|
"repair-facilities",
|
||||||
# "factory",
|
"factory",
|
||||||
# "fitting",
|
"fitting",
|
||||||
# "news",
|
"news",
|
||||||
# "insurance",
|
"insurance",
|
||||||
# "docking",
|
"docking",
|
||||||
# "office-rental",
|
"office-rental",
|
||||||
# "loyalty-point-store",
|
"loyalty-point-store",
|
||||||
# "navy-offices"
|
"navy-offices"
|
||||||
# ],
|
],
|
||||||
# "owner": 1000169,
|
"owner": 1000169,
|
||||||
# "race_id": 8
|
"race_id": 8
|
||||||
# }
|
}
|
||||||
id = models.IntegerField(primary_key=True)
|
id = models.IntegerField(primary_key=True)
|
||||||
name = models.CharField(max_length=100, blank=True, null=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.executor_corporation = executor_corporation
|
||||||
self.save()
|
self.save()
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.name if self.name else super().__str__()
|
||||||
|
|
||||||
|
|
||||||
class Corporation(models.Model):
|
class Corporation(models.Model):
|
||||||
corp = {
|
corp = {
|
||||||
@@ -140,7 +144,7 @@ class Corporation(models.Model):
|
|||||||
|
|
||||||
def update(self):
|
def update(self):
|
||||||
res = requests.get(f'https://esi.tech.ccp.is/latest/corporations/{self.id}/?datasource=tranquility')
|
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.name = data['name']
|
||||||
self.ticker = data['ticker']
|
self.ticker = data['ticker']
|
||||||
ceo, created = Character.objects.get_or_create(id=data['ceo_id'])
|
ceo, created = Character.objects.get_or_create(id=data['ceo_id'])
|
||||||
@@ -157,9 +161,11 @@ class Corporation(models.Model):
|
|||||||
if created:
|
if created:
|
||||||
alliance.update()
|
alliance.update()
|
||||||
self.alliance = alliance
|
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.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'])
|
home_station, created = Station.objects.get_or_create(id=data['home_station_id'])
|
||||||
if created:
|
if created:
|
||||||
home_station.update()
|
home_station.update()
|
||||||
@@ -167,7 +173,7 @@ class Corporation(models.Model):
|
|||||||
self.save()
|
self.save()
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.name if self.name else ''
|
return self.name if self.name else super().__str__()
|
||||||
|
|
||||||
|
|
||||||
class Character(models.Model):
|
class Character(models.Model):
|
||||||
@@ -193,7 +199,10 @@ class Character(models.Model):
|
|||||||
def update(self):
|
def update(self):
|
||||||
res = requests.get(f'https://esi.tech.ccp.is/latest/characters/{self.id}/?datasource=tranquility')
|
res = requests.get(f'https://esi.tech.ccp.is/latest/characters/{self.id}/?datasource=tranquility')
|
||||||
data = res.json()
|
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'])
|
corp, created = Corporation.objects.get_or_create(id=data['corporation_id'])
|
||||||
if created:
|
if created:
|
||||||
corp.update()
|
corp.update()
|
||||||
@@ -202,3 +211,6 @@ class Character(models.Model):
|
|||||||
self.security_status = data['security_status']
|
self.security_status = data['security_status']
|
||||||
self.birthday = parser.parse(data['birthday'])
|
self.birthday = parser.parse(data['birthday'])
|
||||||
self.save()
|
self.save()
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.name if self.name else super().__str__()
|
||||||
|
|||||||
Reference in New Issue
Block a user