lib/onebox/engine/standard_embed.rb in onebox-1.5.5 vs lib/onebox/engine/standard_embed.rb in onebox-1.5.6

- old
+ new

@@ -1,20 +1,19 @@ module Onebox module Engine module StandardEmbed - def raw return @raw if @raw - response = fetch_response(url) + response = Onebox::Helpers.fetch_response(url) html_doc = Nokogiri::HTML(response.body) # Determine if we should use OEmbed or OpenGraph oembed_alternate = html_doc.at("//link[@type='application/json+oembed']") || html_doc.at("//link[@type='text/json+oembed']") if oembed_alternate # If the oembed request fails, we can still try the opengraph below. begin - @raw = Onebox::Helpers.symbolize_keys(::MultiJson.load(fetch_response(oembed_alternate['href']).body)) + @raw = Onebox::Helpers.symbolize_keys(::MultiJson.load(Onebox::Helpers.fetch_response(oembed_alternate['href']).body)) rescue Errno::ECONNREFUSED, Net::HTTPError, MultiJson::LoadError @raw = nil end end @@ -57,40 +56,8 @@ end end og end - - def fetch_response(location, limit = 5, domain = nil,headers=nil) - raise Net::HTTPError.new('HTTP redirect too deep', location) if limit == 0 - - uri = URI(location) - if !uri.host - uri = URI("#{domain}#{location}") - end - http = Net::HTTP.new(uri.host, uri.port) - http.open_timeout = Onebox.options.connect_timeout - http.read_timeout = Onebox.options.timeout - if uri.is_a?(URI::HTTPS) - http.use_ssl = true - http.verify_mode = OpenSSL::SSL::VERIFY_NONE - end - - response = http.request_get(uri.request_uri,headers) - - cookie = response.get_fields('set-cookie') - if (cookie) - header = {'cookie' => cookie.join("")} - end - header = nil unless header.is_a? Hash - - case response - when Net::HTTPSuccess then response - when Net::HTTPRedirection then fetch_response(response['location'], limit - 1, "#{uri.scheme}://#{uri.host}",header) - else - response.error! - end - end - end end end