Fix quote posts with CW and no text being rejected (#36095)

This commit is contained in:
Claire
2025-09-12 15:10:31 +02:00
committed by GitHub
parent 30b31a89e6
commit 82b26603fe
5 changed files with 77 additions and 10 deletions

View File

@@ -56,11 +56,10 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
process_audience
ApplicationRecord.transaction do
@status = Status.create!(@params)
@status = Status.create!(@params.merge(quote: @quote))
attach_tags(@status)
attach_mentions(@status)
attach_counts(@status)
attach_quote(@status)
end
resolve_thread(@status)
@@ -202,13 +201,6 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
end
end
def attach_quote(status)
return if @quote.nil?
@quote.status = status
@quote.save
end
def process_tags
return if @object['tag'].nil?

View File

@@ -102,7 +102,7 @@ class Status < ApplicationRecord
has_one :quote, inverse_of: :status, dependent: :destroy
validates :uri, uniqueness: true, presence: true, unless: :local?
validates :text, presence: true, unless: -> { with_media? || reblog? }
validates :text, presence: true, unless: -> { with_media? || reblog? || with_quote? }
validates_with StatusLengthValidator
validates_with DisallowedHashtagsValidator
validates :reblog, uniqueness: { scope: :account }, if: :reblog?
@@ -255,6 +255,10 @@ class Status < ApplicationRecord
ordered_media_attachments.any?
end
def with_quote?
quote.present?
end
def with_preview_card?
preview_cards_status.present?
end