]> git.mxchange.org Git - friendica.git/blobdiff - src/Model/Post/Media.php
Use central function to fetch the global directory
[friendica.git] / src / Model / Post / Media.php
index 6fe996d76ab69e9ae384d06444f7cba7cd2e28b9..b783fb6a4fc6c8532c1c2a639ea82c9b7952dce2 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * @copyright Copyright (C) 2010-2021, the Friendica project
+ * @copyright Copyright (C) 2010-2022, the Friendica project
  *
  * @license GNU AGPL version 3 or any later version
  *
@@ -30,6 +30,7 @@ use Friendica\DI;
 use Friendica\Model\Item;
 use Friendica\Model\Photo;
 use Friendica\Model\Post;
+use Friendica\Network\HTTPClient\Client\HttpClientAccept;
 use Friendica\Network\HTTPClient\Client\HttpClientOptions;
 use Friendica\Util\Images;
 use Friendica\Util\Network;
@@ -169,6 +170,12 @@ class Media
                if (empty($media['mimetype']) || empty($media['size'])) {
                        $timeout = DI::config()->get('system', 'xrd_timeout');
                        $curlResult = DI::httpClient()->head($media['url'], [HttpClientOptions::TIMEOUT => $timeout]);
+
+                       // 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->getHeader('Content-Type')[0] ?? '';
@@ -512,7 +519,7 @@ class Media
                        $condition = DBA::mergeConditions($condition, ['type' => $types]);
                }
 
-               return DBA::selectToArray('post-media', [], $condition);
+               return DBA::selectToArray('post-media', [], $condition, ['order' => ['id']]);
        }
 
        /**