Serialize ActivityPub alternate link into OStatus deletes, handle it (#4730)
Requires moving Atom rendering from DistributionWorker (where `stream_entry.status` is already nil) to inline (where `stream_entry.status.destroyed?` is true) and distributing that. Unfortunately, such XML renderings can no longer be easily chained together into one payload of n items.
This commit is contained in:
parent
9958eba356
commit
4c76402ba1
7 changed files with 57 additions and 20 deletions
|
@ -51,6 +51,7 @@ class Status < ApplicationRecord
|
|||
|
||||
has_one :notification, as: :activity, dependent: :destroy
|
||||
has_one :preview_card, dependent: :destroy
|
||||
has_one :stream_entry, as: :activity, inverse_of: :status
|
||||
|
||||
validates :uri, uniqueness: true, unless: :local?
|
||||
validates :text, presence: true, unless: :reblog?
|
||||
|
@ -90,7 +91,11 @@ class Status < ApplicationRecord
|
|||
end
|
||||
|
||||
def verb
|
||||
reblog? ? :share : :post
|
||||
if destroyed?
|
||||
:delete
|
||||
else
|
||||
reblog? ? :share : :post
|
||||
end
|
||||
end
|
||||
|
||||
def object_type
|
||||
|
@ -110,7 +115,11 @@ class Status < ApplicationRecord
|
|||
end
|
||||
|
||||
def title
|
||||
reblog? ? "#{account.acct} shared a status by #{reblog.account.acct}" : "New status by #{account.acct}"
|
||||
if destroyed?
|
||||
"#{account.acct} deleted status"
|
||||
else
|
||||
reblog? ? "#{account.acct} shared a status by #{reblog.account.acct}" : "New status by #{account.acct}"
|
||||
end
|
||||
end
|
||||
|
||||
def hidden?
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue