Задать вопрос
@Bubble_in_space

Как реализовать ожидание ответа пользователя python?

Написал бота вконтакте используя Flask приложение на python,на обычные вопросы отвечает без проблем,но хочется реализовать что то посложнее,что то по типу многоступенчатых вопросов
Например,я много раз видел ботов,работающих с модулем вики
сначала ты пишешь команду /wiki
бот спрашивает что нужно найти и ожидает ответа пользователя
После получения ответа уже выводит данные

Моё же творение ожидать не умеет,мне хочется знать,как это реализовано.
Подскажите,пожалуйста.
  • Вопрос задан
  • 1995 просмотров
Подписаться 1 Средний Комментировать
Решения вопроса 2
LaRN
@LaRN
Senior Developer
Вот тут разбирался похожий вопрос:
Telegram Bot Api, как вести сессию с пользователем? Как писать многопользовательских ботов?

Вот тут можно посмотреть реализацию на python
https://habr.com/ru/post/316666/
Ответ написан
Комментировать
@bbkmzzzz
Нужно реализовать состояния для пользователей.
Примерно так:
пользователь запросил вики. обработали, сделали пометку в структуре данных на пользователя, что он желает странного.
пользователь написал что-то. Проверяем пометки на странности, находим пометку о вики. Выполняем команду с учетом этого.
Придумываем сброс состояния, например только один запрос, потом снова нужно запрашивать вики, ну или по ключевому слову какому -> сбрасываем флаг на странности
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
NeiroNx
@NeiroNx
Программист
Для этого нужно понимать какой пользователь спрашивает - хранить состояние для каждого пользователя, чтобы понимать как именно нужно обработать сообщение с учетом предыдущих сообщений.
Ответ написан
Комментировать
kshnkvn
@kshnkvn
yay ✌️ t.me/kshnkvn
Я это реализовал потоками: при отлове ключевого слова, типа "начать" создаю поток нужного мне класса/метода и передаю в него user_id, в итоге этот поток работает сугубо с 1 пользователем.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы