Add instance info support
This commit is contained in:
parent
54f63a4be2
commit
d29b71bfd9
13 changed files with 181 additions and 16 deletions
|
@ -46,6 +46,7 @@ class ActivityPub::ProcessAccountService < BaseService
|
|||
end
|
||||
|
||||
create_account
|
||||
fetch_instance_info
|
||||
end
|
||||
|
||||
update_account
|
||||
|
@ -207,6 +208,10 @@ class ActivityPub::ProcessAccountService < BaseService
|
|||
AccountMergingWorker.perform_async(@account.id)
|
||||
end
|
||||
|
||||
def fetch_instance_info
|
||||
FetchInstanceInfoWorker.perform_async(@account.domain) unless InstanceInfo.exists?(domain: @account.domain)
|
||||
end
|
||||
|
||||
def actor_type
|
||||
if @json['type'].is_a?(Array)
|
||||
@json['type'].find { |type| ActivityPub::FetchRemoteAccountService::SUPPORTED_TYPES.include?(type) }
|
||||
|
@ -258,7 +263,7 @@ class ActivityPub::ProcessAccountService < BaseService
|
|||
bio = searchability_from_bio
|
||||
return bio unless bio.nil?
|
||||
|
||||
return marked_as_misskey_searchability? ? :public : :private
|
||||
return misskey_software? ? :public : :private
|
||||
end
|
||||
|
||||
if audience_searchable_by.any? { |uri| ActivityPub::TagManager.instance.public_collection?(uri) }
|
||||
|
@ -288,8 +293,15 @@ class ActivityPub::ProcessAccountService < BaseService
|
|||
searchability
|
||||
end
|
||||
|
||||
def marked_as_misskey_searchability?
|
||||
domain_block&.detect_invalid_subscription
|
||||
def instance_info
|
||||
@instance_info ||= InstanceInfo.find_by(@domain)
|
||||
end
|
||||
|
||||
def misskey_software?
|
||||
info = instance_info
|
||||
return domain_block&.detect_invalid_subscription if info.nil?
|
||||
|
||||
%w(misskey calckey firefish).include?(info.software) || domain_block&.detect_invalid_subscription
|
||||
end
|
||||
|
||||
def subscribable_by
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue