simply filePaths handling

This commit is contained in:
Abhinav 2022-06-24 11:30:15 +05:30
parent b0b54661c2
commit ff04c9c89c
4 changed files with 21 additions and 28 deletions

View file

@ -1,7 +1,6 @@
import { FILE_TYPE } from 'constants/file';
import { LIVE_PHOTO_ASSET_SIZE_LIMIT } from 'constants/upload';
import { encodeMotionPhoto } from 'services/motionPhotoService';
import { FileMagicMetadata } from 'types/file';
import {
ElectronFile,
FileTypeInfo,
@ -62,12 +61,8 @@ export function getLivePhotoMetadata(
};
}
export function getLivePhotoMagicMetadata(
imageFile: FileWithCollection
): FileMagicMetadata['data'] {
return {
filePaths: [getLivePhotoName((imageFile.file as any).path as string)],
};
export function getLivePhotoFilePath(imageAsset: Asset): string {
return getLivePhotoName((imageAsset.file as any).path);
}
export function getLivePhotoSize(livePhotoAssets: LivePhotoAssets) {
@ -198,12 +193,11 @@ export function clusterLivePhotoFiles(mediaFiles: FileWithCollection[]) {
imageAsset.metadata,
videoAsset.metadata
);
const livePhotoMagicMetadata: FileMagicMetadata['data'] =
getLivePhotoMagicMetadata(firstMediaFile);
const livePhotoPath = getLivePhotoFilePath(imageAsset);
uploadService.setFileMetadataAndFileTypeInfo(livePhotoLocalID, {
fileTypeInfo: { ...livePhotoFileTypeInfo },
metadata: { ...livePhotoMetadata },
magicMetadata: { ...livePhotoMagicMetadata },
filePath: livePhotoPath,
});
index += 2;
} else {

View file

@ -6,7 +6,7 @@ import {
sortFiles,
preservePhotoswipeProps,
decryptFile,
changeFilePaths,
appendFilePath,
} from 'utils/file';
import { logError } from 'utils/sentry';
import { getMetadataJSONMapKey, parseMetadataJSON } from './metadataService';
@ -20,7 +20,7 @@ import UIService from './uiService';
import UploadService from './uploadService';
import { CustomError } from 'utils/error';
import { Collection } from 'types/collection';
import { EnteFile, FileMagicMetadata } from 'types/file';
import { EnteFile } from 'types/file';
import {
FileWithCollection,
MetadataAndFileTypeInfo,
@ -230,7 +230,7 @@ class UploadManager {
UIService.reset(mediaFiles.length);
for (const { file, localID, collectionID } of mediaFiles) {
try {
const { fileTypeInfo, metadata, magicMetadata } =
const { fileTypeInfo, metadata, filePath } =
await (async () => {
if (file.size >= MAX_FILE_SIZE_SUPPORTED) {
logUploadInfo(
@ -260,10 +260,8 @@ class UploadManager {
collectionID,
fileTypeInfo
)) || null;
const magicMetadata = {
filePaths: [(file as any).path as string],
} as FileMagicMetadata['data'];
return { fileTypeInfo, metadata, magicMetadata };
const filePath = (file as any).path as string;
return { fileTypeInfo, metadata, filePath };
})();
logUploadInfo(
@ -274,7 +272,7 @@ class UploadManager {
this.metadataAndFileTypeInfoMap.set(localID, {
fileTypeInfo: fileTypeInfo && { ...fileTypeInfo },
metadata: metadata && { ...metadata },
magicMetadata: magicMetadata && { ...magicMetadata },
filePath: filePath,
});
UIService.increaseFileUploaded();
} catch (e) {
@ -341,14 +339,15 @@ class UploadManager {
this.existingFiles,
fileWithCollection
);
const filePaths = UploadService.getFileMetadataAndFileTypeInfo(
const filePath = UploadService.getFileMetadataAndFileTypeInfo(
fileWithCollection.localID
).magicMetadata.filePaths;
await changeFilePaths(
).filePath;
await appendFilePath(
fileUploadResult,
uploadedFile,
fileWithCollection.collection.key,
filePaths
filePath
);
UIService.moveFileToResultList(
fileWithCollection.localID,

View file

@ -1,6 +1,6 @@
import { FILE_TYPE } from 'constants/file';
import { Collection } from 'types/collection';
import { fileAttribute, FileMagicMetadata } from 'types/file';
import { fileAttribute } from 'types/file';
export interface DataStream {
stream: ReadableStream<Uint8Array>;
@ -92,7 +92,7 @@ export interface FileWithCollection extends UploadAsset {
export interface MetadataAndFileTypeInfo {
metadata: Metadata;
fileTypeInfo: FileTypeInfo;
magicMetadata: FileMagicMetadata['data'];
filePath: string;
}
export type MetadataAndFileTypeInfoMap = Map<number, MetadataAndFileTypeInfo>;

View file

@ -454,23 +454,23 @@ export async function changeFileName(file: EnteFile, editedName: string) {
return file;
}
export const changeFilePaths = async (
export const appendFilePath = async (
fileUploadResult: UPLOAD_RESULT,
file: EnteFile,
collectionKey: string,
filePaths: string[]
filePath: string
) => {
if (
fileUploadResult === UPLOAD_RESULT.UPLOADED ||
fileUploadResult === UPLOAD_RESULT.ALREADY_UPLOADED ||
fileUploadResult === UPLOAD_RESULT.UPLOADED_WITH_STATIC_THUMBNAIL
) {
let mergedMetadataFilePaths = [...filePaths];
let mergedMetadataFilePaths = [filePath];
if (file.magicMetadata?.data.filePaths?.length > 0) {
mergedMetadataFilePaths = [
...new Set([
...file.magicMetadata.data.filePaths,
...filePaths,
...mergedMetadataFilePaths,
]),
];
}