From 7b3e9bbbca6d7302457932945ed2d7f44073f7bf Mon Sep 17 00:00:00 2001 From: Laura Hausmann Date: Thu, 8 Aug 2024 17:48:34 +0200 Subject: [PATCH] [backend/drive] Fix duplicated dots in file extensions in some circumstances --- Iceshrimp.Backend/Core/Services/DriveService.cs | 6 +++--- Iceshrimp.Backend/Core/Services/ImageProcessor.cs | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Iceshrimp.Backend/Core/Services/DriveService.cs b/Iceshrimp.Backend/Core/Services/DriveService.cs index 51f6d45c..0863707d 100644 --- a/Iceshrimp.Backend/Core/Services/DriveService.cs +++ b/Iceshrimp.Backend/Core/Services/DriveService.cs @@ -337,7 +337,7 @@ public class DriveService( Stream input, DriveFileCreationRequest request ) { - var accessKey = GenerateAccessKey(extension: Path.GetExtension(request.Filename)); + var accessKey = GenerateAccessKey(extension: Path.GetExtension(request.Filename).TrimStart('.')); var url = await StoreFileVersion(input, accessKey, request.Filename, request.MimeType); return (Stub, accessKey, url); } @@ -442,7 +442,7 @@ public class DriveService( { if (skipImageProcessing) { - var origFormat = new ImageFormat.Keep(Path.GetExtension(request.Filename), request.MimeType); + var origFormat = new ImageFormat.Keep(Path.GetExtension(request.Filename).TrimStart('.'), request.MimeType); return [new ImageVersion(KeyEnum.Original, origFormat)]; } @@ -469,7 +469,7 @@ public class DriveService( return config.Format switch { ImageFormatEnum.None => null, - ImageFormatEnum.Keep => new ImageFormat.Keep(Path.GetExtension(request.Filename), request.MimeType), + ImageFormatEnum.Keep => new ImageFormat.Keep(Path.GetExtension(request.Filename).TrimStart('.'), request.MimeType), ImageFormatEnum.Webp => new ImageFormat.Webp(config.WebpCompressionMode, GetQualityFactor(), GetTargetRes()), ImageFormatEnum.Avif => new ImageFormat.Avif(config.AvifCompressionMode, GetQualityFactor(), config.AvifBitDepth, GetTargetRes()), ImageFormatEnum.Jxl => new ImageFormat.Jxl(config.JxlCompressionMode, GetQualityFactor(), config.JxlEffort, GetTargetRes()), diff --git a/Iceshrimp.Backend/Core/Services/ImageProcessor.cs b/Iceshrimp.Backend/Core/Services/ImageProcessor.cs index 4b884bb8..a0bacd94 100644 --- a/Iceshrimp.Backend/Core/Services/ImageProcessor.cs +++ b/Iceshrimp.Backend/Core/Services/ImageProcessor.cs @@ -147,7 +147,7 @@ public class ImageProcessor [SetsRequiredMembers] public ProcessedImage(IImageInfo info, Stream original, DriveFileCreationRequest request) : this(info) { - var format = new ImageFormat.Keep(Path.GetExtension(request.Filename), request.MimeType); + var format = new ImageFormat.Keep(Path.GetExtension(request.Filename).TrimStart('.'), request.MimeType); RequestedFormats = new Dictionary>?> { [new ImageVersion(KeyEnum.Original, format)] = () => Task.FromResult(original)