Telegram Bot 按下 Inline 按钮的时间过长
Telegram Bot presses Inline button too long
我制作了一个应该点击内联按钮的机器人。
我的问题是单击按钮需要整整 15 秒。
如何加快这个过程?
from telethon.sync import TelegramClient
from telethon import functions, types
from telethon import TelegramClient, sync
import time
AllLogs = open('logs.txt')
for logs in AllLogs:
api_id, api_hash = logs.split(';')
client = TelegramClient(f'session_{api_id}', api_id, api_hash)
client.start()
messages = client.get_messages(int(ChannelId), ids=int(MessageId))
start_time1 = time.time()
messages.click(0)
print("--- %s seconds ---" % (time.time() - start_time1))
client.disconnect()
您无法加速此过程。点击方法向 Telegram 发送请求,然后 Telegram 向机器人发送更新。机器人必须回答 Telegram 的更新,然后 Telegram 会将结果“转发”回您的原始点击。
本质上,click 必须等待机器人回答查询,如果回答不够快,它就会很慢。机器人可能需要修复以更快地回答(或根本不回答;如果它不回答,Telegram 超时并单击 returns None
)。
您 可以 做的是在 运行 单击“后台”时生成一个新的 asyncio
任务,但是,这不是好的做法,因为一个人应该总是 await
所有派生的任务,如果代码取决于机器人的响应,你 将 必须以某种方式等待它。我不推荐这种方法,但它在技术上“有效”。
import asyncio
...
asyncio.create_task(messages.click(0))
我制作了一个应该点击内联按钮的机器人。 我的问题是单击按钮需要整整 15 秒。 如何加快这个过程?
from telethon.sync import TelegramClient
from telethon import functions, types
from telethon import TelegramClient, sync
import time
AllLogs = open('logs.txt')
for logs in AllLogs:
api_id, api_hash = logs.split(';')
client = TelegramClient(f'session_{api_id}', api_id, api_hash)
client.start()
messages = client.get_messages(int(ChannelId), ids=int(MessageId))
start_time1 = time.time()
messages.click(0)
print("--- %s seconds ---" % (time.time() - start_time1))
client.disconnect()
您无法加速此过程。点击方法向 Telegram 发送请求,然后 Telegram 向机器人发送更新。机器人必须回答 Telegram 的更新,然后 Telegram 会将结果“转发”回您的原始点击。
本质上,click 必须等待机器人回答查询,如果回答不够快,它就会很慢。机器人可能需要修复以更快地回答(或根本不回答;如果它不回答,Telegram 超时并单击 returns None
)。
您 可以 做的是在 运行 单击“后台”时生成一个新的 asyncio
任务,但是,这不是好的做法,因为一个人应该总是 await
所有派生的任务,如果代码取决于机器人的响应,你 将 必须以某种方式等待它。我不推荐这种方法,但它在技术上“有效”。
import asyncio
...
asyncio.create_task(messages.click(0))