Получать сообщения Adium в Applescript

Я пытаюсь написать простого чат-бота для Adium, который будет публиковать "lol" и "haha" и отвечать на основные вопросы в раздражающих групповых чатах, к которым некоторые люди продолжают добавлять меня.

Я покрыл часть "lol" несколькими простыми командами send и delay в повторе, но мне нужно также кое-что сделать.
Ответьте "да" на что-нибудь со знаком вопроса, например...

Поверьте мне или нет, такой простой бот прошел бы тест Тьюринга для этих разговоров.

Открытие словаря Adium не показывает ни очевидного способа получения сообщений, ни словаря Growl.

Я узнал, что могу запускать скрипт каждый раз, когда получено сообщение. Есть ли способ получить доступ к отправленному сообщению?

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

Мой код:

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

2 ответа

Решение

Теперь вы также можете транслировать в скрипт, используя Pipe Event.

На основании анализа текущего исходного кода Adium и поиска текущих и прошлых элементов в трекере ошибок Adium и вики, которые содержат в качестве подстрок "applecript" и "message", это представляется невозможным при использовании только AppleScript в Adium 1.0 до 1.3.10 (последний на момент написания). Кажется, это было возможно с простым AppleScript в Adium 0.89.1, но разработчики-добровольцы еще не уверены, что добавление этой функции обратно стоит усилий.

Для доступа к содержимому сообщения в AppleScript сейчас, вероятно, требуется написание Adium Xtra для пересылки информации. Примеры плагинов Xtra, которые получают доступ к тексту последнего сообщения, включают Challenge/Response или SpamFilter. Исходный код SpamFilter доступен в BitBucket, так что вы можете изменить его для отправки содержимого сообщения в AppleScript.

РЕДАКТИРОВАТЬ: С тех пор, как я опубликовал свой ответ, пользователь 'zostay' обнаружил новый Adium Xtra под названием " Pipe Event". Это позволяет отправлять текст события в сценарий в точности так, как я предполагал, когда писал свой второй абзац, поэтому я голосую за ответ Зостая. Исходный код также доступен.

Другие вопросы по тегам