mirror of
https://github.com/mastodon/mastodon.git
synced 2024-11-20 11:35:29 +01:00
Require "inbox" to be set on actor to be ActivityPub-ready (#4595)
This commit is contained in:
parent
3c6503038e
commit
26d26644ac
@ -79,7 +79,8 @@ class ResolveRemoteAccountService < BaseService
|
||||
|
||||
def activitypub_ready?
|
||||
!@webfinger.link('self').nil? &&
|
||||
['application/activity+json', 'application/ld+json; profile="https://www.w3.org/ns/activitystreams"'].include?(@webfinger.link('self').type)
|
||||
['application/activity+json', 'application/ld+json; profile="https://www.w3.org/ns/activitystreams"'].include?(@webfinger.link('self').type) &&
|
||||
actor_json['inbox'].present?
|
||||
end
|
||||
|
||||
def handle_ostatus
|
||||
@ -93,11 +94,9 @@ class ResolveRemoteAccountService < BaseService
|
||||
end
|
||||
|
||||
def handle_activitypub
|
||||
json = fetch_resource(actor_url)
|
||||
return if actor_json.nil?
|
||||
|
||||
return unless supported_context?(json) && json['type'] == 'Person'
|
||||
|
||||
@account = ActivityPub::ProcessAccountService.new.call(@username, @domain, json)
|
||||
@account = ActivityPub::ProcessAccountService.new.call(@username, @domain, actor_json)
|
||||
rescue Oj::ParseError
|
||||
nil
|
||||
end
|
||||
@ -186,6 +185,13 @@ class ResolveRemoteAccountService < BaseService
|
||||
@atom_body = response.to_s
|
||||
end
|
||||
|
||||
def actor_json
|
||||
return @actor_json if defined?(@actor_json)
|
||||
|
||||
json = fetch_resource(actor_url)
|
||||
@actor_json = supported_context?(json) && json['type'] == 'Person' ? json : nil
|
||||
end
|
||||
|
||||
def atom
|
||||
return @atom if defined?(@atom)
|
||||
@atom = Nokogiri::XML(atom_body)
|
||||
|
Loading…
Reference in New Issue
Block a user