Не выполняются последующие команды бота в Python
Я начал изучать программирование несколько дней назад. Пытаются написать телеграмм бота для работы, который по командам, будет выводить информацию из БД MySQL.
У бота на данный момент есть 3 команды: /search - поиск оборудования по наименованию, /searchsn - поиск по серийному номеру и /searchin - поиск по инвентарному номеру.
Если боту вызвать команду /search (т.е. первую по коду) то бот отрабатывает нормально, информация выводится корректно. Если за ней вызвать комманду /searchsn или /searchin то получаю ответ - "Ничего не найдено!".
Подозреваю что я не верно что-то делаю, т.к. бот и дальше продолжает обрабатывать команду /search. Прошу помощи, как заставить бота выполнять все 3 команды.
Первая команда:
@bot.message_handler(commands=['search'])
def start_message(message):
bot.send_message(message.chat.id, 'Введите наименование оборудования:')
@bot.message_handler(content_types=['text'])
def get_text_messages(message):
cursor = con.cursor()
sql = "SELECT type_name, manufacturer_name, equipment_name, room_name, equipment_user_mol FROM equipment INNER JOIN manufacturer ON manufacturer.manufacturer_id = equipment.manufacturer_id INNER JOIN type ON type.type_id = equipment.type_id INNER JOIN rooms ON rooms.room_id = equipment.room_id INNER JOIN users ON users.user_id = equipment.equipment_enter_by WHERE equipment_name = '%s'" %message.text.lower()
cursor.execute(sql)
data = cursor.fetchall()
if message.text.lower():
if not data:
bot.send_message(message.chat.id, 'Ничего не найдено!')
data = message.text.lower()
else:
for rows in data:
bot.send_message(message.chat.id, rows[0] + ' / ' + rows[1] + ' / ' + rows[2] + ' / ' + rows[3] + ' / ' + rows[4])
Вторая команда:
@bot.message_handler(commands=['searchsn'])
def start_message1(message1):
bot.send_message(message1.chat.id, 'Введите серийный номер оборудования:')
@bot.message_handler(content_types=['text'])
def get_text_messages1(message1):
cursor = con.cursor()
sql = "SELECT type_name, manufacturer_name, equipment_name, room_name, equipment_user_mol FROM equipment INNER JOIN manufacturer ON manufacturer.manufacturer_id = equipment.manufacturer_id INNER JOIN type ON type.type_id = equipment.type_id INNER JOIN rooms ON rooms.room_id = equipment.room_id INNER JOIN users ON users.user_id = equipment.equipment_enter_by WHERE equipment_sn_number = '%s'" %message1.text.lower()
cursor.execute(sql)
data2 = cursor.fetchall()
if message1.text.lower():
if not data2:
bot.send_message(message1.chat.id, 'Ничего не найдено!')
data2 = message1.text.lower()
else:
for rows in data2:
bot.send_message(message1.chat.id, rows[0] + ' / ' + rows[1] + ' / ' + rows[2] + ' / ' + rows[3] + ' / ' + rows[4])
Третья команда:
# searchsn
@bot.message_handler(commands=['searchsn'])
def start_message3(message3):
bot.send_message(message3.chat.id, 'Введите серийный номер оборудования:')
@bot.message_handler(content_types=['text'])
def get_text_messages3(message3):
cursor = con.cursor()
sql = "SELECT type_name, manufacturer_name, equipment_name, room_name, equipment_user_mol FROM equipment INNER JOIN manufacturer ON manufacturer.manufacturer_id = equipment.manufacturer_id INNER JOIN type ON type.type_id = equipment.type_id INNER JOIN rooms ON rooms.room_id = equipment.room_id INNER JOIN users ON users.user_id = equipment.equipment_enter_by WHERE equipment_sn_number = '%s'" %message3.text.lower()
cursor.execute(sql)
data3 = cursor.fetchall()
if message3.text.lower():
if not data3:
bot.send_message(message3.chat.id, 'Ничего не найдено!')
data2 = message3.text.lower()
else:
for rows in data3:
bot.send_message(message3.chat.id, rows[0] + ' / ' + rows[1] + ' / ' + rows[2] + ' / ' + rows[3] + ' / ' + rows[4])
bot.polling(none_stop=True)