|
|
@ -22,9 +22,19 @@ class ActivityPub::FetchFeaturedCollectionService < BaseService |
|
|
|
private |
|
|
|
|
|
|
|
def process_items(items) |
|
|
|
status_ids = items.map { |item| value_or_id(item) } |
|
|
|
.filter_map { |uri| ActivityPub::FetchRemoteStatusService.new.call(uri, on_behalf_of: local_follower) unless ActivityPub::TagManager.instance.local_uri?(uri) } |
|
|
|
.filter_map { |status| status.id if status.account_id == @account.id } |
|
|
|
status_ids = items.filter_map do |item| |
|
|
|
uri = value_or_id(item) |
|
|
|
next if ActivityPub::TagManager.instance.local_uri?(uri) |
|
|
|
|
|
|
|
status = ActivityPub::FetchRemoteStatusService.new.call(uri, on_behalf_of: local_follower) |
|
|
|
next unless status.account_id == @account.id |
|
|
|
|
|
|
|
status.id |
|
|
|
rescue ActiveRecord::RecordInvalid => e |
|
|
|
Rails.logger.debug "Invalid pinned status #{uri}: #{e.message}" |
|
|
|
nil |
|
|
|
end |
|
|
|
|
|
|
|
to_remove = [] |
|
|
|
to_add = status_ids |
|
|
|
|
|
|
|