Как в pyTelegramBotAPI запросить ввод и получить значение при вводе?
Я использую TelegramBot python Мне нужно, чтобы после отправки от бота сообщения, он ждал новое значение, чтобы продолжить работу.
Пример: Пользователь вводит "1" бот принимает и отвечает на сообщение "Введите следующее значение" и это главный момент, бот ждет получения значения, он не должен запускать функцию с этим значением, а просто получить!!!
Ввод от пользователя - Получение ботом - Отправка от бота сообщения - Ждет сообщения - Ввод от пользователя - Получение ботом - Сохраняет значение
То есть
bot.register_next_step_handler(send, inputBot()) мне не подходит
import telebot
def inputBot():
res = ???? Функция которая ждет значение и возвращает
return res
@bot.message_handler(content_types=['text'])
def text(message):
msg = message.text
if msg == '1':
send = bot.send_message(message.chat.id, "Введите следующее значение".format(message.from_user, bot.get_me()), parse_mode='html')
a = inputBot() #Вот на этом этапе мне нужно получить значение которое человек ввел,
# Именно ПОЛУЧИТЬ а не запустить функцию с полученным новым значение
# bot.register_next_step_handler(send, inputBot()). Это меня не устраивает, мне нужно получить значение
elif msg == '2':
pass
Ответы (1 шт):
Автор решения: NIGVUL
→ Ссылка
def inputBot(message, text):
def ret(message):
a.clear()
a.append(message.text)
return False
a.clear()
mes = send(message, text)
bot.register_next_step_handler(message, ret)
while a == []:
pass
return a[0]
@bot.message_handler(content_types=['text'])
def text(message):
msg = message.text
if msg == '1':
send = bot.send_message(message.chat.id, "Введите следующее значение".format(message.from_user, bot.get_me()), parse_mode='html')
a = inputBot(message, 'Введите следующее значение')
print(a) # Вводит значение, которое мы запросили у пользователя