ActivityPub migration procedure (#4617)
* ActivityPub migration procedure Once one account is detected as going from OStatus to ActivityPub, invalidate WebFinger cache for other accounts from the same domain * Unsubscribe from PuSH updates once we receive an ActivityPub payload * Re-subscribe to PuSH unless already unsubscribed, regardless of protocolth-downstream
parent
cbc3b13ef6
commit
1a19358b24
@ -0,0 +1,15 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
class ActivityPub::PostUpgradeWorker
|
||||||
|
include Sidekiq::Worker
|
||||||
|
|
||||||
|
sidekiq_options queue: 'pull'
|
||||||
|
|
||||||
|
def perform(domain)
|
||||||
|
Account.where(domain: domain)
|
||||||
|
.where(protocol: :ostatus)
|
||||||
|
.where.not(last_webfingered_at: nil)
|
||||||
|
.in_batches
|
||||||
|
.update_all(last_webfingered_at: nil)
|
||||||
|
end
|
||||||
|
end
|
@ -0,0 +1,15 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
class Pubsubhubbub::UnsubscribeWorker
|
||||||
|
include Sidekiq::Worker
|
||||||
|
|
||||||
|
sidekiq_options queue: 'push', retry: false, unique: :until_executed, dead: false
|
||||||
|
|
||||||
|
def perform(account_id)
|
||||||
|
account = Account.find(account_id)
|
||||||
|
logger.debug "PuSH unsubscribing from #{account.acct}"
|
||||||
|
::UnsubscribeService.new.call(account)
|
||||||
|
rescue ActiveRecord::RecordNotFound
|
||||||
|
true
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in new issue