Change delivery failure tracking to work with hostnames instead of URLs (#13437)
This commit is contained in:
parent
5524258da9
commit
5edff32733
15 changed files with 103 additions and 44 deletions
|
@ -413,7 +413,7 @@ class Account < ApplicationRecord
|
|||
|
||||
def inboxes
|
||||
urls = reorder(nil).where(protocol: :activitypub).pluck(Arel.sql("distinct coalesce(nullif(accounts.shared_inbox_url, ''), accounts.inbox_url)"))
|
||||
DeliveryFailureTracker.filter(urls)
|
||||
DeliveryFailureTracker.without_unavailable(urls)
|
||||
end
|
||||
|
||||
def search_for(terms, limit = 10, offset = 0)
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
# created_at :datetime not null
|
||||
# updated_at :datetime not null
|
||||
# published_at :datetime
|
||||
# status_ids :bigint is an Array
|
||||
# status_ids :bigint(8) is an Array
|
||||
#
|
||||
|
||||
class Announcement < ApplicationRecord
|
||||
|
|
|
@ -27,7 +27,7 @@ class Relay < ApplicationRecord
|
|||
payload = Oj.dump(follow_activity(activity_id))
|
||||
|
||||
update!(state: :pending, follow_activity_id: activity_id)
|
||||
DeliveryFailureTracker.new(inbox_url).track_success!
|
||||
DeliveryFailureTracker.track_success!(inbox_url)
|
||||
ActivityPub::DeliveryWorker.perform_async(payload, some_local_account.id, inbox_url)
|
||||
end
|
||||
|
||||
|
@ -36,7 +36,7 @@ class Relay < ApplicationRecord
|
|||
payload = Oj.dump(unfollow_activity(activity_id))
|
||||
|
||||
update!(state: :idle, follow_activity_id: nil)
|
||||
DeliveryFailureTracker.new(inbox_url).track_success!
|
||||
DeliveryFailureTracker.track_success!(inbox_url)
|
||||
ActivityPub::DeliveryWorker.perform_async(payload, some_local_account.id, inbox_url)
|
||||
end
|
||||
|
||||
|
|
22
app/models/unavailable_domain.rb
Normal file
22
app/models/unavailable_domain.rb
Normal file
|
@ -0,0 +1,22 @@
|
|||
# frozen_string_literal: true
|
||||
# == Schema Information
|
||||
#
|
||||
# Table name: unavailable_domains
|
||||
#
|
||||
# id :bigint(8) not null, primary key
|
||||
# domain :string default(""), not null
|
||||
# created_at :datetime not null
|
||||
# updated_at :datetime not null
|
||||
#
|
||||
|
||||
class UnavailableDomain < ApplicationRecord
|
||||
include DomainNormalizable
|
||||
|
||||
after_commit :reset_cache!
|
||||
|
||||
private
|
||||
|
||||
def reset_cache!
|
||||
Rails.cache.delete('unavailable_domains')
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue