]> git.mxchange.org Git - friendica.git/blobdiff - src/Model/Post/Link.php
Fix uddate issues and improve speed when displaying contact posts
[friendica.git] / src / Model / Post / Link.php
index aa830a1d28261ed69c9242573060e07c36ad112f..87bc457524ede28dcb820b086dfbad969be5c74e 100644 (file)
@@ -22,7 +22,6 @@
 namespace Friendica\Model\Post;
 
 use Friendica\Core\Logger;
-use Friendica\Core\System;
 use Friendica\Database\Database;
 use Friendica\Database\DBA;
 use Friendica\DI;
@@ -58,7 +57,7 @@ class Link
         * @param int $uriId
         * @param string $url
         * @param string $size
-        * @return string Found link URL + id on success, $url on failture
+        * @return string Found link URL + id on success, $url on failure
         */
        public static function getByLink(int $uriId, string $url, string $size = ''): string
        {
@@ -67,7 +66,7 @@ class Link
                }
 
                if (!in_array(parse_url($url, PHP_URL_SCHEME), ['http', 'https'])) {
-                       Logger::info('Bad URL, quitting', ['uri-id' => $uriId, 'url' => $url, 'callstack' => System::callstack(20)]);
+                       Logger::info('Bad URL, quitting', ['uri-id' => $uriId, 'url' => $url]);
                        return $url;
                }
 
@@ -125,8 +124,13 @@ class Link
        {
                $timeout = DI::config()->get('system', 'xrd_timeout');
 
-               $curlResult = HTTPSignature::fetchRaw($url, 0, [HttpClientOptions::TIMEOUT => $timeout, HttpClientOptions::ACCEPT_CONTENT => $accept]);
-               if (!$curlResult->isSuccess()) {
+               try {
+                       $curlResult = HTTPSignature::fetchRaw($url, 0, [HttpClientOptions::TIMEOUT => $timeout, HttpClientOptions::ACCEPT_CONTENT => $accept]);
+                       if (empty($curlResult) || !$curlResult->isSuccess()) {
+                               return [];
+                       }
+               } catch (\Exception $exception) {
+                       Logger::notice('Error fetching url', ['url' => $url, 'exception' => $exception]);
                        return [];
                }
                $fields = ['mimetype' => $curlResult->getHeader('Content-Type')[0]];