Exemples
La programmation AppleScript en exemples.

Fetch
Télécharger un fichier avec FTP (1).
Imaginons qu'on veuille télécharger,en utilisant le protocole FTP, un fichier local vers une machine distante. On pourra tester le script en utilisant notre propre machine comme une machine distante en ayant pris soin d'activer le partage FTP dans les préférences système.

Exemple 11 : récupérez ici le script.

Le Script :

set fichier_a_uploade to choose file with prompt "Choisissez un fichier à télécharger en FTP"
tell application "Fetch 4.0.2"
activate
set ma_cnx to make new transfer window at beginning with properties {hostname:"localhost", userid:"nom d'utilisateur", password:"mot_de_passe", initial directory:"~/Public/"}
open remote item
("~/Public/Drop Box/")
put into transfer window (name of ma_cnx) item fichier_a_uploade format Automatic without uniquename
close window
(name of ma_cnx)
end tell


Explications :
Grâce à "make new transfer" on crée une nouvelle connexion et comme on l'a associé à "ma_cnx", on pourra la réutiliser ultérieurement afin de ne pas adresser une autre fenêtre. En utilisant "open remote item", on change de répertoire et enfin avec "put into transfer window", on transfert le fichier dont on a mémorisé l'alias avec "choose file". L'option "without uniquename" permet de transférer le fichier en écrasant un éventuel fichier qui porterait le même nom.

Astuces :
• si on veut obtenir un script plus court on peut aller directement dans la "Drop Box" ou "Boîte de dépôt" sur un Mac OS X en français en utilisant :
set ma_cnx to make new transfer window at beginning with properties {hostname:"localhost", userid:"nom d'utilisateur", password:"mot_de_passe", initial directory:"~/Public/Drop Box/"}
• Le caractère "~" désigne le dossier le l'utilsateur courant ce qui évite de taper "/Users/le_nom/" : c'est plus court et ça évite les fautes de frappe.
• Afin que le script fonctionne vraiment bien, il faudra changer quelques unes des préférences de Fetch :
- dans "Security" : désactivez "Warn before sending clear text password to secure server"
- dans "Misc" : désactivez "Show new connection dialog at startup"



Transmit
Télécharger un fichier avec FTP (2).
Imaginons qu'on veuille télécharger,en utilisant le protocole FTP, un fichier local vers une machine distante. On pourra tester le script en utilisant notre propre machine comme une machine distante en ayant pris soin d'activer le partage FTP dans les préférences système.


Exemple 12 : récupérez ici le script.

Le Script :

set fichier_a_uploade to choose file with prompt "Choisissez un fichier à télécharger en FTP"
tell application "Finder" to set nom_du_fichier to name of fichier_a_uploade
tell application "Transmit 2.5.1"
set suppress AppleScript alerts to true
activate
set ma_cnx to make new document at before front document
tell ma_cnx
connect as user
"nom d'utilisateur" with password "mot_de_passe" with initial path "~/Public/" with connection type FTP to "10.0.1.2"
set their stuff to
"~/Public/Drop Box/"
delete remote item (nom_du_fichier)
upload item
fichier_a_uploade
end tell
close
ma_cnx
set suppress AppleScript alerts to false
end tell


Explications :
Grâce à "make new document" on crée une nouvelle fenêtre de connexion. Ensuite appellera la fenêtre avec "tell ma_cnx" pour lui donner les paramètres de connexion tels que le nom de la machine distante, le nom d'utilisateur et mot de passe et le dossier visé. Ensuite, avec "set their stuff to", on se déplace dans le dossier de destination. Comme il n'y a pas d'option de copie avec écrasement du fichier portant le même nom, on est obligé d'effacer le fichier avant de télécharger le fichier avec "upload item".

Astuces :
• si on veut obtenir un script plus court on peut aller directement dans la "Drop Box" ou "Boîte de dépôt" sur un Mac OS X en français en utilisant :
connect as user "
connect as user "nom d'utilisateur" with password "mot_de_passe" with initial path "~/Public/Drop Box" with connection type FTP to "10.0.1.2""
• on utilise "
set suppress AppleScript alerts to true" afin de ne pas recevoir un message d'erreur dans le cas où aucun fichier portant le même nom d'existe.



Lego
Télécharger un fichier avec FTP (3).
Imaginons qu'on veuille télécharger,en utilisant le protocole FTP, un fichier local vers une machine distante. On pourra tester le script en utilisant notre propre machine comme une machine distante en ayant pris soin d'activer le partage FTP dans les préférences système.

Exemple 13 : récupérez ici le script.

Le Script :

set fichier_a_uploade to choose file with prompt "Choisissez un fichier à télécharger en FTP"
tell application "Finder" to set nom_du_fichier to name of fichier_a_uploade
set ftpURL to "ftp://nom d'utilisateur:mot_de_passe@localhost/Users/nom d'utilisateur/Public/Drop Box/" & nom_du_fichier
tell application "URL Access Scripting" to upload fichier_a_uploade to ftpURL replacing yes without binhexing



Explications :
Grâce à l'application "URL Access Scripting" on peut (entre autre) utiliser le protocole FTP. Ceci présente l'extrême avantage de ne pas avoir à possèder un client FTP sur ça machine. On utilse la fonction "upload fichier_a_uploade to ftpURL" qui permet de télécharger un fichier dont on connait la position sur le disque local (connu grâce à "choose file") et de le placer sur la machine distante.


Astuces :
• afin de connaitre le nom du fichier qu'on a choisit avec "choose file", on est obligé de demander au Finder le nom du fichier "tell application "Finder" to set nom_du_fichier to name of "
• on a ajouté l'option "
replacing yes" afin d'écraser tout fichier qui porterait le même nom.
• il faudra bien sûr remplacer le nom d'utilisateur, le mot de passe et le nom du dossier utilisateur dans "
ftpURL" pour que l'exemple fonctionne.