some general fixes needed to handle NPC corps.
This commit is contained in:
@@ -3,3 +3,6 @@ from django.apps import AppConfig
|
||||
|
||||
class EveAuthConfig(AppConfig):
|
||||
name = 'eve_auth'
|
||||
|
||||
def ready(self):
|
||||
import eve_auth.signals
|
||||
|
||||
@@ -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'])
|
||||
|
||||
15
eve_auth/signals.py
Normal file
15
eve_auth/signals.py
Normal file
@@ -0,0 +1,15 @@
|
||||
from django.db.models.signals import post_save
|
||||
from django.dispatch import receiver
|
||||
|
||||
from eve_auth import models
|
||||
|
||||
|
||||
@receiver(post_save, sender=models.Station)
|
||||
@receiver(post_save, sender=models.Alliance)
|
||||
@receiver(post_save, sender=models.Corporation)
|
||||
@receiver(post_save, sender=models.Character)
|
||||
def run_update_details(sender, instance, created, **kwargs):
|
||||
if created:
|
||||
print(instance)
|
||||
instance.update()
|
||||
|
||||
@@ -15,7 +15,7 @@ from eve_auth.models import Corporation
|
||||
def hello(request):
|
||||
c = Corporation(id=98002591)
|
||||
c.save()
|
||||
c.update()
|
||||
#c.update()
|
||||
return render(
|
||||
request,
|
||||
'base.html',
|
||||
|
||||
Reference in New Issue
Block a user