From 83ba5cdf44e4a74c7887ec277fd9afe1ae246c6b Mon Sep 17 00:00:00 2001 From: tamaina Date: Fri, 6 Jan 2023 13:18:22 +0000 Subject: [PATCH] :v: --- .../src/server/MediaProxyServerService.ts | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/packages/backend/src/server/MediaProxyServerService.ts b/packages/backend/src/server/MediaProxyServerService.ts index 4491a17545a7..5b76f15020be 100644 --- a/packages/backend/src/server/MediaProxyServerService.ts +++ b/packages/backend/src/server/MediaProxyServerService.ts @@ -79,10 +79,18 @@ export class MediaProxyServerService { const { mime, ext } = await this.fileInfoService.detectType(path); const isConvertibleImage = isMimeImage(mime, 'sharp-convertible-image'); + const isAnimationConvertibleImage = isMimeImage(mime, 'sharp-animation-convertible-image'); let image: IImage; if ('emoji' in request.query && isConvertibleImage) { - const data = await sharp(path, { animated: !('static' in request.query) }) + if (!isAnimationConvertibleImage && !('static' in request.query)) { + image = { + data: fs.readFileSync(path), + ext, + type: mime, + }; + } else { + const data = await sharp(path, { animated: !('static' in request.query) }) .resize({ height: 128, withoutEnlargement: true, @@ -90,11 +98,12 @@ export class MediaProxyServerService { .webp(webpDefault) .toBuffer(); - image = { - data, - ext: 'webp', - type: 'image/webp', - }; + image = { + data, + ext: 'webp', + type: 'image/webp', + }; + } } else if ('static' in request.query && isConvertibleImage) { image = await this.imageProcessingService.convertToWebp(path, 498, 280); } else if ('preview' in request.query && isConvertibleImage) {