#ruby #bots #irc #cinch
#ruby #боты #irc #подпруга
Вопрос:
Я написал этого бота с автоматическим ответом на 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
Он работает нормально, но идентификатор сеанса изменяет каждое сообщение. Что мне нужно изменить, чтобы сохранить его? в лучшем случае каждый пользователь, пишущий мне, получает другой идентификатор сеанса в cleverbot, чтобы у них были индивидуальные беседы.
Я довольно новичок в ruby.
Я использовал: https://github.com/benmanns/cleverbot и https://github.com/cinchrb/cinch
Ответ №1:
Сравнивая это со структурой моего бота cinch, я бы попробовал следующее:
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.