From 1cfc9aa20e2f4a9d7b6dcd5227246e1a5375ab31 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Tue, 20 Sep 2016 01:10:51 +0200 Subject: [PATCH] OStatus2 and Goldfinger gems now have timeouts for requests --- Gemfile.lock | 4 ++-- app/models/account.rb | 2 +- lib/tasks/mastodon.rake | 5 +++++ 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index b3cf207be..f7b51fed7 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -106,7 +106,7 @@ GEM ruby-progressbar (~> 1.4) globalid (0.3.7) activesupport (>= 4.1.0) - goldfinger (1.0.2) + goldfinger (1.0.3) addressable (~> 2.4) http (~> 1.0) nokogiri (~> 1.6) @@ -171,7 +171,7 @@ GEM pkg-config (~> 1.1.7) oj (2.17.3) orm_adapter (0.5.0) - ostatus2 (0.2) + ostatus2 (0.2.1) addressable (~> 2.4) http (~> 1.0) nokogiri (~> 1.6) diff --git a/app/models/account.rb b/app/models/account.rb index 449075aa8..a7f31440f 100644 --- a/app/models/account.rb +++ b/app/models/account.rb @@ -82,7 +82,7 @@ class Account < ApplicationRecord end def subscription(webhook_url) - @subscription ||= OStatus2::Subscription.new(self.remote_url, secret: self.secret, token: self.verify_token, webhook: webhook_url, hub: self.hub_url) + OStatus2::Subscription.new(self.remote_url, secret: self.secret, token: self.verify_token, webhook: webhook_url, hub: self.hub_url) end def ping!(atom_url, hubs) diff --git a/lib/tasks/mastodon.rake b/lib/tasks/mastodon.rake index 5bc056a56..bdfa2e458 100644 --- a/lib/tasks/mastodon.rake +++ b/lib/tasks/mastodon.rake @@ -12,7 +12,11 @@ namespace :mastodon do desc 'Unsubscribes from PuSH updates of feeds nobody follows locally' task clear: :environment do Account.remote.without_followers.find_each do |a| + Rails.logger.debug "PuSH unsubscribing from #{a.acct}" a.subscription('').unsubscribe + rescue HTTP::Error, OpenSSL::SSL::SSLError + Rails.logger.debug "PuSH unsubscribing from #{a.acct} failed due to an HTTP or SSL error" + ensure a.update!(verify_token: '', secret: '', subscription_expires_at: nil) end end @@ -20,6 +24,7 @@ namespace :mastodon do desc 'Re-subscribes to soon expiring PuSH subscriptions' task refresh: :environment do Account.expiring(1.day.from_now).find_each do |a| + Rails.logger.debug "PuSH re-subscribing to #{a.acct}" SubscribeService.new.(a) end end