]> git.mxchange.org Git - friendica.git/commitdiff
Fix fetching additional media information
authorMichael <heluecht@pirati.ca>
Sun, 1 Sep 2024 04:52:38 +0000 (04:52 +0000)
committerMichael <heluecht@pirati.ca>
Sun, 1 Sep 2024 04:52:38 +0000 (04:52 +0000)
src/Model/Post/Media.php

index b62771274ebb68bb3e42f4ce348a622526ae0db7..698d994de5859d5399a364ec164f7b067e9298b7 100644 (file)
@@ -181,25 +181,25 @@ class Media
                // Fetch the mimetype or size if missing.
                if (Network::isValidHttpUrl($media['url']) && (empty($media['mimetype']) || empty($media['size']))) {
                        $timeout = DI::config()->get('system', 'xrd_timeout');
-                       $curlResult = DI::httpClient()->head($media['url'], [HttpClientOptions::TIMEOUT => $timeout, HttpClientOptions::REQUEST => HttpClientRequest::CONTENTTYPE]);
+                       try {
+                               $curlResult = DI::httpClient()->head($media['url'], [HttpClientOptions::TIMEOUT => $timeout, HttpClientOptions::REQUEST => HttpClientRequest::CONTENTTYPE]);
 
-                       // Workaround for systems that can't handle a HEAD request
-                       if (!$curlResult->isSuccess() && ($curlResult->getReturnCode() == 405)) {
-                               try {
+                               // Workaround for systems that can't handle a HEAD request
+                               if (!$curlResult->isSuccess() && ($curlResult->getReturnCode() == 405)) {
                                        $curlResult = DI::httpClient()->get($media['url'], HttpClientAccept::DEFAULT, [HttpClientOptions::TIMEOUT => $timeout]);
-                                       if ($curlResult->isSuccess()) {
-                                               if (empty($media['mimetype'])) {
-                                                       $media['mimetype'] = $curlResult->getContentType() ?? '';
-                                               }
-                                               if (empty($media['size'])) {
-                                                       $media['size'] = (int)($curlResult->getHeader('Content-Length')[0] ?? 0);
-                                               }
-                                       } else {
-                                               Logger::notice('Could not fetch head', ['media' => $media]);
+                               }
+                               if ($curlResult->isSuccess()) {
+                                       if (empty($media['mimetype'])) {
+                                               $media['mimetype'] = $curlResult->getContentType() ?? '';
+                                       }
+                                       if (empty($media['size'])) {
+                                               $media['size'] = (int)($curlResult->getHeader('Content-Length')[0] ?? 0);
                                        }
-                               } catch (\Throwable $th) {
-                                       Logger::notice('Got exception', ['code' => $th->getCode(), 'message' => $th->getMessage()]);
+                               } else {
+                                       Logger::notice('Could not fetch head', ['media' => $media]);
                                }
+                       } catch (\Throwable $th) {
+                               Logger::notice('Got exception', ['code' => $th->getCode(), 'message' => $th->getMessage()]);
                        }
                }
 
@@ -684,7 +684,7 @@ class Media
                        foreach ($matches[1] as $url) {
                                Logger::info('Got page url (link without description)', ['uri-id' => $uriid, 'url' => $url]);
                                $result = self::insert(['uri-id' => $uriid, 'type' => self::UNKNOWN, 'url' => $url], false, $network);
-                               if ($result && !in_array($network, [Protocol::ACTIVITYPUB, Protocol::OSTATUS, Protocol::DIASPORA])) {
+                               if ($result && !in_array($network, [Protocol::ACTIVITYPUB, Protocol::DIASPORA])) {
                                        self::revertHTMLType($uriid, $url, $fullbody);
                                        Logger::debug('Revert HTML type', ['uri-id' => $uriid, 'url' => $url]);
                                } elseif ($result) {
@@ -700,7 +700,7 @@ class Media
                        foreach ($matches[1] as $url) {
                                Logger::info('Got page url (link with description)', ['uri-id' => $uriid, 'url' => $url]);
                                $result = self::insert(['uri-id' => $uriid, 'type' => self::UNKNOWN, 'url' => $url], false, $network);
-                               if ($result && !in_array($network, [Protocol::ACTIVITYPUB, Protocol::OSTATUS, Protocol::DIASPORA])) {
+                               if ($result && !in_array($network, [Protocol::ACTIVITYPUB, Protocol::DIASPORA])) {
                                        self::revertHTMLType($uriid, $url, $fullbody);
                                        Logger::debug('Revert HTML type', ['uri-id' => $uriid, 'url' => $url]);
                                } elseif ($result) {