убран костыль
This commit is contained in:
parent
6f3e1164ce
commit
1e9e388af8
29
main.py
29
main.py
@ -5,17 +5,19 @@ import sqlite3
|
|||||||
# Создаем экземпляр бота с указанием токена
|
# Создаем экземпляр бота с указанием токена
|
||||||
bot = telebot.TeleBot('sekretik')
|
bot = telebot.TeleBot('sekretik')
|
||||||
|
|
||||||
|
current_poll = ""
|
||||||
|
|
||||||
# Создаем глобальный словарь для хранения вопросов и вариантов ответов
|
# Создаем глобальный словарь для хранения вопросов и вариантов ответов
|
||||||
questions = {
|
questions = {
|
||||||
"question1": {
|
"question1": {
|
||||||
"question": "Вопрос для темы 1",
|
"question": "Вопрос для темы 1",
|
||||||
"options": ['Ответ 1', 'Ответ 2', 'Ответ 3', 'Ответ 4'],
|
"options": ['Ответ 1', 'Ответ 2', 'Ответ 3', 'Ответ 4'],
|
||||||
"correct_option_id": 2
|
"correct_option_id": 0
|
||||||
},
|
},
|
||||||
"question2": {
|
"question2": {
|
||||||
"question": "Вопрос для темы 2",
|
"question": "Вопрос для темы 2",
|
||||||
"options": ['Ответ 1', 'Ответ 2', 'Ответ 3', 'Ответ 4'],
|
"options": ['Ответ 1', 'Ответ 2', 'Ответ 3', 'Ответ 4'],
|
||||||
"correct_option_id": 2
|
"correct_option_id": 1
|
||||||
},
|
},
|
||||||
"question3": {
|
"question3": {
|
||||||
"question": "Вопрос для темы 3",
|
"question": "Вопрос для темы 3",
|
||||||
@ -25,17 +27,17 @@ questions = {
|
|||||||
"question4": {
|
"question4": {
|
||||||
"question": "Вопрос для темы 4",
|
"question": "Вопрос для темы 4",
|
||||||
"options": ['Ответ 1', 'Ответ 2', 'Ответ 3', 'Ответ 4'],
|
"options": ['Ответ 1', 'Ответ 2', 'Ответ 3', 'Ответ 4'],
|
||||||
"correct_option_id": 2
|
"correct_option_id": 3
|
||||||
},
|
},
|
||||||
"question5": {
|
"question5": {
|
||||||
"question": "Вопрос для темы 5",
|
"question": "Вопрос для темы 5",
|
||||||
"options": ['Ответ 1', 'Ответ 2', 'Ответ 3', 'Ответ 4'],
|
"options": ['Ответ 1', 'Ответ 2', 'Ответ 3', 'Ответ 4'],
|
||||||
"correct_option_id": 2
|
"correct_option_id": 0
|
||||||
},
|
},
|
||||||
"question6": {
|
"question6": {
|
||||||
"question": "Вопрос для темы 6",
|
"question": "Вопрос для темы 6",
|
||||||
"options": ['Ответ 1', 'Ответ 2', 'Ответ 3', 'Ответ 4'],
|
"options": ['Ответ 1', 'Ответ 2', 'Ответ 3', 'Ответ 4'],
|
||||||
"correct_option_id": 2
|
"correct_option_id": 1
|
||||||
},
|
},
|
||||||
"question7": {
|
"question7": {
|
||||||
"question": "Вопрос для темы 7",
|
"question": "Вопрос для темы 7",
|
||||||
@ -45,7 +47,7 @@ questions = {
|
|||||||
"question8": {
|
"question8": {
|
||||||
"question": "Вопрос для темы 8",
|
"question": "Вопрос для темы 8",
|
||||||
"options": ['Ответ 1', 'Ответ 2', 'Ответ 3', 'Ответ 4'],
|
"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":
|
if topic == "remove_progress":
|
||||||
conn = sqlite3.connect('users.db')
|
conn = sqlite3.connect('users.db')
|
||||||
cursor = conn.cursor()
|
cursor = conn.cursor()
|
||||||
cursor.execute(
|
for i in range(1, 9):
|
||||||
"UPDATE topics SET question1 = 0 WHERE chat_id=?",
|
cursor.execute(f"UPDATE topics SET question{i} = 0 WHERE chat_id={call.message.chat.id}")
|
||||||
(call.message.chat.id,))
|
|
||||||
cursor.execute("UPDATE users SET count = 0 WHERE user_id=?", (call.message.chat.id,))
|
cursor.execute("UPDATE users SET count = 0 WHERE user_id=?", (call.message.chat.id,))
|
||||||
bot.send_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,
|
poll = bot.send_poll(call.message.chat.id, question, options, is_anonymous=False,
|
||||||
type='quiz', open_period=30, correct_option_id=correct)
|
type='quiz', open_period=30, correct_option_id=correct)
|
||||||
|
global current_poll
|
||||||
|
current_poll = topic
|
||||||
else:
|
else:
|
||||||
bot.send_message(chat_id, "Жулик! Проходить тест можно только один раз!")
|
bot.send_message(chat_id, "Жулик! Проходить тест можно только один раз!")
|
||||||
else:
|
else:
|
||||||
@ -313,10 +316,13 @@ def handle_topic(call):
|
|||||||
# Обработка ответов на опросы
|
# Обработка ответов на опросы
|
||||||
@bot.poll_answer_handler(func=lambda poll_answer: True)
|
@bot.poll_answer_handler(func=lambda poll_answer: True)
|
||||||
def handle_poll_answer(poll_answer):
|
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 = "Правильно! 🎉"
|
result_message = "Правильно! 🎉"
|
||||||
right_answer(poll_answer.user.id)
|
right_answer(poll_answer.user.id)
|
||||||
else:
|
else:
|
||||||
@ -324,6 +330,7 @@ def handle_poll_answer(poll_answer):
|
|||||||
|
|
||||||
# Отправляем сообщение с результатом
|
# Отправляем сообщение с результатом
|
||||||
bot.send_message(poll_answer.user.id, result_message)
|
bot.send_message(poll_answer.user.id, result_message)
|
||||||
|
current_poll = ""
|
||||||
|
|
||||||
def right_answer(user_id):
|
def right_answer(user_id):
|
||||||
conn = sqlite3.connect('users.db')
|
conn = sqlite3.connect('users.db')
|
||||||
|
Loading…
Reference in New Issue
Block a user