Написал в файле userAdd.py вот такой код
def handle_adm_btn1(bot, message):
keyboard = types.InlineKeyboardMarkup()
keyboard.add(table_btn1, table_btn2)
keyboard.add(table_btn3, table_btn4)
keyboard.add(table_btn5, table_btn6)
keyboard.add(table_btn7, table_btn8)
keyboard.add(table_btn9, table_btn10)
keyboard.add(table_btn11)
# Отправляем сообщение с запросом выбора таблицы
bot.send_message(message.chat.id, text39, reply_markup=keyboard)
@bot.callback_query_handler(func=lambda call: True)
def chekCallData(call):
if call.data == calldata1:
table_name = call.data
handle_table_selection(call.message, table_name)
elif call.data == calldata2:
table_name = call.data
handle_table_selection(call.message, table_name)
elif call.data == calldata3:
table_name = call.data
handle_table_selection(call.message, table_name)
elif call.data == calldata4:
table_name = call.data
handle_table_selection(call.message, table_name)
elif call.data == calldata5:
table_name = call.data
handle_table_selection(call.message, table_name)
elif call.data == calldata6:
table_name = call.data
handle_table_selection(call.message, table_name)
elif call.data == calldata7:
table_name = call.data
handle_table_selection(call.message, table_name)
elif call.data == calldata8:
table_name = call.data
handle_table_selection(call.message, table_name)
elif call.data == calldata9:
table_name = call.data
handle_table_selection(call.message, table_name)
elif call.data == calldata10:
table_name = call.data
handle_table_selection(call.message, table_name)
elif call.data == calldata11:
table_name = call.data
handle_table_selection(call.message, table_name)
def handle_table_selection(message, table_name):
# Отправляем сообщение с запросом ввода номера
bot.send_message(message.chat.id, text40)
# Устанавливаем состояние пользователя в ожидание ввода номера
bot.register_next_step_handler(message, lambda msg: handle_number_input(msg, table_name))
def handle_number_input(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)
Код рабочий, проверил на чистом боте - всё работает, в базу данных номера вносит. Теперь импортирую его в start.py:
#тут всякие разные импорты, токен, телеботы и т.д.
from userAdd import handle_adm_btn1, handle_table_selection, handle_number_input
#тут всякие разные ответы на разные кнопки
elif message.text == text42:
handle_adm_btn1(bot, message)
В итоге бот распознаёт, когда я нажимаю на кнопку с текстом "text42", присылает в ответ инлайн кнопки, при нажатии на кнопки переходит в следующую функцию, запрашивает номер телефона, я ввожу, отправляю... И всё. Почему то не срабатывает последняя функция def handle_number_input(message, table_name).
Кто подскажет почему?
P.S. Почему то отступы в спойлере не отображаются в предпросмотре. Чуток коряво выходит.