From 1e9e388af8fbc9d2f1db83199bb1195b94c2083b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=93=D0=B0=D0=BB=D0=B8=D0=BD=D0=B0=20=D0=A4=D0=B5=D0=B4?= =?UTF-8?q?=D0=BE=D1=80=D0=B5=D0=BD=D0=BA=D0=BE?= Date: Mon, 15 Apr 2024 22:44:56 +0400 Subject: [PATCH] =?UTF-8?q?=D1=83=D0=B1=D1=80=D0=B0=D0=BD=20=D0=BA=D0=BE?= =?UTF-8?q?=D1=81=D1=82=D1=8B=D0=BB=D1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.py | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/main.py b/main.py index f8fea71..c393c1c 100644 --- a/main.py +++ b/main.py @@ -5,17 +5,19 @@ import sqlite3 # Создаем экземпляр бота с указанием токена bot = telebot.TeleBot('sekretik') +current_poll = "" + # Создаем глобальный словарь для хранения вопросов и вариантов ответов questions = { "question1": { "question": "Вопрос для темы 1", "options": ['Ответ 1', 'Ответ 2', 'Ответ 3', 'Ответ 4'], - "correct_option_id": 2 + "correct_option_id": 0 }, "question2": { "question": "Вопрос для темы 2", "options": ['Ответ 1', 'Ответ 2', 'Ответ 3', 'Ответ 4'], - "correct_option_id": 2 + "correct_option_id": 1 }, "question3": { "question": "Вопрос для темы 3", @@ -25,17 +27,17 @@ questions = { "question4": { "question": "Вопрос для темы 4", "options": ['Ответ 1', 'Ответ 2', 'Ответ 3', 'Ответ 4'], - "correct_option_id": 2 + "correct_option_id": 3 }, "question5": { "question": "Вопрос для темы 5", "options": ['Ответ 1', 'Ответ 2', 'Ответ 3', 'Ответ 4'], - "correct_option_id": 2 + "correct_option_id": 0 }, "question6": { "question": "Вопрос для темы 6", "options": ['Ответ 1', 'Ответ 2', 'Ответ 3', 'Ответ 4'], - "correct_option_id": 2 + "correct_option_id": 1 }, "question7": { "question": "Вопрос для темы 7", @@ -45,7 +47,7 @@ questions = { "question8": { "question": "Вопрос для темы 8", "options": ['Ответ 1', 'Ответ 2', 'Ответ 3', 'Ответ 4'], - "correct_option_id": 2 + "correct_option_id": 3 }, } @@ -260,9 +262,8 @@ def handle_topic(call): if topic == "remove_progress": conn = sqlite3.connect('users.db') cursor = conn.cursor() - cursor.execute( - "UPDATE topics SET question1 = 0 WHERE chat_id=?", - (call.message.chat.id,)) + for i in range(1, 9): + cursor.execute(f"UPDATE topics SET question{i} = 0 WHERE chat_id={call.message.chat.id}") cursor.execute("UPDATE users SET count = 0 WHERE user_id=?", (call.message.chat.id,)) bot.send_message(chat_id, 'Прогресс очищен') # Закрываем соединение с базой данных @@ -303,6 +304,8 @@ def handle_topic(call): poll = bot.send_poll(call.message.chat.id, question, options, is_anonymous=False, type='quiz', open_period=30, correct_option_id=correct) + global current_poll + current_poll = topic else: bot.send_message(chat_id, "Жулик! Проходить тест можно только один раз!") else: @@ -313,10 +316,13 @@ def handle_topic(call): # Обработка ответов на опросы @bot.poll_answer_handler(func=lambda poll_answer: True) def handle_poll_answer(poll_answer): - chosen_option_id = poll_answer.option_ids + global current_poll + chosen_option_id = poll_answer.option_ids[0] + question_data = questions[current_poll] + correct = question_data["correct_option_id"] # Проверяем, совпадает ли выбранный вариант с правильным - if chosen_option_id[0] == 2: + if chosen_option_id == correct: result_message = "Правильно! 🎉" right_answer(poll_answer.user.id) else: @@ -324,6 +330,7 @@ def handle_poll_answer(poll_answer): # Отправляем сообщение с результатом bot.send_message(poll_answer.user.id, result_message) + current_poll = "" def right_answer(user_id): conn = sqlite3.connect('users.db')