From 6b37046254d79274ab589d9a80ff166429e3dc67 Mon Sep 17 00:00:00 2001 From: Konstantin M Date: Sun, 18 Mar 2018 16:33:28 -0700 Subject: [PATCH] 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()