|
|
- module SlackMathbot
- module Commands
- class Calculator < SlackRubyBot::Commands::Base
- operator '=' do |client, _data, _match|
- # Set API key (donut steal)
- Wolfram.appid = "R3KHQ2-2T2769PP4P"
-
- # Get equation part of argument
- eq = _match[1..-1]
-
- # Get results from Wolfram Alpha
- result = Wolfram.fetch(eq[1])
-
- # Get hash of results
- hash = Wolfram::HashPresenter.new(result).to_hash
-
- # Debug output hash
- puts hash
-
- # Breakdown hash
- pods = hash[:pods]
-
- # Try for results
- result = pods["Result"]
- puts result
-
- # If result exists
- if result != nil
- # Prettify equivalency
- result[0].sub! "~~", "≈"
- send_message client, _data.channel, result[0]
- else
- # If result doesn't exist, look for the real solution
- solution = pods["Real solution"]
- puts solution
-
- # If the real solution exists
- if solution != nil
- # Prettify equivalency
- solution[0].sub! "~~", "≈"
- send_message client, _data.channel, solution[0]
- else
- # Check the other possible name for real solutions
- solution = pods["Real solutions"]
-
- if solution != nil
- # Prettify equivalency
- solution[0].sub! "~~", "≈"
- puts solution
- send_message client, _data.channel, solution[0]
- else
- decimal = pods["Decimal approximation"]
-
- if decimal != nil
- puts decimal
- send_message client, _data.channel, decimal[0]
- end
- end
- end
- end
- end
- end
- end
- end
|