|
|
@ -18,13 +18,15 @@ class ActivityPub::DeliveryWorker
|
|
|
|
@source_account = Account.find(source_account_id)
|
|
|
|
@source_account = Account.find(source_account_id)
|
|
|
|
@inbox_url = inbox_url
|
|
|
|
@inbox_url = inbox_url
|
|
|
|
@host = Addressable::URI.parse(inbox_url).normalized_site
|
|
|
|
@host = Addressable::URI.parse(inbox_url).normalized_site
|
|
|
|
|
|
|
|
@performed = false
|
|
|
|
|
|
|
|
|
|
|
|
perform_request
|
|
|
|
perform_request
|
|
|
|
|
|
|
|
ensure
|
|
|
|
|
|
|
|
if @performed
|
|
|
|
failure_tracker.track_success!
|
|
|
|
failure_tracker.track_success!
|
|
|
|
rescue => e
|
|
|
|
else
|
|
|
|
failure_tracker.track_failure!
|
|
|
|
failure_tracker.track_failure!
|
|
|
|
raise e.class, "Delivery failed for #{inbox_url}: #{e.message}", e.backtrace[0]
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
private
|
|
|
|
private
|
|
|
@ -40,6 +42,8 @@ class ActivityPub::DeliveryWorker
|
|
|
|
request_pool.with(@host) do |http_client|
|
|
|
|
request_pool.with(@host) do |http_client|
|
|
|
|
build_request(http_client).perform do |response|
|
|
|
|
build_request(http_client).perform do |response|
|
|
|
|
raise Mastodon::UnexpectedResponseError, response unless response_successful?(response) || response_error_unsalvageable?(response)
|
|
|
|
raise Mastodon::UnexpectedResponseError, response unless response_successful?(response) || response_error_unsalvageable?(response)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@performed = true
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|