Получать сообщения 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". Это позволяет отправлять текст события в сценарий в точности так, как я предполагал, когда писал свой второй абзац, поэтому я голосую за ответ Зостая. Исходный код также доступен.