Skip to content
This repository was archived by the owner on Feb 11, 2026. It is now read-only.

Commit 586018f

Browse files
committed
Улучшено управление user_agent в SocketMixin и WebSocketMixin, добавлен новый код для CONTACT_ADD_BY_PHONE в Opcode
1 parent 057b2b7 commit 586018f

File tree

4 files changed

+8
-6
lines changed

4 files changed

+8
-6
lines changed

src/pymax/interfaces.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ def _make_message(
214214
ver=11,
215215
cmd=cmd,
216216
seq=self._seq,
217-
opcode=opcode.value,
217+
opcode=opcode,
218218
payload=payload,
219219
).model_dump(by_alias=True)
220220

@@ -517,7 +517,7 @@ def _get_retry_delay(self, error: Exception, retry_count: int) -> float:
517517
async def _sync(self, user_agent: UserAgentPayload | None = None) -> None:
518518
self.logger.info("Starting initial sync")
519519

520-
if user_agent is None:
520+
if user_agent is None or self.headers is None:
521521
user_agent = self.headers or UserAgentPayload()
522522

523523
payload = SyncPayload(

src/pymax/mixins/socket.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -216,8 +216,9 @@ async def connect(self, user_agent: UserAgentPayload | None = None) -> dict[str,
216216
:return: Результат handshake.
217217
:rtype: dict[str, Any] | None
218218
"""
219-
if user_agent is None:
220-
user_agent = UserAgentPayload()
219+
if user_agent is None or self.headers is None:
220+
user_agent = self.headers or UserAgentPayload()
221+
221222
if sys.version_info[:2] == (3, 12):
222223
self.logger.warning(
223224
"""

src/pymax/mixins/websocket.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@ async def connect(self, user_agent: UserAgentPayload | None = None) -> dict[str,
3636
:return: Результат handshake.
3737
:rtype: dict[str, Any] | None
3838
"""
39-
if user_agent is None:
40-
user_agent = UserAgentPayload()
39+
if user_agent is None or self.headers is None:
40+
user_agent = UserAgentPayload() or self.headers
4141

4242
self.logger.info("Connecting to WebSocket %s", self.uri)
4343

src/pymax/static/enum.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ class Opcode(int, Enum):
3030
CONTACT_MUTUAL = 38
3131
CONTACT_PHOTOS = 39
3232
CONTACT_SORT = 40
33+
CONTACT_ADD_BY_PHONE = 41
3334
CONTACT_VERIFY = 42
3435
REMOVE_CONTACT_PHOTO = 43
3536
CONTACT_INFO_BY_PHONE = 46 # ✅

0 commit comments

Comments
 (0)