From a8bdd4f99b9518b6d0df1f86a369b843ce6f1293 Mon Sep 17 00:00:00 2001 From: ernolf Date: Sat, 13 Jul 2024 12:59:22 +0200 Subject: [PATCH] feat(preview): move previews for imaginary pdf to own class ImaginaryPDF Signed-off-by: ernolf Signed-off-by: Daniel Kesselberg --- config/config.sample.php | 8 +++++++- lib/composer/composer/autoload_classmap.php | 1 + lib/composer/composer/autoload_static.php | 1 + lib/private/Preview/Imaginary.php | 2 +- lib/private/Preview/ImaginaryPDF.php | 14 ++++++++++++++ lib/private/PreviewManager.php | 1 + 6 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 lib/private/Preview/ImaginaryPDF.php diff --git a/config/config.sample.php b/config/config.sample.php index 9840fcfc97caa..ba0ea6d410136 100644 --- a/config/config.sample.php +++ b/config/config.sample.php @@ -1296,7 +1296,13 @@ /** * Set the URL of the Imaginary service to send image previews to. - * Also requires the ``OC\Preview\Imaginary`` provider to be enabled. + * Also requires the + * - ``OC\Preview\Imaginary`` + * provider to be enabled in the 'enabledPreviewProviders' array, to create previews for these mimetypes: + * bmp, x-bitmap, png, jpeg, gif, heic, heif, svg+xml, tiff, webp and illustrator. + * If you want Imaginary to also create preview images from PDF Documents, you have to add + * - ``OC\Preview\ImaginaryPDF`` + * provider as well. * * See https://github.com/h2non/imaginary */ diff --git a/lib/composer/composer/autoload_classmap.php b/lib/composer/composer/autoload_classmap.php index e359a089fe136..dc0c8f0e6c6ec 100644 --- a/lib/composer/composer/autoload_classmap.php +++ b/lib/composer/composer/autoload_classmap.php @@ -1689,6 +1689,7 @@ 'OC\\Preview\\Illustrator' => $baseDir . '/lib/private/Preview/Illustrator.php', 'OC\\Preview\\Image' => $baseDir . '/lib/private/Preview/Image.php', 'OC\\Preview\\Imaginary' => $baseDir . '/lib/private/Preview/Imaginary.php', + 'OC\\Preview\\ImaginaryPDF' => $baseDir . '/lib/private/Preview/ImaginaryPDF.php', 'OC\\Preview\\JPEG' => $baseDir . '/lib/private/Preview/JPEG.php', 'OC\\Preview\\Krita' => $baseDir . '/lib/private/Preview/Krita.php', 'OC\\Preview\\MP3' => $baseDir . '/lib/private/Preview/MP3.php', diff --git a/lib/composer/composer/autoload_static.php b/lib/composer/composer/autoload_static.php index de92b293fcb4b..635854db4c6e4 100644 --- a/lib/composer/composer/autoload_static.php +++ b/lib/composer/composer/autoload_static.php @@ -1722,6 +1722,7 @@ class ComposerStaticInit749170dad3f5e7f9ca158f5a9f04f6a2 'OC\\Preview\\Illustrator' => __DIR__ . '/../../..' . '/lib/private/Preview/Illustrator.php', 'OC\\Preview\\Image' => __DIR__ . '/../../..' . '/lib/private/Preview/Image.php', 'OC\\Preview\\Imaginary' => __DIR__ . '/../../..' . '/lib/private/Preview/Imaginary.php', + 'OC\\Preview\\ImaginaryPDF' => __DIR__ . '/../../..' . '/lib/private/Preview/ImaginaryPDF.php', 'OC\\Preview\\JPEG' => __DIR__ . '/../../..' . '/lib/private/Preview/JPEG.php', 'OC\\Preview\\Krita' => __DIR__ . '/../../..' . '/lib/private/Preview/Krita.php', 'OC\\Preview\\MP3' => __DIR__ . '/../../..' . '/lib/private/Preview/MP3.php', diff --git a/lib/private/Preview/Imaginary.php b/lib/private/Preview/Imaginary.php index 23459be3b5199..baa883f4bd9f6 100644 --- a/lib/private/Preview/Imaginary.php +++ b/lib/private/Preview/Imaginary.php @@ -40,7 +40,7 @@ public function getMimeType(): string { } public static function supportedMimeTypes(): string { - return '/(image\/(bmp|x-bitmap|png|jpeg|gif|heic|heif|svg\+xml|tiff|webp)|application\/(pdf|illustrator))/'; + return '/(image\/(bmp|x-bitmap|png|jpeg|gif|heic|heif|svg\+xml|tiff|webp)|application\/illustrator)/'; } public function getCroppedThumbnail(File $file, int $maxX, int $maxY, bool $crop): ?IImage { diff --git a/lib/private/Preview/ImaginaryPDF.php b/lib/private/Preview/ImaginaryPDF.php new file mode 100644 index 0000000000000..d26c6d1b7ff84 --- /dev/null +++ b/lib/private/Preview/ImaginaryPDF.php @@ -0,0 +1,14 @@ +registerCoreProvider(Preview\MP3::class, '/audio\/mpeg/'); $this->registerCoreProvider(Preview\OpenDocument::class, '/application\/vnd.oasis.opendocument.*/'); $this->registerCoreProvider(Preview\Imaginary::class, Preview\Imaginary::supportedMimeTypes()); + $this->registerCoreProvider(Preview\ImaginaryPDF::class, Preview\ImaginaryPDF::supportedMimeTypes()); // SVG and Bitmap require imagick if ($this->imagickSupport->hasExtension()) {