我想怎么做:调度操作,如何结束文件发送。但事实证明,该动作持续了 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)
1 回答
慕桂英3389331
TA贡献2036条经验 获得超8个赞
作为提比布斯。M说这是不可能的,因为所有操作都是通过 API 发送的。但线程帮助我解决了这个问题。解决方案如下所示:
from threading import Thread
def 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)
因此,可以做到动作一结束,就立即发送文件,没有时间间隔
添加回答
举报
0/150
提交
取消