IPB

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> Exporter Albums d'un dossier Photos, en Apple Script
Options
enka
posté 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
Go to the top of the page
 
+Quote Post
baron
posté 4 Jun 2017, 22:28
Message #2


Macbidouilleur d'Or !
*****

Groupe : Modérateurs
Messages : 19 312
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…
Go to the top of the page
 
+Quote Post
PBell
posté 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
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 28th March 2024 - 15:54