diff --git a/app/models/status.rb b/app/models/status.rb index f9587b3c71..9f0299a511 100644 --- a/app/models/status.rb +++ b/app/models/status.rb @@ -226,6 +226,10 @@ class Status < ApplicationRecord !reblog_of_id.nil? end + def quote + reference_objects.where(attribute_type: 'QT').first&.target_status + end + def within_realtime_window? created_at >= REAL_TIME_WINDOW.ago end diff --git a/app/serializers/activitypub/note_serializer.rb b/app/serializers/activitypub/note_serializer.rb index 109f8115df..d8f7a328ed 100644 --- a/app/serializers/activitypub/note_serializer.rb +++ b/app/serializers/activitypub/note_serializer.rb @@ -17,7 +17,6 @@ class ActivityPub::NoteSerializer < ActivityPub::Serializer attribute :quote_uri, if: :quote? attribute :misskey_quote, key: :_misskey_quote, if: :quote? - attribute :misskey_content, key: :_misskey_content, if: :quote? has_many :virtual_attachments, key: :attachment has_many :virtual_tags, key: :tag @@ -172,21 +171,21 @@ class ActivityPub::NoteSerializer < ActivityPub::Serializer end def quote? - object.references.count == 1 && object.account.user&.settings&.[]('single_ref_to_quote') + @quote ||= (object.reference_objects.count == 1 && object.account.user&.settings&.[]('single_ref_to_quote')) || object.reference_objects.where(attribute_type: 'QT').count == 1 + end + + def quote_post + @quote_post ||= object.quote || object.references.first end def quote_uri - ActivityPub::TagManager.instance.uri_for(object.references.first) + ActivityPub::TagManager.instance.uri_for(quote_post) end def misskey_quote quote_uri end - def misskey_content - object.text - end - def poll_options object.preloadable_poll.loaded_options end diff --git a/spec/serializers/activitypub/note_serializer_spec.rb b/spec/serializers/activitypub/note_serializer_spec.rb index f4248e548e..0425e2e66b 100644 --- a/spec/serializers/activitypub/note_serializer_spec.rb +++ b/spec/serializers/activitypub/note_serializer_spec.rb @@ -73,7 +73,6 @@ describe ActivityPub::NoteSerializer do expect(subject['quoteUri']).to_not be_nil expect(subject['quoteUri']).to eq referred.uri expect(subject['_misskey_quote']).to eq referred.uri - expect(subject['_misskey_content']).to eq referred.text expect(subject['references']['first']['items']).to include referred.uri end end