mirror of
https://github.com/TeamPGM/pyrogram.git
synced 2024-11-23 23:34:28 +00:00
Update session string format (#818)
This commit is contained in:
parent
ef6125b57a
commit
fe764e0e2b
@ -36,7 +36,8 @@ class MemoryStorage(SQLiteStorage):
|
|||||||
|
|
||||||
if self.name != ":memory:":
|
if self.name != ":memory:":
|
||||||
dc_id, test_mode, auth_key, user_id, is_bot = struct.unpack(
|
dc_id, test_mode, auth_key, user_id, is_bot = struct.unpack(
|
||||||
self.SESSION_STRING_FORMAT,
|
(self.SESSION_STRING_FORMAT if len(self.name) == MemoryStorage.SESSION_STRING_SIZE else
|
||||||
|
self.SESSION_STRING_FORMAT_64),
|
||||||
base64.urlsafe_b64decode(
|
base64.urlsafe_b64decode(
|
||||||
self.name + "=" * (-len(self.name) % 4)
|
self.name + "=" * (-len(self.name) % 4)
|
||||||
)
|
)
|
||||||
|
@ -20,10 +20,14 @@ import base64
|
|||||||
import struct
|
import struct
|
||||||
from typing import List, Tuple
|
from typing import List, Tuple
|
||||||
|
|
||||||
|
from pyrogram import utils
|
||||||
|
|
||||||
|
|
||||||
class Storage:
|
class Storage:
|
||||||
SESSION_STRING_FORMAT = ">B?256sI?"
|
SESSION_STRING_FORMAT = ">B?256sI?"
|
||||||
|
SESSION_STRING_FORMAT_64 = ">B?256sQ?"
|
||||||
SESSION_STRING_SIZE = 351
|
SESSION_STRING_SIZE = 351
|
||||||
|
SESSION_STRING_SIZE_64 = 356
|
||||||
|
|
||||||
def __init__(self, name: str):
|
def __init__(self, name: str):
|
||||||
self.name = name
|
self.name = name
|
||||||
@ -71,13 +75,14 @@ class Storage:
|
|||||||
raise NotImplementedError
|
raise NotImplementedError
|
||||||
|
|
||||||
async def export_session_string(self):
|
async def export_session_string(self):
|
||||||
|
user_id = await self.user_id()
|
||||||
return base64.urlsafe_b64encode(
|
return base64.urlsafe_b64encode(
|
||||||
struct.pack(
|
struct.pack(
|
||||||
self.SESSION_STRING_FORMAT,
|
self.SESSION_STRING_FORMAT if user_id < utils.MAX_USER_ID_OLD else self.SESSION_STRING_FORMAT_64,
|
||||||
await self.dc_id(),
|
await self.dc_id(),
|
||||||
await self.test_mode(),
|
await self.test_mode(),
|
||||||
await self.auth_key(),
|
await self.auth_key(),
|
||||||
await self.user_id(),
|
user_id,
|
||||||
await self.is_bot()
|
await self.is_bot()
|
||||||
)
|
)
|
||||||
).decode().rstrip("=")
|
).decode().rstrip("=")
|
||||||
|
@ -159,6 +159,7 @@ def unpack_inline_message_id(inline_message_id: str) -> "raw.types.InputBotInlin
|
|||||||
MIN_CHANNEL_ID = -1002147483647
|
MIN_CHANNEL_ID = -1002147483647
|
||||||
MAX_CHANNEL_ID = -1000000000000
|
MAX_CHANNEL_ID = -1000000000000
|
||||||
MIN_CHAT_ID = -2147483647
|
MIN_CHAT_ID = -2147483647
|
||||||
|
MAX_USER_ID_OLD = 2147483647
|
||||||
MAX_USER_ID = 999999999999
|
MAX_USER_ID = 999999999999
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user