fixed metadata extraction

This commit is contained in:
Abhinav-grd 2021-08-12 15:04:55 +05:30
parent 28b8773d6a
commit e82ba8439e
2 changed files with 18 additions and 8 deletions

View file

@ -12,7 +12,8 @@ export interface ParsedMetaDataJSON {
title?: string;
creationTime: number;
modificationTime: number;
location: Location;
latitude: number;
longitude: number;
}
export const NULL_LOCATION: Location = { latitude: null, longitude: null };
@ -21,7 +22,7 @@ const NULL_PARSED_METADATA_JSON: ParsedMetaDataJSON = {
title: null,
creationTime: null,
modificationTime: null,
location: NULL_LOCATION,
...NULL_LOCATION,
};
export async function extractMetatdata(
@ -78,6 +79,12 @@ export async function parseMetadataJSON(receivedFile: globalThis.File) {
) {
parsedMetaDataJSON.creationTime =
metadataJSON['photoTakenTime']['timestamp'] * 1000000;
} else if (
metadataJSON['creationTime'] &&
metadataJSON['creationTime']['timestamp']
) {
parsedMetaDataJSON.creationTime =
metadataJSON['creationTime']['timestamp'] * 1000000;
}
if (
metadataJSON['modificationTime'] &&
@ -101,7 +108,8 @@ export async function parseMetadataJSON(receivedFile: globalThis.File) {
locationData = metadataJSON['geoDataExif'];
}
if (locationData !== null) {
parsedMetaDataJSON.location = locationData;
parsedMetaDataJSON.latitude = locationData.latitude;
parsedMetaDataJSON.longitude = locationData.longitude;
}
return parsedMetaDataJSON;
} catch (e) {

View file

@ -117,17 +117,19 @@ class UploadService {
if (hasStaticThumbnail) {
extractedMetadata.hasStaticThumbnail = true;
}
const metadata: MetadataObject = {
...extractedMetadata,
...googleMetadata,
};
for (const [key, value] of Object.entries(googleMetadata)) {
if (!value) {
continue;
}
extractedMetadata[key] = value;
}
const filedata = await getFileData(reader, receivedFile);
return {
filedata,
thumbnail,
metadata,
metadata: extractedMetadata,
} as FileInMemory;
} catch (e) {
logError(e, 'error reading files');