Exemplo n.º 1
0
def get_location_multi(character, location_id_list, raise_on_missing=True):
    station_id_list = []
    structure_id_list = []
    system_id_list = []
    for location_id in location_id_list:
        if 60000000 <= location_id < 64000000:  # station
            station_id_list.append(location_id)
        elif 30000000 < location_id < 32000000:  # system
            system_id_list.append(location_id)
        elif location_id > 50000000:  # structure
            structure_id_list.append(location_id)
        elif location_id == 2004:
            structure_id_list.append(location_id)
        elif raise_on_missing:
            raise BadLocationError(
                'location_id {} does not correspond to station'
                ', system, or structure'.format(location_id))
    location_dict = {}
    location_dict.update(Station.get_multi(station_id_list))
    location_dict.update(System.get_multi(system_id_list))
    location_dict.update(Structure.get_multi(character, structure_id_list))
    return location_dict
Exemplo n.º 2
0
def get_character_planetary_interaction(character_id, current_user=None):
    character = Character.get(character_id)
    character_application_access_check(current_user, character)
    planet_data = character.get_op(
        'get_characters_character_id_planets',
        character_id=character_id,
    )
    system_ids = set()
    for entry in planet_data:
        system_ids.add(entry['solar_system_id'])
    system_dict = System.get_multi(list(system_ids))

    for entry in planet_data:
        entry['redlisted'] = []
        system = system_dict[entry.pop('solar_system_id')]
        entry['system_id'] = system.id
        entry['system_name'] = system.name
        entry['region_id'] = system.region_id
        entry['region_name'] = system.region.name
        if system.is_redlisted:
            entry['redlisted'].append('system_name')
        if system.region.is_redlisted:
            entry['redlisted'].append('region_name')
    return {'info': planet_data}