예제 #1
0
def update_character_associations(user):
    LOG.debug("Updating character ownerships for '%s'..." % user.username)
    eve_accounts = []
    invalid_api_keys = []
    new_characters = set()
    new_corps = set()
    skills = []

    # get all the user's registered api credentials
    for api_key in user.eve_accounts.all():
        try:
            conn = api.connect_user(api_key)
            for char in api.get_account_characters(api_key):
                try:
                    member = Member.objects.get(characterID=char.characterID)
                except Member.DoesNotExist:
                    member = Member(characterID=char.characterID,
                                    name=char.name)

                char_info = conn.eve.CharacterInfo(
                    characterID=member.characterID)
                set_char_info_attributes(member, char_info)
                # This also sets employment history.
                # TODO 1 move employment history into separate function
                # TODO 2 optimizie; only check if corp has changed, and add history records in save_all below.
                sheet = conn.char.CharacterSheet(
                    characterID=member.characterID)
                set_extended_char_attributes(member, sheet)
                skills.extend(get_character_skills(member, sheet))

                if not member in new_characters:
                    corp = get_corp(char.corporationID)
                    if member.corp != corp:
                        member.corp = corp
                        new_corps.add(corp)
                    new_characters.add(member)

            api_key.is_valid = True
        except api.AuthenticationError, e:
            LOG.warning("%s (user: '******' keyID: %d)" %
                        (str(e), user.username, api_key.keyID))
            api_key.is_valid = False
            api_key.error = str(e)
            invalid_api_keys.append(api_key)
        except api.Error, e:
            # for all other errors, we abort the operation so that
            # character associations are not deleted by mistake and
            # therefore, that users find themselves with no access :)
            LOG.error("%d: %s (user: '******' keyID: %d)" %
                      (e.code, str(e), user.username, api_key.keyID))
            raise
예제 #2
0
파일: users.py 프로젝트: evecm/ecm
def update_character_associations(user):
    LOG.debug("Updating character ownerships for '%s'..." % user.username)
    eve_accounts = []
    invalid_api_keys = []
    new_characters = set()
    new_corps = set()
    skills = []
    
    # get all the user's registered api credentials
    for api_key in user.eve_accounts.all():
        try:
            conn = api.connect_user(api_key)
            for char in api.get_account_characters(api_key):
                try:
                    member = Member.objects.get(characterID=char.characterID)
                except Member.DoesNotExist:
                    member = Member(characterID=char.characterID,
                                    name=char.name)

                char_info = conn.eve.CharacterInfo(characterID=member.characterID)
                set_char_info_attributes(member, char_info)
                    # This also sets employment history.
                    # TODO 1 move employment history into separate function
                    # TODO 2 optimizie; only check if corp has changed, and add history records in save_all below.
                sheet = conn.char.CharacterSheet(characterID=member.characterID)
                set_extended_char_attributes(member, sheet)
                skills.extend(get_character_skills(member, sheet))

                if not member in new_characters:
                    corp = get_corp(char.corporationID)
                    if member.corp != corp:
                        member.corp = corp
                        new_corps.add(corp)
                    new_characters.add(member)
                
            api_key.is_valid = True
        except api.AuthenticationError, e:
            LOG.warning("%s (user: '******' keyID: %d)" % (str(e), user.username, api_key.keyID))
            api_key.is_valid = False
            api_key.error = str(e)
            invalid_api_keys.append(api_key)
        except api.Error, e:
            # for all other errors, we abort the operation so that
            # character associations are not deleted by mistake and
            # therefore, that users find themselves with no access :)
            LOG.error("%d: %s (user: '******' keyID: %d)" % (e.code, str(e), user.username, api_key.keyID))
            raise
예제 #3
0
파일: utils.py 프로젝트: Betriebsrat/ecm
def get_char(characterID):
    api_conn = api.eveapi.EVEAPIConnection()
    char = api_conn.eve.CharacterInfo(characterID = characterID)
    try:
        corp = Corporation.objects.get(corporationID = char.corporationID)
    except Corporation.DoesNotExist:
        corp = get_corp(char.corporationID)
    LOG.info("Adding new Player: "+ char.characterName)
    mem = Member()
    mem.characterID = char.characterID
    mem.name = char.characterName
    mem.race = char.race
    mem.bloodline = char.bloodline
    mem.corp = corp
    mem.corpDate = char.corporationDate
    mem.securityStatus = char.securityStatus
    mem.save()
    return mem
예제 #4
0
파일: utils.py 프로젝트: vanderheyde/ecm
def get_char(characterID):
    api_conn = api.eveapi.EVEAPIConnection()
    char = api_conn.eve.CharacterInfo(characterID=characterID)
    try:
        corp = Corporation.objects.get(corporationID=char.corporationID)
    except Corporation.DoesNotExist:
        corp = get_corp(char.corporationID)
    LOG.info("Adding new Player: " + char.characterName)
    mem = Member()
    mem.characterID = char.characterID
    mem.name = char.characterName
    mem.race = char.race
    mem.bloodline = char.bloodline
    mem.corp = corp
    mem.corpDate = char.corporationDate
    mem.securityStatus = char.securityStatus
    mem.save()
    return mem