Python电报机器人禁止嵌套对话

时间:2020-09-30 21:48:23

标签: python-telegram-bot

我正在使用python-telegram-bot编写对话,并且需要一种方法来禁用嵌套对话。也就是说,如果用户正在对话中,则用于另一个对话的输入命令不应激活另一个处理程序。

这似乎在ConversationHandler对象中不可执行。即我尝试在不希望运行其他命令(上载)的状态下捕获命令,但是这种方法不起作用-机器人很乐意启动另一个对话。另外,这不能单独使用后备

submission_conv_handler = ConversationHandler(

        entry_points=[
             CommandHandler('submit', self.submit_command),
             
          ],


        states={
             self.CHOSE_TYPE: [
               CallbackQueryHandler(self.submission_query_callback, pattern=r'^(py|ipynb)')
             ],

             self.UPLOAD: [
               MessageHandler(Filters.document, self.upload_message),
               MessageHandler(Filters.command | Filters.text , done)
             ],

        },

        fallbacks=[MessageHandler(Filters.all, done)]
    )

1 个答案:

答案 0 :(得分:0)

对话的中断行为是一个普遍的问题,因为PTB当前(v13.0)没有内置的方法来阻止它。请查看GitHub问题16401447以及此FAQ entry