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