Comment obtenir le titre et l’artiste joué actuellement dans Spotify avec Applescript ?

SEScriptEditorX

Voici un petit script qui vous permet de récupérer le morceau joué dans Spotify.

Le script est simple : 

tell application « Spotify"
set Artiste to the artist of current track
set Titre to the name of current track
end tell

display dialog "Titre : " & Titre & " Artiste : " & Artiste

Image 01 (La fenêtre de l’éditeur de script avec le script et le résultat)

 

Henri Dominique Rapin 


Applwe reasonably small Recevez toutes les semaines le résumé des publications : Abonnez-vous à la Newsletter !
Publicités

Comment Remplacer un fichier par un autre avec AppleScript ?

SEScriptEditorX

Vous souhaitez remplacer un fichier par un autre, pas de problème, AppleScript saura effectuer cette opération, il existe deux approches :

Dans notre exemple, le script copie le fichier « images.jpg » depuis le dossier « Documents » vers le dossier « mes_images » en remplaçant le fichier s’il existe.

La première solution consiste à utiliser la commande « duplicate » comme ceci :

tell application "Finder" duplicate POSIX file "/Users/dom/Documents/image.jpg" to POSIX file "/Users/dom/Documents/mes_images/" with replacing end tell

Image 01

(le script dans l’éditeur de script, notation Unix)

Une autre approche assez similaire, cette fois avec la commande « move » :

tell application "Finder" move POSIX file "/Users/dom/Documents/image.jpg" to POSIX file "/Users/dom/Documents/mes-images/" with replacing end tell

Notez que dans les deux précédentes propositions nous avons utilisé la notation Unix en indiquant un chemin de type Unix avec la commande « posix » :

Vous pouvez aussi indiquer le chemin à la mode « Apple/finder » :  dans ce cas les barres latérales sont remplacées par des « : » comme ceci :

move file "Macintosh HD:Users:dom:Documents:image.jpg" to "Macintosh HD:Users:dom:Documents:mes_images” with replacing

Cette fois avec le commande « duplicate « :

duplicate file "Macintosh HD:Users:dom:Documents:image.jpg" to "Macintosh HD:Users:dom:Documents:mes_images”" with replacing

Image 02(le script dans l’éditeur de script d’Applescript)

S’il y a peu de différences entres les deux notations de chemin (Path en Anglais) je lui préfère la version Unix, elle permet iser des notamment alias ou des raccourcis vers le dossier de l’utilisateur.

Henri Dominique Rapin

Comment passer des données depuis le Terminal vers un script AppleScript ?

SEScriptEditorX

Lancer un script Applescript depuis le Terminal nécessite l’utilisation de la commande « osascript » suivi du chemin vers le fichier Applescript comme ceci :
(Ligne de commande à placer dans le terminal)

$ osascript ~/Desktop/mon_script.scpt 

(Le Script mon_Script.scpt est placé sur le bureau)

Maintenant nous souhaitons envoyer à mon script le contenu d’une variable.

La première étape consiste à créer cette variable unix comme ceci. La variable « var » contiendra le texte entre guillemets :

$ var=$(echo "Mon nom est Mac")

La transmission de la variable se fait toujours en plaçant la variable entre guillemet (pour le texte) et en plaçant un  symbole « $  » avant le nom de la variable comme ceci :

$ osascript ~/Desktop/mon-script.scpt "$var"

Les deux commandes peuvent être associées dans une seule commande en les séparant par un point virgule « ; » pour former la commande suivant :

$ var=$(echo "Mon nom est Mac"); osascript ~/Desktop/mon-script.scpt "$var"

La seconde partie consiste à créer le script AppleScript et de collecter le contenu de la variable qui est passée, la structure du script est la suivante :

on run argv repeat with i from 1 to count of argv tell application "Finder" activate display dialog (item i of argv) end tellend repeat end run

Image 01

Il s’explique ainsi. L’exécution du script s’appuie sur des arguments (on run argv).La ligne suivante boucle sur le nombre d’arguments fournis.  

Ensuite, le code entre les commandes « tell » et « end tell » est exécuté avec chaque argument.

Dans l’exemple présenté le Finder affiche le texte passé en argument, celui stocké dans la variable argv.

Vous pouvez utiliser cette astuce pour réaliser des opérations sur les fichiers AppleScript tout en plaçant la commande dans un script Shell.

Henri Dominique Rapin

Comment piloter les tableaux de préférences avec AppleScript ?

SEScriptEditorX

 

Il peut être utile dans un script d’afficher automatiquement un tableau de préférences. Vous pourriez envoyer à un ami, collègue un petit script capable d’afficher un panneau de préférences afin de le guider, ou plus directement créer un raccourcis clavier vers un de ces panneaux. 

 

