+ def wolfram(m, params)
+ terms = CGI.escape(params[:words].to_s)
+ feed = Net::HTTP.get 'api.wolframalpha.com',
+ "/v2/query?input=#{terms}&appid=#{WOLFRAM_API_KEY}&format=plaintext"
+ "&scantimeout=3.0&podtimeout=4.0&formattimeout=8.0&parsetimeout=5.0"
+ "&excludepodid=SeriesRepresentations:*"
+ if feed.nil? or feed.empty?
+ m.reply "error connecting"
+ return
+ end
+ xml = REXML::Document.new feed
+ if xml.elements['/queryresult'].attributes['error'] == "true"
+ m.reply xml.elements['/queryresult/error/text()'].to_s
+ return
+ end
+ unless xml.elements['/queryresult'].attributes['success'] == "true"
+ m.reply "no data available"
+ return
+ end
+ answer = []
+ xml.elements.each("//pod/subpod/plaintext") { |element|
+ answer << element.text
+ }
+ # strip spaces and line breaks
+ answer[1].gsub!(/\n/, Bold + ' :: ' + Bold )
+ answer[1].gsub!(/\t/, ' ')
+ answer[1].gsub!(/\s+/, ' ')
+ m.reply answer[1].to_s
+ end
+