Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 16 additions & 3 deletions exportiphoto.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ def close(self):
class iPhotoLibrary(object):
def __init__(self, albumDir, destDir, use_album=False, use_date=False,
use_faces=False, use_metadata=False, deconflict=False, quiet=False,
year_dir=False, import_missing=False, import_from_date=None, test=False,
year_dir=False, import_missing=False, import_from_date=None, export_from_date=None, test=False,
date_delimiter="-", ignore_time_delta=False):
self.use_album = use_album
self.use_date = use_date
Expand All @@ -75,6 +75,11 @@ def __init__(self, albumDir, destDir, use_album=False, use_date=False,
else:
self.import_from_date = None

if export_from_date:
self.export_from_date = datetime.strptime(export_from_date, "%Y-%m-%d")
else:
self.export_from_date = None

if self.import_missing:
self.build_import_list()

Expand Down Expand Up @@ -265,6 +270,8 @@ def walk(self, funcs):
if folderName == album_name:
self.import_albums.remove(ia)

if self.export_from_date and folderDate < self.export_from_date: continue

if folderDate and self.use_date:
date = '%(year)d%(delim)s%(month)02d%(delim)s%(day)02d' % {
'year': folderDate.year,
Expand Down Expand Up @@ -449,13 +456,13 @@ def build_import_list(self):
'''
if self.year_dir:
year_dir_list = os.listdir(self.dest_dir)

for year_dir in year_dir_list:
# if year_dir was specified, then only match on folders inside year folders
if not re.match("^[0-9]{4}$", year_dir): continue

# if import_from_date was specified, then skip folders where the year_dir is before the import_from_date.year
if self.import_from_date and int(year_dir) < self.import_from_date.year: continue

self.build_import_album_dirs(os.path.join(self.dest_dir, year_dir))
else:
self.build_import_album_dirs(self.dest_dir)
Expand All @@ -476,7 +483,7 @@ def build_import_album_dirs(self, base_dir):
if m:
folder_date = datetime.strptime(album_name, "%Y" + delim + "%m" + delim + "%d")
month, day, year = folder_date.strftime("%b %d %Y").split(" ")
album_names.append("%s %d, %s" %(month, int(day), year))
album_names.append("%s %d, %s" %(month, int(day), year))

# Don't import folders that are prior to the specified date
if not folder_date: continue
Expand Down Expand Up @@ -557,6 +564,11 @@ def error(msg):
help="only import missing folers if folder date occurs after (YYYY-MM-DD). Uses date in folder name."
)

option_parser.add_option("-p", "--export_from_date",
action="store", type="string", dest="export_from_date",
help="skip exporting events older than (YYYY-MM-DD)."
)

if pyexiv2:
option_parser.add_option("-m", "--metadata",
action="store_true", dest="metadata",
Expand Down Expand Up @@ -590,6 +602,7 @@ def error(msg):
year_dir=options.year_dir,
import_missing=options.import_missing,
import_from_date=options.import_from_date,
export_from_date=options.export_from_date,
test=options.test,
date_delimiter=options.date_delimiter,
ignore_time_delta=options.ignore_time_delta
Expand Down