123456789101112131415161718192021222324252627282930313233 |
- # frozen_string_literal: true
- class ActivityPub::Activity::Add < ActivityPub::Activity
- def perform
- return if @json['target'].blank?
- case value_or_id(@json['target'])
- when @account.featured_collection_url
- case @object['type']
- when 'Hashtag'
- add_featured_tags
- else
- add_featured
- end
- end
- end
- private
- def add_featured
- status = status_from_object
- return unless !status.nil? && status.account_id == @account.id && !@account.pinned?(status)
- StatusPin.create!(account: @account, status: status)
- end
- def add_featured_tags
- name = @object['name']&.delete_prefix('#')
- FeaturedTag.create!(account: @account, name: name) if name.present?
- end
- end
|