feat(server): read additional lens exif tags (#17125)

* fix(server): read additional lens exif tags

* Update order of read tags

* Fix e2e test

* Fix e2e test

* Fix e2e test

* Fix e2e test

* Update test

* Filter unknown lens exif data

* Formatting fixes
This commit is contained in:
Snowknight26
2025-04-10 12:02:41 -05:00
committed by GitHub
parent e3995fb5f4
commit 7fcab4b251
3 changed files with 57 additions and 11 deletions
+14 -1
View File
@@ -76,6 +76,19 @@ const validateRange = (value: number | undefined, min: number, max: number): Non
return val;
};
const getLensModel = (exifTags: ImmichTags): string | null => {
const lensModel = String(
exifTags.LensID ?? exifTags.LensType ?? exifTags.LensSpec ?? exifTags.LensModel ?? '',
).trim();
if (lensModel === '----') {
return null;
}
if (lensModel.startsWith('Unknown')) {
return null;
}
return lensModel || null;
};
type ImmichTagsWithFaces = ImmichTags & { RegionInfo: NonNullable<ImmichTags['RegionInfo']> };
type Dates = {
@@ -228,7 +241,7 @@ export class MetadataService extends BaseService {
fps: validate(Number.parseFloat(exifTags.VideoFrameRate!)),
iso: validate(exifTags.ISO) as number,
exposureTime: exifTags.ExposureTime ?? null,
lensModel: exifTags.LensModel ?? null,
lensModel: getLensModel(exifTags),
fNumber: validate(exifTags.FNumber),
focalLength: validate(exifTags.FocalLength),