重发消息的Telethon超时

2024-04-24 23:47:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我想使用Telethon向telegrambot发送消息,并使用事件处理函数处理其响应。有没有办法为传入事件设置超时?例如,如果我向bot发送“Hi”消息,但它在5秒后没有响应,Telethon会再次发送“Hi”消息。在


Tags: 函数消息bot事件hitelegrambot办法telethon
1条回答
网友
1楼 · 发布于 2024-04-24 23:47:14

首先,我们需要创建一个处理程序并绑定到telethon客户机的NewMessage事件。在

from datetime import datetime
from telethon import TelegramClient, events
from telethon.tl.types import InputPeerUser

client = TelegramClient('session_name', app_id, 'app_token')
last_message_received_on = None


@client.on(events.NewMessage)
def on_message_received(event: events.NewMessage.Event):
    print(event.raw_text)

现在在我们的on_message_received处理程序中,我们需要添加一行来确定bot对我们的响应是datetime。因此我们将处理程序更改为:

^{pr2}$

现在我们启动客户端并运行一个循环。我们向机器人发送一条消息,然后检查是否在5秒钟内收到响应。我们继续这个循环,直到在5秒内收到响应。我想你现在明白了。在

with client.start():
    bot = client.get_entity('https://t.me/some_user_name')

    while True:
        send_message('hi')
        if not last_message_received_on or (last_message_received_on < datetime.now()).seconds > 5:
            send_message('hi')
        else:
            break

此外,您还需要time.sleep()再次发送消息至少1秒,以使事情自然和现实。因为你不希望对方立刻做出反应!在

相关问题 更多 >