Don't transcode incoming attachments

This commit is contained in:
Fedor Indutny 2021-07-20 12:31:23 -07:00 committed by GitHub
parent 183db8a074
commit e534dd64f2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 18 additions and 4 deletions

View File

@ -458,7 +458,11 @@ exports.processNewAttachment = async (
throw new TypeError('context.logger is required');
}
const rotatedAttachment = await Attachment.autoOrientJPEG(attachment);
const rotatedAttachment = await Attachment.autoOrientJPEG(
attachment,
undefined,
{ isIncoming: true }
);
const onDiskAttachment = await Attachment.migrateDataToFileSystem(
rotatedAttachment,
{ writeNewAttachmentData }

View File

@ -180,8 +180,18 @@ export function isValid(
export async function autoOrientJPEG(
attachment: AttachmentType,
_: unknown,
message?: { sendHQImages?: boolean }
{
sendHQImages = false,
isIncoming = false,
}: {
sendHQImages?: boolean;
isIncoming?: boolean;
} = {}
): Promise<AttachmentType> {
if (isIncoming && !MIME.isJPEG(attachment.contentType)) {
return attachment;
}
if (!canBeTranscoded(attachment)) {
return attachment;
}
@ -197,7 +207,7 @@ export async function autoOrientJPEG(
);
const xcodedDataBlob = await scaleImageToLevel(
dataBlob,
message ? message.sendHQImages : false
sendHQImages || isIncoming
);
const xcodedDataArrayBuffer = await blobToArrayBuffer(xcodedDataBlob);

View File

@ -3702,7 +3702,7 @@ Whisper.ConversationView = Whisper.View.extend({
}
},
async sendStickerMessage(options: any = {}) {
async sendStickerMessage(options: { packId: string; stickerId: number }) {
const { model }: { model: ConversationModel } = this;
try {