private def setProducerQuality()

in pushservice/src/main/scala/com/twitter/frigate/pushservice/rank/RFPHRanker.scala [186:231]


  private def setProducerQuality(
    target: Target,
    candidates: Seq[CandidateDetails[PushCandidate]],
    userHealthSignalStore: ReadableStore[Long, UserHealthSignalResponse],
    producerMediaRepresentationStore: ReadableStore[Long, UserMediaRepresentation]
  ): Unit = {
    lazy val boostRatio =
      target.params(PushFeatureSwitchParams.QualityUprankingBoostForHighQualityProducersParam)
    lazy val downboostRatio =
      target.params(PushFeatureSwitchParams.QualityUprankingDownboostForLowQualityProducersParam)
    candidates.foreach {
      case CandidateDetails(pushCandidate, _) =>
        HealthFeatureGetter
          .getFeatures(pushCandidate, producerMediaRepresentationStore, userHealthSignalStore).map {
            featureMap =>
              val agathaNsfwScore = featureMap.numericFeatures.getOrElse("agathaNsfwScore", 0.5)
              val textNsfwScore = featureMap.numericFeatures.getOrElse("textNsfwScore", 0.15)
              val nudityRate = featureMap.numericFeatures.getOrElse("nudityRate", 0.0)
              val activeFollowers = featureMap.numericFeatures.getOrElse("activeFollowers", 0.0)
              val favorsRcvd28Days = featureMap.numericFeatures.getOrElse("favorsRcvd28Days", 0.0)
              val tweets28Days = featureMap.numericFeatures.getOrElse("tweets28Days", 0.0)
              val authorDislikeCount = featureMap.numericFeatures
                .getOrElse("authorDislikeCount", 0.0)
              val authorDislikeRate = featureMap.numericFeatures.getOrElse("authorDislikeRate", 0.0)
              val authorReportRate = featureMap.numericFeatures.getOrElse("authorReportRate", 0.0)
              val abuseStrikeTop2Percent =
                featureMap.booleanFeatures.getOrElse("abuseStrikeTop2Percent", false)
              val abuseStrikeTop1Percent =
                featureMap.booleanFeatures.getOrElse("abuseStrikeTop1Percent", false)
              val hasNsfwToken = featureMap.booleanFeatures.getOrElse("hasNsfwToken", false)

              if ((activeFollowers > 3000000) ||
                (activeFollowers > 1000000 && agathaNsfwScore < 0.7 && nudityRate < 0.01 && !hasNsfwToken && !abuseStrikeTop2Percent) ||
                (activeFollowers > 100000 && agathaNsfwScore < 0.7 && nudityRate < 0.01 && !hasNsfwToken && !abuseStrikeTop2Percent &&
                tweets28Days > 0 && favorsRcvd28Days / tweets28Days > 3000 && authorReportRate < 0.000001 && authorDislikeRate < 0.0005)) {
                producerBoostedCounter.incr()
                pushCandidate.setProducerQualityUprankingBoost(boostRatio)
              } else if (activeFollowers < 5 || agathaNsfwScore > 0.9 || nudityRate > 0.03 || hasNsfwToken || abuseStrikeTop1Percent ||
                textNsfwScore > 0.4 || (authorDislikeRate > 0.005 && authorDislikeCount > 5) ||
                (tweets28Days > 56 && favorsRcvd28Days / tweets28Days < 100)) {
                producerDownboostedCounter.incr()
                pushCandidate.setProducerQualityUprankingBoost(downboostRatio)
              } else pushCandidate.setProducerQualityUprankingBoost(1.0)
          }
    }
  }