From: Philipp <admin@philipp.info>
Date: Fri, 20 Aug 2021 18:05:41 +0000 (+0200)
Subject: A lot of Fixings
X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=65ca164487af3890affe224e14b090cc654a2bd0;p=friendica.git

A lot of Fixings
---

diff --git a/src/Content/Text/BBCode.php b/src/Content/Text/BBCode.php
index cd433bdbb8..f52a2137da 100644
--- a/src/Content/Text/BBCode.php
+++ b/src/Content/Text/BBCode.php
@@ -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 = '';
 		}
diff --git a/src/Model/Post/Link.php b/src/Model/Post/Link.php
index 64840a9c95..edd3411624 100644
--- a/src/Model/Post/Link.php
+++ b/src/Model/Post/Link.php
@@ -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 '';
diff --git a/src/Model/Post/Media.php b/src/Model/Post/Media.php
index fae71a9536..c57b1cabeb 100644
--- a/src/Model/Post/Media.php
+++ b/src/Model/Post/Media.php
@@ -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]);
diff --git a/src/Network/GuzzleResponse.php b/src/Network/GuzzleResponse.php
index b1bbaa9653..1bb2ee4c5e 100644
--- a/src/Network/GuzzleResponse.php
+++ b/src/Network/GuzzleResponse.php
@@ -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();
+	}
 }
diff --git a/src/Network/HTTPRequest.php b/src/Network/HTTPRequest.php
index e68c0a8f4b..18c060fc54 100644
--- a/src/Network/HTTPRequest.php
+++ b/src/Network/HTTPRequest.php
@@ -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
 		]);
 
diff --git a/src/Network/Probe.php b/src/Network/Probe.php
index c547afcd4d..4cacfedf40 100644
--- a/src/Network/Probe.php
+++ b/src/Network/Probe.php
@@ -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;
diff --git a/src/Util/ParseUrl.php b/src/Util/ParseUrl.php
index d95897b1d0..915a143a04 100644
--- a/src/Util/ParseUrl.php
+++ b/src/Util/ParseUrl.php
@@ -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");