]> git.mxchange.org Git - friendica.git/commitdiff
Fix image posts done by Buffer
authorMichael <heluecht@pirati.ca>
Sat, 19 Oct 2024 03:35:21 +0000 (03:35 +0000)
committerMichael <heluecht@pirati.ca>
Sat, 19 Oct 2024 03:35:21 +0000 (03:35 +0000)
src/Module/Api/Mastodon/Media.php

index 49f03b160f9f1c935b69e55ce392599e36cb256c..cc69d5a54637ca6f372d06664fa6af1807b86b3a 100644 (file)
@@ -42,38 +42,37 @@ class Media extends BaseApi
 
                $type = Post\Media::getType($request['file']['type']);
 
-               if (in_array($type, [Post\Media::IMAGE, Post\Media::UNKNOWN])) {
+               if (in_array($type, [Post\Media::IMAGE, Post\Media::UNKNOWN, Post\Media::APPLICATION])) {
                        $media = Photo::upload($uid, $request['file'], '', null, null, '', '', $request['description']);
-                       if (empty($media)) {
-                               $this->logAndJsonError(422, $this->errorFactory->UnprocessableEntity());
+                       if (!empty($media)) {
+                               Logger::info('Uploaded photo', ['media' => $media]);
+                               $this->jsonExit(DI::mstdnAttachment()->createFromPhoto($media['id']));
+                       } elseif ($type == Post\Media::IMAGE) {
+                               $this->jsonExit(DI::mstdnAttachment()->createFromPhoto($media['id']));
                        }
+               }
 
-                       Logger::info('Uploaded photo', ['media' => $media]);
-
-                       $this->jsonExit(DI::mstdnAttachment()->createFromPhoto($media['id']));
-               } else {
-                       $tempFileName = $request['file']['tmp_name'];
-                       $fileName     = basename($request['file']['name']);
-                       $fileSize     = intval($request['file']['size']);
-                       $maxFileSize  = Strings::getBytesFromShorthand(DI::config()->get('system', 'maxfilesize'));
+               $tempFileName = $request['file']['tmp_name'];
+               $fileName     = basename($request['file']['name']);
+               $fileSize     = intval($request['file']['size']);
+               $maxFileSize  = Strings::getBytesFromShorthand(DI::config()->get('system', 'maxfilesize'));
 
-                       if ($fileSize <= 0) {
-                               Logger::notice('Filesize is invalid', ['size' => $fileSize, 'request' => $request]);
-                               @unlink($tempFileName);
-                               $this->logAndJsonError(422, $this->errorFactory->UnprocessableEntity());
-                       }
-
-                       if ($maxFileSize && $fileSize > $maxFileSize) {
-                               Logger::notice('Filesize is too large', ['size' => $fileSize, 'max' => $maxFileSize, 'request' => $request]);
-                               @unlink($tempFileName);
-                               $this->logAndJsonError(422, $this->errorFactory->UnprocessableEntity());
-                       }
+               if ($fileSize <= 0) {
+                       Logger::notice('Filesize is invalid', ['size' => $fileSize, 'request' => $request]);
+                       @unlink($tempFileName);
+                       $this->logAndJsonError(422, $this->errorFactory->UnprocessableEntity());
+               }
 
-                       $id = Attach::storeFile($tempFileName, self::getCurrentUserID(), $fileName, $request['file']['type'], '<' . Contact::getPublicIdByUserId(self::getCurrentUserID()) . '>');
+               if ($maxFileSize && $fileSize > $maxFileSize) {
+                       Logger::notice('Filesize is too large', ['size' => $fileSize, 'max' => $maxFileSize, 'request' => $request]);
                        @unlink($tempFileName);
-                       Logger::info('Uploaded media', ['id' => $id]);
-                       $this->jsonExit(DI::mstdnAttachment()->createFromAttach($id));
+                       $this->logAndJsonError(422, $this->errorFactory->UnprocessableEntity());
                }
+
+               $id = Attach::storeFile($tempFileName, self::getCurrentUserID(), $fileName, $request['file']['type'], '<' . Contact::getPublicIdByUserId(self::getCurrentUserID()) . '>');
+               @unlink($tempFileName);
+               Logger::info('Uploaded media', ['id' => $id]);
+               $this->jsonExit(DI::mstdnAttachment()->createFromAttach($id));
        }
 
        public function put(array $request = [])