Sha256: 97153073449556de909ed51be606af2c073733b73245a888cab0307e0bade8c2
Contents?: true
Size: 1.15 KB
Versions: 1
Compression:
Stored size: 1.15 KB
Contents
require 'rest_client' require 'nokogiri' module Lita module Handlers class OnewheelWolframAlpha < Handler config :app_id config :api_uri route(/^alpha\s*(.*)/i, :handle_wolfram_query, command: true) def handle_wolfram_query(response) unless config.app_id and config.api_uri Lita.logger.error 'Configuration error!' return end query = response.matches[0][0] api_response = make_api_call query response.reply api_response end def make_api_call(query) uri = build_uri query response = RestClient.get(uri) noko_doc = Nokogiri::XML response.to_s success_node = noko_doc.xpath('queryresult').attribute('success') if success_node.to_s == 'true' plaintext_nodes = noko_doc.xpath('//plaintext') plaintext_nodes[1].child.to_s else "Wolfram couldn't parse #{query}." end end def build_uri(query) uri = config.api_uri.sub '[query]', CGI::escape(query) uri = uri.sub '[appid]', config.app_id end end Lita.register_handler(OnewheelWolframAlpha) end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
lita-onewheel-wolfram-alpha-0.0.0 | lib/lita/handlers/onewheel_wolfram_alpha.rb |