Browse Source

Fix XML oEmbed support discovery (#6104)

pull/4/head
Akihiko Odaki 6 years ago
committed by Eugen Rochko
parent
commit
e0ef7f9d79
3 changed files with 15 additions and 3 deletions
  1. +1
    -1
      app/lib/provider_discovery.rb
  2. +7
    -1
      spec/fixtures/requests/oembed_json_xml.html
  3. +7
    -1
      spec/fixtures/requests/oembed_xml.html

+ 1
- 1
app/lib/provider_discovery.rb View File

@ -29,7 +29,7 @@ class ProviderDiscovery < OEmbed::ProviderDiscovery
end
if format.nil? || format == :xml
provider_endpoint ||= html.at_xpath('//link[@type="application/xml+oembed"]')&.attribute('href')&.value
provider_endpoint ||= html.at_xpath('//link[@type="text/xml+oembed"]')&.attribute('href')&.value
format ||= :xml if provider_endpoint
end

+ 7
- 1
spec/fixtures/requests/oembed_json_xml.html View File

@ -1,8 +1,14 @@
<!DOCTYPE html>
<html>
<head>
<!--
oEmbed
https://oembed.com/
> The type attribute must contain either application/json+oembed for JSON
> responses, or text/xml+oembed for XML.
-->
<link href='https://host/provider.json' rel='alternate' type='application/json+oembed'>
<link href='https://host/provider.xml' rel='alternate' type='application/xml+oembed'>
<link href='https://host/provider.xml' rel='alternate' type='text/xml+oembed'>
</head>
<body></body>
</html>

+ 7
- 1
spec/fixtures/requests/oembed_xml.html View File

@ -1,7 +1,13 @@
<!DOCTYPE html>
<html>
<head>
<link href='https://host/provider.xml' rel='alternate' type='application/xml+oembed'>
<!--
oEmbed
https://oembed.com/
> The type attribute must contain either application/json+oembed for JSON
> responses, or text/xml+oembed for XML.
-->
<link href='https://host/provider.xml' rel='alternate' type='text/xml+oembed'>
</head>
<body></body>
</html>

Loading…
Cancel
Save