parent
					
						
							
								55219f11cc
							
						
					
				
			
			
				commit
				
					
						31f396b57d
					
				
			
		
					 2 changed files with 15 additions and 3 deletions
				
			
		|  | @ -17,7 +17,7 @@ class ActivityPub::Activity::Announce < ActivityPub::Activity | |||
|       uri: @json['id'], | ||||
|       created_at: @json['published'], | ||||
|       override_timestamps: @options[:override_timestamps], | ||||
|       visibility: original_status.visibility | ||||
|       visibility: visibility_from_audience | ||||
|     ) | ||||
| 
 | ||||
|     distribute(status) | ||||
|  | @ -26,6 +26,18 @@ class ActivityPub::Activity::Announce < ActivityPub::Activity | |||
| 
 | ||||
|   private | ||||
| 
 | ||||
|   def visibility_from_audience | ||||
|     if equals_or_includes?(@json['to'], ActivityPub::TagManager::COLLECTIONS[:public]) | ||||
|       :public | ||||
|     elsif equals_or_includes?(@json['cc'], ActivityPub::TagManager::COLLECTIONS[:public]) | ||||
|       :unlisted | ||||
|     elsif equals_or_includes?(@json['to'], @account.followers_url) | ||||
|       :private | ||||
|     else | ||||
|       :direct | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   def announceable?(status) | ||||
|     status.account_id == @account.id || status.public_visibility? || status.unlisted_visibility? | ||||
|   end | ||||
|  |  | |||
|  | @ -478,7 +478,7 @@ class Status < ApplicationRecord | |||
|     return if direct_visibility? | ||||
| 
 | ||||
|     account&.increment_count!(:statuses_count) | ||||
|     reblog&.increment_count!(:reblogs_count) if reblog? | ||||
|     reblog&.increment_count!(:reblogs_count) if reblog? && (public_visibility? || unlisted_visibility?) | ||||
|     thread&.increment_count!(:replies_count) if in_reply_to_id.present? && (public_visibility? || unlisted_visibility?) | ||||
|   end | ||||
| 
 | ||||
|  | @ -486,7 +486,7 @@ class Status < ApplicationRecord | |||
|     return if direct_visibility? || marked_for_mass_destruction? | ||||
| 
 | ||||
|     account&.decrement_count!(:statuses_count) | ||||
|     reblog&.decrement_count!(:reblogs_count) if reblog? | ||||
|     reblog&.decrement_count!(:reblogs_count) if reblog? && (public_visibility? || unlisted_visibility?) | ||||
|     thread&.decrement_count!(:replies_count) if in_reply_to_id.present? && (public_visibility? || unlisted_visibility?) | ||||
|   end | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue