From ca33bb1efb6cbf9d998ee922253e9ba37f28bec2 Mon Sep 17 00:00:00 2001 From: "Patrik J. Braun" Date: Sat, 19 Jan 2019 10:07:06 +0100 Subject: [PATCH] fixing date parsing bug --- backend/model/threading/MetadataLoader.ts | 5 +++-- test/backend/unit/assets/old_photo.jpg | Bin 0 -> 2582 bytes test/backend/unit/assets/old_photo.json | 17 +++++++++++++++++ .../model/threading/MetaDataLoader.spec.ts | 7 +++++++ 4 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 test/backend/unit/assets/old_photo.jpg create mode 100644 test/backend/unit/assets/old_photo.json diff --git a/backend/model/threading/MetadataLoader.ts b/backend/model/threading/MetadataLoader.ts index dea09323..14a5eb9e 100644 --- a/backend/model/threading/MetadataLoader.ts +++ b/backend/model/threading/MetadataLoader.ts @@ -120,7 +120,7 @@ export class MetadataLoader { } if (exif.tags.CreateDate || exif.tags.DateTimeOriginal || exif.tags.ModifyDate) { - metadata.creationDate = exif.tags.CreateDate || exif.tags.DateTimeOriginal || exif.tags.ModifyDate; + metadata.creationDate = (exif.tags.CreateDate || exif.tags.DateTimeOriginal || exif.tags.ModifyDate) * 1000; } if (exif.tags.Orientation) { @@ -163,10 +163,11 @@ export class MetadataLoader { metadata.caption = iptcData.caption.replace(/\0/g, '').trim(); } metadata.keywords = iptcData.keywords || []; + metadata.creationDate = (iptcData.date_time ? iptcData.date_time.getTime() : metadata.creationDate); } catch (err) { - // Logger.debug(LOG_TAG, 'Error parsing iptc data', fullPath, err); + // Logger.debug(LOG_TAG, 'Error parsing iptc data', fullPath, err); } metadata.creationDate = metadata.creationDate || 0; diff --git a/test/backend/unit/assets/old_photo.jpg b/test/backend/unit/assets/old_photo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0f257df7eb707d784983b04ee4aff0a25b1aed78 GIT binary patch literal 2582 zcmeH{du&s66vxl+{%(68?O59t7;}%d8*ak|Z|}<3DrSyBVG9E{9m-53MaC>qlTCDk zKy*diB#^L+4_rnvHt-c6K?Ttm1w{oCqYT9{AKCB$@`oAX1C^wn-|cOC(fuL*XX3BD z_xI^9=bWDJx#ynPaBLJDwV|325JF%fejqj`teoEwSp`s62QvUb1RF^Q4oSjGBMzNi z$bG~G6nBCjAX#A18Q?{7Rg(9UBEtqF5WntQjCOAkRcANySuP`G6WyVovsjn9BEZLE z67=R*hZ<{ZLN$x(078*_ns1DBctT~0-_x{Y2_6B=S5l~Yr=PVs>63Tw}m}_ zbMP!}Zc}F}3V^C8vw})R(C_#7%YtfYP*K5y3nLXodlO2y1JRvHKG^L`W!zn8@DYG* z00R2)imEExXhI=(WE-F4FM3GahHw;mxMa+6jev~4sDQhuCC@2nG;vNvjZd;evm|_J zrY0CUVBIv)U<{^720M`Dq`gO5&vL-$2eha^k+WY>`iWtWS@d&>>T?hF(*%>zeoKP+ z;J~CrOulI#J;^Hu97Y`MkAbNM<1-wL{}*9xGZ?P}HXguk&ah!jO>8x>Y+`$g&*kWy zNn)|sC3I&C>&Tx*eVNEBCwjgUouO@R+?RWk`JsP_v7e0Zc)#qNKF@w9y3&q6SUU@P zc@%%C0uByeAAFuDkvOQ{oJ=`qFd|SBI}FA`fzu)D_A>f{;i8&K9|HVrh>Z%rb80zhbi4Z**zM-NVaJ34WAI_3V1{RKeJ6T{aRRS+fFh6ej^7!yi4o?0wC7J+PFLxp!*TwZ^bHKRT(_*&g+XU{G%f9~ExlN*kY z7nH7Oi%Rm8shQKVre9rHR6HXvt88|8MX-9_{Lq4hHMKY0+_?0XTbDK6v9ftp%bk(c z_pZ6`{`QWw>oz{L>EW*KM>cEQAARicCw4s9J21F=&r?r7^Xzjkzw+w7{jVK({f&3t zJ^bGL9~?P)Z0N)%pPu||_|(YQ>94=}_PaA@zdv{W#|uCG{L8NwfBT*3!YLD%l~nc@ zT~5@+@jT@Pri*axcu^;B@%pW`VWy^}HErJ!>5ie1)NunrYbINJ5Y_sDMq)F*%_DPKO&O>kJg3mZ|f6|92kj`_FgYS0~ { expect(Utils.clone(data)).to.be.deep.equal(expected); }); + + it('should load jpg 2', async () => { + const data = await MetadataLoader.loadPhotoMetadata(path.join(__dirname, '/../../assets/old_photo.jpg')); + const expected = require(path.join(__dirname, '/../../assets/old_photo.json')); + expect(Utils.clone(data)).to.be.deep.equal(expected); + }); + });