Annonce:


Venez rencontrer nos contributeurs !

N'hésitez pas à venir visiter notre toute nouvelle page consacrée à nos contributeurs. Avoir son nom dans cette page est un grand gage de reconnaissance de notre part pour nos membres les plus actifs, ayant au moins atteint le Niveau 4.

Découvrez nos Contributeurs les plus actifs !

Les communautés sont un franc succès grâce à toutes les personnes qui viennent bénévolement apporter leur expertise et savoir faire à nos membres du monde entier !
Merci à tous pour votre incroyable contribution !!


Très bonne semaine à tous !
Lorris

Question :

Question : AppleScript & Photos : chemin d'une photo

Est-ce que quelqu'un saurait s'il est possible d'obtenir le chemin du fichier référencé d'une photo sélectionnée dans Photos avec AppleScript ? J'ai beau fouiller, je ne trouve pas de solution.

iMac, iOS 11.2.6

Publiée le

Répondre
Question marquée comme Utile

9 mars 2018 à 19h57 en réponse à EnezHouad En réponse à EnezHouad

À ma connaissance, on peut obtenir seulement le nom du fichier (filename), pas le chemin complet:

tell application "Photos"
set images_selectionnees to selection
if images_selectionnees is {} then
display dialog "Échec ! Aucune sélection."
else
set nom_fichier to filename of item 1 of images_selectionnees
display dialog "Réussite ! Le nom du fichier est " & nom_fichier & "."
end if
end tell

Question marquée comme Utile

9 mars 2018 à 21h01 en réponse à EnezHouad En réponse à EnezHouad

Il y a éventuellement une astuce pour retrouver le chemin complet à l'aide de la commande shell «find», qui permet de chercher des fichiers. Supposons que le nom du fichier c'est «Esquimau1.png». On sait qu'il se trouve quelque part dans le dossier utilisateur ($HOME). On sait aussi que son chemin contient «.photoslibrary/Masters» (les photothèques contiennent un dossier «Masters» et leur extension est «.photoslibrary»). Dans le Terminal, on peut taper:

find $HOME -wholename "*.photoslibrary/Masters*/Esquimau1.png"

pour obtenir le chemin complet.


Donc la syntaxe générale c'est:

find $HOME -wholename "*.photoslibrary/Masters*/$NOM_FICHIER"


Pour transposer cette astuce shell dans AppleScript, il suffit d'utiliser «do shell script»:

tell application "Photos"
set images_selectionnees to selection
if images_selectionnees is {} then
display dialog "Échec ! Aucune sélection."
else
set nom_fichier to filename of item 1 of images_selectionnees
set chemin to do shell script "find $HOME -wholename \"*.photoslibrary/Masters*/" & nom_fichier & "\""
display dialog "Réussite ! Le chemin est " & chemin & "."
end if
end tell


Et voilà! On a le chemin complet.

Cette conversation n’est pas terminée

Consulter toutes les réponses

Le contenu de la page a été chargé

Question marquée comme Utile

9 mars 2018 à 19h57 en réponse à EnezHouad En réponse à EnezHouad

À ma connaissance, on peut obtenir seulement le nom du fichier (filename), pas le chemin complet:

tell application "Photos"
set images_selectionnees to selection
if images_selectionnees is {} then
display dialog "Échec ! Aucune sélection."
else
set nom_fichier to filename of item 1 of images_selectionnees
display dialog "Réussite ! Le nom du fichier est " & nom_fichier & "."
end if
end tell

9 mars 2018 à 19h57

Répondre Utile (1)
Question marquée comme Utile

9 mars 2018 à 21h01 en réponse à EnezHouad En réponse à EnezHouad

Il y a éventuellement une astuce pour retrouver le chemin complet à l'aide de la commande shell «find», qui permet de chercher des fichiers. Supposons que le nom du fichier c'est «Esquimau1.png». On sait qu'il se trouve quelque part dans le dossier utilisateur ($HOME). On sait aussi que son chemin contient «.photoslibrary/Masters» (les photothèques contiennent un dossier «Masters» et leur extension est «.photoslibrary»). Dans le Terminal, on peut taper:

find $HOME -wholename "*.photoslibrary/Masters*/Esquimau1.png"

pour obtenir le chemin complet.


Donc la syntaxe générale c'est:

find $HOME -wholename "*.photoslibrary/Masters*/$NOM_FICHIER"


Pour transposer cette astuce shell dans AppleScript, il suffit d'utiliser «do shell script»:

tell application "Photos"
set images_selectionnees to selection
if images_selectionnees is {} then
display dialog "Échec ! Aucune sélection."
else
set nom_fichier to filename of item 1 of images_selectionnees
set chemin to do shell script "find $HOME -wholename \"*.photoslibrary/Masters*/" & nom_fichier & "\""
display dialog "Réussite ! Le chemin est " & chemin & "."
end if
end tell


Et voilà! On a le chemin complet.

9 mars 2018 à 21h01

Répondre Utile (1)

10 mars 2018 à 00h38 en réponse à EnezHouad En réponse à EnezHouad

J'ai bien avancé grâce à Eskimau. 🙂

Si ça peut aider, voici mon code - un peu lourd peut-être mais que j'ai essayé de rendre clair. Il ne me reste plus qu'à ouvrir le fichier avec mon éditeur RAW, ça sera plus facile pour moi - j'ai eu un peu de mal avec les guillemets et les espaces dans le terminal 😉.

Je précise que je n'utilise pas la photothèque iCloud et que je ne copie pas mes photos dans la photothèques à l'importation (je préfère maîtriser mon rangement). Je range mes photos sur un disque externe nommé "PHOTO", les photos étant classées par années dans des dossiers du type "Photos 2018". La recherche est très rapide, donc le script me convient parfaitement.

À suivre…


tell application "Photos"


set n to count of selection

set dialogText to ""


if n = 0 then -- aucune photo sélectionnée

set dialogText to "Il faut sélectionner au moins une photo."


else if n > 1 then -- plusieurs photos sélectionnées

set dialogText to "Il ne faut sélectionner qu'une seule photo."


else -- OK, une seule photo sélectionnée

set thePictures to get the selection

copy item 1 of thePictures to thePicture


set nomFichierPhoto to filename of thePicture

set datePhoto to the date of thePicture

set anneePhoto to year of datePhoto as string

set rechChemin to "/Volumes/PHOTO/" & "\"" & "Photos " & anneePhoto & "\""

set findScript to "find " & rechChemin & " -name " & "\"" & nomFichierPhoto & "\""

set cheminFichierPhoto to do shell script findScript


set dialogText to "Chemin de la photo «" & nomFichierPhoto & "» :" & return & cheminFichierPhoto

end if


display dialog dialogText


end tell

10 mars 2018 à 00h38

Répondre Utile
Profil de l’utilisateur : EnezHouad

Question : AppleScript & Photos : chemin d'une photo