diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
new file mode 100644
index 00000000..c66df003
--- /dev/null
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml
new file mode 100644
index 00000000..3b312839
--- /dev/null
+++ b/.idea/inspectionProfiles/profiles_settings.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/celerytask/tasks.py b/celerytask/tasks.py
index e0662058..9a1dded7 100644
--- a/celerytask/tasks.py
+++ b/celerytask/tasks.py
@@ -166,5 +166,32 @@ def run_api_refresh():
# Run Every 2 hours
@periodic_task(run_every=crontab(minute=0, hour="*/2"))
def run_alliance_corp_update():
- alliance_info = EveApiManager.get_alliance_information(settings.ALLIANCE_ID)
+ if EveApiManager.check_if_api_server_online():
+ # Updated alliance info
+ alliance_info = EveApiManager.get_alliance_information(settings.ALLIANCE_ID)
+ # Populate alliance info
+ if not EveManager.check_if_alliance_exists_by_id(settings.ALLIANCE_ID):
+ EveManager.create_alliance_info(settings.ALLIANCE_ID, alliance_info['name'], alliance_info['ticker'],
+ alliance_info['executor_id'], alliance_info['member_count'])
+
+ EveManager.update_alliance_info(settings.ALLIANCE_ID, alliance_info['executor_id'],
+ alliance_info['member_count'])
+
+ alliance = EveManager.get_alliance_info_by_id(settings.ALLIANCE_ID)
+
+ # Create the corps in the alliance
+ for alliance_corp in alliance_info['member_corps']:
+ corpinfo = EveApiManager.get_corporation_information(alliance_corp)
+ if not EveManager.check_if_corporation_exists_by_id(corpinfo['id']):
+ EveManager.create_corporation_info(corpinfo['id'], corpinfo['name'], corpinfo['ticker'],
+ corpinfo['members']['current'], alliance)
+
+ # Update all the corps
+ for all_corp_info in EveManager.get_all_corporation_info():
+ corpinfo = EveApiManager.get_corporation_information(all_corp_info.corporation_id)
+ if corpinfo['alliance']['id'] == int(settings.ALLIANCE_ID):
+ EveManager.update_corporation_info(corpinfo['id'], corpinfo['members']['current'], alliance)
+ else:
+ # No longer in the alliance nuke it
+ all_corp_info.delete()
diff --git a/eveonline/admin.py b/eveonline/admin.py
index d16a1a45..d1608787 100644
--- a/eveonline/admin.py
+++ b/eveonline/admin.py
@@ -2,7 +2,10 @@ from django.contrib import admin
from models import EveCharacter
from models import EveApiKeyPair
-
+from models import EveAllianceInfo
+from models import EveCorporationInfo
admin.site.register(EveCharacter)
-admin.site.register(EveApiKeyPair)
\ No newline at end of file
+admin.site.register(EveApiKeyPair)
+admin.site.register(EveAllianceInfo)
+admin.site.register(EveCorporationInfo)
\ No newline at end of file
diff --git a/eveonline/managers.py b/eveonline/managers.py
index c00a0448..d62fd0da 100644
--- a/eveonline/managers.py
+++ b/eveonline/managers.py
@@ -69,7 +69,7 @@ class EveManager:
@staticmethod
def create_alliance_info(alliance_id, alliance_name, alliance_ticker, alliance_executor_corp_id,
alliance_member_count):
- if EveManager.check_if_alliance_exists_by_id(alliance_id):
+ if not EveManager.check_if_alliance_exists_by_id(alliance_id):
alliance_info = EveAllianceInfo()
alliance_info.alliance_id = alliance_id
alliance_info.alliance_name = alliance_name
@@ -88,7 +88,7 @@ class EveManager:
@staticmethod
def create_corporation_info(corp_id, corp_name, corp_ticker, corp_member_count, alliance):
- if EveManager.check_if_corporation_exists_by_id(corp_id):
+ if not EveManager.check_if_corporation_exists_by_id(corp_id):
corp_info = EveCorporationInfo()
corp_info.corporation_id = corp_id
corp_info.corporation_name = corp_name
@@ -97,6 +97,13 @@ class EveManager:
corp_info.alliance = alliance
corp_info.save()
+ @staticmethod
+ def update_corporation_info(corp_id, corp_member_count, alliance):
+ if EveManager.check_if_corporation_exists_by_id(corp_id):
+ corp_info = EveCorporationInfo.objects.get(corporation_id = corp_id)
+ corp_info.member_count = corp_member_count
+ corp_info.alliance = alliance
+ corp_info.save()
@staticmethod
def get_api_key_pairs(user):
@@ -171,4 +178,23 @@ class EveManager:
@staticmethod
def check_if_corporation_exists_by_id(corp_id):
- return EveCorporationInfo.objects.filter(corporation_id=corp_id).exists()
\ No newline at end of file
+ return EveCorporationInfo.objects.filter(corporation_id=corp_id).exists()
+
+ @staticmethod
+ def get_alliance_info_by_id(alliance_id):
+ if EveManager.check_if_alliance_exists_by_id(alliance_id):
+ return EveAllianceInfo.objects.get(alliance_id=alliance_id)
+ else:
+ return None
+
+ @staticmethod
+ def get_corporation_info_by_id(corp_id):
+ if EveManager.check_if_corporation_exists_by_id(corp_id):
+ return EveCorporationInfo.objects.get(corporation_id=corp_id)
+ else:
+ return None
+
+
+ @staticmethod
+ def get_all_corporation_info():
+ return EveCorporationInfo.objects.all()
\ No newline at end of file