Ponemos las respuestas en el texto para verlas enteras

This commit is contained in:
2022-04-23 11:06:24 +02:00
parent 8e61d7d87f
commit 33eb5c82d9

16
bot.py
View File

@ -70,8 +70,8 @@ def generate_tests_keyboard():
def generate_test_keyboard(question, test): def generate_test_keyboard(question, test):
keyboard = types.InlineKeyboardMarkup() keyboard = types.InlineKeyboardMarkup()
for i,answer in enumerate(question.get('respuestas')): for i,_ in enumerate(question.get('respuestas')):
keyboard.add(types.InlineKeyboardButton('{}'.format(answer['texto']), callback_data='pregunta {} {} {}'.format(test, question['pregunta'], i))) keyboard.add(types.InlineKeyboardButton('{}'.format(i+1), callback_data='pregunta {} {} {}'.format(test, question['pregunta'], i)))
next_prev_buttons = [] next_prev_buttons = []
if question.get('pregunta') == 1: if question.get('pregunta') == 1:
next_prev_buttons.append(types.InlineKeyboardButton('', callback_data='pregunta {} {} +'.format(test, question['pregunta']))) next_prev_buttons.append(types.InlineKeyboardButton('', callback_data='pregunta {} {} +'.format(test, question['pregunta'])))
@ -109,8 +109,8 @@ def test_callback_handler(call):
test = call.data.split()[-1] test = call.data.split()[-1]
question = find_question(test, 1) question = find_question(test, 1)
keyboard = generate_test_keyboard(question, test) keyboard = generate_test_keyboard(question, test)
txt = "Test: {}\nPregunta: {}\n\n{}" txt = "Test: {}\nPregunta: {}\n\n{}\n\n{}"
bot.send_photo(cid, question.get('img'), caption=txt.format(test, 1, question['encabezado']), reply_markup=keyboard) bot.send_photo(cid, question.get('img'), caption=txt.format(test, 1, question['encabezado'], '\n'.join(['{} - {}'.format(i+1, answer['texto']) for i,answer in enumerate(question['respuestas'])])), reply_markup=keyboard)
add_test(cid, test) add_test(cid, test)
bot.answer_callback_query(call.id) bot.answer_callback_query(call.id)
@ -126,9 +126,9 @@ def select_option_callback_handler(call):
if answer_reply == '✅ Correcto': if answer_reply == '✅ Correcto':
question = find_question(test, eval(q+'+1')) question = find_question(test, eval(q+'+1'))
keyboard = generate_test_keyboard(question, test) keyboard = generate_test_keyboard(question, test)
txt = "Test: {}\nPregunta: {}\n\n{}" txt = "Test: {}\nPregunta: {}\n\n{}\n\n{}"
try: try:
bot.edit_message_media(types.InputMediaPhoto(question.get('img'), caption=txt.format(test, question['pregunta'], question['encabezado'])), cid, mid, reply_markup=keyboard) 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) bot.answer_callback_query(call.id)
except: except:
bot.answer_callback_query(call.id, "No se pudo cargar la pregunta") bot.answer_callback_query(call.id, "No se pudo cargar la pregunta")
@ -141,9 +141,9 @@ def question_pager_callback_handler(call):
_, test, q, action = call.data.split() _, test, q, action = call.data.split()
question = find_question(test, eval(q+action+'1')) question = find_question(test, eval(q+action+'1'))
keyboard = generate_test_keyboard(question, test) keyboard = generate_test_keyboard(question, test)
txt = "Test: {}\nPregunta: {}\n\n{}" txt = "Test: {}\nPregunta: {}\n\n{}\n\n{}"
try: try:
bot.edit_message_media(types.InputMediaPhoto(question.get('img'), caption=txt.format(test, question['pregunta'], question['encabezado'])), cid, mid, reply_markup=keyboard) 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) bot.answer_callback_query(call.id)
except: except:
bot.answer_callback_query(call.id, "No se pudo cargar la pregunta") bot.answer_callback_query(call.id, "No se pudo cargar la pregunta")