about summary refs log tree commit diff
path: root/app/lib
diff options
context:
space:
mode:
Diffstat (limited to 'app/lib')
-rw-r--r--app/lib/link_details_extractor.rb4
-rw-r--r--app/lib/webfinger.rb4
2 files changed, 6 insertions, 2 deletions
diff --git a/app/lib/link_details_extractor.rb b/app/lib/link_details_extractor.rb
index 3876173e0..8b38e8d0c 100644
--- a/app/lib/link_details_extractor.rb
+++ b/app/lib/link_details_extractor.rb
@@ -59,7 +59,7 @@ class LinkDetailsExtractor
     end
 
     def json
-      @json ||= Oj.load(@data)
+      @json ||= first_of_value(Oj.load(@data))
     end
   end
 
@@ -178,6 +178,8 @@ class LinkDetailsExtractor
     @structured_data ||= begin
       json_ld = document.xpath('//script[@type="application/ld+json"]').map(&:content).first
       json_ld.present? ? StructuredData.new(json_ld) : nil
+    rescue Oj::ParseError
+      nil
     end
   end
 
diff --git a/app/lib/webfinger.rb b/app/lib/webfinger.rb
index e0e022cea..1ffb5b4bf 100644
--- a/app/lib/webfinger.rb
+++ b/app/lib/webfinger.rb
@@ -46,7 +46,9 @@ class Webfinger
   def body_from_webfinger(url = standard_url, use_fallback = true)
     webfinger_request(url).perform do |res|
       if res.code == 200
-        res.body_with_limit
+        body = res.body_with_limit
+        raise Webfinger::Error, "Request for #{@uri} returned empty response" if body.empty?
+        body
       elsif res.code == 404 && use_fallback
         body_from_host_meta
       elsif res.code == 410