mirror of
https://github.com/twitter/the-algorithm.git
synced 2024-06-28 14:06:05 +02:00
ef4c5eb65e
Please note we have force-pushed a new initial commit in order to remove some publicly-available Twitter user information. Note that this process may be required in the future.
56 lines
2.1 KiB
Scala
56 lines
2.1 KiB
Scala
package com.twitter.home_mixer.functional_component.decorator
|
|
|
|
import com.twitter.home_mixer.model.HomeFeatures.SuggestTypeFeature
|
|
import com.twitter.home_mixer.product.following.model.HomeMixerExternalStrings
|
|
import com.twitter.product_mixer.component_library.model.candidate.TweetCandidate
|
|
import com.twitter.product_mixer.core.feature.featuremap.FeatureMap
|
|
import com.twitter.product_mixer.core.model.marshalling.response.urt.metadata.ChildFeedbackAction
|
|
import com.twitter.product_mixer.core.model.marshalling.response.urt.metadata.NotRelevant
|
|
import com.twitter.product_mixer.core.product.guice.scope.ProductScoped
|
|
import com.twitter.stringcenter.client.StringCenter
|
|
import com.twitter.timelines.common.{thriftscala => tlc}
|
|
import com.twitter.timelineservice.model.FeedbackInfo
|
|
import com.twitter.timelineservice.model.FeedbackMetadata
|
|
import com.twitter.timelineservice.{thriftscala => tlst}
|
|
|
|
import javax.inject.Inject
|
|
import javax.inject.Singleton
|
|
|
|
@Singleton
|
|
case class NotRelevantChildFeedbackActionBuilder @Inject() (
|
|
@ProductScoped stringCenter: StringCenter,
|
|
externalStrings: HomeMixerExternalStrings) {
|
|
|
|
def apply(
|
|
candidate: TweetCandidate,
|
|
candidateFeatures: FeatureMap
|
|
): Option[ChildFeedbackAction] = {
|
|
val prompt = stringCenter.prepare(externalStrings.notRelevantString)
|
|
val confirmation = stringCenter.prepare(externalStrings.notRelevantConfirmationString)
|
|
val feedbackMetadata = FeedbackMetadata(
|
|
engagementType = None,
|
|
entityIds = Seq(tlc.FeedbackEntity.TweetId(candidate.id)),
|
|
ttl = Some(FeedbackUtil.FeedbackTtl))
|
|
val feedbackUrl = FeedbackInfo.feedbackUrl(
|
|
feedbackType = tlst.FeedbackType.NotRelevant,
|
|
feedbackMetadata = feedbackMetadata,
|
|
injectionType = candidateFeatures.getOrElse(SuggestTypeFeature, None)
|
|
)
|
|
|
|
Some(
|
|
ChildFeedbackAction(
|
|
feedbackType = NotRelevant,
|
|
prompt = Some(prompt),
|
|
confirmation = Some(confirmation),
|
|
feedbackUrl = Some(feedbackUrl),
|
|
hasUndoAction = Some(true),
|
|
confirmationDisplayType = None,
|
|
clientEventInfo = None,
|
|
icon = None,
|
|
richBehavior = None,
|
|
subprompt = None
|
|
)
|
|
)
|
|
}
|
|
}
|