Как организовать выполнение кода пошагово?

Как изменить код таким образом, чтобы бот не отправлял следующее сообщение до тех пор, пока пользователь не введет свое сообщение? Текущий код приводит к тому, что после нажатия кнопки "Продать" бот сразу отправляет текстовые сообщения.
  • 25 февраля 2024 г. 15:48
Ответы на вопрос 2
Для организации выполнения кода пошагово и ожидания ввода от пользователя, можно использовать концепцию цикла событий. Вот пример кода на Python с использованием библиотеки telebot:

```python
import telebot

bot = telebot.TeleBot("YOUR_TOKEN")

@bot.message_handler(commands=['start'])
def start_message(message):
    bot.send_message(message.chat.id, "Привет! Напиши 'Продать', чтобы начать процесс продажи.")

@bot.message_handler(func=lambda message: message.text == "Продать")
def sell_message(message):
    bot.send_message(message.chat.id, "Введите текст вашего сообщения:")
    bot.register_next_step_handler(message, sell_process)

def sell_process(message):
    bot.send_message(message.chat.id, "Спасибо за ваше сообщение. Мы обработаем его в ближайшее время.")

bot.polling()
```

В данном коде при отправке сообщения "Продать" пользователю предлагается ввести текст своего сообщения. Функция 'sell_process' ожидает ввода от пользователя и обрабатывает его.  

Чтобы изменить код так, чтобы бот не отправлял следующее сообщение до ввода пользователем его сообщения, можно использовать `bot.register_next_step_handler()` и передавать туда следующую функцию, которая будет вызывать `sell_process` только после ввода текста пользователем. 

Таким образом, бот будет ожидать ввода текста от пользователя перед отправкой следующего сообщения.
Потому что это нужно делать через машину состояний (FSM)
Похожие вопросы