class Ruboty::Handlers::Bokete

Constants

AVAILABLE_MODES
CACHE_EXPIRE

Public Class Methods

new(*args) click to toggle source
Calls superclass method
# File lib/ruboty/handlers/bokete.rb, line 13
def initialize(*args)
  super(*args)

  @client = Ruboty::Bokete::Client.new
end

Public Instance Methods

bokete(message) click to toggle source
# File lib/ruboty/handlers/bokete.rb, line 19
def bokete(message)
  mode = message[:mode]

  unless AVAILABLE_MODES.include?(mode)
    message.reply("Usage: [#{AVAILABLE_MODES.join('|')}]")
    return
  end

  cache_updated = brain['cache_updated'].to_i
  if !brain[mode] || cache_updated + CACHE_EXPIRE < Time.now.to_i
    results = @client.get(mode)

    brain[mode] = results.to_json
    brain['cache_updated'] = Time.now.to_i
  end

  result = JSON.parse(brain[mode]).sample
  message.reply((result['url'].start_with?('//') ? 'http:' + result['url'] : result['url']) + "\n" + result['boke'])
end
brain() click to toggle source
# File lib/ruboty/handlers/bokete.rb, line 39
def brain
  robot.brain.data[Ruboty::Bokete::NAMESPACE] ||= {}
end