class Lita::Handlers::Freesound
Constants
- BASE_SEARCH_URL
- BASE_SOUND_URL
Public Instance Methods
get_sound(response)
click to toggle source
# File lib/lita/handlers/freesound.rb, line 16 def get_sound(response) query = response.args.join("+") api_token = Lita.config.handlers.freesound.api_key query_string = "#{BASE_SEARCH_URL}/?query=#{query}&token=#{api_token}&format=json" fs_search_response = Net::HTTP.get( URI(query_string) ) data = JSON.parse(fs_search_response) if data['count'] if data['count'] > 0 results = data['results'] sound_id = results[0]['id'] sound_name = results[0]['name'].split('.')[0] fs_sound_response = Net::HTTP.get( URI("#{BASE_SOUND_URL}/#{sound_id}/?token=#{api_token}&format=json") ) data = JSON.parse(fs_sound_response) preview_url = data['previews']['preview-hq-mp3'] response.reply "#{sound_name} - #{preview_url}" else response.reply "No sounds match '#{query}'" end else response.reply "Freesound request failed." Lita.logger.error("Freesound request failed: #{response.inspect}.") end end