Added the task to auto update corp and alliance info

This commit is contained in:
Raynaldo Rivera 2014-10-26 23:33:10 -07:00
parent 19e19d89e4
commit 763b3c8230
5 changed files with 80 additions and 6 deletions

View File

@ -0,0 +1,11 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0" is_locked="false">
<option name="myName" value="Project Default" />
<option name="myLocal" value="false" />
<inspection_tool class="SpellCheckingInspection" enabled="false" level="TYPO" enabled_by_default="false">
<option name="processCode" value="true" />
<option name="processLiterals" value="true" />
<option name="processComments" value="true" />
</inspection_tool>
</profile>
</component>

View File

@ -0,0 +1,7 @@
<component name="InspectionProjectProfileManager">
<settings>
<option name="PROJECT_PROFILE" value="Project Default" />
<option name="USE_PROJECT_PROFILE" value="true" />
<version value="1.0" />
</settings>
</component>

View File

@ -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()

View File

@ -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)
admin.site.register(EveApiKeyPair)
admin.site.register(EveAllianceInfo)
admin.site.register(EveCorporationInfo)

View File

@ -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()
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()