7 votes

Recevoir des messages Adium en Applescript

J'essaie d'écrire un simple robot de chat pour Adium, qui postera des "lol" et des "haha" et répondra à des questions de base dans les chats de groupe ennuyeux auxquels certaines personnes continuent de m'ajouter.

J'ai couvert la partie "lol" avec quelques commandes simples d'envoi et de retard dans une répétition, mais je dois aussi faire de l'interaction.
Répondez "oui" à tout ce qui comporte un point d'interrogation, par exemple...

Croyez-moi ou non, un bot aussi simple passerait le test de Turing pour ces conversations.

L'ouverture du dictionnaire Adium ne révèle aucun moyen évident d'obtenir des messages, pas plus que le dictionnaire Growl.

J'ai découvert que je peux exécuter un script à chaque fois qu'un message est reçu. Y a-t-il un moyen d'avoir accès au message envoyé ?

Préférez Adium http://media.ruk.ca/images/adiumpreferences.png

Mon code :

tell application "Adium"
    activate
    set theChat to the active chat
    send theChat message "Hi"
    delay 5
    send theChat message "How's life?"
    delay 10
    repeat 10 times
        send theChat message "Realy?"
        delay 5
        send theChat message "Lol :P"
        delay 15
        send theChat message "Haha XD"
        delay 15
        send theChat message "Yes1!!1"
        delay 20
        send theChat message "I like it! :D"
        delay 10
    end repeat
    send theChat message "Bye!"
    tell theChat to close
end tell

3voto

zostay Points 2879

Vous pouvez envoyer un pipe vers un script en utilisant Événement de tuyauterie aussi bien maintenant.

1voto

IIsi 50MHz Points 46

D'après l'examen du code source actuel d'Adium et une recherche des éléments actuels et passés dans le bug tracker et le wiki d'Adium qui contiennent à la fois "applescript" et "message" comme sous-chaînes, cela ne semble pas être possible en utilisant uniquement AppleScript dans Adium 1.0 à 1.3.10 (dernière version au moment de la rédaction). Il semble que cela ait été possible avec AppleScript simple dans Adium 0.89.1, mais les développeurs bénévoles ne sont pas encore convaincus que l'ajout de cette fonctionnalité en vaut la peine.

Pour accéder au contenu du message en AppleScript à l'heure actuelle, il faut probablement écrire un Adium Xtra pour transmettre l'information. Voici des exemples de plugins Xtra qui accèdent au texte du dernier message Défi/Réponse o SpamFilter . Le code source de SpamFilter est le suivant disponible sur sur BitBucket, vous pourriez donc le modifier pour envoyer le contenu des messages à un AppleScript.

EDIT : Depuis que j'ai posté ma réponse, l'utilisateur 'zostay' a repéré un nouvel Adium Xtra appelé " Événement de tuyauterie ". Il permet d'envoyer le texte d'un événement à un script exactement de la manière que j'envisageais lorsque j'ai écrit mon deuxième paragraphe, donc je vote en faveur de la réponse de zostay. Code source est également disponible.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X