about summary refs log tree commit diff
path: root/app/workers/activitypub/post_upgrade_worker.rb
diff options
context:
space:
mode:
authorEugen Rochko <eugen@zeonfederated.com>2017-08-21 01:14:40 +0200
committerGitHub <noreply@github.com>2017-08-21 01:14:40 +0200
commit6e9eda53319bc970b085c7c55277981320b2a835 (patch)
tree443d418cf97adb66b330a8c6f2a809583db8b756 /app/workers/activitypub/post_upgrade_worker.rb
parent4c23544714c05258af8feab50da243039ddbefb6 (diff)
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 protocol
Diffstat (limited to 'app/workers/activitypub/post_upgrade_worker.rb')
-rw-r--r--app/workers/activitypub/post_upgrade_worker.rb15
1 files changed, 15 insertions, 0 deletions
diff --git a/app/workers/activitypub/post_upgrade_worker.rb b/app/workers/activitypub/post_upgrade_worker.rb
new file mode 100644
index 000000000..4154b8582
--- /dev/null
+++ b/app/workers/activitypub/post_upgrade_worker.rb
@@ -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