Как вызвать разговор? [закрыто]Python

Программы на Python
Ответить
Anonymous
 Как вызвать разговор? [закрыто]

Сообщение Anonymous »

Я пытаюсь создать бота для Telegram, который отправляет пользователю анонимные опросы. Следующий опрос не отправляется, пока пользователь не ответит на предыдущий и ответ не будет сохранен в базе данных. Некоторые ответы требуют от пользователя дать дополнительный комментарий. Я не уверен, но думаю, это реализовано с помощью разговора. А у меня с этим трудности.
Вот вопросы, которые вызывают у меня затруднения:
  • Как реализовать переход в разговор из функции?

Код: Выделить всё

if answer[‘is_comment_required’]:
# go to conversation
  • Можно ли после получения комментария к ответу вернуться к функции, из которой был произведен переход к разговору, для сохранения ответ и комментарий или их нужно сохранять в беседе?
    Возможно я ошибаюсь и то, что я хочу сделать, реализовано по-другому.
Вот что я пытался сделать:

Код: Выделить всё

if answer['is_comment_required']:
context.user_data['waiting_comment'] = True

Код: Выделить всё

async def start_conv(update: Update, context: ContextTypes.DEFAULT_TYPE) -> int:
if context.user_data['waiting_comment']:
await update.message.reply_text('please enter a comment to the answer')
return ASKING

async def saved_comment(update: Update, context: ContextTypes.DEFAULT_TYPE) -> int:
text = update.message.text
context.user_data['comment'] = text
return ANSWERING

async def end_conv(update: Update, context: ContextTypes.DEFAULT_TYPE) -> int:
await update.message.reply_text('your comment has been accepted')
return ConversationHandler.END

Код: Выделить всё

conv_handler = ConversationHandler(
entry_points=[MessageHandler(filters.TEXT, start_conv)],
states={
ASKING: [
MessageHandler(filters.TEXT & ~filters.COMMAND, saved_comment)
],
ANSWERING: [
MessageHandler(filters.TEXT & ~filters.COMMAND, end_conv)
]
},
fallbacks=[],
)
application.add_handler(conv_handler)
Но я не уверен, что это решение правильное.

Подробнее здесь: https://stackoverflow.com/questions/792 ... nversation
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»