]> git.mxchange.org Git - friendica.git/blobdiff - src/Util/ParseUrl.php
Merge pull request #5563 from MrPetovan/bug/5470-fix-various-notices
[friendica.git] / src / Util / ParseUrl.php
index ba9b7ec1467c3eedbd09d95a375a55a191421668..3be372767bd7b3fc1e53023dcb0011c064be20e6 100644 (file)
@@ -5,18 +5,14 @@
  */
 namespace Friendica\Util;
 
+use DOMDocument;
+use DOMXPath;
 use Friendica\Content\OEmbed;
 use Friendica\Core\Addon;
+use Friendica\Database\DBA;
 use Friendica\Object\Image;
-use Friendica\Util\Network;
-use Friendica\Util\XML;
-
-use dba;
-use DOMXPath;
-use DOMDocument;
 
 require_once 'include/dba.php';
-require_once "include/network.php";
 
 /**
  * @brief Class with methods for extracting certain content from an url
@@ -51,30 +47,23 @@ class ParseUrl
                        return false;
                }
 
-               $r = q(
-                       "SELECT * FROM `parsed_url` WHERE `url` = '%s' AND `guessing` = %d AND `oembed` = %d",
-                       dbesc(normalise_link($url)),
-                       intval(!$no_guessing),
-                       intval($do_oembed)
+               $parsed_url = DBA::selectFirst('parsed_url', ['content'],
+                       ['url' => normalise_link($url), 'guessing' => !$no_guessing, 'oembed' => $do_oembed]
                );
-
-               if ($r) {
-                       $data = $r[0]["content"];
-               }
-
-               if (!is_null($data)) {
-                       $data = unserialize($data);
+               if (!empty($parsed_url['content'])) {
+                       $data = unserialize($parsed_url['content']);
                        return $data;
                }
 
                $data = self::getSiteinfo($url, $no_guessing, $do_oembed);
 
-               dba::insert(
+               DBA::insert(
                        'parsed_url',
                        [
                                'url' => normalise_link($url), 'guessing' => !$no_guessing,
                                'oembed' => $do_oembed, 'content' => serialize($data),
-                               'created' => datetime_convert()],
+                               'created' => DateTimeFormat::utcNow()
+                       ],
                        true
                );
 
@@ -146,7 +135,7 @@ class ParseUrl
                $siteinfo["url"] = $url;
                $siteinfo["type"] = "link";
 
-               $data = Network::zFetchURL($url);
+               $data = Network::curl($url);
                if (!$data['success']) {
                        return($siteinfo);
                }
@@ -167,19 +156,21 @@ class ParseUrl
                if ($do_oembed) {
                        $oembed_data = OEmbed::fetchURL($url);
 
-                       if (!in_array($oembed_data->type, ["error", "rich", ""])) {
-                               $siteinfo["type"] = $oembed_data->type;
-                       }
-
-                       if (($oembed_data->type == "link") && ($siteinfo["type"] != "photo")) {
-                               if (isset($oembed_data->title)) {
-                                       $siteinfo["title"] = trim($oembed_data->title);
+                       if (!empty($oembed_data->type)) {
+                               if (!in_array($oembed_data->type, ["error", "rich", ""])) {
+                                       $siteinfo["type"] = $oembed_data->type;
                                }
-                               if (isset($oembed_data->description)) {
-                                       $siteinfo["text"] = trim($oembed_data->description);
-                               }
-                               if (isset($oembed_data->thumbnail_url)) {
-                                       $siteinfo["image"] = $oembed_data->thumbnail_url;
+
+                               if (($oembed_data->type == "link") && ($siteinfo["type"] != "photo")) {
+                                       if (isset($oembed_data->title)) {
+                                               $siteinfo["title"] = trim($oembed_data->title);
+                                       }
+                                       if (isset($oembed_data->description)) {
+                                               $siteinfo["text"] = trim($oembed_data->description);
+                                       }
+                                       if (isset($oembed_data->thumbnail_url)) {
+                                               $siteinfo["image"] = $oembed_data->thumbnail_url;
+                                       }
                                }
                        }
                }
@@ -259,9 +250,9 @@ class ParseUrl
                                }
                        }
 
-                       $attr["content"] = trim(html_entity_decode($attr["content"], ENT_QUOTES, "UTF-8"));
+                       if (!empty($attr["content"])) {
+                               $attr["content"] = trim(html_entity_decode($attr["content"], ENT_QUOTES, "UTF-8"));
 
-                       if ($attr["content"] != "") {
                                switch (strtolower($attr["name"])) {
                                        case "fulltitle":
                                                $siteinfo["title"] = trim($attr["content"]);
@@ -327,9 +318,9 @@ class ParseUrl
                                }
                        }
 
-                       $attr["content"] = trim(html_entity_decode($attr["content"], ENT_QUOTES, "UTF-8"));
+                       if (!empty($attr["content"])) {
+                               $attr["content"] = trim(html_entity_decode($attr["content"], ENT_QUOTES, "UTF-8"));
 
-                       if ($attr["content"] != "") {
                                switch (strtolower($attr["property"])) {
                                        case "og:image":
                                                $siteinfo["image"] = $attr["content"];
@@ -371,7 +362,7 @@ class ParseUrl
                                                                        "height" => $photodata[1]];
                                }
                        }
-               } elseif ($siteinfo["image"] != "") {
+               } elseif (!empty($siteinfo["image"])) {
                        $src = self::completeUrl($siteinfo["image"], $url);
 
                        unset($siteinfo["image"]);