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 :
- Obtenir le morceau sélectionné par l'utilisateur.
- Obtenir les champs Artiste et Album du morceau.
- Construire le critère de recherche.
- 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 :
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 :
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 :
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 :
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 :
set
lAlbum to
(
album of
morceau)
as
string
set
lArtist to
(
artist of
morceau)
as
string
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 :
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 :
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 :
(*URL : http://images.google.com/images?ie=ISO-8859-
1&hl=en&btnG=Google+Search&q=Autechre Tri Repetae*)
III-C-4. Exécuter la recherche dans Safari.▲
La recherche est lancée dans la navigateur Safari, à l'aide de la commande open :
tell
application "Safari"
to
open
location recherche
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.
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.