def find_api_key_for_pilot(self, characterid): for apikey in self.get_character_api_keys(): result = private.get_account_characters(apikey.keyid, apikey.verification_code) for character in result.characters: if str(character.characterID) == str(characterid): return apikey raise Exception("No matching apikey for selected character is availble.")
def activate_pilot(self, capsuler, apikey, characterid): available_characters = private.get_account_characters(apikey.keyid, apikey.verification_code) charids = [] for character in available_characters.characters: charids.append(str(character.characterID)) if not characterid in charids: # TODO somebody trying to hijack a character raise Exception("That's not your character!") public_info = Character.objects.get_character(characterid) if not public_info: # TODO good exceptions raise Exception("Character does not exist") try: ucorp = UserCorporation.objects.get(pk=public_info.corporationid) except UserCorporation.DoesNotExist: ucorp = UserCorporation(id=public_info.corporationid, public_info=public_info.corporation) ucorp.save() try: pilot = UserPilot.objects.get(id=characterid, user=capsuler, apikey=apikey) except UserPilot.DoesNotExist: pilot = UserPilot(id=characterid, user=capsuler, apikey=apikey) pilot.activated = True pilot.public_info = public_info pilot.corporation = ucorp pilot.save()
def fetch_character_names(self): characters = [] for apikey in self.get_character_api_keys(): result = private.get_account_characters(apikey.keyid, apikey.verification_code) for character in result.characters: characters.append({"name": character.name, "id": character.characterID}) return characters
def get_characters(self): if self.keytype == "Corporation": return [] characters = [] result = private.get_account_characters(apikey.keyid, apikey.verification_code) for character in result.characters: characters.append({"name": character.name, "id": character.characterID}) return characters