the-algorithm/visibilitylib/src/main/scala/com/twitter/visibility/builder/tweets/CommunityTweetFeatures.scala
twitter-team ef4c5eb65e Twitter Recommendation Algorithm
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.
2023-03-31 17:36:31 -05:00

71 lines
2.3 KiB
Scala

package com.twitter.visibility.builder.tweets
import com.twitter.tweetypie.thriftscala.Tweet
import com.twitter.visibility.builder.FeatureMapBuilder
import com.twitter.visibility.features.CommunityTweetAuthorIsRemoved
import com.twitter.visibility.features.CommunityTweetCommunityNotFound
import com.twitter.visibility.features.CommunityTweetCommunityDeleted
import com.twitter.visibility.features.CommunityTweetCommunitySuspended
import com.twitter.visibility.features.CommunityTweetCommunityVisible
import com.twitter.visibility.features.CommunityTweetIsHidden
import com.twitter.visibility.features.TweetIsCommunityTweet
import com.twitter.visibility.features.ViewerIsCommunityAdmin
import com.twitter.visibility.features.ViewerIsCommunityMember
import com.twitter.visibility.features.ViewerIsCommunityModerator
import com.twitter.visibility.features.ViewerIsInternalCommunitiesAdmin
import com.twitter.visibility.models.CommunityTweet
import com.twitter.visibility.models.ViewerContext
trait CommunityTweetFeatures {
def forTweet(
tweet: Tweet,
viewerContext: ViewerContext
): FeatureMapBuilder => FeatureMapBuilder
def forTweetOnly(tweet: Tweet): FeatureMapBuilder => FeatureMapBuilder = {
_.withConstantFeature(
TweetIsCommunityTweet,
CommunityTweet(tweet).isDefined
)
}
protected def forNonCommunityTweet(): FeatureMapBuilder => FeatureMapBuilder = { builder =>
builder
.withConstantFeature(
TweetIsCommunityTweet,
false
).withConstantFeature(
CommunityTweetCommunityNotFound,
false
).withConstantFeature(
CommunityTweetCommunitySuspended,
false
).withConstantFeature(
CommunityTweetCommunityDeleted,
false
).withConstantFeature(
CommunityTweetCommunityVisible,
false
).withConstantFeature(
ViewerIsInternalCommunitiesAdmin,
false
).withConstantFeature(
ViewerIsCommunityAdmin,
false
).withConstantFeature(
ViewerIsCommunityModerator,
false
).withConstantFeature(
ViewerIsCommunityMember,
false
).withConstantFeature(
CommunityTweetIsHidden,
false
).withConstantFeature(
CommunityTweetAuthorIsRemoved,
false
)
}
}