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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user