From 3ea78a5b31dda9590cd0fdc6c60dc71dcab17bc0 Mon Sep 17 00:00:00 2001 From: Andrew Williams Date: Wed, 8 Aug 2012 18:30:55 +0100 Subject: [PATCH] Avoid hitting the API for NPC characters --- app/eve_api/tasks/character.py | 4 ++++ app/eve_api/tasks/corporation.py | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/app/eve_api/tasks/character.py b/app/eve_api/tasks/character.py index 3f6dce6..24ce0a0 100644 --- a/app/eve_api/tasks/character.py +++ b/app/eve_api/tasks/character.py @@ -63,6 +63,10 @@ def import_eve_characters(character_list, key_id=None, callback=None, **kwargs): def import_eve_character_func(character_id, key_id=None, logger=logging.getLogger(__name__)): + if int(character_id) >= 3000000 and int(character_id) < 4000000: + # NPC character + return EVEPlayerCharacter.objects.get_or_create(pk=character_id) + try: char_doc = CachedDocument.objects.api_query('/eve/CharacterInfo.xml.aspx', params={'characterID': character_id}, no_cache=False) except DocumentRetrievalError, exc: diff --git a/app/eve_api/tasks/corporation.py b/app/eve_api/tasks/corporation.py index ee17624..f24c0de 100644 --- a/app/eve_api/tasks/corporation.py +++ b/app/eve_api/tasks/corporation.py @@ -117,6 +117,11 @@ def link_ceo(corporation, character): char = EVEPlayerCharacter.objects.get(id=character) corp.update(ceo_character=char) + # Fix the reverse link if needed + if char.corporation is None: + char.corporation = corp + char.save() + @task(ignore_result=True) def import_corp_members(key_id, character_id):