1 votes

Est-il possible d'exécuter un shell script lorsque le statut en ligne d'iChat change sur Lion ?

J'avais un script sous Snow Leopard qui téléchargeait un minuscule fichier sur mon serveur lorsque je lançais iChat pour refléter mon statut sur mon site web. Pour une raison quelconque, cela ne fonctionne plus sous Lion.

Existe-t-il un moyen de déclencher un shell script lors d'un changement de statut online/offline dans 10.7 sans même lancer iChat ?

1voto

Option 1 : exécuter un script comme celui-ci toutes les minutes ou presque avec cron ou launchd :

#!/bin/bash

cd=~/Library/Caches/me.lri.scripts
mkdir -p $cd
cf=$cd/ichatstatuscheck
status=$(osascript -e "tell app \"iChat\" to status")
[[ -f $cf && "$status" != $(cat $cf) ]] && say "$status"
echo "$status" > $cf

(Le script active iChat à chaque fois qu'il est exécuté).


Option 2 : enregistrez cette application comme une application restant ouverte dans l'éditeur AppleScript :

repeat
    tell application "iChat"
        set prev to status
        delay 5
        if status is not prev then do shell script "say " & quoted form of status
    end tell
end repeat

(Active également iChat chaque fois qu'il obtient le statut).


Option 3 : utiliser un gestionnaire d'événement iChat (merci Kopischke)

Cela a fonctionné pour moi sur Lion, mais uniquement lorsque iChat était actif. (Pas lorsqu'il ne l'était pas et que je changeais le statut à partir de l'élément de la barre d'état d'iChat - ce qui, je suppose, était le véritable problème rencontré par le PO).

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X