Получать сообщения Adium в Applescript - PullRequest
7 голосов
/ 24 января 2010

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

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

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

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

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

Adium Pref 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 ]

3 голосов
/ 04 января 2011

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

1 голос
/ 18 октября 2010

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

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

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

...