upgradeSchema: New keepOnDisk option, used for edits
This commit is contained in:
parent
661727c290
commit
d1aa47544b
4 changed files with 27 additions and 17 deletions
22
ts/signal.ts
22
ts/signal.ts
|
@ -111,7 +111,7 @@ type MigrationsModuleType = {
|
|||
}>;
|
||||
upgradeMessageSchema: (
|
||||
attributes: MessageAttributesType,
|
||||
options?: { maxVersion?: number }
|
||||
options?: { maxVersion?: number; keepOnDisk?: boolean }
|
||||
) => Promise<MessageAttributesType>;
|
||||
writeMessageAttachments: (
|
||||
message: MessageAttributesType
|
||||
|
@ -266,24 +266,26 @@ export function initializeMigrations({
|
|||
}),
|
||||
upgradeMessageSchema: (
|
||||
message: MessageAttributesType,
|
||||
options: { maxVersion?: number } = {}
|
||||
options: { maxVersion?: number; keepOnDisk?: boolean } = {}
|
||||
) => {
|
||||
const { maxVersion } = options;
|
||||
const { maxVersion, keepOnDisk } = options;
|
||||
|
||||
return MessageType.upgradeSchema(message, {
|
||||
writeNewAttachmentData,
|
||||
getRegionCode,
|
||||
deleteOnDisk,
|
||||
getAbsoluteAttachmentPath,
|
||||
makeObjectUrl,
|
||||
revokeObjectUrl,
|
||||
getAbsoluteStickerPath,
|
||||
getImageDimensions,
|
||||
getRegionCode,
|
||||
makeImageThumbnail,
|
||||
makeObjectUrl,
|
||||
makeVideoScreenshot,
|
||||
revokeObjectUrl,
|
||||
writeNewAttachmentData,
|
||||
writeNewStickerData,
|
||||
|
||||
keepOnDisk,
|
||||
logger,
|
||||
maxVersion,
|
||||
getAbsoluteStickerPath,
|
||||
writeNewStickerData,
|
||||
deleteOnDisk,
|
||||
});
|
||||
},
|
||||
writeMessageAttachments: MessageType.createAttachmentDataWriter({
|
||||
|
|
|
@ -52,6 +52,7 @@ export type ContextType = {
|
|||
height: number;
|
||||
}>;
|
||||
getRegionCode: () => string | undefined;
|
||||
keepOnDisk?: boolean;
|
||||
logger: LoggerType;
|
||||
makeImageThumbnail: (params: {
|
||||
size: number;
|
||||
|
@ -380,14 +381,19 @@ const toVersion1 = _withSchemaVersion({
|
|||
context,
|
||||
options
|
||||
): Promise<AttachmentType> => {
|
||||
const { deleteOnDisk } = context;
|
||||
const { deleteOnDisk, keepOnDisk } = context;
|
||||
const rotatedAttachment = await autoOrientJPEG(
|
||||
attachment,
|
||||
context,
|
||||
options
|
||||
);
|
||||
|
||||
if (attachment.path) {
|
||||
if (
|
||||
!keepOnDisk &&
|
||||
attachment !== rotatedAttachment &&
|
||||
rotatedAttachment.data &&
|
||||
attachment.path
|
||||
) {
|
||||
await deleteOnDisk(attachment.path);
|
||||
}
|
||||
|
||||
|
@ -500,6 +506,7 @@ export const upgradeSchema = async (
|
|||
makeVideoScreenshot,
|
||||
writeNewStickerData,
|
||||
deleteOnDisk,
|
||||
keepOnDisk,
|
||||
logger,
|
||||
maxVersion = CURRENT_SCHEMA_VERSION,
|
||||
}: ContextType
|
||||
|
@ -559,6 +566,7 @@ export const upgradeSchema = async (
|
|||
getImageDimensions,
|
||||
makeImageThumbnail,
|
||||
makeVideoScreenshot,
|
||||
keepOnDisk,
|
||||
logger,
|
||||
getAbsoluteStickerPath,
|
||||
getRegionCode,
|
||||
|
@ -640,7 +648,7 @@ export const processNewAttachment = async (
|
|||
logger,
|
||||
});
|
||||
|
||||
if (attachment.path) {
|
||||
if (rotatedAttachment !== attachment && attachment.path) {
|
||||
await deleteOnDisk(attachment.path);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
// SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
import type { MessageModel } from '../models/messages';
|
||||
import * as log from '../logging/log';
|
||||
import { getEnvironment, Environment } from '../environment';
|
||||
|
||||
export function getMessageModelLogger(model: MessageModel): MessageModel {
|
||||
|
@ -37,8 +36,6 @@ export function getMessageModelLogger(model: MessageModel): MessageModel {
|
|||
|
||||
// Disallowed set of methods & attributes
|
||||
|
||||
log.warn(`MessageModelLogger: model.${property}`, new Error().stack);
|
||||
|
||||
if (typeof target[property] === 'function') {
|
||||
return target[property].bind(target);
|
||||
}
|
||||
|
|
|
@ -134,7 +134,10 @@ export async function handleEditMessage(
|
|||
}
|
||||
|
||||
const upgradedEditedMessageData =
|
||||
await window.Signal.Migrations.upgradeMessageSchema(editAttributes.message);
|
||||
await window.Signal.Migrations.upgradeMessageSchema(
|
||||
editAttributes.message,
|
||||
{ keepOnDisk: true }
|
||||
);
|
||||
|
||||
// Copies over the attachments from the main message if they're the same
|
||||
// and they have already been downloaded.
|
||||
|
|
Loading…
Reference in a new issue