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



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

def calculate(m, query)
  # Rescue incase something goes wrong
  begin
    debug 'Query: ' + query
    url = URI.encode "http://api.wolframalpha.com/v2/query?input=#{query}&appid=#{Config.secrets[:wolfram]}&primary=true&format=plaintext"
    request = open(url).read
    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