exif for dates added

This commit is contained in:
2021-01-31 14:48:53 +11:00
parent a55505f3bb
commit da93c80d4a

View File

@@ -34,7 +34,7 @@ import glob
from PIL import Image, ImageOps
from pymediainfo import MediaInfo
import hashlib
#import exifread
import exifread
import base64
import numpy
import cv2
@@ -44,6 +44,7 @@ import io
import face_recognition
import re
DEBUG=1
# an Manager, which the Session will use for connection resources
@@ -473,6 +474,39 @@ def HandleAnyFSDeletions(job):
rm_cnt+=1
return rm_cnt
def GetDateFromFile(file, stat):
# try exif
try:
print(f"trying exif read of {file}")
f = open(file, 'rb')
tags = exifread.process_file(f)
date_str, time_str = str(tags["EXIF DateTimeOriginal"]).split(" ")
print(date_str)
year, month, day = date_str.split(":")
year=int(year)
month=int(month)
day=int(day)
print(year)
check = datetime( year, month, day )
print( f"check={check}" )
except:
# try parsing filename
try:
m=re.search( '(\d{4})(\d{2})(\d{2})', file)
year=int(m[1])
month=int(m[2])
day=int(m[3])
check2 = datetime( year, month, day )
print( f"check2={check2}" )
# give up and use file sys date
except:
year, month, day, _, _, _, _, _, _ = datetime.fromtimestamp(stat.st_ctime).timetuple()
c=date(year, month, day).isocalendar()
woy=c[1]
print(f"DEL ME: year={year}, month={month}, day={day}")
return year, month, day, woy
def JobImportDir(job):
JobProgressState( job, "In Progress" )
settings = session.query(Settings).first()
@@ -521,17 +555,8 @@ def JobImportDir(job):
else:
type_str = 'Unknown'
fsize = round(stat.st_size/(1024*1024))
m=re.search( '(\d{4})(\d{2})(\d{2})', fname)
if m:
year=int(m[1])
month=int(m[2])
day=int(m[3])
else:
year, month, day, _, _, _, _, _, _ = datetime.fromtimestamp(stat.st_ctime).timetuple()
print(f"year={year}, month={month}, day={day}")
c=date(year, month, day).isocalendar()
woy=c[1]
year, month, day, woy = GetDateFromFile(fname, stat)
e=AddFile( job, basename, type_str, fsize, dir, year, month, day, woy )
else:
e=session.query(Entry).filter(Entry.name==basename).first()