Skip to content

Commit 108fa08

Browse files
committed
Update Storage abstract class
1 parent 6d0e2f7 commit 108fa08

1 file changed

Lines changed: 29 additions & 47 deletions

File tree

pyrogram/client/storage/storage.py

Lines changed: 29 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,15 @@
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

2024
class 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

Comments
 (0)