From 08621a5873373652908994f365405e5fdef1a9bf Mon Sep 17 00:00:00 2001 From: Abdullah Atta Date: Fri, 26 Jan 2024 23:38:19 +0500 Subject: [PATCH] core: try to preserve mime type on backup restore --- packages/core/src/database/backup.js | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/packages/core/src/database/backup.js b/packages/core/src/database/backup.js index 4835619fb..39fe4a3f3 100644 --- a/packages/core/src/database/backup.js +++ b/packages/core/src/database/backup.js @@ -274,11 +274,24 @@ export default class Backup { if (itemType === "attachment" && item.metadata && item.metadata.hash) { const attachment = this._db.attachments.attachment(item.metadata.hash); if (attachment) { + const isNewGeneric = + item.metadata.type === "application/octet-stream"; + const isOldGeneric = + attachment.metadata.type === "application/octet-stream"; item = { ...attachment, metadata: { ...attachment.metadata, - type: item.metadata.type || attachment.metadata.type + type: + // we keep whichever mime type is more specific + isNewGeneric && !isOldGeneric + ? attachment.metadata.type + : item.metadata.type, + filename: + // we keep the filename based on which item's mime type we kept + isNewGeneric && !isOldGeneric + ? attachment.metadata.filename + : item.metadata.filename }, noteIds: setManipulator.union(attachment.noteIds, item.noteIds) };