我用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,这样他们就可以进行单独的对话。
我对红宝石很新。
我用过:https://github.com/benmanns/cleverbot 和https://github.com/cinchrb/cinch
答案 0 :(得分:0)
将此与我的cinch bot的结构相比较,我会尝试以下方法:
1)使 get_answer 成为帮助程序块并将其置于 bot = Cinch :: Bot.new 块中
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的新手。