From a7adfa6e044d6b2a7c4bd2e484f6f5205a1d7681 Mon Sep 17 00:00:00 2001 From: Carl Schwan Date: Thu, 19 May 2022 13:13:41 +0200 Subject: [PATCH] Fix crop condition Make sure that when fetching the image from the cache we don't accidentally fetch the cropped image just because it also start with 256-256 Signed-off-by: Carl Schwan --- lib/private/Preview/Generator.php | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/lib/private/Preview/Generator.php b/lib/private/Preview/Generator.php index a19a19ef15f6c..22ee3f07fcdcc 100644 --- a/lib/private/Preview/Generator.php +++ b/lib/private/Preview/Generator.php @@ -144,7 +144,6 @@ public function generatePreviews(File $file, array $specifications, $mimeType = && ($specifications[0]['width'] <= 256 || $specifications[0]['height'] <= 256) && preg_match(Imaginary::supportedMimeTypes(), $mimeType) && $this->config->getSystemValueString('preview_imaginary_url', 'invalid') !== 'invalid') { - $crop = $specifications[0]['crop'] ?? false; $preview = $this->getSmallImagePreview($previewFolder, $file, $mimeType, $previewVersion, $crop); @@ -233,9 +232,17 @@ private function getSmallImagePreview(ISimpleFolder $previewFolder, File $file, foreach ($nodes as $node) { $name = $node->getName(); - if (($prefix === '' || strpos($name, $prefix) === 0) - && (str_starts_with($name, '256-256-crop') && $crop || str_starts_with($name, '256-256') && !$crop)) { - return $node; + if (($prefix === '' || strpos($name, $prefix) === 0)) { + // Prefix match + if (str_starts_with($name, '256-256-crop') && $crop) { + // Cropped image + return $node; + } + + if (str_starts_with($name, '256-256') && !str_starts_with($name, '256-256-crop') && !$crop) { + // Uncropped image + return $node; + } } }