Как сделать чтобы бот выводил рандомное значение с базы данных?
Ошибок не выдает. При нажатии на команду ничего не выводит. Что я не так сделал?
Код бота:
import telebot
from FilmDatabase import *
bot = telebot.TeleBot('Token')
prepareDb('db/Films.db')
@bot.message_handler(commands=['start'])
def start(message):
username = message.from_user.first_name
bot.send_message(message.chat.id, f'Привіт {username}, я Каспер! Хочешь поговорити зі мною чи є якесь питання?')
@bot.message_handler(commands=['stop'])
def stop(message):
bot.send_message(message.chat.id, f'Радий був допомогти!\n'
f'Якщо захочете поговорити чи потрібна буде допомога введіть знову команду /start')
@bot.message_handler(content_types=["text"])
def text(message):
if message.chat.type == 'private':
if message.text == 'Поговорити':
bot.send_message(message.chat.id, f'Добре, як настрій?' + '\U0001f642')
if message.text == 'Так собі':
bot.send_message(message.chat.id, f'Чому? Щось сталось?'
f'Я можу якось допомогти тобі підняти настрій?' + '\U0001f61f')
if message.text == 'Можеш порекомендувати якийсь фільм?':
bot.send_message(message.chat.id, f'Так, звісно! Який жанр вас цікавить?\n'
f'/comedia')
@bot.message_handler(commands=['comedia'])
def comedia(message):
films = getFilms('db/Films.db')
bot.send_message(message.chat.id, f'З комедій можу порадити: {films}')
bot.polling(none_stop=True)
Код подключения к БД:
import sqlite3
from sqlite3 import Error
def init_conn(path):
conn = None
try:
conn = sqlite3.connect(path)
print ("Connection established!")
except Error as e:
print (e)
print ("Connection failed!")
return conn
def init_tables(connection):
sql = "CREATE TABLE IF NOT EXISTS Comedia(id integer PRIMARY KEY, name_film text NOT NULL);"
connection.execute(sql)
def prepareDb(name):
conn = init_conn(name)
init_tables(conn)
conn.close()
def getFilms(db):
sql = "SELECT * FROM `Comedia` ORDER BY RAND() LIMIT 1"
connection = init_conn(db)
cursor = connection.cursor()
connection.set_trace_callback(print)
cursor.execute(sql)
connection.commit()
connection.close()
Источник: Stack Overflow на русском