Class: Plugins::Wolfram

Inherits:
Object
  • Object
show all
Includes:
ActionView::Helpers::DateHelper, Cinch::Helpers, Cinch::Plugin
Defined in:
lib/Zeta/plugins/wolfram.rb

Instance Method Summary collapse

Methods included from Cinch::Plugin

#check?, #log2chan

Instance Method Details

#calculate(m, query) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/Zeta/plugins/wolfram.rb', line 19

def calculate(m, query)
  # Rescue in case something goes wrong
  begin
    url = "http://api.wolframalpha.com/v2/query?input=#{CGI.escape(query)}&appid=#{Config.secrets[:wolfram]}&primary=true&format=plaintext"
    request = RestClient.get(url).body

    data = Crack::XML.parse(request)

    pod0 = data['queryresult']['pod'][0]['subpod']['plaintext'].strip
    pod1 = data['queryresult']['pod'][1]['subpod']['plaintext'].strip

    return 'Unable to get a results' if pod0.nil?

    if pod1.lines.count > 2
      m.user.send "# Wolfram Results #\n #{pod0}\n #{pod1}", true
    elsif pod0.length > 400
      m.user.send("#{pod0} #{pod1}", true)
    else
      m.reply "#{pod0} = #{pod1}"
    end
  rescue
    m.reply 'Unable to get a results'
  end
end