]> git.mxchange.org Git - friendica.git/commitdiff
A lot of Fixings
authorPhilipp <admin@philipp.info>
Fri, 20 Aug 2021 18:05:41 +0000 (20:05 +0200)
committerPhilipp <admin@philipp.info>
Fri, 20 Aug 2021 19:35:14 +0000 (21:35 +0200)
src/Content/Text/BBCode.php
src/Model/Post/Link.php
src/Model/Post/Media.php
src/Network/GuzzleResponse.php
src/Network/HTTPRequest.php
src/Network/Probe.php
src/Util/ParseUrl.php

index cd433bdbb8e66191809a5dceb074112e06c651c2..f52a2137da009593fcc32e0ed1cf15cacb8225af 100644 (file)
@@ -1195,7 +1195,7 @@ class BBCode
                if (is_null($text)) {
                        $curlResult = DI::httpRequest()->head($match[1], ['timeout' => DI::config()->get('system', 'xrd_timeout')]);
                        if ($curlResult->isSuccess()) {
-                               $mimetype = $curlResult->getHeader('Content-Type');
+                               $mimetype = $curlResult->getHeader('Content-Type')[0] ?? '';
                        } else {
                                $mimetype = '';
                        }
@@ -1266,7 +1266,7 @@ class BBCode
 
                $curlResult = DI::httpRequest()->head($match[1], ['timeout' => DI::config()->get('system', 'xrd_timeout')]);
                if ($curlResult->isSuccess()) {
-                       $mimetype = $curlResult->getHeader('Content-Type');
+                       $mimetype = $curlResult->getHeader('Content-Type')[0] ?? '';
                } else {
                        $mimetype = '';
                }
index 64840a9c957f416b784dd83bea353c39c56c30c1..edd3411624802a7495f92c218f8f2f297e2b4138 100644 (file)
@@ -90,7 +90,7 @@ class Link
                $curlResult = DI::httpRequest()->head($url, ['timeout' => $timeout]);
                if ($curlResult->isSuccess()) {
                        if (empty($media['mimetype'])) {
-                               return $curlResult->getHeader('Content-Type');
+                               return $curlResult->getHeader('Content-Type')[0] ?? '';
                        }
                }
                return '';
index fae71a95363461412968f8b799776bcb755927c5..c57b1cabebcbe81b2d7c858b291287a951e90af2 100644 (file)
@@ -170,10 +170,10 @@ class Media
                        $curlResult = DI::httpRequest()->head($media['url'], ['timeout' => $timeout]);
                        if ($curlResult->isSuccess()) {
                                if (empty($media['mimetype'])) {
-                                       $media['mimetype'] = $curlResult->getHeader('Content-Type');
+                                       $media['mimetype'] = $curlResult->getHeader('Content-Type')[0] ?? '';
                                }
                                if (empty($media['size'])) {
-                                       $media['size'] = (int)$curlResult->getHeader('Content-Length');
+                                       $media['size'] = (int)$curlResult->getHeader('Content-Length')[0] ?? 0;
                                }
                        } else {
                                Logger::notice('Could not fetch head', ['media' => $media]);
index b1bbaa96536dd9b091ccf3cbb1a66f2d5bb6f45a..1bb2ee4c5e8b3b8eecc92a0f5cd8d025a324d2bd 100644 (file)
@@ -145,4 +145,10 @@ class GuzzleResponse extends Response implements IHTTPResult, ResponseInterface
        {
                return $this->isTimeout;
        }
+
+       /// @todo - fix mismatching use of "getBody()" as string here and parent "getBody()" as streaminterface
+       public function getBody()
+       {
+               return parent::getBody()->getContents();
+       }
 }
index e68c0a8f4bd16e6ca96b6ebe3584c77daefc833c..18c060fc545a1b46eb3efc7a41c7c2257828a26f 100644 (file)
@@ -72,7 +72,7 @@ class HTTPRequest implements IHTTPRequest
        /**
         * {@inheritDoc}
         */
-       public function get(string $url, bool $binary = false, array $opts = [])
+       public function get(string $url, array $opts = [])
        {
                $this->profiler->startRecording('network');
 
@@ -193,10 +193,6 @@ class HTTPRequest implements IHTTPRequest
                        $curlOptions[CURLOPT_IPRESOLVE] = CURL_IPRESOLVE_V4;
                }
 
-               if ($binary) {
-                       $curlOptions[CURLOPT_BINARYTRANSFER] = 1;
-               }
-
                $logger = $this->logger;
 
                $onRedirect = function(
@@ -223,7 +219,6 @@ class HTTPRequest implements IHTTPRequest
                                'referer' => true,
                        ],
                        'on_headers' => $onHeaders,
-                       'sink' => tempnam(get_temppath(), 'guzzle'),
                        'curl' => $curlOptions
                ]);
 
index c547afcd4d0655ded20d6a121839458db3cd3786..4cacfedf408f81d8f2b5f0f0d019e8ffc60d37d9 100644 (file)
@@ -424,16 +424,11 @@ class Probe
         */
        private static function getHideStatus($url)
        {
-               $curlResult = DI::httpRequest()->get($url, false, ['content_length' => 1000000]);
+               $curlResult = DI::httpRequest()->get($url, ['content_length' => 1000000]);
                if (!$curlResult->isSuccess()) {
                        return false;
                }
 
-               // If the file is too large then exit
-               if (($curlResult->getInfo()['download_content_length'] ?? 0) > 1000000) {
-                       return false;
-               }
-
                // If it isn't a HTML file then exit
                if (($curlResult->getContentType() != '') && !strstr(strtolower($curlResult->getContentType()), 'html')) {
                        return false;
index d95897b1d01c8f7d3a5843d6da166e5359779981..915a143a0473b87cb2f0de059ed0d84b13e2ebc2 100644 (file)
@@ -63,7 +63,7 @@ class ParseUrl
                        return [];
                }
 
-               $contenttype =  $curlResult->getHeader('Content-Type');
+               $contenttype =  $curlResult->getHeader('Content-Type')[0] ?? '';
                if (empty($contenttype)) {
                        return [];
                }
@@ -213,19 +213,14 @@ class ParseUrl
                        return $siteinfo;
                }
 
-               $curlResult = DI::httpRequest()->get($url, false, ['content_length' => 1000000]);
+               $curlResult = DI::httpRequest()->get($url, ['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");