def run_corp_update(): if not EveApiManager.check_if_api_server_online(): logger.warn( "Aborted updating corp and alliance models: API server unreachable" ) return # generate member corps for corp_id in settings.STR_CORP_IDS + settings.STR_BLUE_CORP_IDS: is_blue = True if corp_id in settings.STR_BLUE_CORP_IDS else False try: if EveCorporationInfo.objects.filter( corporation_id=corp_id).exists(): update_corp(corp_id, is_blue=is_blue) else: EveManager.create_corporation(corp_id, is_blue=is_blue) except ObjectNotFound: logger.warn('Bad corp ID in settings: %s' % corp_id) # generate member alliances for alliance_id in settings.STR_ALLIANCE_IDS + settings.STR_BLUE_ALLIANCE_IDS: is_blue = True if alliance_id in settings.STR_BLUE_ALLIANCE_IDS else False try: if EveAllianceInfo.objects.filter( alliance_id=alliance_id).exists(): logger.debug( "Updating existing owner alliance model with id %s" % alliance_id) update_alliance(alliance_id, is_blue=is_blue) else: EveManager.create_alliance(alliance_id, is_blue=is_blue) EveManager.populate_alliance(alliance_id) except ObjectNotFound: logger.warn('Bad alliance ID in settings: %s' % alliance_id) # update existing corp models for corp in EveCorporationInfo.objects.exclude( corporation_id__in=settings.STR_CORP_IDS + settings.STR_BLUE_CORP_IDS): update_corp.delay(corp.corporation_id) # update existing alliance models for alliance in EveAllianceInfo.objects.exclude( alliance_id__in=settings.STR_ALLIANCE_IDS + settings.STR_BLUE_ALLIANCE_IDS): update_alliance.delay(alliance.alliance_id) try: # create standings standings = EveApiManager.get_corp_standings() if standings: standings = standings[settings.STANDING_LEVEL] for standing in standings: if float(standings[standing] ['standing']) >= settings.BLUE_STANDING: logger.debug("Standing %s meets threshold" % standing) if EveApiManager.check_if_id_is_alliance(standing): logger.debug("Standing %s is an alliance" % standing) if EveAllianceInfo.objects.filter( alliance_id=standing).exists(): alliance = EveAllianceInfo.objects.get( alliance_id=standing) if alliance.is_blue is not True: logger.info("Updating alliance %s as blue" % alliance) alliance.is_blue = True alliance.save() else: EveManager.create_alliance(standing, is_blue=True) elif EveApiManager.check_if_id_is_corp(standing): logger.debug("Standing %s is a corp" % standing) if EveCorporationInfo.objects.filter( corporation_id=standing).exists(): corp = EveCorporationInfo.objects.get( corporation_id=standing) if corp.is_blue is not True: logger.info("Updating corp %s as blue" % corp) corp.is_blue = True corp.save() else: logger.info( "Creating model for blue corp with id %s" % standing) EveManager.create_corporation(standing, is_blue=True) # update alliance standings for alliance in EveAllianceInfo.objects.filter(is_blue=True): if int(alliance.alliance_id) in standings: if float(standings[int( alliance.alliance_id)]['standing']) < float( settings.BLUE_STANDING): logger.info( "Alliance %s no longer meets minimum blue standing threshold" % alliance) alliance.is_blue = False alliance.save() elif alliance.alliance_id not in settings.STR_BLUE_ALLIANCE_IDS: logger.info("Alliance %s no longer in standings" % alliance) alliance.is_blue = False alliance.save() # update corp standings for corp in EveCorporationInfo.objects.filter(is_blue=True): if int(corp.corporation_id) in standings: if float(standings[int( corp.corporation_id)]['standing']) < float( settings.BLUE_STANDING): logger.info( "Corp %s no longer meets minimum blue standing threshold" % corp) corp.is_blue = False corp.save() elif corp.corporation_id not in settings.STR_BLUE_CORP_IDS: if corp.alliance: if not corp.alliance.is_blue: logger.info( "Corp %s and its alliance %s are no longer blue" % (corp, corp.alliance)) corp.is_blue = False corp.save() else: logger.info("Corp %s is no longer blue" % corp) corp.is_blue = False corp.save() except evelink.api.APIError as e: logger.error("Model update failed with error code %s" % e.code) # delete unnecessary alliance models EveAllianceInfo.objects.filter(is_blue=False).exclude( alliance_id__in=settings.STR_ALLIANCE_IDS).delete() # delete unnecessary corp models EveCorporationInfo.objects.filter(is_blue=False).exclude( corporation_id__in=settings.STR_CORP_IDS).exclude( alliance__alliance_id__in=settings.STR_ALLIANCE_IDS).delete()
def update_alliance(id, is_blue=None): EveManager.update_alliance(id, is_blue=is_blue) EveManager.populate_alliance(id)
def run_corp_update(): if not EveApiManager.check_if_api_server_online(): logger.warn("Aborted updating corp and alliance models: API server unreachable") return # generate member corps for corp_id in settings.STR_CORP_IDS + settings.STR_BLUE_CORP_IDS: is_blue = True if corp_id in settings.STR_BLUE_CORP_IDS else False try: if EveCorporationInfo.objects.filter(corporation_id=corp_id).exists(): update_corp.apply(args=(corp_id,), kwargs={'is_blue': is_blue}) else: EveManager.create_corporation(corp_id, is_blue=is_blue) except ObjectNotFound: logger.warn('Bad corp ID in settings: %s' % corp_id) # generate member alliances for alliance_id in settings.STR_ALLIANCE_IDS + settings.STR_BLUE_ALLIANCE_IDS: is_blue = True if alliance_id in settings.STR_BLUE_ALLIANCE_IDS else False try: if EveAllianceInfo.objects.filter(alliance_id=alliance_id).exists(): logger.debug("Updating existing owner alliance model with id %s" % alliance_id) update_alliance(alliance_id, is_blue=is_blue) else: EveManager.create_alliance(alliance_id, is_blue=is_blue) EveManager.populate_alliance(alliance_id) except ObjectNotFound: logger.warn('Bad alliance ID in settings: %s' % alliance_id) # update existing corp models for corp in EveCorporationInfo.objects.exclude( corporation_id__in=settings.STR_CORP_IDS + settings.STR_BLUE_CORP_IDS): update_corp.delay(corp.corporation_id) # update existing alliance models for alliance in EveAllianceInfo.objects.exclude( alliance_id__in=settings.STR_ALLIANCE_IDS + settings.STR_BLUE_ALLIANCE_IDS): update_alliance.delay(alliance.alliance_id) try: # create standings standings = EveApiManager.get_corp_standings() if standings: standings = standings[settings.STANDING_LEVEL] for standing in standings: if float(standings[standing]['standing']) >= settings.BLUE_STANDING: logger.debug("Standing %s meets threshold" % standing) if EveApiManager.check_if_id_is_alliance(standing): logger.debug("Standing %s is an alliance" % standing) if EveAllianceInfo.objects.filter(alliance_id=standing).exists(): alliance = EveAllianceInfo.objects.get(alliance_id=standing) if alliance.is_blue is not True: logger.info("Updating alliance %s as blue" % alliance) alliance.is_blue = True alliance.save() else: EveManager.create_alliance(standing, is_blue=True) elif EveApiManager.check_if_id_is_corp(standing): logger.debug("Standing %s is a corp" % standing) if EveCorporationInfo.objects.filter(corporation_id=standing).exists(): corp = EveCorporationInfo.objects.get(corporation_id=standing) if corp.is_blue is not True: logger.info("Updating corp %s as blue" % corp) corp.is_blue = True corp.save() else: logger.info("Creating model for blue corp with id %s" % standing) EveManager.create_corporation(standing, is_blue=True) # update alliance standings for alliance in EveAllianceInfo.objects.filter(is_blue=True): if int(alliance.alliance_id) in standings: if float(standings[int(alliance.alliance_id)]['standing']) < float(settings.BLUE_STANDING): logger.info("Alliance %s no longer meets minimum blue standing threshold" % alliance) alliance.is_blue = False alliance.save() elif alliance.alliance_id not in settings.STR_BLUE_ALLIANCE_IDS: logger.info("Alliance %s no longer in standings" % alliance) alliance.is_blue = False alliance.save() # update corp standings for corp in EveCorporationInfo.objects.filter(is_blue=True): if int(corp.corporation_id) in standings: if float(standings[int(corp.corporation_id)]['standing']) < float(settings.BLUE_STANDING): logger.info("Corp %s no longer meets minimum blue standing threshold" % corp) corp.is_blue = False corp.save() elif corp.corporation_id not in settings.STR_BLUE_CORP_IDS: if corp.alliance: if not corp.alliance.is_blue: logger.info("Corp %s and its alliance %s are no longer blue" % (corp, corp.alliance)) corp.is_blue = False corp.save() else: logger.info("Corp %s is no longer blue" % corp) corp.is_blue = False corp.save() except evelink.api.APIError as e: logger.error("Model update failed with error code %s" % e.code) # delete unnecessary alliance models EveAllianceInfo.objects.filter(is_blue=False).exclude(alliance_id__in=settings.STR_ALLIANCE_IDS).delete() # delete unnecessary corp models EveCorporationInfo.objects.filter(is_blue=False).exclude(corporation_id__in=settings.STR_CORP_IDS).exclude( alliance__alliance_id__in=settings.STR_ALLIANCE_IDS).delete()
def update_alliance(id): EveManager.update_alliance(id) EveManager.populate_alliance(id)