some general fixes needed to handle NPC corps.

This commit is contained in:
2018-04-24 11:12:51 +01:00
parent ccdc999077
commit c0b17a0ef0
5 changed files with 30 additions and 38 deletions

View File

@@ -1,12 +1,10 @@
from datetime import date
import requests
from dateutil import parser
from django.contrib.auth.models import User
from django.db import models
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):
@@ -79,20 +77,11 @@ class Alliance(models.Model):
res = requests.get(f'https://esi.tech.ccp.is/latest/alliances/{self.id}/?datasource=tranquility')
data = res.json()
self.name = data['name']
creator, created = Character.objects.get_or_create(id=data['creator_id'])
if created:
creator.update()
self.creator = creator
creator_corporation, created = Corporation.objects.get_or_create(id=data['creator_corporation_id'])
if created:
creator_corporation.update()
self.creator_corporation = creator_corporation
self.creator, _ = Character.objects.get_or_create(id=data['creator_id'])
self.creator_corporation, _ = Corporation.objects.get_or_create(id=data['creator_corporation_id'])
self.ticker = data['ticker']
self.date_founded = parser.parse(data['date_founded'])
executor_corporation, created = Corporation.objects.get_or_create(id=data['executor_corporation_id'])
if created:
executor_corporation.update()
self.executor_corporation = executor_corporation
self.executor_corporation, _ = Corporation.objects.get_or_create(id=data['executor_corporation_id'])
self.save()
def __str__(self):
@@ -147,29 +136,17 @@ class Corporation(models.Model):
data: dict = res.json()
self.name = data['name']
self.ticker = data['ticker']
ceo, created = Character.objects.get_or_create(id=data['ceo_id'])
if created:
ceo.update()
self.ceo = ceo
self.ceo, _ = Character.objects.get_or_create(id=data['ceo_id'])
self.tax_rate = data['tax_rate']
creator, created = Character.objects.get_or_create(id=data['creator_id'])
if created:
creator.update()
self.creator = creator
self.creator, _ = Character.objects.get_or_create(id=data['creator_id'])
if 'alliance_id' in data:
alliance, created = Alliance.objects.get_or_create(id=data['alliance_id'])
if created:
alliance.update()
self.alliance = alliance
self.alliance, _ = Alliance.objects.get_or_create(id=data['alliance_id'])
# 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.get('url', None)
home_station, created = Station.objects.get_or_create(id=data['home_station_id'])
if created:
home_station.update()
self.home_station = home_station
self.home_station, _ = Station.objects.get_or_create(id=data['home_station_id'])
self.save()
def __str__(self):
@@ -203,10 +180,7 @@ class Character(models.Model):
self.name = 'NPC Character'
self.save()
return
corp, created = Corporation.objects.get_or_create(id=data['corporation_id'])
if created:
corp.update()
self.corp = corp
self.corp, _ = Corporation.objects.get_or_create(id=data['corporation_id'])
self.name = data['name']
self.security_status = data['security_status']
self.birthday = parser.parse(data['birthday'])