Есть файл start.py. Вот часть кода из него:
#Всякий нужный код до этого момента
elif message.text == text42:
handle_adm_btn1(bot, message)
elif message.text == text43:
handle_adm_btn2(bot, message)
#Всякий нужный код после этого момента
При этом есть ещё два файла: userAdd.py и userDelete.py
В них написанны функции по добавлению и удалению пользователя в таблице MySQL.
Вот часть кода из userAdd.py:
def handle_table_selection(bot, message, table_name):
# Отправляем сообщение с запросом ввода номера
bot.send_message(message.chat.id, text40)
# Устанавливаем состояние пользователя в ожидание ввода номера
bot.register_next_step_handler(message, lambda msg: handle_number_input(bot, msg, table_name))
def handle_number_input(bot, message, table_name):
number = message.text
cursor = mydb.cursor()
sql_query = f"INSERT INTO {table_name} (phone_number, is_try) VALUES (%s, %s)"
values = (number, 1)
cursor.execute(sql_query, values)
mydb.commit()
cursor.close()
bot.send_message(message.chat.id, text41)
Вот часть кода из userDelete.py:
def handle_table_selection2(bot, message, table_name):
# Отправляем сообщение с запросом ввода номера
bot.send_message(message.chat.id, text40)
# Устанавливаем состояние пользователя в ожидание ввода номера
bot.register_next_step_handler(message, lambda msg: handle_number_input2(bot, msg, table_name))
def handle_number_input2(bot, message, table_name):
number = message.text
cursor = mydb.cursor()
sql_query = f"DELETE FROM {table_name} WHERE phone_number = %s"
values = (number,)
cursor.execute(sql_query, values)
mydb.commit()
cursor.close()
bot.send_message(message.chat.id, text45)
Проблема заключается в том, что если я сначала добавляю пользователя в базу через userAdd, а потом хочу удалить другого юзера из базы - то на моменте
bot.register_next_step_handler(message, lambda msg: handle_number_input2(bot, msg, table_name))
происходит тот хандлер, который я использовал первым.
То есть, если я сначала добавил юзера, а потом удаляю - то именно в этом месте во время удаления вызовется хандлер добавления юзера. И наоборот, соответственно.
Изза этого ты можешь делать только то, что выбрал первым.
Вопрос как остановить этот хандлер или как изменить функцию, чтобы этого не происходило?