From 414e269587f9222d3abb794b94b5015af465db9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alo=C3=AFs=20Micard?= Date: Thu, 14 Nov 2024 17:34:56 +0100 Subject: [PATCH] Rework to provide directory instead of file --- .gitignore | 1 + docker-compose.yml | 2 ++ exif_database/__main__.py | 18 +++++++++++++----- .../__pycache__/__main__.cpython-311.pyc | Bin 1580 -> 0 bytes 4 files changed, 16 insertions(+), 5 deletions(-) create mode 100644 .gitignore delete mode 100644 exif_database/__pycache__/__main__.cpython-311.pyc diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0d20b64 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*.pyc diff --git a/docker-compose.yml b/docker-compose.yml index 7119e47..a5687c3 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,6 +2,8 @@ services: mongo: image: mongo:latest restart: always + ports: + - "27017:27017" environment: MONGO_INITDB_ROOT_USERNAME: root MONGO_INITDB_ROOT_PASSWORD: example diff --git a/exif_database/__main__.py b/exif_database/__main__.py index 9003267..d3cd972 100644 --- a/exif_database/__main__.py +++ b/exif_database/__main__.py @@ -2,6 +2,7 @@ import hashlib import os import subprocess import sys +from pathlib import Path from pymongo import MongoClient @@ -28,11 +29,18 @@ if __name__ == '__main__': database = mongo.exif_database collection = database.pictures - picture_metadata = _execute_exiftool(sys.argv[1]) + pictures_metadata = [] - # Append MongoDB identifier - picture_metadata['_id'] = hashlib.sha256(sys.argv[1].encode('utf-8')).hexdigest() - picture_metadata['path'] = sys.argv[1] + for file in Path(sys.argv[1]).rglob("*.ARW"): + filename = os.fsdecode(file) + print(filename) + + picture_metadata = _execute_exiftool(filename) + pictures_metadata.append(picture_metadata) + + # Append MongoDB identifier + picture_metadata['_id'] = hashlib.sha1(filename.lower().encode('utf-8')).hexdigest() + picture_metadata['path'] = sys.argv[1] # Insert into MongoDB - collection.insert_one(picture_metadata) + collection.insert_many(pictures_metadata) diff --git a/exif_database/__pycache__/__main__.cpython-311.pyc b/exif_database/__pycache__/__main__.cpython-311.pyc deleted file mode 100644 index a44da08237ba1b2f744d1aa4d3a8858ee62e10ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1580 zcma)5O=ufO6rSCkl~%H4Wb8_|)hdo5PDLXdT5L)QO-x*{4>bW>A-IHPtr<(J=#SY^ zDkn1N(1Q;-m=LfJKIr7SwGKY^SW2NiYQ=)ZK)}#bZYu7{r_8Lfs#OSdcK7|vd+(d~ zGy7vG6a;+LKUvJYPyqN#DBe=v3zxGJ00#g8B;~0H;8g9Oxm&cKR5N%Lv40(Rn z`7u{c`x{t8+Fh=F=v;0O2s_Vm7;A(067S5q`z3;J1>zdh%tA)rHuISI2&NTMO!q70 zcF_;sZE*R>?JT`!%k^a>)j)=K7s*ZKn0ud!2zTvDCfJp0QqJwN*lP4`J&zt8tZ*4T zv38Z3(ty`}JQ+cx9&^0YKISg0@x6cN)$s0v7vl24GioxAxi;hf6Vvbw0KQiSaU1;` zbln&Ekv5pKn9xgFlh;8az=wdV<~A*r@*4@6jiik-9|YD*6%#S~I0GM_~e595Y%-lTc6h%KhNGG~;SWv1p!-($l31efzh z8YfgDCc>k+XGo->7ce!DK@A2)JX6aCp_V0jIxW`K>U_$=#F|eNjGvasb|pXma3`HL zNZ}zV<#3u>^8zO+Ft!W}yPDqDbiH7hMO~jO@32uFS8=*RG3UJokSTtS=(F`RCw1^9 zIR0|36Byfn+|uHmXsi<&?fT)6?{C1#KZ4XBbcex5(fYR+;j!1j^YE>9_?8{M?SyZ4 zfvl#a9^HeT@c2RSRq*hOhGd6lobb$^+F4%x^XBg>f2{qsW-o6z%Nu*4eSEm|I(txj zRkS0sPGt5xa;F`+V@Kwk$lQ5ku^m}FvwnGCNA5e3`?j{!(v~iUCR%Xfl4lE;<`qZ8 z&;MMl(Cy@xOwmomVA-JAM2PvbhLz2mTO=d`6l;f1j!%X`WTvTGy+A1%1+41~8YJ_K zh0EL|E<}GaJ}YZ{zOcxAxR@>>%mP_lMP>$Dl#h#;MfwvUF^*5fPjRK)EtF6tkH03L zaaG(R%i*M}NRre6BX#%bfYFxsc0jQ1K3!i(nrtXtz}X3O*?-A2fWv#w+sb51ne2{$ zi9{><>B(4g;_PNKW=9vC=t2vQcYWYS@-TB$JXvo(J~Nu%ohR?LllOl0+sPFtxnjpx zo%rf`e7zlCx8o@%p5ih4DI3N*H)f8iC(_XivGK@;A78*g{hL;BirX9*Yk6-s2H+IW Hz^(cn$xdx&