diff options
Diffstat (limited to 'app/models')
-rw-r--r-- | app/models/account.rb | 2 | ||||
-rw-r--r-- | app/models/account_alias.rb | 3 | ||||
-rw-r--r-- | app/models/announcement.rb | 2 | ||||
-rw-r--r-- | app/models/relay.rb | 4 | ||||
-rw-r--r-- | app/models/unavailable_domain.rb | 22 |
5 files changed, 27 insertions, 6 deletions
diff --git a/app/models/account.rb b/app/models/account.rb index 82d4d10de..e56db3126 100644 --- a/app/models/account.rb +++ b/app/models/account.rb @@ -415,7 +415,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) diff --git a/app/models/account_alias.rb b/app/models/account_alias.rb index 3d0b5d188..792e9e8d4 100644 --- a/app/models/account_alias.rb +++ b/app/models/account_alias.rb @@ -16,7 +16,6 @@ class AccountAlias < ApplicationRecord belongs_to :account validates :acct, presence: true, domain: { acct: true } - validates :uri, presence: true validates :uri, uniqueness: { scope: :account_id } validate :validate_target_account @@ -47,7 +46,7 @@ class AccountAlias < ApplicationRecord end def validate_target_account - if uri.nil? + if uri.blank? errors.add(:acct, I18n.t('migrations.errors.not_found')) elsif ActivityPub::TagManager.instance.uri_for(account) == uri errors.add(:acct, I18n.t('migrations.errors.move_to_self')) diff --git a/app/models/announcement.rb b/app/models/announcement.rb index a4e427b49..c493604c2 100644 --- a/app/models/announcement.rb +++ b/app/models/announcement.rb @@ -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 diff --git a/app/models/relay.rb b/app/models/relay.rb index 8c8a97db3..870f31979 100644 --- a/app/models/relay.rb +++ b/app/models/relay.rb @@ -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 diff --git a/app/models/unavailable_domain.rb b/app/models/unavailable_domain.rb new file mode 100644 index 000000000..e2918b586 --- /dev/null +++ b/app/models/unavailable_domain.rb @@ -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 |