IPB

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> applescript et IPTC, action de dossier
Options
Manu75017
posté 29 Nov 2015, 07:15
Message #1


Nouveau Membre


Groupe : Membres
Messages : 12
Inscrit : 29 Nov 2015
Membre no 197 284



Bonjour à tous!
je suis photographe
Je m'initie depuis quelques jours sur automator, mais je comprends de plus en plus ses limites,
alors voilà, je me forme du coup sur applescript,
mais j'aurais besoin d'un sérieux coup de main, et savoir surtout si ce que je voudrais soit possible:

via les logiciels de photo tel Lightroom par exemple, il est possible de mettre des champs IPTC dans les photos, c'est super, mais finalement cela ne sert qu'a organiser, archiver etc.
moi j'aimerais que certain de ces champs soient vraiment utile pour moi:

je voudrais une fois que l'email de la personne figure dans le champ mot-clés:
(champ le plus accessible, lors de l'importation des images, et dans les infos de l'image)

-faire un dossier de contrôle, qui lorsque je drag and drop cette ou ces images,
m'ouvre l'application mail, utilise l'adresse contenu dans les mots-clé (si il y a plusieurs adresses email différentes, répéter l'action si possible) en revanche si d'autres mots-clés n'etant pas des emails (sans arobase) que cela les ignore lors du process
-(si possible: regroupe les images contenant le même email pour éviter d'envoyer pleins de mail à une même personne)
-inscrire en objet du mail genre:"les photos prises de tel jour"
et que cela envoie le mail

Je ne maitrise pas assez bien, pour y arriver seul
il y a beaucoup de "if" dans ce script et je bloque sévèrement
Merci! smile.gif

Go to the top of the page
 
+Quote Post
PBell
posté 29 Nov 2015, 10:50
Message #2


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 264
Inscrit : 7 Dec 2013
Lieu : Ile de France
Membre no 188 169



Bonjour Manu,
Ce que tu décris n'est pas un script d'action de dossier pour débutant, mais globalement, c'est faisable, à condition de pouvoir lister cette fameuse liste d'adresses email incluse dans chaque photo.

Et c'est là que la solution peut être simple ou complexe.
En fait, il y a souvent confusion entre les données IPTC et les données EXIF.

En théorie l'EXIF contient les données de la prise de vue (ouverture, appareil, luminosité, date, heure, position GPS...)
l'IPTC contient des tags comme l'auteur, l'agence,...
En pratique, il semble que certain champs soient à la frontière entre ces 2 groupes de données (en fait dans ces 2 groupes).

Pour les données EXIF, il existe un outil gratuit (EXIFTOOL) permettant de lire les informations, de les mettre à jour, voire de les créer. Et, comble de bonheur, cet outil est en ligne de commande, donc très puissant en shell ou Applescript.
J'ai déjà développé mes scripts à partir d'Exiftool qui me permettent de manipuler, trier,...directement à partir des fichiers/dossiers sélectionnés du Finder.
Je peux partager ces scripts.

Pour les données IPTC, c'est plus compliqué car si il existe des logiciels gratuits (open source) et payants, je n'en connais aucun qui soit utilisable en ligne de commande shell ou Applescript.

Dans ta demande, tu parles de IPTC, mais aussi du champs mot-clés. Hors ce champs de mot-clé semble faire partie des champs IPTC et EXIF.
Si c'est bien le cas, pas de souci pour te faire un script avec Exiftool. Si ce champ n'est pas dans les EXIF, mais uniquement dans le IPTC, je ne vois pas de solution.

Pour savoir, je te suggère de partager une image avec le fameux champ d'adresse (tu peux mettre une adresse bidon comme '[email protected]' pour l'anonymat !).Je vérifie et je te confirme si c'est bien de l'exif ou pas. Si c'est positif, le script suivra !
..sinon, désolé, à moins que qu'une âme charitable ne m'indique avoir trouver un utilitaire en ligne de commande pour les IPTC !

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
chombier
posté 29 Nov 2015, 12:23
Message #3


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 6 580
Inscrit : 20 Mar 2003
Membre no 6 765



Citation (PBell @ 29 Nov 2015, 11:50) *
..sinon, désolé, à moins que qu'une âme charitable ne m'indique avoir trouver un utilitaire en ligne de commande pour les IPTC !

http://www.exiv2.org/sample.html
Pour modifier l'email du contact:
Code
exiv2 -M"add Iptc.ContactEmail String user@host" file


[edit]
J'avais lu de travers, tu ne veux pas modifier le champ image, mais boucler sur les adresses email...
Ce bout de script shell va chercher les adresses email dans tes images et les affiche. Reste à remplacer le "do echo $email" par l'exécution d'un AppleScript qui envoie le mail.
Code
for email in `exiv2 -pi Test_ScriptIPTC_3.jpg | grep Iptc.Application2.Keywords | grep @ | awk '{print $4}'`; do echo $email; done

Pour installer exiv2, le plus simple est d'installer d'abord HomeBrew, puis de faire un "brew install exiv2".
[/edit]


Ce message a été modifié par chombier - 29 Nov 2015, 13:03.


--------------------
késtananafout' (:
Go to the top of the page
 
+Quote Post
Manu75017
posté 29 Nov 2015, 12:28
Message #4


Nouveau Membre


Groupe : Membres
Messages : 12
Inscrit : 29 Nov 2015
Membre no 197 284



Bonjour et merci beaucoup de votre retour si vite smile.gif

effectivement je parle de champs IPTC, mais je n'en suis pas sûr,
j'ai remarqué que lorsque je fais un commande+i sur une de mes images, les mots-clés apparaissent dans les infos de la photo
en PJ de ce message j'ai mis:

2 photos avec un email different, et des mots-clés de description
1 photo avec 2 emails, et des mots-clés de description
+1 capture d'écran

Merci
bien à vous,



voici un lien wetransfer au cas où, vous ne pouviez pas télécharger les images:

http://we.tl/VuK06Ny5ri

Merci!
Fichier(s) joint(s)
Fichier joint  Test_ScriptIPTC_3.jpg ( 367.73 Ko ) Nombre de téléchargements : 8
Fichier joint  Capture_d_____cran_2015_11_29____12.00.49.png ( 503.5 Ko ) Nombre de téléchargements : 7
Fichier joint  Test_ScriptIPTC_1.jpg ( 367.6 Ko ) Nombre de téléchargements : 0
Fichier joint  Test_ScriptIPTC_2.jpg ( 367.6 Ko ) Nombre de téléchargements : 0
 
