PyTelegtamBotAPI как сделать что бы при нажатии на кнопку, другие кнопки были неактивными
Например: у нас имеется 4 Inline кнопки(купить арбуз, купить ананас, купить дыню, купить яблоко) Нам нужно что бы при нажатии кнопки "купить яблоко", нельзя было нажать на остальные кнопки. А при попытке их нажатия бот отправлял сообщения, что заявка на заказ уже создана, нужно либо её отменить, либо продолжить покупку. Подскажите пожалуйста как это лучше всего можно реализовать, без подключения базы данных.
Ответы (1 шт):
Сделай обработчик нажатий на кнопки
@bot.callback_query_handler(func=lambda call: True)
def button_click(call):
user_id = call.from_user.id
# Проверяем, есть ли у пользователя текущий заказ
if user_id in order_states and order_states[user_id] != call.data:
bot.send_message(call.message.chat.id, "Заявка на заказ уже создана. Чтобы продолжить, отмените текущий заказ.")
else:
# Если заказа нет или пользователь нажал на ту же кнопку
order_states[user_id] = call.data
bot.send_message(call.message.chat.id, f"Вы выбрали: {call.data}")
Используется словарь order_states, чтобы отслеживать состояние заказа для каждого пользователя. При нажатии на кнопку, значение в словаре устанавливается в соответствующее значение кнопки. Если у пользователя уже есть заказ и он пытается выбрать другой продукт, бот отправляет сообщение о том, что заказ уже создан.