]> git.mxchange.org Git - friendica.git/blobdiff - src/Util/ParseUrl.php
Photo delete is moved as well
[friendica.git] / src / Util / ParseUrl.php
index 75210af0f0de0af85b26d324be9563c6677411bd..6c3c4a0259e80873e1130d0b243531097f9fa3c1 100644 (file)
@@ -30,6 +30,7 @@ use Friendica\Database\Database;
 use Friendica\Database\DBA;
 use Friendica\DI;
 use Friendica\Network\HTTPException;
+use Friendica\Network\HTTPClient\Client\HttpClientOptions;
 
 /**
  * Get information about a given URL
@@ -58,12 +59,12 @@ class ParseUrl
         */
        public static function getContentType(string $url)
        {
-               $curlResult = DI::httpRequest()->head($url);
+               $curlResult = DI::httpClient()->head($url);
                if (!$curlResult->isSuccess()) {
                        return [];
                }
 
-               $contenttype =  $curlResult->getHeader('Content-Type');
+               $contenttype =  $curlResult->getHeader('Content-Type')[0] ?? '';
                if (empty($contenttype)) {
                        return [];
                }
@@ -213,19 +214,14 @@ class ParseUrl
                        return $siteinfo;
                }
 
-               $curlResult = DI::httpRequest()->get($url);
+               $curlResult = DI::httpClient()->get($url, [HttpClientOptions::CONTENT_LENGTH => 1000000]);
                if (!$curlResult->isSuccess() || empty($curlResult->getBody())) {
                        return $siteinfo;
                }
 
                $siteinfo['expires'] = DateTimeFormat::utc(self::DEFAULT_EXPIRATION_SUCCESS);
 
-               // If the file is too large then exit
-               if (($curlResult->getInfo()['download_content_length'] ?? 0) > 1000000) {
-                       return $siteinfo;
-               }
-
-               if ($cacheControlHeader = $curlResult->getHeader('Cache-Control')) {
+               if ($cacheControlHeader = $curlResult->getHeader('Cache-Control')[0] ?? '') {
                        if (preg_match('/max-age=([0-9]+)/i', $cacheControlHeader, $matches)) {
                                $maxAge = max(86400, (int)array_pop($matches));
                                $siteinfo['expires'] = DateTimeFormat::utc("now + $maxAge seconds");
@@ -1120,7 +1116,11 @@ class ParseUrl
                }
 
                $content = JsonLD::fetchElement($jsonld, 'image', 'url', '@type', 'ImageObject');
-               if (!empty($content)) {
+               if (!empty($content) && !is_string($content)) {
+                       Logger::notice('Unexpected return value for the author image', ['content' => $content]);
+               }
+
+               if (!empty($content) && is_string($content)) {
                        $jsonldinfo['author_img'] = trim($content);
                }