Go to the top of the page
 
+Quote Post
PBell
posté 29 Nov 2015, 13:02
Message #5


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 264
Inscrit : 7 Dec 2013
Lieu : Ile de France
Membre no 188 169



Bonjour Manu,
Merci pour les fichiers et la copie d'écran.
Tout va bien, ce sont bien des KeyWords Exif, faciles à extraire.

Je prépare le script. Tes 3 fichiers me serviront de test.

Comme tu as piqué ma curiosité, j'ai, entre temps, joué un peu avec les IPCT et PhotoShop.
J'ai trouvé que les informations IPCT de contact, comme l'email du créateur, font aussi partie des champs disponibles via Exiftool (propriété CreatorWorkEmail).
Décidément, Exiftool continue de me surprendre, toujours positivement, car il gère bien plus que les strictes données Exif !

Je pense t'envoyer le script dans l'après midi.

Cordialement

PS : merci aussi à Chombier pour son exiv2. Je plonge dedans juste après wink.gif


--------------------
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
Manu75017
posté 29 Nov 2015, 13:15
Message #6


Nouveau Membre


Groupe : Membres
Messages : 12
Inscrit : 29 Nov 2015
Membre no 197 284



fantastique!!! smile.gif)

de mon côté je vais explorer cet outil exiftool qui l'air bien sympa en effet wink.gif
donc si je comprends bien, c'est par le biais de cet outil, que l'on pourra extraire les infos de l'image,
ne garder que le ou les emails des mots-clés, pour que la suite du processus fonctionne?
en fait le finder et la fonction Pomme+I, n'est pas en mesure de suffire, car c'est sur ce point que j'ai calé dès le départ

merci pour ton aide
ainsi qu'à Chombier

smile.gif
Go to the top of the page
 
+Quote Post
PBell
posté 29 Nov 2015, 17:56
Message #7


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 264
Inscrit : 7 Dec 2013
Lieu : Ile de France
Membre no 188 169



Bonsoir Manu,

Comme promis, voici le script : lorsque tu dropes des fichiers dans le dossier, il se lance, regarde les mots clés (si il y en a !), puis, pour chaque mot-clé, le script regarde si il ressemble à une adresse email.
En fait , il regarde si cela a la forme [email protected] (si il y a une @ et un ".").

Si c'est la cas, j'ai été un peu plus loin que ta demande initiale.
En effet, outre le fait de cumuler dans une liste les emails, j'ai aussi cumulé dans une autre liste, les listes des fichiers qui sont liés à chaque adresse email.
Pour reprendre tes fichiers exemples, cela donnera :
- Email : [email protected] -> liste de photos =Test_ScriptIPTC_1 et Test_ScriptIPTC_2
- Email : [email protected] -> liste de photos =Test_ScriptIPTC_2 et Test_ScriptIPTC_3

Enfin, le script boucle sur la liste des emails, et, pour chacun, crée un mail avec le titre "merci pour les photos !", le destinataire le mail bien sûr, et le contenu du mail est la liste des noms de fichier des photos.
Les mail peuvent être visibles (pour édition manuelle complémentaire) ou directement envoyés. Voir les commentaires dans le script pour adapter à ton besoin.


En ce qui concerne l'installation, il y a plusieurs étapes :
1) télécharger et installer Exiftool.
En repartant sur Google, je l'ai trouvé à l'adresse suivante : http://www.sno.phy.queensu.ca/~phil/exiftool/
Mais tu vas le trouver à plein d'autres adresses. Tu le télécharges et tu l'installes.
Pour vérifier quel est bien installé, tu ouvres l'application Terminal, située dans le dossier Utilitaires.
Dans la fenêtre, tu tapes (attention aux espaces, aux majuscules et sans les guillemets) : "exiftool -KeyWords "
Sans taper return (pas encore !), tu drag & drope un fichier image sur la fenêtre du Terminal. Tu dois obtenir quelque chose comme "exiftool -KeyWords dossier/fichier".
Touche return ...et, si tout est bien installé, le Terminal réponds : "KeyWords : xxxx" avec xxxx la liste des mot-clés de ton fichier.
Je suppose donc que cette étape est faite et confirmée.

2) installer le script comme une action de dossier
Pour cela, il faut le copier dans le dossier "Folder Action Scripts" qui se situe dans le dossier "Scripts" dans ton dossier "Bibliothèque". Si le dossier
"Folder Action Scripts" n'existe pas, tu le crées (exactement ce nom là !). Pour voir le dossier Bibliothèque, menu Finder "Aller à…" avec la touche option enfoncée, puis choisir Bibliothèque.

