示例#1
0
 def __init__(self, token=None, adapter=None):
     self.client = esi_client_factory(token=token,
                                      Alliance='v1',
                                      Character='v4',
                                      Corporation='v2',
                                      Universe='v2')
     self.adapter = adapter or self
示例#2
0
 def get_faction(self, faction_id):
     try:
         data = esi_client_factory(Universe='v1').Universe.get_factions().result()
         faction_data = [faction for faction in data if faction['faction_id'] == faction_id][0]
         return Faction(self, faction_data['faction_id'], faction_data['name'], faction_data['description'])
     except KeyError:
         raise ObjectNotFound(faction_id, 'faction')
示例#3
0
    def __get_names_from_api(eve_entity_ids, count=1):
        """
        Get the names of the given entity ids from the EVE API servers
        :param eve_entity_ids: array of int entity ids whos names to fetch
        :return: array of objects with keys id and name or None if unsuccessful
        """
        logger.debug(
            "Attempting to get entity name from API for ids {0}".format(
                eve_entity_ids))
        client = esi_client_factory(spec_file=SWAGGER_SPEC_PATH)
        try:
            infos = client.Universe.post_universe_names(
                ids=eve_entity_ids).result()
            return infos

            logger.error(
                "Error occured while trying to query api for entity name id=%s",
                eve_entity_ids)

        except HTTPNotFound:
            raise ObjectNotFound(eve_entity_ids, 'universe_entitys')
        except (HTTPBadGateway, HTTPGatewayTimeout):
            if count >= 5:
                logger.exception('Failed to get entity name %s times.', count)
                return None
            else:
                sleep(count**2)
                return EveEntityManager.__get_names_from_api(eve_entity_ids,
                                                             count=count + 1)
示例#4
0
 def get_esi_client(self, **kwargs):
     """
     Creates an authenticated ESI client with this token.
     :param kwargs: Extra spec versioning as per `esi.clients.esi_client_factory`
     :return: :class:`bravado.client.SwaggerClient`
     """
     return esi_client_factory(token=self, **kwargs)
示例#5
0
def search_name(request):
    add_perms = request.user.has_perm('toolbox.add_basic_eve_notes')
    add_global_perms = request.user.has_perm('toolbox.add_new_eve_notes')

    if not (add_perms or add_global_perms):
        messages.info(request, "No Permissions")
        return redirect('toolbox:eve_note_board')

    if request.method == 'POST':
        form = SearchEveName(request.POST)

        # check whether it's valid:
        if form.is_valid():
            name = form.cleaned_data['name']
            try:
                c = esi_client_factory()
                hits = c.Search.get_search(search=name, categories=['character', 'corporation', 'alliance']).result()
                corps = hits.get('corporation', [])
                chars = hits.get('character', [])
                alliance = hits.get('alliance', [])
                names_list = []
                if corps:
                    names_list += corps
                if chars:
                    names_list += chars
                if alliance:
                    names_list += alliance
                names = c.Universe.post_universe_names(ids=names_list).result()
            except:
                messages.error(request,
                               "ESI Error. Please Try again later.")
                return redirect('toolbox:eve_note_board')

            context = {'form': form,
                       'names': names,
                       'restricted_perms': add_global_perms
                       }
            return render(request, 'toolbox/search_name.html', context)
    else:
        form = SearchEveName()
        return render(request, 'toolbox/search_name.html', {'form': form})
示例#6
0
def update_old_eve_notes():
    character_notes = EveNote.objects.filter(eve_catagory='character',
                                             corporation_id__isnull=True)
    c = esi_client_factory()

    for character in character_notes:
        print("Updating %s" % character.eve_name)
        char_info = c.Character.get_characters_character_id(
            character_id=character.eve_id).result()
        character.corporation_id = char_info.get('corporation_id')

        corp_info = c.Corporation.get_corporations_corporation_id(
            corporation_id=char_info.get('corporation_id')).result()
        character.corporation_name = corp_info.get('name')

        if corp_info.get('alliance_id', False):
            character.alliance_id = corp_info.get('alliance_id')
            alliance_info = c.Alliance.get_alliances_alliance_id(
                alliance_id=corp_info.get('alliance_id')).result()
            character.alliance_name = alliance_info.get('name')

        character.save()
 def client(self):
     if self._client is None:
         self._client = esi_client_factory()  # all groups latest
     return self._client
示例#8
0
 def __init__(self, token=None, adapter=None):
     self.client = esi_client_factory(token=token,
                                      spec_file=SWAGGER_SPEC_PATH)
     self.adapter = adapter or self
示例#9
0
 def api_get_instance(cls):
     token = Token.objects.filter(character_id=cls.charID)\
             .require_scopes(REQUIRED_TOKENS).require_valid()[0]
     return esi_client_factory(token=token, spec_file=SWAGGER_SPEC_PATH)
示例#10
0
 def __init__(self, token=None, adapter=None):
     self.client = esi_client_factory(token=token, spec_file=SWAGGER_SPEC_PATH)
     self.adapter = adapter or self
示例#11
0
 def __init__(self, token=None, adapter=None):
     self.client = esi_client_factory(token=token, Alliance='v1', Character='v4', Corporation='v2', Universe='v2')
     self.adapter = adapter or self
示例#12
0
 def _faction_name_to_id(name):
     factions = esi_client_factory(Universe='v1').get_factions().result()
     try:
         return [f['faction_id'] for f in factions if f['name'].startswith(name)][0]
     except KeyError:
         return None
示例#13
0
 def __init__(self, token=None, adapter=None):
     self.client = esi_client_factory(token=token)
     self.adapter = adapter or self