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 # Run Every 2 hours
@periodic_task(run_every=crontab(minute=0, hour="*/2")) @periodic_task(run_every=crontab(minute=0, hour="*/2"))
def run_alliance_corp_update(): 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 EveCharacter
from models import EveApiKeyPair from models import EveApiKeyPair
from models import EveAllianceInfo
from models import EveCorporationInfo
admin.site.register(EveCharacter) 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 @staticmethod
def create_alliance_info(alliance_id, alliance_name, alliance_ticker, alliance_executor_corp_id, def create_alliance_info(alliance_id, alliance_name, alliance_ticker, alliance_executor_corp_id,
alliance_member_count): 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 = EveAllianceInfo()
alliance_info.alliance_id = alliance_id alliance_info.alliance_id = alliance_id
alliance_info.alliance_name = alliance_name alliance_info.alliance_name = alliance_name
@ -88,7 +88,7 @@ class EveManager:
@staticmethod @staticmethod
def create_corporation_info(corp_id, corp_name, corp_ticker, corp_member_count, alliance): 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 = EveCorporationInfo()
corp_info.corporation_id = corp_id corp_info.corporation_id = corp_id
corp_info.corporation_name = corp_name corp_info.corporation_name = corp_name
@ -97,6 +97,13 @@ class EveManager:
corp_info.alliance = alliance corp_info.alliance = alliance
corp_info.save() 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 @staticmethod
def get_api_key_pairs(user): def get_api_key_pairs(user):
@ -172,3 +179,22 @@ class EveManager:
@staticmethod @staticmethod
def check_if_corporation_exists_by_id(corp_id): 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()