如何增加pyTelegramBotApi中send_action的运行时间?

我想怎么做:调度操作,如何结束文件发送。但事实证明,该动作持续了 5 秒,然后又花了 5 秒来发送文件,而这次用户不明白是机器人被冻结还是文件仍在发送。如何在直接发送文件之前增加操作持续时间?


import telebot

...

def send_file(m: Message, file):

    bot.send_chat_action(m.chat.id, action='upload_document')

    bot.send_document(m.chat.id, file)


守着星空守着你
浏览 86回答 1
1回答

慕桂英3389331

作为提比布斯。M说这是不可能的,因为所有操作都是通过 API 发送的。但线程帮助我解决了这个问题。解决方案如下所示:from threading import Threaddef send_action(id, ac):    bot.send_chat_action(id, action=ac)def send_doc(id, f):    bot.send_document(id, f)def send_file(m: Message):    file = open(...)    Thread(target=send_action, args=(m.chat.id, 'upload_document')).start()    Thread(target=send_doc, args=(m.chat.id, file)).start()...send_file(m)因此,可以做到动作一结束,就立即发送文件,没有时间间隔
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python