diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..55d1935 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.idea/ +*.ipr diff --git a/README.md b/README.md index 5e96ea3..23ae75d 100644 --- a/README.md +++ b/README.md @@ -74,6 +74,9 @@ Usage only import missing folers if folder date occurs after (YYYY-MM-DD). Uses date in folder name. -t, --test dont actually copy files or import folders + -s, --stop_on_not_found_image + stop if image not found. + 2. There is no step 2 diff --git a/exportiphoto.py b/exportiphoto.py index 647774b..587a78c 100644 --- a/exportiphoto.py +++ b/exportiphoto.py @@ -49,7 +49,7 @@ 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, - date_delimiter="-", ignore_time_delta=False, originals=False): + date_delimiter="-", ignore_time_delta=False, originals=False, stop_on_not_found_image=False): self.use_album = use_album self.use_date = use_date self.use_faces = use_faces @@ -70,7 +70,7 @@ def __init__(self, albumDir, destDir, use_album=False, use_date=False, self.date_delimiter = date_delimiter self.originals=originals self.import_albums = [] - + self.stop_on_not_found_image = stop_on_not_found_image if import_from_date: self.import_from_date = datetime.strptime(import_from_date, "%Y-%m-%d") else: @@ -358,6 +358,13 @@ def copyImage(self, imageId, folderName, folderDate): mFilePath = image["ImagePath"] basename = os.path.basename(mFilePath) + if not os.path.exists(mFilePath): + msg = "Can't find file %s\n" % mFilePath + if self.stop_on_not_found_image: + raise iPhotoLibraryError, msg + else: + self.status(" %s" % msg) + # Deconflict ouput filenames tFilePath = os.path.join(folderName, basename) if self.deconflict: @@ -529,7 +536,8 @@ def error(msg): quiet=False, date=True, ignore_time_delta=False, - originals=False + originals=False, + stop_on_not_found_image=False ) option_parser.add_option("-a", "--albums", @@ -587,6 +595,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("-s", "--stop_on_not_found_image", + action="store_true", dest="stop_on_not_found_image", + help="stop if image not found." + ) + if pyexiv2: option_parser.add_option("-m", "--metadata", action="store_true", dest="metadata", @@ -623,7 +636,8 @@ def error(msg): test=options.test, date_delimiter=options.date_delimiter, ignore_time_delta=options.ignore_time_delta, - originals=options.originals + originals=options.originals, + stop_on_not_found_image=options.stop_on_not_found_image ) def copyImage(imageId, folderName, folderDate): library.copyImage(imageId, folderName, folderDate)