我正在尝试为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
答案 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/Response或SpamFilter。在BitBucket上,SpamFilter的源代码是available,所以你可以想象它可以修改它以将消息内容发送到AppleScript。
编辑:自从我发布了我的回复后,用户'zostay'发现了一个名为“Pipe Event”的新Adium Xtra。它允许以我在编写第二段时所设想的方式将事件的文本发送到脚本,所以我对zostay的答案进行了投票。 Sourcecode也可用。