为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

守着星空守着你 2023-10-11 22:54:33
我想怎么做:调度操作,如何结束文件发送。但事实证明,该动作持续了 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)

因此,可以做到动作一结束,就立即发送文件,没有时间间隔


查看完整回答
反对 回复 2023-10-11
  • 1 回答
  • 0 关注
  • 82 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信