Вот вопросы, которые вызывают у меня затруднения:
- Как реализовать переход в разговор из функции?
Код: Выделить всё
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
Мобильная версия