mirror of
https://github.com/twitter/the-algorithm.git
synced 2024-06-26 13:06:05 +02:00
![twitter-team](/assets/img/avatar_default.png)
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.
43 lines
1.6 KiB
Scala
43 lines
1.6 KiB
Scala
package com.twitter.home_mixer.model
|
|
|
|
import com.twitter.adserver.thriftscala.RequestTriggerType
|
|
import com.twitter.home_mixer.model.HomeFeatures.GetInitialFeature
|
|
import com.twitter.home_mixer.model.HomeFeatures.GetNewerFeature
|
|
import com.twitter.home_mixer.model.HomeFeatures.GetOlderFeature
|
|
import com.twitter.home_mixer.model.HomeFeatures.PollingFeature
|
|
import com.twitter.home_mixer.model.request.HasDeviceContext
|
|
import com.twitter.product_mixer.component_library.model.cursor.UrtOrderedCursor
|
|
import com.twitter.product_mixer.component_library.model.query.ads.AdsQuery
|
|
import com.twitter.product_mixer.core.feature.featuremap.FeatureMap
|
|
import com.twitter.product_mixer.core.pipeline.HasPipelineCursor
|
|
import com.twitter.product_mixer.core.pipeline.PipelineQuery
|
|
|
|
/**
|
|
* These are for feeds needed for ads only.
|
|
*/
|
|
trait HomeAdsQuery
|
|
extends AdsQuery
|
|
with PipelineQuery
|
|
with HasDeviceContext
|
|
with HasPipelineCursor[UrtOrderedCursor] {
|
|
|
|
private val featureToRequestTriggerType = Seq(
|
|
(GetInitialFeature, RequestTriggerType.Initial),
|
|
(GetNewerFeature, RequestTriggerType.Scroll),
|
|
(GetOlderFeature, RequestTriggerType.Scroll),
|
|
(PollingFeature, RequestTriggerType.AutoRefresh)
|
|
)
|
|
|
|
override val autoplayEnabled: Option[Boolean] = deviceContext.flatMap(_.autoplayEnabled)
|
|
|
|
override def requestTriggerType: Option[RequestTriggerType] = {
|
|
val features = this.features.getOrElse(FeatureMap.empty)
|
|
|
|
featureToRequestTriggerType.collectFirst {
|
|
case (feature, requestType) if features.get(feature) => Some(requestType)
|
|
}.flatten
|
|
}
|
|
|
|
override val disableNsfwAvoidance: Option[Boolean] = Some(true)
|
|
}
|