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):
|
class EveAuthConfig(AppConfig):
|
||||||
name = 'eve_auth'
|
name = 'eve_auth'
|
||||||
|
|
||||||
|
def ready(self):
|
||||||
|
import eve_auth.signals
|
||||||
|
|||||||
@@ -1,12 +1,10 @@
|
|||||||
|
from datetime import date
|
||||||
|
|
||||||
import requests
|
import requests
|
||||||
from dateutil import parser
|
from dateutil import parser
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
from django.db import models
|
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 django.utils import timezone
|
||||||
from datetime import date
|
|
||||||
|
|
||||||
|
|
||||||
class Station(models.Model):
|
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')
|
res = requests.get(f'https://esi.tech.ccp.is/latest/alliances/{self.id}/?datasource=tranquility')
|
||||||
data = res.json()
|
data = res.json()
|
||||||
self.name = data['name']
|
self.name = data['name']
|
||||||
creator, created = Character.objects.get_or_create(id=data['creator_id'])
|
self.creator, _ = Character.objects.get_or_create(id=data['creator_id'])
|
||||||
if created:
|
self.creator_corporation, _ = Corporation.objects.get_or_create(id=data['creator_corporation_id'])
|
||||||
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.ticker = data['ticker']
|
self.ticker = data['ticker']
|
||||||
self.date_founded = parser.parse(data['date_founded'])
|
self.date_founded = parser.parse(data['date_founded'])
|
||||||
executor_corporation, created = Corporation.objects.get_or_create(id=data['executor_corporation_id'])
|
self.executor_corporation, _ = Corporation.objects.get_or_create(id=data['executor_corporation_id'])
|
||||||
if created:
|
|
||||||
executor_corporation.update()
|
|
||||||
self.executor_corporation = executor_corporation
|
|
||||||
self.save()
|
self.save()
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
@@ -147,29 +136,17 @@ class Corporation(models.Model):
|
|||||||
data: dict = 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'])
|
self.ceo, _ = Character.objects.get_or_create(id=data['ceo_id'])
|
||||||
if created:
|
|
||||||
ceo.update()
|
|
||||||
self.ceo = ceo
|
|
||||||
self.tax_rate = data['tax_rate']
|
self.tax_rate = data['tax_rate']
|
||||||
creator, created = Character.objects.get_or_create(id=data['creator_id'])
|
self.creator, _ = Character.objects.get_or_create(id=data['creator_id'])
|
||||||
if created:
|
|
||||||
creator.update()
|
|
||||||
self.creator = creator
|
|
||||||
if 'alliance_id' in data:
|
if 'alliance_id' in data:
|
||||||
alliance, created = Alliance.objects.get_or_create(id=data['alliance_id'])
|
self.alliance, _ = Alliance.objects.get_or_create(id=data['alliance_id'])
|
||||||
if created:
|
|
||||||
alliance.update()
|
|
||||||
self.alliance = alliance
|
|
||||||
# The backup date here is the release date of eve-online it
|
# The backup date here is the release date of eve-online it
|
||||||
# raises a warning but timezones don't really matter here.
|
# 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.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.get('url', None)
|
self.url = data.get('url', None)
|
||||||
home_station, created = Station.objects.get_or_create(id=data['home_station_id'])
|
self.home_station, _ = Station.objects.get_or_create(id=data['home_station_id'])
|
||||||
if created:
|
|
||||||
home_station.update()
|
|
||||||
self.home_station = home_station
|
|
||||||
self.save()
|
self.save()
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
@@ -203,10 +180,7 @@ class Character(models.Model):
|
|||||||
self.name = 'NPC Character'
|
self.name = 'NPC Character'
|
||||||
self.save()
|
self.save()
|
||||||
return
|
return
|
||||||
corp, created = Corporation.objects.get_or_create(id=data['corporation_id'])
|
self.corp, _ = Corporation.objects.get_or_create(id=data['corporation_id'])
|
||||||
if created:
|
|
||||||
corp.update()
|
|
||||||
self.corp = corp
|
|
||||||
self.name = data['name']
|
self.name = data['name']
|
||||||
self.security_status = data['security_status']
|
self.security_status = data['security_status']
|
||||||
self.birthday = parser.parse(data['birthday'])
|
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):
|
def hello(request):
|
||||||
c = Corporation(id=98002591)
|
c = Corporation(id=98002591)
|
||||||
c.save()
|
c.save()
|
||||||
c.update()
|
#c.update()
|
||||||
return render(
|
return render(
|
||||||
request,
|
request,
|
||||||
'base.html',
|
'base.html',
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ INSTALLED_APPS = [
|
|||||||
'django.contrib.sessions',
|
'django.contrib.sessions',
|
||||||
'django.contrib.messages',
|
'django.contrib.messages',
|
||||||
'django.contrib.staticfiles',
|
'django.contrib.staticfiles',
|
||||||
'eve_auth',
|
'eve_auth.apps.EveAuthConfig',
|
||||||
'allauth',
|
'allauth',
|
||||||
'allauth.account',
|
'allauth.account',
|
||||||
'allauth.socialaccount',
|
'allauth.socialaccount',
|
||||||
|
|||||||
Reference in New Issue
Block a user