Class: Ruboty::Handlers::Bokete

Inherits:
Base
  • Object
show all
Defined in:
lib/ruboty/handlers/bokete.rb

Constant Summary collapse

AVAILABLE_MODES =
['recent', 'hot', 'popular', 'pickup', 'select', 'legend']
CACHE_EXPIRE =
10800

Instance Method Summary collapse

Constructor Details

#initialize(*args) ⇒ Bokete

Returns a new instance of Bokete.



13
14
15
16
17
# File 'lib/ruboty/handlers/bokete.rb', line 13

def initialize(*args)
  super

  @client = Client.new
end

Instance Method Details

#bokete(message) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# 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)
end

#brainObject



39
40
41
# File 'lib/ruboty/handlers/bokete.rb', line 39

def brain
  robot.brain.data[Ruboty::Bokete::NAMESPACE] ||= {}
end