@@ -5,6 +5,7 @@ class TrendingTags
55 EXPIRE_HISTORY_AFTER = 7 . days . seconds
66 EXPIRE_TRENDS_AFTER = 1 . day . seconds
77 THRESHOLD = 5
8+ LIMIT = 10
89
910 class << self
1011 include Redisable
@@ -18,18 +19,18 @@ def record_use!(tag, account, at_time = Time.now.utc)
1819 end
1920
2021 def get ( limit , filtered : true )
21- tag_ids = redis . zrevrange ( "#{ KEY } :#{ Time . now . utc . beginning_of_day . to_i } " , 0 , limit - 1 ) . map ( &:to_i )
22+ tag_ids = redis . zrevrange ( "#{ KEY } :#{ Time . now . utc . beginning_of_day . to_i } " , 0 , LIMIT - 1 ) . map ( &:to_i )
2223
2324 tags = Tag . where ( id : tag_ids )
2425 tags = tags . where ( trendable : true ) if filtered
2526 tags = tags . each_with_object ( { } ) { |tag , h | h [ tag . id ] = tag }
2627
27- tag_ids . map { |tag_id | tags [ tag_id ] } . compact
28+ tag_ids . map { |tag_id | tags [ tag_id ] } . compact . take ( limit )
2829 end
2930
3031 def trending? ( tag )
3132 rank = redis . zrevrank ( "#{ KEY } :#{ Time . now . utc . beginning_of_day . to_i } " , tag . id )
32- rank . present? && rank <= 10
33+ rank . present? && rank <= LIMIT
3334 end
3435
3536 private
@@ -59,7 +60,7 @@ def increment_vote!(tag, at_time)
5960 old_rank = redis . zrevrank ( key , tag . id )
6061
6162 redis . zadd ( key , score , tag . id )
62- request_review! ( tag ) if ( old_rank . nil? || old_rank > 10 ) && redis . zrevrank ( key , tag . id ) <= 10 && !tag . trendable? && tag . requires_review? && !tag . requested_review?
63+ request_review! ( tag ) if ( old_rank . nil? || old_rank > LIMIT ) && redis . zrevrank ( key , tag . id ) <= LIMIT && !tag . trendable? && tag . requires_review? && !tag . requested_review?
6364 end
6465
6566 redis . expire ( key , EXPIRE_TRENDS_AFTER )
0 commit comments