如何在 pyTelegramBotApi 中增加 send_action 的 运行 时间?
How to increase the running time of send_action in pyTelegramBotApi?
我想怎么做:动作被调度,它如何结束文件被发送。但是结果发现这个动作持续了5秒,然后又过了5秒才发送文件,而这个时候用户不明白是bot被冻结了还是文件还在发送。如何在直接发送文件之前增加操作持续时间?
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)
作为Tibebes。 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)
这样一来,就可以做到动作一结束,就立即发送文件,没有时间间隔
我想怎么做:动作被调度,它如何结束文件被发送。但是结果发现这个动作持续了5秒,然后又过了5秒才发送文件,而这个时候用户不明白是bot被冻结了还是文件还在发送。如何在直接发送文件之前增加操作持续时间?
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)
作为Tibebes。 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)
这样一来,就可以做到动作一结束,就立即发送文件,没有时间间隔