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
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}