Prune false positives for times picked from file names

This commit is contained in:
Manav Rathi 2024-07-29 15:57:04 +05:30
parent aad7300e4b
commit d116c5ccb1
No known key found for this signature in database
5 changed files with 21 additions and 16 deletions

View File

@ -4,12 +4,12 @@ import downloadManager from "@/new/photos/services/download";
import { EnteFile } from "@/new/photos/types/file";
import { detectFileTypeInfo } from "@/new/photos/utils/detect-type";
import { validateAndGetCreationUnixTimeInMicroSeconds } from "@ente/shared/time";
import { getParsedExifData } from "@ente/shared/utils/exif-old";
import type { FixOption } from "components/FixCreationTime";
import {
changeFileCreationTime,
updateExistingFilePubMetadata,
} from "utils/file";
import { getParsedExifData } from "./exif";
const EXIF_TIME_TAGS = [
"DateTimeOriginal",

View File

@ -31,9 +31,9 @@ import { DedicatedCryptoWorker } from "@ente/shared/crypto/internal/crypto.worke
import type { B64EncryptionResult } from "@ente/shared/crypto/internal/libsodium";
import { ENCRYPTION_CHUNK_SIZE } from "@ente/shared/crypto/internal/libsodium";
import { CustomError, handleUploadError } from "@ente/shared/error";
import { parseImageMetadata } from "@ente/shared/utils/exif-old";
import type { Remote } from "comlink";
import { addToCollection } from "services/collectionService";
import { parseImageMetadata } from "services/exif";
import {
PublicUploadProps,
type LivePhotoAssets,

View File

@ -1,10 +1,13 @@
import { isDevBuild } from "@/base/env";
import { nameAndExtension } from "@/base/file";
import log from "@/base/log";
import {
parseMetadataDate,
type ParsedMetadata,
type ParsedMetadataDate,
} from "@/media/file-metadata";
import { FileType } from "@/media/file-type";
import { parseImageMetadata } from "@ente/shared/utils/exif-old";
import ExifReader from "exifreader";
import type { EnteFile } from "../types/file";
import type { ParsedExtractedMetadata } from "../types/metadata";
@ -45,22 +48,23 @@ export const cmpNewLib = (
}
};
export const cmpNewLib2 = (enteFile: EnteFile, _exif: unknown) => {
export const cmpNewLib2 = async (
enteFile: EnteFile,
blob: Blob,
_exif: unknown,
) => {
const [, ext] = nameAndExtension(enteFile.metadata.title);
const oldLib = await parseImageMetadata(
new File([blob], enteFile.metadata.title),
{
fileType: FileType.image,
extension: ext ?? "",
},
);
// cast is fine here, this is just temporary debugging code.
const rawExif = _exif as RawExifTags;
const newLib = parseExif(rawExif);
const pem = {
location: {
latitude: enteFile.metadata.latitude,
longitude: enteFile.metadata.longitude,
},
creationTime: enteFile.metadata.creationTime,
// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
width: enteFile.w || null,
// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
height: enteFile.h || null,
};
cmpNewLib(pem, newLib);
cmpNewLib(oldLib, newLib);
};
/**

View File

@ -474,7 +474,8 @@ const index = async (
throw e;
}
if (originalImageBlob) cmpNewLib2(enteFile, exif);
if (originalImageBlob)
await cmpNewLib2(enteFile, originalImageBlob, exif);
log.debug(() => {
const ms = Date.now() - startTime;