3) il faut activer les actions de dossiers
Curieusement, j'ai eu des soucis sur Yosemite avec le dossier Bureau. Je te conseille donc de le faire sur un dossier situé sur le bureau et pas le dossier bureau lui-même. C'est sans doute aussi plus sûr ! Pour info, cela marche tout de même sur le dossier du bureau, mais j'ai du redémarrer finalement !
Pour activer, tu sélectionnes ton dossier, click droit, menu "Configurer les actions de dossier". Tu coches la case "activer..." en haut à gauche, puis tu associes ton script qui apparaît dans la liste des scripts (si il n'apparaît pas c'est que tu as raté qq chose à l'étape 2 !)

Enfin, voici le script que j'ai largement commenté pour que chacun puisse y trouve son compte et faire ses modifications.
CODE
on adding folder items to Mon_Dossier after receiving MesFichiers
    display dialog "Preparation des emails pour les " & (count of MesFichiers) & " Fichiers." giving up after 1
    
    
    set ListeEmails to {} -- liste de records avec les adresses email
    set ListePhotos to {} -- liste des listes de photos
    
    repeat with F in MesFichiers
        set MTag to TagExif("KeyWords", F as string)
        set {ASTI, AppleScript's text item delimiters} to {AppleScript's text item delimiters, {", "}}
        set MesMots to every text item of MTag
        set AppleScript's text item delimiters to ASTI -- pour remettre les Asti comme avant !
        repeat with MonEmail in MesMots
            if ValideEmail(MonEmail) then -- le mot cle est bien une addresse email valide
                tell application "Finder" to set FNom to name of F -- extrait le nom du fichier
                set MonEmail to MonEmail as string
                set N to NumItem(MonEmail, ListeEmails) -- recherche si cet email a déjà été trouvé et renvoi son N° dans la liste
                if N = 0 then -- nouvelle adresse email à ajouter
                    set the end of ListeEmails to MonEmail
                    set the end of ListePhotos to {FNom} -- ajoute dans la liste des photos
                else
                    -- le mail exsite déjà, on ajoute le nom de la photo dans la liste des photos du record numero N
                    set the end of (item N of ListePhotos) to FNom
                end if
            end if -- valide email
        end repeat -- sur chaque mot-clé
    end repeat -- sur chaque fichier
    
    repeat with I from 1 to count of ListeEmails -- pour chaque addresse email, creéation d'un mail avec la liste des Photos
        set Mailtext to ""
        repeat with J from 1 to count of (item I of ListePhotos)
            set Mailtext to Mailtext & item J of (item I of ListePhotos) & return
        end repeat
        tell application "Mail"
            activate -- a supprimer si tu ne veux pas voir les messages crées avant de les envoyer
            set MonMessage to make new outgoing message with properties {visible:true, subject:"Merci pour les photos !", content:Mailtext}
            tell MonMessage
                make new to recipient at end of to recipients with properties {name:"", address:item I of ListeEmails}
            end tell
            -- Send MonMessage
        end tell
    end repeat -- sur chaque adresse email
    display dialog "fin traitement"
end adding folder items to


on NumItem(LocalEmail, LocalListe) -- renvoi le Numéro de l'item avec l'adresse. 0 si pas trouvée
    repeat with I from 1 to (count of LocalListe)
        if LocalEmail is (item I of LocalListe) then return I
    end repeat
    return 0
end NumItem

on TagExif(DType, LocalFichier) -- retourne le tag défini par DType, contenu dans le fichier
    -- exemple de DType : 'Keywords' ou 'CreatorWorkEmail'
    try
        set LKW to do shell script "/usr/local/bin/exiftool -" & DType & " " & quoted form of (POSIX path of LocalFichier)
    on error
        return ""
    end try
    if length of LKW > 35 then
        set LKW to text 35 thru -1 of LKW -- la commande renvoie soit rien, soit "Keywords <33 espaces > : <espace> liste des KeyWords"
        return LKW
    end if
    return ""
end TagExif

on ValideEmail(LocalEmail) -- vérifie si le texte est de la forme [email protected]
    set Pos1 to offset of "@" in LocalEmail
    if Pos1 > 0 then
        set Pos1 to offset of "." in (characters Pos1 through end of LocalEmail as text)
        if Pos1 > 0 then return true
    end if
    return false
end ValideEmail



Si tu as des souci, n'hésite pas !
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
Manu75017
posté 29 Nov 2015, 19:08
Message #8


Nouveau Membre


Groupe : Membres
Messages : 12
Inscrit : 29 Nov 2015
Membre no 197 284



ah oui en effet, ce n'était pas un script de débutant! wink.gif

je vais essayer de ce pas, j'ai juste besoin d'une précision concernant l'etape 2, celle ou je dois créer un dossier s'il n'y est pas dans ma bibliothèque:
je dois copier le script dans un fichier textedit? comment dois-je le copier? et si oui je choisis le format UFT8?
le dossier sur le bureau je dois le nommer d'une manière particulière pour être en accord avec le script?

désolé, je n'ai jamais fais ça



merci,
bien à toi

Ce message a été modifié par Manu75017 - 29 Nov 2015, 19:10.
Go to the top of the page
 
+Quote Post
PBell
posté 29 Nov 2015, 20:09
Message #9


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 264
Inscrit : 7 Dec 2013
Lieu : Ile de France
Membre no 188 169



Bonsoir Manu,
Dans le dossier Utilitaires, il y a une application Editeur de Script. Tu l'ouvres.
Dans la fenêtre vierge qui s'affiche, tu copies/colles le script...intégralement (ça commence en haut par "on adding folder items..." et se termine par la ligne "end ValideEmail".

En haut de la fenêtre, il y a un petit bouton avec un marteau. Tu cliques (ça s'appelle compiler). Tu ne dois pas avoir d'erreur si le copier/coller est correct.
Toujours dans l'Editeur de script, tu demandes alors à enregistrer (menu Fichier/ Enregistrer). Tu donnes un nom, et , pour l'instant tu choisis sur le bureau.
Par exemple avec le nom "Email_motcle". Sur le bureau tu auras un fichier "Email_motcle.scpt"

Comme visiblement tu n'as jamais fait de script, le dossier "Folder Action Scripts" n'existe sûrement pas sur ton Mac.
Donc, sur le Finder, menu "Aller …", avec la touche option enfoncée, et tu sélectionnes Bibliothèque.
Une fenêtre s'ouvre sur cette bibliothèque. Tu cherches le dossier "Scripts" et tu l'ouvres.
Tu crées dedans un nouveau dossier (menu Fichier ou command majuscule N) que tu appelles "Folder Action Scripts" (sans les guillemets, mais avec les majuscules/minuscules adéquates).

Tu glisses, dans ce nouveau dossier, le fichier Email_motcle.scpt qui est sur ton bureau.

As tu réussi l'étape 1 (Exiftool) ?
N'oublie pas l'étape 3 qui assigne l'action de dossier (le script que l'on vient de mettre) avec le dossier dans lequel tu mettras déposera tes photos.
Il y a pas mal de tuto sur le net pour cette partie si tu as des doutes.

Bon courage, tu apprends vite !

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
Manu75017
posté 29 Nov 2015, 20:29
Message #10


Nouveau Membre


Groupe : Membres
Messages : 12
Inscrit : 29 Nov 2015
Membre no 197 284



Merci!
Je n'ai pas encore telecharger exiftool, je ne suis pas arrivé chez moi,
Mais j'anticipe et essaie de tout bien comprendre avant, histoire de faire un sans faute wink.gif

Je suis super impressionné et je vois que j'ai un gros boulot d'apprentissage de vocabulaire, pour
Bien tout comprendre, mais je trouve ça passionnant

J'ai juste un peu peur de ne pas avoir ete assez clair lors de ma demande initiale, car l'idée etait d'envoyer les photos et
non pas une liste de nom de fichier (car c'est que tu me dis dans le mail)
Si c'est le cas je m'en excuse!

Concernant le nom du dossier sur lequel je vais drag and droper, doit-il avoir un nom précis ou cela n'a pas d'importance?
Car dans le script je vois que tu le nommes "Mon_Dossier"
A moins que c'est tout simplement au moment de l'etape 3 que j'assigne le dossier de mon choix

Bien à toi

Ce message a été modifié par Manu75017 - 29 Nov 2015, 20:40.
Go to the top of the page
 
+Quote Post
PBell
posté 29 Nov 2015, 20:55
Message #11


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 264
Inscrit : 7 Dec 2013
Lieu : Ile de France
Membre no 188 169



Bonsoir,
C'est effectivement à l'étape 3 que tu vas assigner le dossier que tu souhaites à l'action de dossier.

"Mon_Dossier" est ce que l'on appelle une variable en programmation. Cette variable est manipulée dans le programme pour lire et éventuellement changer sa valeur.
Cette variable Mon_Dossier prendra la valeur du dossier sur lequel l'action sera faite (dropper les photos)

Compte tenu de ton niveau apparent, je suis un peu inquiet sur l'installation de Exiftool et l'activation des actions folder.
Vas y étape par étape, et n'hésite pas à "Googler", surtout pour l'action de dossier.

Quant aux mails qui doivent intégrer les photos et pas leur nom, effectivement, je n'avais pas compris, mais il n'est pas bien difficile de changer cela.
il y a juste une ou 2 instructions à changer : On le fera en dernier quand tout le reste sera opérationnel !

Attention toutefois, si tes photos sont grosses (disons 3 ou 4Mo), tes emails risquent d'être trop volumineux pour ton opérateur !
En général, au delà de 8 à 10Mo, ça tousse un peu. Tu connais tes photos et le nombre par adresse email, je te laisse seul juge sur ce point...

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
Manu75017
posté 29 Nov 2015, 21:22
Message #12


Nouveau Membre


Groupe : Membres
Messages : 12
Inscrit : 29 Nov 2015
Membre no 197 284



je viens d'arriver et
ça marche parfaitement!! chapeau!

En suivant tes instructions, je n'ai eu aucun soucis
j'ai installé exiftool, et configurer les actions de dossier (je t'ai mis une capture en PJ)

pour la taille des photos, ce ne sera pas lourd, car c'est généralement pour des formats web wink.gif rarement des HD

ça me rassure que ce ne soit pas trop compliqué de modifier le script pour l'envoi de photo, j'ai eu peur de t'avoir fait perdre ton temps!
merci encore,

hâte de voir la suite : )


