2
0
mirror of https://github.com/pyrogram/pyrogram synced 2025-08-25 03:17:41 +00:00

Update get_history.py example

This commit is contained in:
Dan 2018-05-11 18:00:26 +02:00
parent ef93fee7aa
commit 0578cf6edc

View File

@ -19,7 +19,6 @@
import time import time
from pyrogram import Client from pyrogram import Client
from pyrogram.api import functions
from pyrogram.api.errors import FloodWait from pyrogram.api.errors import FloodWait
"""This example shows how to retrieve the full message history of a chat""" """This example shows how to retrieve the full message history of a chat"""
@ -28,30 +27,27 @@ app = Client("my_account")
app.start() app.start()
target = "me" # "me" refers to your own chat (Saved Messages) target = "me" # "me" refers to your own chat (Saved Messages)
history = [] # List that will contain all the messages of the target chat messages = [] # List that will contain all the messages of the target chat
limit = 100 # Amount of messages to retrieve for each API call offset_id = 0 # ID of the last message of the chunk
offset = 0 # Offset starts at 0
while True: while True:
try: try:
messages = app.send( m = app.get_history(target, offset_id=offset_id)
functions.messages.GetHistory(
app.resolve_peer(target),
0, 0, offset, limit, 0, 0, 0
)
)
except FloodWait as e: except FloodWait as e:
# For very large chats the method call can raise a FloodWait # For very large chats the method call can raise a FloodWait
print("waiting {}".format(e.x))
time.sleep(e.x) # Sleep X seconds before continuing time.sleep(e.x) # Sleep X seconds before continuing
continue continue
if not messages.messages: if not m.messages:
break # No more messages left break
history.extend(messages.messages) messages += m.messages
offset += limit offset_id = m.messages[-1].message_id
print("Messages: {}".format(len(messages)))
app.stop() app.stop()
# Now the "history" list contains all the messages sorted by date in # Now the "messages" list contains all the messages sorted by date in
# descending order (from the most recent to the oldest one) # descending order (from the most recent to the oldest one)