From f9adb006b02c13cab12f1b4b6feaf1fce47079f5 Mon Sep 17 00:00:00 2001 From: Elizabeth Danzberger Date: Thu, 16 Jan 2025 15:23:38 -0500 Subject: [PATCH 1/2] fix: prevent missing target file extension Signed-off-by: Elizabeth Danzberger --- .../Files/Conversion/ConversionManager.php | 20 ++++++++----------- 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/lib/private/Files/Conversion/ConversionManager.php b/lib/private/Files/Conversion/ConversionManager.php index db49f7afed9..0a6090cda01 100644 --- a/lib/private/Files/Conversion/ConversionManager.php +++ b/lib/private/Files/Conversion/ConversionManager.php @@ -92,16 +92,16 @@ class ConversionManager implements IConversionManager { $fileMimeType = $file->getMimetype(); $validProvider = $this->getValidProvider($fileMimeType, $targetMimeType); - $targetExtension = ''; - foreach ($this->getProvidersForMime($fileMimeType) as $mimeProvider) { - if ($mimeProvider->getTo() === $targetMimeType) { - $targetExtension = $mimeProvider->getExtension(); - break; - } - } - if ($validProvider !== null) { $convertedFile = $validProvider->convertFile($file, $targetMimeType); + + $targetExtension = ''; + foreach ($validProvider->getSupportedMimeTypes() as $mimeProvider) { + if ($mimeProvider->getTo() === $targetMimeType) { + $targetExtension = $mimeProvider->getExtension(); + break; + } + } // If destination not provided, we use the same path // as the original file, but with the new extension @@ -122,10 +122,6 @@ class ConversionManager implements IConversionManager { * @return list */ private function getRegisteredProviders(): array { - if (count($this->providers) > 0) { - return $this->providers; - } - $context = $this->coordinator->getRegistrationContext(); foreach ($context->getFileConversionProviders() as $providerRegistration) { $class = $providerRegistration->getService(); From 14976390ff210058311b33447468b8fc5baa3a43 Mon Sep 17 00:00:00 2001 From: Elizabeth Danzberger Date: Thu, 16 Jan 2025 15:25:15 -0500 Subject: [PATCH 2/2] chore: remove unnecessary method Signed-off-by: Elizabeth Danzberger --- .../Files/Conversion/ConversionManager.php | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/lib/private/Files/Conversion/ConversionManager.php b/lib/private/Files/Conversion/ConversionManager.php index 0a6090cda01..e6ec11b1cf4 100644 --- a/lib/private/Files/Conversion/ConversionManager.php +++ b/lib/private/Files/Conversion/ConversionManager.php @@ -11,7 +11,6 @@ namespace OC\Files\Conversion; use OC\AppFramework\Bootstrap\Coordinator; use OC\SystemConfig; -use OCP\Files\Conversion\ConversionMimeProvider; use OCP\Files\Conversion\IConversionManager; use OCP\Files\Conversion\IConversionProvider; use OCP\Files\File; @@ -61,22 +60,6 @@ class ConversionManager implements IConversionManager { return $providers; } - /** - * @param string $mime - * @return list - */ - private function getProvidersForMime(string $mime): array { - $mimeTypes = $this->getProviders(); - $filtered = array_filter( - $mimeTypes, - function (ConversionMimeProvider $mimeProvider) use ($mime) { - return $mimeProvider->getFrom() === $mime; - } - ); - - return array_values($filtered); - } - public function convert(File $file, string $targetMimeType, ?string $destination = null): string { if (!$this->hasProviders()) { throw new PreConditionNotMetException('No file conversion providers available');