mirror of
https://github.com/twitter/the-algorithm.git
synced 2024-06-13 14:48:54 +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.
87 lines
3.4 KiB
Scala
87 lines
3.4 KiB
Scala
package com.twitter.timelineranker.config
|
|
|
|
import com.twitter.servo.util.Gate
|
|
import com.twitter.timelineranker.clients.ScopedCortexTweetQueryServiceClientFactory
|
|
import com.twitter.timelines.clients.gizmoduck.ScopedGizmoduckClientFactory
|
|
import com.twitter.timelines.clients.manhattan.ScopedUserMetadataClientFactory
|
|
import com.twitter.timelines.clients.socialgraph.ScopedSocialGraphClientFactory
|
|
import com.twitter.timelines.clients.strato.realgraph.ScopedRealGraphClientFactory
|
|
import com.twitter.timelines.clients.tweetypie.AdditionalFieldConfig
|
|
import com.twitter.timelines.clients.tweetypie.ScopedTweetyPieClientFactory
|
|
import com.twitter.timelines.visibility.VisibilityEnforcerFactory
|
|
import com.twitter.timelines.visibility.VisibilityProfileHydratorFactory
|
|
import com.twitter.tweetypie.thriftscala.{Tweet => TTweet}
|
|
|
|
class ClientWrapperFactories(config: RuntimeConfiguration) {
|
|
private[this] val statsReceiver = config.statsReceiver
|
|
|
|
val cortexTweetQueryServiceClientFactory: ScopedCortexTweetQueryServiceClientFactory =
|
|
new ScopedCortexTweetQueryServiceClientFactory(
|
|
config.underlyingClients.cortexTweetQueryServiceClient,
|
|
statsReceiver = statsReceiver
|
|
)
|
|
|
|
val gizmoduckClientFactory: ScopedGizmoduckClientFactory = new ScopedGizmoduckClientFactory(
|
|
config.underlyingClients.gizmoduckClient,
|
|
statsReceiver = statsReceiver
|
|
)
|
|
|
|
val socialGraphClientFactory: ScopedSocialGraphClientFactory = new ScopedSocialGraphClientFactory(
|
|
config.underlyingClients.sgsClient,
|
|
statsReceiver
|
|
)
|
|
|
|
val visibilityEnforcerFactory: VisibilityEnforcerFactory = new VisibilityEnforcerFactory(
|
|
gizmoduckClientFactory,
|
|
socialGraphClientFactory,
|
|
statsReceiver
|
|
)
|
|
|
|
val tweetyPieAdditionalFieldsToDisable: Seq[Short] = Seq(
|
|
TTweet.MediaTagsField.id,
|
|
TTweet.SchedulingInfoField.id,
|
|
TTweet.EscherbirdEntityAnnotationsField.id,
|
|
TTweet.CardReferenceField.id,
|
|
TTweet.SelfPermalinkField.id,
|
|
TTweet.ExtendedTweetMetadataField.id,
|
|
TTweet.CommunitiesField.id,
|
|
TTweet.VisibleTextRangeField.id
|
|
)
|
|
|
|
val tweetyPieHighQoSClientFactory: ScopedTweetyPieClientFactory =
|
|
new ScopedTweetyPieClientFactory(
|
|
tweetyPieClient = config.underlyingClients.tweetyPieHighQoSClient,
|
|
additionalFieldConfig = AdditionalFieldConfig(
|
|
fieldDisablingGates = tweetyPieAdditionalFieldsToDisable.map(_ -> Gate.False).toMap
|
|
),
|
|
includePartialResults = Gate.False,
|
|
statsReceiver = statsReceiver
|
|
)
|
|
|
|
val tweetyPieLowQoSClientFactory: ScopedTweetyPieClientFactory = new ScopedTweetyPieClientFactory(
|
|
tweetyPieClient = config.underlyingClients.tweetyPieLowQoSClient,
|
|
additionalFieldConfig = AdditionalFieldConfig(
|
|
fieldDisablingGates = tweetyPieAdditionalFieldsToDisable.map(_ -> Gate.False).toMap
|
|
),
|
|
includePartialResults = Gate.False,
|
|
statsReceiver = statsReceiver
|
|
)
|
|
|
|
val userMetadataClientFactory: ScopedUserMetadataClientFactory =
|
|
new ScopedUserMetadataClientFactory(
|
|
config.underlyingClients.manhattanStarbuckClient,
|
|
TimelineRankerConstants.ManhattanStarbuckAppId,
|
|
statsReceiver
|
|
)
|
|
|
|
val visibilityProfileHydratorFactory: VisibilityProfileHydratorFactory =
|
|
new VisibilityProfileHydratorFactory(
|
|
gizmoduckClientFactory,
|
|
socialGraphClientFactory,
|
|
statsReceiver
|
|
)
|
|
|
|
val realGraphClientFactory =
|
|
new ScopedRealGraphClientFactory(config.underlyingClients.stratoClient, statsReceiver)
|
|
}
|