Attention nous ne parlons pas de modifier une préférence mais de l’afficher. Cette fonction n’est pas documentée. Il existe pourtant une astuce qui autorise cette opération.

 

Les lignes de script à utiliser sont les suivantes  :

tell application "System Preferences" activate reveal pane "com.apple.preferences.users" end tell

 

Le script est simple, La première et dernière ligne définissent un bloc « tell », il s’agit de l’application cible, ici « System Preferences ». La seconde ligne « Activate » fait passer cette application au premier plan devant tous les programmes ouverts. Enfin « reveal pane » affiche le tableau de préférence désigné entre guillemets. 

 

 

Capture d écran 2012 12 29 à 18 08 29

 

 

Le nom du panneau est présenté en notation Java ou domaine inversé. Pour les produits apple il s’agit toujours du préfixe « com.apple.preference » puis du nom en Anglais du tableau, voici une liste partielle  : 

 

Préférences Système  : com.apple.preference.general

Clavier  : com.apple.preference.keyboard

Sécurité  : com.apple.preference.security

Son  :  com.apple.preference.sound 

Réseau  :  com.apple.preference.network

Imprimante et Fax  : com.apple.preference.printfax

Parole  : com.apple.preference.speech

Date et heure  : com.apple.preference.datetime

 

Les panneaux de préférences livrés avec Mac OS X se trouvent dans le dossier  : «  System/Library/PreferencePanes « .

(Attentions aux « s » parfois à la fin du mot « préférence » ou à la fin du nom du tableau comme pour « Displays »).

 

Si vous souhaitez lancer des panneaux d’autres applications, le plus simple est de récupérer le nom des fichiers de préférences ou Plist, ceux-ci correspondent en général au nom du tableau.

 

Pour être plus précis, vous pouvez demander à afficher un onglet, là la quête d’information est encore plus difficile, car il faut trouver le nom de l’onglet en Anglais, Apple n’ayant pas standardisé le nomination… il faut explorer les « packets «  de chaque panneau.

 

Voici comment afficher l’onglet « Couleur » du panneau « Moniteurs »  :

 

tell application « System Preferences »

   activate

   reveal anchor « displaysColorTab » of pane id « com.apple.preference.displays »

end tell

 

Nous avons ajouté le nom de l’onglet après « anchor » et le mot « of » pour « de ». Remplacez « displaysColorTab » par « displaysDisplayTab » pour afficher l’onglet des résolutions.

 

Quelques exemples à placer dans le script :

 

– Le panneau de préférences de l’économiseur d’écran  : 

reveal anchor « DesktopPref » of pane id « com.apple.preference.desktopscreeneffect »

 

– Le panneau de préférences de Clavier et l’onglet « raccourcis clavier »

reveal anchor « shortcutsTab » of pane id « com.apple.preference.keyboard »

 

Henri Dominique Rapin 

Comment vider la corbeille automatiquement ?

Finder

La corbeille est souvent pleine et on oublie bien souvent de la vider. Cela peut être ennuyant lorsque les fichiers sont gros, ils occupent un espace inutile sur votre disque dur.

