From d6931e12097df244631abbdf8b0528b17a4c81eb Mon Sep 17 00:00:00 2001 From: Andrew Williams Date: Tue, 14 Dec 2010 12:19:22 +0000 Subject: [PATCH] Cleaned up and improved the Corporate import functions --- eve_api/tasks/character.py | 4 +++- eve_api/tasks/corporation.py | 21 +++++---------------- 2 files changed, 8 insertions(+), 17 deletions(-) diff --git a/eve_api/tasks/character.py b/eve_api/tasks/character.py index 31b3d4a..f6871d8 100644 --- a/eve_api/tasks/character.py +++ b/eve_api/tasks/character.py @@ -34,7 +34,9 @@ def import_eve_character(character_id, api_key=None, user_id=None, callback=None corp, created = EVEPlayerCorporation.objects.get_or_create(id=values['corporationID']) from eve_api.tasks.corporation import import_corp_details - import_corp_details.delay(values['corporationID']) + + if created or not corp.name: + import_corp_details.delay(values['corporationID']) pchar.corporation = corp pchar.corporation_date = values['corporationDate'] diff --git a/eve_api/tasks/corporation.py b/eve_api/tasks/corporation.py index ce6de17..8c18db0 100644 --- a/eve_api/tasks/corporation.py +++ b/eve_api/tasks/corporation.py @@ -49,21 +49,18 @@ def import_corp_details_func(corp_id): setattr(corpobj, logo_map[1], d['logo'][logo_map[0]]) corpobj.alliance, created = EVEPlayerAlliance.objects.get_or_create(id=d['allianceID']) - - import_eve_character.delay(d['ceoID'], callback=link_ceo.subtask(corporation=corpobj.id)) - corpobj.api_last_updated = datetime.utcnow() corpobj.save() + import_eve_character.delay(d['ceoID'], callback=link_ceo.subtask(corporation=corpobj.id)) + return EVEPlayerCorporation.objects.get(pk=corpobj.pk) @task(ignore_result=True) def link_ceo(corporation, character): """ Links a character to the CEO position of a corporation """ - corpobj = EVEPlayerCorporation.objects.get(id=corporation) - corpobj.ceo_character = EVEPlayerCharacter.objects.get(id=character) - corpobj.save() + corpobj = EVEPlayerCorporation.objects.get(id=corporation).update(ceo_character=EVEPlayerCharacter.objects.get(id=character)) @task(ignore_result=True) @@ -83,14 +80,6 @@ def import_corp_members(api_userid, api_key, character_id): corp = EVEPlayerCharacter.objects.get(id=character_id).corporation for character in set: - import_eve_character.delay(character['characterID'], callback=update_character_tracking.subtask(tracking_details=character)) - -@task() -def update_character_tracking(character, tracking_details): - charobj = EVEPlayerCharacter.objects.get(id=character) - - charobj.last_login = tracking_details['logonDateTime'] - charobj.last_logoff = tracking_details['logoffDateTime'] - charobj.current_location_id = int(tracking_details['locationID']) - charobj.save() + charobj = EVEPlayerCharacter.objects.filter(id=character['characterID']) + charobj.update(last_login=tracking_details['logonDateTime'], last_logoff=tracking_details['logoffDateTime'], current_location_id=int(tracking_details['locationID']))