]> git.mxchange.org Git - friendica.git/blobdiff - src/ParseUrl.php
No timeout problem anymore in preview.
[friendica.git] / src / ParseUrl.php
index 943725ffe0819df55c4e2055f3bc87c5aa8e6abb..1674d5691459efde1a0df655dffc91d85f61b5ea 100644 (file)
@@ -9,6 +9,12 @@ namespace Friendica;
 
 use Friendica\Core\Config;
 
+use xml;
+use dba;
+
+use DomXPath;
+use DOMDocument;
+
 require_once("include/network.php");
 require_once("include/Photo.php");
 require_once("include/oembed.php");
@@ -61,11 +67,9 @@ class ParseUrl {
 
                $data = self::getSiteinfo($url, $no_guessing, $do_oembed);
 
-               q("INSERT INTO `parsed_url` (`url`, `guessing`, `oembed`, `content`, `created`) VALUES ('%s', %d, %d, '%s', '%s')
-                        ON DUPLICATE KEY UPDATE `content` = '%s', `created` = '%s'",
-                       dbesc(normalise_link($url)), intval(!$no_guessing), intval($do_oembed),
-                       dbesc(serialize($data)), dbesc(datetime_convert()),
-                       dbesc(serialize($data)), dbesc(datetime_convert()));
+               dba::insert('parsed_url', array('url' => normalise_link($url), 'guessing' => !$no_guessing,
+                               'oembed' => $do_oembed, 'content' => serialize($data),
+                               'created' => datetime_convert()), true);
 
                return $data;
        }
@@ -150,6 +154,12 @@ class ParseUrl {
                        @curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
                }
 
+               $range = intval(Config::get('system', 'curl_range_bytes', 0));
+
+               if ($range > 0) {
+                       curl_setopt($ch, CURLOPT_RANGE, '0-' . $range);
+               }
+
                $header = curl_exec($ch);
                $curl_info = @curl_getinfo($ch);
                curl_close($ch);
@@ -223,22 +233,22 @@ class ParseUrl {
 
                $body = mb_convert_encoding($body, 'HTML-ENTITIES', "UTF-8");
 
-               $doc = new \DOMDocument();
+               $doc = new DOMDocument();
                @$doc->loadHTML($body);
 
-               \xml::deleteNode($doc, "style");
-               \xml::deleteNode($doc, "script");
-               \xml::deleteNode($doc, "option");
-               \xml::deleteNode($doc, "h1");
-               \xml::deleteNode($doc, "h2");
-               \xml::deleteNode($doc, "h3");
-               \xml::deleteNode($doc, "h4");
-               \xml::deleteNode($doc, "h5");
-               \xml::deleteNode($doc, "h6");
-               \xml::deleteNode($doc, "ol");
-               \xml::deleteNode($doc, "ul");
-
-               $xpath = new \DomXPath($doc);
+               xml::deleteNode($doc, "style");
+               xml::deleteNode($doc, "script");
+               xml::deleteNode($doc, "option");
+               xml::deleteNode($doc, "h1");
+               xml::deleteNode($doc, "h2");
+               xml::deleteNode($doc, "h3");
+               xml::deleteNode($doc, "h4");
+               xml::deleteNode($doc, "h5");
+               xml::deleteNode($doc, "h6");
+               xml::deleteNode($doc, "ol");
+               xml::deleteNode($doc, "ul");
+
+               $xpath = new DomXPath($doc);
 
                $list = $xpath->query("//meta[@content]");
                foreach ($list as $node) {