]> git.mxchange.org Git - friendica.git/blobdiff - src/Util/ParseUrl.php
Contact follow and unfollow workd partially
[friendica.git] / src / Util / ParseUrl.php
index b897c54ee7dd58da0a94d3a9ce92aaccb8d4e5c8..40cb0b8fc099eaa42763fd4ddbd06ecd062d1185 100644 (file)
@@ -248,52 +248,52 @@ class ParseUrl
                                }
                        }
 
-                       if (!empty($meta_tag['content'])) {
-                               $meta_tag['content'] = trim(html_entity_decode($meta_tag['content'], ENT_QUOTES, 'UTF-8'));
-
-                               switch (strtolower($meta_tag['name'])) {
-                                       case 'fulltitle':
-                                               $siteinfo['title'] = trim($meta_tag['content']);
-                                               break;
-                                       case 'description':
-                                               $siteinfo['text'] = trim($meta_tag['content']);
-                                               break;
-                                       case 'thumbnail':
-                                               $siteinfo['image'] = $meta_tag['content'];
-                                               break;
-                                       case 'twitter:image':
-                                               $siteinfo['image'] = $meta_tag['content'];
-                                               break;
-                                       case 'twitter:image:src':
-                                               $siteinfo['image'] = $meta_tag['content'];
-                                               break;
-                                       case 'twitter:card':
-                                               if (($siteinfo['type'] == '') || ($meta_tag['content'] == 'photo')) {
-                                                       $siteinfo['type'] = $meta_tag['content'];
-                                               }
-                                               break;
-                                       case 'twitter:description':
-                                               $siteinfo['text'] = trim($meta_tag['content']);
-                                               break;
-                                       case 'twitter:title':
-                                               $siteinfo['title'] = trim($meta_tag['content']);
-                                               break;
-                                       case 'dc.title':
-                                               $siteinfo['title'] = trim($meta_tag['content']);
-                                               break;
-                                       case 'dc.description':
-                                               $siteinfo['text'] = trim($meta_tag['content']);
-                                               break;
-                                       case 'keywords':
-                                               $keywords = explode(',', $meta_tag['content']);
-                                               break;
-                                       case 'news_keywords':
-                                               $keywords = explode(',', $meta_tag['content']);
-                                               break;
-                               }
+                       if (empty($meta_tag['content'])) {
+                               continue;
                        }
-                       if ($siteinfo['type'] == 'summary') {
-                               $siteinfo['type'] = 'link';
+
+                       $meta_tag['content'] = trim(html_entity_decode($meta_tag['content'], ENT_QUOTES, 'UTF-8'));
+
+                       switch (strtolower($meta_tag['name'])) {
+                               case 'fulltitle':
+                                       $siteinfo['title'] = trim($meta_tag['content']);
+                                       break;
+                               case 'description':
+                                       $siteinfo['text'] = trim($meta_tag['content']);
+                                       break;
+                               case 'thumbnail':
+                                       $siteinfo['image'] = $meta_tag['content'];
+                                       break;
+                               case 'twitter:image':
+                                       $siteinfo['image'] = $meta_tag['content'];
+                                       break;
+                               case 'twitter:image:src':
+                                       $siteinfo['image'] = $meta_tag['content'];
+                                       break;
+                               case 'twitter:card':
+                                       // Detect photo pages
+                                       if ($meta_tag['content'] == 'summary_large_image') {
+                                               $siteinfo['type'] = 'photo';
+                                       }
+                                       break;
+                               case 'twitter:description':
+                                       $siteinfo['text'] = trim($meta_tag['content']);
+                                       break;
+                               case 'twitter:title':
+                                       $siteinfo['title'] = trim($meta_tag['content']);
+                                       break;
+                               case 'dc.title':
+                                       $siteinfo['title'] = trim($meta_tag['content']);
+                                       break;
+                               case 'dc.description':
+                                       $siteinfo['text'] = trim($meta_tag['content']);
+                                       break;
+                               case 'keywords':
+                                       $keywords = explode(',', $meta_tag['content']);
+                                       break;
+                               case 'news_keywords':
+                                       $keywords = explode(',', $meta_tag['content']);
+                                       break;
                        }
                }
 
@@ -332,6 +332,11 @@ class ParseUrl
                        }
                }
 
+               // Prevent to have a photo type without an image
+               if ((empty($siteinfo['image']) || !empty($siteinfo['text'])) && ($siteinfo['type'] == 'photo')) {
+                       $siteinfo['type'] = 'link';
+               }
+
                if ((@$siteinfo['image'] == '') && !$no_guessing) {
                        $list = $xpath->query('//img[@src]');
                        foreach ($list as $node) {