35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
# File 'lib/onebox/engine/standard_embed.rb', line 35
def raw
return @raw if @raw
StandardEmbed.oembed_providers.each do |regexp, endpoint|
if url =~ regexp
fetch_oembed_raw("#{endpoint}?url=#{url}")
return @raw if @raw
end
end
response = Onebox::Helpers.fetch_response(url)
html_doc = Nokogiri::HTML(response.body)
StandardEmbed.opengraph_providers.each do |regexp|
if url =~ regexp
@raw = parse_open_graph(html_doc, url)
return @raw if @raw
end
end
oembed_alternate = html_doc.at("//link[@type='application/json+oembed']") || html_doc.at("//link[@type='text/json+oembed']")
fetch_oembed_raw(oembed_alternate) unless oembed_alternate.nil? || oembed_alternate['href'] =~ /public-api.wordpress.com\/oembed/ || oembed_alternate['href'] =~ /wp-json\/oembed/
open_graph = parse_open_graph(html_doc, url)
if @raw
@raw[:image] = open_graph.images.first if @raw[:image].nil? && open_graph && open_graph.images
return @raw
end
@raw = open_graph
end
|