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