From 6b37046254d79274ab589d9a80ff166429e3dc67 Mon Sep 17 00:00:00 2001 From: Konstantin M Date: Sun, 18 Mar 2018 16:33:28 -0700 Subject: [PATCH 1/2] Allow to hook load and save functions to use external session storage implementations --- pyrogram/client/__init__.py | 2 +- pyrogram/client/client.py | 13 +++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/pyrogram/client/__init__.py b/pyrogram/client/__init__.py index abda446480..960b6d2921 100644 --- a/pyrogram/client/__init__.py +++ b/pyrogram/client/__init__.py @@ -17,6 +17,6 @@ # along with Pyrogram. If not, see . from .chat_action import ChatAction -from .client import Client +from .client import Client, Proxy from .parse_mode import ParseMode from .emoji import Emoji diff --git a/pyrogram/client/client.py b/pyrogram/client/client.py index 9c49058aa7..ee4aabe6de 100644 --- a/pyrogram/client/client.py +++ b/pyrogram/client/client.py @@ -175,6 +175,9 @@ def __init__(self, self.download_queue = Queue() + self.load_session_hook = None + self.save_session_hook = None + def start(self): """Use this method to start the Client after creating it. Requires no parameters. @@ -183,7 +186,10 @@ def start(self): :class:`pyrogram.Error` """ self.load_config() - self.load_session(self.session_name) + if callable(self.load_session_hook): + self.load_session_hook(self) + else: + self.load_session(self.session_name) self.session = Session( self.dc_id, @@ -202,7 +208,10 @@ def start(self): else: self.authorize_bot() - self.save_session() + if callable(self.save_session_hook): + self.save_session_hook(self) + else: + self.save_session() if self.token is None: self.get_dialogs() From 57cea3dca487370a7c9c2b3a56e6b027ebe98e36 Mon Sep 17 00:00:00 2001 From: Konstantin M Date: Mon, 19 Mar 2018 07:07:11 -0700 Subject: [PATCH 2/2] Moved load session under native loading --- pyrogram/client/__init__.py | 2 +- pyrogram/client/client.py | 17 ++++++++--------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/pyrogram/client/__init__.py b/pyrogram/client/__init__.py index 960b6d2921..89cb3a85dc 100644 --- a/pyrogram/client/__init__.py +++ b/pyrogram/client/__init__.py @@ -17,6 +17,6 @@ # along with Pyrogram. If not, see . from .chat_action import ChatAction -from .client import Client, Proxy +from .client import Client, ApiKey, Proxy from .parse_mode import ParseMode from .emoji import Emoji diff --git a/pyrogram/client/client.py b/pyrogram/client/client.py index ee4aabe6de..7c1d516b85 100644 --- a/pyrogram/client/client.py +++ b/pyrogram/client/client.py @@ -190,15 +190,14 @@ def start(self): self.load_session_hook(self) else: self.load_session(self.session_name) - - self.session = Session( - self.dc_id, - self.test_mode, - self.proxy, - self.auth_key, - self.api_key.api_id, - client=self - ) + self.session = Session( + self.dc_id, + self.test_mode, + self.proxy, + self.auth_key, + self.api_key.api_id, + client=self + ) self.session.start()