1
0
Fork 0
forked from gitea/nas

Add instance info support

This commit is contained in:
KMY 2023-08-05 09:10:55 +09:00
parent 54f63a4be2
commit d29b71bfd9
13 changed files with 181 additions and 16 deletions

View file

@ -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