7

我正在尝试为 Adium 编写一个简单的聊天机器人,它会发布“lol”和“haha”,并在一些人不断添加我的烦人的群聊中回答基本问题。

我已经用一些简单的发送和延迟命令重复了“大声笑”部分,但我还需要做一些交互。
用问号回答“是”,例如...

信不信由你,这样一个简单的机器人会通过这些对话的图灵测试。

打开 Adium 字典并没有显示任何明显的获取消息的方式,Growl 字典也没有。

我确实发现每次收到消息时我都可以运行脚本,有没有办法访问发送的消息?

Adium 首选项 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
4

2 回答 2

3

您现在也可以使用Pipe Event通过管道传输到脚本。

于 2011-01-04T20:58:35.603 回答
1

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

现在要访问 AppleScript 中的消息内容可能需要编写一个 Adium Xtra 来转发信息。访问最后一条消息文本的 Xtra 插件示例包括Challenge/ResponseSpamFilter。SpamFilter 的源代码在 BitBucket 上找到,因此您可以修改它以将消息内容发送到 AppleScript。

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

于 2010-10-18T02:18:41.943 回答