mirror of
				https://github.com/immich-app/immich.git
				synced 2025-11-04 03:27:09 -05: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
					
				@ -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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user