Skip to content

Commit aa62e61

Browse files
Use get_session instead of manually creating session
1 parent ffe4254 commit aa62e61

4 files changed

Lines changed: 21 additions & 58 deletions

File tree

pyrogram/client.py

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1355,7 +1355,14 @@ async def get_session(
13551355
if not temporary and sessions.get(dc_id):
13561356
return sessions[dc_id]
13571357

1358-
dc_option = await self.get_dc_option(dc_id, is_media=is_media, ipv6=self.ipv6, is_cdn=is_cdn)
1358+
if not server_address or not port:
1359+
dc_option = await self.get_dc_option(dc_id, is_media=is_media, ipv6=self.ipv6, is_cdn=is_cdn)
1360+
1361+
server_address = server_address or dc_option.ip_address
1362+
port = port or dc_option.port
1363+
else:
1364+
server_address = server_address or await self.storage.server_address()
1365+
port = port or await self.storage.port()
13591366

13601367
if is_media:
13611368
auth_key = (await self.get_session(dc_id)).auth_key
@@ -1364,8 +1371,8 @@ async def get_session(
13641371
auth_key = await Auth(
13651372
self,
13661373
dc_id,
1367-
server_address or dc_option.ip_address,
1368-
port or dc_option.port,
1374+
server_address,
1375+
port,
13691376
await self.storage.test_mode()
13701377
).create()
13711378
else:
@@ -1374,8 +1381,8 @@ async def get_session(
13741381
session = Session(
13751382
self,
13761383
dc_id,
1377-
server_address or dc_option.ip_address,
1378-
port or dc_option.port,
1384+
server_address,
1385+
port,
13791386
auth_key,
13801387
await self.storage.test_mode(),
13811388
is_media=is_media

pyrogram/methods/auth/connect.py

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
1818

1919
import pyrogram
20-
from pyrogram.session import Session
2120

2221

2322
class Connect:
@@ -39,17 +38,12 @@ async def connect(
3938

4039
await self.load_session()
4140

42-
self.session = Session(
43-
self,
44-
await self.storage.dc_id(),
45-
await self.storage.server_address(),
46-
await self.storage.port(),
47-
await self.storage.auth_key(),
48-
await self.storage.test_mode()
41+
self.session = self.get_session(
42+
server_address=await self.storage.server_address(),
43+
port=await self.storage.port(),
44+
export_authorization=False,
45+
temporary=True
4946
)
50-
51-
await self.session.start()
52-
5347
self.is_connected = True
5448

5549
is_ipv6_session = ":" in await self.storage.server_address()

pyrogram/methods/auth/send_code.py

Lines changed: 2 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,6 @@
2323
from pyrogram import raw
2424
from pyrogram import types
2525
from pyrogram.errors import PhoneMigrate, NetworkMigrate
26-
from pyrogram.raw.base import dc_option
27-
from pyrogram.session import Session, Auth
2826

2927
log = logging.getLogger(__name__)
3028

@@ -105,30 +103,12 @@ async def send_code(
105103
except (PhoneMigrate, NetworkMigrate) as e:
106104
dc_option = await self.get_dc_option(e.value, ipv6=self.ipv6)
107105
await self.session.stop()
106+
self.session = None
108107

109108
await self.storage.dc_id(e.value)
110109
await self.storage.server_address(dc_option.ip_address)
111110
await self.storage.port(dc_option.port)
112111

113-
await self.storage.auth_key(
114-
await Auth(
115-
self,
116-
await self.storage.dc_id(),
117-
await self.storage.server_address(),
118-
await self.storage.port(),
119-
await self.storage.test_mode()
120-
).create()
121-
)
122-
123-
self.session = Session(
124-
self,
125-
await self.storage.dc_id(),
126-
await self.storage.server_address(),
127-
await self.storage.port(),
128-
await self.storage.auth_key(),
129-
await self.storage.test_mode()
130-
)
131-
132-
await self.session.start()
112+
self.session = await self.get_session(temporary=True, export_authorization=False)
133113
else:
134114
return types.SentCode._parse(r)

pyrogram/methods/auth/sign_in_bot.py

Lines changed: 2 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,6 @@
2222
from pyrogram import raw
2323
from pyrogram import types
2424
from pyrogram.errors import UserMigrate
25-
from pyrogram.raw.base import dc_option
26-
from pyrogram.session import Session, Auth
2725

2826
log = logging.getLogger(__name__)
2927

@@ -60,29 +58,13 @@ async def sign_in_bot(
6058
except UserMigrate as e:
6159
dc_option = await self.get_dc_option(e.value, ipv6=self.ipv6)
6260
await self.session.stop()
61+
self.session = None
6362

6463
await self.storage.dc_id(e.value)
6564
await self.storage.server_address(dc_option.ip_address)
6665
await self.storage.port(dc_option.port)
67-
await self.storage.auth_key(
68-
await Auth(
69-
self,
70-
await self.storage.dc_id(),
71-
await self.storage.server_address(),
72-
await self.storage.port(),
73-
await self.storage.test_mode()
74-
).create()
75-
)
76-
self.session = Session(
77-
self,
78-
await self.storage.dc_id(),
79-
await self.storage.server_address(),
80-
await self.storage.port(),
81-
await self.storage.auth_key(),
82-
await self.storage.test_mode()
83-
)
8466

85-
await self.session.start()
67+
self.session = self.get_session(temporary=True, export_authorization=False)
8668
else:
8769
await self.storage.user_id(r.user.id)
8870
await self.storage.is_bot(True)

0 commit comments

Comments
 (0)