Merge pull request #10148 from annando/detecting-photo-page

Prevent false "photo" page detection
pull/10143/head
Hypolite Petovan 2021-04-16 12:27:00 -04:00 zatwierdzone przez GitHub
commit ccf0214411
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 4AEE18F83AFDEB23
2 zmienionych plików z 16 dodań i 5 usunięć

Wyświetl plik

@ -162,7 +162,13 @@ class OEmbed
$oembed->type = $data['type']; $oembed->type = $data['type'];
if ($oembed->type == 'photo') { if ($oembed->type == 'photo') {
$oembed->url = $data['url']; if (!empty($data['images'])) {
$oembed->url = $data['images'][0]['src'];
$oembed->width = $data['images'][0]['width'];
$oembed->height = $data['images'][0]['height'];
} else {
$oembed->type = 'link';
}
} }
} }
@ -190,7 +196,7 @@ class OEmbed
$oembed->author_url = $data['author_url']; $oembed->author_url = $data['author_url'];
} }
if (!empty($data['images'])) { if (!empty($data['images']) && ($oembed->type != 'photo')) {
$oembed->thumbnail_url = $data['images'][0]['src']; $oembed->thumbnail_url = $data['images'][0]['src'];
$oembed->thumbnail_width = $data['images'][0]['width']; $oembed->thumbnail_width = $data['images'][0]['width'];
$oembed->thumbnail_height = $data['images'][0]['height']; $oembed->thumbnail_height = $data['images'][0]['height'];

Wyświetl plik

@ -349,6 +349,9 @@ class ParseUrl
$siteinfo['title'] = trim($list->item(0)->nodeValue); $siteinfo['title'] = trim($list->item(0)->nodeValue);
} }
$twitter_card = false;
$twitter_image = false;
$list = $xpath->query('//meta[@name]'); $list = $xpath->query('//meta[@name]');
foreach ($list as $node) { foreach ($list as $node) {
$meta_tag = []; $meta_tag = [];
@ -376,6 +379,7 @@ class ParseUrl
break; break;
case 'twitter:image': case 'twitter:image':
$siteinfo['image'] = $meta_tag['content']; $siteinfo['image'] = $meta_tag['content'];
$twitter_image = true;
break; break;
case 'twitter:image:src': case 'twitter:image:src':
$siteinfo['image'] = $meta_tag['content']; $siteinfo['image'] = $meta_tag['content'];
@ -383,7 +387,7 @@ class ParseUrl
case 'twitter:card': case 'twitter:card':
// Detect photo pages // Detect photo pages
if ($meta_tag['content'] == 'summary_large_image') { if ($meta_tag['content'] == 'summary_large_image') {
$siteinfo['type'] = 'photo'; $twitter_card = true;
} }
break; break;
case 'twitter:description': case 'twitter:description':
@ -458,6 +462,7 @@ class ParseUrl
break; break;
case 'twitter:image': case 'twitter:image':
$siteinfo['image'] = $meta_tag['content']; $siteinfo['image'] = $meta_tag['content'];
$twitter_image = true;
break; break;
} }
} }
@ -473,8 +478,8 @@ class ParseUrl
} }
// Prevent to have a photo type without an image // Prevent to have a photo type without an image
if ((empty($siteinfo['image']) || !empty($siteinfo['text'])) && ($siteinfo['type'] == 'photo')) { if ($twitter_card && $twitter_image && !empty($siteinfo['image'])) {
$siteinfo['type'] = 'link'; $siteinfo['type'] = 'photo';
} }
if (!empty($siteinfo['image'])) { if (!empty($siteinfo['image'])) {