class Lita::Handlers::ApiAi

Public Class Methods

aibot() click to toggle source
# File lib/lita/handlers/api_ai.rb, line 11
def self.aibot
  @aibot ||= ApiAiRuby::Client.new(
    :client_access_token => api_key
)
end
api_key() click to toggle source
# File lib/lita/handlers/api_ai.rb, line 7
def self.api_key
  Lita.config.handlers.api_ai.api_key
end

Public Instance Methods

chat(payload) click to toggle source
# File lib/lita/handlers/api_ai.rb, line 17
def chat(payload)
  message = payload[:message]
  return unless should_reply?(message)
  robot.send_message(message.source, build_response(message))
end

Private Instance Methods

aliases() click to toggle source
# File lib/lita/handlers/api_ai.rb, line 41
def aliases
  [robot.mention_name, robot.alias].map{|a| a unless a == ''}.compact
end
build_response(message) click to toggle source
# File lib/lita/handlers/api_ai.rb, line 29
def build_response(message)
  message = extract_aliases(message)
  response = self.class.aibot.text_request message.body
  reply = response[:result][:fulfillment][:speech]

end
extract_aliases(message) click to toggle source
# File lib/lita/handlers/api_ai.rb, line 36
def extract_aliases(message)
  body = message.body.sub(/#{aliases.join('|')}/i, '').strip
  Message.new(robot, body, message.source)
end
should_reply?(message) click to toggle source
# File lib/lita/handlers/api_ai.rb, line 25
def should_reply?(message)
  message.command? || message.body =~ /#{aliases.join('|')}/i
end