Бот Cleverbot ruby irc

#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.