Exporter Albums d'un dossier Photos, en Apple Script |
Bienvenue invité ( Connexion | Inscription )
Exporter Albums d'un dossier Photos, en Apple Script |
4 Jun 2017, 22:01
Message
#1
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 430 Inscrit : 3 Oct 2001 Lieu : 95 Membre no 928 |
Bonjour,
Dans Photos, j'ai mes photos triées par album, eux-même dans des dossiers. Je souhaite exporter mes albums pour sauvegarder les photos dans des dossiers correspondants au contenu des albums. J'ai donc trouvé ce script pour exporter album => dossier : https://discussions.apple.com/docs/DOC-9561 qui permet de sélectionner les albums à exporter. Je cherche à le modifier pour d'abord sélectionner un dossier, puis pouvoir sélectionner les albums qu'il contient pour les exporter. Voici où j'en suis : Code set dest to "/Users/login/Desktop/PHOTOS-Albums/" as POSIX file as text -- the destination folder (use a valid path) tell application "Photos" activate set l to name of folders set foldNames to choose from list l with prompt "Select a folder" without multiple selections allowed if foldNames is not false then -- not cancelled repeat with tName in foldNames set j to name of albums in tName set albNames to choose from list l with prompt "Select some albums" with multiple selections allowed end repeat end if end tell Mais quand je sélectionne un dossier, j'ai une erreur : Code error "Il est impossible d’obtenir every album of \"nomduDossier\"." number -1728 from every «class IPal» of "nomDuDossier" En clair il n'arrive pas à obtenir la liste des albums contenu dans le dossier que je viens de sélectionner... Une idée ? Merci ! Ce message a été modifié par baron - 5 Jun 2017, 09:48.
Raison de l'édition : Comme il y a peu de lignes, remplacement des balises CodeBox par Code pour avoir des retours à la ligne…
-------------------- MacMini 2012 6,2
|
|
|
4 Jun 2017, 22:28
Message
#2
|
|
Macbidouilleur d'Or ! Groupe : Modérateurs Messages : 19 361 Inscrit : 22 Jul 2004 Lieu : Louvain-la-Neuve (Gaule Gelbique) Membre no 21 291 |
[Pour info, ce sujet a été créé suite à celui-ci : http://forum.macbidouille.com/index.php?showtopic=403513]
-------------------- ¶ MacBook Pro 14’’ 2021, M1 Pro, 16 Go/1 To – macOS 12.6 “Monterey” ¶ MacBook Pro 15’’ mi-2010 Core i5 2,53 GHz, 8 Go/SSD Samsung 860EVO 1 To – Mac OSX 10.6.8 ¶ Power Macintosh G3 beige de bureau, rev.1 @ 233MHz, 288 Mo/4Go – MacOS 9.1 + carte PCI IDE/ATA Tempo 66 Acard 6260 avec HD interne Maxtor 80 Go + graveur interne CDRW/DVD LG GCC-4520B + tablette A4 Wacom UD-0608-A + LaCie ElectronBlueIV 19" + HP ScanJet 6100C ¶ B-Box 3 + HP LaserJet 4000 N
¶ La recherche dans MacBidouille vous paraît obscure ? J'ai rédigé une proposition de FAQ. Le moteur logiciel a un peu changé depuis mais ça peut aider quand même. … Les corsaires mettent en berne… |
|
|
5 Jun 2017, 07:30
Message
#3
|
|
Macbidouilleur de bronze ! Groupe : Membres Messages : 264 Inscrit : 7 Dec 2013 Lieu : Ile de France Membre no 188 169 |
Bonjour,
Ton erreur provient du fait que ta variable tante est un nom (donc de type string) et pas un dossier. Donc l’instruction « set j to name of albums in tname » recherche les albums dans une string et non dans un dossier. Il y a 2 méthodes possibles: 1) tu extrais la liste des dossiers. Tu en extrais une liste de leur nom que tu proposes à l’utilisateur lors du « sélect a folder ».Une fois la sélection faite, tu prends le dossier dans la liste initial ayant le même indice que l'indice du nom choisi dans la liste. 2) tu extrais comme tu le fais les noms de dossiers. Une fois que l’utilisateur a choisi un nom, tu recherches le premier dossier ayant le même nom. La méthode 2 est beaucoup plus simple, mais elle suppose que tu n’as jamais 2 dossier de même nom ! Dans l'exemple ci-dessous, j'utilise la méthode 2. J'ai changé les noms de quelques variables car certaines pourraient porter à confusion. Il vaut toujours mieux mettre des variables avec un nom explicite et non ambigu. CODE set dest to "/Users/login/Desktop/PHOTOS-Albums/" as POSIX file as text -- the destination folder (use a valid path) tell application "Photos" activate set DosList to name of folders set foldNames to choose from list DosList with prompt "Select a folder" without multiple selections allowed if foldNames is not false then -- not cancelled repeat with NomDossier in foldNames set Dossier to first item of (get every folder whose name is NomDossier) set Albumlist to name of albums in Dossier set albNames to choose from list Albumlist with prompt "Select some albums" with multiple selections allowed -- insérer ici la boucle sur chaque album end repeat end if end tell Je précise que tu as un risque d'avoir 2 photos de même nom, dans 2 albums qui pourraient se retrouver copiées dans un seul et même dossier Finder. Ton script doit prévoir et gérer ce cas, sinon, lors de la copie de la seconde photo, le Finder donnera une erreur (fichier de même nom existe déjà). Cordialement -------------------- iiMac 24 M1 16Go/1To 13.5.1
iMac 27 i5 3,1GHz 8Go/1To 10.11.6 / 10.6.8 iMac 20 C.Duo 2,6Ghz 8Go/350Go 10.6.8 / 10.11 Mini C.Duo 2,0Ghz 2Go/500Go 10.6.8 |
|
|
Nous sommes le : 26th April 2024 - 20:16 |