Fichier(s) joint(s)
Fichier joint  Action_dossier.png ( 244.64 Ko ) Nombre de téléchargements : 9
 
Go to the top of the page
 
+Quote Post
PBell
posté 29 Nov 2015, 22:08
Message #13


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 264
Inscrit : 7 Dec 2013
Lieu : Ile de France
Membre no 188 169



Bravo !

Il faut maintenant corriger l'action de dossier. Pour cela, on va repasser via l'Editeur de Script, mais en appelant le script via son action de dossier.

Toujours pas à pas :
1) Sélectionne le dossier qui a l'action de dossier, click droit -> Configurer les actions de dossier
2) dès l'ouverture, le système te propose d'ajouter un script "Choisir un script à joindre", tu cliques sur annuler.
3) tu dois te retrouver avec une fenêtre à 2 colonnes : à gauche ton dossier et colonne de droite ton script. Tu sélectionnes ton script et tu cliques sur le bouton Modifier le script en bas.
4) l'Editeur de script s'est ouvert avec notre version actuelle du script. Comme tu as tout installé et que cela fonctionne, on va procéder par simple modification.

Supprimer la ligne 12 affichée ci-dessous car on a plus besoin du nom de fichier !
CODE
tell application "Finder" to set FNom to name of F -- extrait le nom du fichier


Corriger la ligne 17 de set the end of ListePhotos to {FNom} avec la nouvelle valeur : set the end of ListePhotos to {F as string}
(on remplace le nom de la photo par son chemin complet)

Corriger de même la ligne 20 de set the end of (item N of ListePhotos) to FNom avec la nouvelle ligne : set the end of (item N of ListePhotos) to (F as string)


Plus bas dans le script, remplacer les 4 lignes de code ci-dessous :
CODE
        set Mailtext to ""
        repeat with J from 1 to count of (item I of ListePhotos)
            set Mailtext to Mailtext & item J of (item I of ListePhotos) & return
        end repeat


Tout simplement par cette seule ligne:
CODE
    set Mailtext to "Voici la liste des photos :"


Et enfin, ajouter, juste après la ligne commençant par make new to recipient at end of ... le code suivant qui ajoute les photos en PJ dans l'email:
CODE
            repeat with UnePhoto in (item I of ListePhotos)
                display dialog "ajout de la photo:" & UnePhoto
                make new attachment with properties {file name:(UnePhoto as alias)} at after the last paragraph
            end repeat


Clique un coup sur le bouton marteau, en haut de la fenêtre de l'éditeur (si tu as une erreur, c'est que l'une des corrections n'est pas bonne), puis enregistrer et quitter.
Refermer la fenêtre d'action de dossier avec les 2 colonnes.

Cela devrait fonctionner : tes emails doivent contenir les photos en pièces jointes ! C'est mon cas lors de mon test avec tes fichiers.

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
Manu75017
posté 30 Nov 2015, 03:49
Message #14


Nouveau Membre


Groupe : Membres
Messages : 12
Inscrit : 29 Nov 2015
Membre no 197 284



On y est smile.gif

le script fait parfaitement le job, merci beaucoup!

les seul trucs qui me turlupinent,

-c'est que mail, choisit de manière aléatoire mon adresse d'expéditéur

J'ai 4 comptes emails, et je voudrais en privilégier une adresse pour mes envois via ce script,
Apres avoir regarder dans les préférences de mail, je ne vois pas comment, sans désactiver les autres boîtes comment choisir celle que je veux utiliser


- que je dois valider par Ok chaque message,
cela m'ouvre une boite de dialogue pour chaque ajout de photo dans les mails

si je fais un gros envois, je risque de beaucoup cliquer de ok

D'autre part,
penses-tu qu'il soit possible avec exiftool, de créer un champ IPTC sur mesure?
(qui serait reconnu dans des logiciels comme photoshop ou lightroom par exemple)

je m'explique: j'aimerais dans l'absolu faire un champ "modèle" plus personnalisé
car celui par défaut n'est pas très adapté:
c'est un mélange de "description" et "modèle"
(personne figurant sur l'image dans description, et nous avons âge etc dans l'autre)

J'imaginais moi,
un champ modèle du genre:
Nom et prénom du modèle
adresse email
téléphone

que dans le futur on puisse synchroniser ces données avec le carnet d'adresse par exemple (importer une fiche contact,
car parfois j'ai déjà toutes ces données dans mon ordi avant un shooting
et je trouve laborieux de faire cette opération)
Comme dans le sens inverse que l'on puisse exporter les données IPTC de ce nouveau champ "modèle", pour créer de nouvelles fiches contacts
et comble du bonheur y mettre la photo en question comme photo de contact




merci encore
bien à toi,

Ce message a été modifié par Manu75017 - 30 Nov 2015, 04:23.
Go to the top of the page
 
+Quote Post
PBell
posté 30 Nov 2015, 07:50
Message #15


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 264
Inscrit : 7 Dec 2013
Lieu : Ile de France
Membre no 188 169



Bonjour,
Que de questions !

1) sélectionner la boite d'envoi des emails :
En fait, ce n'est pas aléatoire, cela dépend de la boite mail sélectionnée dans la fenêtre ouverte de mail.
Cette fonction n'est pas directement possible dans mail, car depuis quelques versions de système, la propriété Sender ne fonctionne plus (merci Apple !).
Il faut donc contourner le problème, ce que je fais via le script ci-dessous, qui implique que l'application mail soit visible (c'est la ligne "activate" dans ton script).

CODE
tell application "Mail"
    activate
    if not (message viewer 1 exists) then make new message viewer
    set selected mailboxes of message viewer 1 to {mailbox "INBOX" of account "p_bell" of application "Mail"}
    set newMessage to make new outgoing message with properties {visible:true, subject:Mon_Sujet, content:Mon_Content}
    tell newMessage
        make new to recipient at end of to recipients with properties {name:"", address:Mon_Destinataire}
    end tell
end tell


Compte tenu de tes progrès, je pense tu tu vas pouvoir corriger tout seul ton script en lui ajoutant les lignes 3 et 4 ci-dessus, juste après ta ligne "activate dans ton script actuel.
Il faut bien sûr que tu corriges le account "p_bell" avec ton propre nom d'account (le nom, pas l'adresse mail).


2) Les photos sont ajoutées avec une boite de dialogue.
Désolé, c'est ma faute, j'ai laissé une trace dans le script. il faut supprimer la ligne :
CODE
display dialog "ajout de la photo:" & UnePhoto



3) les champs Exif/IPTC.
En fait la norme est assez flexible, mais l'utilisation de champs propriétaires risque de n'être vue par aucun logiciel standard. Il y a déjà beaucoup de champs possibles (sans doute plus que tu ne l'imagines !).
Si tu veux voir les champs, va dans le terminal et entre : "exiftool -all " (sans les guillemets, mais avec l'espace après all), puis tu dropes un fichier image et touche return.
Le Terminal va lister tous les champs Exifs présents dans cette image.
Sur Google, tu verra aussi des listes possibles (la commande ne te montre que les champs présents dans l'image).
Je suis certain que tu trouvera ton bonheur sans en ajouter.


4) Oui, il est possible d'écrire dans les champs avec tes valeurs en shell ou Applescript.
Par exemple la commande suivante ajoute les mot-clé Super et Photo (en plus des mots déjà existants) dans le fichier Image1.JPG situé sur mon bureau :
CODE
exiftool -Keywords+='Super, Photo' -Overwrite_Original User/me/Desktop/Image1.JPG

L'attribut -Overwrite_Original demande à Exiftool d'enregistrer le fichier directement sur l'original.
Sans cette instruction, exiftool change le nom de l'ancienne version pour la garder comme sauvegarde.
Je ne peux ici expliquer toutes les possibilités d'Exiftool. il faudrait des pages. Avec la commande "Exiftool -h" dans le Terminal, tu aura une idée.
Cela m'a pris quelques heures pour mettre au point tout ce que je souhaitais...


5) Oui, il est possible de gérer le carnet d'adresse via script (ajouter un contact, changer son nom, son age, sa photo,...)
Pour voir les fonctions scriptables du carnet d'adresse, tu ouvres l'éditeur de script, menu fenêtre / bibliothèque.
Dans la petite fenêtre qui apparaît, clique sur le signe plus et tu sélectionnes l'application de ton choix, ici "Contact".
Contact sera ajouté à la liste. Avec un double click dessus, une fenêtre s'affiche avec tout ce qui est scriptable pour cette application.

Mais là, tu vas te lancer dans des scripts plus complexes car il faut tenir compte de nombreux cas :
- la fiche existe déjà (basée sur quoi ? le nom seul, le nom et le prénom ?...) ou faut-il la créer ?
- si elle existe déjà dois tu appliquer les modifications ? Si il n'y a pas de photo, tu peux mettre la nouvelle, mais si il y en a déjà une, tu fais quoi ?
- idem pour l'adresse mail ? tu la corriges, tu ajoutes une seconde adresse, ou quoi ?
- tu pourra vouloir demander des confirmation, ou pas...

En fait le plus dur ne sera pas d'écrire le script lui-même, mais de bien prendre le temps, AVANT, avec un papier et un crayon (eh oui, y a pas mieux) de lister tous les cas, tous les tests, et ce que le script doit faire à chaque fois.
Cette méthode est la seule qui te permettra le succès avec un script structuré et lisible.

Bon courage !


--------------------
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
Manu75017
posté 30 Nov 2015, 09:28
Message #16


Nouveau Membre


Groupe : Membres
Messages : 12
Inscrit : 29 Nov 2015
Membre no 197 284



Super! merci
j'avoue que je t'ai bombardé de questions lol
mais c'est vrai que de passer d'automator à l'Applescript, ça fait faire de la brasse coulée wink.gif


Effectivement dans un premier temps, je vais prendre le temps de bien comprendre ton script, le décortiquer,
histoire d'apprivoiser le raisonnement et la méthodologie

Mais ton aide à été fort précieuse et je t'en remercie, il est bien plus facile d'être sur un cas qui nous concerne,
que sur des scripts de tutoriels non utile pour sois-même,

là, avec celui-là, déjà ça va me faire gagner beaucoup de temps! smile.gif
Et je vois déjà l'étendu des possibilités avec ce type de script!

Merci aussi pour l'astuce de Mail, souvent il m'arrivait de ne pas comprendre pourquoi il privilégiait une adresse plutôt qu'une autre wink.gif

Je me demandais une autre chose aussi,
penses-tu qu'il soit possible alors que le chemin d'accès de l'image est lancée dans le script, qu'avant que la photo soit mise en PJ dans le mail,
d'effacer ces emails des mots-clés, pour des raisons de protection de vie privée?
Car je vois beaucoup de choses qui circulent sur le net à ce sujet: de se méfier des données incluses dans les photos

Vu que les images que j'envoie, sont des exports ponctuel (pas des fichiers originaux) qui seront effacés par la suite,
cela m'est donc égal d'effacer les mails des mots-clés

En fait je ne vois pas du tout à quel moment, une commande d'effacement pourrait avoir lieu, il faudrait que le script mémorise le mail dans la mémoire tampon, non?
ça me parait bien bien compliqué

En tout cas cette partie est super instructive, je comprends beaucoup mieux le raisonnement qu'il faut avoir pour les scripts :

"Mais là, tu vas te lancer dans des scripts plus complexes car il faut tenir compte de nombreux cas :
- la fiche existe déjà (basée sur quoi ? le nom seul, le nom et le prénom ?...) ou faut-il la créer ?
- si elle existe déjà dois tu appliquer les modifications ? Si il n'y a pas de photo, tu peux mettre la nouvelle, mais si il y en a déjà une, tu fais quoi ?
- idem pour l'adresse mail ? tu la corriges, tu ajoutes une seconde adresse, ou quoi ?
- tu pourra vouloir demander des confirmation, ou pas..."


Bien à toi

Ce message a été modifié par Manu75017 - 30 Nov 2015, 14:54.
Go to the top of the page
 
+Quote Post
luc1en
posté 30 Nov 2015, 09:57
Message #17


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 403
Inscrit : 29 Aug 2006
Lieu : France
Membre no 66 917



Bonjour,

source : documentation Exiftool
Exiftool gère un très grand nombre de métadonnées, dont les valeurs EXIF ne sont qu'une petite partie.
Les champs IPTC gérés par Exiftool http://owl.phy.queensu.ca/~phil/exiftool/TagNames/IPTC.html

La seule mention d'un champ keyword dans les valeurs EXIF ne concerne que les systèmes Windows.
Citation
0x9c9b XPTitle int8u IFD0 (tags 0x9c9b-0x9c9f are used by Windows Explorer; special characters in these values are converted to UTF-8 by default, or Windows Latin1 with the -L option. XPTitle is ignored by Windows Explorer if ImageDescription exists)
0x9c9c XPComment int8u IFD0
0x9c9d XPAuthor int8u IFD0 (ignored by Windows Explorer if Artist exists)
0x9c9e XPKeywords int8u IFD0
0x9c9f XPSubject int8u IFD0


Documentation IPTC http://www.iptc.org/std/photometadata/docu...nesdocument.htm

Script puissant, PBell, à éplucher à tête reposée.
Merci aussi, je ne doute pas d'y apprendre des tonnes de choses.
La même chose développée sous forme d'une extension ferait le bonheur de Manu et des utilisateurs de Lightroom.


--------------------
Quelques très vieux Mac stockés ici et là.
Et enfin un ordi moderne… sous Linux.
Go to the top of the page
 
+Quote Post
Manu75017
posté 30 Nov 2015, 15:06
Message #18


Nouveau Membre


Groupe : Membres
Messages : 12
Inscrit : 29 Nov 2015
Membre no 197 284



Merci Lutch,

chouette lien pour la documentation wink.gif

Go to the top of the page
 
+Quote Post
PBell
posté 30 Nov 2015, 20:49
Message #19


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 264
Inscrit : 7 Dec 2013
Lieu : Ile de France
Membre no 188 169



Merci Lutch de ce lien sur les IPTC.

Je ne connaissant pas certains champs. Super !
Il me semble toutefois incomplet. Exiftool gère les IPTC relatives au contact pour la photo, comme le nom, l'adresse, le mail, etc...
Par exemple le champ CreatorWorkEmail contient l'email du créateur. Ce champ est visible/éditable dans Photoshop et j'ai cru que c'était celui dont parlait Manu.

En fait j'ai l'impression que IPTC peut gérer n'importe quoi car sa structure de données est faite de : nom du champ, nombre de caractères, valeur de champ et position du champ suivant. ... et ainsi de suite !
Officiellement un partie des données de photos migre progressivement en xml, mais déjà la structure offre cette souplesse.


En fait je me suis fait il y a quelques temps déjà un script à choix multiples basé sur des sélections du Finder (dossier et/ou fichiers). Ce script peut lister et /ou ajouter des mots clés, il peut aussi changer les noms de fichiers en masse (avec ou sans compteur) changer les suffixes (extensions), changer ne début des noms, changer la date de prise de vue, ou simplement compter les fichiers (y compris ceux des sous-dossiers de sous -dossiers).
Cela ma permis de ranger, tager/identifier mes 8000 photos très rapidement.
L'astuce (c'est gratuit) est de faire votre script qui utilise les fichiers/dossiers sélectionnés, et de mettre ce script dans la barre d'outil d'une fenêtre Finder !
ainsi j'ouvre n'importe que fenêtre Finder, sélectionne les dossiers/fichiers que je veux changer et je clique sur l'outil !!
C'est finalement bien plus rapide que des actions de dossier.


Manu,
Pour en revenir à tes questions :
Oui, bien sûr retirer l'adresse email est faisable AVANT de mettre les photo en Pj de l'email.
Dans ton cas, le plus simple est de supprimer tous les mot-clés (en fait les remplacer par du vide).
L'instruction Terminal est : exiftool -KeyWords=' ' -Overwrite_Original Chemin/Fichier
Tu peux aussi ne pas mettre -Overwrite_Original et mettre un second nom de chemin2/fichier2 pour indiquer le nouveau nom du fichier modifié. Il faudra alors mettre en pj ce dernier fichier et pas l'original (qui , lui, gardera l'email !)

Cette instruction doit être appelée dans un do shell script. Ton script contient déjà un exemple dont tu peux t'inspirer.
La sous-routine qui lit les mots clé execute en fait un : Exiftool -KeyWords Chemin/Fichier
tu la dupliques et la change un peu...et hop ! Tu vois tout de suite l'intérêt d'avoir une méthode de programmation avec des sous-routine bien identifiée.

