diff --git a/jpgSorter.py b/jpgSorter.py index 3ef84d2..679dd05 100644 --- a/jpgSorter.py +++ b/jpgSorter.py @@ -4,7 +4,6 @@ from time import localtime, strftime, strptime, mktime import shutil import exifread -minEventDelta = 60 * 60 * 24 * 4 # 4 days in seconds unknownDateFolderName = "date-unknown" def getMinimumCreationTime(exif_data): @@ -69,7 +68,8 @@ def createUnknownDateFolder(destinationRoot): path = os.path.join(destinationRoot, unknownDateFolderName) createPath(path) -def writeImages(images, destinationRoot, splitByMonth=False): +def writeImages(images, destinationRoot, minEventDeltaDays, splitByMonth=False): + minEventDelta = minEventDeltaDays * 60 * 60 * 24 # convert in seconds sortedImages = sorted(images) previousTime = None eventNumber = 0 @@ -117,10 +117,10 @@ def writeImages(images, destinationRoot, splitByMonth=False): os.remove(imageTuple[1]) -def postprocessImages(imageDirectory, splitByMonth): +def postprocessImages(imageDirectory, minEventDeltaDays, splitByMonth): images = [] for root, dirs, files in os.walk(imageDirectory): for file in files: postprocessImage(images, imageDirectory, file) - writeImages(images, imageDirectory, splitByMonth) + writeImages(images, imageDirectory, minEventDeltaDays, splitByMonth) diff --git a/recovery.py b/recovery.py index d4672af..bf88598 100755 --- a/recovery.py +++ b/recovery.py @@ -56,6 +56,7 @@ def get_args(): parser.add_argument('-n', '--max-per-dir', type=int, default=500, required=False, help='maximum number of files per directory') parser.add_argument('-m', '--split-months', action='store_true', required=False, help='split JPEG files not only by year but by month as well') parser.add_argument('-k', '--keep_filename', action='store_true', required=False, help='keeps the original filenames when copying') + parser.add_argument('-d', '--min-event-delta', type=int, default=4, required=False, help='minimum delta in days between two days') return parser.parse_args() @@ -74,6 +75,7 @@ destination = args.destination maxNumberOfFilesPerFolder = args.max_per_dir splitMonths = args.split_months keepFilename = args.keep_filename +minEventDeltaDays = args.min_event_delta print("Reading from source '%s', writing to destination '%s' (max %i files per directory, splitting by year %s)." % (source, destination, maxNumberOfFilesPerFolder, splitMonths and "and month" or "only")) @@ -118,7 +120,7 @@ for root, dirs, files in os.walk(source, topdown=False): log(str(fileCounter) + " / " + totalAmountToCopy + " processed.") log("start special file treatment") -jpgSorter.postprocessImages(os.path.join(destination, "JPG"), splitMonths) +jpgSorter.postprocessImages(os.path.join(destination, "JPG"), minEventDeltaDays, splitMonths) log("assure max file per folder number") numberOfFilesPerFolderLimiter.limitFilesPerFolder(destination, maxNumberOfFilesPerFolder)