Initial commit of botqui (ruby)
This commit is contained in:
parent
bf08959178
commit
55b712b4ad
7 changed files with 134755 additions and 0 deletions
94
triv_api.rb
Normal file
94
triv_api.rb
Normal file
|
|
@ -0,0 +1,94 @@
|
|||
require 'uri'
|
||||
require 'net/http'
|
||||
require 'json'
|
||||
require 'cgi'
|
||||
|
||||
uri = URI('https://opentdb.com/api.php?amount=1')
|
||||
res = Net::HTTP.get_response(uri)
|
||||
|
||||
trev_running = false
|
||||
|
||||
if res.is_a?(Net::HTTPSuccess)
|
||||
question = JSON.parse(res.body)
|
||||
puts question.inspect
|
||||
|
||||
difficulty = question["results"][0]["difficulty"]
|
||||
|
||||
puts difficulty
|
||||
|
||||
question_text = CGI.unescapeHTML(question["results"][0]["question"])
|
||||
answer = question["results"][0]["correct_answer"]
|
||||
|
||||
puts answer
|
||||
|
||||
category = question["results"][0]["category"]
|
||||
|
||||
answers = question["results"][0]["incorrect_answers"]
|
||||
answers.push(answer)
|
||||
|
||||
answers.shuffle!
|
||||
# puts answers.inspect
|
||||
|
||||
puts "[" + category + "] " + question_text
|
||||
|
||||
out_str = ""
|
||||
|
||||
current_answer = "A"
|
||||
|
||||
real_answer = ""
|
||||
|
||||
max_answer = answers.max{|c1, c2| c1.length <=> c2.length}
|
||||
max_length = max_answer.length + 2 # 2 for padding a bit...
|
||||
|
||||
puts "max_length.to_s = " + max_length.to_s
|
||||
|
||||
padded_answers = answers.map{|v| v.ljust(max_length.to_i) }
|
||||
|
||||
answers_shown = 0
|
||||
|
||||
padded_answers.each{ |a|
|
||||
answers_shown = answers_shown + 1
|
||||
|
||||
if a == answer then
|
||||
real_answer = current_answer.clone
|
||||
end
|
||||
|
||||
out_str = out_str + current_answer + ") " + CGI.unescapeHTML(a) + " "
|
||||
|
||||
if answers_shown % 2 == 0 then
|
||||
out_str.strip!
|
||||
out_str = out_str + "\n"
|
||||
end
|
||||
|
||||
current_answer.next!
|
||||
}
|
||||
|
||||
puts real_answer
|
||||
out_str.delete_suffix!(" |")
|
||||
puts out_str.strip
|
||||
|
||||
puts "TRIVIA STARTING IN 5 SECONDS!"
|
||||
puts Time.now.to_i.to_s + " start 5s timer..."
|
||||
sleep(5)
|
||||
trev_running = true
|
||||
|
||||
# puts Time.now.to_i.to_s + " OK ABOUT TO START??"
|
||||
puts "You have 30 seconds! Go!"
|
||||
|
||||
# puts real_answer
|
||||
|
||||
puts Time.now.to_i.to_s + " start guess time"
|
||||
|
||||
sleep(30)
|
||||
|
||||
puts Time.now.to_i.to_s + " end time"
|
||||
|
||||
# Check the user answers
|
||||
# Check their times, calc score and save it,
|
||||
# Reset answer array, save.
|
||||
|
||||
trev_running = false
|
||||
end
|
||||
|
||||
# have trigger for !trev to start. Flag something to flip playing to true.
|
||||
# have trigger for guesses- matches on case insensitive ^ABCDTF$
|
||||
Loading…
Add table
Add a link
Reference in a new issue