add live photo removal logic
This commit is contained in:
parent
915366f82c
commit
c111c00df1
|
@ -479,6 +479,46 @@ class ExportService {
|
|||
}
|
||||
try {
|
||||
const filePath = fileIDPathMap.get(fileUID);
|
||||
// check if filepath is for live photo
|
||||
// livePhoto has the path in format: `JSON.stringify({image,video})`
|
||||
const isLivePhotoPath =
|
||||
filePath.startsWith('{') && filePath.endsWith('}');
|
||||
|
||||
if (isLivePhotoPath) {
|
||||
const { image: imagePath, video: videoPath } =
|
||||
JSON.parse(filePath);
|
||||
await this.electronAPIs.moveFile(
|
||||
imagePath,
|
||||
getTrashedFilePath(exportDir, imagePath)
|
||||
);
|
||||
|
||||
addLocalLog(
|
||||
() =>
|
||||
`moving image file ${imagePath} to trash folder`
|
||||
);
|
||||
const imageMetadataFilePath =
|
||||
getMetadataFilePath(imagePath);
|
||||
|
||||
await this.electronAPIs.moveFile(
|
||||
imageMetadataFilePath,
|
||||
getTrashedFilePath(exportDir, imageMetadataFilePath)
|
||||
);
|
||||
addLocalLog(
|
||||
() =>
|
||||
`moving video file ${videoPath} to trash folder`
|
||||
);
|
||||
await this.electronAPIs.moveFile(
|
||||
videoPath,
|
||||
getTrashedFilePath(exportDir, videoPath)
|
||||
);
|
||||
const videoMetadataFilePath =
|
||||
getMetadataFilePath(videoPath);
|
||||
await this.electronAPIs.moveFile(
|
||||
videoMetadataFilePath,
|
||||
getTrashedFilePath(exportDir, videoMetadataFilePath)
|
||||
);
|
||||
await this.removeFileExportedRecord(exportDir, fileUID);
|
||||
} else {
|
||||
await this.electronAPIs.moveFile(
|
||||
filePath,
|
||||
getTrashedFilePath(exportDir, filePath)
|
||||
|
@ -489,6 +529,7 @@ class ExportService {
|
|||
getTrashedFilePath(exportDir, metadataFilePath)
|
||||
);
|
||||
await this.removeFileExportedRecord(exportDir, fileUID);
|
||||
}
|
||||
success++;
|
||||
} catch (e) {
|
||||
failed++;
|
||||
|
@ -772,7 +813,10 @@ class ExportService {
|
|||
const imageSavePath = getFileSavePath(collectionPath, imageSaveName);
|
||||
const videoSavePath = getFileSavePath(collectionPath, videoSaveName);
|
||||
|
||||
return [imageSavePath, videoSavePath].join('-');
|
||||
return JSON.stringify({
|
||||
image: imageSavePath,
|
||||
video: videoSavePath,
|
||||
});
|
||||
}
|
||||
|
||||
private async saveMediaFile(
|
||||
|
|
|
@ -13,7 +13,6 @@ import { splitFilenameAndExtension } from 'utils/file';
|
|||
import { ENTE_METADATA_FOLDER, ENTE_TRASH_FOLDER } from 'constants/export';
|
||||
import sanitize from 'sanitize-filename';
|
||||
import { formatDateTimeShort } from 'utils/time/format';
|
||||
import { addLocalLog } from 'utils/logging';
|
||||
|
||||
export const getExportRecordFileUID = (file: EnteFile) =>
|
||||
`${file.id}_${file.collectionID}_${file.updationTime}`;
|
||||
|
@ -89,14 +88,6 @@ export const getDeletedExportedCollections = (
|
|||
const presentCollections = new Set(
|
||||
collections.map((collection) => collection.id)
|
||||
);
|
||||
addLocalLog(
|
||||
() => `
|
||||
presentCollections: ${collections.map((c) => c.id)}
|
||||
exportRecord?.exportedCollectionPaths: ${JSON.stringify(
|
||||
exportRecord?.exportedCollectionPaths
|
||||
)}
|
||||
`
|
||||
);
|
||||
if (!exportRecord?.exportedCollectionPaths) {
|
||||
return [];
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue