From 4561d04c67d98d1882cf72fcd10b0aa8cfbedcc5 Mon Sep 17 00:00:00 2001 From: Dan <14043624+delivrance@users.noreply.github.com> Date: Mon, 26 Feb 2018 15:43:03 +0100 Subject: [PATCH] Add get_history example --- examples/get_history.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 examples/get_history.py diff --git a/examples/get_history.py b/examples/get_history.py new file mode 100644 index 00000000..f1f36eca --- /dev/null +++ b/examples/get_history.py @@ -0,0 +1,35 @@ +import time + +from pyrogram import Client +from pyrogram.api import functions +from pyrogram.api.errors import FloodWait + +client = Client("example") +client.start() + +target = "me" # "me" refers to your own chat (Saved Messages) +history = [] # List that will contain all the messages of the target chat +limit = 100 # Amount of messages to retrieve for each API call +offset = 0 # Offset starts at 0 + +while True: + try: + messages = client.send( + functions.messages.GetHistory( + client.resolve_peer(target), + 0, 0, offset, limit, 0, 0, 0 + ) + ) + except FloodWait as e: + # For very large chats the method call can raise a FloodWait + time.sleep(e.x) # Sleep X seconds before continuing + continue + + if not messages.messages: + break # No more messages left + + history.extend(messages.messages) + offset += limit + +# Now the "history" list contains all the messages sorted by date in +# descending order (from the most recent to the oldest one)