@ -13,7 +13,7 @@ class ActivityPub::ProcessStatusUpdateService < BaseService
@poll_changed = false
@poll_changed = false
# Only native types can be updated at the moment
# Only native types can be updated at the moment
return if ! expected_type? || already_updated_more_recently?
return @status if ! expected_type? || already_updated_more_recently?
last_edit_date = status . edited_at . presence || status . created_at
last_edit_date = status . edited_at . presence || status . created_at
@ -41,13 +41,16 @@ class ActivityPub::ProcessStatusUpdateService < BaseService
end
end
forward_activity! if significant_changes? && @status_parser . edited_at . present? && @status_parser . edited_at > last_edit_date
forward_activity! if significant_changes? && @status_parser . edited_at . present? && @status_parser . edited_at > last_edit_date
@status
end
end
private
private
def update_media_attachments!
def update_media_attachments!
previous_media_attachments = @status . media_attachments . to_a
previous_media_attachments = @status . media_attachments . to_a
next_media_attachments = [ ]
previous_media_attachments_ids = @status . ordered_media_attachment_ids || previous_media_attachments . map ( & :id )
next_media_attachments = [ ]
as_array ( @json [ 'attachment' ] ) . each do | attachment |
as_array ( @json [ 'attachment' ] ) . each do | attachment |
media_attachment_parser = ActivityPub :: Parser :: MediaAttachmentParser . new ( attachment )
media_attachment_parser = ActivityPub :: Parser :: MediaAttachmentParser . new ( attachment )
@ -87,7 +90,7 @@ class ActivityPub::ProcessStatusUpdateService < BaseService
@status . ordered_media_attachment_ids = next_media_attachments . map ( & :id )
@status . ordered_media_attachment_ids = next_media_attachments . map ( & :id )
@status . media_attachments . reload
@status . media_attachments . reload
@media_attachments_changed = true if @status . ordered_media_attachment_ids _changed?
@media_attachments_changed = true if @status . ordered_media_attachment_ids != previous_media_attachments_ids
end
end
def update_poll!
def update_poll!