Improved handling of deleted photos, #332

This commit is contained in:
Rhet Turnbull
2021-01-06 08:24:58 -08:00
parent 568d1b36a6
commit 792247b51c
2 changed files with 30 additions and 8 deletions

View File

@@ -1348,7 +1348,7 @@ def query(
help="Hardlink files instead of copying them. "
"Cannot be used with --exiftool which creates copies of the files with embedded EXIF data. "
"Note: on APFS volumes, files are cloned when exporting giving many of the same "
"advantages as hardlinks without having to use --export-as-hardlink."
"advantages as hardlinks without having to use --export-as-hardlink.",
)
@click.option(
"--touch-file",
@@ -2999,7 +2999,19 @@ def export_photo(
if export_original:
if missing_original:
space = " " if not verbose else ""
verbose_(f"{space}Skipping missing photo {photo.original_filename}")
verbose_(
f"{space}Skipping missing photo {photo.original_filename} ({photo.uuid})"
)
results.missing.append(
str(pathlib.Path(dest_path) / original_filename)
)
elif photo.intrash and (not photo.path or use_photos_export):
# skip deleted files if they're missing or using use_photos_export
# as AppleScript/PhotoKit cannot export deleted photos
space = " " if not verbose else ""
verbose_(
f"{space}Skipping missing deleted photo {photo.original_filename} ({photo.uuid})"
)
results.missing.append(
str(pathlib.Path(dest_path) / original_filename)
)
@@ -3074,9 +3086,6 @@ def export_photo(
# if export-edited, also export the edited version
# verify the photo has adjustments and valid path to avoid raising an exception
if export_edited and photo.hasadjustments:
# if download_missing and the photo is missing or path doesn't exist,
# try to download with Photos
edited_filename = pathlib.Path(filename)
# check for correct edited suffix
if photo.path_edited is not None:
@@ -3119,10 +3128,21 @@ def export_photo(
)
if missing_edited:
space = " " if not verbose else ""
verbose_(f"{space}Skipping missing edited photo for {filename}")
verbose_(f"{space}Skipping missing edited photo for {edited_filename}")
results.missing.append(
str(pathlib.Path(dest_path) / edited_filename)
)
elif photo.intrash and (not photo.path_edited or use_photos_export):
# skip deleted files if they're missing or using use_photos_export
# as AppleScript/PhotoKit cannot export deleted photos
space = " " if not verbose else ""
verbose_(
f"{space}Skipping missing deleted photo {photo.original_filename} ({photo.uuid})"
)
results.missing.append(
str(pathlib.Path(dest_path) / edited_filename )
)
else:
try:
export_results_edited = photo.export2(
@@ -3175,7 +3195,9 @@ def export_photo(
),
err=True,
)
results.error.append((str(pathlib.Path(dest) / edited_filename),e))
results.error.append(
(str(pathlib.Path(dest) / edited_filename), e)
)
if verbose:
if update:

View File

@@ -1,5 +1,5 @@
""" version info """
__version__ = "0.39.9"
__version__ = "0.39.10"