IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

À la découverte d'AppleScript


précédentsommairesuivant

III. Télécharger des couvertures d'album

III-A. Objectif

Bien qu'iTunes dispose de fonctionnalités d'importation automatique d'illustrations d'album, il arrive qu'elles soient inopérantes. Ce script AppleScript permet de rechercher sur le Web de telles illustrations.
L'idée consiste à sélectionner un morceau dans iTunes, puis à lancer le script pour qu'une recherche soit lancée sur Google Image, à l'aide des informations Artiste et Album extraites du morceau.

III-B. Algorithme

Le script suit l'algorithme suivant :

  1. Obtenir le morceau sélectionné par l'utilisateur.
  2. Obtenir les champs Artiste et Album du morceau.
  3. Construire le critère de recherche.
  4. Exécuter la recherche dans Safari.

III-C. Le script

III-C-1. Obtenir le morceau sélectionné par l'utilisateur.

Le script commence par une instruction tell, qui indique à AppleScript quelle application est l'objet de nos actions :

 
Sélectionnez
tell application "iTunes"

L'instruction suivante, activate, permet de placer iTunes au premier plan.

Puis on demande à iTunes la liste des morceaux sélectionnés par l'utilisateur, et on l'affecte à la variable morceaux :

 
Sélectionnez
set morceaux to selection

On vérifie ensuite que l'utilisateur a bien sélectionné un morceau, et un seul, à l'aide d'une construction if-else if-else :

 
Sélectionnez
if morceaux is {} then
display dialog "Sélectionnez un morceau dans iTunes !"
with icon caution buttons {"Ok"}
else if morceaux's length ≠ 1 then
display dialog "Sélectionnez un seul morceau dans iTunes !"
with icon caution buttons {"Ok"}

La variable morceaux étant une liste, on teste si elle est vide (morceaux is {}) et si sa cardinalité est différente de 1 ( morceaux's length ≠ 1).

Une relvar R est en forme normale de Boyce-Codd (BCNF) si et seulement si les seules dépendances fonctionnelles non triviales auxquelles elle satisfait sont de la forme X ➔ Y, où X représente une surclé et Y un sous-ensemble d'attributs de l'en-tête de R.
Une relvar R est en forme normale de Boyce-Codd (BCNF) si et seulement si les seules dépendances fonctionnelles non triviales auxquelles elle satisfait sont de la forme X → Y, où X représente une surclé et Y un sous-ensemble d'attributs de l'en-tête de R.

Remarque. Dans l'Éditeur de scripts, le signe "différent de" est obtenu avec les touches Alt+=.

Si un seul morceau a été sélectionné, on l'obtient à l'aide d'un accès indexé à la liste :

 
Sélectionnez
else
set morceau to item 1 of morceaux

III-C-2. Obtenir les champs Artiste et Album du morceau.

On extrait les champs Album et Artiste du morceau, contenus dans les propriétés album et artist de la classe track :

 
Sélectionnez
set lAlbum to (album of morceau) as string
set lArtist to (artist of morceau) as string
Image non disponible

III-C-3. Construire le critère de recherche.

On construit ensuite le critère de recherche, stocké dans une variable recherche, en tenant compte des cas où les champs Album et Artiste seraient vides :

 
Sélectionnez
if lAlbum is "" and lArtist is "" then
display dialog "Les champs Artiste et Albums sont vides.
Recherche impossible !" with icon caution buttons {"Ok"}
return
else if lAlbum is "" then
set recherche to lArtist as string
else if lArtist is "" then
set recherche to lAlbum as string
else
set recherche to (lArtist & " " & lAlbum)
end if

Ce critère de recherche est ensuite concaténé à l'URL du moteur de recherche, stockée sous la forme d'une propriété. L'opérateur & est utilisé pour concaténer ces deux chaînes de caractères :

 
Sélectionnez
property URL_recherche : "http://images.google.com/images?ie=ISO-8859-
1&hl=en&btnG=Google+Search&q="
set recherche to (URL_recherche & recherche)
log "URL : " & recherche

Remarque. La commande log permet d'afficher dans l'onglet Historique des événements une chaîne de caractères ou valeur d'une variable, à des fins de débogage. Ces affichages sont encadrés par des (* *). Voici ce que produit le log de notre script :

 
Sélectionnez
(*URL : http://images.google.com/images?ie=ISO-8859-
1&hl=en&btnG=Google+Search&q=Autechre Tri Repetae*)
Image non disponible

III-C-4. Exécuter la recherche dans Safari.

La recherche est lancée dans la navigateur Safari, à l'aide de la commande open :

 
Sélectionnez
tell application "Safari" to open location recherche
Image non disponible

Remarque. La commande open fait partie de la plupart des bibliothèques de pilotage d'application. Elle présente parfois des paramètres ou des variantes, comme ici avec Safari, pour ouvrir une URL distante. Écrire open recherche conduirait Safari à tenter d'ouvrir un fichier sur l'ordinateur.

Il reste à l'utilisateur à sélectionner une image parmi celle proposées par Google Images, à l'afficher en taille réelle dans Safari, puis à la faire glisser dans la zone Illustration d'iTunes, en bas à gauche de la fenêtre. Il est possible de sélectionner tous les morceaux d'un album et de mettre à jour leur couverture avec un seul glisser-déposer.

Image non disponible

Remarque. La recherche des paroles d'un morceau sélectionné peut être réalisée selon le même principe. Il suffit de lancer la recherche sur www.google.com et non plus images.google.com et d'utiliser les champs name et artist au lieu de album et artist.


précédentsommairesuivant

Copyright © 2008 Jean-Philippe Moreux. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Droits de diffusion permanents accordés à Developpez LLC.