if file has edited Time and is jpeg then update the exif ModifyDate with the edited time

This commit is contained in:
Abhinav 2021-11-11 11:28:47 +05:30
parent e6056f0ea3
commit 2636568724
2 changed files with 19 additions and 1 deletions

View file

@ -23,9 +23,13 @@ import { decodeMotionPhoto } from './motionPhotoService';
import {
fileNameWithoutExtension,
generateStreamFromArrayBuffer,
getFileExtension,
mergeMetadata,
TYPE_JPEG,
TYPE_JPG,
} from 'utils/file';
import { User } from './userService';
import { updateFileModifyDateInEXIF } from './upload/exifService';
export interface ExportProgress {
current: number;
@ -344,9 +348,21 @@ class ExportService {
file.metadata.title,
usedFileNamesInCollection
);
const fileStream = await retryAsyncFunction(() =>
let fileStream = await retryAsyncFunction(() =>
downloadManager.downloadFile(file)
);
const fileType = getFileExtension(file.metadata.title);
if (
file.pubMagicMetadata?.data.editedTime &&
(fileType === TYPE_JPEG || fileType === TYPE_JPG)
) {
const fileBlob = await new Response(fileStream).blob();
const updatedFileBlob = await updateFileModifyDateInEXIF(
fileBlob,
new Date(file.pubMagicMetadata.data.editedTime / 1000)
);
fileStream = updatedFileBlob.stream();
}
if (file.metadata.fileType === FILE_TYPE.LIVE_PHOTO) {
this.exportMotionPhoto(fileStream, file, collectionPath);
} else {

View file

@ -19,6 +19,8 @@ import { getData, LS_KEYS } from 'utils/storage/localStorage';
export const TYPE_HEIC = 'heic';
export const TYPE_HEIF = 'heif';
export const TYPE_JPEG = 'jpeg';
export const TYPE_JPG = 'jpg';
const UNSUPPORTED_FORMATS = ['flv', 'mkv', '3gp', 'avi', 'wmv'];
export function downloadAsFile(filename: string, content: string) {