forked from cybrespace/mastodon
		
	If a status is within 40 statuses from the top of a home feed, do not
reinsert it when someone boosts it
This commit is contained in:
		
							parent
							
								
									92569b1f0d
								
							
						
					
					
						commit
						7f0d1b8cc0
					
				
					 1 changed files with 12 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -22,8 +22,18 @@ class FeedManager
 | 
			
		|||
  end
 | 
			
		||||
 | 
			
		||||
  def push(timeline_type, account, status)
 | 
			
		||||
    redis.zadd(key(timeline_type, account.id), status.id, status.reblog? ? status.reblog_of_id : status.id)
 | 
			
		||||
    timeline_key = key(timeline_type, account.id)
 | 
			
		||||
 | 
			
		||||
    if status.reblog?
 | 
			
		||||
      # If the original status is within 40 statuses from top, do not re-insert it into the feed
 | 
			
		||||
      rank = redis.zrevrank(timeline_key, status.reblog_of_id)
 | 
			
		||||
      return if !rank.nil? && rank < 40
 | 
			
		||||
      redis.zadd(timeline_key, status.id, status.reblog_of_id)
 | 
			
		||||
    else
 | 
			
		||||
      redis.zadd(timeline_key, status.id, status.id)
 | 
			
		||||
      trim(timeline_type, account.id)
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    broadcast(account.id, event: 'update', payload: inline_render(account, 'api/v1/statuses/show', status))
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue