From c75a4f182a0d788badfe3b7753604bbbb213ffc0 Mon Sep 17 00:00:00 2001 From: Dan <14043624+delivrance@users.noreply.github.com> Date: Sat, 15 Sep 2018 13:23:25 +0200 Subject: [PATCH] Handle Telegram exceptions on start(). Fixes #121 The client doesn't need to be stopped as it never started successfully. --- pyrogram/client/client.py | 45 ++++++++++++++++++++++----------------- 1 file changed, 25 insertions(+), 20 deletions(-) diff --git a/pyrogram/client/client.py b/pyrogram/client/client.py index 709ea95a..f0134be0 100644 --- a/pyrogram/client/client.py +++ b/pyrogram/client/client.py @@ -215,29 +215,34 @@ class Client(Methods, BaseClient): self.session.start() self.is_started = True + + try: + if self.user_id is None: + if self.token is None: + self.authorize_user() + else: + self.authorize_bot() + + self.save_session() - if self.user_id is None: if self.token is None: - self.authorize_user() + now = time.time() + + if abs(now - self.date) > Client.OFFLINE_SLEEP: + self.peers_by_username = {} + self.peers_by_phone = {} + + self.get_initial_dialogs() + self.get_contacts() + else: + self.send(functions.messages.GetPinnedDialogs()) + self.get_initial_dialogs_chunk() else: - self.authorize_bot() - - self.save_session() - - if self.token is None: - now = time.time() - - if abs(now - self.date) > Client.OFFLINE_SLEEP: - self.peers_by_username = {} - self.peers_by_phone = {} - - self.get_initial_dialogs() - self.get_contacts() - else: - self.send(functions.messages.GetPinnedDialogs()) - self.get_initial_dialogs_chunk() - else: - self.send(functions.updates.GetState()) + self.send(functions.updates.GetState()) + except Exception as e: + self.is_started = False + self.session.stop() + raise e for i in range(self.UPDATES_WORKERS): self.updates_workers_list.append(