如何解决“消息不被修改”当我按下InlineKeyboardButton多次,太快
我有一个InlineKeyboardButton改变A发送消息的文本。它需要编辑的消息的时间是大约一秒钟,如果我再次按下按钮前等待这个量,一切工作正常。但是,如果我重复按下按钮被编辑的消息之前,将引发异常此消息:
Message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message
在用户不会注意到任何东西,因为它不预期为机器人到编辑当该按钮被按下反复已经修改了消息之前该消息。我可以捕获该异常,只是忽略它,什么也没有发生。但我想,以避免被完全抛出的异常。
其中I编辑消息的部分是这样的:
if text and keyboard:
try:
query.edit_message_text(
text,parse_mode=ParseMode.HTML,disable_web_page_preview=True,reply_markup=InlineKeyboardMarkup(keyboard)
)
except error.BadRequest as err:
logging.error(err)
当我平静地按下按钮一次时,消息被编辑。但是,当我按下它实在是快,多次,只为拳头时间编辑的消息,直到消息完成正在修改,这些请求都会抛出error.BadRequest
由于错误消息指出Message is not modified
,我如果我检查此修改想通,我能避免错误。所以我改变了我的代码如下:
if text and keyboard and text != query.message.text:
try:
query.edit_message_text(
text,reply_markup=InlineKeyboardMarkup(keyboard)
)
except error.BadRequest as err:
logging.error(err)
我添加的部分为text != query.message.text
,因此它应该仅尝试编辑该消息,如果文本是不同的。但是,这也不行。因为当我按下按钮的第二个(快)的消息还没有被修改,从而测试通过并尝试以编辑消息,但是当它到达编辑的消息,它已经修改和例外抛出。我该如何解决这个问题?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。