Sha256: 132eeb2077e097d1f6e573698a3c16f70fb323bdacfc8168c40e69c43f8ec1ff

Contents?: true

Size: 1.27 KB

Versions: 27

Compression:

Stored size: 1.27 KB

Contents

require 'crack'

module Plugins
  class Wolfram
    include Cinch::Plugin
    include Cinch::Helpers
    include ActionView::Helpers::DateHelper
    enable_acl


    self.plugin_name = 'Wolfram Alpha plugin'
    self.help = 'WIP'

    match /wolfram (.+)/, method: :calculate
    match /wolframalpha (.+)/, method: :calculate
    match /calc (.+)/, method: :calculate

    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

  ####
  end
end

# AutoLoad
Bot.config.plugins.plugins.push Plugins::Wolfram

Version data entries

27 entries across 27 versions & 1 rubygems

Version Path
zetabot-2.0.3 lib/Zeta/plugins/wolfram.rb
zetabot-2.0.2 lib/Zeta/plugins/wolfram.rb
zetabot-2.0.1 lib/Zeta/plugins/wolfram.rb
zetabot-2.0.0 lib/Zeta/plugins/wolfram.rb
zetabot-1.1.0 lib/Zeta/plugins/wolfram.rb
zetabot-1.0.7 lib/Zeta/plugins/wolfram.rb
zetabot-1.0.6 lib/Zeta/plugins/wolfram.rb
zetabot-1.0.5 lib/Zeta/plugins/wolfram.rb
zetabot-1.0.4 lib/Zeta/plugins/wolfram.rb
zetabot-1.0.3 lib/Zeta/plugins/wolfram.rb
zetabot-1.0.2 lib/Zeta/plugins/wolfram.rb
zetabot-1.0.1 lib/Zeta/plugins/wolfram.rb
zetabot-1.0.0 lib/Zeta/plugins/wolfram.rb
zetabot-0.0.22 lib/Zeta/plugins/wolfram.rb
zetabot-0.0.21 lib/Zeta/plugins/wolfram.rb
zetabot-0.0.19 lib/Zeta/plugins/wolfram.rb
zetabot-0.0.18 lib/Zeta/plugins/wolfram.rb
zetabot-0.0.17 lib/Zeta/plugins/wolfram.rb
zetabot-0.0.16 lib/Zeta/plugins/wolfram.rb
zetabot-0.0.15 lib/Zeta/plugins/wolfram.rb