J'ai pas mal galéré avant de trouver cette méthode qui n'est peut être pas la plus élégante mais ça fonctionne.
Au début j'ai essayé avec mon statut twitter, puis facebook sans succès. Et puis en regardant dans les préférences d'iChat: Alléluia! Il est possible d'exécuter un script applescript par évènement et donc quand on passe d'online à offline (et inversement).
![](data/images/caps/copie-de-capture-decran-2011-09-04-a-22.20.25.png)
Sur le site, la valeur du statut était codée en dur à offline (0) par défaut et j'oubliais tout le temps de le mettre à jour. Je l'ai donc modifié pour que cette valeur soit dans un fichier json à part:
statut.js (contenant une simple paire clé/valeur):
{ "value" : "0" }
Vu que je ne connais pas bien applescript j'ai opté pour un solution simple: créer deux scripts contenant une instruction en ligne de commande pour envoyer ce fichier par ftp (un pour online, un pour offline).Donc voici les deux scripts.
Online:
using terms from application "iChat"
on login finished
set Source to "/Users/toto/Documents/mystatus/online/status.js"
set Dest to "ftp.alwaysdata.com/www/"
do shell script "curl -u ftpuser:ftppassword -T {" & quoted form of POSIX path of Source & "} " & Dest
end login finished
end using terms from
Offline:
using terms from application "iChat"
on logout finished
set Source to "/Users/toto/Documents/mystatus/offline/status.js"
set Dest to "ftp.alwaysdata.com/www/"
do shell script "curl -u ftpuser:ftppassword -T {" & quoted form of POSIX path of Source & "} " & Dest
end logout finished
end using terms from
Les lignes avant et après le commande shell sont là pour éviter l'erreur fatale 1708 qui vous affiche 15 fenêtres d'erreur en cascade façon windoze ;-)
Tout cela se fait de façon invisible et immédiate of course.