Add featured tag add/remove activity handler (#19408)
This commit is contained in:
		
					parent
					
						
							
								7c152acb2c
							
						
					
				
			
			
				commit
				
					
						1d34eff63f
					
				
			
		
					 3 changed files with 47 additions and 2 deletions
				
			
		|  | @ -2,8 +2,22 @@ | |||
| 
 | ||||
| class ActivityPub::Activity::Remove < ActivityPub::Activity | ||||
|   def perform | ||||
|     return unless @json['target'].present? && value_or_id(@json['target']) == @account.featured_collection_url | ||||
|     return if @json['target'].blank? | ||||
| 
 | ||||
|     case value_or_id(@json['target']) | ||||
|     when @account.featured_collection_url | ||||
|       case @object['type'] | ||||
|       when 'Hashtag' | ||||
|         remove_featured_tags | ||||
|       else | ||||
|         remove_featured | ||||
|       end | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   private | ||||
| 
 | ||||
|   def remove_featured | ||||
|     status = status_from_uri(object_uri) | ||||
| 
 | ||||
|     return unless !status.nil? && status.account_id == @account.id | ||||
|  | @ -11,4 +25,13 @@ class ActivityPub::Activity::Remove < ActivityPub::Activity | |||
|     pin = StatusPin.find_by(account: @account, status: status) | ||||
|     pin&.destroy! | ||||
|   end | ||||
| 
 | ||||
|   def remove_featured_tags | ||||
|     name = @object['name']&.delete_prefix('#') | ||||
| 
 | ||||
|     return if name.blank? | ||||
| 
 | ||||
|     featured_tag = FeaturedTag.by_name(name).find_by(account: @account) | ||||
|     featured_tag&.destroy! | ||||
|   end | ||||
| end | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue