Inforordinateurmatique

Aide aux divers cours ou � votre activit� - Bruno GADRAT

Petits bouts d'AppleScript

Pour laisser plus de temps au paysage et moins � l'informatique

Le bon langage, La bonne personne

Ici plus qu'ailleurs c'est indispensable

Le principe de base de l'utilisation d'AppleScript: s'adresser aux diverses applications de sur votre Mac et leur demander de faire quelque chose de sp�cial qui contribue � l'ensemble de ce que vous voulez faire.

La principale difficult� est de le demander au bon logiciel. Quand on appelle le finder ou Photoshop ou iTune il faut lui demander ce qu'il sait faire avec les mots qu'il comprend sinon vous aurez droit � un petit message d'erreur et beaucoup de frustration. Cette difficult� est accrue par le fait que certains mots font partie du langage, donc commun � tous les scripts et d'autres font partie du langage de l'application.
Par exemple "display dialog" fait partie du langage de l'application

Essayez le code dans l'�diteur d'AppleScript

Display dialog fonctionne dans l'application de base du Mac (Sandard Additions)
display dialog ("bonjour")
Cela fonctionne aussi dans le Finder
tell application "Finder" to display dialog ("bonjour")
mais pas dans le sous programme du Mac qui traite les images (Image Events).
tell application "Image Events" to display dialog ("bonjour")

Quand on traite des images, ce n'est pas le temps de bavarder.

La deuxi�me grande difficult� est de le dire correctement. En particulier quand on fait r�f�rence � des fichiers.
Par exemple
set pourlacorbeille to (path to desktop folder as string) & "ajeter.txt"
place le chemin du fichier ajeter.txt dans la variable pourlacorbeille sous forme de cha�ne de caract�res. C'est efficace pour affichier le nom du chemin
set pourlacorbeille to (path to desktop folder as string) & "ajeter.txt"
display dialog pourlacorbeille

ou pour d�placer le fichier ajeter.txt qui est sur le bureau vers la poubelle,
set pourlacorbeille to (path to desktop folder as string) & "ajeter.txt"
tell application "Finder" to move pourlacorbeille to trash

mais pas pour ouvrir le fichier ajeter.txt. Pour ouvrir le fichier par le finder, il faut que son chemin soit donn� sous forme d'alias (pointeur vers le fichier).
set pourlacorbeille to (path to desktop folder as string) & "ajeter.txt" as alias
tell application "Finder" to open pourlacorbeille

Donc l'essentiel est de faire attention et de ne pas se d�courrager.

Pour bien commencer

Savoir o� trouver des bons exemples

Cette page est juste faite pour avoir une id�e de comment �crire des petites actions � ins�rer dans vos scripts.

Acc�s aux scripts d�j� dans votre machine par le Finder dans le dossier applications (ou application/utilitaires pour les syst�mes 10.6)

Pour commencer � utiliser AppleScript, je vous recommande en premier lieu d'installer l'acc�s aux scripts dans votre barre des menus.
Applications/AppleScript/Install Script Menu

Le petit menu des scripts Menu Script dans la barre des menus vous donne acc�s � de nombreux scripts utiles comme par exemple renomer tous les fichiers d'un dossier. Les scritps sont plac�s dans le dossier Scripts de la biblioth�que g�n�rale de l'ordinateur. Vous pourrez y acc�der en fouillant dans le dossier Library de votre disque dur ou par
Applications/AppleScript/Example Scripts

Vous pouvez placer les scripts n'importe o�, mais il y a des r�pertoires magiques pour tous les utilisateurs
Ordinateur/disque dur/Library/Script/
Ordinateur/disque dur/Library/Script/Folder Action Scripts/
ou seulement pour vous
Ordinateur/disque dur/Users/moi/Library/Script/
Ordinateur/disque dur/Users/moi/Library/Script/Folder Action Scripts/

Les scripts plac�s dans le dossier Scripts sont accessibles par le menu Menu Script dans la barre des menus en haut de l'�cran.

Les scripts plac�s dans le dossier Folder Action Scripts peuvent s'activer automatiquement � l'ouverture, la fermeture et l'ajout ou le retrait d'�l�ments d'un dossier. Il faudra rendre le dossier actif en faisant un clic droit dessus et en lui affectant l'action de dossier d�sir�e. Par exemple faire tourner l'image sur la droite.

Une autre fa�on d'utiliser les scripts est de les enregistrer comme application. Cette application est nomm�e droplet quand elle agit avec les fichiers qu'on lui d�pose dessus.

Maintenant que le menu Menu Script dans la barre des menus est activ�, lancez l'�diteur de script
Menu Script dans la barre des menus /Basics/Open Script Editor . Vous pouvez copier dedans tous les bouts de code de cette page et les essayer.
display dialog ("bonjour")

Passez voir les r�f�rences pour en savoir plus sur l'utilisation d'appleScript et de l'�diteur de scripts.

N'oubliez pas les notions �l�mentaires de la programmation. Au minimum vous devez savoir ce que c'est qu'une variable, un type de variable, une boucle, un test conditionnel, une fonction.

Voici une boucle avec condition de sortie

set laChaine to "une chaîne à couper.texte"
repeat with compteur from 1 to (count laChaine)

end repeat
display dialog chaineCoupee

Voici une fonction (routine)

set fichierchoisi to choose file
display dialog typeDeFichier(fichierchoisi)
-- la fonction
on typeDeFichier(fichierchoisi)

end typeDeFichier

Quelques bouts de script utiles

On trouve de tout sur le net mais quel plaisir de le faire soi-m�me

La tr�s grande diversit� des logiciels disponibles couvre pratiquement tous nos besoins mais quelques petits ajouts peuvent nous faciliter la vie.

 

OuvreAvecKompozer

Droplet pour ouvrir un fichier html avec Kompozer

Vous avez remarqu� que certains logiciels comme Kompozer (�diteur wysiwig de pages web gratuit) n'ouvrent pas les fichiers qu'on d�pose dessus. Vous voulez peut-�tre simplement ouvrir plus rapidement vos fichiers avec un autre logiciel. Par exemple, on voudra ouvrir un fichier html avec un �diteur de texte comme SubEthaEdit pour structurer le squelette de la page, on voudra l'ouvrir avec un �diteur wysiwig qui garde le code propre comme Komposer pour �crire son contenu et on voudra l'ouvrir avec un navigateur pour voir son aspect.
Ce petit bout de script est une droplet. Une application qui se d�clanche quand on lui d�pose dessus des fichiers. Justement ceux que l'on veut ouvrir.

Pour faire la droplet:
Copier ce code dans l'�diteur de script, enregistrez le comme application. Glissez les fichiers html sur votre nouveau logiciel OuvreAvecKompozer.

on open (lesFichiers) -- En déposant les fichiers sur la droplet

end open

Vous pouvez aussi utiliser cette version de OuvreAvecKompozer que l'on peut aussi lancer en cliquant dessus

Certains logiciels sont r�calcitrant. Si vous remplacez Komposer par Adobe Photoshop CS il vous dira qu'il ne comprend pas open. En revanche Adobe Photoshop CS2 ne posera pas de probl�me. Si vous avez Adobe Photoshop CS et n'avez pas envie de changer de version, vous pouvez ouvrir les fichiers en rempla�ant Kompozer par Adobe ImageReady CS. Le passage des images de ImageReady � photoshop est alors tr�s simple.

 

EditDroplet

Pour mettre au point vos droplet

Vous avez enregistr� votre script comme application et maintenant il se lance � chaque fois que vous cliquez dessus. Dans votre dossier de d�veloppement des droplets vous aimerez certainement en avoir une droplet qui ouvre les autres droplets.

Voir plus haut comment faire une droplet.

on open (lesFichiers)

end open

 

SurMonDossier

Donne le nom du dossier et des fichiers ajout�s

Les actions de dossier sont certainement la chose la plus pratique pour traiter un lot de fichiers juste en les posant dans un dossier.

Pour faire une action de dossier:
Copier ce code dans l'�diteur de script, enregistrez le comme script dans le dossier Library/Scripts/Folder Action Scripts. Clic droit sur le dossier qui doit r�agir. Activez les actions de dossier et joindre cette action de dossier. Le dossier est pr�t � recevoir vos fichiers.

on adding folder items to ceDossier after receiving itemsajoutes

end adding folder items to

Vous pouvez aussi utiliser cette version

-- fonction de réaction du dossier
on adding folder items to ceDossier after receiving itemsajoutes

end adding folder items to
-- fonction qui traite ce qui est recu
on traiteLesElements(ceDossier, itemsajoutes)
end traiteLesElements

 

SurMaDroplet

Donne le nom de la droplet et des fichiers ajout�s

Parfois on pr�f�re que le logiciel soit ind�pendant du dossier mais on veut quand m�me utiliser le nom de ce sur quoi c'est d�pos�. Ce nom peut par exemple �tre le nom du projet dans lequel on veut ranger les fichiers ou bien le format ou la taille maximale des images que l'on veut r�duire.

--fonction de droplet
on open (itemsajoutes)

end open
--fonction qui donne le nom de la droplet
on nomduscript()
end nomduscript
--fonction qui traite ce qui est recu
on traiteLesElements(ceDossier, itemsajoutes)
end traiteLesElements

 

ChoisirLesElementsEtLancerLeScript

Pour lancer le script par le menu script ou par l'�diteur de script

Parfois on veut juste que les choses se fassent quand on lance le script. Ce script affiche le dossier et les fichiers s�lectionn�es. S�lectionnez les �l�ments dans le Finder et lancer le script. Comme il n'y a pas d'action de d�poser sur un dossier ou sur une application, ce script cous demandera de choisir le dossier dans une fen�tre de s�lection.

Pour lancer par le menu Scripts:
Copier ce code dans l'�diteur de script,
enregistrez le comme script dans le dossier Library/Scripts/

-- au lancement
on run

end run
-- fonction qui traite ce qui est recu
on traiteLesElements(ceDossier, itemsajoutes)
end traiteLesElements

Parfois on veut pouvoir utiliser le script en le lan�ant par le menu script, en l'utilisant comme action de dossier et en l'utilisant comme droplet c'est possible. Regardez le code de onRunOnOpenOnAddingFolder

 

chercheDansLeDictionnaire

Des listes de listes comme tableau

Chaque application pilotable par Applescript poss�de un dictionnaire de mots autoris�s que l'on peut d�couvrir par le menu Fichier/Ouvrir un dictionnaire mais il ne s'agit pas de cela. On va juste parler d'une table d'�quivalences.

Dans AppleScript une liste est une suite d'�l�ments s�par�s par des virgules et mis entre deux accolades. Les �l�ments peuvent �tre eux-m�me des listes. Ce petit dictionnaire est une liste de listes contenant chacune un �l�ment simple et une liste contenant un nombre variable d'�quivalences � cet �l�ment simple.

Essayez dans l'�diteur de Scripts:
Copier ce code dans l'�diteur de script,
essayez-le en changeant des �l�ments

set ceci to "February" -- vous pouvez essayer en vous souvenant que 2 et "2" ce n'est pas pareil
set cela to chercheDansLeDictionnaire(ceci) -- trouve la correspondance
set affiche to "" -- pour séparer les différentes réponses du résultat
repeat with i in cela

end repeat
display dialog "Il y a " & (count of cela) & " éléments correspondant à " & ceci & return & return & affiche -- le dictionnaire
on chercheDansLeDictionnaire(ceci)
end chercheDansLeDictionnaire

 

RangeLesFichier

Exemple avec le nom de l'extension

Un petit exemple tr�s simple pour ranger les fichiers selon leur extension (ce qu'il y a apr�s le point � la fin du nom du fichier).

tell application "Finder" -- travail à faire par le Finder

end tell

 

Exploration des dossiers et sous dossiers pour en traiter les �l�ments

Pour aller au fond des choses

ExploreFichiersDossiersSousDossiers Droplet pour traiter les dossiers avec tout leur contenu d'un simple glisser d�poser.

-- Applescript - Petits bouts de programmes utiles par B.Gadrat - 22 déc 2009
-- Permet d'accéder aux dossier et sous-dossier déposés sur cette droplet

-- Le script doit être enregistré comme application pour fonctionner comme droplet


-- Traitement des fichiers déposé sur cette Droplet. Développer cette fonction selon vos besoins
on traiteFichier(lElement)

end traiteFichier

-- Traitement des dossiers
on traiteDossier(lElement)
end traiteDossier

-- fonction de déclanchement de la droplet
on open (LesElementsDeposes)
end open

-- fonction au lancement si on doubleclic sur la droplet ou si on l'éxécute par le menu script ou l'éditeur de script
on run
end run

-- Separe les dossiers des fichiers
on separeDossiersFichiers(LesElementsASeparer)
end separeDossiersFichiers

-- Fais la liste des éléments du dossier -- Garder intact pour l'exploration des sous-dossiers
on faisLalisteDesElements(CheminDossierChaine)
end faisLalisteDesElements

 

Rangement-projet

Vous aussi vous avez plein de photos pas rang�es ?

Vous aimez faire des photos mais vous n'avez pas le temps de bien les nommer par projet et par date, ce qui facilite le rangement et l'utilisation.

Je sais iphoto et d'autres logiciels font �a, mais vous n'aimez pas leur rangement obscur et vous n'avez pas le temps de vous en occuper. Juste le temps de brancher l'appareil photo qui ouvre transfert d'images et de lui dire le dossier portant le nom du projet dans lequel il doit les placer. Pour le reste, l'ordinateur peut bien s'en charger

Rangement-projet utilise le nom du dossier et d'autres informations sur le fichier pour renommer les fichiers et les ranger dans un sous-dossier dont le nom peut d�pendre du projet (dossier englobant) ou du fichier. Regardez le code de rangement-projet pour l'adapter � vos besoins et ranger les choses � votre fa�on.

 

AppleScript2HTML-V2

Transformer un AppleScript en HTML

L'�diteur de script d'Apple permet d'enregistrer des fichiers en format texte avec l'extension .applescript. Mais pour les pr�senter sur le web une mise en couleurs s'impose. � la main c'est un peut long. AppleScript2HTML-V2 permet de faire cette transformation rien qu'en glissant le script sur la droplet et place le fichier html r�sultant sur le bureau avec le m�me nom que le script. Soyez un peu patient. Ne jouez pas avec l'�diteur de script pendant la transformation.

 

 

Quelques r�f�rences

Une bonne adresse pour manger une super cr�pe
La Cr�p'uscule

pub

Orig: 2009/12 Rev: 2009/12/23

AppleScript.html

Design et gestion du site B.Gadrat

Contr�le qualit