我通过 GetHistoryRequest 获取 Telegram 频道的所有消息。我想每天运行一个脚本,它会给我新的消息。是否可以颠倒 GetHistoryRequest 中消息的顺序?我看到了一个附加属性reverse=True,但这给了我一条错误消息。这是代码(可在线获取)
history = client(GetHistoryRequest(
peer=my_channel,
offset_id=0,
offset_date=None,
add_offset=0,
limit=limit,
max_id=0,
min_id=0,
hash=0
))
这在这里有效。下载 100 条消息
from telethon.tl import functions, types
channel_link = "https://t.me/joinchat/xxxxxx-xxx"
channel_hash = channel_link.strip().split("joinchat/",1)[1]
channel = await client(functions.messages.CheckChatInviteRequest(hash=channel_hash))
async for message in client.iter_messages(channel.chat, limit = 100,reverse=True):
while True:
# Fetch a batch of messages
history = await self.client(GetHistoryRequest(
peer=source[0],
limit=batch_size,
offset_date=None,
offset_id=offset_id, # No offset, as we're starting from the first message
max_id=0,
min_id=0, # Start from the current min_id
add_offset=0,
hash=0
))
if not history.messages:
# Stop if there are no more messages
break
total_messages += len(history.messages)
print(f"Fetched {total_messages} messages so far")
for message in history.messages[::-1]: # Process messages from oldest to newest
try: