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 protocolmaster
parent
4c23544714
commit
6e9eda5331
@ -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