Idem pour tous les autres champs:
- exiftool -tag Chemin/Fichier lit les valeurs du tag indiqué
- exiftool -tag+='xxx' Chemin/Fichier ajoute ou défini la valeur xxx au tag spécifié (ajoute si le tag est une liste comme les mot-clés)
- exittool -tag='xxx' assigne xxx comme unique valeur du tag (il n'y a pas le + devant)
Tu peux même supprimer tous les tags en une fois et utiliser l'option -P pour réserver la date/time originale.

Tout est expliqué dans le Terminal avec le commande : exiftool -h (...et quelques heures d'essais sur des photos régulièrement remplacées !!)
Tu peux même, en une seule instruction, traiter tous les fichiers d'un dossier !

Dans ton script, tu appelles l'instruction de suppression de l'email dans la photo avant le "make new attachement with properties..." qui effectue l'ajout en Pj de la photo.
Le plus simple est de faire cette suppression via une subroutine comme indiqué, cela rend le script plus lisible et flexible.


N'hésite pas à poser des questions si tu es perdu sur Exiftool. C'est un des outils les plus puissants que je connaisse.
J'y ai passé quelques heures et j'aurai été content d'avoir un peu de support à l'époque !

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
Manu75017
posté 1 Dec 2015, 09:38
Message #20


Nouveau Membre


Groupe : Membres
Messages : 12
Inscrit : 29 Nov 2015
Membre no 197 284



Merci PBell pour ces explications,

Lorsque tu dis: "Tu peux aussi ne pas mettre -Overwrite_Original et mettre un second nom de chemin2/fichier2 pour indiquer le nouveau nom du fichier modifié. Il faudra alors mettre en pj ce dernier fichier et pas l'original (qui , lui, gardera l'email !)"

Cela sous-entendrait que j'ai créé un deuxième export en parallèle dans un autre dossier qui lui sera impacté par l'effacement des mots clés?
ou que le script créé une copie des fichiers dans un autre dossier tout simplement? (par pur curiosité)
De mémoire, dans le script tu avais fait une commande qui liste les adresses email seulement "il regarde si cela a la forme [email protected] (si il y a une @ et un ".")"
ne pourrais-je pas recopier tout simplement cette commande suivi du overwrite_keyword, avant le "make new attachement with properties..." ?

Mais bon, la solution d'effacement par un espace vide de la totalité des mots clés me va bien, pour le moment
je vais tener la modification du script dans ce sens pour l'instant wink.gif

Lorsque tu parles de "do shell", tu fais référence à l'utilisation du terminal? pour les sous-routines? c'est ce que j'ai vu comme définition sur le web (pour mac OSX)

et pour:
"Idem pour tous les autres champs:
- exiftool -tag Chemin/Fichier lit les valeurs du tag indiqué
- exiftool -tag+='xxx' Chemin/Fichier ajoute ou défini la valeur xxx au tag spécifié (ajoute si le tag est une liste comme les mot-clés)
- exittool -tag='xxx' assigne xxx comme unique valeur du tag (il n'y a pas le + devant)
Tu peux même supprimer tous les tags en une fois et utiliser l'option -P pour réserver la date/time originale."


(je sais que ça peut paraître bête de le demander mais je préfère être sur d'avoir bien compris)
Tag correspond qu'aux mots-clés ou à toutes les données IPTC?

En tout cas c'est super de bien vouloir m'aider pour exiftool, il me donne pleins d'idées de script, car le module d'importation de lightroom est très limité, par rapport à mon utilisation
de même que de nombreux autres logiciels du même genre

bien à toi,

Ce message a été modifié par Manu75017 - 1 Dec 2015, 09:46.
Go to the top of the page
 
+Quote Post
luc1en
posté 1 Dec 2015, 16:44
Message #21


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 403
Inscrit : 29 Aug 2006
Lieu : France
Membre no 66 917



Citation (Manu75017 @ 30 Nov 2015, 15:06) *
Merci Lutch,

chouette lien pour la documentation wink.gif

Citation (PBell @ 30 Nov 2015, 20:49) *
Merci Lutch de ce lien sur les IPTC.

Je ne connaissais pas certains champs.

Bonjour,

content d'avoir pu vous aider.
Je potasse le sujet depuis … un certain temps dira-t-on emot_012.gif et Lightroom est mon outil principal pour les images.
@Manu, tu as un usage très particulier de Lightroom à ce que je comprends. As-tu posé la question dans les forums dédiés, français ou US ? Quelqu'un aura peut-être eu une problématique voisine et trouvé des solutions.


--------------------
Quelques très vieux Mac stockés ici et là.
Et enfin un ordi moderne… sous Linux.
Go to the top of the page
 
+Quote Post
Manu75017
posté 1 Dec 2015, 17:36
Message #22


Nouveau Membre


Groupe : Membres
Messages : 12
Inscrit : 29 Nov 2015
Membre no 197 284



Bonjour Lutch,

Si je cherche à employer des scripts hors du logiciel lightroom, c'est pour me permettre de bosser avec d'autres logiciels aussi, mais il m'est arrivé de regarder les forums de lightroom, de poser des questions.

Par exemple je bosse enormement en mode connecté avec mon boitier, et selon l'appareil que j'utilise,
Il m'arrive aussi de travailler sur capture one avec un phaseOne, ou Focus avec un Hasselblad
Quoique pour ce dernier, depuis le plugin hasselblad sur Lightroom je l'ai laissé tombé tongue.gif

Là sur ce sujet, j'essaie d'apprendre a realiser les scripts de comprendre comment ça marche
Et d'avoir une solution multiplateforme wink.gif
Et franchement ça fait plaisir de voir des personnes comme Pbell, prendre le temps d'aider, de bien expliquer et de partager leur savoir, c'est vraiment sympa

En tout cas c'est sympa aussi de vouloir m'aider

Ce message a été modifié par Manu75017 - 1 Dec 2015, 17:39.
Go to the top of the page
 
+Quote Post
PBell
posté 1 Dec 2015, 19:55
Message #23


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 264
Inscrit : 7 Dec 2013
Lieu : Ile de France
Membre no 188 169



Bonsoir Manu,
Je suis désolé si j'en ai mis trop d'un coup. Bon, je vais essayer d'éclaircir.

D'abord, les tag : oui, ce sont les attributs des fichiers, soit :
- Exif : données appareil photo, type, ouverture, vitesse obturateur, vitesse ISO, orientation appareil, utilisation flash oui/non, date/heure de prise, sensibilité, position GPS, résolution en pixel /inch et taille, espace colorimétrie, etc...)
- IPTC : données parfois similaires à Exif mais surtout des données de description, mot-clé, ville, pays, genre, contact, email de l'auteur, source, copyright, etc... )
De la même façon, il y a aussi des tags dans des fichiers vidéo ou audio (album, artiste, etc...)

Pour les photos il existe aussi d'autres types d'information (Photoshop en ajoute, j'imagine que Lightroom aussi et sans doute Aperture !).

Tous ses paquets de données sont regroupés sous le nom générique de tag (pour les anglo-saxons).
Le terme français serait attributs ou paramètre...mais restons sur le mot "tag" !

L'outil exiftool lit et affiche beaucoup de ces tags. Impossible de répondre "tous" faute de liste exhaustive, mais pour l'instant je ne l'ai pas pris en défaut.
Par contre, exiftool ne permet pas l'écriture de tous ces tags.
Beaucoup, oui, mais tous, non (là je le confirme car les tag audio ne sont que lus). Cela dépend aussi du format de fichiers (dans le Terminal, la commande exiftool -h donne la liste des lecture/écriture acceptés selon les formats de fichiers)


Lorsque tu modifies un fichier image avec exiftool, tu as, en gros, 3 modes : (il y en a d'autres, mais ça va déborder du cadre !)
1) tu modifies les tags du fichier directement : c'est bien, simple, mais c'est "destructif" ! Si tu effaces les mot-clé, pas moyen de revenir en arrière.
2) tu demandes à exiftool de créer un backup du fichier. C'est l'option par défaut. Le fichier "image1.JPG" est copié, avant modification, en "Image1.JPG_original", et le fichier "image1.JPG" contient la modification. Si tu veux revenir en arrière, tu effaces "image1.JPG" et renomme le "Image1.JPEG-original".
3) tu spécifies le fichier modifié : l'original n'est pas touché, mais un nouveau fichier est crée, avec les modifications.
Dans le cas 2, exiftool dispose d'instructions complémentaires pour effacer tous les _original, in finé. (là aussi hors cadre !)

Quelques exemples avec au départ le fichier P1.jpg sur le bureau, pour lequel je remplace tous les mots clé par le mot "test" :
1) exiftool -Keywords=test -Overwrite_original ~/Desktop/P1.jpg -> le fichier P1 est modifié
2) exiftool -Keywords=test ~/Desktop/P1.jpg -> le fichier P1.jpg est modifié et le fichier non modifié P1.jpg_original est crée comme sauvegarde
3) exiftool -Keywords=test ~/Desktop/P1.jpg -o ~/Desktop/P2.jpg -> le fichier P1 est inchangé, et le fichier P2 est crée avec la modification.

