diff --git a/pyrogram/client.py b/pyrogram/client.py index 3e546660..e59f2059 100644 --- a/pyrogram/client.py +++ b/pyrogram/client.py @@ -50,7 +50,7 @@ from pyrogram.errors import ( from pyrogram.handlers.handler import Handler from pyrogram.methods import Methods from pyrogram.session import Auth, Session -from pyrogram.storage import FileStorage, MemoryStorage, MongoStorage +from pyrogram.storage import FileStorage, MemoryStorage, MongoStorage, Storage from pyrogram.types import User, TermsOfService from pyrogram.utils import ainput from .dispatcher import Dispatcher @@ -129,6 +129,9 @@ class Client(Methods): mongodb (``dict``, *optional*): Mongodb config as dict, e.g.: *dict(connection=async_pymongo.AsyncClient("mongodb://..."), remove_peers=False)*. Only applicable for new sessions. + + storage (:obj:`~pyrogram.storage.Storage`, *optional*): + Custom session storage. phone_number (``str``, *optional*): Pass the phone number as string (with the Country Code prefix included) to avoid entering it manually. @@ -225,6 +228,7 @@ class Client(Methods): session_string: str = None, in_memory: bool = None, mongodb: dict = None, + storage: Storage = None, phone_number: str = None, phone_code: str = None, password: str = None, @@ -270,7 +274,9 @@ class Client(Methods): self.executor = ThreadPoolExecutor(self.workers, thread_name_prefix="Handler") - if self.session_string: + if storage: + self.storage = storage + elif self.session_string: self.storage = MemoryStorage(self.name, self.session_string) elif self.in_memory: self.storage = MemoryStorage(self.name)