2010-01-24 7 views
7

Estoy tratando de escribir un bot de chat simple para Adium, que publicará "lol" y "jaja" y responderá preguntas básicas en molestos chats grupales que algunas personas me siguen agregando.Recibir mensajes de Adium en Applescript

Cubrí la parte "lol" con unos simples comandos de envío y demora en una repetición, pero también necesito interactuar.
Responda "sí" a cualquier cosa con un signo de interrogación, por ejemplo ...

Créanme o no, un bot tan simple pasaría una prueba de Turing para esas conversaciones.

La apertura del diccionario Adium no revela ninguna forma obvia de recibir mensajes, ni tampoco el diccionario Growl.

Descubrí que puedo ejecutar un script cada vez que se recibe un mensaje. ¿Hay alguna forma de acceder al mensaje enviado?

Adium pref http://media.ruk.ca/images/adiumpreferences.png

Mi código:

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 
+0

Es "prueba de Turing", como en Alan Turing. Y me pregunto cuántas personas pasarían la prueba de Turing. Además, en la última pregunta, ¿quiere decir que desea acceder al mensaje * recibido *, o al que * usted * acaba de enviar? –

+0

Lo cambiaré. Sí, deseo tener acceso a los mensajes recibidos, para poder escribir un bot básico de chat en Applescript. – Pepijn

+0

Me he estado preguntando esto por un par de años y nunca he encontrado nada de uso. Tengo la sensación de que interesa a los desarrolladores de Adium evitar que este tipo exacto de cosas suceda, a pesar de lo bien que otros puedan usarlo. –

Respuesta

1

Basado en la revisión de la actual código fuente Adium y una búsqueda de artículos actuales y pasados ​​en el seguimiento de errores y wiki Adium que contienen tanto "applescript" y " mensaje "como subcadenas, esto no parece posible cuando se usa solo AppleScript en Adium 1.0 a 1.3.10 (la última al momento de escribir). Parece haber sido posible con AppleScript simple en Adium 0.89.1, pero los desarrolladores voluntarios aún no están convencidos de que valga la pena volver a agregar esta función.

Para acceder al contenido del mensaje en AppleScript en este momento, probablemente sea necesario escribir un Adium Xtra para reenviar la información. Los ejemplos de complementos Xtra que acceden al texto del último mensaje incluyen Challenge/Response o SpamFilter. El código fuente de SpamFilter es available en BitBucket, por lo que podría modificarlo para enviar contenido de mensajes a un AppleScript.

EDITAR: Desde que publiqué mi respuesta, el usuario 'zostay' ha detectado un nuevo Adium Xtra llamado "Pipe Event". Permite enviar el texto de un evento a un guión exactamente de la manera que imaginé cuando escribí mi segundo párrafo, así que estoy votando la respuesta de zostay. Sourcecode también está disponible.

Cuestiones relacionadas