class Ruboty::Handlers::Imascg
Constants
- IMG_URL
- PPDB_API
- VERSION
Public Instance Methods
imascg(message)
click to toggle source
# File lib/ruboty/handlers/imascg.rb, line 18 def imascg(message) mode = message[:mode] mode = 'l' if !mode || mode.empty? mode = 'l_noframe' if mode == 'noframe' return if mode == 'flush' && message[:query] == 'cache' response = ppdb_query(message[:query]) if response['message'] message.reply response['message'] return end unless response['data'].kind_of?(Array) message.reply response.inspect return end if mode == 'list' message.reply response['data'].map{ |_| _['Name'] }.join("\n") else card = response['data'].find { |card| card['Name'] == message[:query] } \ || response['data'].sample message.reply card['Name'] message.reply IMG_URL % [mode, card['ID']] end end
imascg_flush(message)
click to toggle source
# File lib/ruboty/handlers/imascg.rb, line 48 def imascg_flush(message) ppdb_cache.clear message.reply "Flushed" end
Private Instance Methods
ppdb_cache()
click to toggle source
# File lib/ruboty/handlers/imascg.rb, line 71 def ppdb_cache @cache ||= {} end
ppdb_query(query)
click to toggle source
# File lib/ruboty/handlers/imascg.rb, line 55 def ppdb_query(query) return ppdb_cache[query] if ppdb_cache[query] response = Net::HTTP.post_form(PPDB_API, "name" => query) json = ppdb_cache[query] = JSON.parse(response.body) return json rescue JSON::ParserError if response.body return {'message' => response.body} end return {'message' => 'JSON::ParserError'} end