Skip to content

Commit fe9b968

Browse files
committed
Add basic update handler
1 parent 315563e commit fe9b968

2 files changed

Lines changed: 15 additions & 3 deletions

File tree

pyrogram/client/client.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,12 @@ def __init__(self, session_name: str, test_mode: bool = False):
8181
self.config = None
8282
self.session = None
8383

84+
self.update_handler = None
85+
86+
# TODO: Better update handler
87+
def set_update_handler(self, callback):
88+
self.update_handler = callback
89+
8490
def send(self, data: Object):
8591
return self.session.send(data)
8692

@@ -249,6 +255,7 @@ def start(self):
249255
self.load_session(self.session_name)
250256

251257
self.session = Session(self.dc_id, self.test_mode, self.auth_key, self.config.api_id)
258+
self.session.update_handler = self.update_handler
252259

253260
terms = self.session.start()
254261

pyrogram/session/session.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,8 @@ def __init__(self, dc_id: int, test_mode: bool, auth_key: bytes, api_id: str):
9696

9797
self.is_connected = Event()
9898

99+
self.update_handler = None
100+
99101
self.total_connections = 0
100102
self.total_messages = 0
101103
self.total_bytes = 0
@@ -246,19 +248,22 @@ def unpack_dispatch_and_ack(self, packet: bytes):
246248
self.pending_acks.add(i.body.answer_msg_id)
247249
continue
248250

251+
if isinstance(i.body, types.NewSessionCreated):
252+
continue
253+
249254
msg_id = None
250255

251256
if isinstance(i.body, (types.BadMsgNotification, types.BadServerSalt)):
252257
msg_id = i.body.bad_msg_id
253-
254258
elif isinstance(i.body, types.RpcResult):
255259
msg_id = i.body.req_msg_id
256-
257260
elif isinstance(i.body, types.Pong):
258261
msg_id = i.body.msg_id
259-
260262
elif isinstance(i.body, core.FutureSalts):
261263
msg_id = i.body.req_msg_id
264+
else:
265+
if self.update_handler:
266+
self.update_handler(i.body)
262267

263268
if msg_id in self.results:
264269
self.results[msg_id].value = getattr(i.body, "result", i.body)

0 commit comments

Comments
 (0)