Personnellement j’utilise Hazel (http://www.noodlesoft.com/hazel.php), un utilitaire payant qui permet de supprimer les fichiers placés dans la corbeille en fonction de leur ancienneté ou de la taille maximale que peut contenir la corbeille (1 Go dans la copie d’écran).

Image 01 (fenêtre de configuration des options de la corbeille dans Hazel).

Mais ce produit a un coup et si vous n’utilisez pas sa fonction principale qui est d’organiser vos fichiers et dossiers, cette solution est peut être chère.

Il est possible de vider une corbeille en utilisant Applescript, les trois lignes de codes sont simples :

tell application "Finder"
empty the trash
end tell

Image 02 (le script dans l’éditeur Applescript)

  • La première ligne signifie que les commandes qui suivront seront adressées au « Finder ».
  • La seconde (et la plus importante) ordonne le vidage de la corbeille
  • enfin la troisième, clos la commande « tell » en fermant le script.

L’automatisation du vidage de la corbeille peut se faire dans Automator comme ceci : Lancer Automator, sélectionnez « Processus » ou « Alarme Calendrier « si vous souhaitez programmer suivant une certaine fréquence le vidage de la corbeille.

Placez l’action « Exécuter un Script AppleScript », puis placez les trois lignes de codes au milieu des deux lignes déjà présentes.

Image 03 (le script dans Automator)

Enregistrez le flux comme une application, il vous suffira ensuite de cliquer dessus pour vider la corbeille, si vous optez pour une alarme « Alarme Calendrier » sélectionnez l’heure d’exécution puis la fréquence (tous les soirs ou toute les semaines).

Henri Dominique Rapin

Comment ouvrir automatiquement Messages lorsqu’un message est arrivé ?

SEScriptEditorX

Lorsque vous recevez un message instantané dans l’application « Messages », une alerte apparait et l’icône de l’application « saute » dans le Dock, ce sont là les réglages par défaut des alertes de l’application.

Si vous « dépendez » de Messages à titre professionnel ou que ce mode de communication est important pour vous, il est regrettable de ne pas pouvoir afficher l’application lorsque qu’un message d’une personne est reçu. Il existe un moyen de contourner cette limitation, pour se faire nous allons utiliser AppleScript.

Copiez dans un script les lignes de code suivantes :

using terms from application "Messages"
on message received
set Mafenetre to the first window whose name starts with "Messages"
set (the visible of Mafenetre) to true
end message received
end using terms from

 

Image 01

Sauvegarder ce script n’importe ou.

Ensuite ouvrez les préférences de Messages, dans l’onglet « Alertes « . Exécuter un script AppleScript ».  Et sélectionnez le script récemment enregistré.

Image 02

 (la fenêtre de sélection d’action lors de la réception d’un message)

Henri Dominique Rapin

AppleScript :: Comment Identifier les panneaux de préférences ?

SEScriptEditorX

Comment Identifier les panneaux de préférences ?

« Préférences systèmes » est une application comme les autres, elle a la particularité d’être scriptable. Elle opère comme un réceptacle à « panneaux de préférences ». Apple modifie l’organisation à chaque sortie de nouvelle version du félin. Il faut donc revoir le nom et le contenu des panneaux de préférences. La première étape consiste à identifier les panneaux.

 Il existe deux approches afin d’identifier les panneaux de préférences disponibles dans Mac OS X. La première consiste à récupérer les noms des panneaux :

tell application "System Preferences"
name of every pane
end tell

Vous récupérerez la liste des panneaux  localisés comme ceci (Mountain Lion):

{« Accessibilité », « Bluetooth », « Bureau et  éco. d’écran », « CD et DVD », « Clavier », « Contrôle parental », « Date et heure », « Démarrage », « Dictée et Parole », « Dock », « Économiseur d’énergie », « Général », « Hazel », « iCloud », « Imprimantes et scanners », « Langue et texte », « Mail, Contacts et Calendrier », « Mise à jour de logiciels », « Mission Control », « Moniteurs », « Notifications », « Partage », « Réseau », « Sécurité et confidentialité », « Son », « Souris », « Spotlight », « Time Machine », « Trackpad », « Utilisateurs et groupes »}

 Remarquez qu’un panneau s’est glissé dans cette liste « Hazel », il s’agit d’un utilitaire très pratique et non livré par Apple.

L’utilisation des noms des panneaux n’est pas forcement une bonne approche en particulier si vous développez des scripts à destination d’utilisateurs non francophones. Il est conseillé d’employer l’ID du panneau de préférences, il s’agit du nom du panneau dans le système :

 Voici le script :

tell application "System Preferences"       id <strong>of</strong> <strong>every</strong> <em>pane</em> <strong>end</strong> <strong>tell</strong>

Le résultat sera le suivant (toujours sur Mountain Lion) :

{« com.apple.preference.universalaccess », « com.apple.preferences.Bluetooth », « com.apple.preference.desktopscreeneffect », « com.apple.preference.digihub.discs », « com.apple.preference.keyboard », « com.apple.preferences.parentalcontrols », « com.apple.preference.datetime », « com.apple.preference.startupdisk », « com.apple.preference.speech », « com.apple.preference.dock », « com.apple.preference.energysaver », « com.apple.preference.general », « com.noodlesoft.Hazel », « com.apple.preferences.icloud », « com.apple.preference.printfax », « com.apple.Localization », « com.apple.preferences.internetaccounts », « com.apple.preferences.softwareupdate », « com.apple.preference.expose », « com.apple.preference.displays », « com.apple.preference.notifications », « com.apple.preferences.sharing », « com.apple.preference.network », « com.apple.preference.security », « com.apple.preference.sound », « com.apple.preference.mouse », « com.apple.preference.spotlight », « com.apple.prefs.backup », « com.apple.preference.trackpad », « com.apple.preferences.users »}

 Là encore panneau d’Hazel est présent avec la notation « java », qui commence par le domaine, le nom de la société et le nom du panneau.

 (fin de la partie 1)

Henri Dominique Rapin