Add scope Status.list_eligible_visibility (#29951)
		
	This commit is contained in:
		
					parent
					
						
							
								e6927db2fe
							
						
					
				
			
			
				commit
				
					
						3159c0a547
					
				
			
		
					 2 changed files with 4 additions and 3 deletions
				
			
		|  | @ -109,7 +109,7 @@ class FeedManager | ||||||
|   def merge_into_home(from_account, into_account) |   def merge_into_home(from_account, into_account) | ||||||
|     timeline_key = key(:home, into_account.id) |     timeline_key = key(:home, into_account.id) | ||||||
|     aggregate    = into_account.user&.aggregates_reblogs? |     aggregate    = into_account.user&.aggregates_reblogs? | ||||||
|     query        = from_account.statuses.where(visibility: [:public, :unlisted, :private]).includes(:preloadable_poll, :media_attachments, reblog: :account).limit(FeedManager::MAX_ITEMS / 4) |     query        = from_account.statuses.list_eligible_visibility.includes(:preloadable_poll, :media_attachments, reblog: :account).limit(FeedManager::MAX_ITEMS / 4) | ||||||
| 
 | 
 | ||||||
|     if redis.zcard(timeline_key) >= FeedManager::MAX_ITEMS / 4 |     if redis.zcard(timeline_key) >= FeedManager::MAX_ITEMS / 4 | ||||||
|       oldest_home_score = redis.zrange(timeline_key, 0, 0, with_scores: true).first.last.to_i |       oldest_home_score = redis.zrange(timeline_key, 0, 0, with_scores: true).first.last.to_i | ||||||
|  | @ -135,7 +135,7 @@ class FeedManager | ||||||
|   def merge_into_list(from_account, list) |   def merge_into_list(from_account, list) | ||||||
|     timeline_key = key(:list, list.id) |     timeline_key = key(:list, list.id) | ||||||
|     aggregate    = list.account.user&.aggregates_reblogs? |     aggregate    = list.account.user&.aggregates_reblogs? | ||||||
|     query        = from_account.statuses.where(visibility: [:public, :unlisted, :private]).includes(:preloadable_poll, :media_attachments, reblog: :account).limit(FeedManager::MAX_ITEMS / 4) |     query        = from_account.statuses.list_eligible_visibility.includes(:preloadable_poll, :media_attachments, reblog: :account).limit(FeedManager::MAX_ITEMS / 4) | ||||||
| 
 | 
 | ||||||
|     if redis.zcard(timeline_key) >= FeedManager::MAX_ITEMS / 4 |     if redis.zcard(timeline_key) >= FeedManager::MAX_ITEMS / 4 | ||||||
|       oldest_home_score = redis.zrange(timeline_key, 0, 0, with_scores: true).first.last.to_i |       oldest_home_score = redis.zrange(timeline_key, 0, 0, with_scores: true).first.last.to_i | ||||||
|  | @ -274,7 +274,7 @@ class FeedManager | ||||||
|         next if last_status_score < oldest_home_score |         next if last_status_score < oldest_home_score | ||||||
|       end |       end | ||||||
| 
 | 
 | ||||||
|       statuses = target_account.statuses.where(visibility: [:public, :unlisted, :private]).includes(:preloadable_poll, :media_attachments, :account, reblog: :account).limit(limit) |       statuses = target_account.statuses.list_eligible_visibility.includes(:preloadable_poll, :media_attachments, :account, reblog: :account).limit(limit) | ||||||
|       crutches = build_crutches(account.id, statuses) |       crutches = build_crutches(account.id, statuses) | ||||||
| 
 | 
 | ||||||
|       statuses.each do |status| |       statuses.each do |status| | ||||||
|  |  | ||||||
|  | @ -121,6 +121,7 @@ class Status < ApplicationRecord | ||||||
|   scope :tagged_with_none, lambda { |tag_ids| |   scope :tagged_with_none, lambda { |tag_ids| | ||||||
|     where('NOT EXISTS (SELECT * FROM statuses_tags forbidden WHERE forbidden.status_id = statuses.id AND forbidden.tag_id IN (?))', tag_ids) |     where('NOT EXISTS (SELECT * FROM statuses_tags forbidden WHERE forbidden.status_id = statuses.id AND forbidden.tag_id IN (?))', tag_ids) | ||||||
|   } |   } | ||||||
|  |   scope :list_eligible_visibility, -> { where(visibility: %i(public unlisted private)) } | ||||||
| 
 | 
 | ||||||
|   after_create_commit :trigger_create_webhooks |   after_create_commit :trigger_create_webhooks | ||||||
|   after_update_commit :trigger_update_webhooks |   after_update_commit :trigger_update_webhooks | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue