]> git.mxchange.org Git - friendica.git/commitdiff
AVoid throwing an error / store the size of pages
authorMichael <heluecht@pirati.ca>
Sun, 1 Sep 2024 18:09:00 +0000 (18:09 +0000)
committerMichael <heluecht@pirati.ca>
Mon, 2 Sep 2024 04:10:27 +0000 (04:10 +0000)
src/Model/Post/Media.php
src/Network/HTTPClient/Client/HttpClient.php
src/Util/ParseUrl.php

index 698d994de5859d5399a364ec164f7b067e9298b7..10252377000812712d8bbcfa95e5ef8dc15ed7d1 100644 (file)
@@ -193,7 +193,7 @@ class Media
                                                $media['mimetype'] = $curlResult->getContentType() ?? '';
                                        }
                                        if (empty($media['size'])) {
-                                               $media['size'] = (int)($curlResult->getHeader('Content-Length')[0] ?? 0);
+                                               $media['size'] = (int)($curlResult->getHeader('Content-Length')[0] ?? strlen($curlResult->getBodyString() ?? ''));
                                        }
                                } else {
                                        Logger::notice('Could not fetch head', ['media' => $media]);
@@ -363,6 +363,7 @@ class Media
        private static function addPage(array $media): array
        {
                $data = ParseUrl::getSiteinfoCached($media['url']);
+               $media['size'] = $data['size'] ?? null;
                $media['preview'] = $data['images'][0]['src'] ?? null;
                $media['preview-height'] = $data['images'][0]['height'] ?? null;
                $media['preview-width'] = $data['images'][0]['width'] ?? null;
index bfa490663a70d550712a628c710114801dce1738..761e3c2282d8edece33e6fb93360cb5162759b8f 100644 (file)
@@ -61,11 +61,13 @@ class HttpClient implements ICanSendHttpRequests
 
                $host = parse_url($url, PHP_URL_HOST);
                if (empty($host)) {
-                       throw new \InvalidArgumentException('Unable to retrieve the host in URL: ' . $url);
+                       $this->logger->notice('Unable to retrieve the host in URL', ['url' => $url]);
+                       $this->profiler->stopRecording();
+                       return CurlResult::createErrorCurl($this->logger, $url);
                }
 
                if (!filter_var($host, FILTER_VALIDATE_IP) && !@dns_get_record($host . '.', DNS_A) && !@dns_get_record($host . '.', DNS_AAAA)) {
-                       $this->logger->debug('URL cannot be resolved.', ['url' => $url]);
+                       $this->logger->info('URL cannot be resolved.', ['url' => $url]);
                        $this->profiler->stopRecording();
                        return CurlResult::createErrorCurl($this->logger, $url);
                }
@@ -75,7 +77,7 @@ class HttpClient implements ICanSendHttpRequests
                }
 
                if (strlen($url) > 1000) {
-                       $this->logger->debug('URL is longer than 1000 characters.', ['url' => $url]);
+                       $this->logger->info('URL is longer than 1000 characters.', ['url' => $url]);
                        $this->profiler->stopRecording();
                        return CurlResult::createErrorCurl($this->logger, substr($url, 0, 200));
                }
index 51967403614ea259b74ac685ae70070c70fa90cc..4238499bab954833c43ebf8512e504d18e4d6cf0 100644 (file)
@@ -245,6 +245,7 @@ class ParseUrl
                }
 
                $body = $curlResult->getBodyString();
+               $siteinfo['size'] = mb_strlen($body);
 
                $charset = '';
                try {