mirror of
https://github.com/immich-app/immich.git
synced 2024-12-28 06:31:58 +00:00
fix(server): fix modify date extraction (#12658)
* fix(server): fix modify date extraction * add unit test
This commit is contained in:
parent
f22338f36f
commit
e73dc3dc72
2 changed files with 18 additions and 1 deletions
|
@ -1095,6 +1095,18 @@ describe(MetadataService.name, () => {
|
||||||
expect(personMock.updateAll).toHaveBeenCalledWith([]);
|
expect(personMock.updateAll).toHaveBeenCalledWith([]);
|
||||||
expect(jobMock.queueAll).toHaveBeenCalledWith([]);
|
expect(jobMock.queueAll).toHaveBeenCalledWith([]);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should handle invalid modify date', async () => {
|
||||||
|
assetMock.getByIds.mockResolvedValue([assetStub.image]);
|
||||||
|
metadataMock.readTags.mockResolvedValue({ ModifyDate: '00:00:00.000' });
|
||||||
|
|
||||||
|
await sut.handleMetadataExtraction({ id: assetStub.image.id });
|
||||||
|
expect(assetMock.upsertExif).toHaveBeenCalledWith(
|
||||||
|
expect.objectContaining({
|
||||||
|
modifyDate: expect.any(Date),
|
||||||
|
}),
|
||||||
|
);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('handleQueueSidecar', () => {
|
describe('handleQueueSidecar', () => {
|
||||||
|
|
|
@ -629,11 +629,16 @@ export class MetadataService {
|
||||||
this.logger.debug(`Asset ${asset.id} local time is offset by ${offsetMinutes} minutes`);
|
this.logger.debug(`Asset ${asset.id} local time is offset by ${offsetMinutes} minutes`);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let modifyDate = asset.fileModifiedAt;
|
||||||
|
try {
|
||||||
|
modifyDate = (exifTags.ModifyDate as ExifDateTime)?.toDate() ?? modifyDate;
|
||||||
|
} catch {}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
dateTimeOriginal,
|
dateTimeOriginal,
|
||||||
timeZone,
|
timeZone,
|
||||||
localDateTime,
|
localDateTime,
|
||||||
modifyDate: (exifTags.ModifyDate as ExifDateTime)?.toDate() ?? asset.fileModifiedAt,
|
modifyDate,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue