Created
March 20, 2018 14:38
-
-
Save anonymous/6d557ca4ac434fce39b893457ecf9a01 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
tell application "Photos" | |
activate | |
-- Add the photo you want to search for to a top level album as the first item in the album | |
set resultcaption to "Searching for: " | |
try | |
set sel to selection | |
if sel is {} then error "The selection is empty" -- no selection | |
on error errTexttwo number errNumtwo | |
display dialog "No photos selected " & errNumtwo & return & errTexttwo | |
return | |
end try | |
set imagename to "unknown filename" | |
try | |
set target to item 1 of sel -- the image to seach for | |
tell target | |
set imagename to the filename of target | |
end tell | |
on error errTexttwo number errNumtwo | |
display dialog "Cannot get the filename of the first image: " & errNumtwo & return & errTexttwo | |
end try | |
set resultcaption to (resultcaption & imagename) | |
end tell | |
try | |
display alert resultcaption buttons {"Cancel", "OK"} as informational giving up after 2 | |
on error errText number errNum | |
if (errNum is equal to -128) then | |
-- User cancelled. | |
return | |
end if | |
end try | |
-- From Jacques Rioux's script: | |
tell application "Photos" | |
-- set sel to selection | |
if sel is {} then return -- no selection | |
try | |
set thisId to id of item 1 of sel | |
on error errText number errNum | |
display dialog "Error: cannot get the image ID" & errNum & return & errText & "Trying again" | |
try | |
delay 2 | |
set thisId to id of item 1 of sel | |
on error errTexttwo number errNumtwo | |
display dialog "Skipping image due to repeated error: " & errNumtwo & return & errTexttwo | |
error "giving up" | |
return | |
end try --second attempt | |
end try | |
set theseNames to {} | |
try | |
set theseNames to name of (albums whose id of media items contains thisId) | |
on error errText number errNum | |
display dialog "Error: cannot get the albums" & errNum & return & errText & "Trying again" | |
try | |
delay 2 | |
set theseNames to name of (albums whose id of media items contains thisId) | |
on error errTexttwo number errNumtwo | |
display dialog "Skipping image due to repeated error: " & errNumtwo & return & errTexttwo | |
error "giving up" | |
return | |
end try | |
end try | |
end tell | |
if theseNames is not {} then | |
set {oTid, text item delimiters} to {text item delimiters, return} | |
set {t, text item delimiters} to {theseNames as string, oTid} | |
-- return oTid | |
else | |
set t to "No album" | |
end if | |
activate | |
set resultcaption to resultcaption & ", found it in these albums: | |
" & t as string | |
set the clipboard to resultcaption | |
display dialog resultcaption buttons {"OK"} default button "OK" -- you can press the Enter key or the return Key to close the dialog | |
return resultcaption -- léonie |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment