def get_corporation_transactions(corporation_id, highest_id=None, current_user=None): corporation = Corporation.get(corporation_id) character = Character.get(corporation.ceo_id) character_application_access_check(current_user, character) response = character.get_op('get_corporations_corporation_id_divisions', corporation_id=corporation_id) wallet_division_data = response['wallet'] divisions = { entry['division']: entry.get('name', 'Division {}'.format(entry['division'])) for entry in wallet_division_data } return_data = [] if highest_id is None: kwargs = {} else: kwargs = {'highest_id': highest_id} for division_id, division_name in divisions.items(): entry = {'division_name': division_name} transaction_data = character.get_op( 'get_corporations_corporation_id_wallets_division_transactions', corporation_id=corporation_id, division=division_id, **kwargs, ) entry.update(process_transactions(character, transaction_data)) return_data.append(entry) return {'info': return_data}
def get_character_skills(character_id, current_user=None): character = Character.get(character_id) character_application_access_check(current_user, character) skill_data = character.get_op( 'get_characters_character_id_skills', character_id=character_id, ) queue_data = character.get_op( 'get_characters_character_id_skillqueue', character_id=character_id, ) for skill_list in skill_data['skills'], queue_data: for entry in skill_list: skill = Type.get(entry['skill_id']) group = Group.get(skill.group_id) entry['skill_id'] = { 'group_name': group.name, 'skill_name': skill.name, } return { 'info': { 'skills': skill_data['skills'], 'queue': queue_data, 'total_sp': skill_data['total_sp'] } }
def get_character_corporation_history(character_id, current_user=None): character = Character.get(character_id) character_application_access_check(current_user, character) corporation_list = character.get_op( 'get_characters_character_id_corporationhistory', character_id=character_id, ) for entry in corporation_list: entry['is_deleted'] = entry.get('is_deleted', False) if entry['is_deleted']: entry['corporation_name'] = 'Deleted corp {}'.format( entry['corporation_id']) entry['alliance_name'] = 'Unknown' entry['redlisted'] = [] else: corporation = Corporation.get(entry['corporation_id']) entry['corporation_name'] = corporation.name if corporation.alliance: entry['alliance_name'] = corporation.alliance.name else: entry['alliance_name'] = None redlisted_names = [] if corporation.is_redlisted: redlisted_names.append('corporation_name') if corporation.alliance and corporation.alliance.is_redlisted: redlisted_names.append('alliance_name') if character.is_redlisted: redlisted_names.append('character_name') entry['redlisted'] = redlisted_names return {'info': corporation_list}
def get_character_fittings(character_id, current_user=None): character = Character.get(character_id) character_application_access_check(current_user, character) fitting_data = character.get_op( 'get_characters_character_id_fittings', character_id=character_id, ) types = set() for entry in fitting_data: types.add(entry['ship_type_id']) for item in entry['items']: types.add(item['type_id']) type_dict = Type.get_multi(list(types)) for entry in fitting_data: entry['redlisted'] = [] entry['ship_type_name'] = type_dict[entry['ship_type_id']].name if type_dict[entry['ship_type_id']].is_redlisted: entry['redlisted'].append('ship_type_name') items_redlisted = False for item in entry['items']: item['type_name'] = type_dict[item['type_id']].name if type_dict[item['type_id']].is_redlisted: item['redlisted'] = ['type_name'] items_redlisted = True else: item['redlisted'] = [] if items_redlisted: entry['redlisted'].append('items') return {'info': fitting_data}
def get_character_journal(character_id, current_user=None): character = Character.get(character_id) character_application_access_check(current_user, character) wallet_data = character.get_paged_op( 'get_characters_character_id_wallet_journal', character_id=character_id) return process_journal(character_id, wallet_data)
def get_character_market_contracts(character_id, current_user=None): character = Character.get(character_id) character_application_access_check(current_user, character) contract_list = character.get_paged_op( 'get_characters_character_id_contracts', character_id=character_id, ) return process_contracts(character, contract_list)
def get_character_mining(character_id, current_user=None): character = Character.get(character_id) character_application_access_check(current_user, character) mining_data = character.get_op( 'get_characters_character_id_mining', character_id=character_id, ) return process_mining(mining_data)
def get_character_industry(character_id, current_user=None): character = Character.get(character_id) character_application_access_check(current_user, character) industry_job_data = character.get_op( 'get_characters_character_id_industry_jobs', character_id=character_id, ) return process_industry(character, industry_job_data)
def get_mail_body(character_id, mail_id, current_user=None): character = Character.get(character_id) character_application_access_check(current_user, character) mail_data = character.get_op( 'get_characters_character_id_mail_mail_id', character_id=character_id, mail_id=mail_id, ) return mail_data['body']
def get_character_mail(character_id, last_mail_id=None, current_user=None): target_character = Character.get(character_id) character_application_access_check(current_user, target_character) if last_mail_id: kwargs = {'last_mail_id': last_mail_id} else: kwargs = {} mail_list = target_character.get_op('get_characters_character_id_mail', character_id=character_id, **kwargs) from_ids = set(entry['from'] for entry in mail_list) if from_ids: character_ids = set() corp_ids = set() alliance_ids = set() mailing_list_ids = set() id_set_dict = { 'character': character_ids, 'corporation': corp_ids, 'alliance': alliance_ids, 'mailing_list': mailing_list_ids, } name_data = get_from_names(list(from_ids)) for entry in name_data: id_set_dict[entry['category']].add(entry['id']) for entry in mail_list: for recipient in entry['recipients']: id_set_dict[recipient['recipient_type']].add( recipient['recipient_id']) characters = Character.get_multi(character_ids) corporations = Corporation.get_multi(corp_ids) alliances = Alliance.get_multi(alliance_ids) all_parties = {} all_parties.update(characters) all_parties.update(corporations) all_parties.update(alliances) for id in mailing_list_ids: all_parties[id] = MailingList('Mailing List {}'.format(id)) for entry in mail_list: entry['redlisted'] = [] entry['from_name'] = all_parties[entry['from']].name recipients_redlisted = False for recipient in entry['recipients']: recipient['recipient_name'] = all_parties[ recipient['recipient_id']].name if all_parties[recipient['recipient_id']].is_redlisted: recipient['redlisted'] = ['recipient_name'] else: recipient['redlisted'] = [] if recipients_redlisted: entry['redlisted'].append('recipients') if all_parties[entry['from']].is_redlisted: entry['redlisted'].append('from_name') return {'info': mail_list}
def get_character_blueprints(character_id, current_user=None): character = Character.get(character_id) character_application_access_check(current_user, character) assets = get_character_assets(character_id, current_user=current_user) blueprints_list = character.get_paged_op( 'get_characters_character_id_blueprints', character_id=character_id, ) return process_blueprints(assets, blueprints_list)
def get_corporation_assets(corporation_id, current_user=None): corporation = Corporation.get(corporation_id) character = Character.get(corporation.ceo_id) character_application_access_check(current_user, character) asset_list = character.get_paged_op( 'get_corporations_corporation_id_assets', corporation_id=corporation_id, ) return process_assets(character, asset_list, corporation_id=corporation_id)
def get_character_bookmarks(character_id, current_user=None): character = Character.get(character_id) character_application_access_check(current_user, character) bookmarks_list = character.get_paged_op( 'get_characters_character_id_bookmarks', character_id=character_id, ) folder_list = character.get_paged_op( 'get_characters_character_id_bookmarks_folders', character_id=character_id) return process_bookmarks(character, bookmarks_list, folder_list)
def get_character_calendar(character_id, current_user=None): character = Character.get(character_id) character_application_access_check(current_user, character) calendar_data = character.get_op('get_characters_character_id_calendar', character_id=character_id) for entry in calendar_data: entry.update( get_character_calendar_event(character_id, entry['event_id'], current_user=current_user)) entry.pop('date') return {'info': calendar_data}
def get_character_transactions(character_id, highest_id=None, current_user=None): character = Character.get(character_id) character_application_access_check(current_user, character) if highest_id is not None: kwargs = {'highest_id': highest_id} else: kwargs = {} wallet_data = character.get_op( 'get_characters_character_id_wallet_transactions', character_id=character_id, **kwargs) return process_transactions(character, wallet_data)
def get_character_clones(character_id, current_user=None): character = Character.get(character_id) character_application_access_check(current_user, character) clone_data = character.get_op('get_characters_character_id_clones', character_id=character_id) location_ids = set([clone_data['home_location']['location_id']]) location_ids.update(entry['location_id'] for entry in clone_data['jump_clones']) location_dict = get_location_multi(character, location_ids) clone_data['home_location']['redlisted'] = [] set_system_and_region(clone_data['home_location'], location_dict) for entry in clone_data['jump_clones']: entry['redlisted'] = [] set_system_and_region(entry, location_dict) return {'info': clone_data}
def get_corporation_market_history(corporation_id, current_user=None): corporation = Corporation.get(corporation_id) character = Character.get(corporation.ceo_id) character_application_access_check(current_user, character) order_list = list( character.get_op( 'get_corporations_corporation_id_orders', corporation_id=corporation_id, )) order_list.extend( character.get_paged_op( 'get_corporations_corporation_id_orders_history', corporation_id=corporation_id, )) return process_market_history(character, order_list)
def get_character_calendar_event(character_id, event_id, current_user=None): character = Character.get(character_id) character_application_access_check(current_user, character) event_data = character.get_op( 'get_characters_character_id_calendar_event_id', character_id=character_id, event_id=event_id, ) event_data['redlisted'] = [] if event_data['owner_type'] in ('corporation', 'character', 'alliance'): owner = get_id_data([event_data['owner_id']], sorted=False)[event_data['owner_id']] if owner.is_redlisted: event_data['redlisted'].append('owner_name') return event_data
def get_character_market_history(character_id, current_user=None): character = Character.get(character_id) character_application_access_check(current_user, character) order_list = list( character.get_op( 'get_characters_character_id_orders', character_id=character_id, )) for entry in order_list: entry['is_open'] = True historical_orders = character.get_paged_op( 'get_characters_character_id_orders_history', character_id=character_id, ) for entry in historical_orders: entry['is_open'] = False order_list.extend(historical_orders) return process_market_history(character, order_list)
def get_character_summary(character_id, current_user=None): character = Character.get(character_id) if (character_id != current_user.id): character_application_access_check(current_user, character) character_data = character.get_op( 'get_characters_character_id', character_id=character_id, ) application = Application.get_for_user(character.user_id) if application is not None: character_data['current_application_id'] = application.id if character_id == current_user.id: character_data[ 'current_application_status'] = own_application_status( current_user)['status'] else: character_data[ 'current_application_status'] = get_application_status( application) else: character_data['current_application_id'] = None character_data['current_application_status'] = None character_data['security_status'] = character_data.get( 'security_status', 0.) corporation = Corporation.get(character_data['corporation_id']) if character.corporation_id != corporation.id: character.corporation_id = corporation.id db.session.commit() character_data['corporation_name'] = corporation.name if corporation.alliance is not None: character_data['alliance_name'] = corporation.alliance.name else: character_data['alliance_name'] = None character_data['character_name'] = character_data.pop('name') character_data['character_id'] = character_id redlisted_names = [] if corporation.is_redlisted: redlisted_names.append('corporation_name') if corporation.alliance and corporation.alliance.is_redlisted: redlisted_names.append('alliance_name') if character.is_redlisted: redlisted_names.append('character_name') character_data['redlisted'] = redlisted_names return {'info': character_data}
def get_corporation_journal(corporation_id, current_user=None): corporation = Corporation.get(corporation_id) character = Character.get(corporation.ceo_id) character_application_access_check(current_user, character) response = character.get_op('get_corporations_corporation_id_divisions', corporation_id=corporation_id) wallet_division_data = response['wallet'] divisions = { entry['division']: entry.get('name', 'Division {}'.format(entry['division'])) for entry in wallet_division_data } return_data = [] for division_id, division_name in divisions.items(): entry = {'division_name': division_name} journal_data = character.get_paged_op( 'get_corporations_corporation_id_wallets_division_journal', corporation_id=corporation_id, division=division_id, ) entry['info'] = process_journal(character.id, journal_data)['info'] return_data.append(entry) return {'info': return_data}
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}