Recibir mensajes de Adium en Applescript
-
22-09-2019 - |
Pregunta
Estoy tratando de escribir un bot de chat simple para Adium, que publicará "jaja" y "jaja" y responderá preguntas básicas en molestos chats grupales a los que algunas personas siguen agregándome.
He cubierto la parte "lol" con algunos comandos simples de envío y retardo en una repetición, pero también necesito interactuar un poco.
Responda "sí" a cualquier cosa que tenga un signo de interrogación, por ejemplo...
Créanme o no, un bot tan simple pasaría una prueba de Turing para esas conversaciones.
Abrir el diccionario Adium no revela ninguna forma obvia de recibir mensajes, ni tampoco el diccionario Growl.
Descubrí que puedo ejecutar un script cada vez que recibo un mensaje. ¿Hay alguna manera de obtener acceso al mensaje enviado?
Preferencia de Adium 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
Solución
Puede canalizar a un script utilizando Pipe Evento así ahora .
Otros consejos
Según la revisión del código fuente actual de Adium y una búsqueda de elementos actuales y pasados en el rastreador de errores y wiki de Adium que contienen "applescript" y "message" como subcadenas, esto no parece ser posible cuando se usa solo AppleScript en Adium 1.0. hasta el 1.3.10 (más tarde al momento de escribir este artículo).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 el esfuerzo de volver a agregar esta característica.
Para acceder al contenido del mensaje en AppleScript en este momento probablemente sea necesario escribir un Adium Xtra para reenviar la información.Ejemplos de complementos Xtra que acceden al texto del último mensaje incluyen Desafío/Respuesta o Filtro de spam.El código fuente de SpamFilter es disponible en BitBucket, por lo que posiblemente podría modificarlo para enviar el contenido del mensaje a un AppleScript.
EDITAR:Desde que publiqué mi respuesta, el usuario 'zostay' ha detectado un nuevo Adium Xtra llamado "Evento de tubería".Permite enviar el texto de un evento a un guión exactamente de la manera que imaginé cuando escribí mi segundo párrafo, por lo que votaré a favor de la respuesta de zostay. Código fuente también está disponible.