我用ruby编写了这个自动回复机器人,它应该在我离开时自动回复cleverbot消息:
require "cleverbot"
require "cinch"
$client = Cleverbot::Client.new
def get_answer(text)
reply = $client.write text
return reply
end
bot = Cinch::Bot.new do
configure do |c|
c.nick = "mybotsnickname"
c.server = "my.irc.testserver"
c.channels = ["#mychannel"]
end
on :message do |m|
m.reply m.user
m.reply get_answer(m.message)
end
end
bot.start
它工作良好,但会话id更改每条消息。我要做什么改变才能保留它?最好的情况是,每个给我写信的用户在cleverbot上都有不同的会话id,这样他们就可以进行单独的对话。
我对ruby很陌生。
我使用:https://github.com/benmanns/cleverbot和https://github.com/cinchrb/cinch
将其与我的抓取机器人的结构进行比较,我将尝试以下操作:
1)使get_answer成为一个helper块,并将其放在bot = Cinch:: bot 中。新:
helpers do
def get_answer(text)
reply = $client.write text
return reply
end
end
2)取代
on :message do |m|
on :message do |m, text|
3)替换
m.reply get_answer(m.message)
m.reply get_answer(text)
我想这应该可以工作。但是我对Ruby还是个新手。