1616# You should have received a copy of the GNU Lesser General Public License
1717# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
1818
19+ import base64
20+ import struct
21+ from typing import List , Tuple
22+
1923
2024class Storage :
25+ SESSION_STRING_FORMAT = ">B?256sI?"
26+ SESSION_STRING_SIZE = 351
27+
2128 def __init__ (self , name : str ):
2229 self .name = name
2330
@@ -30,72 +37,47 @@ def save(self):
3037 def close (self ):
3138 raise NotImplementedError
3239
33- def destroy (self ):
34- raise NotImplementedError
35-
36- def update_peers (self , peers ):
37- raise NotImplementedError
38-
39- def get_peer_by_id (self , peer_id ):
40+ def delete (self ):
4041 raise NotImplementedError
4142
42- def get_peer_by_username (self , username ):
43+ def update_peers (self , peers : List [ Tuple [ int , int , str , str , str ]] ):
4344 raise NotImplementedError
4445
45- def get_peer_by_phone_number (self , phone_number ):
46+ def get_peer_by_id (self , peer_id : int ):
4647 raise NotImplementedError
4748
48- def export_session_string (self ):
49+ def get_peer_by_username (self , username : str ):
4950 raise NotImplementedError
5051
51- @property
52- def peers_count (self ):
52+ def get_peer_by_phone_number (self , phone_number : str ):
5353 raise NotImplementedError
5454
55- @property
56- def dc_id (self ):
55+ def dc_id (self , value : int = object ):
5756 raise NotImplementedError
5857
59- @dc_id .setter
60- def dc_id (self , value ):
58+ def test_mode (self , value : bool = object ):
6159 raise NotImplementedError
6260
63- @property
64- def test_mode (self ):
61+ def auth_key (self , value : bytes = object ):
6562 raise NotImplementedError
6663
67- @test_mode .setter
68- def test_mode (self , value ):
64+ def date (self , value : int = object ):
6965 raise NotImplementedError
7066
71- @property
72- def auth_key (self ):
67+ def user_id (self , value : int = object ):
7368 raise NotImplementedError
7469
75- @auth_key .setter
76- def auth_key (self , value ):
70+ def is_bot (self , value : bool = object ):
7771 raise NotImplementedError
7872
79- @property
80- def date (self ):
81- raise NotImplementedError
82-
83- @date .setter
84- def date (self , value ):
85- raise NotImplementedError
86-
87- @property
88- def user_id (self ):
89- raise NotImplementedError
90-
91- @user_id .setter
92- def user_id (self , value ):
93- raise NotImplementedError
94-
95- @property
96- def is_bot (self ):
97- raise NotImplementedError
98-
99- @is_bot .setter
100- def is_bot (self , value ):
101- raise NotImplementedError
73+ def export_session_string (self ):
74+ return base64 .urlsafe_b64encode (
75+ struct .pack (
76+ self .SESSION_STRING_FORMAT ,
77+ self .dc_id (),
78+ self .test_mode (),
79+ self .auth_key (),
80+ self .user_id (),
81+ self .is_bot ()
82+ )
83+ ).decode ().rstrip ("=" )
0 commit comments