67 lines
2.6 KiB
Python
67 lines
2.6 KiB
Python
|
import os, time, sys
|
||
|
from shutil import copy2
|
||
|
import filecmp
|
||
|
import pathlib
|
||
|
from PIL import Image, ExifTags
|
||
|
import pendulum
|
||
|
|
||
|
INGEST_DIR = pathlib.PureWindowsPath(r'\\192.168.1.4\photos\z_temp\external_backup\olympus\DCIM\100OLYMP')
|
||
|
PHOTO_LIBRARY = '//192.168.1.4/photos/photo_library/'
|
||
|
file_list = os.listdir(INGEST_DIR)
|
||
|
# print(file_list)
|
||
|
move_list = []
|
||
|
|
||
|
for item in file_list:
|
||
|
cur_file = pathlib.Path(os.path.join(INGEST_DIR, item))
|
||
|
# print(cur_file)
|
||
|
# print("last modified: %s" % time.ctime(os.path.getmtime(cur_file)))
|
||
|
# created_date = cur_file.stat().st_ctime
|
||
|
|
||
|
##Check for Exif Data
|
||
|
## if no exif data revert to file created time
|
||
|
try:
|
||
|
created_date = Image.open(cur_file)._getexif()[36867]
|
||
|
parsed_date = pendulum.parse(created_date)
|
||
|
except:
|
||
|
created_date = (time.ctime(os.path.getctime(cur_file)))
|
||
|
parsed_date = pendulum.parse(created_date, strict=False)
|
||
|
|
||
|
filename, file_extension = os.path.splitext(item)
|
||
|
filename = item ## Critical to the process
|
||
|
if not file_extension.lower() == ".nef" and not file_extension.lower() == ".jpg":
|
||
|
continue
|
||
|
|
||
|
# print(filename, file_extension)
|
||
|
# print(created_date)
|
||
|
# print()
|
||
|
|
||
|
# print(parsed_date)
|
||
|
year = parsed_date.year
|
||
|
month = str(parsed_date.month).zfill(2)
|
||
|
day = str(parsed_date.day).zfill(2)
|
||
|
destination = "%s%s/%s/%s/%s" % (PHOTO_LIBRARY, year, month, day, filename)
|
||
|
# print(destination)
|
||
|
print("We want to move %s to %s%s/%s/%s." % (filename, PHOTO_LIBRARY, year, month, day))
|
||
|
|
||
|
## check if the directory exists
|
||
|
if not os.path.isdir(os.path.join(PHOTO_LIBRARY, str(year))):
|
||
|
print("We couldn't find your directory")
|
||
|
os.makedirs(os.path.join(PHOTO_LIBRARY, year))
|
||
|
if not os.path.isdir(os.path.join(PHOTO_LIBRARY, str(year), str(month))):
|
||
|
print("We couldn't find your directory")
|
||
|
os.makedirs(os.path.join(PHOTO_LIBRARY, str(year), str(month)))
|
||
|
if not os.path.isdir(os.path.join(PHOTO_LIBRARY, str(year), str(month), str(day))):
|
||
|
print("We couldn't find your directory")
|
||
|
os.makedirs(os.path.join(PHOTO_LIBRARY, str(year), str(month), str(day)))
|
||
|
|
||
|
## We should be copying, creating a source and destination hash
|
||
|
## comparing the files and then deleting the source
|
||
|
print()
|
||
|
print("Copying %s to %s" % (cur_file, destination))
|
||
|
copy2(cur_file, destination)
|
||
|
if filecmp.cmp(cur_file, destination) == True:
|
||
|
print("%s and %s are a match. Time to delete %s" % (cur_file, destination, cur_file))
|
||
|
os.remove(cur_file)
|
||
|
|
||
|
### TODO:
|
||
|
### Find files with no extension and save them + directory to a file
|