3 votes

Comment puis-je voir dans quels albums se trouve une photo ?

Photos.app - Je n'arrive pas à trouver un moyen de voir dans quels albums se trouve une photo, ni sur iOS ni sur MacOS.

Cela semble être une chose tellement basique qui devrait être là, mais je ne trouve pas comment le faire.
Lorsqu'une photo est sélectionnée, je m'attendrais à ce qu'elle soit indiquée dans l'un des albums de la barre latérale où elle se trouve.
Au moins l'afficher dans la boîte d'information sur Mac ou dans le panneau d'information sur iOS.

Mais pour l'instant, je n'arrive pas à savoir si elle devrait être là et si je vois un bug, si la fonctionnalité n'est pas là ou si je suis trop stupide pour comprendre.

4voto

nohillside Points 82672

Vous ne pouvez pas, du moins pas en sortant de la boîte. Mais il existe un AppleScript décrit dans https://robservatory.com/show-albums-a-given-photos-photo-has-been-added-to/ (ou en fait dans https://discussions.apple.com/docs/DOC-9261 ) qui résout le problème, en quelque sorte.

Pour utiliser le script, collez le tout dans l'éditeur AppleScript et enregistrez-le en tant qu'application (ou vous pouvez simplement l'exécuter dans l'éditeur AppleScript). Dans Photos, créez un album de premier niveau (j'ai nommé le mien Find Albums Photo Is In), et placez la photo que vous voulez connaître dans cet album. Laissez-la sélectionnée, puis exécutez l'AppleScript. Vous verrez une boîte de dialogue indiquant quelle photo est utilisée, puis après un moment, vous devriez voir une boîte de dialogue de résultats.

-- from https://robservatory.com/show-albums-a-given-photos-photo-has-been-added-to/
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

1voto

Tom Harrington Points 2112

Voici un autre Applescript que j'ai écrit et qui fonctionne pour moi. Avec cela, vous pouvez simplement sélectionner une photo dans Photos et exécuter le script, sans ajouter la photo à un nouvel album. Je l'ai enregistré dans le dossier script Photos, afin qu'il apparaisse comme un élément de menu dans Photos.

tell application "Photos"
    set selectedPhotos to get selection -- Get the selected photo
    try
        if selectedPhotos is {} then error -- No selection
    on error
        display alert "Select a photo, then run this script to find albums containing the photo."
        return
    end try
    -- Find albums that contain the photo's ID
    set selectedPhotoId to get id of first item in selectedPhotos
    set containingAlbums to get albums whose id of media items contains selectedPhotoId
    try
        if containingAlbums is {} then error
    on error
        display alert "That photo is not in any albums"
    end try
    -- Get names of albums and show them
    set albumNames to name of albums whose id of media items contains selectedPhotoId
    set AppleScript's text item delimiters to ", "
    albumNames as string
    display alert "Albums containing selected photo: " & (albumNames as string)
end tell

1voto

Tyler13 Points 11

Merci Tom pour votre script. Ca marche, mais le script ne vérifie pas les albums dans les dossiers. Savez-vous comment nous pouvons ajouter cela dans le script ?

J'ai seulement trouvé comment lister les dossiers dans Photos App : set folderNames to name of folders afficher l'alerte "Liste des dossiers : " & (folderNames en tant que chaîne)

Merci

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X