import html import requests import random import json def get_token(): return 8675309 # data = requests.get('https://opentdb.com/api_token.php?command=request') # data = data.json() # if data['response_code'] == 0: # return data['token'] # else: # raise ValueError(f"Invalid response from opentdb.com while retrieving token: {data}") # return data['token'] def replace(x): # replace characters that didn't decode properly with correct ones # x = x.replace(""", '"') # x = x.replace("'", "'") return html.unescape(x) def clean(x): if type(x) == list: result = [] for i in x: result.append(replace(i)) return result else: return replace(x) def get_question(token): with open('trivia_db.txt') as trivia_file: trivia_q = json.load(trivia_file) q_number = random.randint(0, len(trivia_q)) question = clean(trivia_q[q_number]['question']) correct_answer = clean(trivia_q[q_number]['correct_answer']) answers = clean(trivia_q[q_number]['incorrect_answers']) answers.append(correct_answer) random.shuffle(answers) return dict( question=question, solution=correct_answer, options=answers, )