mirror of
https://github.com/yingziwu/mastodon.git
synced 2026-02-04 03:25:14 +00:00
Shorten caching of quote posts pending approval (#37570)
This commit is contained in:
parent
dcc5c2b6f6
commit
8935137526
2 changed files with 12 additions and 1 deletions
|
|
@ -29,7 +29,7 @@ class StatusesController < ApplicationController
|
|||
end
|
||||
|
||||
format.json do
|
||||
expires_in 3.minutes, public: true if @status.distributable? && public_fetch_mode?
|
||||
expires_in @status.quote&.pending? ? 5.seconds : 3.minutes, public: true if @status.distributable? && public_fetch_mode?
|
||||
render_with_cache json: @status, content_type: 'application/activity+json', serializer: ActivityPub::NoteSerializer, adapter: ActivityPub::Adapter
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -47,6 +47,8 @@ class Quote < ApplicationRecord
|
|||
|
||||
def accept!
|
||||
update!(state: :accepted)
|
||||
|
||||
reset_parent_cache! if attribute_changed?(:state)
|
||||
end
|
||||
|
||||
def reject!
|
||||
|
|
@ -75,6 +77,15 @@ class Quote < ApplicationRecord
|
|||
|
||||
private
|
||||
|
||||
def reset_parent_cache!
|
||||
return if status_id.nil?
|
||||
|
||||
Rails.cache.delete("v3:statuses/#{status_id}")
|
||||
|
||||
# This clears the web cache for the ActivityPub representation
|
||||
Rails.cache.delete("statuses/show:v3:statuses/#{status_id}")
|
||||
end
|
||||
|
||||
def set_accounts
|
||||
self.account = status.account
|
||||
self.quoted_account = quoted_status&.account
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue