在Applescript中接收Adium消息

时间:2010-01-24 17:50:19

标签: applescript adium

我正在尝试为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 个答案:

答案 0 :(得分:3)

您现在也可以使用Pipe Event来管道编写脚本。

答案 1 :(得分:1)

基于对当前Adium源代码的审核以及Adium bug跟踪器和wiki中包含“applescript”和“message”作为子字符串的当前和过去项目的搜索,仅使用AppleScript时似乎不可能在Adium 1.0到1.3.10(最新的撰写时)。在Adium 0.89.1中似乎可以使用普通的AppleScript,但志愿者开发人员还不相信添加此功能是值得的。

要立即访问AppleScript中的消息内容,可能需要编写Adium Xtra来转发信息。访问上一条消息文本的Xtra插件示例包括Challenge/ResponseSpamFilter。在BitBucket上,SpamFilter的源代码是available,所以你可以想象它可以修改它以将消息内容发送到AppleScript。

编辑:自从我发布了我的回复后,用户'zostay'发现了一个名为“Pipe Event”的新Adium Xtra。它允许以我在编写第二段时所设想的方式将事件的文本发送到脚本,所以我对zostay的答案进行了投票。 Sourcecode也可用。