Tu peux tester sur le Terminal pour t'exercer. Au lieu de taper des chemins d'accès (dossier, sous dossiers,...) tu peux directement droper les fichiers à l'endroit où est le curseur dans le Terminal. Attention aux espaces !!!


La seconde partie que tu dois comprendre est l'ajout, la lecture ou l'écriture :
Exiftool -Keywords=test ~/Desktop/P1.jpg -> remplace tous les mot-clé par l'unique mot-clé "test"
exiftool -Keywords+=test ~/Desktop/P1.jpg -> ajoute le mot-clé "test" à la liste des mots clé déjà présents dans P1.jpg
exiftool -Keywords ~/Desktop/P1.jpg -> lit et liste tous les mots clés présent dans le fichiers

j'ajoute comme cerise sur le gateau : exiftool -all ~/Desktop/P1.jpg -> qui liste tous les tag du fichier P1 ! (profitez en c'est promo !)


Enfin on peut traiter plusieurs tag en même temps. De même on peut traiter plusieurs fichiers en même temps, voire un dossier complet.
Je te laisse le loisir de regarder par toi-même, mais sache que plus tu ajoutes de combinaisons, en une seule instruction, plus ça sera rapide, élégant, mais plus tes neurones vont chauffer pour la syntaxe à adopter.
Avec l'habitude, ça va, mais je te conseille de commencer par du simple et robuste : 1 tag à la fois dans un fichier à la fois !


Enfin, tout ce que tu viens certainement d'expérimenter sur le Terminal, en commande directe, peux être traduit dans un script Applescript avec la commande do shell script. Cette commande simule ce que tu tapes sur la fenêtre Terminal (que les puristes me pardonne, mais je simplifie !)

Par exemple, après de multiples essais sur le Terminal, tu es content de ta commande : exiftool -Keywords=test -Overwrite_original ~/Desktop/P1.jpg
Pour la reproduire dans ton script il faut écrire :
CODE
Set S to do shell script "exiftool -Keywords=test -Overwrite_original ~/Desktop/P1.jpg"

La variable S contiendra soit "" (vide) si tout s'est bien passé, soit le texte d'erreur que t'aurai renvoyé le Terminal.
Cela peut être compliqué à décrypter, aussi il vaut mieux faire un bloc try qui gère l'erreur sans planter !
CODE
Try
Set S to do shell script "exiftool -Keywords=test -Overwrite_original ~/Desktop/P1.jpg"
on error
-- mettre ici ce qu'on doit faire en cas d'erreur
end try


Dans le script que je t'ai écris, tu ne vois pas cette forme car en pratique ton script ne va pas gérer uniquement P1.jpg sur ton bureau !!
Il va gérer des liste de fichier qui seront dans des variables.
Donc j'ai changé le script envoyé à la commande do shell script pour un mélange de parties fixes et variables :
CODE
do shell script  "exiftool -Keywords=" & variable_motcle & " -Overwrite_original " & variable_nom_fichier


Voilà ! A toi de t'exercer. Comprendre et tester est le meilleur moyen d'apprendre.

Courage !


--------------------
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
luc1en
posté 1 Dec 2015, 23:35
Message #24


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 403
Inscrit : 29 Aug 2006
Lieu : France
Membre no 66 917



Bonsoir,

@PBell
quoique non concerné directement, je lis avec attention ta prose, hautement instructive.

J'ai regardé d'un peu plus près les commandes exiftool, la puissance de cet outil semble sans limites –ou largement supérieure aux miennes.

J'ai obtenu l'ensemble des champs de métadonnées qu'il sait utiliser, avec
Code
exiftool -listx >~/Downloads/exiftoolkeys.xml


Énorme !


--------------------
Quelques très vieux Mac stockés ici et là.
Et enfin un ordi moderne… sous Linux.
Go to the top of the page
 
+Quote Post
Manu75017
posté 4 Dec 2015, 19:48
Message #25


Nouveau Membre


Groupe : Membres
Messages : 12
Inscrit : 29 Nov 2015
Membre no 197 284



Bonsoir PBell,

Merci pour ces explications smile.gif
et ces exemples.
Tout me paraît beaucoup plus clair!

Avec toutes ces infos, je devrais pouvoir m'amuser avec cet outil,
et compléter le script que tu as fait

Bien à toi

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 : 26th April 2024 - 19:29