def update_keys(self): """Update all API Keys and Characters associated.""" from newauth.models import Character updated_characters = set() for api_key in self.api_keys.all(): api_key.update_api_key() api_key.get_characters() for character in api_key.characters: updated_characters.add(character.id) db.session.add(api_key) characters_to_delete = Character.query.filter(db.not_(Character.id.in_(list(updated_characters)))).all() for character in characters_to_delete: db.session.delete(character) if self.main_character_id in characters_to_delete: del self.main_character_id db.session.add(self) db.session.commit()
def update_keys(self): """Update all API Keys and Characters associated.""" from newauth.models import Character updated_characters = set() for api_key in self.api_keys.all(): api_key.update_api_key() api_key.get_characters() for character in api_key.characters: updated_characters.add(character.id) db.session.add(api_key) characters_to_delete = Character.query.filter( db.not_(Character.id.in_(list(updated_characters)))).all() for character in characters_to_delete: db.session.delete(character) if self.main_character_id in characters_to_delete: del self.main_character_id db.session.add(self) db.session.commit()
def update_contacts(): contacts_updated = set() auth_contacts = AuthContact.query.all() alliance_list = EveAPIQuery(public=True).get('eve/AllianceList') # Adding itself for alliance_id in current_app.config['EVE']['alliances']: alliance = None for a in alliance_list.row: if a.allianceID == alliance_id: alliance = a if not alliance: current_app.logger.warning( 'Could not find alliance #{}'.format(alliance_id)) continue if alliance_id not in contacts_updated: contacts_updated.add(alliance_id) db.session.add( AuthContact.get_or_create( id=alliance.allianceID, name=alliance.name, short_name=alliance.shortName, type=AuthContactType.alliance.value, members=alliance.memberCount, internal=True, enabled=True, updated_on=datetime.datetime.utcnow())) for corporation in alliance.memberCorporations.row: sheet = EveAPIQuery(public=True).get( 'corp/CorporationSheet', corporationID=corporation.corporationID) if sheet.corporationID not in contacts_updated: contacts_updated.add(sheet.corporationID) db.session.add( AuthContact.get_or_create( id=sheet.corporationID, name=sheet.corporationName, short_name=sheet.ticker, type=AuthContactType.corporation.value, members=sheet.memberCount, internal=True, enabled=True, updated_on=datetime.datetime.utcnow())) for corporation_id in current_app.config['EVE']['corporations']: sheet = EveAPIQuery(public=True).get('corp/CorporationSheet', corporationID=corporation_id) if sheet.corporationID not in contacts_updated: contacts_updated.add(sheet.corporationID) db.session.add( AuthContact.get_or_create( id=sheet.corporationID, name=sheet.corporationName, short_name=sheet.ticker, type=AuthContactType.corporation.value, members=sheet.memberCount, enabled=True, updated_on=datetime.datetime.utcnow())) for key in current_app.config['EVE']['keys']: contact_list = EveAPIQuery(key_id=key[0], vcode=key[1]).get('corp/ContactList') for contact in contact_list.corporateContactList.row + contact_list.allianceContactList.row: if contact.contactTypeID in CHARACTER_TYPES: pass # We don't really care about character contacts elif contact.contactTypeID in CORPORATION_TYPES: sheet = EveAPIQuery(public=True).get( 'corp/CorporationSheet', corporationID=contact.contactID) if sheet.corporationID not in contacts_updated: contacts_updated.add(sheet.corporationID) db.session.add( AuthContact.get_or_create( id=sheet.corporationID, name=sheet.corporationName, short_name=sheet.ticker, type=AuthContactType.corporation.value, members=sheet.memberCount, enabled=False, updated_on=datetime.datetime.utcnow())) elif contact.contactTypeID in ALLIANCE_TYPES: alliance = None for a in alliance_list.row: if a.allianceID == alliance_id: alliance = a if not alliance: current_app.logger.warning( 'Could not find alliance #{}'.format( contact.contactID)) continue if alliance.allianceID not in contacts_updated: contacts_updated.add(alliance.allianceID) db.session.add( AuthContact.get_or_create( id=alliance.allianceID, name=alliance.name, short_name=alliance.shortName, type=AuthContactType.alliance.value, members=alliance.memberCount, enabled=False, updated_on=datetime.datetime.utcnow())) else: current_app.logger.warning( 'Could not determinate contact type for contact: {}'. format(contact)) contacts_to_delete = AuthContact.query.filter( db.not_(AuthContact.id.in_(list(contacts_updated)))).all() current_app.logger.info( "Updating {} contacts and deleting {} contacts".format( len(contacts_updated), len(contacts_to_delete))) db.session.commit()
def update_contacts(): contacts_updated = set() auth_contacts = AuthContact.query.all() alliance_list = EveAPIQuery(public=True).get('eve/AllianceList') # Adding itself for alliance_id in current_app.config['EVE']['alliances']: alliance = None for a in alliance_list.row: if a.allianceID == alliance_id: alliance = a if not alliance: current_app.logger.warning('Could not find alliance #{}'.format(alliance_id)) continue if alliance_id not in contacts_updated: contacts_updated.add(alliance_id) db.session.add(AuthContact.get_or_create( id=alliance.allianceID, name=alliance.name, short_name=alliance.shortName, type=AuthContactType.alliance.value, members=alliance.memberCount, internal=True, enabled=True, updated_on=datetime.datetime.utcnow() )) for corporation in alliance.memberCorporations.row: sheet = EveAPIQuery(public=True).get('corp/CorporationSheet', corporationID=corporation.corporationID) if sheet.corporationID not in contacts_updated: contacts_updated.add(sheet.corporationID) db.session.add(AuthContact.get_or_create( id=sheet.corporationID, name=sheet.corporationName, short_name=sheet.ticker, type=AuthContactType.corporation.value, members=sheet.memberCount, internal=True, enabled=True, updated_on=datetime.datetime.utcnow() )) for corporation_id in current_app.config['EVE']['corporations']: sheet = EveAPIQuery(public=True).get('corp/CorporationSheet', corporationID=corporation_id) if sheet.corporationID not in contacts_updated: contacts_updated.add(sheet.corporationID) db.session.add(AuthContact.get_or_create( id=sheet.corporationID, name=sheet.corporationName, short_name=sheet.ticker, type=AuthContactType.corporation.value, members=sheet.memberCount, enabled=True, updated_on=datetime.datetime.utcnow() )) for key in current_app.config['EVE']['keys']: contact_list = EveAPIQuery(key_id=key[0], vcode=key[1]).get('corp/ContactList') for contact in contact_list.corporateContactList.row + contact_list.allianceContactList.row: if contact.contactTypeID in CHARACTER_TYPES: pass # We don't really care about character contacts elif contact.contactTypeID in CORPORATION_TYPES: sheet = EveAPIQuery(public=True).get('corp/CorporationSheet', corporationID=contact.contactID) if sheet.corporationID not in contacts_updated: contacts_updated.add(sheet.corporationID) db.session.add(AuthContact.get_or_create( id=sheet.corporationID, name=sheet.corporationName, short_name=sheet.ticker, type=AuthContactType.corporation.value, members=sheet.memberCount, enabled=False, updated_on=datetime.datetime.utcnow() )) elif contact.contactTypeID in ALLIANCE_TYPES: alliance = None for a in alliance_list.row: if a.allianceID == alliance_id: alliance = a if not alliance: current_app.logger.warning('Could not find alliance #{}'.format(contact.contactID)) continue if alliance.allianceID not in contacts_updated: contacts_updated.add(alliance.allianceID) db.session.add(AuthContact.get_or_create( id=alliance.allianceID, name=alliance.name, short_name=alliance.shortName, type=AuthContactType.alliance.value, members=alliance.memberCount, enabled=False, updated_on=datetime.datetime.utcnow() )) else: current_app.logger.warning('Could not determinate contact type for contact: {}'.format(contact)) contacts_to_delete = AuthContact.query.filter(db.not_(AuthContact.id.in_(list(contacts_updated)))).all() current_app.logger.info("Updating {} contacts and deleting {} contacts".format(len(contacts_updated), len(contacts_to_delete))) db.session.commit()