Я делаю бота викторина. И к сожалению я не знаю, как из баз данных, а именно из таблицы взять рандомные вопросы и ответы на них.
Потом уже брать вопросы и отправлять пользователю. Потом сверять ответ к правильному ответу и выбирать правильно или не правильно.
Вот код
Потом уже брать вопросы и отправлять пользователю. Потом сверять ответ к правильному ответу и выбирать правильно или не правильно.
Вот код
Python:
import telebot
import config
import time
from telebot import types
import sqlite3
bot = telebot.TeleBot(config.token)
commands = "/start, /help, /play, /help_play"
@bot.message_handler(commands=['start'])
def start_command(message):
bot.send_message(message.chat.id, "Привет!\nЯ бот викторина, если ты хочешь сыграть то введи /play\n"
"Если тебе нужна помощь по всему боту, то введи /help")
@bot.message_handler(commands=['help'])
def help_command(message):
bot.send_message(message.chat.id, "Вот мои команды\n" + commands)
@bot.message_handler(commands=['play'])
def play_command(message):
# Клавиатура для команды play
keyboard = types.InlineKeyboardMarkup()
yes = types.InlineKeyboardButton(text="Да", callback_data="yes")
keyboard.add(yes)
no = types.InlineKeyboardButton(text="Нет", callback_data="no")
keyboard.add(no)
bot.send_message(message.chat.id, "Вы готовы играть в викторину?", reply_markup=keyboard)
# Клавиатура для жанров
keyboard_genre = types.InlineKeyboardMarkup()
sport = types.InlineKeyboardButton(text='Спорт', callback_data='sport')
keyboard_genre.add(sport)
@bot.callback_query_handler(func=lambda call: True)
def callback(call):
if call.data == 'yes':
bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text="Хорошо, выберите жанр.", reply_markup=keyboard_genre)
elif call.data == 'sport':
bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text="Начинаем через 3 секунды\n Введите да, если готовы\nВведите нет если не готовы")
elif call.data == 'no':
bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text="Хорошо, выходим...")
def sql_fetch():
conn = sqlite3.connect("sport.db")
with conn:
cur = conn.cursor()
cur.execute('SELECT * FROM questions')
while True:
row = cur.fetchone()
if row == None:
break
print(row[0])
conn.close()
@bot.message_handler(content_types=['text'])
def sport(message):
if message.text.lower() == 'да':
time.sleep(1)
bot.send_message(message.chat.id, "3")
time.sleep(1)
bot.send_message(message.chat.id, "2")
time.sleep(1)
bot.send_message(message.chat.id, "1")
time.sleep(1)
bot.send_message(message.chat.id, "Игра началась")
sql_fetch()
elif message.text.lower() == 'нет':
bot.send_message(message.chat.id, "Хорошо, выходим...")
time.sleep(1)
if __name__ == "__main__":
bot.polling(none_stop=True)