diff --git a/src/pages/gallery/index.tsx b/src/pages/gallery/index.tsx index 9d620a10b..5aca5995f 100644 --- a/src/pages/gallery/index.tsx +++ b/src/pages/gallery/index.tsx @@ -139,7 +139,7 @@ export default function Gallery() { } = useDropzone({ noClick: true, noKeyboard: true, - accept: ['image/*', 'video/*', 'application/json'], + accept: ['image/*', 'video/*', '.json'], disabled: uploadInProgress, }); diff --git a/src/services/exportService.ts b/src/services/exportService.ts index 5e2c4a61b..eadac5873 100644 --- a/src/services/exportService.ts +++ b/src/services/exportService.ts @@ -1,5 +1,5 @@ import { retryPromise, runningInBrowser } from 'utils/common'; -import { getExportPendingFiles, getExportFailedFiles, getFilesUploadedAfterLastExport, getFileUID, dedupe } from 'utils/export'; +import { getExportPendingFiles, getExportFailedFiles, getFilesUploadedAfterLastExport, getFileUID, dedupe, getGoogleLikeMetadataFile } from 'utils/export'; import { logError } from 'utils/sentry'; import { getData, LS_KEYS } from 'utils/storage/localStorage'; import { Collection, getLocalCollections } from './collectionService'; @@ -258,7 +258,7 @@ class ExportService { this.ElectronAPIs.saveStreamToDisk(`${collectionPath}/${uid}`, fileStream); this.ElectronAPIs.saveFileToDisk( `${collectionPath}/${MetadataFolderName}/${uid}.json`, - JSON.stringify(file.metadata, null, 2), + getGoogleLikeMetadataFile(uid, file.metadata), ); } diff --git a/src/utils/export/index.ts b/src/utils/export/index.ts index 4aa551cca..ba2f936a3 100644 --- a/src/utils/export/index.ts +++ b/src/utils/export/index.ts @@ -1,5 +1,7 @@ import { ExportRecord } from 'services/exportService'; import { File } from 'services/fileService'; +import { MetadataObject } from 'services/uploadService'; +import { formatDate } from 'utils/file'; export const getFileUID = (file: File) => `${file.id}_${file.collectionID}_${file.updationTime}`; @@ -42,3 +44,21 @@ export const dedupe = (files: any[]) => { const dedupedArray = new Array(...fileSet); return dedupedArray; }; + +export const getGoogleLikeMetadataFile=(uid :string, metadata:MetadataObject)=>{ + return JSON.stringify({ + title: uid, + creationTime: { + timestamp: metadata.creationTime, + formatted: formatDate(metadata.creationTime), + }, + modificationTime: { + timestamp: metadata.modificationTime, + formatted: formatDate(metadata.modificationTime), + }, + geoData: { + latitude: metadata.latitude, + longitude: metadata.longitude, + }, + }, null, 2); +};