[Embed] Fix normalizeEmbedLibMetadata for thumbnails starting with '/'

This commit is contained in:
Diogo Peralta Cordeiro 2021-09-07 17:21:54 +01:00 committed by Hugo Sales
parent 3c1a9ba3fa
commit 8123086881
No known key found for this signature in database
GPG Key ID: 7D0C7EAFC9D835A0

View File

@ -70,7 +70,7 @@ class Embed extends Plugin
{ {
public function version(): string public function version(): string
{ {
return '3.0.0'; return '3.0.1';
} }
/** /**
@ -400,7 +400,9 @@ class Embed extends Plugin
$metadata['author_name'] = $info->authorName; $metadata['author_name'] = $info->authorName;
$metadata['author_url'] = (string) $info->authorUrl; $metadata['author_url'] = (string) $info->authorUrl;
$metadata['provider_name'] = $info->providerName; $metadata['provider_name'] = $info->providerName;
$metadata['provider_url'] = (string) $info->providerUrl; $root_url = parse_url($url);
$root_url = "{$root_url['scheme']}://{$root_url['host']}";
$metadata['provider_url'] = (string) ($info->providerUrl != '' ? $info->providerUrl : $root_url);
if (!is_null($info->image)) { if (!is_null($info->image)) {
$thumbnail_url = (string) $info->image; $thumbnail_url = (string) $info->image;
@ -410,7 +412,6 @@ class Embed extends Plugin
// Check thumbnail URL validity // Check thumbnail URL validity
$metadata['thumbnail_url'] = $thumbnail_url; $metadata['thumbnail_url'] = $thumbnail_url;
return self::normalizeEmbedLibMetadata($metadata); return self::normalizeEmbedLibMetadata($metadata);
} }
@ -428,8 +429,7 @@ class Embed extends Plugin
// let's "be liberal in what you accept from others"! // let's "be liberal in what you accept from others"!
// add protocol and host if the thumbnail_url starts with / // add protocol and host if the thumbnail_url starts with /
if ($metadata['thumbnail_url'][0] == '/') { if ($metadata['thumbnail_url'][0] == '/') {
$thumbnail_url_parsed = parse_url($metadata['thumbnail_url']); $metadata['thumbnail_url'] = "{$metadata['provider_url']}{$metadata['thumbnail_url']}";
$metadata['thumbnail_url'] = "{$thumbnail_url_parsed['scheme']}://{$thumbnail_url_parsed['host']}{$metadata['url']}";
} }
// Some wordpress opengraph implementations sometimes return a white blank image // Some wordpress opengraph implementations sometimes return a white blank image