diff --git a/plugins/ImageEncoder/ImageEncoder.php b/plugins/ImageEncoder/ImageEncoder.php index 33bd45701d..5ff50dcece 100644 --- a/plugins/ImageEncoder/ImageEncoder.php +++ b/plugins/ImageEncoder/ImageEncoder.php @@ -55,9 +55,13 @@ class ImageEncoder extends Plugin return '3.0.0'; } + public static function shouldHandle (string $mimetype): bool { + return GSFile::mimetypeMajor($mimetype) === 'image'; + } + public function onFileMetaAvailable(array &$event_map, string $mimetype): bool { - if (GSFile::mimetypeMajor($mimetype) !== 'image') { + if (!self::shouldHandle($mimetype)) { return Event::next; } $event_map['image'][] = [$this, 'fileMeta']; @@ -66,7 +70,7 @@ class ImageEncoder extends Plugin public function onFileSanitizerAvailable(array &$event_map, string $mimetype): bool { - if (GSFile::mimetypeMajor($mimetype) !== 'image') { + if (!self::shouldHandle($mimetype)) { return Event::next; } $event_map['image'][] = [$this, 'fileSanitize']; @@ -75,7 +79,7 @@ class ImageEncoder extends Plugin public function onFileResizerAvailable(array &$event_map, string $mimetype): bool { - if (GSFile::mimetypeMajor($mimetype) !== 'image') { + if (!self::shouldHandle($mimetype)) { return Event::next; } $event_map['image'][] = [$this, 'resizeImagePath']; @@ -177,9 +181,10 @@ class ImageEncoder extends Plugin */ public function onViewAttachment(array $vars, array &$res): bool { - if ($vars['attachment']->getMimetypeMajor() !== 'image') { + if (!self::shouldHandle($vars['attachment']->getMimetype())) { return Event::next; } + $res[] = Formatting::twigRenderFile( 'imageEncoder/imageEncoderView.html.twig', [ diff --git a/plugins/VideoEncoder/VideoEncoder.php b/plugins/VideoEncoder/VideoEncoder.php index 80c200e1b4..9cfa0ee0e0 100644 --- a/plugins/VideoEncoder/VideoEncoder.php +++ b/plugins/VideoEncoder/VideoEncoder.php @@ -54,9 +54,13 @@ class VideoEncoder extends Plugin return '1.0.0'; } + public static function shouldHandle (string $mimetype): bool { + return GSFile::mimetypeMajor($mimetype) === 'video' || $mimetype === 'image/gif'; + } + public function onFileMetaAvailable(array &$event_map, string $mimetype): bool { - if (GSFile::mimetypeMajor($mimetype) !== 'video' && $mimetype !== 'image/gif') { + if (!self::shouldHandle($mimetype)) { return Event::next; } $event_map['video'][] = [$this, 'fileMeta']; @@ -66,7 +70,7 @@ class VideoEncoder extends Plugin public function onFileSanitizerAvailable(array &$event_map, string $mimetype): bool { - if (GSFile::mimetypeMajor($mimetype) !== 'video' && $mimetype !== 'image/gif') { + if ($mimetype !== 'image/gif') { return Event::next; } $event_map['video'][] = [$this, 'fileMeta']; @@ -76,7 +80,7 @@ class VideoEncoder extends Plugin public function onFileResizerAvailable(array &$event_map, string $mimetype): bool { - if (GSFile::mimetypeMajor($mimetype) !== 'video' && $mimetype !== 'image/gif') { + if ($mimetype !== 'image/gif') { return Event::next; } $event_map['video'][] = [$this, 'resizeVideoPath']; @@ -91,15 +95,10 @@ class VideoEncoder extends Plugin * @param null|int $width out * @param null|int $height out * - * @return bool true if sanitized + * @return bool true if metadata filled */ public function fileMeta(SplFileInfo &$file, ?string &$mimetype, ?int &$width, ?int &$height): bool { - if (//GSFile::mimetypeMajor($mimetype) !== 'video' && - $mimetype !== 'image/gif') { - return false; - } - // Create FFProbe instance // Need to explicitly tell the drivers' location, or it won't find them $ffprobe = ffprobe::create([ @@ -108,13 +107,11 @@ class VideoEncoder extends Plugin ]); $metadata = $ffprobe->streams($file->getRealPath()) // extracts streams informations - ->videos() // filters video streams - ->first(); // returns the first video stream + ->videos() // filters video streams + ->first(); // returns the first video stream $width = $metadata->get('width'); $height = $metadata->get('height'); - // Only one plugin can handle sanitization - $mimetype = 'image/gif'; return true; } @@ -141,6 +138,10 @@ class VideoEncoder extends Plugin */ public function onViewAttachment(array $vars, array &$res): bool { + if ($vars['attachment']->getMimetypeMajor() !== 'video') { + return Event::next; + } + $res[] = Formatting::twigRenderFile( 'videoEncoder/videoEncoderView.html.twig', [