OStatus2 and Goldfinger gems now have timeouts for requests

This commit is contained in:
Eugen Rochko 2016-09-20 01:10:51 +02:00
parent 059ebbf48d
commit 1cfc9aa20e
3 changed files with 8 additions and 3 deletions

View file

@ -106,7 +106,7 @@ GEM
ruby-progressbar (~> 1.4) ruby-progressbar (~> 1.4)
globalid (0.3.7) globalid (0.3.7)
activesupport (>= 4.1.0) activesupport (>= 4.1.0)
goldfinger (1.0.2) goldfinger (1.0.3)
addressable (~> 2.4) addressable (~> 2.4)
http (~> 1.0) http (~> 1.0)
nokogiri (~> 1.6) nokogiri (~> 1.6)
@ -171,7 +171,7 @@ GEM
pkg-config (~> 1.1.7) pkg-config (~> 1.1.7)
oj (2.17.3) oj (2.17.3)
orm_adapter (0.5.0) orm_adapter (0.5.0)
ostatus2 (0.2) ostatus2 (0.2.1)
addressable (~> 2.4) addressable (~> 2.4)
http (~> 1.0) http (~> 1.0)
nokogiri (~> 1.6) nokogiri (~> 1.6)

View file

@ -82,7 +82,7 @@ class Account < ApplicationRecord
end end
def subscription(webhook_url) 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 end
def ping!(atom_url, hubs) def ping!(atom_url, hubs)

View file

@ -12,7 +12,11 @@ namespace :mastodon do
desc 'Unsubscribes from PuSH updates of feeds nobody follows locally' desc 'Unsubscribes from PuSH updates of feeds nobody follows locally'
task clear: :environment do task clear: :environment do
Account.remote.without_followers.find_each do |a| Account.remote.without_followers.find_each do |a|
Rails.logger.debug "PuSH unsubscribing from #{a.acct}"
a.subscription('').unsubscribe 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) a.update!(verify_token: '', secret: '', subscription_expires_at: nil)
end end
end end
@ -20,6 +24,7 @@ namespace :mastodon do
desc 'Re-subscribes to soon expiring PuSH subscriptions' desc 'Re-subscribes to soon expiring PuSH subscriptions'
task refresh: :environment do task refresh: :environment do
Account.expiring(1.day.from_now).find_each do |a| Account.expiring(1.day.from_now).find_each do |a|
Rails.logger.debug "PuSH re-subscribing to #{a.acct}"
SubscribeService.new.(a) SubscribeService.new.(a)
end end
end end