Почему бот на команду отвечает совсем не так, как нужно
Бот на команду /menu отвечает всегда сообщением "❌ Вы уже были зарегистрированы в боте!", хотя должен открывать вроде как главное меню для продавца... Либо я написал очень косячный код, либо фиг знает... )
Код:
@bot.message_handler(commands=['start'])
def start1(message):
global db
global sql
db = sqlite3.connect('database.db', check_same_thread=False)
sql = db.cursor()
sql.execute("""CREATE TABLE IF NOT EXISTS goods (
goods1 TEXT,
description1 TEXT,
price1 INT,
goods2 TEXT,
description2 TEXT,
price2 INT,
goods3 TEXT,
description3 TEXT,
price3 INT
)""")
db.commit()
sql.execute("""CREATE TABLE IF NOT EXISTS user (
id INT,
name TEXT,
date_reg INT,
rating INT,
balance INT,
status_seller TEXT
)""")
db.commit()
global info
info = sql.execute("SELECT * FROM user")
if info.fetchone() is None:
choice_menu = types.ReplyKeyboardMarkup(resize_keyboard=False, one_time_keyboard=True)
choice1 = types.KeyboardButton('💳 Покупатель')
choice2 = types.KeyboardButton('Продавец 🖥')
choice_menu.add(choice1, choice2)
bot.send_message(message.chat.id, text=f'👋 Здравствуй. Выбери, кем тебя регистрировать:', reply_markup=choice_menu)
@bot.message_handler(content_types=['text'])
def start2(message):
info = sql.execute("SELECT * FROM user WHERE id = ?", (message.chat.id, ))
if message.text == '💳 Покупатель' and info.fetchone() is None:
delete_btn = types.ReplyKeyboardRemove()
datereg = datetime.datetime.now()
user_id = message.chat.id
user_name = message.from_user.username
sql.execute("INSERT INTO user VALUES (?, ?, ?, ?, ?, ?);",
(user_id, user_name, datereg, 1, 0, 'No'))
db.commit()
bot.send_message(message.chat.id, text='✅ Вы успешно зарегистрированы в боте как покупатель!', reply_markup=delete_btn)
elif message.text == 'Продавец 🖥' and info.fetchone() is None:
delete_btn = types.ReplyKeyboardRemove()
datereg = datetime.datetime.now()
user_id = message.chat.id
user_name = message.from_user.username
sql.execute("INSERT INTO user VALUES (?, ?, ?, ?, ?, ?);",
(user_id, user_name, datereg, 1, 0, 'Yes'))
sql.execute("INSERT INTO goods VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?);",
('Нету', 'Нету', 'Не указано', 'Нету', 'Нету', 'Не указано', 'Нету', 'Нету', 'Не указано'))
global seller_user
seller_user = ("SELECT id FROM user WHERE status_seller = ?", ('Yes', ))
db.commit()
bot.send_message(message.chat.id, text='✅ Вы успешно зарегистрированы в боте как продавец!', reply_markup=delete_btn)
else:
delete_btn = types.ReplyKeyboardRemove()
bot.send_message(message.chat.id, text='❌ Вы уже были зарегистрированы в боте!', reply_markup=delete_btn)
@bot.message_handler(commands=['menu'])
def menu(message):
global info
info = sql.execute("SELECT * FROM user WHERE id = ?", (message.chat.id, ))
if info.fetchone() is not None and info.fetchone()[5] == 'Yes':
main_menu = types.InlineKeyboardMarkup()
main_btn1 = types.InlineKeyboardButton('📂 Моя анкета 📂', callback_data='main_btn1')
main_btn2 = types.InlineKeyboardButton('🛒 Мои товары 🛒', callback_data='main_btn2')
main_btn3 = types.InlineKeyboardButton('👨🏼💻 Другие продавцы 👨🏼💻', callback_data='main_btn3')
main_menu.add(main_btn1)
main_menu.add(main_btn2)
main_menu.add(main_btn3)
bot.send_message(message.chat.id, text='Главное меню', reply_markup=main_menu)
else:
bot.send_message(message.chat.id, text='❌ Вы не являетесь зарегистрированным продавцом!')
bot.polling()