Pasamos de test automáticamente al terminar

This commit is contained in:
2022-04-25 08:16:12 +02:00
parent 33eb5c82d9
commit 48d84d7918

46
bot.py
View File

@ -62,8 +62,8 @@ def check_answer(question, answer):
def generate_tests_keyboard():
keyboard = types.InlineKeyboardMarkup(row_width=4)
buttons = []
for i in range(1,33):
buttons.append(types.InlineKeyboardButton('Test {}'.format(i),callback_data='test {}'.format(100+i)))
for i in range(101,133):
buttons.append(types.InlineKeyboardButton('Test {}'.format(i),callback_data='test {}'.format(i)))
for chunk in split(buttons, 4):
keyboard.add(*chunk)
return keyboard
@ -124,14 +124,40 @@ def select_option_callback_handler(call):
answer_reply = check_answer(question, answer)
bot.answer_callback_query(call.id, answer_reply)
if answer_reply == '✅ Correcto':
question = find_question(test, eval(q+'+1'))
keyboard = generate_test_keyboard(question, test)
txt = "Test: {}\nPregunta: {}\n\n{}\n\n{}"
try:
bot.edit_message_media(types.InputMediaPhoto(question.get('img'), caption=txt.format(test, question['pregunta'], question['encabezado'], '\n'.join(['{} - {}'.format(i+1, answer['texto']) for i,answer in enumerate(question['respuestas'])]))), cid, mid, reply_markup=keyboard)
bot.answer_callback_query(call.id)
except:
bot.answer_callback_query(call.id, "No se pudo cargar la pregunta")
if ((q != '20' and test != '132') or (q != '17' and test == '132')):
q = eval(q+'+1')
question = find_question(test, q)
keyboard = generate_test_keyboard(question, test)
txt = "Test: {}\nPregunta: {}\n\n{}\n\n{}"
try:
bot.edit_message_media(types.InputMediaPhoto(question.get('img'), caption=txt.format(test, question['pregunta'], question['encabezado'], '\n'.join(['{} - {}'.format(i+1, answer['texto']) for i,answer in enumerate(question['respuestas'])]))), cid, mid, reply_markup=keyboard)
bot.answer_callback_query(call.id)
except:
bot.answer_callback_query(call.id, "No se pudo cargar la pregunta")
elif q == '20' and test != '132':
q = 1
test = eval(test+'+1')
question = find_question(test, q)
keyboard = generate_test_keyboard(question, test)
txt = "Test: {}\nPregunta: {}\n\n{}\n\n{}"
try:
bot.edit_message_media(types.InputMediaPhoto(question.get('img'), caption=txt.format(test, question['pregunta'], question['encabezado'], '\n'.join(['{} - {}'.format(i+1, answer['texto']) for i,answer in enumerate(question['respuestas'])]))), cid, mid, reply_markup=keyboard)
bot.answer_callback_query(call.id)
except:
bot.answer_callback_query(call.id, "No se pudo cargar la pregunta")
else:
q = 1
test = 101
question = find_question(test, q)
keyboard = generate_test_keyboard(question, test)
txt = "Test: {}\nPregunta: {}\n\n{}\n\n{}"
try:
bot.edit_message_media(types.InputMediaPhoto(question.get('img'), caption=txt.format(test, question['pregunta'], question['encabezado'], '\n'.join(['{} - {}'.format(i+1, answer['texto']) for i,answer in enumerate(question['respuestas'])]))), cid, mid, reply_markup=keyboard)
bot.answer_callback_query(call.id)
except:
bot.answer_callback_query(call.id, "No se pudo cargar la pregunta")
@bot.callback_query_handler(func=lambda call: call.data.startswith('pregunta') and (call.data.endswith('+') or call.data.endswith('-')))