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

View file

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

View file

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

View file

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