From 25d746e2c729b2b0d12e25a1439218a6d7867717 Mon Sep 17 00:00:00 2001
From: a1025
Date: Sat, 19 Mar 2022 23:35:23 +0800
Subject: [PATCH 001/113] change: rewrite login.py
---
cai/api/base.py | 19 ++++
cai/api/login.py | 243 +++++++++++++++++------------------------------
2 files changed, 106 insertions(+), 156 deletions(-)
create mode 100644 cai/api/base.py
diff --git a/cai/api/base.py b/cai/api/base.py
new file mode 100644
index 00000000..6273fe8f
--- /dev/null
+++ b/cai/api/base.py
@@ -0,0 +1,19 @@
+from typing import Callable
+
+from cai.client.client import Client as client_t
+from cai.exceptions import LoginException
+
+
+class BaseAPI:
+ client: client_t
+
+ async def _executor(self, func_name: str, *args, **kwargs):
+ if not hasattr(self.client, func_name):
+ raise AttributeError(f"client has no attribute '{func_name}'")
+ try:
+ await getattr(self.client, func_name)(*args, **kwargs)
+ except LoginException:
+ raise
+ except Exception:
+ await self.client.close()
+ raise
diff --git a/cai/api/login.py b/cai/api/login.py
index b6a71ea4..e2c71d37 100644
--- a/cai/api/login.py
+++ b/cai/api/login.py
@@ -6,165 +6,96 @@
.. _LICENSE:
https://github.com/cscs181/CAI/blob/master/LICENSE
"""
+import hashlib
+from typing import Optional, Union
-from typing import Optional
-
+from .base import BaseAPI
from cai.client import Client
-from cai.exceptions import LoginException
-
-from . import _clients
-from .client import get_client
-
-
-async def login(uin: int, password_md5: Optional[bytes] = None) -> Client:
- """Create a new client (or use an existing one) and login.
-
- Password md5 should be provided when login a new account.
-
- This function wraps the :meth:`~cai.client.client.Client.login` method of the client.
-
- Args:
- uin (int): QQ account number.
- password_md5 (Optional[bytes], optional): md5 bytes of the password. Defaults to None.
-
- Raises:
- RuntimeError: Client already exists and is running.
- RuntimeError: Password not provided when login a new account.
- LoginSliderException: Need slider ticket.
- LoginCaptchaException: Need captcha image.
- """
- if uin in _clients:
- client = _clients[uin]
- if client.connected:
- raise RuntimeError(f"Client {uin} already connected!")
- client._password_md5 = password_md5 or client._password_md5
- else:
- if not password_md5:
- raise RuntimeError(f"Password md5 needed for creating new client!")
- client = Client(uin, password_md5)
- _clients[uin] = client
-
- await client.reconnect()
- try:
- await client.login()
- except LoginException:
- raise
- except Exception:
- await client.close()
- raise
- return client
-
-
-async def submit_captcha(
- captcha: str, captcha_sign: bytes, uin: Optional[int] = None
-) -> bool:
- """Submit captcha data to login.
-
- This function wraps the :meth:`~cai.client.client.Client.submit_captcha`
- method of the client.
-
- Args:
- captcha (str): Captcha data to submit.
- captcha_sign (bytes): Captcha sign received when login.
- uin (Optional[int], optional): Account of the client want to login.
- Defaults to None.
-
- Raises:
- RuntimeError: Client already exists and is running.
- RuntimeError: Password not provided when login a new account.
- LoginSliderException: Need slider ticket.
- LoginCaptchaException: Need captcha image.
- """
- client = get_client(uin)
- try:
- await client.submit_captcha(captcha, captcha_sign)
- except LoginException:
- raise
- except Exception:
- await client.close()
- raise
- return True
-
-
-async def submit_slider_ticket(ticket: str, uin: Optional[int] = None) -> bool:
- """Submit slider ticket to login.
-
- This function wraps the :meth:`~cai.client.client.Client.submit_slider_ticket`
- method of the client.
-
- Args:
- ticket (str): Slider ticket to submit.
- uin (Optional[int], optional): Account of the client want to login.
- Defaults to None.
-
- Raises:
- RuntimeError: Client already exists and is running.
- RuntimeError: Password not provided when login a new account.
- LoginSliderException: Need slider ticket.
- LoginCaptchaException: Need captcha image.
- """
- client = get_client(uin)
- try:
- await client.submit_slider_ticket(ticket)
- except LoginException:
- raise
- except Exception:
- await client.close()
- raise
- return True
-
-
-async def request_sms(uin: Optional[int] = None) -> bool:
- """Request sms code message to login.
-
- This function wraps the :meth:`~cai.client.client.Client.request_sms`
- method of the client.
-
- Args:
- uin (Optional[int], optional): Account of the client want to login.
- Defaults to None.
-
- Raises:
- RuntimeError: Client already exists and is running.
- RuntimeError: Password not provided when login a new account.
- LoginSMSRequestError: Too many SMS messages were sent.
- """
- client = get_client(uin)
- return await client.request_sms()
-
-
-async def submit_sms(sms_code: str, uin: Optional[int] = None) -> bool:
- """Submit sms code to login.
-
- This function wraps the :meth:`~cai.client.client.Client.submit_sms`
- method of the client.
-
- Args:
- sms_code (str): SMS code to submit.
- uin (Optional[int], optional): Account of the client want to login.
- Defaults to None.
-
- Raises:
- RuntimeError: Client already exists and is running.
- RuntimeError: Password not provided when login a new account.
- LoginSliderException: Need slider ticket.
- LoginCaptchaException: Need captcha image.
- """
- client = get_client(uin)
- try:
- await client.submit_sms(sms_code)
- except LoginException:
- raise
- except Exception:
- await client.close()
- raise
- return True
+
+
+class Login(BaseAPI):
+ def __init__(self, client: Client):
+ self.client = client
+
+ async def login(self):
+ """Create a new client (or use an existing one) and login.
+
+ This function wraps the :meth:`~cai.client.client.Client.login` method of the client.
+
+ Raises:
+ LoginSliderException: Need slider ticket.
+ LoginCaptchaException: Need captcha image.
+ """
+ await self.client.reconnect()
+ await self._executor("login")
+
+ async def submit_captcha(
+ self, captcha: str, captcha_sign: bytes
+ ) -> bool:
+ """Submit captcha data to login.
+
+ This function wraps the :meth:`~cai.client.client.Client.submit_captcha`
+ method of the client.
+
+ Args:
+ captcha (str): Captcha data to submit.
+ captcha_sign (bytes): Captcha sign received when login.
+
+ Raises:
+ LoginSliderException: Need slider ticket.
+ LoginCaptchaException: Need captcha image.
+ """
+ await self._executor("submit_captcha", captcha, captcha_sign)
+ return True
+
+ async def submit_slider_ticket(self, ticket: str, uin: Optional[int] = None) -> bool:
+ """Submit slider ticket to login.
+
+ This function wraps the :meth:`~cai.client.client.Client.submit_slider_ticket`
+ method of the client.
+
+ Args:
+ ticket (str): Slider ticket to submit.
+
+ Raises:
+ LoginSliderException: Need slider ticket.
+ LoginCaptchaException: Need captcha image.
+ """
+ await self._executor("submit_slider_ticket", ticket)
+ return True
+
+ async def request_sms(self) -> bool:
+ """Request sms code message to login.
+
+ This function wraps the :meth:`~cai.client.client.Client.request_sms`
+ method of the client.
+
+ Args:
+ uin (Optional[int], optional): Account of the client want to login.
+ Defaults to None.
+
+ Raises:
+ LoginSMSRequestError: Too many SMS messages were sent.
+ """
+ return await self.client.request_sms()
+
+ async def submit_sms(self, sms_code: str) -> bool:
+ """Submit sms code to login.
+
+ This function wraps the :meth:`~cai.client.client.Client.submit_sms`
+ method of the client.
+
+ Args:
+ sms_code (str): SMS code to submit.
+
+ Raises:
+ LoginSliderException: Need slider ticket.
+ LoginCaptchaException: Need captcha image.
+ """
+ await self._executor("submit_sms", sms_code)
+ return True
__all__ = [
- "login",
- "submit_captcha",
- "submit_slider_ticket",
- "request_sms",
- "submit_sms",
+ "Login"
]
From 1c037d546b95a85dfbbd0c5df7663d1dbd7fb33c Mon Sep 17 00:00:00 2001
From: a1025
Date: Sat, 19 Mar 2022 23:51:51 +0800
Subject: [PATCH 002/113] fix: logical of login.py
---
cai/api/login.py | 33 +++++++++++++++++++++++++++------
1 file changed, 27 insertions(+), 6 deletions(-)
diff --git a/cai/api/login.py b/cai/api/login.py
index e2c71d37..ebe2ee1f 100644
--- a/cai/api/login.py
+++ b/cai/api/login.py
@@ -11,6 +11,7 @@
from .base import BaseAPI
from cai.client import Client
+from cai.exceptions import LoginException
class Login(BaseAPI):
@@ -27,7 +28,11 @@ async def login(self):
LoginCaptchaException: Need captcha image.
"""
await self.client.reconnect()
- await self._executor("login")
+ try:
+ await self._executor("login")
+ except not LoginException:
+ await self.client.close()
+ raise
async def submit_captcha(
self, captcha: str, captcha_sign: bytes
@@ -45,10 +50,14 @@ async def submit_captcha(
LoginSliderException: Need slider ticket.
LoginCaptchaException: Need captcha image.
"""
- await self._executor("submit_captcha", captcha, captcha_sign)
+ try:
+ await self._executor("submit_captcha", captcha, captcha_sign)
+ except not LoginException:
+ await self.client.close()
+ raise
return True
- async def submit_slider_ticket(self, ticket: str, uin: Optional[int] = None) -> bool:
+ async def submit_slider_ticket(self, ticket: str) -> bool:
"""Submit slider ticket to login.
This function wraps the :meth:`~cai.client.client.Client.submit_slider_ticket`
@@ -61,7 +70,11 @@ async def submit_slider_ticket(self, ticket: str, uin: Optional[int] = None) ->
LoginSliderException: Need slider ticket.
LoginCaptchaException: Need captcha image.
"""
- await self._executor("submit_slider_ticket", ticket)
+ try:
+ await self._executor("submit_slider_ticket", ticket)
+ except not LoginException:
+ await self.client.close()
+ raise
return True
async def request_sms(self) -> bool:
@@ -77,7 +90,11 @@ async def request_sms(self) -> bool:
Raises:
LoginSMSRequestError: Too many SMS messages were sent.
"""
- return await self.client.request_sms()
+ try:
+ return await self.client.request_sms()
+ except not LoginException:
+ await self.client.close()
+ raise
async def submit_sms(self, sms_code: str) -> bool:
"""Submit sms code to login.
@@ -92,7 +109,11 @@ async def submit_sms(self, sms_code: str) -> bool:
LoginSliderException: Need slider ticket.
LoginCaptchaException: Need captcha image.
"""
- await self._executor("submit_sms", sms_code)
+ try:
+ await self._executor("submit_sms", sms_code)
+ except not LoginException:
+ await self.client.close()
+ raise
return True
From d776777fadfd7b912449697f597e88ea9b65845c Mon Sep 17 00:00:00 2001
From: a1025
Date: Sat, 19 Mar 2022 23:56:19 +0800
Subject: [PATCH 003/113] change: rewrite group.py
---
cai/api/group.py | 123 +++++++++++++++++++++--------------------------
1 file changed, 56 insertions(+), 67 deletions(-)
diff --git a/cai/api/group.py b/cai/api/group.py
index c6b700fc..b2d87e2b 100644
--- a/cai/api/group.py
+++ b/cai/api/group.py
@@ -9,88 +9,77 @@
from typing import List, Union, Optional
-from cai.client import Group, GroupMember
+from .base import BaseAPI
+from cai.client import GroupMember, Group as group_t
-from .client import get_client
+class Group(BaseAPI):
+ async def get_group(
+ self, group_id: int, cache: bool = True
+ ) -> Optional[group_t]:
+ """Get Group.
+ This function wraps the :meth:`~cai.client.client.Client.get_group`
+ method of the client.
-async def get_group(
- group_id: int, cache: bool = True, uin: Optional[int] = None
-) -> Optional[Group]:
- """Get Group.
+ Args:
+ group_id (int): Group id.
+ cache (bool, optional): Use cached friend group list. Defaults to True.
- This function wraps the :meth:`~cai.client.client.Client.get_group`
- method of the client.
+ Returns:
+ Group: Group object.
+ None: Group not exists.
- Args:
- group_id (int): Group id.
- cache (bool, optional): Use cached friend group list. Defaults to True.
- uin (Optional[int], optional): Account of the client want to use.
- Defaults to None.
+ Raises:
+ RuntimeError: Error response type got. This should not happen.
+ ApiResponseError: Get friend list failed.
+ FriendListException: Get friend list returned non-zero ret code.
+ """
+ return await self._executor("get_group", group_id, cache)
- Returns:
- Group: Group object.
- None: Group not exists.
- Raises:
- RuntimeError: Error response type got. This should not happen.
- ApiResponseError: Get friend list failed.
- FriendListException: Get friend list returned non-zero ret code.
- """
- client = get_client(uin)
- return await client.get_group(group_id, cache)
+ async def get_group_list(
+ self, cache: bool = True
+ ) -> List[group_t]:
+ """Get account group list.
+ This function wraps the :meth:`~cai.client.client.Client.get_group_list`
+ method of the client.
-async def get_group_list(
- cache: bool = True, uin: Optional[int] = None
-) -> List[Group]:
- """Get account group list.
+ Args:
+ cache (bool, optional): Use cached group list. Defaults to True.
- This function wraps the :meth:`~cai.client.client.Client.get_group_list`
- method of the client.
+ Returns:
+ List[Group]: Group list.
- Args:
- cache (bool, optional): Use cached group list. Defaults to True.
- uin (Optional[int], optional): Account of the client want to use.
- Defaults to None.
+ Raises:
+ RuntimeError: Error response type got. This should not happen.
+ ApiResponseError: Get group list failed.
+ GroupListException: Get group list returned non-zero ret code.
+ """
+ return await self._executor("get_group_list", cache)
- Returns:
- List[Group]: Group list.
+ async def get_group_member_list(
+ self, group: Union[int, group_t], cache: bool = True
+ ) -> Optional[List[GroupMember]]:
+ """Get account group member list.
- Raises:
- RuntimeError: Error response type got. This should not happen.
- ApiResponseError: Get group list failed.
- GroupListException: Get group list returned non-zero ret code.
- """
- client = get_client(uin)
- return await client.get_group_list(cache)
+ This function wraps the :meth:`~cai.client.client.Client.get_group_member_list`
+ method of the client.
+ Args:
+ group (Union[int, Group]): Group id or group object want to get members.
+ cache (bool, optional): Use cached group list. Defaults to True.
-async def get_group_member_list(
- group: Union[int, Group], cache: bool = True, uin: Optional[int] = None
-) -> Optional[List[GroupMember]]:
- """Get account group member list.
+ Returns:
+ List[GroupMember]: Group member list.
+ None: Group not exists.
- This function wraps the :meth:`~cai.client.client.Client.get_group_member_list`
- method of the client.
+ Raises:
+ RuntimeError: Error response type got. This should not happen.
+ ApiResponseError: Get group list failed.
+ GroupMemberListException: Get group member list returned non-zero ret code.
+ """
+ return await self._executor("get_group_member_list", group, cache)
- Args:
- group (Union[int, Group]): Group id or group object want to get members.
- cache (bool, optional): Use cached group list. Defaults to True.
- uin (Optional[int], optional): Account of the client want to use.
- Defaults to None.
- Returns:
- List[GroupMember]: Group member list.
- None: Group not exists.
-
- Raises:
- RuntimeError: Error response type got. This should not happen.
- ApiResponseError: Get group list failed.
- GroupMemberListException: Get group member list returned non-zero ret code.
- """
- client = get_client(uin)
- return await client.get_group_member_list(group, cache)
-
-
-__all__ = ["get_group", "get_group_list", "get_group_member_list"]
+__all__ = ["Group"]
From 346fd7a387ad878751c21fc73935e2d39802f9ea Mon Sep 17 00:00:00 2001
From: a1025
Date: Sun, 20 Mar 2022 00:00:18 +0800
Subject: [PATCH 004/113] change: rewrite friend.py
---
cai/api/friend.py | 162 +++++++++++++++++++++-------------------------
1 file changed, 72 insertions(+), 90 deletions(-)
diff --git a/cai/api/friend.py b/cai/api/friend.py
index 6e35eb3d..6c7820f4 100644
--- a/cai/api/friend.py
+++ b/cai/api/friend.py
@@ -9,118 +9,100 @@
from typing import List, Optional
-from cai.client import Friend, FriendGroup
+from .base import BaseAPI
+from cai.client import FriendGroup, Friend as friend_t
-from .client import get_client
-
-
-async def get_friend(
- friend_uin: int, cache: bool = True, uin: Optional[int] = None
-) -> Optional[Friend]:
- """Get account friend.
- This function wraps the :meth:`~cai.client.client.Client.get_friend`
- method of the client.
+class Friend(BaseAPI):
+ async def get_friend(
+ self, friend_uin: int, cache: bool = True
+ ) -> Optional[friend_t]:
+ """Get account friend.
- Args:
- friend_uin (int): Friend account uin.
- cache (bool, optional): Use cached friend list. Defaults to True.
- uin (Optional[int], optional): Account of the client want to use.
- Defaults to None.
+ This function wraps the :meth:`~cai.client.client.Client.get_friend`
+ method of the client.
- Returns:
- Friend: Friend object.
- None: Friend not exists.
+ Args:
+ friend_uin (int): Friend account uin.
+ cache (bool, optional): Use cached friend list. Defaults to True.
- Raises:
- RuntimeError: Error response type got. This should not happen.
- ApiResponseError: Get friend list failed.
- FriendListException: Get friend list returned non-zero ret code.
- """
- client = get_client(uin)
- return await client.get_friend(friend_uin, cache)
+ Returns:
+ Friend: Friend object.
+ None: Friend not exists.
+ Raises:
+ RuntimeError: Error response type got. This should not happen.
+ ApiResponseError: Get friend list failed.
+ FriendListException: Get friend list returned non-zero ret code.
+ """
+ return await self.client.get_friend(friend_uin, cache)
-async def get_friend_list(
- cache: bool = True, uin: Optional[int] = None
-) -> List[Friend]:
- """Get account friend list.
+ async def get_friend_list(
+ self, cache: bool = True
+ ) -> List[friend_t]:
+ """Get account friend list.
- This function wraps the :meth:`~cai.client.client.Client.get_friend_list`
- method of the client.
+ This function wraps the :meth:`~cai.client.client.Client.get_friend_list`
+ method of the client.
- Args:
- cache (bool, optional): Use cached friend list. Defaults to True.
- uin (Optional[int], optional): Account of the client want to use.
- Defaults to None.
+ Args:
+ cache (bool, optional): Use cached friend list. Defaults to True.
- Returns:
- List of :obj:`~cai.client.models.Friend`
+ Returns:
+ List of :obj:`~cai.client.models.Friend`
- Raises:
- RuntimeError: Error response type got. This should not happen.
- ApiResponseError: Get friend list failed.
- FriendListException: Get friend list returned non-zero ret code.
- """
- client = get_client(uin)
- return await client.get_friend_list(cache)
+ Raises:
+ RuntimeError: Error response type got. This should not happen.
+ ApiResponseError: Get friend list failed.
+ FriendListException: Get friend list returned non-zero ret code.
+ """
+ return await self._executor("get_friend_list", cache)
+ async def get_friend_group(
+ self, group_id: int, cache: bool = True
+ ) -> Optional[FriendGroup]:
+ """Get Friend Group.
-async def get_friend_group(
- group_id: int, cache: bool = True, uin: Optional[int] = None
-) -> Optional[FriendGroup]:
- """Get Friend Group.
+ This function wraps the :meth:`~cai.client.client.Client.get_friend_group`
+ method of the client.
- This function wraps the :meth:`~cai.client.client.Client.get_friend_group`
- method of the client.
+ Args:
+ group_id (int): Friend group id.
+ cache (bool, optional): Use cached friend group list. Defaults to True.
- Args:
- group_id (int): Friend group id.
- cache (bool, optional): Use cached friend group list. Defaults to True.
- uin (Optional[int], optional): Account of the client want to use.
- Defaults to None.
+ Returns:
+ FriendGroup: Friend group object.
+ None: Friend group not exists.
- Returns:
- FriendGroup: Friend group object.
- None: Friend group not exists.
+ Raises:
+ RuntimeError: Error response type got. This should not happen.
+ ApiResponseError: Get friend list failed.
+ FriendListException: Get friend list returned non-zero ret code.
+ """
+ return await self._executor("get_friend_group", group_id, cache)
- Raises:
- RuntimeError: Error response type got. This should not happen.
- ApiResponseError: Get friend list failed.
- FriendListException: Get friend list returned non-zero ret code.
- """
- client = get_client(uin)
- return await client.get_friend_group(group_id, cache)
+ async def get_friend_group_list(
+ self, cache: bool = True
+ ) -> List[FriendGroup]:
+ """Get account friend group list.
+ This function wraps the :meth:`~cai.client.client.Client.get_friend_group_list`
+ method of the client.
-async def get_friend_group_list(
- cache: bool = True, uin: Optional[int] = None
-) -> List[FriendGroup]:
- """Get account friend group list.
+ Args:
+ cache (bool, optional): Use cached friend group list. Defaults to True.
- This function wraps the :meth:`~cai.client.client.Client.get_friend_group_list`
- method of the client.
+ Returns:
+ List[FriendGroup]: Friend group list.
- Args:
- cache (bool, optional): Use cached friend group list. Defaults to True.
- uin (Optional[int], optional): Account of the client want to use.
- Defaults to None.
-
- Returns:
- List[FriendGroup]: Friend group list.
-
- Raises:
- RuntimeError: Error response type got. This should not happen.
- ApiResponseError: Get friend group list failed.
- FriendListException: Get friend group list returned non-zero ret code.
- """
- client = get_client(uin)
- return await client.get_friend_group_list(cache)
+ Raises:
+ RuntimeError: Error response type got. This should not happen.
+ ApiResponseError: Get friend group list failed.
+ FriendListException: Get friend group list returned non-zero ret code.
+ """
+ return await self._executor("get_friend_group_list", cache)
__all__ = [
- "get_friend",
- "get_friend_list",
- "get_friend_group",
- "get_friend_group_list",
+ "Friend"
]
From 8337fc0ea2ee58437d77747d845b03719b837bea Mon Sep 17 00:00:00 2001
From: a1025
Date: Sun, 20 Mar 2022 00:01:21 +0800
Subject: [PATCH 005/113] change: rewrite client.py
---
cai/api/client.py | 150 +++++++++++++++++++---------------------------
1 file changed, 63 insertions(+), 87 deletions(-)
diff --git a/cai/api/client.py b/cai/api/client.py
index d4b4f2de..8809d655 100644
--- a/cai/api/client.py
+++ b/cai/api/client.py
@@ -7,92 +7,68 @@
https://github.com/cscs181/CAI/blob/master/LICENSE
"""
-import asyncio
+import hashlib
from typing import Union, Optional
-from cai.client import Client, OnlineStatus
-from cai.exceptions import ClientNotAvailable
-
-from . import _clients
-
-
-def get_client(uin: Optional[int] = None) -> Client:
- """Get the specific client or existing client.
-
- Args:
- uin (Optional[int], optional): Specific account client to get. Defaults to None.
-
- Raises:
- ClientNotAvailable: Client not exists.
- ClientNotAvailable: No client available.
- ClientNotAvailable: Multiple clients found and not specify which one to get.
-
- Returns:
- Client: Current client to use.
- """
- if not _clients:
- raise ClientNotAvailable(uin, f"No client available!")
- elif len(_clients) == 1 and not uin:
- return list(_clients.values())[0]
- else:
- if not uin:
- raise ClientNotAvailable(
- None, f"Multiple clients found! Specify uin to choose."
- )
- if uin not in _clients:
- raise ClientNotAvailable(None, f"Client {uin} not exists!")
- return _clients[uin]
-
-
-async def close(uin: Optional[int] = None) -> None:
- """Close an existing client and delete it from clients.
-
- Args:
- uin (Optional[int], optional): Account of the client want to close. Defaults to None.
- """
- client = get_client(uin)
- await client.close()
- del _clients[client.uin]
-
-
-async def close_all() -> None:
- """Close all existing clients and delete them."""
- tasks = [close(uin) for uin in _clients.keys()]
- await asyncio.gather(*tasks)
-
-
-async def set_status(
- status: Union[int, OnlineStatus],
- battery_status: Optional[int] = None,
- is_power_connected: bool = False,
- uin: Optional[int] = None,
-) -> None:
- """Change client status.
-
- This function wraps the :meth:`~cai.client.client.Client.register`
- method of the client.
-
- Args:
- status (OnlineStatus): Status want to change.
- battery_status (Optional[int], optional): Battery capacity.
- Defaults to None.
- is_power_connected (bool, optional): Is power connected to phone.
- Defaults to False.
- uin (Optional[int], optional): Account of the client want to change.
- Defaults to None.
-
- Raises:
- RuntimeError: Client already exists and is running.
- RuntimeError: Password not provided when login a new account.
- ApiResponseError: Invalid API request.
- RegisterException: Register Failed.
- """
- client = get_client(uin)
- await client.set_status(
- status,
- battery_status,
- is_power_connected,
- )
-
-
-__all__ = ["get_client", "close", "close_all", "set_status"]
+from .login import Login as _Login
+from .friend import Friend as _Friend
+from .group import Group as _Group
+from cai.client import OnlineStatus, Client as client_t
+
+
+def make_client(uin: int, passwd: Union[str, bytes]) -> client_t:
+ if not (isinstance(passwd, bytes) and len(passwd) == 16):
+ # not a vailed md5 passwd
+ if isinstance(passwd, bytes):
+ passwd = hashlib.md5(passwd).digest()
+ else:
+ passwd = hashlib.md5(passwd.encode()).digest()
+ return client_t(uin, passwd)
+
+
+class Client(_Login, _Friend, _Group):
+ def __init__(self, client: client_t):
+ self.client = client
+
+ @property
+ def connected(self) -> bool:
+ return self.client.connected
+
+ async def close(self):
+ """Stop Client"""
+ await self.client.close()
+
+ async def set_status(
+ self,
+ status: Union[int, OnlineStatus],
+ battery_status: Optional[int] = None,
+ is_power_connected: bool = False
+ ) -> None:
+ """Change client status.
+
+ This function wraps the :meth:`~cai.client.client.Client.register`
+ method of the client.
+
+ Args:
+ status (OnlineStatus): Status want to change.
+ battery_status (Optional[int], optional): Battery capacity.
+ Defaults to None.
+ is_power_connected (bool, optional): Is power connected to phone.
+ Defaults to False.
+ uin (Optional[int], optional): Account of the client want to change.
+ Defaults to None.
+
+ Raises:
+ RuntimeError: Client already exists and is running.
+ RuntimeError: Password not provided when login a new account.
+ ApiResponseError: Invalid API request.
+ RegisterException: Register Failed.
+ """
+ await self.client.set_status(
+ status,
+ battery_status,
+ is_power_connected,
+ )
+
+
+__all__ = ["Client"]
From 80e00eb515fb399a8201dee15b40b5ba7a99b2d0 Mon Sep 17 00:00:00 2001
From: a1025
Date: Sun, 20 Mar 2022 00:03:26 +0800
Subject: [PATCH 006/113] update: cai/api
---
cai/api/__init__.py | 12 ++----------
cai/api/base.py | 9 ++++-----
cai/api/group.py | 2 +-
cai/api/login.py | 7 -------
4 files changed, 7 insertions(+), 23 deletions(-)
diff --git a/cai/api/__init__.py b/cai/api/__init__.py
index d0714f2a..d3e70dae 100644
--- a/cai/api/__init__.py
+++ b/cai/api/__init__.py
@@ -9,15 +9,7 @@
https://github.com/cscs181/CAI/blob/master/LICENSE
"""
-from typing import Dict
+from .client import Client, make_client
-from cai.client import Client
-_clients: Dict[int, Client] = {}
-
-
-from .flow import *
-from .group import *
-from .login import *
-from .client import *
-from .friend import *
+__all__ = ["Client", "make_client"]
diff --git a/cai/api/base.py b/cai/api/base.py
index 6273fe8f..9316635b 100644
--- a/cai/api/base.py
+++ b/cai/api/base.py
@@ -7,13 +7,12 @@
class BaseAPI:
client: client_t
- async def _executor(self, func_name: str, *args, **kwargs):
+ async def _executor(self, func_name: str, *args, uncaught_error=False, **kwargs):
if not hasattr(self.client, func_name):
raise AttributeError(f"client has no attribute '{func_name}'")
try:
- await getattr(self.client, func_name)(*args, **kwargs)
- except LoginException:
- raise
+ return await getattr(self.client, func_name)(*args, **kwargs)
except Exception:
- await self.client.close()
+ if uncaught_error:
+ await self.client.close()
raise
diff --git a/cai/api/group.py b/cai/api/group.py
index b2d87e2b..65dd0836 100644
--- a/cai/api/group.py
+++ b/cai/api/group.py
@@ -12,6 +12,7 @@
from .base import BaseAPI
from cai.client import GroupMember, Group as group_t
+
class Group(BaseAPI):
async def get_group(
self, group_id: int, cache: bool = True
@@ -36,7 +37,6 @@ async def get_group(
"""
return await self._executor("get_group", group_id, cache)
-
async def get_group_list(
self, cache: bool = True
) -> List[group_t]:
diff --git a/cai/api/login.py b/cai/api/login.py
index ebe2ee1f..64ea60a5 100644
--- a/cai/api/login.py
+++ b/cai/api/login.py
@@ -6,18 +6,11 @@
.. _LICENSE:
https://github.com/cscs181/CAI/blob/master/LICENSE
"""
-import hashlib
-from typing import Optional, Union
-
from .base import BaseAPI
-from cai.client import Client
from cai.exceptions import LoginException
class Login(BaseAPI):
- def __init__(self, client: Client):
- self.client = client
-
async def login(self):
"""Create a new client (or use an existing one) and login.
From 71b581193ad2e8dc1ed203899d31f8c3d8bce97e Mon Sep 17 00:00:00 2001
From: a1025
Date: Sun, 20 Mar 2022 00:25:46 +0800
Subject: [PATCH 007/113] update: examples/login.py
---
examples/login.py | 64 +++++++++++++++++++++++++----------------------
1 file changed, 34 insertions(+), 30 deletions(-)
diff --git a/examples/login.py b/examples/login.py
index e6e9bc55..d02cdff9 100644
--- a/examples/login.py
+++ b/examples/login.py
@@ -7,15 +7,16 @@
https://github.com/cscs181/CAI/blob/master/LICENSE
"""
import os
+import asyncio
import signal
import asyncio
+import sys
import traceback
from io import BytesIO
-from hashlib import md5
from PIL import Image
-import cai
+from cai.api import Client, make_client
from cai.exceptions import (
LoginException,
ApiResponseError,
@@ -26,46 +27,45 @@
)
-async def run():
+async def run(closed: asyncio.Event):
account = os.getenv("ACCOUNT", "")
password = os.getenv("PASSWORD")
try:
+ assert password and account, ValueError("account or password not set")
+
account = int(account)
- assert password
- except Exception:
- print(
- f"Error: account '{account}', password '{password}'" # type: ignore
- )
- return
+ ci = Client(make_client(account, password))
- try:
- client = await cai.login(account, md5(password.encode()).digest())
- print(f"Login Success! Client status: {client.status!r}")
- except Exception as e:
- await handle_failure(e)
+ try:
+ await ci.login()
+ print(f"Login Success! Client status: {ci.client.status!r}")
+ except Exception as e:
+ await handle_failure(ci, e)
+ finally:
+ closed.set()
-async def handle_failure(exception: Exception):
+async def handle_failure(client: Client, exception: Exception):
if isinstance(exception, LoginSliderNeeded):
print("Verify url:", exception.verify_url)
ticket = input("Please enter the ticket: ").strip()
try:
- await cai.submit_slider_ticket(ticket)
+ await client.submit_slider_ticket(ticket)
print("Login Success!")
await asyncio.sleep(3)
except Exception as e:
- await handle_failure(e)
+ await handle_failure(client, e)
elif isinstance(exception, LoginCaptchaNeeded):
print("Captcha:")
image = Image.open(BytesIO(exception.captcha_image))
image.show()
captcha = input("Please enter the captcha: ").strip()
try:
- await cai.submit_captcha(captcha, exception.captcha_sign)
+ await client.submit_captcha(captcha, exception.captcha_sign)
print("Login Success!")
await asyncio.sleep(3)
except Exception as e:
- await handle_failure(e)
+ await handle_failure(client, e)
elif isinstance(exception, LoginAccountFrozen):
print("Account is frozen!")
elif isinstance(exception, LoginDeviceLocked):
@@ -93,21 +93,21 @@ async def handle_failure(exception: Exception):
if not way:
print("No way to verify device...")
elif way == "sms":
- await cai.request_sms()
+ await client.request_sms()
print(f"SMS was sent to {exception.sms_phone}!")
sms_code = input("Please enter the sms_code: ").strip()
try:
- await cai.submit_sms(sms_code)
+ await client.submit_sms(sms_code)
except Exception as e:
- await handle_failure(e)
+ await handle_failure(client, e)
elif way == "url":
- await cai.close()
+ await client.close()
print(f"Go to {exception.verify_url} to verify device!")
input("Press ENTER after verification to continue login...")
try:
- await cai.login(exception.uin)
+ await client.login()
except Exception as e:
- await handle_failure(e)
+ await handle_failure(client, e)
elif isinstance(exception, LoginException):
print("Login Error:", repr(exception))
elif isinstance(exception, ApiResponseError):
@@ -122,10 +122,14 @@ async def handle_failure(exception: Exception):
async def wait_cleanup():
await close.wait()
- await cai.close_all()
loop = asyncio.get_event_loop()
- loop.add_signal_handler(signal.SIGINT, close.set)
- loop.add_signal_handler(signal.SIGTERM, close.set)
- loop.create_task(run())
- loop.run_until_complete(wait_cleanup())
+ loop.create_task(run(close))
+ if sys.platform != "win32":
+ loop.add_signal_handler(signal.SIGINT, close.set)
+ loop.add_signal_handler(signal.SIGTERM, close.set)
+ else:
+ try:
+ loop.run_until_complete(wait_cleanup())
+ except KeyboardInterrupt:
+ close.set()
From 3ac1fc8021b07cf17ed9ed0dcc31a49e741cdca3 Mon Sep 17 00:00:00 2001
From: a1025
Date: Sun, 20 Mar 2022 00:26:45 +0800
Subject: [PATCH 008/113] update: remove unused code
---
examples/login.py | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
diff --git a/examples/login.py b/examples/login.py
index d02cdff9..bc0252c1 100644
--- a/examples/login.py
+++ b/examples/login.py
@@ -125,11 +125,7 @@ async def wait_cleanup():
loop = asyncio.get_event_loop()
loop.create_task(run(close))
- if sys.platform != "win32":
- loop.add_signal_handler(signal.SIGINT, close.set)
- loop.add_signal_handler(signal.SIGTERM, close.set)
- else:
- try:
- loop.run_until_complete(wait_cleanup())
- except KeyboardInterrupt:
- close.set()
+ try:
+ loop.run_until_complete(wait_cleanup())
+ except KeyboardInterrupt:
+ close.set()
From 259cc943b3cf9a833ace3b69ba498908919df4d6 Mon Sep 17 00:00:00 2001
From: a1025
Date: Sun, 20 Mar 2022 02:35:02 +0800
Subject: [PATCH 009/113] remove: strong dependency on cai/settings
---
cai/api/base.py | 3 -
cai/api/client.py | 16 +-
cai/client/client.py | 44 +++--
cai/client/command.py | 2 +-
cai/client/config_push/__init__.py | 2 +-
cai/client/friendlist/__init__.py | 6 +-
cai/client/heartbeat/__init__.py | 15 +-
cai/client/message_service/__init__.py | 6 +-
cai/client/online_push/__init__.py | 25 +--
cai/client/sso_server/__init__.py | 10 +-
cai/client/status_service/__init__.py | 57 +++---
cai/client/wtlogin/__init__.py | 255 ++++++++++++++-----------
cai/client/wtlogin/oicq.py | 5 +-
cai/client/wtlogin/tlv.py | 14 +-
cai/settings/protocol.py | 14 +-
examples/login.py | 15 +-
16 files changed, 275 insertions(+), 214 deletions(-)
diff --git a/cai/api/base.py b/cai/api/base.py
index 9316635b..fea30b33 100644
--- a/cai/api/base.py
+++ b/cai/api/base.py
@@ -1,7 +1,4 @@
-from typing import Callable
-
from cai.client.client import Client as client_t
-from cai.exceptions import LoginException
class BaseAPI:
diff --git a/cai/api/client.py b/cai/api/client.py
index 8809d655..418d68ce 100644
--- a/cai/api/client.py
+++ b/cai/api/client.py
@@ -14,16 +14,26 @@
from .friend import Friend as _Friend
from .group import Group as _Group
from cai.client import OnlineStatus, Client as client_t
+from cai.settings.device import DeviceInfo, new_device
+from cai.settings.protocol import ApkInfo
-def make_client(uin: int, passwd: Union[str, bytes]) -> client_t:
+def make_client(
+ uin: int,
+ passwd: Union[str, bytes],
+ apk_info: ApkInfo,
+ device: Optional[DeviceInfo] = None
+) -> client_t:
if not (isinstance(passwd, bytes) and len(passwd) == 16):
# not a vailed md5 passwd
if isinstance(passwd, bytes):
passwd = hashlib.md5(passwd).digest()
else:
passwd = hashlib.md5(passwd.encode()).digest()
- return client_t(uin, passwd)
+ if not device:
+ device = new_device()
+ print(device)
+ return client_t(uin, passwd, device, apk_info)
class Client(_Login, _Friend, _Group):
@@ -55,8 +65,6 @@ async def set_status(
Defaults to None.
is_power_connected (bool, optional): Is power connected to phone.
Defaults to False.
- uin (Optional[int], optional): Account of the client want to change.
- Defaults to None.
Raises:
RuntimeError: Client already exists and is running.
diff --git a/cai/client/client.py b/cai/client/client.py
index cf39f064..32769cf6 100644
--- a/cai/client/client.py
+++ b/cai/client/client.py
@@ -21,7 +21,7 @@
Callable,
Optional,
Awaitable,
- overload,
+ overload, Tuple,
)
from cachetools import TTLCache
@@ -29,9 +29,9 @@
from cai.log import logger
from cai.utils.binary import Packet
from cai.utils.future import FutureStore
-from cai.settings.device import get_device
+from cai.settings.device import DeviceInfo
+from cai.settings.protocol import ApkInfo
from cai.connection import Connection, connect
-from cai.settings.protocol import get_protocol
from cai.exceptions import (
LoginException,
ApiResponseError,
@@ -109,11 +109,9 @@
encode_login_request2_captcha,
)
-HT = Callable[["Client", IncomingPacket], Awaitable[Command]]
+HT = Callable[["Client", IncomingPacket, Tuple[DeviceInfo, ApkInfo]], Awaitable[Command]]
LT = Callable[["Client", Event], Awaitable[None]]
-DEVICE = get_device()
-APK_INFO = get_protocol()
HANDLERS: Dict[str, HT] = {
"wtlogin.login": handle_oicq_response,
"wtlogin.exchange_emp": handle_oicq_response,
@@ -139,7 +137,7 @@
class Client:
LISTENERS: Set[LT] = set()
- def __init__(self, uin: int, password_md5: bytes):
+ def __init__(self, uin: int, password_md5: bytes, device: DeviceInfo, apk_info: ApkInfo):
# account info
self._uin: int = uin
self._password_md5: bytes = password_md5
@@ -163,7 +161,7 @@ def __init__(self, uin: int, password_md5: bytes):
self._file_storage_info: Optional[FileServerPushList] = None
self._ip_address: bytes = bytes()
- self._ksid: bytes = f"|{DEVICE.imei}|A8.2.7.27f6ea96".encode()
+ self._ksid: bytes = f"|{device.imei}|A8.2.7.27f6ea96".encode()
self._pwd_flag: bool = False
self._rollback_sig: bytes = bytes()
@@ -183,6 +181,9 @@ def __init__(self, uin: int, password_md5: bytes):
self._msg_cache: TTLCache = TTLCache(maxsize=1024, ttl=3600)
self._receive_store: FutureStore[int, Command] = FutureStore()
+ self.device_info: DeviceInfo = device
+ self.apk_info: ApkInfo = apk_info
+
def __str__(self) -> str:
return f""
@@ -383,7 +384,7 @@ async def send_and_wait(
async def _handle_incoming_packet(self, in_packet: IncomingPacket) -> None:
try:
handler = HANDLERS.get(in_packet.command_name, _packet_to_command)
- packet = await handler(self, in_packet)
+ packet = await handler(self, in_packet, (self.device_info, self.apk_info))
self._receive_store.store_result(packet.seq, packet)
except Exception as e:
# TODO: handle exception
@@ -505,6 +506,8 @@ async def _handle_login_response(
self.uin,
self._t104,
self._siginfo.g,
+ self.device_info.imei,
+ self.apk_info
)
response = await self.send_and_wait(
seq, "wtlogin.login", packet
@@ -575,6 +578,8 @@ async def login(self) -> LoginSuccess:
self._ksid,
self.uin,
self._password_md5,
+ self.device_info,
+ self.apk_info
)
response = await self.send_and_wait(seq, "wtlogin.login", packet)
return await self._handle_login_response(response)
@@ -609,6 +614,8 @@ async def submit_captcha(
captcha,
captcha_sign,
self._t104,
+ self.device_info.imei,
+ self.apk_info
)
response = await self.send_and_wait(seq, "wtlogin.login", packet)
return await self._handle_login_response(response)
@@ -640,6 +647,8 @@ async def submit_slider_ticket(self, ticket: str) -> LoginSuccess:
self.uin,
ticket,
self._t104,
+ self.device_info.imei,
+ self.apk_info
)
response = await self.send_and_wait(seq, "wtlogin.login", packet)
return await self._handle_login_response(response)
@@ -671,6 +680,8 @@ async def request_sms(self) -> bool:
self.uin,
self._t104,
self._t174,
+ self.device_info.imei,
+ self.apk_info
)
response = await self.send_and_wait(seq, "wtlogin.login", packet)
@@ -711,6 +722,8 @@ async def submit_sms(self, sms_code: str) -> LoginSuccess:
self._t104,
self._t174,
self._siginfo.g,
+ self.device_info.imei,
+ self.apk_info
)
response = await self.send_and_wait(seq, "wtlogin.login", packet)
return await self._handle_login_response(response)
@@ -749,6 +762,8 @@ async def _handle_refresh_response(
self.uin,
self._t104,
self._siginfo.g,
+ self.device_info.imei,
+ self.apk_info
)
response = await self.send_and_wait(
seq, "wtlogin.login", packet
@@ -795,6 +810,8 @@ async def refresh_siginfo(self) -> LoginSuccess:
self._siginfo.rand_seed,
self._siginfo.wt_session_ticket,
self._siginfo.wt_session_ticket_key,
+ self.device_info,
+ self.apk_info
)
response = await self.send_and_wait(seq, "wtlogin.exchange_emp", packet)
@@ -833,6 +850,8 @@ async def register(
self._siginfo.d2key,
status,
register_reason,
+ self.apk_info.sub_app_id,
+ self.device_info
)
response = await self.send_and_wait(seq, "StatSvc.register", packet)
@@ -864,8 +883,6 @@ async def set_status(
Args:
status (OnlineStatus, optional): Client status. Defaults to
:attr:`~cai.client.status_service.OnlineStatus.Online`.
- register_reason (RegPushReason, optional): Register reason. Defaults to
- :attr:`~cai.client.status_service.RegPushReason.AppRegister`.
battery_status (Optional[int], optional): Battery capacity.
Only works when status is :obj:`.OnlineStatus.Battery`. Defaults to None.
is_power_connected (bool, optional): Is power connected to phone.
@@ -884,9 +901,10 @@ async def set_status(
self._session_id,
self.uin,
self._siginfo.d2key,
+ self.device_info,
status,
battery_status,
- is_power_connected,
+ is_power_connected
)
response = await self.send_and_wait(
seq, "StatSvc.SetStatusFromClient", packet
@@ -927,7 +945,7 @@ async def heartbeat(self) -> None:
while self._heartbeat_enabled and self.connected:
seq = self.next_seq()
packet = encode_heartbeat(
- seq, self._session_id, self._ksid, self.uin
+ seq, self._session_id, self.device_info.imei, self._ksid, self.uin, self.apk_info.sub_app_id
)
try:
response = await self.send_and_wait(
diff --git a/cai/client/command.py b/cai/client/command.py
index e930b111..1e7d726e 100644
--- a/cai/client/command.py
+++ b/cai/client/command.py
@@ -31,7 +31,7 @@ class UnhandledCommand(Command):
async def _packet_to_command(
- client: "Client", packet: IncomingPacket
+ client: "Client", packet: IncomingPacket, _device
) -> UnhandledCommand:
return UnhandledCommand(
packet.uin,
diff --git a/cai/client/config_push/__init__.py b/cai/client/config_push/__init__.py
index 4a089534..bc99ebbe 100644
--- a/cai/client/config_push/__init__.py
+++ b/cai/client/config_push/__init__.py
@@ -75,7 +75,7 @@ def encode_config_push_response(
# ConfigPushSvc.PushReq
async def handle_config_push_request(
- client: "Client", packet: IncomingPacket
+ client: "Client", packet: IncomingPacket, _device
) -> ConfigPushCommand:
command = ConfigPushCommand.decode_push_req(
packet.uin,
diff --git a/cai/client/friendlist/__init__.py b/cai/client/friendlist/__init__.py
index 9a71ddf2..0dd9c983 100644
--- a/cai/client/friendlist/__init__.py
+++ b/cai/client/friendlist/__init__.py
@@ -104,7 +104,7 @@ def encode_get_friend_list(
async def handle_friend_list(
- client: "Client", packet: IncomingPacket
+ client: "Client", packet: IncomingPacket, _device
) -> "FriendListCommand":
return FriendListCommand.decode_response(
packet.uin,
@@ -167,7 +167,7 @@ def encode_get_troop_list(
async def handle_troop_list(
- client: "Client", packet: IncomingPacket
+ client: "Client", packet: IncomingPacket, _device
) -> TroopListCommand:
return TroopListCommand.decode_response(
packet.uin,
@@ -230,7 +230,7 @@ def encode_get_troop_member_list(
async def handle_troop_member_list(
- client: "Client", packet: IncomingPacket
+ client: "Client", packet: IncomingPacket, _device
) -> TroopMemberListCommand:
return TroopMemberListCommand.decode_response(
packet.uin,
diff --git a/cai/client/heartbeat/__init__.py b/cai/client/heartbeat/__init__.py
index 6126e88d..37c1d872 100644
--- a/cai/client/heartbeat/__init__.py
+++ b/cai/client/heartbeat/__init__.py
@@ -14,19 +14,14 @@
from cai.utils.binary import Packet
from cai.client.command import Command
-from cai.settings.device import get_device
-from cai.settings.protocol import get_protocol
from cai.client.packet import CSsoBodyPacket, CSsoDataPacket, IncomingPacket
if TYPE_CHECKING:
from cai.client import Client
-DEVICE = get_device()
-APK_INFO = get_protocol()
-
def encode_heartbeat(
- seq: int, session_id: bytes, ksid: bytes, uin: int
+ seq: int, session_id: bytes, imei: str, ksid: bytes, uin: int, sub_app_id: int
) -> Packet:
"""Build heartbeat alive packet.
@@ -41,17 +36,19 @@ def encode_heartbeat(
seq (int): Packet sequence.
session_id (bytes): Session ID.
ksid (bytes): KSID of client.
+ imei (str): Device imei.
uin (int): User QQ number.
+ sub_app_id (int): apkinfo
Returns:
Packet: Login packet.
"""
COMMAND_NAME = "Heartbeat.Alive"
- SUB_APP_ID = APK_INFO.sub_app_id
+ SUB_APP_ID = sub_app_id
sso_packet = CSsoBodyPacket.build(
- seq, SUB_APP_ID, COMMAND_NAME, DEVICE.imei, session_id, ksid, bytes()
+ seq, SUB_APP_ID, COMMAND_NAME, imei, session_id, ksid, bytes()
)
packet = CSsoDataPacket.build(uin, 0, sso_packet, key=None)
return packet
@@ -63,7 +60,7 @@ class Heartbeat(Command):
async def handle_heartbeat(
- client: "Client", packet: IncomingPacket
+ _client: "Client", packet: IncomingPacket, _device
) -> Heartbeat:
return Heartbeat(
packet.uin, packet.seq, packet.ret_code, packet.command_name
diff --git a/cai/client/message_service/__init__.py b/cai/client/message_service/__init__.py
index 68de760f..e6ccd6e6 100644
--- a/cai/client/message_service/__init__.py
+++ b/cai/client/message_service/__init__.py
@@ -102,7 +102,7 @@ def encode_get_message(
async def handle_get_message(
- client: "Client", packet: IncomingPacket
+ client: "Client", packet: IncomingPacket, _device
) -> "GetMessageCommand":
"""Handle Pb Get Message response.
@@ -247,7 +247,7 @@ def encode_delete_message(
async def handle_push_notify(
- client: "Client", packet: IncomingPacket
+ client: "Client", packet: IncomingPacket, _device
) -> PushNotifyCommand:
"""Handle Push Notify Command.
@@ -304,7 +304,7 @@ async def handle_push_notify(
# MessageSvc.PushForceOffline
async def handle_force_offline(
- client: "Client", packet: IncomingPacket
+ client: "Client", packet: IncomingPacket, _device
) -> PushForceOfflineCommand:
client._status = OnlineStatus.Offline
await client.close()
diff --git a/cai/client/online_push/__init__.py b/cai/client/online_push/__init__.py
index c736d488..b0bf150f 100644
--- a/cai/client/online_push/__init__.py
+++ b/cai/client/online_push/__init__.py
@@ -9,32 +9,31 @@
https://github.com/cscs181/CAI/blob/master/LICENSE
"""
-from typing import TYPE_CHECKING, List, Union, Optional
+from typing import TYPE_CHECKING, List, Optional, Tuple
from jce import types
from cai.log import logger
from cai.utils.binary import Packet
-from cai.settings.device import get_device
+from cai.settings.device import DeviceInfo as _DeviceInfo_t
from cai.utils.jce import RequestPacketVersion3
from cai.client.message_service import MESSAGE_DECODERS
from cai.client.packet import UniPacket, IncomingPacket
-from .jce import DelMsgInfo, DeviceInfo, SvcRespPushMsg
+from .jce import DelMsgInfo, SvcRespPushMsg, DeviceInfo
from .command import PushMsg, PushMsgError, PushMsgCommand
+from ...settings.protocol import ApkInfo
if TYPE_CHECKING:
from cai.client import Client
-DEVICE = get_device()
-
def encode_push_response(
seq: int,
session_id: bytes,
uin: int,
d2key: bytes,
- resp_uin: int,
+ resp_uin: int, # warn: unused var
svrip: int,
delete_messages: List[DelMsgInfo] = [],
push_token: Optional[bytes] = None,
@@ -88,7 +87,7 @@ def encode_push_response(
async def handle_c2c_sync(
- client: "Client", packet: IncomingPacket
+ client: "Client", packet: IncomingPacket, _device
) -> PushMsgCommand:
"""Handle C2C Message Sync.
@@ -137,7 +136,7 @@ async def handle_c2c_sync(
async def handle_push_msg(
- client: "Client", packet: IncomingPacket
+ client: "Client", packet: IncomingPacket, device: Tuple[_DeviceInfo_t, ApkInfo]
) -> PushMsgCommand:
"""Handle Push Message Command.
@@ -146,6 +145,8 @@ async def handle_push_msg(
com.tencent.mobileqq.app.MessageHandler.b
"""
+ device = device[0]
+
push = PushMsgCommand.decode_response(
packet.uin,
packet.seq,
@@ -172,10 +173,10 @@ async def handle_push_msg(
service_type=1,
device_info=DeviceInfo(
net_type=1,
- dev_type=DEVICE.model,
- os_ver=DEVICE.version.release,
- vendor_name=DEVICE.vendor_name,
- vendor_os_name=DEVICE.vendor_os_name,
+ dev_type=device.model,
+ os_ver=device.version.release,
+ vendor_name=device.vendor_name,
+ vendor_os_name=device.vendor_os_name,
),
)
await client.send(push.seq, "OnlinePush.RespPush", resp_packet)
diff --git a/cai/client/sso_server/__init__.py b/cai/client/sso_server/__init__.py
index 03e51d87..1f891baa 100644
--- a/cai/client/sso_server/__init__.py
+++ b/cai/client/sso_server/__init__.py
@@ -16,9 +16,9 @@
from rtea import qqtea_decrypt, qqtea_encrypt
from cai.connection import connect
-from cai.settings.device import get_device
+from cai.settings.device import new_device
from cai.exceptions import SsoServerException
-from cai.settings.protocol import get_protocol
+from cai.settings.protocol import get_apk_info
from cai.utils.jce import RequestPacketVersion3
from cai.connection.utils import tcp_latency_test
@@ -57,8 +57,8 @@ async def get_sso_list() -> SsoServerResponse:
Raises:
SsoServerException: Get sso server list failed.
"""
- device = get_device()
- protocol = get_protocol()
+ device = new_device()
+ protocol = get_apk_info()
key = bytes(
[
0xF0,
@@ -151,7 +151,7 @@ async def quality_test(
async def get_sso_server(
cache: bool = True,
cache_server_list: bool = True,
- exclude: Optional[Container[str]] = None,
+ exclude: Optional[Container[str]] = None
) -> SsoServer:
"""Get the best sso server
diff --git a/cai/client/status_service/__init__.py b/cai/client/status_service/__init__.py
index b516163d..146956f2 100644
--- a/cai/client/status_service/__init__.py
+++ b/cai/client/status_service/__init__.py
@@ -11,14 +11,14 @@
import time
from enum import Enum, IntEnum
-from typing import TYPE_CHECKING, Union, Optional
+from typing import TYPE_CHECKING, Union, Optional, Tuple
from jce import types
from cai.log import logger
from cai.utils.binary import Packet
-from cai.settings.device import get_device
-from cai.settings.protocol import get_protocol
+from cai.settings.device import DeviceInfo
+from cai.settings.protocol import ApkInfo
from cai.utils.jce import RequestPacketVersion3
from cai.pb.im.oidb.cmd0x769 import ReqBody, ConfigSeq
from cai.client.packet import (
@@ -41,9 +41,6 @@
if TYPE_CHECKING:
from cai.client import Client
-DEVICE = get_device()
-APK_INFO = get_protocol()
-
class OnlineStatus(IntEnum):
"""
@@ -134,6 +131,7 @@ def _encode_svc_request(
uin: int,
status: Union[int, OnlineStatus],
reg_push_reason: Union[str, RegPushReason],
+ device: DeviceInfo,
battery_status: Optional[int] = None,
is_power_connected: bool = False,
) -> SvcReqRegister:
@@ -146,7 +144,7 @@ def _encode_svc_request(
bid=0 if status == OnlineStatus.Offline else 7,
status=status if status < 1000 else OnlineStatus.Online,
timestamp=int(time.time()),
- ios_version=DEVICE.version.sdk,
+ ios_version=device.version.sdk,
nettype=bytes([1]),
reg_type=bytes(1)
if reg_push_reason
@@ -157,13 +155,13 @@ def _encode_svc_request(
RegPushReason.SetOnlineStatus,
)
else bytes([1]),
- guid=DEVICE.guid,
- dev_name=DEVICE.model,
- dev_type=DEVICE.model,
- os_version=DEVICE.version.release,
+ guid=device.guid,
+ dev_name=device.model,
+ dev_type=device.model,
+ os_version=device.version.release,
large_seq=0,
- vendor_name=DEVICE.vendor_name,
- vendor_os_name=DEVICE.vendor_os_name,
+ vendor_name=device.vendor_name,
+ vendor_os_name=device.vendor_os_name,
b769_req=ReqBody(
config_list=[
ConfigSeq(type=46, version=0),
@@ -188,6 +186,8 @@ def encode_register(
d2key: bytes,
status: Union[int, OnlineStatus],
reg_push_reason: Union[str, RegPushReason],
+ sub_app_id: int,
+ device: DeviceInfo
) -> Packet:
"""Build status service register packet.
@@ -208,18 +208,16 @@ def encode_register(
d2key (bytes): Siginfo d2 key.
status (Union[int, OnlineStatus]): Online status.
reg_push_reason (Union[str, RegPushReason]): Reg push reason.
- battery_status (Optional[int], optional): Battery capacity.
- Defaults to None.
- is_power_connected (bool, optional): Is power connected to phone.
- Defaults to False.
+ device (DeviceInfo): your device info
+ sub_app_id (int): ApkInfo
Returns:
Packet: Register packet.
"""
COMMAND_NAME = "StatSvc.register"
- SUB_APP_ID = APK_INFO.sub_app_id
+ SUB_APP_ID = sub_app_id
- svc = _encode_svc_request(uin, status, reg_push_reason)
+ svc = _encode_svc_request(uin, status, reg_push_reason, device)
payload = SvcReqRegister.to_bytes(0, svc)
req_packet = RequestPacketVersion3(
servant_name="PushService",
@@ -230,7 +228,7 @@ def encode_register(
seq,
SUB_APP_ID,
COMMAND_NAME,
- DEVICE.imei,
+ device.imei,
session_id,
ksid,
body=req_packet,
@@ -246,6 +244,7 @@ def encode_set_status(
session_id: bytes,
uin: int,
d2key: bytes,
+ device: DeviceInfo,
status: Union[int, OnlineStatus],
battery_status: Optional[int] = None,
is_power_connected: bool = False,
@@ -265,7 +264,7 @@ def encode_set_status(
uin (int): User QQ number.
d2key (bytes): Siginfo d2 key.
status (Union[int, OnlineStatus]): Online status.
- reg_push_reason (Union[str, RegPushReason]): Reg push reason.
+ device (DeviceInfo): your device info
battery_status (Optional[int], optional): Battery capacity.
Only works when status is :obj:`.OnlineStatus.Battery`. Defaults to None.
is_power_connected (bool, optional): Is power connected to phone.
@@ -275,12 +274,12 @@ def encode_set_status(
Packet: Register packet.
"""
COMMAND_NAME = "StatSvc.SetStatusFromClient"
- SUB_APP_ID = APK_INFO.sub_app_id
svc = _encode_svc_request(
uin,
status,
RegPushReason.SetOnlineStatus,
+ device,
((status == OnlineStatus.Battery) or None) and battery_status,
(status == OnlineStatus.Battery) and is_power_connected,
)
@@ -297,7 +296,7 @@ def encode_set_status(
async def handle_register_response(
- client: "Client", packet: IncomingPacket
+ client: "Client", packet: IncomingPacket, _device
) -> SvcRegisterResponse:
response = SvcRegisterResponse.decode_response(
packet.uin,
@@ -324,6 +323,8 @@ def encode_force_offline_response(
d2key: bytes,
req_uin: int,
seq_no: int,
+ sub_app_id: int,
+ device: DeviceInfo
) -> Packet:
"""Build status service msf offline response packet.
@@ -344,12 +345,14 @@ def encode_force_offline_response(
d2key (bytes): Siginfo d2 key.
req_uin (int): Request offline uin.
seq_no (int): Request sequence number.
+ sub_app_id (int): ApkInfo
+ device (DeviceInfo): your device info
Returns:
Packet: msf force offline response packet.
"""
COMMAND_NAME = "StatSvc.RspMSFForceOffline"
- SUB_APP_ID = APK_INFO.sub_app_id
+ SUB_APP_ID = sub_app_id
resp = ResponseMSFForceOffline(uin=req_uin, seq_no=seq_no, c=bytes(1))
payload = ResponseMSFForceOffline.to_bytes(0, resp)
@@ -364,7 +367,7 @@ def encode_force_offline_response(
seq,
SUB_APP_ID,
COMMAND_NAME,
- DEVICE.imei,
+ device.imei,
session_id,
ksid,
body=resp_packet,
@@ -375,7 +378,7 @@ def encode_force_offline_response(
async def handle_request_offline(
- client: "Client", packet: IncomingPacket
+ client: "Client", packet: IncomingPacket, device: Tuple[DeviceInfo, ApkInfo]
) -> MSFForceOfflineCommand:
request = MSFForceOfflineCommand.decode_response(
packet.uin,
@@ -401,6 +404,8 @@ async def handle_request_offline(
client._siginfo.d2key,
request.request.uin,
request.request.seq_no,
+ device[1].sub_app_id,
+ device[0]
)
await client.send(seq, "StatSvc.RspMSFForceOffline", resp_packet)
client._status = OnlineStatus.Offline
diff --git a/cai/client/wtlogin/__init__.py b/cai/client/wtlogin/__init__.py
index 0bbeb81a..e0975368 100644
--- a/cai/client/wtlogin/__init__.py
+++ b/cai/client/wtlogin/__init__.py
@@ -8,28 +8,26 @@
.. _LICENSE:
https://github.com/cscs181/CAI/blob/master/LICENSE
"""
-import time
+import ipaddress
+import secrets
import string
import struct
-import secrets
-import ipaddress
+import time
from hashlib import md5
-from typing import TYPE_CHECKING
+from typing import TYPE_CHECKING, Tuple
from rtea import qqtea_decrypt
-from cai.utils.binary import Packet
-from cai.settings.device import get_device
-from cai.settings.protocol import get_protocol
-from cai.utils.crypto import ECDH, EncryptSession
from cai.client.packet import (
UniPacket,
CSsoBodyPacket,
CSsoDataPacket,
IncomingPacket,
)
-
-from .tlv import TlvEncoder
+from cai.settings.device import DeviceInfo
+from cai.settings.protocol import ApkInfo
+from cai.utils.binary import Packet
+from cai.utils.crypto import ECDH, EncryptSession
from .oicq import (
NeedCaptcha,
OICQRequest,
@@ -41,13 +39,11 @@
TooManySMSRequest,
UnknownLoginStatus,
)
+from .tlv import TlvEncoder
if TYPE_CHECKING:
from cai.client import Client
-DEVICE = get_device()
-APK_INFO = get_protocol()
-
# submit captcha
def encode_login_request2_captcha(
@@ -59,6 +55,8 @@ def encode_login_request2_captcha(
captcha: str,
sign: bytes,
t104: bytes,
+ imei: str,
+ apk_info: ApkInfo
) -> Packet:
"""Build submit captcha request packet.
@@ -82,6 +80,8 @@ def encode_login_request2_captcha(
captcha (str): Captcha image result.
sign (bytes): Signature of the captcha.
t104 (bytes): TLV 104 data.
+ apk_info (ApkInfo): ApkInfo
+ imei (str): device imei
Returns:
Packet: Login packet.
@@ -90,9 +90,9 @@ def encode_login_request2_captcha(
SUB_COMMAND_ID = 2
COMMAND_NAME = "wtlogin.login"
- SUB_APP_ID = APK_INFO.sub_app_id
- BITMAP = APK_INFO.bitmap
- SUB_SIGMAP = APK_INFO.sub_sigmap
+ SUB_APP_ID = apk_info.sub_app_id
+ BITMAP = apk_info.bitmap
+ SUB_SIGMAP = apk_info.sub_sigmap
LOCAL_ID = 2052 # oicq.wlogin_sdk.request.t.v
@@ -110,7 +110,7 @@ def encode_login_request2_captcha(
seq,
SUB_APP_ID,
COMMAND_NAME,
- DEVICE.imei,
+ imei,
session_id,
ksid,
oicq_packet,
@@ -129,6 +129,8 @@ def encode_login_request2_slider(
uin: int,
ticket: str,
t104: bytes,
+ imei: str,
+ apk_info: ApkInfo
) -> Packet:
"""Build slider ticket request packet.
@@ -151,6 +153,8 @@ def encode_login_request2_slider(
uin (int): User QQ number.
ticket (str): Captcha image result.
t104 (bytes): TLV 104 data.
+ apk_info (ApkInfo): ApkInfo
+ imei (str): device imei
Returns:
Packet: Login packet.
@@ -159,9 +163,9 @@ def encode_login_request2_slider(
SUB_COMMAND_ID = 2
COMMAND_NAME = "wtlogin.login"
- SUB_APP_ID = APK_INFO.sub_app_id
- BITMAP = APK_INFO.bitmap
- SUB_SIGMAP = APK_INFO.sub_sigmap
+ SUB_APP_ID = apk_info.sub_app_id
+ BITMAP = apk_info.bitmap
+ SUB_SIGMAP = apk_info.sub_sigmap
LOCAL_ID = 2052 # oicq.wlogin_sdk.request.t.v
@@ -179,7 +183,7 @@ def encode_login_request2_slider(
seq,
SUB_APP_ID,
COMMAND_NAME,
- DEVICE.imei,
+ imei,
session_id,
ksid,
oicq_packet,
@@ -200,6 +204,8 @@ def encode_login_request7(
t104: bytes,
t174: bytes,
g: bytes,
+ imei: str,
+ apk_info: ApkInfo
) -> Packet:
"""Build sms submit packet.
@@ -224,6 +230,8 @@ def encode_login_request7(
t104 (bytes): TLV 104 data.
t174 (bytes): TLV 174 data.
g (bytes): G data of client.
+ apk_info (ApkInfo): ApkInfo
+ imei (str): device imei
Returns:
Packet: Login packet.
@@ -232,9 +240,9 @@ def encode_login_request7(
SUB_COMMAND_ID = 7
COMMAND_NAME = "wtlogin.login"
- SUB_APP_ID = APK_INFO.sub_app_id
- BITMAP = APK_INFO.bitmap
- SUB_SIGMAP = APK_INFO.sub_sigmap
+ SUB_APP_ID = apk_info.sub_app_id
+ BITMAP = apk_info.bitmap
+ SUB_SIGMAP = apk_info.sub_sigmap
GUID_SRC = 1
GUID_CHANGE = 0
@@ -260,7 +268,7 @@ def encode_login_request7(
seq,
SUB_APP_ID,
COMMAND_NAME,
- DEVICE.imei,
+ imei,
session_id,
ksid,
oicq_packet,
@@ -279,6 +287,8 @@ def encode_login_request8(
uin: int,
t104: bytes,
t174: bytes,
+ imei: str,
+ apk_info: ApkInfo
) -> Packet:
"""Build sms request packet.
@@ -301,6 +311,8 @@ def encode_login_request8(
uin (int): User QQ number.
t104 (bytes): TLV 104 data.
t174 (bytes): TLV 174 data.
+ apk_info (ApkInfo): ApkInfo
+ imei (str): device imei
Returns:
Packet: Login packet.
@@ -310,9 +322,9 @@ def encode_login_request8(
COMMAND_NAME = "wtlogin.login"
SMS_APP_ID = 9
- SUB_APP_ID = APK_INFO.sub_app_id
- BITMAP = APK_INFO.bitmap
- SUB_SIGMAP = APK_INFO.sub_sigmap
+ SUB_APP_ID = apk_info.sub_app_id
+ BITMAP = apk_info.bitmap
+ SUB_SIGMAP = apk_info.sub_sigmap
GUID_SRC = 1
GUID_CHANGE = 0
@@ -337,7 +349,7 @@ def encode_login_request8(
seq,
SUB_APP_ID,
COMMAND_NAME,
- DEVICE.imei,
+ imei,
session_id,
ksid,
oicq_packet,
@@ -355,6 +367,8 @@ def encode_login_request9(
ksid: bytes,
uin: int,
password_md5: bytes,
+ device: DeviceInfo,
+ apk_info: ApkInfo
) -> Packet:
"""Build main login request packet.
@@ -376,6 +390,8 @@ def encode_login_request9(
ksid (bytes): KSID of client.
uin (int): User QQ number.
password_md5 (bytes): User QQ password md5 hash.
+ device (DeviceInfo): your device info
+ apk_info (ApkInfo): ApkInfo
Returns:
Packet: Login packet.
@@ -384,18 +400,18 @@ def encode_login_request9(
SUB_COMMAND_ID = 9
COMMAND_NAME = "wtlogin.login"
- APK_ID = APK_INFO.apk_id
- APK_VERSION = APK_INFO.version
- APK_SIGN = APK_INFO.apk_sign
- APK_BUILD_TIME = APK_INFO.build_time
- APP_ID = APK_INFO.app_id
- SUB_APP_ID = APK_INFO.sub_app_id
+ APK_ID = apk_info.apk_id
+ APK_VERSION = apk_info.version
+ APK_SIGN = apk_info.apk_sign
+ APK_BUILD_TIME = apk_info.build_time
+ APP_ID = apk_info.app_id
+ SUB_APP_ID = apk_info.sub_app_id
APP_CLIENT_VERSION = 0
- SDK_VERSION = APK_INFO.sdk_version
- SSO_VERSION = APK_INFO.sso_version
- BITMAP = APK_INFO.bitmap
- MAIN_SIGMAP = APK_INFO.main_sigmap
- SUB_SIGMAP = APK_INFO.sub_sigmap
+ SDK_VERSION = apk_info.sdk_version
+ SSO_VERSION = apk_info.sso_version
+ BITMAP = apk_info.bitmap
+ MAIN_SIGMAP = apk_info.main_sigmap
+ SUB_SIGMAP = apk_info.sub_sigmap
GUID_SRC = 1
GUID_CHANGE = 0
@@ -404,8 +420,8 @@ def encode_login_request9(
GUID_FLAG |= GUID_CHANGE << 8 & 0xFF00
CAN_WEB_VERIFY = 130 # oicq.wlogin_sdk.request.k.K
LOCAL_ID = 2052 # oicq.wlogin_sdk.request.t.v
- IP_BYTES: bytes = ipaddress.ip_address(DEVICE.ip_address).packed
- NETWORK_TYPE = (DEVICE.apn == "wifi") + 1
+ IP_BYTES: bytes = ipaddress.ip_address(device.ip_address).packed
+ NETWORK_TYPE = (device.apn == "wifi") + 1
data = Packet.build(
struct.pack(">HH", SUB_COMMAND_ID, 23), # packet num
@@ -419,8 +435,8 @@ def encode_login_request9(
uin,
0,
password_md5,
- DEVICE.guid,
- DEVICE.tgtgt,
+ device.guid,
+ device.tgtgt,
),
TlvEncoder.t116(BITMAP, SUB_SIGMAP),
TlvEncoder.t100(
@@ -431,36 +447,36 @@ def encode_login_request9(
# TlvEncoder.t104(),
TlvEncoder.t142(APK_ID),
TlvEncoder.t144(
- DEVICE.imei.encode(),
- DEVICE.bootloader,
- DEVICE.proc_version,
- DEVICE.version.codename,
- DEVICE.version.incremental,
- DEVICE.fingerprint,
- DEVICE.boot_id,
- DEVICE.android_id,
- DEVICE.baseband,
- DEVICE.version.incremental,
- DEVICE.os_type.encode(),
- DEVICE.version.release.encode(),
+ device.imei.encode(),
+ device.bootloader,
+ device.proc_version,
+ device.version.codename,
+ device.version.incremental,
+ device.fingerprint,
+ device.boot_id,
+ device.android_id,
+ device.baseband,
+ device.version.incremental,
+ device.os_type.encode(),
+ device.version.release.encode(),
NETWORK_TYPE,
- DEVICE.sim.encode(),
- DEVICE.apn.encode(),
+ device.sim.encode(),
+ device.apn.encode(),
False,
True,
False,
GUID_FLAG,
- DEVICE.model.encode(),
- DEVICE.guid,
- DEVICE.brand.encode(),
- DEVICE.tgtgt,
+ device.model.encode(),
+ device.guid,
+ device.brand.encode(),
+ device.tgtgt,
),
- TlvEncoder.t145(DEVICE.guid),
+ TlvEncoder.t145(device.guid),
TlvEncoder.t147(APP_ID, APK_VERSION.encode(), APK_SIGN),
# TlvEncoder.t166(1),
# TlvEncoder.t16a(),
TlvEncoder.t154(seq),
- TlvEncoder.t141(DEVICE.sim.encode(), NETWORK_TYPE, DEVICE.apn.encode()),
+ TlvEncoder.t141(device.sim.encode(), NETWORK_TYPE, device.apn.encode()),
TlvEncoder.t8(LOCAL_ID),
TlvEncoder.t511(
[
@@ -483,12 +499,12 @@ def encode_login_request9(
# TlvEncoder.t172(),
# TlvEncoder.t185(1), # when sms login, is_password_login == 3
# TlvEncoder.t400(), # null when first time login
- TlvEncoder.t187(DEVICE.mac_address.encode()),
- TlvEncoder.t188(DEVICE.android_id.encode()),
- TlvEncoder.t194(DEVICE.imsi_md5) if DEVICE.imsi_md5 else b"",
+ TlvEncoder.t187(device.mac_address.encode()),
+ TlvEncoder.t188(device.android_id.encode()),
+ TlvEncoder.t194(device.imsi_md5) if device.imsi_md5 else b"",
TlvEncoder.t191(CAN_WEB_VERIFY),
# TlvEncoder.t201(),
- TlvEncoder.t202(DEVICE.wifi_bssid.encode(), DEVICE.wifi_ssid.encode()),
+ TlvEncoder.t202(device.wifi_bssid.encode(), device.wifi_ssid.encode()),
TlvEncoder.t177(APK_BUILD_TIME, SDK_VERSION),
TlvEncoder.t516(),
TlvEncoder.t521(),
@@ -502,7 +518,7 @@ def encode_login_request9(
seq,
SUB_APP_ID,
COMMAND_NAME,
- DEVICE.imei,
+ device.imei,
session_id,
ksid,
oicq_packet,
@@ -521,6 +537,8 @@ def encode_login_request20(
uin: int,
t104: bytes,
g: bytes,
+ imei: str,
+ apk_info: ApkInfo
) -> Packet:
"""Build device lock login request packet.
@@ -543,6 +561,8 @@ def encode_login_request20(
uin (int): User QQ number.
t104 (bytes): T104 response data.
g (bytes): md5 of (guid + dpwd + t402).
+ imei (str): device imei
+ apk_info (ApkInfo): ApkInfo
Returns:
Packet: Login packet.
@@ -551,9 +571,9 @@ def encode_login_request20(
SUB_COMMAND_ID = 20
COMMAND_NAME = "wtlogin.login"
- SUB_APP_ID = APK_INFO.sub_app_id
- BITMAP = APK_INFO.bitmap
- SUB_SIGMAP = APK_INFO.sub_sigmap
+ SUB_APP_ID = apk_info.sub_app_id
+ BITMAP = apk_info.bitmap
+ SUB_SIGMAP = apk_info.sub_sigmap
LOCAL_ID = 2052 # oicq.wlogin_sdk.request.t.v
@@ -571,7 +591,7 @@ def encode_login_request20(
seq,
SUB_APP_ID,
COMMAND_NAME,
- DEVICE.imei,
+ imei,
session_id,
ksid,
oicq_packet,
@@ -599,6 +619,8 @@ def encode_exchange_emp_15(
rand_seed: bytes,
wt_session_ticket: bytes,
wt_session_ticket_key: bytes,
+ device: DeviceInfo,
+ apk_info: ApkInfo
) -> Packet:
"""Build exchange emp request packet.
@@ -623,6 +645,8 @@ def encode_exchange_emp_15(
rand_seed (bytes): Siginfo random seed.
wt_session_ticket (bytes): Siginfo session ticket.
wt_session_ticket_key (bytes): Siginfo session ticket key.
+ device (DeviceInfo): your device info
+ apk_info (ApkInfo): ApkInfo
Returns:
Packet: Exchange emp packet.
@@ -631,28 +655,28 @@ def encode_exchange_emp_15(
SUB_COMMAND_ID = 15
COMMAND_NAME = "wtlogin.exchange_emp"
- APK_ID = APK_INFO.apk_id
- APK_VERSION = APK_INFO.version
- APK_SIGN = APK_INFO.apk_sign
- APK_BUILD_TIME = APK_INFO.build_time
- APP_ID = APK_INFO.app_id
- SUB_APP_ID = APK_INFO.sub_app_id
+ APK_ID = apk_info.apk_id
+ APK_VERSION = apk_info.version
+ APK_SIGN = apk_info.apk_sign
+ APK_BUILD_TIME = apk_info.build_time
+ APP_ID = apk_info.app_id
+ SUB_APP_ID = apk_info.sub_app_id
APP_CLIENT_VERSION = 0
- SDK_VERSION = APK_INFO.sdk_version
- SSO_VERSION = APK_INFO.sso_version
- BITMAP = APK_INFO.bitmap
- MAIN_SIGMAP = APK_INFO.main_sigmap
- SUB_SIGMAP = APK_INFO.sub_sigmap
+ SDK_VERSION = apk_info.sdk_version
+ SSO_VERSION = apk_info.sso_version
+ BITMAP = apk_info.bitmap
+ MAIN_SIGMAP = apk_info.main_sigmap
+ SUB_SIGMAP = apk_info.sub_sigmap
- GUID = DEVICE.guid
+ GUID = device.guid
GUID_SRC = 1
GUID_CHANGE = 0
GUID_FLAG = 0
GUID_FLAG |= GUID_SRC << 24 & 0xFF000000
GUID_FLAG |= GUID_CHANGE << 8 & 0xFF00
LOCAL_ID = 2052 # oicq.wlogin_sdk.request.t.v
- IP_BYTES: bytes = ipaddress.ip_address(DEVICE.ip_address).packed
- NETWORK_TYPE = (DEVICE.apn == "wifi") + 1
+ IP_BYTES: bytes = ipaddress.ip_address(device.ip_address).packed
+ NETWORK_TYPE = (device.apn == "wifi") + 1
data = Packet.build(
struct.pack(">HH", SUB_COMMAND_ID, 24),
@@ -666,37 +690,37 @@ def encode_exchange_emp_15(
TlvEncoder.t107(),
# TlvEncoder.t108(KSID), # null when first time login
TlvEncoder.t144(
- DEVICE.imei.encode(),
- DEVICE.bootloader,
- DEVICE.proc_version,
- DEVICE.version.codename,
- DEVICE.version.incremental,
- DEVICE.fingerprint,
- DEVICE.boot_id,
- DEVICE.android_id,
- DEVICE.baseband,
- DEVICE.version.incremental,
- DEVICE.os_type.encode(),
- DEVICE.version.release.encode(),
+ device.imei.encode(),
+ device.bootloader,
+ device.proc_version,
+ device.version.codename,
+ device.version.incremental,
+ device.fingerprint,
+ device.boot_id,
+ device.android_id,
+ device.baseband,
+ device.version.incremental,
+ device.os_type.encode(),
+ device.version.release.encode(),
NETWORK_TYPE,
- DEVICE.sim.encode(),
- DEVICE.apn.encode(),
+ device.sim.encode(),
+ device.apn.encode(),
False,
True,
False,
GUID_FLAG,
- DEVICE.model.encode(),
- DEVICE.guid,
- DEVICE.brand.encode(),
- DEVICE.tgtgt,
+ device.model.encode(),
+ device.guid,
+ device.brand.encode(),
+ device.tgtgt,
),
TlvEncoder.t142(APK_ID),
# TlvEncoder.t112(),
- TlvEncoder.t145(DEVICE.guid),
+ TlvEncoder.t145(device.guid),
# TlvEncoder.t166(1),
TlvEncoder.t16a(no_pic_sig),
TlvEncoder.t154(seq),
- TlvEncoder.t141(DEVICE.sim.encode(), NETWORK_TYPE, DEVICE.apn.encode()),
+ TlvEncoder.t141(device.sim.encode(), NETWORK_TYPE, device.apn.encode()),
TlvEncoder.t8(LOCAL_ID),
TlvEncoder.t511(
[
@@ -720,11 +744,11 @@ def encode_exchange_emp_15(
# TlvEncoder.t172(),
TlvEncoder.t177(APK_BUILD_TIME, SDK_VERSION),
TlvEncoder.t400(g, uin, GUID, dpwd, 1, APP_ID, rand_seed),
- TlvEncoder.t187(DEVICE.mac_address.encode()),
- TlvEncoder.t188(DEVICE.android_id.encode()),
- TlvEncoder.t194(DEVICE.imsi_md5) if DEVICE.imsi_md5 else b"",
+ TlvEncoder.t187(device.mac_address.encode()),
+ TlvEncoder.t188(device.android_id.encode()),
+ TlvEncoder.t194(device.imsi_md5) if device.imsi_md5 else b"",
# TlvEncoder.t201(),
- TlvEncoder.t202(DEVICE.wifi_bssid.encode(), DEVICE.wifi_ssid.encode()),
+ TlvEncoder.t202(device.wifi_bssid.encode(), device.wifi_ssid.encode()),
TlvEncoder.t516(),
TlvEncoder.t521(),
TlvEncoder.t525(TlvEncoder.t536([])),
@@ -743,14 +767,17 @@ def encode_exchange_emp_15(
async def handle_oicq_response(
- client: "Client", packet: IncomingPacket
+ client: "Client", packet: IncomingPacket, dev: Tuple[DeviceInfo, ApkInfo]
) -> OICQResponse:
+ device, apk_info = dev
+
response = OICQResponse.decode_response(
packet.uin,
packet.seq,
packet.ret_code,
packet.command_name,
packet.data,
+ device.tgtgt
)
if not isinstance(response, UnknownLoginStatus):
return response
@@ -764,7 +791,7 @@ async def handle_oicq_response(
).encode()
client._t402 = response.t402
client._siginfo.g = md5(
- DEVICE.guid + client._siginfo.dpwd + client._t402
+ device.guid + client._siginfo.dpwd + client._t402
).digest()
if isinstance(response, LoginSuccess):
@@ -821,7 +848,7 @@ async def handle_oicq_response(
client._password_md5 + bytes(4) + struct.pack(">I", client._uin)
).digest()
decrypted = qqtea_decrypt(response.encrypted_a1, key)
- DEVICE.tgtgt = decrypted[51:67]
+ device.tgtgt = decrypted[51:67]
elif isinstance(response, NeedCaptcha):
client._t104 = response.t104 or client._t104
elif isinstance(response, DeviceLocked):
diff --git a/cai/client/wtlogin/oicq.py b/cai/client/wtlogin/oicq.py
index 56260260..a17ac00f 100644
--- a/cai/client/wtlogin/oicq.py
+++ b/cai/client/wtlogin/oicq.py
@@ -58,7 +58,7 @@ def build_encoded(
class OICQResponse(Command):
@classmethod
def decode_response(
- cls, uin: int, seq: int, ret_code: int, command_name: str, data: bytes
+ cls, uin: int, seq: int, ret_code: int, command_name: str, data: bytes, tgtgt: bytes
) -> "OICQResponse":
"""Decode login response and wrap main info of the response.
@@ -71,6 +71,7 @@ def decode_response(
ret_code (int): Return code of the response.
command_name (str): Command name of the response.
data (bytes): Payload data of the response.
+ tgtgt (bytes): decode key for t119
Returns:
LoginSuccess: Login success.
@@ -91,7 +92,7 @@ def decode_response(
data_.start().uint16().uint8().offset(2).remain().execute()
)
- _tlv_map = TlvDecoder.decode(_tlv_bytes)
+ _tlv_map = TlvDecoder.decode(_tlv_bytes, tgtgt)
if status == 0:
return LoginSuccess(
diff --git a/cai/client/wtlogin/tlv.py b/cai/client/wtlogin/tlv.py
index bf94bcb0..03f9b437 100644
--- a/cai/client/wtlogin/tlv.py
+++ b/cai/client/wtlogin/tlv.py
@@ -18,9 +18,6 @@
from cai.utils.binary import Packet
from cai.pb.wtlogin import DeviceReport
-from cai.settings.device import get_device
-
-DEVICE = get_device()
class TlvEncoder:
@@ -608,8 +605,9 @@ class TlvDecoder:
def decode(
cls,
data: Union[bytes, bytearray],
+ tgtgt: bytes = None,
offset: int = 0,
- tag_size: int = 2,
+ tag_size: int = 2
) -> Dict[int, Any]:
if not isinstance(data, Packet):
data = Packet(data)
@@ -639,7 +637,9 @@ def decode(
value = data.read_bytes(length, offset)
offset += length
futher_decode = getattr(cls, f"t{tag:x}", None)
- if futher_decode:
+ if futher_decode and tag == 0x119:
+ value = futher_decode(value, tgtgt)
+ elif futher_decode:
value = futher_decode(value)
result[tag] = value
@@ -658,7 +658,7 @@ def t113(cls, data: bytes) -> Dict[str, Any]:
return {"uin": struct.unpack_from(">I", data)[0]}
@classmethod
- def t119(cls, data: bytes) -> Dict[int, Any]:
+ def t119(cls, data: bytes, tgtgt: bytes) -> Dict[int, Any]:
"""Tea decrypt tlv 119 data.
Tlv list:
@@ -712,7 +712,7 @@ def t119(cls, data: bytes) -> Dict[int, Any]:
Note:
Source: oicq.wlogin_sdk.request.oicq_request.d
"""
- data = qqtea_decrypt(data, DEVICE.tgtgt)
+ data = qqtea_decrypt(data, tgtgt)
result = cls.decode(data, offset=2)
return result
diff --git a/cai/settings/protocol.py b/cai/settings/protocol.py
index f5780878..035652fd 100644
--- a/cai/settings/protocol.py
+++ b/cai/settings/protocol.py
@@ -164,11 +164,11 @@ class ApkInfo(NamedTuple):
)
-def get_apk_info(type_: str = "0") -> ApkInfo:
- info = {"0": IPAD, "1": ANDROID_PHONE, "2": ANDROID_WATCH, "3": MACOS}
- if type_ not in info:
- raise ValueError(f"Invalid Protocol Type: {type_}")
- return info[type_]
+def get_apk_info(_type: str = "IPAD") -> ApkInfo:
+ info = {"IPAD": IPAD, "ANDROID_PHONE": ANDROID_PHONE, "ANDROID_WATCH": ANDROID_WATCH, "MACOS": MACOS}
+ if _type not in info:
+ raise ValueError(f"Invalid Protocol Type: {_type}")
+ return info[_type]
def get_protocol(cache: bool = True) -> ApkInfo:
@@ -181,8 +181,8 @@ def get_protocol(cache: bool = True) -> ApkInfo:
with open(Storage.protocol_file, "r") as f:
type_ = f.read()
elif type_ is MISSING:
- type_ = "0"
+ type_ = "IPAD"
with open(Storage.protocol_file, "w") as f:
- f.write("0")
+ f.write("IPAD")
_protocol = get_apk_info(type_)
return _protocol
diff --git a/examples/login.py b/examples/login.py
index bc0252c1..d64df97d 100644
--- a/examples/login.py
+++ b/examples/login.py
@@ -8,15 +8,15 @@
"""
import os
import asyncio
-import signal
-import asyncio
-import sys
import traceback
from io import BytesIO
from PIL import Image
from cai.api import Client, make_client
+from cai.client import OnlineStatus
+from cai.settings.device import get_device
+from cai.settings.protocol import get_apk_info
from cai.exceptions import (
LoginException,
ApiResponseError,
@@ -34,13 +34,20 @@ async def run(closed: asyncio.Event):
assert password and account, ValueError("account or password not set")
account = int(account)
- ci = Client(make_client(account, password))
+ ci = Client(make_client(account, password, get_apk_info(), device=get_device()))
try:
await ci.login()
print(f"Login Success! Client status: {ci.client.status!r}")
except Exception as e:
await handle_failure(ci, e)
+ while True:
+ for status in OnlineStatus:
+ if status == OnlineStatus.Offline:
+ continue
+ print(status, "Changed")
+ await ci.set_status(status, 67, True)
+ await asyncio.sleep(10)
finally:
closed.set()
From c134a6dcd20c70145f330c2fc3214b45fd51c78f Mon Sep 17 00:00:00 2001
From: a1025
Date: Sun, 20 Mar 2022 03:02:31 +0800
Subject: [PATCH 010/113] update: named logger
---
cai/client/client.py | 32 +++++++++++++-------------
cai/client/config_push/__init__.py | 4 ++--
cai/client/message_service/__init__.py | 6 ++---
cai/log.py | 8 +++++--
4 files changed, 27 insertions(+), 23 deletions(-)
diff --git a/cai/client/client.py b/cai/client/client.py
index 32769cf6..03c23cd3 100644
--- a/cai/client/client.py
+++ b/cai/client/client.py
@@ -26,7 +26,7 @@
from cachetools import TTLCache
-from cai.log import logger
+from cai import log
from cai.utils.binary import Packet
from cai.utils.future import FutureStore
from cai.settings.device import DeviceInfo
@@ -271,7 +271,7 @@ async def connect(self, server: Optional[SsoServer] = None) -> None:
raise RuntimeError("Already connected to the server")
_server = server or await get_sso_server()
- logger.info(f"Connecting to server: {_server.host}:{_server.port}")
+ log.logger.info(f"Connecting to server: {_server.host}:{_server.port}")
try:
self._connection = await connect(
_server.host, _server.port, ssl=False, timeout=3.0
@@ -357,7 +357,7 @@ async def send(
Returns:
None.
"""
- logger.debug(f"--> {seq}: {command_name}")
+ log.network.debug(f"--> {seq}: {command_name}")
await self.connection.awrite(packet)
async def send_and_wait(
@@ -388,7 +388,7 @@ async def _handle_incoming_packet(self, in_packet: IncomingPacket) -> None:
self._receive_store.store_result(packet.seq, packet)
except Exception as e:
# TODO: handle exception
- logger.exception(e)
+ log.logger.exception(e)
async def receive(self):
"""Receive data from connection reader and store it in sequence future.
@@ -410,15 +410,15 @@ async def receive(self):
self._siginfo.d2key,
self._siginfo.wt_session_ticket_key,
)
- logger.debug(
+ log.network.debug(
f"<-- {packet.seq} ({packet.ret_code}): {packet.command_name}"
)
# do not block receive
asyncio.create_task(self._handle_incoming_packet(packet))
except ConnectionAbortedError:
- logger.debug(f"Client {self.uin} connection closed")
+ log.logger.debug(f"Client {self.uin} connection closed")
except Exception as e:
- logger.exception(e)
+ log.logger.exception(e)
@property
def listeners(self) -> Set[LT]:
@@ -428,7 +428,7 @@ async def _run_listener(self, listener: LT, event: Event) -> None:
try:
await listener(self, event)
except Exception as e:
- logger.exception(e)
+ log.logger.exception(e)
def dispatch_event(self, event: Event) -> None:
for listener in self.listeners:
@@ -457,15 +457,15 @@ async def _handle_login_response(
)
if isinstance(response, LoginSuccess):
- logger.info(f"{self.nick}({self.uin}) 登录成功!")
+ log.logger.info(f"{self.nick}({self.uin}) 登录成功!")
await self._init()
return response
elif isinstance(response, NeedCaptcha):
if response.verify_url:
- logger.info(f"登录失败!请前往 {response.verify_url} 获取 ticket")
+ log.logger.info(f"登录失败!请前往 {response.verify_url} 获取 ticket")
raise LoginSliderNeeded(response.uin, response.verify_url)
elif response.captcha_image:
- logger.info(f"登录失败!需要根据图片输入验证码")
+ log.logger.info(f"登录失败!需要根据图片输入验证码")
raise LoginCaptchaNeeded(
response.uin, response.captcha_image, response.captcha_sign
)
@@ -476,7 +476,7 @@ async def _handle_login_response(
"Cannot get verify_url or captcha_image from the response!",
)
elif isinstance(response, AccountFrozen):
- logger.info("账号已被冻结!")
+ log.logger.info("账号已被冻结!")
raise LoginAccountFrozen(response.uin)
elif isinstance(response, DeviceLocked):
msg = "账号已开启设备锁!"
@@ -484,7 +484,7 @@ async def _handle_login_response(
msg += f"向手机{response.sms_phone}发送验证码"
if response.verify_url:
msg += f"或前往 {response.verify_url} 扫码验证"
- logger.info(msg + "。" + str(response.message))
+ log.logger.info(msg + "。" + str(response.message))
raise LoginDeviceLocked(
response.uin,
@@ -493,7 +493,7 @@ async def _handle_login_response(
response.message,
)
elif isinstance(response, TooManySMSRequest):
- logger.info("验证码发送频繁!")
+ log.logger.info("验证码发送过于频繁!")
raise LoginSMSRequestError(response.uin)
elif isinstance(response, DeviceLockLogin):
if try_times:
@@ -532,7 +532,7 @@ async def _handle_login_response(
msg = packet_.start(2).string(2).execute()[0]
else:
msg = ""
- logger.info(f"未知的登录返回码 {response.status}! {msg}")
+ log.logger.info(f"未知的登录返回码 {response.status}! {msg}")
raise LoginException(
response.uin, response.status, "Unknown login status."
)
@@ -954,7 +954,7 @@ async def heartbeat(self) -> None:
if not isinstance(response, Heartbeat):
raise RuntimeError("Invalid heartbeat response type!")
except Exception:
- logger.exception("Heartbeat.Alive: Failed")
+ log.network.exception("Heartbeat.Alive: Failed")
break
await asyncio.sleep(self._heartbeat_interval)
diff --git a/cai/client/config_push/__init__.py b/cai/client/config_push/__init__.py
index bc99ebbe..c1b9bf27 100644
--- a/cai/client/config_push/__init__.py
+++ b/cai/client/config_push/__init__.py
@@ -13,7 +13,7 @@
from jce import types
-from cai.log import logger
+from cai import log
from cai.utils.binary import Packet
from cai.utils.jce import RequestPacketVersion3
from cai.client.packet import UniPacket, IncomingPacket
@@ -85,7 +85,7 @@ async def handle_config_push_request(
packet.data,
)
if isinstance(command, SsoServerPushCommand):
- logger.debug(f"ConfigPush: Got new server addresses.")
+ log.network.debug(f"ConfigPush: Got new server addresses.")
elif isinstance(command, FileServerPushCommand):
client._file_storage_info = command.list
diff --git a/cai/client/message_service/__init__.py b/cai/client/message_service/__init__.py
index e6ccd6e6..def447ed 100644
--- a/cai/client/message_service/__init__.py
+++ b/cai/client/message_service/__init__.py
@@ -12,7 +12,7 @@
from enum import IntEnum
from typing import TYPE_CHECKING, List, Union, Optional
-from cai.log import logger
+from cai import log
from cai.utils.binary import Packet
from cai.client.status_service import OnlineStatus
from cai.client.packet import UniPacket, IncomingPacket
@@ -169,7 +169,7 @@ async def handle_get_message(
msg_type = message.head.type
Decoder = MESSAGE_DECODERS.get(msg_type, None)
if not Decoder:
- logger.debug(
+ log.network.debug(
"MessageSvc.PbGetMsg: "
f"Received unknown message type {msg_type}."
)
@@ -315,7 +315,7 @@ async def handle_force_offline(
packet.command_name,
packet.data,
)
- logger.error(
+ log.network.error(
f"Client {client.uin} force offline: " + request.request.tips
if isinstance(request, PushForceOffline)
else "Unknown reason."
diff --git a/cai/log.py b/cai/log.py
index d205509f..a2f39d54 100644
--- a/cai/log.py
+++ b/cai/log.py
@@ -11,6 +11,10 @@
import sys
import logging
+logging.basicConfig(
+ level=logging.DEBUG,
+ handlers=[logging.StreamHandler(sys.stdout)]
+)
+
logger = logging.getLogger("cai")
-logger.setLevel(logging.DEBUG)
-logger.addHandler(logging.StreamHandler(sys.stdout))
+network = logging.getLogger("cai.network")
From 876b02fa07980a764fee957ba63da142d9d9f8a4 Mon Sep 17 00:00:00 2001
From: a1025
Date: Sun, 20 Mar 2022 03:56:27 +0800
Subject: [PATCH 011/113] update: logger
---
cai/client/client.py | 9 ++++++---
cai/log.py | 3 ++-
2 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/cai/client/client.py b/cai/client/client.py
index 03c23cd3..6ede43b3 100644
--- a/cai/client/client.py
+++ b/cai/client/client.py
@@ -8,6 +8,7 @@
.. _LICENSE:
https://github.com/cscs181/CAI/blob/master/LICENSE
"""
+import logging
import time
import struct
import asyncio
@@ -269,7 +270,7 @@ async def connect(self, server: Optional[SsoServer] = None) -> None:
"""
if self.connected:
raise RuntimeError("Already connected to the server")
-
+ log.network.debug("Getting Sso server")
_server = server or await get_sso_server()
log.logger.info(f"Connecting to server: {_server.host}:{_server.port}")
try:
@@ -318,6 +319,7 @@ async def reconnect(
async def close(self) -> None:
"""Close the client and logout."""
+ log.logger.warning("closing client")
if (
self.connected
and self.status
@@ -357,7 +359,7 @@ async def send(
Returns:
None.
"""
- log.network.debug(f"--> {seq}: {command_name}")
+ log.network.debug(f"(send:{seq}): {command_name}")
await self.connection.awrite(packet)
async def send_and_wait(
@@ -410,8 +412,9 @@ async def receive(self):
self._siginfo.d2key,
self._siginfo.wt_session_ticket_key,
)
+ #
log.network.debug(
- f"<-- {packet.seq} ({packet.ret_code}): {packet.command_name}"
+ f"(receive:{packet.ret_code}): {packet.command_name}"
)
# do not block receive
asyncio.create_task(self._handle_incoming_packet(packet))
diff --git a/cai/log.py b/cai/log.py
index a2f39d54..37c06818 100644
--- a/cai/log.py
+++ b/cai/log.py
@@ -13,7 +13,8 @@
logging.basicConfig(
level=logging.DEBUG,
- handlers=[logging.StreamHandler(sys.stdout)]
+ handlers=[logging.StreamHandler(sys.stdout)],
+ format="%(asctime)s %(name)s[%(levelname)s]: %(message)s"
)
logger = logging.getLogger("cai")
From 68ac10d96fd8ff5b7303f5c2d09f11d4335fc7f9 Mon Sep 17 00:00:00 2001
From: a1025
Date: Sun, 20 Mar 2022 04:12:56 +0800
Subject: [PATCH 012/113] add: Client.status
---
cai/api/client.py | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/cai/api/client.py b/cai/api/client.py
index 418d68ce..6f8fec19 100644
--- a/cai/api/client.py
+++ b/cai/api/client.py
@@ -32,7 +32,6 @@ def make_client(
passwd = hashlib.md5(passwd.encode()).digest()
if not device:
device = new_device()
- print(device)
return client_t(uin, passwd, device, apk_info)
@@ -44,6 +43,10 @@ def __init__(self, client: client_t):
def connected(self) -> bool:
return self.client.connected
+ @property
+ def status(self) -> Optional[OnlineStatus]:
+ return self.client.status
+
async def close(self):
"""Stop Client"""
await self.client.close()
From 06d03d6ed355ace275737c42917e2e4826da6cd4 Mon Sep 17 00:00:00 2001
From: a1025
Date: Sun, 20 Mar 2022 04:46:23 +0800
Subject: [PATCH 013/113] add: more debug message
---
cai/client/client.py | 3 +++
1 file changed, 3 insertions(+)
diff --git a/cai/client/client.py b/cai/client/client.py
index 6ede43b3..5af25328 100644
--- a/cai/client/client.py
+++ b/cai/client/client.py
@@ -302,6 +302,7 @@ async def reconnect(
change_server (bool, optional): True if you want to change the server. Defaults to False.
server (Optional[SsoServer], optional): Which server you want to connect to. Defaults to None.
"""
+ log.network.debug("reconnecting...")
if not change_server and self._connection:
await self._connection.reconnect()
return
@@ -316,6 +317,7 @@ async def reconnect(
)
await self.disconnect()
await self.connect(_server)
+ log.network.debug("reconnected")
async def close(self) -> None:
"""Close the client and logout."""
@@ -961,6 +963,7 @@ async def heartbeat(self) -> None:
break
await asyncio.sleep(self._heartbeat_interval)
+ log.network.debug("heartbeat stopped")
self._heartbeat_enabled = False
async def _refresh_friend_list(self):
From 40974150b60b8b310375182d2101aadaba0d1221 Mon Sep 17 00:00:00 2001
From: a1025
Date: Sun, 20 Mar 2022 14:45:30 +0800
Subject: [PATCH 014/113] add: basic send group message[see example/login.py]
---
cai/api/client.py | 21 ++++++++--
cai/client/message_service/encoders.py | 53 ++++++++++++++++++++++++++
cai/log.py | 7 ----
examples/login.py | 32 +++++++++++++++-
4 files changed, 100 insertions(+), 13 deletions(-)
create mode 100644 cai/client/message_service/encoders.py
diff --git a/cai/api/client.py b/cai/api/client.py
index 6f8fec19..c5bc9291 100644
--- a/cai/api/client.py
+++ b/cai/api/client.py
@@ -8,14 +8,16 @@
"""
import hashlib
-from typing import Union, Optional
+from typing import Union, Optional, Sequence
-from .login import Login as _Login
-from .friend import Friend as _Friend
-from .group import Group as _Group
from cai.client import OnlineStatus, Client as client_t
+from cai.client.message_service.encoders import make_group_msg_pkg, build_msg
from cai.settings.device import DeviceInfo, new_device
from cai.settings.protocol import ApkInfo
+from .friend import Friend as _Friend
+from .group import Group as _Group
+from .login import Login as _Login
+from cai.client.message_service.models import Element
def make_client(
@@ -47,6 +49,17 @@ def connected(self) -> bool:
def status(self) -> Optional[OnlineStatus]:
return self.client.status
+ async def send_group_msg(self, gid: int, msg: Sequence[Element]):
+ seq = self.client.next_seq()
+
+ return await self.client.send_and_wait(
+ seq,
+ "MessageSvc.PbSendMsg",
+ make_group_msg_pkg(
+ seq, gid, self.client, build_msg(msg)
+ )
+ )
+
async def close(self):
"""Stop Client"""
await self.client.close()
diff --git a/cai/client/message_service/encoders.py b/cai/client/message_service/encoders.py
new file mode 100644
index 00000000..07c3b4ba
--- /dev/null
+++ b/cai/client/message_service/encoders.py
@@ -0,0 +1,53 @@
+import random
+
+from typing import Sequence, TYPE_CHECKING, Dict, Type
+from cai.pb.im.msg.msg_body import MsgBody, PlainText, RichText, Elem
+from cai.pb.msf.msg.svc.svc_pb2 import PbSendMsgReq, RoutingHead, Grp
+from cai.pb.msf.msg.comm.comm_pb2 import ContentHead
+from cai.client.packet import UniPacket
+
+from . import models
+
+
+if TYPE_CHECKING:
+ from cai.client.client import Client
+
+
+# todo: https://github.com/mamoe/mirai/blob/7d3971259de59cede94b7a55650c8a6ad4346a59/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/receive/MessageSvc.PbSendMsg.kt#L103
+# https://github.com/mamoe/mirai/blob/74fc5a50376ed0330b984af51e0fabc2147afdbb/mirai-core/src/commonMain/kotlin/contact/SendMessageHandler.kt
+
+def build_msg(elements: Sequence[models.Element]) -> MsgBody:
+ ret = []
+ for e in elements: # todo: support more element
+ if isinstance(e, models.TextElement):
+ ret.append(PlainText(str=e.content.encode()))
+ else:
+ raise NotImplementedError(e)
+
+ return MsgBody(
+ rich_text=RichText(
+ elems=[Elem(text=e) for e in ret],
+ ptt=None
+ )
+ )
+
+
+def encode_send_group_msg_req(
+ seq: int, session_id: bytes, uin: int, group: int, body: MsgBody, head: ContentHead, d2key: bytes
+):
+ return UniPacket.build(uin, seq, "MessageSvc.PbSendMsg", session_id, 1, PbSendMsgReq(
+ routing_head=RoutingHead(grp=Grp(group_code=group)),
+ content_head=head,
+ body=body,
+ seq=seq,
+ rand=random.randrange(3000, 30000),
+ via=0
+ ).SerializeToString(), d2key)
+
+
+def make_group_msg_pkg(seq: int, gid: int, client: "Client", body: MsgBody) -> UniPacket:
+ return encode_send_group_msg_req(
+ seq, client._session_id, client.uin,
+ gid, body, ContentHead(pkg_num=1, pkg_index=0, div_seq=0),
+ client._siginfo.d2key
+ )
diff --git a/cai/log.py b/cai/log.py
index 37c06818..1ca89ad1 100644
--- a/cai/log.py
+++ b/cai/log.py
@@ -8,14 +8,7 @@
.. _LICENSE:
https://github.com/cscs181/CAI/blob/master/LICENSE
"""
-import sys
import logging
-logging.basicConfig(
- level=logging.DEBUG,
- handlers=[logging.StreamHandler(sys.stdout)],
- format="%(asctime)s %(name)s[%(levelname)s]: %(message)s"
-)
-
logger = logging.getLogger("cai")
network = logging.getLogger("cai.network")
diff --git a/examples/login.py b/examples/login.py
index d64df97d..fc533dd1 100644
--- a/examples/login.py
+++ b/examples/login.py
@@ -6,15 +6,19 @@
.. _LICENSE:
https://github.com/cscs181/CAI/blob/master/LICENSE
"""
+import functools
+import logging
import os
import asyncio
+import sys
import traceback
from io import BytesIO
from PIL import Image
from cai.api import Client, make_client
-from cai.client import OnlineStatus
+from cai.client import OnlineStatus, PrivateMessage, GroupMessage, Event
+from cai.client.message_service.models import TextElement
from cai.settings.device import get_device
from cai.settings.protocol import get_apk_info
from cai.exceptions import (
@@ -41,17 +45,34 @@ async def run(closed: asyncio.Event):
print(f"Login Success! Client status: {ci.client.status!r}")
except Exception as e:
await handle_failure(ci, e)
+ ci.client.add_event_listener(functools.partial(listen_message, ci))
while True:
for status in OnlineStatus:
if status == OnlineStatus.Offline:
continue
print(status, "Changed")
await ci.set_status(status, 67, True)
- await asyncio.sleep(10)
+ await asyncio.sleep(360)
finally:
closed.set()
+async def listen_message(client: Client, _, event: Event):
+ if isinstance(event, PrivateMessage):
+ print(f"{event.from_nick}(f{event.from_uin}) -> {event.message}")
+ elif isinstance(event, GroupMessage):
+ print(f"{event.group_name}({event.group_id}:{event.from_uin}) -> {event.message}")
+ if event.message and hasattr(event.message[0], "content"):
+ if event.message[0].content == "0x114514":
+ await client.send_group_msg(
+ event.group_id, [
+ TextElement("Hello\n"),
+ TextElement("Multiple element "),
+ TextElement("Supported.")
+ ]
+ )
+
+
async def handle_failure(client: Client, exception: Exception):
if isinstance(exception, LoginSliderNeeded):
print("Verify url:", exception.verify_url)
@@ -125,6 +146,13 @@ async def handle_failure(client: Client, exception: Exception):
if __name__ == "__main__":
+
+ logging.basicConfig(
+ level=logging.DEBUG,
+ handlers=[logging.StreamHandler(sys.stdout)],
+ format="%(asctime)s %(name)s[%(levelname)s]: %(message)s"
+ )
+
close = asyncio.Event()
async def wait_cleanup():
From 6cb910325f821223cc09aceec464146200c4aadc Mon Sep 17 00:00:00 2001
From: a1025
Date: Sun, 20 Mar 2022 16:06:17 +0800
Subject: [PATCH 015/113] add: highway pb file
---
cai/pb/highway/__init__.py | 0
cai/pb/highway/protocol/__init__.py | 0
cai/pb/highway/protocol/highway_head.proto | 132 ++++++
cai/pb/highway/protocol/highway_head_pb2.py | 210 +++++++++
cai/pb/highway/protocol/highway_head_pb2.pyi | 421 +++++++++++++++++++
5 files changed, 763 insertions(+)
create mode 100644 cai/pb/highway/__init__.py
create mode 100644 cai/pb/highway/protocol/__init__.py
create mode 100644 cai/pb/highway/protocol/highway_head.proto
create mode 100644 cai/pb/highway/protocol/highway_head_pb2.py
create mode 100644 cai/pb/highway/protocol/highway_head_pb2.pyi
diff --git a/cai/pb/highway/__init__.py b/cai/pb/highway/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/cai/pb/highway/protocol/__init__.py b/cai/pb/highway/protocol/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/cai/pb/highway/protocol/highway_head.proto b/cai/pb/highway/protocol/highway_head.proto
new file mode 100644
index 00000000..cfddbdd8
--- /dev/null
+++ b/cai/pb/highway/protocol/highway_head.proto
@@ -0,0 +1,132 @@
+syntax = "proto2";
+// origin name: CSDataHighwayHead
+message highway_head {
+ message C2CCommonExtendinfo {
+ optional uint32 infoId = 1;
+ optional FilterExtendinfo filterExtendinfo = 2;
+ }
+
+ message DataHighwayHead {
+ optional uint32 version = 1;
+ optional bytes uin = 2;
+ optional bytes command = 3;
+ optional uint32 seq = 4;
+ optional uint32 retryTimes = 5;
+ optional uint32 appid = 6;
+ optional uint32 dataflag = 7;
+ optional uint32 commandId = 8;
+ optional bytes buildVer = 9;
+ optional uint32 localeId = 10;
+ optional uint32 envId = 11;
+ }
+
+ message DataHole {
+ optional uint64 begin = 1;
+ optional uint64 end = 2;
+ }
+
+ message FilterExtendinfo {
+ optional uint32 filterFlag = 1;
+ optional ImageFilterRequest imageFilterRequest = 2;
+ }
+
+ message FilterStyle {
+ optional uint32 styleId = 1;
+ optional bytes styleName = 2;
+ }
+
+ message ImageFilterRequest {
+ optional bytes sessionId = 1;
+ optional uint32 clientIp = 2;
+ optional uint64 uin = 3;
+ optional FilterStyle style = 4;
+ optional uint32 width = 5;
+ optional uint32 height = 6;
+ optional bytes imageData = 7;
+ }
+
+ message ImageFilterResponse {
+ optional int32 retCode = 1;
+ optional bytes imageData = 2;
+ optional uint32 costTime = 3;
+ }
+
+ message LoginSigHead {
+ optional uint32 loginsigType = 1;
+ optional bytes loginsig = 2;
+ }
+
+ message NewServiceTicket {
+ optional bytes signature = 1;
+ optional bytes ukey = 2;
+ }
+
+ message PicInfoExt {
+ optional uint32 picWidth = 1;
+ optional uint32 picHeight = 2;
+ optional uint32 picFlag = 3;
+ optional uint32 busiType = 4;
+ optional uint32 srcTerm = 5;
+ optional uint32 platType = 6;
+ optional uint32 netType = 7;
+ optional uint32 imgType = 8;
+ optional uint32 appPicType = 9;
+ optional bytes echoCreatedByServer = 10;
+ optional uint64 qqmeetGuildId = 11;
+ optional uint64 qqmeetChannelId = 12;
+ }
+
+ message PicRspExtInfo {
+ optional bytes skey = 1;
+ optional uint32 clientIp = 2;
+ optional uint64 upOffset = 3;
+ optional uint64 blockSize = 4;
+ }
+
+ message QueryHoleRsp {
+ optional uint32 result = 1;
+ repeated DataHole dataHole = 2;
+ optional bool compFlag = 3;
+ }
+
+ message ReqDataHighwayHead {
+ optional DataHighwayHead basehead = 1;
+ optional SegHead seghead = 2;
+ optional bytes reqExtendinfo = 3;
+ optional uint64 timestamp = 4;
+ optional LoginSigHead loginSigHead = 5;
+ }
+
+ message RspBody {
+ optional QueryHoleRsp queryHoleRsp = 1;
+ }
+
+ message RspDataHighwayHead {
+ optional DataHighwayHead basehead = 1;
+ optional SegHead seghead = 2;
+ optional uint32 errorCode = 3;
+ optional uint32 allowRetry = 4;
+ optional uint32 cachecost = 5;
+ optional uint32 htcost = 6;
+ optional bytes rspExtendinfo = 7;
+ optional uint64 timestamp = 8;
+ optional uint64 range = 9;
+ optional uint32 isReset = 10;
+ }
+
+ message SegHead {
+ optional uint32 serviceid = 1;
+ optional uint64 filesize = 2;
+ optional uint64 dataoffset = 3;
+ optional uint32 datalength = 4;
+ optional uint32 rtcode = 5;
+ optional bytes serviceticket = 6;
+ optional uint32 flag = 7;
+ optional bytes md5 = 8;
+ optional bytes fileMd5 = 9;
+ optional uint32 cacheAddr = 10;
+ optional uint32 queryTimes = 11;
+ optional uint32 updateCacheip = 12;
+ optional uint32 cachePort = 13;
+ }
+}
diff --git a/cai/pb/highway/protocol/highway_head_pb2.py b/cai/pb/highway/protocol/highway_head_pb2.py
new file mode 100644
index 00000000..ee212b00
--- /dev/null
+++ b/cai/pb/highway/protocol/highway_head_pb2.py
@@ -0,0 +1,210 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: highway_head.proto
+"""Generated protocol buffer code."""
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import message as _message
+from google.protobuf import reflection as _reflection
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x12highway_head.proto\"\x93\x10\n\x0chighway_head\x1a_\n\x13\x43\x32\x43\x43ommonExtendinfo\x12\x0e\n\x06infoId\x18\x01 \x01(\r\x12\x38\n\x10\x66ilterExtendinfo\x18\x02 \x01(\x0b\x32\x1e.highway_head.FilterExtendinfo\x1a\xc8\x01\n\x0f\x44\x61taHighwayHead\x12\x0f\n\x07version\x18\x01 \x01(\r\x12\x0b\n\x03uin\x18\x02 \x01(\x0c\x12\x0f\n\x07\x63ommand\x18\x03 \x01(\x0c\x12\x0b\n\x03seq\x18\x04 \x01(\r\x12\x12\n\nretryTimes\x18\x05 \x01(\r\x12\r\n\x05\x61ppid\x18\x06 \x01(\r\x12\x10\n\x08\x64\x61taflag\x18\x07 \x01(\r\x12\x11\n\tcommandId\x18\x08 \x01(\r\x12\x10\n\x08\x62uildVer\x18\t \x01(\x0c\x12\x10\n\x08localeId\x18\n \x01(\r\x12\r\n\x05\x65nvId\x18\x0b \x01(\r\x1a&\n\x08\x44\x61taHole\x12\r\n\x05\x62\x65gin\x18\x01 \x01(\x04\x12\x0b\n\x03\x65nd\x18\x02 \x01(\x04\x1a\x64\n\x10\x46ilterExtendinfo\x12\x12\n\nfilterFlag\x18\x01 \x01(\r\x12<\n\x12imageFilterRequest\x18\x02 \x01(\x0b\x32 .highway_head.ImageFilterRequest\x1a\x31\n\x0b\x46ilterStyle\x12\x0f\n\x07styleId\x18\x01 \x01(\r\x12\x11\n\tstyleName\x18\x02 \x01(\x0c\x1a\xa2\x01\n\x12ImageFilterRequest\x12\x11\n\tsessionId\x18\x01 \x01(\x0c\x12\x10\n\x08\x63lientIp\x18\x02 \x01(\r\x12\x0b\n\x03uin\x18\x03 \x01(\x04\x12(\n\x05style\x18\x04 \x01(\x0b\x32\x19.highway_head.FilterStyle\x12\r\n\x05width\x18\x05 \x01(\r\x12\x0e\n\x06height\x18\x06 \x01(\r\x12\x11\n\timageData\x18\x07 \x01(\x0c\x1aK\n\x13ImageFilterResponse\x12\x0f\n\x07retCode\x18\x01 \x01(\x05\x12\x11\n\timageData\x18\x02 \x01(\x0c\x12\x10\n\x08\x63ostTime\x18\x03 \x01(\r\x1a\x36\n\x0cLoginSigHead\x12\x14\n\x0cloginsigType\x18\x01 \x01(\r\x12\x10\n\x08loginsig\x18\x02 \x01(\x0c\x1a\x33\n\x10NewServiceTicket\x12\x11\n\tsignature\x18\x01 \x01(\x0c\x12\x0c\n\x04ukey\x18\x02 \x01(\x0c\x1a\xfa\x01\n\nPicInfoExt\x12\x10\n\x08picWidth\x18\x01 \x01(\r\x12\x11\n\tpicHeight\x18\x02 \x01(\r\x12\x0f\n\x07picFlag\x18\x03 \x01(\r\x12\x10\n\x08\x62usiType\x18\x04 \x01(\r\x12\x0f\n\x07srcTerm\x18\x05 \x01(\r\x12\x10\n\x08platType\x18\x06 \x01(\r\x12\x0f\n\x07netType\x18\x07 \x01(\r\x12\x0f\n\x07imgType\x18\x08 \x01(\r\x12\x12\n\nappPicType\x18\t \x01(\r\x12\x1b\n\x13\x65\x63hoCreatedByServer\x18\n \x01(\x0c\x12\x15\n\rqqmeetGuildId\x18\x0b \x01(\x04\x12\x17\n\x0fqqmeetChannelId\x18\x0c \x01(\x04\x1aT\n\rPicRspExtInfo\x12\x0c\n\x04skey\x18\x01 \x01(\x0c\x12\x10\n\x08\x63lientIp\x18\x02 \x01(\r\x12\x10\n\x08upOffset\x18\x03 \x01(\x04\x12\x11\n\tblockSize\x18\x04 \x01(\x04\x1aZ\n\x0cQueryHoleRsp\x12\x0e\n\x06result\x18\x01 \x01(\r\x12(\n\x08\x64\x61taHole\x18\x02 \x03(\x0b\x32\x16.highway_head.DataHole\x12\x10\n\x08\x63ompFlag\x18\x03 \x01(\x08\x1a\xc9\x01\n\x12ReqDataHighwayHead\x12/\n\x08\x62\x61sehead\x18\x01 \x01(\x0b\x32\x1d.highway_head.DataHighwayHead\x12&\n\x07seghead\x18\x02 \x01(\x0b\x32\x15.highway_head.SegHead\x12\x15\n\rreqExtendinfo\x18\x03 \x01(\x0c\x12\x11\n\ttimestamp\x18\x04 \x01(\x04\x12\x30\n\x0cloginSigHead\x18\x05 \x01(\x0b\x32\x1a.highway_head.LoginSigHead\x1a;\n\x07RspBody\x12\x30\n\x0cqueryHoleRsp\x18\x01 \x01(\x0b\x32\x1a.highway_head.QueryHoleRsp\x1a\x81\x02\n\x12RspDataHighwayHead\x12/\n\x08\x62\x61sehead\x18\x01 \x01(\x0b\x32\x1d.highway_head.DataHighwayHead\x12&\n\x07seghead\x18\x02 \x01(\x0b\x32\x15.highway_head.SegHead\x12\x11\n\terrorCode\x18\x03 \x01(\r\x12\x12\n\nallowRetry\x18\x04 \x01(\r\x12\x11\n\tcachecost\x18\x05 \x01(\r\x12\x0e\n\x06htcost\x18\x06 \x01(\r\x12\x15\n\rrspExtendinfo\x18\x07 \x01(\x0c\x12\x11\n\ttimestamp\x18\x08 \x01(\x04\x12\r\n\x05range\x18\t \x01(\x04\x12\x0f\n\x07isReset\x18\n \x01(\r\x1a\xfa\x01\n\x07SegHead\x12\x11\n\tserviceid\x18\x01 \x01(\r\x12\x10\n\x08\x66ilesize\x18\x02 \x01(\x04\x12\x12\n\ndataoffset\x18\x03 \x01(\x04\x12\x12\n\ndatalength\x18\x04 \x01(\r\x12\x0e\n\x06rtcode\x18\x05 \x01(\r\x12\x15\n\rserviceticket\x18\x06 \x01(\x0c\x12\x0c\n\x04\x66lag\x18\x07 \x01(\r\x12\x0b\n\x03md5\x18\x08 \x01(\x0c\x12\x0f\n\x07\x66ileMd5\x18\t \x01(\x0c\x12\x11\n\tcacheAddr\x18\n \x01(\r\x12\x12\n\nqueryTimes\x18\x0b \x01(\r\x12\x15\n\rupdateCacheip\x18\x0c \x01(\r\x12\x11\n\tcachePort\x18\r \x01(\r')
+
+
+
+_HIGHWAY_HEAD = DESCRIPTOR.message_types_by_name['highway_head']
+_HIGHWAY_HEAD_C2CCOMMONEXTENDINFO = _HIGHWAY_HEAD.nested_types_by_name['C2CCommonExtendinfo']
+_HIGHWAY_HEAD_DATAHIGHWAYHEAD = _HIGHWAY_HEAD.nested_types_by_name['DataHighwayHead']
+_HIGHWAY_HEAD_DATAHOLE = _HIGHWAY_HEAD.nested_types_by_name['DataHole']
+_HIGHWAY_HEAD_FILTEREXTENDINFO = _HIGHWAY_HEAD.nested_types_by_name['FilterExtendinfo']
+_HIGHWAY_HEAD_FILTERSTYLE = _HIGHWAY_HEAD.nested_types_by_name['FilterStyle']
+_HIGHWAY_HEAD_IMAGEFILTERREQUEST = _HIGHWAY_HEAD.nested_types_by_name['ImageFilterRequest']
+_HIGHWAY_HEAD_IMAGEFILTERRESPONSE = _HIGHWAY_HEAD.nested_types_by_name['ImageFilterResponse']
+_HIGHWAY_HEAD_LOGINSIGHEAD = _HIGHWAY_HEAD.nested_types_by_name['LoginSigHead']
+_HIGHWAY_HEAD_NEWSERVICETICKET = _HIGHWAY_HEAD.nested_types_by_name['NewServiceTicket']
+_HIGHWAY_HEAD_PICINFOEXT = _HIGHWAY_HEAD.nested_types_by_name['PicInfoExt']
+_HIGHWAY_HEAD_PICRSPEXTINFO = _HIGHWAY_HEAD.nested_types_by_name['PicRspExtInfo']
+_HIGHWAY_HEAD_QUERYHOLERSP = _HIGHWAY_HEAD.nested_types_by_name['QueryHoleRsp']
+_HIGHWAY_HEAD_REQDATAHIGHWAYHEAD = _HIGHWAY_HEAD.nested_types_by_name['ReqDataHighwayHead']
+_HIGHWAY_HEAD_RSPBODY = _HIGHWAY_HEAD.nested_types_by_name['RspBody']
+_HIGHWAY_HEAD_RSPDATAHIGHWAYHEAD = _HIGHWAY_HEAD.nested_types_by_name['RspDataHighwayHead']
+_HIGHWAY_HEAD_SEGHEAD = _HIGHWAY_HEAD.nested_types_by_name['SegHead']
+highway_head = _reflection.GeneratedProtocolMessageType('highway_head', (_message.Message,), {
+
+ 'C2CCommonExtendinfo' : _reflection.GeneratedProtocolMessageType('C2CCommonExtendinfo', (_message.Message,), {
+ 'DESCRIPTOR' : _HIGHWAY_HEAD_C2CCOMMONEXTENDINFO,
+ '__module__' : 'highway_head_pb2'
+ # @@protoc_insertion_point(class_scope:highway_head.C2CCommonExtendinfo)
+ })
+ ,
+
+ 'DataHighwayHead' : _reflection.GeneratedProtocolMessageType('DataHighwayHead', (_message.Message,), {
+ 'DESCRIPTOR' : _HIGHWAY_HEAD_DATAHIGHWAYHEAD,
+ '__module__' : 'highway_head_pb2'
+ # @@protoc_insertion_point(class_scope:highway_head.DataHighwayHead)
+ })
+ ,
+
+ 'DataHole' : _reflection.GeneratedProtocolMessageType('DataHole', (_message.Message,), {
+ 'DESCRIPTOR' : _HIGHWAY_HEAD_DATAHOLE,
+ '__module__' : 'highway_head_pb2'
+ # @@protoc_insertion_point(class_scope:highway_head.DataHole)
+ })
+ ,
+
+ 'FilterExtendinfo' : _reflection.GeneratedProtocolMessageType('FilterExtendinfo', (_message.Message,), {
+ 'DESCRIPTOR' : _HIGHWAY_HEAD_FILTEREXTENDINFO,
+ '__module__' : 'highway_head_pb2'
+ # @@protoc_insertion_point(class_scope:highway_head.FilterExtendinfo)
+ })
+ ,
+
+ 'FilterStyle' : _reflection.GeneratedProtocolMessageType('FilterStyle', (_message.Message,), {
+ 'DESCRIPTOR' : _HIGHWAY_HEAD_FILTERSTYLE,
+ '__module__' : 'highway_head_pb2'
+ # @@protoc_insertion_point(class_scope:highway_head.FilterStyle)
+ })
+ ,
+
+ 'ImageFilterRequest' : _reflection.GeneratedProtocolMessageType('ImageFilterRequest', (_message.Message,), {
+ 'DESCRIPTOR' : _HIGHWAY_HEAD_IMAGEFILTERREQUEST,
+ '__module__' : 'highway_head_pb2'
+ # @@protoc_insertion_point(class_scope:highway_head.ImageFilterRequest)
+ })
+ ,
+
+ 'ImageFilterResponse' : _reflection.GeneratedProtocolMessageType('ImageFilterResponse', (_message.Message,), {
+ 'DESCRIPTOR' : _HIGHWAY_HEAD_IMAGEFILTERRESPONSE,
+ '__module__' : 'highway_head_pb2'
+ # @@protoc_insertion_point(class_scope:highway_head.ImageFilterResponse)
+ })
+ ,
+
+ 'LoginSigHead' : _reflection.GeneratedProtocolMessageType('LoginSigHead', (_message.Message,), {
+ 'DESCRIPTOR' : _HIGHWAY_HEAD_LOGINSIGHEAD,
+ '__module__' : 'highway_head_pb2'
+ # @@protoc_insertion_point(class_scope:highway_head.LoginSigHead)
+ })
+ ,
+
+ 'NewServiceTicket' : _reflection.GeneratedProtocolMessageType('NewServiceTicket', (_message.Message,), {
+ 'DESCRIPTOR' : _HIGHWAY_HEAD_NEWSERVICETICKET,
+ '__module__' : 'highway_head_pb2'
+ # @@protoc_insertion_point(class_scope:highway_head.NewServiceTicket)
+ })
+ ,
+
+ 'PicInfoExt' : _reflection.GeneratedProtocolMessageType('PicInfoExt', (_message.Message,), {
+ 'DESCRIPTOR' : _HIGHWAY_HEAD_PICINFOEXT,
+ '__module__' : 'highway_head_pb2'
+ # @@protoc_insertion_point(class_scope:highway_head.PicInfoExt)
+ })
+ ,
+
+ 'PicRspExtInfo' : _reflection.GeneratedProtocolMessageType('PicRspExtInfo', (_message.Message,), {
+ 'DESCRIPTOR' : _HIGHWAY_HEAD_PICRSPEXTINFO,
+ '__module__' : 'highway_head_pb2'
+ # @@protoc_insertion_point(class_scope:highway_head.PicRspExtInfo)
+ })
+ ,
+
+ 'QueryHoleRsp' : _reflection.GeneratedProtocolMessageType('QueryHoleRsp', (_message.Message,), {
+ 'DESCRIPTOR' : _HIGHWAY_HEAD_QUERYHOLERSP,
+ '__module__' : 'highway_head_pb2'
+ # @@protoc_insertion_point(class_scope:highway_head.QueryHoleRsp)
+ })
+ ,
+
+ 'ReqDataHighwayHead' : _reflection.GeneratedProtocolMessageType('ReqDataHighwayHead', (_message.Message,), {
+ 'DESCRIPTOR' : _HIGHWAY_HEAD_REQDATAHIGHWAYHEAD,
+ '__module__' : 'highway_head_pb2'
+ # @@protoc_insertion_point(class_scope:highway_head.ReqDataHighwayHead)
+ })
+ ,
+
+ 'RspBody' : _reflection.GeneratedProtocolMessageType('RspBody', (_message.Message,), {
+ 'DESCRIPTOR' : _HIGHWAY_HEAD_RSPBODY,
+ '__module__' : 'highway_head_pb2'
+ # @@protoc_insertion_point(class_scope:highway_head.RspBody)
+ })
+ ,
+
+ 'RspDataHighwayHead' : _reflection.GeneratedProtocolMessageType('RspDataHighwayHead', (_message.Message,), {
+ 'DESCRIPTOR' : _HIGHWAY_HEAD_RSPDATAHIGHWAYHEAD,
+ '__module__' : 'highway_head_pb2'
+ # @@protoc_insertion_point(class_scope:highway_head.RspDataHighwayHead)
+ })
+ ,
+
+ 'SegHead' : _reflection.GeneratedProtocolMessageType('SegHead', (_message.Message,), {
+ 'DESCRIPTOR' : _HIGHWAY_HEAD_SEGHEAD,
+ '__module__' : 'highway_head_pb2'
+ # @@protoc_insertion_point(class_scope:highway_head.SegHead)
+ })
+ ,
+ 'DESCRIPTOR' : _HIGHWAY_HEAD,
+ '__module__' : 'highway_head_pb2'
+ # @@protoc_insertion_point(class_scope:highway_head)
+ })
+_sym_db.RegisterMessage(highway_head)
+_sym_db.RegisterMessage(highway_head.C2CCommonExtendinfo)
+_sym_db.RegisterMessage(highway_head.DataHighwayHead)
+_sym_db.RegisterMessage(highway_head.DataHole)
+_sym_db.RegisterMessage(highway_head.FilterExtendinfo)
+_sym_db.RegisterMessage(highway_head.FilterStyle)
+_sym_db.RegisterMessage(highway_head.ImageFilterRequest)
+_sym_db.RegisterMessage(highway_head.ImageFilterResponse)
+_sym_db.RegisterMessage(highway_head.LoginSigHead)
+_sym_db.RegisterMessage(highway_head.NewServiceTicket)
+_sym_db.RegisterMessage(highway_head.PicInfoExt)
+_sym_db.RegisterMessage(highway_head.PicRspExtInfo)
+_sym_db.RegisterMessage(highway_head.QueryHoleRsp)
+_sym_db.RegisterMessage(highway_head.ReqDataHighwayHead)
+_sym_db.RegisterMessage(highway_head.RspBody)
+_sym_db.RegisterMessage(highway_head.RspDataHighwayHead)
+_sym_db.RegisterMessage(highway_head.SegHead)
+
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ _HIGHWAY_HEAD._serialized_start=23
+ _HIGHWAY_HEAD._serialized_end=2090
+ _HIGHWAY_HEAD_C2CCOMMONEXTENDINFO._serialized_start=39
+ _HIGHWAY_HEAD_C2CCOMMONEXTENDINFO._serialized_end=134
+ _HIGHWAY_HEAD_DATAHIGHWAYHEAD._serialized_start=137
+ _HIGHWAY_HEAD_DATAHIGHWAYHEAD._serialized_end=337
+ _HIGHWAY_HEAD_DATAHOLE._serialized_start=339
+ _HIGHWAY_HEAD_DATAHOLE._serialized_end=377
+ _HIGHWAY_HEAD_FILTEREXTENDINFO._serialized_start=379
+ _HIGHWAY_HEAD_FILTEREXTENDINFO._serialized_end=479
+ _HIGHWAY_HEAD_FILTERSTYLE._serialized_start=481
+ _HIGHWAY_HEAD_FILTERSTYLE._serialized_end=530
+ _HIGHWAY_HEAD_IMAGEFILTERREQUEST._serialized_start=533
+ _HIGHWAY_HEAD_IMAGEFILTERREQUEST._serialized_end=695
+ _HIGHWAY_HEAD_IMAGEFILTERRESPONSE._serialized_start=697
+ _HIGHWAY_HEAD_IMAGEFILTERRESPONSE._serialized_end=772
+ _HIGHWAY_HEAD_LOGINSIGHEAD._serialized_start=774
+ _HIGHWAY_HEAD_LOGINSIGHEAD._serialized_end=828
+ _HIGHWAY_HEAD_NEWSERVICETICKET._serialized_start=830
+ _HIGHWAY_HEAD_NEWSERVICETICKET._serialized_end=881
+ _HIGHWAY_HEAD_PICINFOEXT._serialized_start=884
+ _HIGHWAY_HEAD_PICINFOEXT._serialized_end=1134
+ _HIGHWAY_HEAD_PICRSPEXTINFO._serialized_start=1136
+ _HIGHWAY_HEAD_PICRSPEXTINFO._serialized_end=1220
+ _HIGHWAY_HEAD_QUERYHOLERSP._serialized_start=1222
+ _HIGHWAY_HEAD_QUERYHOLERSP._serialized_end=1312
+ _HIGHWAY_HEAD_REQDATAHIGHWAYHEAD._serialized_start=1315
+ _HIGHWAY_HEAD_REQDATAHIGHWAYHEAD._serialized_end=1516
+ _HIGHWAY_HEAD_RSPBODY._serialized_start=1518
+ _HIGHWAY_HEAD_RSPBODY._serialized_end=1577
+ _HIGHWAY_HEAD_RSPDATAHIGHWAYHEAD._serialized_start=1580
+ _HIGHWAY_HEAD_RSPDATAHIGHWAYHEAD._serialized_end=1837
+ _HIGHWAY_HEAD_SEGHEAD._serialized_start=1840
+ _HIGHWAY_HEAD_SEGHEAD._serialized_end=2090
+# @@protoc_insertion_point(module_scope)
diff --git a/cai/pb/highway/protocol/highway_head_pb2.pyi b/cai/pb/highway/protocol/highway_head_pb2.pyi
new file mode 100644
index 00000000..fa8e49aa
--- /dev/null
+++ b/cai/pb/highway/protocol/highway_head_pb2.pyi
@@ -0,0 +1,421 @@
+"""
+@generated by mypy-protobuf. Do not edit manually!
+isort:skip_file
+"""
+from builtins import (
+ bool,
+ bytes,
+ int,
+)
+
+from google.protobuf.descriptor import (
+ Descriptor,
+ FileDescriptor,
+)
+
+from google.protobuf.internal.containers import (
+ RepeatedCompositeFieldContainer,
+)
+
+from google.protobuf.message import (
+ Message,
+)
+
+from typing import (
+ Iterable,
+ Optional,
+)
+
+from typing_extensions import (
+ Literal,
+)
+
+
+DESCRIPTOR: FileDescriptor
+
+class highway_head(Message):
+ """origin name: CSDataHighwayHead"""
+ DESCRIPTOR: Descriptor
+ class C2CCommonExtendinfo(Message):
+ DESCRIPTOR: Descriptor
+ INFOID_FIELD_NUMBER: int
+ FILTEREXTENDINFO_FIELD_NUMBER: int
+ infoId: int
+ @property
+ def filterExtendinfo(self) -> highway_head.FilterExtendinfo: ...
+ def __init__(self,
+ *,
+ infoId: Optional[int] = ...,
+ filterExtendinfo: Optional[highway_head.FilterExtendinfo] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["filterExtendinfo",b"filterExtendinfo","infoId",b"infoId"]) -> bool: ...
+ def ClearField(self, field_name: Literal["filterExtendinfo",b"filterExtendinfo","infoId",b"infoId"]) -> None: ...
+
+ class DataHighwayHead(Message):
+ DESCRIPTOR: Descriptor
+ VERSION_FIELD_NUMBER: int
+ UIN_FIELD_NUMBER: int
+ COMMAND_FIELD_NUMBER: int
+ SEQ_FIELD_NUMBER: int
+ RETRYTIMES_FIELD_NUMBER: int
+ APPID_FIELD_NUMBER: int
+ DATAFLAG_FIELD_NUMBER: int
+ COMMANDID_FIELD_NUMBER: int
+ BUILDVER_FIELD_NUMBER: int
+ LOCALEID_FIELD_NUMBER: int
+ ENVID_FIELD_NUMBER: int
+ version: int
+ uin: bytes
+ command: bytes
+ seq: int
+ retryTimes: int
+ appid: int
+ dataflag: int
+ commandId: int
+ buildVer: bytes
+ localeId: int
+ envId: int
+ def __init__(self,
+ *,
+ version: Optional[int] = ...,
+ uin: Optional[bytes] = ...,
+ command: Optional[bytes] = ...,
+ seq: Optional[int] = ...,
+ retryTimes: Optional[int] = ...,
+ appid: Optional[int] = ...,
+ dataflag: Optional[int] = ...,
+ commandId: Optional[int] = ...,
+ buildVer: Optional[bytes] = ...,
+ localeId: Optional[int] = ...,
+ envId: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["appid",b"appid","buildVer",b"buildVer","command",b"command","commandId",b"commandId","dataflag",b"dataflag","envId",b"envId","localeId",b"localeId","retryTimes",b"retryTimes","seq",b"seq","uin",b"uin","version",b"version"]) -> bool: ...
+ def ClearField(self, field_name: Literal["appid",b"appid","buildVer",b"buildVer","command",b"command","commandId",b"commandId","dataflag",b"dataflag","envId",b"envId","localeId",b"localeId","retryTimes",b"retryTimes","seq",b"seq","uin",b"uin","version",b"version"]) -> None: ...
+
+ class DataHole(Message):
+ DESCRIPTOR: Descriptor
+ BEGIN_FIELD_NUMBER: int
+ END_FIELD_NUMBER: int
+ begin: int
+ end: int
+ def __init__(self,
+ *,
+ begin: Optional[int] = ...,
+ end: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["begin",b"begin","end",b"end"]) -> bool: ...
+ def ClearField(self, field_name: Literal["begin",b"begin","end",b"end"]) -> None: ...
+
+ class FilterExtendinfo(Message):
+ DESCRIPTOR: Descriptor
+ FILTERFLAG_FIELD_NUMBER: int
+ IMAGEFILTERREQUEST_FIELD_NUMBER: int
+ filterFlag: int
+ @property
+ def imageFilterRequest(self) -> highway_head.ImageFilterRequest: ...
+ def __init__(self,
+ *,
+ filterFlag: Optional[int] = ...,
+ imageFilterRequest: Optional[highway_head.ImageFilterRequest] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["filterFlag",b"filterFlag","imageFilterRequest",b"imageFilterRequest"]) -> bool: ...
+ def ClearField(self, field_name: Literal["filterFlag",b"filterFlag","imageFilterRequest",b"imageFilterRequest"]) -> None: ...
+
+ class FilterStyle(Message):
+ DESCRIPTOR: Descriptor
+ STYLEID_FIELD_NUMBER: int
+ STYLENAME_FIELD_NUMBER: int
+ styleId: int
+ styleName: bytes
+ def __init__(self,
+ *,
+ styleId: Optional[int] = ...,
+ styleName: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["styleId",b"styleId","styleName",b"styleName"]) -> bool: ...
+ def ClearField(self, field_name: Literal["styleId",b"styleId","styleName",b"styleName"]) -> None: ...
+
+ class ImageFilterRequest(Message):
+ DESCRIPTOR: Descriptor
+ SESSIONID_FIELD_NUMBER: int
+ CLIENTIP_FIELD_NUMBER: int
+ UIN_FIELD_NUMBER: int
+ STYLE_FIELD_NUMBER: int
+ WIDTH_FIELD_NUMBER: int
+ HEIGHT_FIELD_NUMBER: int
+ IMAGEDATA_FIELD_NUMBER: int
+ sessionId: bytes
+ clientIp: int
+ uin: int
+ @property
+ def style(self) -> highway_head.FilterStyle: ...
+ width: int
+ height: int
+ imageData: bytes
+ def __init__(self,
+ *,
+ sessionId: Optional[bytes] = ...,
+ clientIp: Optional[int] = ...,
+ uin: Optional[int] = ...,
+ style: Optional[highway_head.FilterStyle] = ...,
+ width: Optional[int] = ...,
+ height: Optional[int] = ...,
+ imageData: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["clientIp",b"clientIp","height",b"height","imageData",b"imageData","sessionId",b"sessionId","style",b"style","uin",b"uin","width",b"width"]) -> bool: ...
+ def ClearField(self, field_name: Literal["clientIp",b"clientIp","height",b"height","imageData",b"imageData","sessionId",b"sessionId","style",b"style","uin",b"uin","width",b"width"]) -> None: ...
+
+ class ImageFilterResponse(Message):
+ DESCRIPTOR: Descriptor
+ RETCODE_FIELD_NUMBER: int
+ IMAGEDATA_FIELD_NUMBER: int
+ COSTTIME_FIELD_NUMBER: int
+ retCode: int
+ imageData: bytes
+ costTime: int
+ def __init__(self,
+ *,
+ retCode: Optional[int] = ...,
+ imageData: Optional[bytes] = ...,
+ costTime: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["costTime",b"costTime","imageData",b"imageData","retCode",b"retCode"]) -> bool: ...
+ def ClearField(self, field_name: Literal["costTime",b"costTime","imageData",b"imageData","retCode",b"retCode"]) -> None: ...
+
+ class LoginSigHead(Message):
+ DESCRIPTOR: Descriptor
+ LOGINSIGTYPE_FIELD_NUMBER: int
+ LOGINSIG_FIELD_NUMBER: int
+ loginsigType: int
+ loginsig: bytes
+ def __init__(self,
+ *,
+ loginsigType: Optional[int] = ...,
+ loginsig: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["loginsig",b"loginsig","loginsigType",b"loginsigType"]) -> bool: ...
+ def ClearField(self, field_name: Literal["loginsig",b"loginsig","loginsigType",b"loginsigType"]) -> None: ...
+
+ class NewServiceTicket(Message):
+ DESCRIPTOR: Descriptor
+ SIGNATURE_FIELD_NUMBER: int
+ UKEY_FIELD_NUMBER: int
+ signature: bytes
+ ukey: bytes
+ def __init__(self,
+ *,
+ signature: Optional[bytes] = ...,
+ ukey: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["signature",b"signature","ukey",b"ukey"]) -> bool: ...
+ def ClearField(self, field_name: Literal["signature",b"signature","ukey",b"ukey"]) -> None: ...
+
+ class PicInfoExt(Message):
+ DESCRIPTOR: Descriptor
+ PICWIDTH_FIELD_NUMBER: int
+ PICHEIGHT_FIELD_NUMBER: int
+ PICFLAG_FIELD_NUMBER: int
+ BUSITYPE_FIELD_NUMBER: int
+ SRCTERM_FIELD_NUMBER: int
+ PLATTYPE_FIELD_NUMBER: int
+ NETTYPE_FIELD_NUMBER: int
+ IMGTYPE_FIELD_NUMBER: int
+ APPPICTYPE_FIELD_NUMBER: int
+ ECHOCREATEDBYSERVER_FIELD_NUMBER: int
+ QQMEETGUILDID_FIELD_NUMBER: int
+ QQMEETCHANNELID_FIELD_NUMBER: int
+ picWidth: int
+ picHeight: int
+ picFlag: int
+ busiType: int
+ srcTerm: int
+ platType: int
+ netType: int
+ imgType: int
+ appPicType: int
+ echoCreatedByServer: bytes
+ qqmeetGuildId: int
+ qqmeetChannelId: int
+ def __init__(self,
+ *,
+ picWidth: Optional[int] = ...,
+ picHeight: Optional[int] = ...,
+ picFlag: Optional[int] = ...,
+ busiType: Optional[int] = ...,
+ srcTerm: Optional[int] = ...,
+ platType: Optional[int] = ...,
+ netType: Optional[int] = ...,
+ imgType: Optional[int] = ...,
+ appPicType: Optional[int] = ...,
+ echoCreatedByServer: Optional[bytes] = ...,
+ qqmeetGuildId: Optional[int] = ...,
+ qqmeetChannelId: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["appPicType",b"appPicType","busiType",b"busiType","echoCreatedByServer",b"echoCreatedByServer","imgType",b"imgType","netType",b"netType","picFlag",b"picFlag","picHeight",b"picHeight","picWidth",b"picWidth","platType",b"platType","qqmeetChannelId",b"qqmeetChannelId","qqmeetGuildId",b"qqmeetGuildId","srcTerm",b"srcTerm"]) -> bool: ...
+ def ClearField(self, field_name: Literal["appPicType",b"appPicType","busiType",b"busiType","echoCreatedByServer",b"echoCreatedByServer","imgType",b"imgType","netType",b"netType","picFlag",b"picFlag","picHeight",b"picHeight","picWidth",b"picWidth","platType",b"platType","qqmeetChannelId",b"qqmeetChannelId","qqmeetGuildId",b"qqmeetGuildId","srcTerm",b"srcTerm"]) -> None: ...
+
+ class PicRspExtInfo(Message):
+ DESCRIPTOR: Descriptor
+ SKEY_FIELD_NUMBER: int
+ CLIENTIP_FIELD_NUMBER: int
+ UPOFFSET_FIELD_NUMBER: int
+ BLOCKSIZE_FIELD_NUMBER: int
+ skey: bytes
+ clientIp: int
+ upOffset: int
+ blockSize: int
+ def __init__(self,
+ *,
+ skey: Optional[bytes] = ...,
+ clientIp: Optional[int] = ...,
+ upOffset: Optional[int] = ...,
+ blockSize: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["blockSize",b"blockSize","clientIp",b"clientIp","skey",b"skey","upOffset",b"upOffset"]) -> bool: ...
+ def ClearField(self, field_name: Literal["blockSize",b"blockSize","clientIp",b"clientIp","skey",b"skey","upOffset",b"upOffset"]) -> None: ...
+
+ class QueryHoleRsp(Message):
+ DESCRIPTOR: Descriptor
+ RESULT_FIELD_NUMBER: int
+ DATAHOLE_FIELD_NUMBER: int
+ COMPFLAG_FIELD_NUMBER: int
+ result: int
+ @property
+ def dataHole(self) -> RepeatedCompositeFieldContainer[highway_head.DataHole]: ...
+ compFlag: bool
+ def __init__(self,
+ *,
+ result: Optional[int] = ...,
+ dataHole: Optional[Iterable[highway_head.DataHole]] = ...,
+ compFlag: Optional[bool] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["compFlag",b"compFlag","result",b"result"]) -> bool: ...
+ def ClearField(self, field_name: Literal["compFlag",b"compFlag","dataHole",b"dataHole","result",b"result"]) -> None: ...
+
+ class ReqDataHighwayHead(Message):
+ DESCRIPTOR: Descriptor
+ BASEHEAD_FIELD_NUMBER: int
+ SEGHEAD_FIELD_NUMBER: int
+ REQEXTENDINFO_FIELD_NUMBER: int
+ TIMESTAMP_FIELD_NUMBER: int
+ LOGINSIGHEAD_FIELD_NUMBER: int
+ @property
+ def basehead(self) -> highway_head.DataHighwayHead: ...
+ @property
+ def seghead(self) -> highway_head.SegHead: ...
+ reqExtendinfo: bytes
+ timestamp: int
+ @property
+ def loginSigHead(self) -> highway_head.LoginSigHead: ...
+ def __init__(self,
+ *,
+ basehead: Optional[highway_head.DataHighwayHead] = ...,
+ seghead: Optional[highway_head.SegHead] = ...,
+ reqExtendinfo: Optional[bytes] = ...,
+ timestamp: Optional[int] = ...,
+ loginSigHead: Optional[highway_head.LoginSigHead] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["basehead",b"basehead","loginSigHead",b"loginSigHead","reqExtendinfo",b"reqExtendinfo","seghead",b"seghead","timestamp",b"timestamp"]) -> bool: ...
+ def ClearField(self, field_name: Literal["basehead",b"basehead","loginSigHead",b"loginSigHead","reqExtendinfo",b"reqExtendinfo","seghead",b"seghead","timestamp",b"timestamp"]) -> None: ...
+
+ class RspBody(Message):
+ DESCRIPTOR: Descriptor
+ QUERYHOLERSP_FIELD_NUMBER: int
+ @property
+ def queryHoleRsp(self) -> highway_head.QueryHoleRsp: ...
+ def __init__(self,
+ *,
+ queryHoleRsp: Optional[highway_head.QueryHoleRsp] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["queryHoleRsp",b"queryHoleRsp"]) -> bool: ...
+ def ClearField(self, field_name: Literal["queryHoleRsp",b"queryHoleRsp"]) -> None: ...
+
+ class RspDataHighwayHead(Message):
+ DESCRIPTOR: Descriptor
+ BASEHEAD_FIELD_NUMBER: int
+ SEGHEAD_FIELD_NUMBER: int
+ ERRORCODE_FIELD_NUMBER: int
+ ALLOWRETRY_FIELD_NUMBER: int
+ CACHECOST_FIELD_NUMBER: int
+ HTCOST_FIELD_NUMBER: int
+ RSPEXTENDINFO_FIELD_NUMBER: int
+ TIMESTAMP_FIELD_NUMBER: int
+ RANGE_FIELD_NUMBER: int
+ ISRESET_FIELD_NUMBER: int
+ @property
+ def basehead(self) -> highway_head.DataHighwayHead: ...
+ @property
+ def seghead(self) -> highway_head.SegHead: ...
+ errorCode: int
+ allowRetry: int
+ cachecost: int
+ htcost: int
+ rspExtendinfo: bytes
+ timestamp: int
+ range: int
+ isReset: int
+ def __init__(self,
+ *,
+ basehead: Optional[highway_head.DataHighwayHead] = ...,
+ seghead: Optional[highway_head.SegHead] = ...,
+ errorCode: Optional[int] = ...,
+ allowRetry: Optional[int] = ...,
+ cachecost: Optional[int] = ...,
+ htcost: Optional[int] = ...,
+ rspExtendinfo: Optional[bytes] = ...,
+ timestamp: Optional[int] = ...,
+ range: Optional[int] = ...,
+ isReset: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["allowRetry",b"allowRetry","basehead",b"basehead","cachecost",b"cachecost","errorCode",b"errorCode","htcost",b"htcost","isReset",b"isReset","range",b"range","rspExtendinfo",b"rspExtendinfo","seghead",b"seghead","timestamp",b"timestamp"]) -> bool: ...
+ def ClearField(self, field_name: Literal["allowRetry",b"allowRetry","basehead",b"basehead","cachecost",b"cachecost","errorCode",b"errorCode","htcost",b"htcost","isReset",b"isReset","range",b"range","rspExtendinfo",b"rspExtendinfo","seghead",b"seghead","timestamp",b"timestamp"]) -> None: ...
+
+ class SegHead(Message):
+ DESCRIPTOR: Descriptor
+ SERVICEID_FIELD_NUMBER: int
+ FILESIZE_FIELD_NUMBER: int
+ DATAOFFSET_FIELD_NUMBER: int
+ DATALENGTH_FIELD_NUMBER: int
+ RTCODE_FIELD_NUMBER: int
+ SERVICETICKET_FIELD_NUMBER: int
+ FLAG_FIELD_NUMBER: int
+ MD5_FIELD_NUMBER: int
+ FILEMD5_FIELD_NUMBER: int
+ CACHEADDR_FIELD_NUMBER: int
+ QUERYTIMES_FIELD_NUMBER: int
+ UPDATECACHEIP_FIELD_NUMBER: int
+ CACHEPORT_FIELD_NUMBER: int
+ serviceid: int
+ filesize: int
+ dataoffset: int
+ datalength: int
+ rtcode: int
+ serviceticket: bytes
+ flag: int
+ md5: bytes
+ fileMd5: bytes
+ cacheAddr: int
+ queryTimes: int
+ updateCacheip: int
+ cachePort: int
+ def __init__(self,
+ *,
+ serviceid: Optional[int] = ...,
+ filesize: Optional[int] = ...,
+ dataoffset: Optional[int] = ...,
+ datalength: Optional[int] = ...,
+ rtcode: Optional[int] = ...,
+ serviceticket: Optional[bytes] = ...,
+ flag: Optional[int] = ...,
+ md5: Optional[bytes] = ...,
+ fileMd5: Optional[bytes] = ...,
+ cacheAddr: Optional[int] = ...,
+ queryTimes: Optional[int] = ...,
+ updateCacheip: Optional[int] = ...,
+ cachePort: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["cacheAddr",b"cacheAddr","cachePort",b"cachePort","datalength",b"datalength","dataoffset",b"dataoffset","fileMd5",b"fileMd5","filesize",b"filesize","flag",b"flag","md5",b"md5","queryTimes",b"queryTimes","rtcode",b"rtcode","serviceid",b"serviceid","serviceticket",b"serviceticket","updateCacheip",b"updateCacheip"]) -> bool: ...
+ def ClearField(self, field_name: Literal["cacheAddr",b"cacheAddr","cachePort",b"cachePort","datalength",b"datalength","dataoffset",b"dataoffset","fileMd5",b"fileMd5","filesize",b"filesize","flag",b"flag","md5",b"md5","queryTimes",b"queryTimes","rtcode",b"rtcode","serviceid",b"serviceid","serviceticket",b"serviceticket","updateCacheip",b"updateCacheip"]) -> None: ...
+
+ def __init__(self,
+ ) -> None: ...
From 9a824056282ee110a2da927b6c2b34f621920782 Mon Sep 17 00:00:00 2001
From: a1025
Date: Sun, 20 Mar 2022 16:06:27 +0800
Subject: [PATCH 016/113] update: todo
---
cai/api/client.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/cai/api/client.py b/cai/api/client.py
index c5bc9291..2ab50a3c 100644
--- a/cai/api/client.py
+++ b/cai/api/client.py
@@ -51,7 +51,7 @@ def status(self) -> Optional[OnlineStatus]:
async def send_group_msg(self, gid: int, msg: Sequence[Element]):
seq = self.client.next_seq()
-
+ # todo: split long msg
return await self.client.send_and_wait(
seq,
"MessageSvc.PbSendMsg",
From 28def19aee3fcc36afac4e60b1e457c2abb622ac Mon Sep 17 00:00:00 2001
From: a1025
Date: Sun, 20 Mar 2022 17:08:15 +0800
Subject: [PATCH 017/113] add: longmsg.proto
---
cai/pb/highway/longmsg/__init__.py | 0
cai/pb/highway/longmsg/longmsg.proto | 61 +++++++
cai/pb/highway/longmsg/longmsg_pb2.py | 95 ++++++++++
cai/pb/highway/longmsg/longmsg_pb2.pyi | 230 +++++++++++++++++++++++++
4 files changed, 386 insertions(+)
create mode 100644 cai/pb/highway/longmsg/__init__.py
create mode 100644 cai/pb/highway/longmsg/longmsg.proto
create mode 100644 cai/pb/highway/longmsg/longmsg_pb2.py
create mode 100644 cai/pb/highway/longmsg/longmsg_pb2.pyi
diff --git a/cai/pb/highway/longmsg/__init__.py b/cai/pb/highway/longmsg/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/cai/pb/highway/longmsg/longmsg.proto b/cai/pb/highway/longmsg/longmsg.proto
new file mode 100644
index 00000000..6a6de669
--- /dev/null
+++ b/cai/pb/highway/longmsg/longmsg.proto
@@ -0,0 +1,61 @@
+syntax = "proto3";
+
+option go_package = "github.com/Mrs4s/MiraiGo/client/pb/multimsg";
+
+message ExternMsg {
+ int32 channelType = 1;
+}
+message MultiMsgApplyDownReq {
+ bytes msgResid = 1;
+ int32 msgType = 2;
+ int64 srcUin = 3;
+}
+message MultiMsgApplyDownRsp {
+ int32 result = 1;
+ bytes thumbDownPara = 2;
+ bytes msgKey = 3;
+ repeated int32 uint32DownIp = 4;
+ repeated int32 uint32DownPort = 5;
+ bytes msgResid = 6;
+ ExternMsg msgExternInfo = 7;
+ repeated bytes bytesDownIpV6 = 8;
+ repeated int32 uint32DownV6Port = 9;
+}
+message MultiMsgApplyUpReq {
+ int64 dstUin = 1;
+ int64 msgSize = 2;
+ bytes msgMd5 = 3;
+ int32 msgType = 4;
+ int32 applyId = 5;
+}
+message MultiMsgApplyUpRsp {
+ int32 result = 1;
+ string msgResid = 2;
+ bytes msgUkey = 3;
+ repeated int32 uint32UpIp = 4;
+ repeated int32 uint32UpPort = 5;
+ int64 blockSize = 6;
+ int64 upOffset = 7;
+ int32 applyId = 8;
+ bytes msgKey = 9;
+ bytes msgSig = 10;
+ ExternMsg msgExternInfo = 11;
+ repeated bytes bytesUpIpV6 = 12;
+ repeated int32 uint32UpV6Port = 13;
+}
+message MultiReqBody {
+ int32 subcmd = 1;
+ int32 termType = 2;
+ int32 platformType = 3;
+ int32 netType = 4;
+ string buildVer = 5;
+ repeated MultiMsgApplyUpReq multimsgApplyupReq = 6;
+ repeated MultiMsgApplyDownReq multimsgApplydownReq = 7;
+ int32 buType = 8;
+ int32 reqChannelType = 9;
+}
+message MultiRspBody {
+ int32 subcmd = 1;
+ repeated MultiMsgApplyUpRsp multimsgApplyupRsp = 2;
+ repeated MultiMsgApplyDownRsp multimsgApplydownRsp = 3;
+}
diff --git a/cai/pb/highway/longmsg/longmsg_pb2.py b/cai/pb/highway/longmsg/longmsg_pb2.py
new file mode 100644
index 00000000..e3f37fc5
--- /dev/null
+++ b/cai/pb/highway/longmsg/longmsg_pb2.py
@@ -0,0 +1,95 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: longmsg.proto
+"""Generated protocol buffer code."""
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import message as _message
+from google.protobuf import reflection as _reflection
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\rlongmsg.proto\" \n\tExternMsg\x12\x13\n\x0b\x63hannelType\x18\x01 \x01(\x05\"I\n\x14MultiMsgApplyDownReq\x12\x10\n\x08msgResid\x18\x01 \x01(\x0c\x12\x0f\n\x07msgType\x18\x02 \x01(\x05\x12\x0e\n\x06srcUin\x18\x03 \x01(\x03\"\xe1\x01\n\x14MultiMsgApplyDownRsp\x12\x0e\n\x06result\x18\x01 \x01(\x05\x12\x15\n\rthumbDownPara\x18\x02 \x01(\x0c\x12\x0e\n\x06msgKey\x18\x03 \x01(\x0c\x12\x14\n\x0cuint32DownIp\x18\x04 \x03(\x05\x12\x16\n\x0euint32DownPort\x18\x05 \x03(\x05\x12\x10\n\x08msgResid\x18\x06 \x01(\x0c\x12!\n\rmsgExternInfo\x18\x07 \x01(\x0b\x32\n.ExternMsg\x12\x15\n\rbytesDownIpV6\x18\x08 \x03(\x0c\x12\x18\n\x10uint32DownV6Port\x18\t \x03(\x05\"g\n\x12MultiMsgApplyUpReq\x12\x0e\n\x06\x64stUin\x18\x01 \x01(\x03\x12\x0f\n\x07msgSize\x18\x02 \x01(\x03\x12\x0e\n\x06msgMd5\x18\x03 \x01(\x0c\x12\x0f\n\x07msgType\x18\x04 \x01(\x05\x12\x0f\n\x07\x61pplyId\x18\x05 \x01(\x05\"\x97\x02\n\x12MultiMsgApplyUpRsp\x12\x0e\n\x06result\x18\x01 \x01(\x05\x12\x10\n\x08msgResid\x18\x02 \x01(\t\x12\x0f\n\x07msgUkey\x18\x03 \x01(\x0c\x12\x12\n\nuint32UpIp\x18\x04 \x03(\x05\x12\x14\n\x0cuint32UpPort\x18\x05 \x03(\x05\x12\x11\n\tblockSize\x18\x06 \x01(\x03\x12\x10\n\x08upOffset\x18\x07 \x01(\x03\x12\x0f\n\x07\x61pplyId\x18\x08 \x01(\x05\x12\x0e\n\x06msgKey\x18\t \x01(\x0c\x12\x0e\n\x06msgSig\x18\n \x01(\x0c\x12!\n\rmsgExternInfo\x18\x0b \x01(\x0b\x32\n.ExternMsg\x12\x13\n\x0b\x62ytesUpIpV6\x18\x0c \x03(\x0c\x12\x16\n\x0euint32UpV6Port\x18\r \x03(\x05\"\xf7\x01\n\x0cMultiReqBody\x12\x0e\n\x06subcmd\x18\x01 \x01(\x05\x12\x10\n\x08termType\x18\x02 \x01(\x05\x12\x14\n\x0cplatformType\x18\x03 \x01(\x05\x12\x0f\n\x07netType\x18\x04 \x01(\x05\x12\x10\n\x08\x62uildVer\x18\x05 \x01(\t\x12/\n\x12multimsgApplyupReq\x18\x06 \x03(\x0b\x32\x13.MultiMsgApplyUpReq\x12\x33\n\x14multimsgApplydownReq\x18\x07 \x03(\x0b\x32\x15.MultiMsgApplyDownReq\x12\x0e\n\x06\x62uType\x18\x08 \x01(\x05\x12\x16\n\x0ereqChannelType\x18\t \x01(\x05\"\x84\x01\n\x0cMultiRspBody\x12\x0e\n\x06subcmd\x18\x01 \x01(\x05\x12/\n\x12multimsgApplyupRsp\x18\x02 \x03(\x0b\x32\x13.MultiMsgApplyUpRsp\x12\x33\n\x14multimsgApplydownRsp\x18\x03 \x03(\x0b\x32\x15.MultiMsgApplyDownRspB-Z+github.com/Mrs4s/MiraiGo/client/pb/multimsgb\x06proto3')
+
+
+
+_EXTERNMSG = DESCRIPTOR.message_types_by_name['ExternMsg']
+_MULTIMSGAPPLYDOWNREQ = DESCRIPTOR.message_types_by_name['MultiMsgApplyDownReq']
+_MULTIMSGAPPLYDOWNRSP = DESCRIPTOR.message_types_by_name['MultiMsgApplyDownRsp']
+_MULTIMSGAPPLYUPREQ = DESCRIPTOR.message_types_by_name['MultiMsgApplyUpReq']
+_MULTIMSGAPPLYUPRSP = DESCRIPTOR.message_types_by_name['MultiMsgApplyUpRsp']
+_MULTIREQBODY = DESCRIPTOR.message_types_by_name['MultiReqBody']
+_MULTIRSPBODY = DESCRIPTOR.message_types_by_name['MultiRspBody']
+ExternMsg = _reflection.GeneratedProtocolMessageType('ExternMsg', (_message.Message,), {
+ 'DESCRIPTOR' : _EXTERNMSG,
+ '__module__' : 'longmsg_pb2'
+ # @@protoc_insertion_point(class_scope:ExternMsg)
+ })
+_sym_db.RegisterMessage(ExternMsg)
+
+MultiMsgApplyDownReq = _reflection.GeneratedProtocolMessageType('MultiMsgApplyDownReq', (_message.Message,), {
+ 'DESCRIPTOR' : _MULTIMSGAPPLYDOWNREQ,
+ '__module__' : 'longmsg_pb2'
+ # @@protoc_insertion_point(class_scope:MultiMsgApplyDownReq)
+ })
+_sym_db.RegisterMessage(MultiMsgApplyDownReq)
+
+MultiMsgApplyDownRsp = _reflection.GeneratedProtocolMessageType('MultiMsgApplyDownRsp', (_message.Message,), {
+ 'DESCRIPTOR' : _MULTIMSGAPPLYDOWNRSP,
+ '__module__' : 'longmsg_pb2'
+ # @@protoc_insertion_point(class_scope:MultiMsgApplyDownRsp)
+ })
+_sym_db.RegisterMessage(MultiMsgApplyDownRsp)
+
+MultiMsgApplyUpReq = _reflection.GeneratedProtocolMessageType('MultiMsgApplyUpReq', (_message.Message,), {
+ 'DESCRIPTOR' : _MULTIMSGAPPLYUPREQ,
+ '__module__' : 'longmsg_pb2'
+ # @@protoc_insertion_point(class_scope:MultiMsgApplyUpReq)
+ })
+_sym_db.RegisterMessage(MultiMsgApplyUpReq)
+
+MultiMsgApplyUpRsp = _reflection.GeneratedProtocolMessageType('MultiMsgApplyUpRsp', (_message.Message,), {
+ 'DESCRIPTOR' : _MULTIMSGAPPLYUPRSP,
+ '__module__' : 'longmsg_pb2'
+ # @@protoc_insertion_point(class_scope:MultiMsgApplyUpRsp)
+ })
+_sym_db.RegisterMessage(MultiMsgApplyUpRsp)
+
+MultiReqBody = _reflection.GeneratedProtocolMessageType('MultiReqBody', (_message.Message,), {
+ 'DESCRIPTOR' : _MULTIREQBODY,
+ '__module__' : 'longmsg_pb2'
+ # @@protoc_insertion_point(class_scope:MultiReqBody)
+ })
+_sym_db.RegisterMessage(MultiReqBody)
+
+MultiRspBody = _reflection.GeneratedProtocolMessageType('MultiRspBody', (_message.Message,), {
+ 'DESCRIPTOR' : _MULTIRSPBODY,
+ '__module__' : 'longmsg_pb2'
+ # @@protoc_insertion_point(class_scope:MultiRspBody)
+ })
+_sym_db.RegisterMessage(MultiRspBody)
+
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ DESCRIPTOR._serialized_options = b'Z+github.com/Mrs4s/MiraiGo/client/pb/multimsg'
+ _EXTERNMSG._serialized_start=17
+ _EXTERNMSG._serialized_end=49
+ _MULTIMSGAPPLYDOWNREQ._serialized_start=51
+ _MULTIMSGAPPLYDOWNREQ._serialized_end=124
+ _MULTIMSGAPPLYDOWNRSP._serialized_start=127
+ _MULTIMSGAPPLYDOWNRSP._serialized_end=352
+ _MULTIMSGAPPLYUPREQ._serialized_start=354
+ _MULTIMSGAPPLYUPREQ._serialized_end=457
+ _MULTIMSGAPPLYUPRSP._serialized_start=460
+ _MULTIMSGAPPLYUPRSP._serialized_end=739
+ _MULTIREQBODY._serialized_start=742
+ _MULTIREQBODY._serialized_end=989
+ _MULTIRSPBODY._serialized_start=992
+ _MULTIRSPBODY._serialized_end=1124
+# @@protoc_insertion_point(module_scope)
diff --git a/cai/pb/highway/longmsg/longmsg_pb2.pyi b/cai/pb/highway/longmsg/longmsg_pb2.pyi
new file mode 100644
index 00000000..4bdb72de
--- /dev/null
+++ b/cai/pb/highway/longmsg/longmsg_pb2.pyi
@@ -0,0 +1,230 @@
+"""
+@generated by mypy-protobuf. Do not edit manually!
+isort:skip_file
+"""
+from builtins import (
+ bool,
+ bytes,
+ int,
+)
+
+from google.protobuf.descriptor import (
+ Descriptor,
+ FileDescriptor,
+)
+
+from google.protobuf.internal.containers import (
+ RepeatedCompositeFieldContainer,
+ RepeatedScalarFieldContainer,
+)
+
+from google.protobuf.message import (
+ Message,
+)
+
+from typing import (
+ Iterable,
+ Optional,
+ Text,
+)
+
+from typing_extensions import (
+ Literal,
+)
+
+
+DESCRIPTOR: FileDescriptor
+
+class ExternMsg(Message):
+ DESCRIPTOR: Descriptor
+ CHANNELTYPE_FIELD_NUMBER: int
+ channelType: int
+ def __init__(self,
+ *,
+ channelType: int = ...,
+ ) -> None: ...
+ def ClearField(self, field_name: Literal["channelType",b"channelType"]) -> None: ...
+
+class MultiMsgApplyDownReq(Message):
+ DESCRIPTOR: Descriptor
+ MSGRESID_FIELD_NUMBER: int
+ MSGTYPE_FIELD_NUMBER: int
+ SRCUIN_FIELD_NUMBER: int
+ msgResid: bytes
+ msgType: int
+ srcUin: int
+ def __init__(self,
+ *,
+ msgResid: bytes = ...,
+ msgType: int = ...,
+ srcUin: int = ...,
+ ) -> None: ...
+ def ClearField(self, field_name: Literal["msgResid",b"msgResid","msgType",b"msgType","srcUin",b"srcUin"]) -> None: ...
+
+class MultiMsgApplyDownRsp(Message):
+ DESCRIPTOR: Descriptor
+ RESULT_FIELD_NUMBER: int
+ THUMBDOWNPARA_FIELD_NUMBER: int
+ MSGKEY_FIELD_NUMBER: int
+ UINT32DOWNIP_FIELD_NUMBER: int
+ UINT32DOWNPORT_FIELD_NUMBER: int
+ MSGRESID_FIELD_NUMBER: int
+ MSGEXTERNINFO_FIELD_NUMBER: int
+ BYTESDOWNIPV6_FIELD_NUMBER: int
+ UINT32DOWNV6PORT_FIELD_NUMBER: int
+ result: int
+ thumbDownPara: bytes
+ msgKey: bytes
+ @property
+ def uint32DownIp(self) -> RepeatedScalarFieldContainer[int]: ...
+ @property
+ def uint32DownPort(self) -> RepeatedScalarFieldContainer[int]: ...
+ msgResid: bytes
+ @property
+ def msgExternInfo(self) -> ExternMsg: ...
+ @property
+ def bytesDownIpV6(self) -> RepeatedScalarFieldContainer[bytes]: ...
+ @property
+ def uint32DownV6Port(self) -> RepeatedScalarFieldContainer[int]: ...
+ def __init__(self,
+ *,
+ result: int = ...,
+ thumbDownPara: bytes = ...,
+ msgKey: bytes = ...,
+ uint32DownIp: Optional[Iterable[int]] = ...,
+ uint32DownPort: Optional[Iterable[int]] = ...,
+ msgResid: bytes = ...,
+ msgExternInfo: Optional[ExternMsg] = ...,
+ bytesDownIpV6: Optional[Iterable[bytes]] = ...,
+ uint32DownV6Port: Optional[Iterable[int]] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["msgExternInfo",b"msgExternInfo"]) -> bool: ...
+ def ClearField(self, field_name: Literal["bytesDownIpV6",b"bytesDownIpV6","msgExternInfo",b"msgExternInfo","msgKey",b"msgKey","msgResid",b"msgResid","result",b"result","thumbDownPara",b"thumbDownPara","uint32DownIp",b"uint32DownIp","uint32DownPort",b"uint32DownPort","uint32DownV6Port",b"uint32DownV6Port"]) -> None: ...
+
+class MultiMsgApplyUpReq(Message):
+ DESCRIPTOR: Descriptor
+ DSTUIN_FIELD_NUMBER: int
+ MSGSIZE_FIELD_NUMBER: int
+ MSGMD5_FIELD_NUMBER: int
+ MSGTYPE_FIELD_NUMBER: int
+ APPLYID_FIELD_NUMBER: int
+ dstUin: int
+ msgSize: int
+ msgMd5: bytes
+ msgType: int
+ applyId: int
+ def __init__(self,
+ *,
+ dstUin: int = ...,
+ msgSize: int = ...,
+ msgMd5: bytes = ...,
+ msgType: int = ...,
+ applyId: int = ...,
+ ) -> None: ...
+ def ClearField(self, field_name: Literal["applyId",b"applyId","dstUin",b"dstUin","msgMd5",b"msgMd5","msgSize",b"msgSize","msgType",b"msgType"]) -> None: ...
+
+class MultiMsgApplyUpRsp(Message):
+ DESCRIPTOR: Descriptor
+ RESULT_FIELD_NUMBER: int
+ MSGRESID_FIELD_NUMBER: int
+ MSGUKEY_FIELD_NUMBER: int
+ UINT32UPIP_FIELD_NUMBER: int
+ UINT32UPPORT_FIELD_NUMBER: int
+ BLOCKSIZE_FIELD_NUMBER: int
+ UPOFFSET_FIELD_NUMBER: int
+ APPLYID_FIELD_NUMBER: int
+ MSGKEY_FIELD_NUMBER: int
+ MSGSIG_FIELD_NUMBER: int
+ MSGEXTERNINFO_FIELD_NUMBER: int
+ BYTESUPIPV6_FIELD_NUMBER: int
+ UINT32UPV6PORT_FIELD_NUMBER: int
+ result: int
+ msgResid: Text
+ msgUkey: bytes
+ @property
+ def uint32UpIp(self) -> RepeatedScalarFieldContainer[int]: ...
+ @property
+ def uint32UpPort(self) -> RepeatedScalarFieldContainer[int]: ...
+ blockSize: int
+ upOffset: int
+ applyId: int
+ msgKey: bytes
+ msgSig: bytes
+ @property
+ def msgExternInfo(self) -> ExternMsg: ...
+ @property
+ def bytesUpIpV6(self) -> RepeatedScalarFieldContainer[bytes]: ...
+ @property
+ def uint32UpV6Port(self) -> RepeatedScalarFieldContainer[int]: ...
+ def __init__(self,
+ *,
+ result: int = ...,
+ msgResid: Text = ...,
+ msgUkey: bytes = ...,
+ uint32UpIp: Optional[Iterable[int]] = ...,
+ uint32UpPort: Optional[Iterable[int]] = ...,
+ blockSize: int = ...,
+ upOffset: int = ...,
+ applyId: int = ...,
+ msgKey: bytes = ...,
+ msgSig: bytes = ...,
+ msgExternInfo: Optional[ExternMsg] = ...,
+ bytesUpIpV6: Optional[Iterable[bytes]] = ...,
+ uint32UpV6Port: Optional[Iterable[int]] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["msgExternInfo",b"msgExternInfo"]) -> bool: ...
+ def ClearField(self, field_name: Literal["applyId",b"applyId","blockSize",b"blockSize","bytesUpIpV6",b"bytesUpIpV6","msgExternInfo",b"msgExternInfo","msgKey",b"msgKey","msgResid",b"msgResid","msgSig",b"msgSig","msgUkey",b"msgUkey","result",b"result","uint32UpIp",b"uint32UpIp","uint32UpPort",b"uint32UpPort","uint32UpV6Port",b"uint32UpV6Port","upOffset",b"upOffset"]) -> None: ...
+
+class MultiReqBody(Message):
+ DESCRIPTOR: Descriptor
+ SUBCMD_FIELD_NUMBER: int
+ TERMTYPE_FIELD_NUMBER: int
+ PLATFORMTYPE_FIELD_NUMBER: int
+ NETTYPE_FIELD_NUMBER: int
+ BUILDVER_FIELD_NUMBER: int
+ MULTIMSGAPPLYUPREQ_FIELD_NUMBER: int
+ MULTIMSGAPPLYDOWNREQ_FIELD_NUMBER: int
+ BUTYPE_FIELD_NUMBER: int
+ REQCHANNELTYPE_FIELD_NUMBER: int
+ subcmd: int
+ termType: int
+ platformType: int
+ netType: int
+ buildVer: Text
+ @property
+ def multimsgApplyupReq(self) -> RepeatedCompositeFieldContainer[MultiMsgApplyUpReq]: ...
+ @property
+ def multimsgApplydownReq(self) -> RepeatedCompositeFieldContainer[MultiMsgApplyDownReq]: ...
+ buType: int
+ reqChannelType: int
+ def __init__(self,
+ *,
+ subcmd: int = ...,
+ termType: int = ...,
+ platformType: int = ...,
+ netType: int = ...,
+ buildVer: Text = ...,
+ multimsgApplyupReq: Optional[Iterable[MultiMsgApplyUpReq]] = ...,
+ multimsgApplydownReq: Optional[Iterable[MultiMsgApplyDownReq]] = ...,
+ buType: int = ...,
+ reqChannelType: int = ...,
+ ) -> None: ...
+ def ClearField(self, field_name: Literal["buType",b"buType","buildVer",b"buildVer","multimsgApplydownReq",b"multimsgApplydownReq","multimsgApplyupReq",b"multimsgApplyupReq","netType",b"netType","platformType",b"platformType","reqChannelType",b"reqChannelType","subcmd",b"subcmd","termType",b"termType"]) -> None: ...
+
+class MultiRspBody(Message):
+ DESCRIPTOR: Descriptor
+ SUBCMD_FIELD_NUMBER: int
+ MULTIMSGAPPLYUPRSP_FIELD_NUMBER: int
+ MULTIMSGAPPLYDOWNRSP_FIELD_NUMBER: int
+ subcmd: int
+ @property
+ def multimsgApplyupRsp(self) -> RepeatedCompositeFieldContainer[MultiMsgApplyUpRsp]: ...
+ @property
+ def multimsgApplydownRsp(self) -> RepeatedCompositeFieldContainer[MultiMsgApplyDownRsp]: ...
+ def __init__(self,
+ *,
+ subcmd: int = ...,
+ multimsgApplyupRsp: Optional[Iterable[MultiMsgApplyUpRsp]] = ...,
+ multimsgApplydownRsp: Optional[Iterable[MultiMsgApplyDownRsp]] = ...,
+ ) -> None: ...
+ def ClearField(self, field_name: Literal["multimsgApplydownRsp",b"multimsgApplydownRsp","multimsgApplyupRsp",b"multimsgApplyupRsp","subcmd",b"subcmd"]) -> None: ...
From a98a1445a9d88768e2109134a19eed8ea4f632c7 Mon Sep 17 00:00:00 2001
From: a1025
Date: Sun, 20 Mar 2022 17:43:26 +0800
Subject: [PATCH 018/113] add: Client.send_unipkg_and_wait & optimized code
---
cai/api/client.py | 6 +++---
cai/client/message_service/encoders.py | 16 +++++++---------
cai/client/multi_msg/__init__.py | 0
3 files changed, 10 insertions(+), 12 deletions(-)
create mode 100644 cai/client/multi_msg/__init__.py
diff --git a/cai/api/client.py b/cai/api/client.py
index 2ab50a3c..af0f4831 100644
--- a/cai/api/client.py
+++ b/cai/api/client.py
@@ -52,12 +52,12 @@ def status(self) -> Optional[OnlineStatus]:
async def send_group_msg(self, gid: int, msg: Sequence[Element]):
seq = self.client.next_seq()
# todo: split long msg
- return await self.client.send_and_wait(
+ return await self.client.send_unipkg_and_wait(
seq,
"MessageSvc.PbSendMsg",
make_group_msg_pkg(
- seq, gid, self.client, build_msg(msg)
- )
+ seq, gid, build_msg(msg)
+ ).SerializeToString()
)
async def close(self):
diff --git a/cai/client/message_service/encoders.py b/cai/client/message_service/encoders.py
index 07c3b4ba..d65efc86 100644
--- a/cai/client/message_service/encoders.py
+++ b/cai/client/message_service/encoders.py
@@ -7,7 +7,7 @@
from cai.client.packet import UniPacket
from . import models
-
+from ...pb.msf.msg.svc import PbSendMsgReq
if TYPE_CHECKING:
from cai.client.client import Client
@@ -33,21 +33,19 @@ def build_msg(elements: Sequence[models.Element]) -> MsgBody:
def encode_send_group_msg_req(
- seq: int, session_id: bytes, uin: int, group: int, body: MsgBody, head: ContentHead, d2key: bytes
-):
- return UniPacket.build(uin, seq, "MessageSvc.PbSendMsg", session_id, 1, PbSendMsgReq(
+ seq: int, group: int, body: MsgBody, head: ContentHead
+) -> PbSendMsgReq:
+ return PbSendMsgReq(
routing_head=RoutingHead(grp=Grp(group_code=group)),
content_head=head,
body=body,
seq=seq,
rand=random.randrange(3000, 30000),
via=0
- ).SerializeToString(), d2key)
+ )
-def make_group_msg_pkg(seq: int, gid: int, client: "Client", body: MsgBody) -> UniPacket:
+def make_group_msg_pkg(seq: int, gid: int, body: MsgBody) -> PbSendMsgReq:
return encode_send_group_msg_req(
- seq, client._session_id, client.uin,
- gid, body, ContentHead(pkg_num=1, pkg_index=0, div_seq=0),
- client._siginfo.d2key
+ seq, gid, body, ContentHead(pkg_num=1, pkg_index=0, div_seq=0)
)
diff --git a/cai/client/multi_msg/__init__.py b/cai/client/multi_msg/__init__.py
new file mode 100644
index 00000000..e69de29b
From ff083daeee7d4301198b9bf54d2ecd9f63b8a487 Mon Sep 17 00:00:00 2001
From: a1025
Date: Sun, 20 Mar 2022 17:44:04 +0800
Subject: [PATCH 019/113] add: multi_apply_up_pkg handle
---
cai/client/client.py | 13 +++++-
cai/client/highway.py | 64 +++++++++++++++++++++++++++
cai/client/multi_msg/long_msg.py | 41 +++++++++++++++++
cai/pb/highway/longmsg/longmsg.proto | 2 +-
cai/pb/highway/longmsg/longmsg_pb2.py | 2 +-
5 files changed, 119 insertions(+), 3 deletions(-)
create mode 100644 cai/client/highway.py
create mode 100644 cai/client/multi_msg/long_msg.py
diff --git a/cai/client/client.py b/cai/client/client.py
index 5af25328..47590200 100644
--- a/cai/client/client.py
+++ b/cai/client/client.py
@@ -48,7 +48,8 @@
)
from .event import Event
-from .packet import IncomingPacket
+from .multi_msg.long_msg import handle_multi_apply_up_resp
+from .packet import IncomingPacket, UniPacket
from .command import Command, _packet_to_command
from .sso_server import SsoServer, get_sso_server
from .online_push import handle_c2c_sync, handle_push_msg
@@ -132,6 +133,9 @@
"OnlinePush.PbC2CMsgSync": handle_c2c_sync,
"OnlinePush.PbPushC2CMsg": handle_push_msg,
# "OnlinePush.PbPushBindUinGroupMsg": handle_push_msg, # sub account
+
+ # new
+ "MultiMsg.ApplyUp": handle_multi_apply_up_resp
}
@@ -385,6 +389,13 @@ async def send_and_wait(
await self.send(seq, command_name, packet)
return await self._receive_store.fetch(seq, timeout)
+ async def send_unipkg_and_wait(self, seq: int, command_name: str, enc_packet: bytes, timeout=10.0):
+ await self.send_and_wait(
+ seq, command_name,
+ UniPacket.build(self.uin, seq, command_name, self._session_id, 1, enc_packet, self._siginfo.d2key),
+ timeout
+ )
+
async def _handle_incoming_packet(self, in_packet: IncomingPacket) -> None:
try:
handler = HANDLERS.get(in_packet.command_name, _packet_to_command)
diff --git a/cai/client/highway.py b/cai/client/highway.py
new file mode 100644
index 00000000..d1bb18ea
--- /dev/null
+++ b/cai/client/highway.py
@@ -0,0 +1,64 @@
+import asyncio
+from hashlib import md5
+from typing import Tuple, BinaryIO, TYPE_CHECKING
+
+from cai.pb.highway.protocol.highway_head_pb2 import highway_head
+
+if TYPE_CHECKING:
+ from cai.client.client import Client
+
+# https://github.com/Mrs4s/MiraiGo/blob/master/client/internal/highway/highway.go#L79
+
+
+def calc_file_md5(file: BinaryIO, bs=4096) -> str:
+ try:
+ fm = md5()
+ while True:
+ bl = file.read(bs)
+ fm.update(bl)
+ if len(bl) != bs:
+ break
+ return fm.hexdigest()
+ finally:
+ file.seek(0)
+
+
+def create_highway_header(
+ cmd: bytes,
+ flag: int,
+ cmd_id: int,
+ client: "Client",
+ locale=2052
+) -> highway_head.DataHighwayHead:
+ return highway_head.DataHighwayHead(
+ version=1,
+ uin=bytes(str(client.uin)),
+ command=cmd,
+ commandId=cmd_id,
+ seq=client.next_seq(),
+ appid=client.apk_info.app_id,
+ localeId=locale,
+ dataflag=flag
+ )
+
+
+async def upload_file(addr: Tuple[str, int], file: BinaryIO, cmd_id: int, client: Client, *, block_size=65535):
+ fmd5, fl = calc_file_md5(file), len(file.read())
+ file.seek(0)
+ reader, writer = await asyncio.open_connection(*addr)
+ bc = 0
+ while True:
+ bl = file.read(block_size)
+ if not bl:
+ break
+ highway_head.ReqDataHighwayHead(
+ basehead=create_highway_header(b"PicUp.DataUp", 4096, cmd_id, client),
+ seghead=highway_head.SegHead(
+ filesize=fl,
+ dataoffset=bc * block_size,
+ datalength=len(bl),
+ serviceticket=None, #todo: https://github.com/Mrs4s/MiraiGo/blob/38990f6e1cf9ca0785709d03b66237a713338d0b/client/group_msg.go#L216
+
+ )
+ )
+ bc += 1
diff --git a/cai/client/multi_msg/long_msg.py b/cai/client/multi_msg/long_msg.py
new file mode 100644
index 00000000..57df3113
--- /dev/null
+++ b/cai/client/multi_msg/long_msg.py
@@ -0,0 +1,41 @@
+from cai.client import Command
+from cai.pb.highway.longmsg.longmsg_pb2 import MultiReqBody, MultiMsgApplyUpReq, MultiMsgApplyUpRsp
+from typing import TYPE_CHECKING
+
+from dataclasses import dataclass
+
+if TYPE_CHECKING:
+ from cai.client.packet import IncomingPacket
+ from cai.client.client import Client
+
+
+def encode_multi_apply_up_pkg(group_id: int, data_len: int, data_md5: bytes, bu_type: int) -> bytes:
+ return MultiReqBody(
+ subcmd=1,
+ termType=5,
+ platformType=9,
+ netType=3,
+ buildVer="8.2.0.1297", # modify
+ multimsgApplyupReq=[MultiMsgApplyUpReq(
+ dstUin=group_id,
+ msgSize=data_len,
+ msgMd5=data_md5,
+ msgType=3
+ )],
+ buType=bu_type
+ ).SerializeToString()
+
+
+@dataclass
+class MultiApplyUpResp(Command):
+ data: MultiMsgApplyUpRsp
+
+
+async def handle_multi_apply_up_resp(client: "Client", pkg: "IncomingPacket", _device):
+ return MultiApplyUpResp(
+ uin=pkg.uin,
+ seq=pkg.seq,
+ ret_code=pkg.ret_code,
+ command_name=pkg.command_name,
+ data=MultiMsgApplyUpRsp.FromString(pkg.data)
+ )
diff --git a/cai/pb/highway/longmsg/longmsg.proto b/cai/pb/highway/longmsg/longmsg.proto
index 6a6de669..b40e4b9f 100644
--- a/cai/pb/highway/longmsg/longmsg.proto
+++ b/cai/pb/highway/longmsg/longmsg.proto
@@ -1,6 +1,6 @@
syntax = "proto3";
-option go_package = "github.com/Mrs4s/MiraiGo/client/pb/multimsg";
+option go_package = "github.com/Mrs4s/MiraiGo/client/pb/multi_msg";
message ExternMsg {
int32 channelType = 1;
diff --git a/cai/pb/highway/longmsg/longmsg_pb2.py b/cai/pb/highway/longmsg/longmsg_pb2.py
index e3f37fc5..e8b3a316 100644
--- a/cai/pb/highway/longmsg/longmsg_pb2.py
+++ b/cai/pb/highway/longmsg/longmsg_pb2.py
@@ -77,7 +77,7 @@
if _descriptor._USE_C_DESCRIPTORS == False:
DESCRIPTOR._options = None
- DESCRIPTOR._serialized_options = b'Z+github.com/Mrs4s/MiraiGo/client/pb/multimsg'
+ DESCRIPTOR._serialized_options = b'Z+github.com/Mrs4s/MiraiGo/client/pb/multi_msg'
_EXTERNMSG._serialized_start=17
_EXTERNMSG._serialized_end=49
_MULTIMSGAPPLYDOWNREQ._serialized_start=51
From aa06c4ef1c6d0364cb31fec6a24407d3a5dfe3b9 Mon Sep 17 00:00:00 2001
From: a1025
Date: Sun, 20 Mar 2022 18:10:20 +0800
Subject: [PATCH 020/113] add: GroupIdConverter
---
cai/utils/gcode.py | 38 ++++++++++++++++++++++++++++++++++++++
1 file changed, 38 insertions(+)
create mode 100644 cai/utils/gcode.py
diff --git a/cai/utils/gcode.py b/cai/utils/gcode.py
new file mode 100644
index 00000000..688d9a92
--- /dev/null
+++ b/cai/utils/gcode.py
@@ -0,0 +1,38 @@
+class GroupIdConvertor:
+ @staticmethod
+ def to_group_code(group_id: int) -> int:
+ left = group_id / 1000000
+ if 0 + 202 <= left <= 10 + 202:
+ left -= 202
+ elif 11 + 480 - 11 <= left <= 19 + 480 - 11:
+ left -= 480 - 11
+ elif 20 + 2100 - 20 <= left <= 66 + 2100 - 20:
+ left -= 2100 - 20
+ elif 67 + 2010 - 67 <= left <= 156 + 2010 - 67:
+ left -= 2010 - 67
+ elif 157 + 2147 - 157 <= left <= 209 + 2147 - 157:
+ left -= 2147 - 157
+ elif 210 + 4100 - 210 <= left <= 309 + 4100 - 210:
+ left -= 4100 - 210
+ elif 310 + 3800 - 310 <= left <= 499 + 3800 - 310:
+ left -= 3800 - 310
+ return int(left * 1000000 + group_id % 1000000)
+
+ @staticmethod
+ def to_group_uin(group_code: int) -> int:
+ left = group_code / 1000000
+ if 0 <= left <= 10:
+ left += 202
+ elif 11 <= left <= 19:
+ left += 480 - 11
+ elif 20 <= left <= 66:
+ left += 2100 - 20
+ elif 67 <= left <= 156:
+ left += 2010 - 67
+ elif 157 <= left <= 209:
+ left += 2147 - 157
+ elif 210 <= left <= 309:
+ left += 4100 - 210
+ elif 310 <= left <= 499:
+ left += 3800 - 310
+ return int(left * 1000000 + group_code % 1000000)
From b7b376834d10be8aaa813f8ae03b469de70c4e06 Mon Sep 17 00:00:00 2001
From: a1025
Date: Sun, 20 Mar 2022 18:10:36 +0800
Subject: [PATCH 021/113] fix: some bugs
---
cai/client/client.py | 4 ++--
cai/client/multi_msg/long_msg.py | 30 ++++++++++++++++++++++--------
2 files changed, 24 insertions(+), 10 deletions(-)
diff --git a/cai/client/client.py b/cai/client/client.py
index 47590200..572beeb1 100644
--- a/cai/client/client.py
+++ b/cai/client/client.py
@@ -48,7 +48,7 @@
)
from .event import Event
-from .multi_msg.long_msg import handle_multi_apply_up_resp
+from .multi_msg.long_msg import handle_multi_resp_body
from .packet import IncomingPacket, UniPacket
from .command import Command, _packet_to_command
from .sso_server import SsoServer, get_sso_server
@@ -135,7 +135,7 @@
# "OnlinePush.PbPushBindUinGroupMsg": handle_push_msg, # sub account
# new
- "MultiMsg.ApplyUp": handle_multi_apply_up_resp
+ "MultiMsg.ApplyUp": handle_multi_resp_body
}
diff --git a/cai/client/multi_msg/long_msg.py b/cai/client/multi_msg/long_msg.py
index 57df3113..67025bfd 100644
--- a/cai/client/multi_msg/long_msg.py
+++ b/cai/client/multi_msg/long_msg.py
@@ -1,5 +1,5 @@
from cai.client import Command
-from cai.pb.highway.longmsg.longmsg_pb2 import MultiReqBody, MultiMsgApplyUpReq, MultiMsgApplyUpRsp
+from cai.pb.highway.longmsg.longmsg_pb2 import MultiReqBody, MultiMsgApplyUpReq, MultiMsgApplyUpRsp, MultiRspBody
from typing import TYPE_CHECKING
from dataclasses import dataclass
@@ -9,7 +9,7 @@
from cai.client.client import Client
-def encode_multi_apply_up_pkg(group_id: int, data_len: int, data_md5: bytes, bu_type: int) -> bytes:
+def _encode_multi_req_body(group_id: int, data_len: int, data_md5: bytes, bu_type: int) -> MultiReqBody:
return MultiReqBody(
subcmd=1,
termType=5,
@@ -23,19 +23,33 @@ def encode_multi_apply_up_pkg(group_id: int, data_len: int, data_md5: bytes, bu_
msgType=3
)],
buType=bu_type
- ).SerializeToString()
+ )
@dataclass
-class MultiApplyUpResp(Command):
- data: MultiMsgApplyUpRsp
+class MultiApplyResp(Command):
+ data: MultiRspBody
+
+
+async def build_multi_apply_up_pkg(client: "Client", group_id: int, data_len: int, data_md5: bytes, bu_type: int):
+ body: MultiApplyResp = await client.send_unipkg_and_wait(
+ client.next_seq(),
+ "MultiMsg.ApplyUp",
+ _encode_multi_req_body(
+ group_id, data_len, data_md5, bu_type
+ ).SerializeToString()
+ )
+
+
+
+
-async def handle_multi_apply_up_resp(client: "Client", pkg: "IncomingPacket", _device):
- return MultiApplyUpResp(
+async def handle_multi_resp_body(client: "Client", pkg: "IncomingPacket", _device) -> MultiApplyResp:
+ return MultiApplyResp(
uin=pkg.uin,
seq=pkg.seq,
ret_code=pkg.ret_code,
command_name=pkg.command_name,
- data=MultiMsgApplyUpRsp.FromString(pkg.data)
+ data=MultiRspBody.FromString(pkg.data)
)
From 46c42c50e7115e085d36975eb70c15390b30b941 Mon Sep 17 00:00:00 2001
From: a1025
Date: Mon, 21 Mar 2022 01:19:19 +0800
Subject: [PATCH 022/113] fix: some bugs
---
cai/client/client.py | 4 +-
cai/client/multi_msg/long_msg.py | 25 ++-
.../highway/{longmsg => long_msg}/__init__.py | 0
cai/pb/highway/long_msg/long_msg.proto | 52 +++++
cai/pb/highway/long_msg/long_msg_pb2.py | 105 ++++++++++
cai/pb/highway/long_msg/long_msg_pb2.pyi | 191 ++++++++++++++++++
cai/pb/highway/longmsg/longmsg_pb2.py | 95 ---------
cai/pb/highway/multi_msg/__init__.py | 0
.../multi_msg.proto} | 0
cai/pb/highway/multi_msg/multi_msg_pb2.py | 95 +++++++++
.../multi_msg_pb2.pyi} | 0
11 files changed, 465 insertions(+), 102 deletions(-)
rename cai/pb/highway/{longmsg => long_msg}/__init__.py (100%)
create mode 100644 cai/pb/highway/long_msg/long_msg.proto
create mode 100644 cai/pb/highway/long_msg/long_msg_pb2.py
create mode 100644 cai/pb/highway/long_msg/long_msg_pb2.pyi
delete mode 100644 cai/pb/highway/longmsg/longmsg_pb2.py
create mode 100644 cai/pb/highway/multi_msg/__init__.py
rename cai/pb/highway/{longmsg/longmsg.proto => multi_msg/multi_msg.proto} (100%)
create mode 100644 cai/pb/highway/multi_msg/multi_msg_pb2.py
rename cai/pb/highway/{longmsg/longmsg_pb2.pyi => multi_msg/multi_msg_pb2.pyi} (100%)
diff --git a/cai/client/client.py b/cai/client/client.py
index 572beeb1..2aeeda14 100644
--- a/cai/client/client.py
+++ b/cai/client/client.py
@@ -48,7 +48,7 @@
)
from .event import Event
-from .multi_msg.long_msg import handle_multi_resp_body
+from .multi_msg.long_msg import _handle_multi_resp_body
from .packet import IncomingPacket, UniPacket
from .command import Command, _packet_to_command
from .sso_server import SsoServer, get_sso_server
@@ -135,7 +135,7 @@
# "OnlinePush.PbPushBindUinGroupMsg": handle_push_msg, # sub account
# new
- "MultiMsg.ApplyUp": handle_multi_resp_body
+ "MultiMsg.ApplyUp": _handle_multi_resp_body
}
diff --git a/cai/client/multi_msg/long_msg.py b/cai/client/multi_msg/long_msg.py
index 67025bfd..5fc2fca2 100644
--- a/cai/client/multi_msg/long_msg.py
+++ b/cai/client/multi_msg/long_msg.py
@@ -1,5 +1,6 @@
from cai.client import Command
-from cai.pb.highway.longmsg.longmsg_pb2 import MultiReqBody, MultiMsgApplyUpReq, MultiMsgApplyUpRsp, MultiRspBody
+from cai.pb.highway.multi_msg.multi_msg_pb2 import MultiReqBody, MultiMsgApplyUpReq, MultiMsgApplyUpRsp, MultiRspBody
+from cai.pb.highway.long_msg.long_msg_pb2 import LongReqBody, LongMsgUpReq
from typing import TYPE_CHECKING
from dataclasses import dataclass
@@ -28,7 +29,7 @@ def _encode_multi_req_body(group_id: int, data_len: int, data_md5: bytes, bu_typ
@dataclass
class MultiApplyResp(Command):
- data: MultiRspBody
+ data: MultiMsgApplyUpRsp
async def build_multi_apply_up_pkg(client: "Client", group_id: int, data_len: int, data_md5: bytes, bu_type: int):
@@ -39,17 +40,31 @@ async def build_multi_apply_up_pkg(client: "Client", group_id: int, data_len: in
group_id, data_len, data_md5, bu_type
).SerializeToString()
)
-
+ LongReqBody(
+ subcmd=1,
+ termType=5,
+ platformType=9,
+ msgUpReq=[LongMsgUpReq(
+ msgType=3,
+ dstUin=client.uin,
+ msgContent=bytes(), # todo:
+ storeType=2,
+ msgUkey=body.data.msgUkey
+ )]
+ )
-async def handle_multi_resp_body(client: "Client", pkg: "IncomingPacket", _device) -> MultiApplyResp:
+async def _handle_multi_resp_body(client: "Client", pkg: "IncomingPacket", _device) -> MultiApplyResp:
+ mrb = MultiRspBody.FromString(pkg.data).multimsgApplyupRsp
+ if not mrb:
+ raise ConnectionError("no MultiMsgApplyUpRsp Found")
return MultiApplyResp(
uin=pkg.uin,
seq=pkg.seq,
ret_code=pkg.ret_code,
command_name=pkg.command_name,
- data=MultiRspBody.FromString(pkg.data)
+ data=mrb[0]
)
diff --git a/cai/pb/highway/longmsg/__init__.py b/cai/pb/highway/long_msg/__init__.py
similarity index 100%
rename from cai/pb/highway/longmsg/__init__.py
rename to cai/pb/highway/long_msg/__init__.py
diff --git a/cai/pb/highway/long_msg/long_msg.proto b/cai/pb/highway/long_msg/long_msg.proto
new file mode 100644
index 00000000..ade6631a
--- /dev/null
+++ b/cai/pb/highway/long_msg/long_msg.proto
@@ -0,0 +1,52 @@
+syntax = "proto3";
+
+option go_package = "github.com/Mrs4s/MiraiGo/client/pb/longmsg";
+
+message LongMsgDeleteReq {
+ bytes msgResid = 1;
+ int32 msgType = 2;
+}
+message LongMsgDeleteRsp {
+ int32 result = 1;
+ bytes msgResid = 2;
+}
+message LongMsgDownReq {
+ int32 srcUin = 1;
+ bytes msgResid = 2;
+ int32 msgType = 3;
+ int32 needCache = 4;
+}
+message LongMsgDownRsp {
+ int32 result = 1;
+ bytes msgResid = 2;
+ bytes msgContent = 3;
+}
+message LongMsgUpReq {
+ int32 msgType = 1;
+ int64 dstUin = 2;
+ int32 msgId = 3;
+ bytes msgContent = 4;
+ int32 storeType = 5;
+ bytes msgUkey = 6;
+ int32 needCache = 7;
+}
+message LongMsgUpRsp {
+ int32 result = 1;
+ int32 msgId = 2;
+ bytes msgResid = 3;
+}
+message LongReqBody {
+ int32 subcmd = 1;
+ int32 termType = 2;
+ int32 platformType = 3;
+ repeated LongMsgUpReq msgUpReq = 4;
+ repeated LongMsgDownReq msgDownReq = 5;
+ repeated LongMsgDeleteReq msgDelReq = 6;
+ int32 agentType = 10;
+}
+message LongRspBody {
+ int32 subcmd = 1;
+ repeated LongMsgUpRsp msgUpRsp = 2;
+ repeated LongMsgDownRsp msgDownRsp = 3;
+ repeated LongMsgDeleteRsp msgDelRsp = 4;
+}
diff --git a/cai/pb/highway/long_msg/long_msg_pb2.py b/cai/pb/highway/long_msg/long_msg_pb2.py
new file mode 100644
index 00000000..aac6da9d
--- /dev/null
+++ b/cai/pb/highway/long_msg/long_msg_pb2.py
@@ -0,0 +1,105 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: long_msg.proto
+"""Generated protocol buffer code."""
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import message as _message
+from google.protobuf import reflection as _reflection
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0elong_msg.proto\"5\n\x10LongMsgDeleteReq\x12\x10\n\x08msgResid\x18\x01 \x01(\x0c\x12\x0f\n\x07msgType\x18\x02 \x01(\x05\"4\n\x10LongMsgDeleteRsp\x12\x0e\n\x06result\x18\x01 \x01(\x05\x12\x10\n\x08msgResid\x18\x02 \x01(\x0c\"V\n\x0eLongMsgDownReq\x12\x0e\n\x06srcUin\x18\x01 \x01(\x05\x12\x10\n\x08msgResid\x18\x02 \x01(\x0c\x12\x0f\n\x07msgType\x18\x03 \x01(\x05\x12\x11\n\tneedCache\x18\x04 \x01(\x05\"F\n\x0eLongMsgDownRsp\x12\x0e\n\x06result\x18\x01 \x01(\x05\x12\x10\n\x08msgResid\x18\x02 \x01(\x0c\x12\x12\n\nmsgContent\x18\x03 \x01(\x0c\"\x89\x01\n\x0cLongMsgUpReq\x12\x0f\n\x07msgType\x18\x01 \x01(\x05\x12\x0e\n\x06\x64stUin\x18\x02 \x01(\x03\x12\r\n\x05msgId\x18\x03 \x01(\x05\x12\x12\n\nmsgContent\x18\x04 \x01(\x0c\x12\x11\n\tstoreType\x18\x05 \x01(\x05\x12\x0f\n\x07msgUkey\x18\x06 \x01(\x0c\x12\x11\n\tneedCache\x18\x07 \x01(\x05\"?\n\x0cLongMsgUpRsp\x12\x0e\n\x06result\x18\x01 \x01(\x05\x12\r\n\x05msgId\x18\x02 \x01(\x05\x12\x10\n\x08msgResid\x18\x03 \x01(\x0c\"\xc4\x01\n\x0bLongReqBody\x12\x0e\n\x06subcmd\x18\x01 \x01(\x05\x12\x10\n\x08termType\x18\x02 \x01(\x05\x12\x14\n\x0cplatformType\x18\x03 \x01(\x05\x12\x1f\n\x08msgUpReq\x18\x04 \x03(\x0b\x32\r.LongMsgUpReq\x12#\n\nmsgDownReq\x18\x05 \x03(\x0b\x32\x0f.LongMsgDownReq\x12$\n\tmsgDelReq\x18\x06 \x03(\x0b\x32\x11.LongMsgDeleteReq\x12\x11\n\tagentType\x18\n \x01(\x05\"\x89\x01\n\x0bLongRspBody\x12\x0e\n\x06subcmd\x18\x01 \x01(\x05\x12\x1f\n\x08msgUpRsp\x18\x02 \x03(\x0b\x32\r.LongMsgUpRsp\x12#\n\nmsgDownRsp\x18\x03 \x03(\x0b\x32\x0f.LongMsgDownRsp\x12$\n\tmsgDelRsp\x18\x04 \x03(\x0b\x32\x11.LongMsgDeleteRspB,Z*github.com/Mrs4s/MiraiGo/client/pb/longmsgb\x06proto3')
+
+
+
+_LONGMSGDELETEREQ = DESCRIPTOR.message_types_by_name['LongMsgDeleteReq']
+_LONGMSGDELETERSP = DESCRIPTOR.message_types_by_name['LongMsgDeleteRsp']
+_LONGMSGDOWNREQ = DESCRIPTOR.message_types_by_name['LongMsgDownReq']
+_LONGMSGDOWNRSP = DESCRIPTOR.message_types_by_name['LongMsgDownRsp']
+_LONGMSGUPREQ = DESCRIPTOR.message_types_by_name['LongMsgUpReq']
+_LONGMSGUPRSP = DESCRIPTOR.message_types_by_name['LongMsgUpRsp']
+_LONGREQBODY = DESCRIPTOR.message_types_by_name['LongReqBody']
+_LONGRSPBODY = DESCRIPTOR.message_types_by_name['LongRspBody']
+LongMsgDeleteReq = _reflection.GeneratedProtocolMessageType('LongMsgDeleteReq', (_message.Message,), {
+ 'DESCRIPTOR' : _LONGMSGDELETEREQ,
+ '__module__' : 'long_msg_pb2'
+ # @@protoc_insertion_point(class_scope:LongMsgDeleteReq)
+ })
+_sym_db.RegisterMessage(LongMsgDeleteReq)
+
+LongMsgDeleteRsp = _reflection.GeneratedProtocolMessageType('LongMsgDeleteRsp', (_message.Message,), {
+ 'DESCRIPTOR' : _LONGMSGDELETERSP,
+ '__module__' : 'long_msg_pb2'
+ # @@protoc_insertion_point(class_scope:LongMsgDeleteRsp)
+ })
+_sym_db.RegisterMessage(LongMsgDeleteRsp)
+
+LongMsgDownReq = _reflection.GeneratedProtocolMessageType('LongMsgDownReq', (_message.Message,), {
+ 'DESCRIPTOR' : _LONGMSGDOWNREQ,
+ '__module__' : 'long_msg_pb2'
+ # @@protoc_insertion_point(class_scope:LongMsgDownReq)
+ })
+_sym_db.RegisterMessage(LongMsgDownReq)
+
+LongMsgDownRsp = _reflection.GeneratedProtocolMessageType('LongMsgDownRsp', (_message.Message,), {
+ 'DESCRIPTOR' : _LONGMSGDOWNRSP,
+ '__module__' : 'long_msg_pb2'
+ # @@protoc_insertion_point(class_scope:LongMsgDownRsp)
+ })
+_sym_db.RegisterMessage(LongMsgDownRsp)
+
+LongMsgUpReq = _reflection.GeneratedProtocolMessageType('LongMsgUpReq', (_message.Message,), {
+ 'DESCRIPTOR' : _LONGMSGUPREQ,
+ '__module__' : 'long_msg_pb2'
+ # @@protoc_insertion_point(class_scope:LongMsgUpReq)
+ })
+_sym_db.RegisterMessage(LongMsgUpReq)
+
+LongMsgUpRsp = _reflection.GeneratedProtocolMessageType('LongMsgUpRsp', (_message.Message,), {
+ 'DESCRIPTOR' : _LONGMSGUPRSP,
+ '__module__' : 'long_msg_pb2'
+ # @@protoc_insertion_point(class_scope:LongMsgUpRsp)
+ })
+_sym_db.RegisterMessage(LongMsgUpRsp)
+
+LongReqBody = _reflection.GeneratedProtocolMessageType('LongReqBody', (_message.Message,), {
+ 'DESCRIPTOR' : _LONGREQBODY,
+ '__module__' : 'long_msg_pb2'
+ # @@protoc_insertion_point(class_scope:LongReqBody)
+ })
+_sym_db.RegisterMessage(LongReqBody)
+
+LongRspBody = _reflection.GeneratedProtocolMessageType('LongRspBody', (_message.Message,), {
+ 'DESCRIPTOR' : _LONGRSPBODY,
+ '__module__' : 'long_msg_pb2'
+ # @@protoc_insertion_point(class_scope:LongRspBody)
+ })
+_sym_db.RegisterMessage(LongRspBody)
+
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ DESCRIPTOR._serialized_options = b'Z*github.com/Mrs4s/MiraiGo/client/pb/longmsg'
+ _LONGMSGDELETEREQ._serialized_start=18
+ _LONGMSGDELETEREQ._serialized_end=71
+ _LONGMSGDELETERSP._serialized_start=73
+ _LONGMSGDELETERSP._serialized_end=125
+ _LONGMSGDOWNREQ._serialized_start=127
+ _LONGMSGDOWNREQ._serialized_end=213
+ _LONGMSGDOWNRSP._serialized_start=215
+ _LONGMSGDOWNRSP._serialized_end=285
+ _LONGMSGUPREQ._serialized_start=288
+ _LONGMSGUPREQ._serialized_end=425
+ _LONGMSGUPRSP._serialized_start=427
+ _LONGMSGUPRSP._serialized_end=490
+ _LONGREQBODY._serialized_start=493
+ _LONGREQBODY._serialized_end=689
+ _LONGRSPBODY._serialized_start=692
+ _LONGRSPBODY._serialized_end=829
+# @@protoc_insertion_point(module_scope)
diff --git a/cai/pb/highway/long_msg/long_msg_pb2.pyi b/cai/pb/highway/long_msg/long_msg_pb2.pyi
new file mode 100644
index 00000000..8346339e
--- /dev/null
+++ b/cai/pb/highway/long_msg/long_msg_pb2.pyi
@@ -0,0 +1,191 @@
+"""
+@generated by mypy-protobuf. Do not edit manually!
+isort:skip_file
+"""
+from builtins import (
+ bytes,
+ int,
+)
+
+from google.protobuf.descriptor import (
+ Descriptor,
+ FileDescriptor,
+)
+
+from google.protobuf.internal.containers import (
+ RepeatedCompositeFieldContainer,
+)
+
+from google.protobuf.message import (
+ Message,
+)
+
+from typing import (
+ Iterable,
+ Optional,
+)
+
+from typing_extensions import (
+ Literal,
+)
+
+
+DESCRIPTOR: FileDescriptor
+
+class LongMsgDeleteReq(Message):
+ DESCRIPTOR: Descriptor
+ MSGRESID_FIELD_NUMBER: int
+ MSGTYPE_FIELD_NUMBER: int
+ msgResid: bytes
+ msgType: int
+ def __init__(self,
+ *,
+ msgResid: bytes = ...,
+ msgType: int = ...,
+ ) -> None: ...
+ def ClearField(self, field_name: Literal["msgResid",b"msgResid","msgType",b"msgType"]) -> None: ...
+
+class LongMsgDeleteRsp(Message):
+ DESCRIPTOR: Descriptor
+ RESULT_FIELD_NUMBER: int
+ MSGRESID_FIELD_NUMBER: int
+ result: int
+ msgResid: bytes
+ def __init__(self,
+ *,
+ result: int = ...,
+ msgResid: bytes = ...,
+ ) -> None: ...
+ def ClearField(self, field_name: Literal["msgResid",b"msgResid","result",b"result"]) -> None: ...
+
+class LongMsgDownReq(Message):
+ DESCRIPTOR: Descriptor
+ SRCUIN_FIELD_NUMBER: int
+ MSGRESID_FIELD_NUMBER: int
+ MSGTYPE_FIELD_NUMBER: int
+ NEEDCACHE_FIELD_NUMBER: int
+ srcUin: int
+ msgResid: bytes
+ msgType: int
+ needCache: int
+ def __init__(self,
+ *,
+ srcUin: int = ...,
+ msgResid: bytes = ...,
+ msgType: int = ...,
+ needCache: int = ...,
+ ) -> None: ...
+ def ClearField(self, field_name: Literal["msgResid",b"msgResid","msgType",b"msgType","needCache",b"needCache","srcUin",b"srcUin"]) -> None: ...
+
+class LongMsgDownRsp(Message):
+ DESCRIPTOR: Descriptor
+ RESULT_FIELD_NUMBER: int
+ MSGRESID_FIELD_NUMBER: int
+ MSGCONTENT_FIELD_NUMBER: int
+ result: int
+ msgResid: bytes
+ msgContent: bytes
+ def __init__(self,
+ *,
+ result: int = ...,
+ msgResid: bytes = ...,
+ msgContent: bytes = ...,
+ ) -> None: ...
+ def ClearField(self, field_name: Literal["msgContent",b"msgContent","msgResid",b"msgResid","result",b"result"]) -> None: ...
+
+class LongMsgUpReq(Message):
+ DESCRIPTOR: Descriptor
+ MSGTYPE_FIELD_NUMBER: int
+ DSTUIN_FIELD_NUMBER: int
+ MSGID_FIELD_NUMBER: int
+ MSGCONTENT_FIELD_NUMBER: int
+ STORETYPE_FIELD_NUMBER: int
+ MSGUKEY_FIELD_NUMBER: int
+ NEEDCACHE_FIELD_NUMBER: int
+ msgType: int
+ dstUin: int
+ msgId: int
+ msgContent: bytes
+ storeType: int
+ msgUkey: bytes
+ needCache: int
+ def __init__(self,
+ *,
+ msgType: int = ...,
+ dstUin: int = ...,
+ msgId: int = ...,
+ msgContent: bytes = ...,
+ storeType: int = ...,
+ msgUkey: bytes = ...,
+ needCache: int = ...,
+ ) -> None: ...
+ def ClearField(self, field_name: Literal["dstUin",b"dstUin","msgContent",b"msgContent","msgId",b"msgId","msgType",b"msgType","msgUkey",b"msgUkey","needCache",b"needCache","storeType",b"storeType"]) -> None: ...
+
+class LongMsgUpRsp(Message):
+ DESCRIPTOR: Descriptor
+ RESULT_FIELD_NUMBER: int
+ MSGID_FIELD_NUMBER: int
+ MSGRESID_FIELD_NUMBER: int
+ result: int
+ msgId: int
+ msgResid: bytes
+ def __init__(self,
+ *,
+ result: int = ...,
+ msgId: int = ...,
+ msgResid: bytes = ...,
+ ) -> None: ...
+ def ClearField(self, field_name: Literal["msgId",b"msgId","msgResid",b"msgResid","result",b"result"]) -> None: ...
+
+class LongReqBody(Message):
+ DESCRIPTOR: Descriptor
+ SUBCMD_FIELD_NUMBER: int
+ TERMTYPE_FIELD_NUMBER: int
+ PLATFORMTYPE_FIELD_NUMBER: int
+ MSGUPREQ_FIELD_NUMBER: int
+ MSGDOWNREQ_FIELD_NUMBER: int
+ MSGDELREQ_FIELD_NUMBER: int
+ AGENTTYPE_FIELD_NUMBER: int
+ subcmd: int
+ termType: int
+ platformType: int
+ @property
+ def msgUpReq(self) -> RepeatedCompositeFieldContainer[LongMsgUpReq]: ...
+ @property
+ def msgDownReq(self) -> RepeatedCompositeFieldContainer[LongMsgDownReq]: ...
+ @property
+ def msgDelReq(self) -> RepeatedCompositeFieldContainer[LongMsgDeleteReq]: ...
+ agentType: int
+ def __init__(self,
+ *,
+ subcmd: int = ...,
+ termType: int = ...,
+ platformType: int = ...,
+ msgUpReq: Optional[Iterable[LongMsgUpReq]] = ...,
+ msgDownReq: Optional[Iterable[LongMsgDownReq]] = ...,
+ msgDelReq: Optional[Iterable[LongMsgDeleteReq]] = ...,
+ agentType: int = ...,
+ ) -> None: ...
+ def ClearField(self, field_name: Literal["agentType",b"agentType","msgDelReq",b"msgDelReq","msgDownReq",b"msgDownReq","msgUpReq",b"msgUpReq","platformType",b"platformType","subcmd",b"subcmd","termType",b"termType"]) -> None: ...
+
+class LongRspBody(Message):
+ DESCRIPTOR: Descriptor
+ SUBCMD_FIELD_NUMBER: int
+ MSGUPRSP_FIELD_NUMBER: int
+ MSGDOWNRSP_FIELD_NUMBER: int
+ MSGDELRSP_FIELD_NUMBER: int
+ subcmd: int
+ @property
+ def msgUpRsp(self) -> RepeatedCompositeFieldContainer[LongMsgUpRsp]: ...
+ @property
+ def msgDownRsp(self) -> RepeatedCompositeFieldContainer[LongMsgDownRsp]: ...
+ @property
+ def msgDelRsp(self) -> RepeatedCompositeFieldContainer[LongMsgDeleteRsp]: ...
+ def __init__(self,
+ *,
+ subcmd: int = ...,
+ msgUpRsp: Optional[Iterable[LongMsgUpRsp]] = ...,
+ msgDownRsp: Optional[Iterable[LongMsgDownRsp]] = ...,
+ msgDelRsp: Optional[Iterable[LongMsgDeleteRsp]] = ...,
+ ) -> None: ...
+ def ClearField(self, field_name: Literal["msgDelRsp",b"msgDelRsp","msgDownRsp",b"msgDownRsp","msgUpRsp",b"msgUpRsp","subcmd",b"subcmd"]) -> None: ...
diff --git a/cai/pb/highway/longmsg/longmsg_pb2.py b/cai/pb/highway/longmsg/longmsg_pb2.py
deleted file mode 100644
index e8b3a316..00000000
--- a/cai/pb/highway/longmsg/longmsg_pb2.py
+++ /dev/null
@@ -1,95 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by the protocol buffer compiler. DO NOT EDIT!
-# source: longmsg.proto
-"""Generated protocol buffer code."""
-from google.protobuf import descriptor as _descriptor
-from google.protobuf import descriptor_pool as _descriptor_pool
-from google.protobuf import message as _message
-from google.protobuf import reflection as _reflection
-from google.protobuf import symbol_database as _symbol_database
-# @@protoc_insertion_point(imports)
-
-_sym_db = _symbol_database.Default()
-
-
-
-
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\rlongmsg.proto\" \n\tExternMsg\x12\x13\n\x0b\x63hannelType\x18\x01 \x01(\x05\"I\n\x14MultiMsgApplyDownReq\x12\x10\n\x08msgResid\x18\x01 \x01(\x0c\x12\x0f\n\x07msgType\x18\x02 \x01(\x05\x12\x0e\n\x06srcUin\x18\x03 \x01(\x03\"\xe1\x01\n\x14MultiMsgApplyDownRsp\x12\x0e\n\x06result\x18\x01 \x01(\x05\x12\x15\n\rthumbDownPara\x18\x02 \x01(\x0c\x12\x0e\n\x06msgKey\x18\x03 \x01(\x0c\x12\x14\n\x0cuint32DownIp\x18\x04 \x03(\x05\x12\x16\n\x0euint32DownPort\x18\x05 \x03(\x05\x12\x10\n\x08msgResid\x18\x06 \x01(\x0c\x12!\n\rmsgExternInfo\x18\x07 \x01(\x0b\x32\n.ExternMsg\x12\x15\n\rbytesDownIpV6\x18\x08 \x03(\x0c\x12\x18\n\x10uint32DownV6Port\x18\t \x03(\x05\"g\n\x12MultiMsgApplyUpReq\x12\x0e\n\x06\x64stUin\x18\x01 \x01(\x03\x12\x0f\n\x07msgSize\x18\x02 \x01(\x03\x12\x0e\n\x06msgMd5\x18\x03 \x01(\x0c\x12\x0f\n\x07msgType\x18\x04 \x01(\x05\x12\x0f\n\x07\x61pplyId\x18\x05 \x01(\x05\"\x97\x02\n\x12MultiMsgApplyUpRsp\x12\x0e\n\x06result\x18\x01 \x01(\x05\x12\x10\n\x08msgResid\x18\x02 \x01(\t\x12\x0f\n\x07msgUkey\x18\x03 \x01(\x0c\x12\x12\n\nuint32UpIp\x18\x04 \x03(\x05\x12\x14\n\x0cuint32UpPort\x18\x05 \x03(\x05\x12\x11\n\tblockSize\x18\x06 \x01(\x03\x12\x10\n\x08upOffset\x18\x07 \x01(\x03\x12\x0f\n\x07\x61pplyId\x18\x08 \x01(\x05\x12\x0e\n\x06msgKey\x18\t \x01(\x0c\x12\x0e\n\x06msgSig\x18\n \x01(\x0c\x12!\n\rmsgExternInfo\x18\x0b \x01(\x0b\x32\n.ExternMsg\x12\x13\n\x0b\x62ytesUpIpV6\x18\x0c \x03(\x0c\x12\x16\n\x0euint32UpV6Port\x18\r \x03(\x05\"\xf7\x01\n\x0cMultiReqBody\x12\x0e\n\x06subcmd\x18\x01 \x01(\x05\x12\x10\n\x08termType\x18\x02 \x01(\x05\x12\x14\n\x0cplatformType\x18\x03 \x01(\x05\x12\x0f\n\x07netType\x18\x04 \x01(\x05\x12\x10\n\x08\x62uildVer\x18\x05 \x01(\t\x12/\n\x12multimsgApplyupReq\x18\x06 \x03(\x0b\x32\x13.MultiMsgApplyUpReq\x12\x33\n\x14multimsgApplydownReq\x18\x07 \x03(\x0b\x32\x15.MultiMsgApplyDownReq\x12\x0e\n\x06\x62uType\x18\x08 \x01(\x05\x12\x16\n\x0ereqChannelType\x18\t \x01(\x05\"\x84\x01\n\x0cMultiRspBody\x12\x0e\n\x06subcmd\x18\x01 \x01(\x05\x12/\n\x12multimsgApplyupRsp\x18\x02 \x03(\x0b\x32\x13.MultiMsgApplyUpRsp\x12\x33\n\x14multimsgApplydownRsp\x18\x03 \x03(\x0b\x32\x15.MultiMsgApplyDownRspB-Z+github.com/Mrs4s/MiraiGo/client/pb/multimsgb\x06proto3')
-
-
-
-_EXTERNMSG = DESCRIPTOR.message_types_by_name['ExternMsg']
-_MULTIMSGAPPLYDOWNREQ = DESCRIPTOR.message_types_by_name['MultiMsgApplyDownReq']
-_MULTIMSGAPPLYDOWNRSP = DESCRIPTOR.message_types_by_name['MultiMsgApplyDownRsp']
-_MULTIMSGAPPLYUPREQ = DESCRIPTOR.message_types_by_name['MultiMsgApplyUpReq']
-_MULTIMSGAPPLYUPRSP = DESCRIPTOR.message_types_by_name['MultiMsgApplyUpRsp']
-_MULTIREQBODY = DESCRIPTOR.message_types_by_name['MultiReqBody']
-_MULTIRSPBODY = DESCRIPTOR.message_types_by_name['MultiRspBody']
-ExternMsg = _reflection.GeneratedProtocolMessageType('ExternMsg', (_message.Message,), {
- 'DESCRIPTOR' : _EXTERNMSG,
- '__module__' : 'longmsg_pb2'
- # @@protoc_insertion_point(class_scope:ExternMsg)
- })
-_sym_db.RegisterMessage(ExternMsg)
-
-MultiMsgApplyDownReq = _reflection.GeneratedProtocolMessageType('MultiMsgApplyDownReq', (_message.Message,), {
- 'DESCRIPTOR' : _MULTIMSGAPPLYDOWNREQ,
- '__module__' : 'longmsg_pb2'
- # @@protoc_insertion_point(class_scope:MultiMsgApplyDownReq)
- })
-_sym_db.RegisterMessage(MultiMsgApplyDownReq)
-
-MultiMsgApplyDownRsp = _reflection.GeneratedProtocolMessageType('MultiMsgApplyDownRsp', (_message.Message,), {
- 'DESCRIPTOR' : _MULTIMSGAPPLYDOWNRSP,
- '__module__' : 'longmsg_pb2'
- # @@protoc_insertion_point(class_scope:MultiMsgApplyDownRsp)
- })
-_sym_db.RegisterMessage(MultiMsgApplyDownRsp)
-
-MultiMsgApplyUpReq = _reflection.GeneratedProtocolMessageType('MultiMsgApplyUpReq', (_message.Message,), {
- 'DESCRIPTOR' : _MULTIMSGAPPLYUPREQ,
- '__module__' : 'longmsg_pb2'
- # @@protoc_insertion_point(class_scope:MultiMsgApplyUpReq)
- })
-_sym_db.RegisterMessage(MultiMsgApplyUpReq)
-
-MultiMsgApplyUpRsp = _reflection.GeneratedProtocolMessageType('MultiMsgApplyUpRsp', (_message.Message,), {
- 'DESCRIPTOR' : _MULTIMSGAPPLYUPRSP,
- '__module__' : 'longmsg_pb2'
- # @@protoc_insertion_point(class_scope:MultiMsgApplyUpRsp)
- })
-_sym_db.RegisterMessage(MultiMsgApplyUpRsp)
-
-MultiReqBody = _reflection.GeneratedProtocolMessageType('MultiReqBody', (_message.Message,), {
- 'DESCRIPTOR' : _MULTIREQBODY,
- '__module__' : 'longmsg_pb2'
- # @@protoc_insertion_point(class_scope:MultiReqBody)
- })
-_sym_db.RegisterMessage(MultiReqBody)
-
-MultiRspBody = _reflection.GeneratedProtocolMessageType('MultiRspBody', (_message.Message,), {
- 'DESCRIPTOR' : _MULTIRSPBODY,
- '__module__' : 'longmsg_pb2'
- # @@protoc_insertion_point(class_scope:MultiRspBody)
- })
-_sym_db.RegisterMessage(MultiRspBody)
-
-if _descriptor._USE_C_DESCRIPTORS == False:
-
- DESCRIPTOR._options = None
- DESCRIPTOR._serialized_options = b'Z+github.com/Mrs4s/MiraiGo/client/pb/multi_msg'
- _EXTERNMSG._serialized_start=17
- _EXTERNMSG._serialized_end=49
- _MULTIMSGAPPLYDOWNREQ._serialized_start=51
- _MULTIMSGAPPLYDOWNREQ._serialized_end=124
- _MULTIMSGAPPLYDOWNRSP._serialized_start=127
- _MULTIMSGAPPLYDOWNRSP._serialized_end=352
- _MULTIMSGAPPLYUPREQ._serialized_start=354
- _MULTIMSGAPPLYUPREQ._serialized_end=457
- _MULTIMSGAPPLYUPRSP._serialized_start=460
- _MULTIMSGAPPLYUPRSP._serialized_end=739
- _MULTIREQBODY._serialized_start=742
- _MULTIREQBODY._serialized_end=989
- _MULTIRSPBODY._serialized_start=992
- _MULTIRSPBODY._serialized_end=1124
-# @@protoc_insertion_point(module_scope)
diff --git a/cai/pb/highway/multi_msg/__init__.py b/cai/pb/highway/multi_msg/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/cai/pb/highway/longmsg/longmsg.proto b/cai/pb/highway/multi_msg/multi_msg.proto
similarity index 100%
rename from cai/pb/highway/longmsg/longmsg.proto
rename to cai/pb/highway/multi_msg/multi_msg.proto
diff --git a/cai/pb/highway/multi_msg/multi_msg_pb2.py b/cai/pb/highway/multi_msg/multi_msg_pb2.py
new file mode 100644
index 00000000..73455d32
--- /dev/null
+++ b/cai/pb/highway/multi_msg/multi_msg_pb2.py
@@ -0,0 +1,95 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: multi_msg.proto
+"""Generated protocol buffer code."""
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import message as _message
+from google.protobuf import reflection as _reflection
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0fmulti_msg.proto\" \n\tExternMsg\x12\x13\n\x0b\x63hannelType\x18\x01 \x01(\x05\"I\n\x14MultiMsgApplyDownReq\x12\x10\n\x08msgResid\x18\x01 \x01(\x0c\x12\x0f\n\x07msgType\x18\x02 \x01(\x05\x12\x0e\n\x06srcUin\x18\x03 \x01(\x03\"\xe1\x01\n\x14MultiMsgApplyDownRsp\x12\x0e\n\x06result\x18\x01 \x01(\x05\x12\x15\n\rthumbDownPara\x18\x02 \x01(\x0c\x12\x0e\n\x06msgKey\x18\x03 \x01(\x0c\x12\x14\n\x0cuint32DownIp\x18\x04 \x03(\x05\x12\x16\n\x0euint32DownPort\x18\x05 \x03(\x05\x12\x10\n\x08msgResid\x18\x06 \x01(\x0c\x12!\n\rmsgExternInfo\x18\x07 \x01(\x0b\x32\n.ExternMsg\x12\x15\n\rbytesDownIpV6\x18\x08 \x03(\x0c\x12\x18\n\x10uint32DownV6Port\x18\t \x03(\x05\"g\n\x12MultiMsgApplyUpReq\x12\x0e\n\x06\x64stUin\x18\x01 \x01(\x03\x12\x0f\n\x07msgSize\x18\x02 \x01(\x03\x12\x0e\n\x06msgMd5\x18\x03 \x01(\x0c\x12\x0f\n\x07msgType\x18\x04 \x01(\x05\x12\x0f\n\x07\x61pplyId\x18\x05 \x01(\x05\"\x97\x02\n\x12MultiMsgApplyUpRsp\x12\x0e\n\x06result\x18\x01 \x01(\x05\x12\x10\n\x08msgResid\x18\x02 \x01(\t\x12\x0f\n\x07msgUkey\x18\x03 \x01(\x0c\x12\x12\n\nuint32UpIp\x18\x04 \x03(\x05\x12\x14\n\x0cuint32UpPort\x18\x05 \x03(\x05\x12\x11\n\tblockSize\x18\x06 \x01(\x03\x12\x10\n\x08upOffset\x18\x07 \x01(\x03\x12\x0f\n\x07\x61pplyId\x18\x08 \x01(\x05\x12\x0e\n\x06msgKey\x18\t \x01(\x0c\x12\x0e\n\x06msgSig\x18\n \x01(\x0c\x12!\n\rmsgExternInfo\x18\x0b \x01(\x0b\x32\n.ExternMsg\x12\x13\n\x0b\x62ytesUpIpV6\x18\x0c \x03(\x0c\x12\x16\n\x0euint32UpV6Port\x18\r \x03(\x05\"\xf7\x01\n\x0cMultiReqBody\x12\x0e\n\x06subcmd\x18\x01 \x01(\x05\x12\x10\n\x08termType\x18\x02 \x01(\x05\x12\x14\n\x0cplatformType\x18\x03 \x01(\x05\x12\x0f\n\x07netType\x18\x04 \x01(\x05\x12\x10\n\x08\x62uildVer\x18\x05 \x01(\t\x12/\n\x12multimsgApplyupReq\x18\x06 \x03(\x0b\x32\x13.MultiMsgApplyUpReq\x12\x33\n\x14multimsgApplydownReq\x18\x07 \x03(\x0b\x32\x15.MultiMsgApplyDownReq\x12\x0e\n\x06\x62uType\x18\x08 \x01(\x05\x12\x16\n\x0ereqChannelType\x18\t \x01(\x05\"\x84\x01\n\x0cMultiRspBody\x12\x0e\n\x06subcmd\x18\x01 \x01(\x05\x12/\n\x12multimsgApplyupRsp\x18\x02 \x03(\x0b\x32\x13.MultiMsgApplyUpRsp\x12\x33\n\x14multimsgApplydownRsp\x18\x03 \x03(\x0b\x32\x15.MultiMsgApplyDownRspB.Z,github.com/Mrs4s/MiraiGo/client/pb/multi_msgb\x06proto3')
+
+
+
+_EXTERNMSG = DESCRIPTOR.message_types_by_name['ExternMsg']
+_MULTIMSGAPPLYDOWNREQ = DESCRIPTOR.message_types_by_name['MultiMsgApplyDownReq']
+_MULTIMSGAPPLYDOWNRSP = DESCRIPTOR.message_types_by_name['MultiMsgApplyDownRsp']
+_MULTIMSGAPPLYUPREQ = DESCRIPTOR.message_types_by_name['MultiMsgApplyUpReq']
+_MULTIMSGAPPLYUPRSP = DESCRIPTOR.message_types_by_name['MultiMsgApplyUpRsp']
+_MULTIREQBODY = DESCRIPTOR.message_types_by_name['MultiReqBody']
+_MULTIRSPBODY = DESCRIPTOR.message_types_by_name['MultiRspBody']
+ExternMsg = _reflection.GeneratedProtocolMessageType('ExternMsg', (_message.Message,), {
+ 'DESCRIPTOR' : _EXTERNMSG,
+ '__module__' : 'multi_msg_pb2'
+ # @@protoc_insertion_point(class_scope:ExternMsg)
+ })
+_sym_db.RegisterMessage(ExternMsg)
+
+MultiMsgApplyDownReq = _reflection.GeneratedProtocolMessageType('MultiMsgApplyDownReq', (_message.Message,), {
+ 'DESCRIPTOR' : _MULTIMSGAPPLYDOWNREQ,
+ '__module__' : 'multi_msg_pb2'
+ # @@protoc_insertion_point(class_scope:MultiMsgApplyDownReq)
+ })
+_sym_db.RegisterMessage(MultiMsgApplyDownReq)
+
+MultiMsgApplyDownRsp = _reflection.GeneratedProtocolMessageType('MultiMsgApplyDownRsp', (_message.Message,), {
+ 'DESCRIPTOR' : _MULTIMSGAPPLYDOWNRSP,
+ '__module__' : 'multi_msg_pb2'
+ # @@protoc_insertion_point(class_scope:MultiMsgApplyDownRsp)
+ })
+_sym_db.RegisterMessage(MultiMsgApplyDownRsp)
+
+MultiMsgApplyUpReq = _reflection.GeneratedProtocolMessageType('MultiMsgApplyUpReq', (_message.Message,), {
+ 'DESCRIPTOR' : _MULTIMSGAPPLYUPREQ,
+ '__module__' : 'multi_msg_pb2'
+ # @@protoc_insertion_point(class_scope:MultiMsgApplyUpReq)
+ })
+_sym_db.RegisterMessage(MultiMsgApplyUpReq)
+
+MultiMsgApplyUpRsp = _reflection.GeneratedProtocolMessageType('MultiMsgApplyUpRsp', (_message.Message,), {
+ 'DESCRIPTOR' : _MULTIMSGAPPLYUPRSP,
+ '__module__' : 'multi_msg_pb2'
+ # @@protoc_insertion_point(class_scope:MultiMsgApplyUpRsp)
+ })
+_sym_db.RegisterMessage(MultiMsgApplyUpRsp)
+
+MultiReqBody = _reflection.GeneratedProtocolMessageType('MultiReqBody', (_message.Message,), {
+ 'DESCRIPTOR' : _MULTIREQBODY,
+ '__module__' : 'multi_msg_pb2'
+ # @@protoc_insertion_point(class_scope:MultiReqBody)
+ })
+_sym_db.RegisterMessage(MultiReqBody)
+
+MultiRspBody = _reflection.GeneratedProtocolMessageType('MultiRspBody', (_message.Message,), {
+ 'DESCRIPTOR' : _MULTIRSPBODY,
+ '__module__' : 'multi_msg_pb2'
+ # @@protoc_insertion_point(class_scope:MultiRspBody)
+ })
+_sym_db.RegisterMessage(MultiRspBody)
+
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ DESCRIPTOR._serialized_options = b'Z,github.com/Mrs4s/MiraiGo/client/pb/multi_msg'
+ _EXTERNMSG._serialized_start=19
+ _EXTERNMSG._serialized_end=51
+ _MULTIMSGAPPLYDOWNREQ._serialized_start=53
+ _MULTIMSGAPPLYDOWNREQ._serialized_end=126
+ _MULTIMSGAPPLYDOWNRSP._serialized_start=129
+ _MULTIMSGAPPLYDOWNRSP._serialized_end=354
+ _MULTIMSGAPPLYUPREQ._serialized_start=356
+ _MULTIMSGAPPLYUPREQ._serialized_end=459
+ _MULTIMSGAPPLYUPRSP._serialized_start=462
+ _MULTIMSGAPPLYUPRSP._serialized_end=741
+ _MULTIREQBODY._serialized_start=744
+ _MULTIREQBODY._serialized_end=991
+ _MULTIRSPBODY._serialized_start=994
+ _MULTIRSPBODY._serialized_end=1126
+# @@protoc_insertion_point(module_scope)
diff --git a/cai/pb/highway/longmsg/longmsg_pb2.pyi b/cai/pb/highway/multi_msg/multi_msg_pb2.pyi
similarity index 100%
rename from cai/pb/highway/longmsg/longmsg_pb2.pyi
rename to cai/pb/highway/multi_msg/multi_msg_pb2.pyi
From 88064e48017303a4c12f65738a6802fcdfbe2721 Mon Sep 17 00:00:00 2001
From: a1025
Date: Mon, 21 Mar 2022 01:22:08 +0800
Subject: [PATCH 023/113] add: cmd0x388
---
cai/pb/im/oidb/cmd0x388/__init__.py | 0
cai/pb/im/oidb/cmd0x388/cmd0x388.proto | 255 ++++++++
cai/pb/im/oidb/cmd0x388/cmd0x388_pb2.py | 225 +++++++
cai/pb/im/oidb/cmd0x388/cmd0x388_pb2.pyi | 799 +++++++++++++++++++++++
4 files changed, 1279 insertions(+)
create mode 100644 cai/pb/im/oidb/cmd0x388/__init__.py
create mode 100644 cai/pb/im/oidb/cmd0x388/cmd0x388.proto
create mode 100644 cai/pb/im/oidb/cmd0x388/cmd0x388_pb2.py
create mode 100644 cai/pb/im/oidb/cmd0x388/cmd0x388_pb2.pyi
diff --git a/cai/pb/im/oidb/cmd0x388/__init__.py b/cai/pb/im/oidb/cmd0x388/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/cai/pb/im/oidb/cmd0x388/cmd0x388.proto b/cai/pb/im/oidb/cmd0x388/cmd0x388.proto
new file mode 100644
index 00000000..f5cef756
--- /dev/null
+++ b/cai/pb/im/oidb/cmd0x388/cmd0x388.proto
@@ -0,0 +1,255 @@
+syntax = "proto2";
+
+option go_package = "github.com/Mrs4s/MiraiGo/client/pb/cmd0x388";
+
+ message DelImgReq {
+ optional uint64 srcUin = 1;
+ optional uint64 dstUin = 2;
+ optional uint32 reqTerm = 3;
+ optional uint32 reqPlatformType = 4;
+ optional uint32 buType = 5;
+ optional bytes buildVer = 6;
+ optional bytes fileResid = 7;
+ optional uint32 picWidth = 8;
+ optional uint32 picHeight = 9;
+ }
+
+ message DelImgRsp {
+ optional uint32 result = 1;
+ optional bytes failMsg = 2;
+ optional bytes fileResid = 3;
+ }
+
+ message ExpRoamExtendInfo {
+ optional bytes resid = 1;
+ }
+
+ message ExpRoamPicInfo {
+ optional uint32 shopFlag = 1;
+ optional uint32 pkgId = 2;
+ optional bytes picId = 3;
+ }
+
+ message ExtensionCommPicTryUp {
+ repeated bytes extinfo = 1;
+ }
+
+ message ExtensionExpRoamTryUp {
+ repeated ExpRoamPicInfo exproamPicInfo = 1;
+ }
+
+ message GetImgUrlReq {
+ optional uint64 groupCode = 1;
+ optional uint64 dstUin = 2;
+ optional uint64 fileid = 3;
+ optional bytes fileMd5 = 4;
+ optional uint32 urlFlag = 5;
+ optional uint32 urlType = 6;
+ optional uint32 reqTerm = 7;
+ optional uint32 reqPlatformType = 8;
+ optional uint32 innerIp = 9;
+ optional uint32 buType = 10;
+ optional bytes buildVer = 11;
+ optional uint64 fileId = 12;
+ optional uint64 fileSize = 13;
+ optional uint32 originalPic = 14;
+ optional uint32 retryReq = 15;
+ optional uint32 fileHeight = 16;
+ optional uint32 fileWidth = 17;
+ optional uint32 picType = 18;
+ optional uint32 picUpTimestamp = 19;
+ optional uint32 reqTransferType = 20;
+ optional uint64 qqmeetGuildId = 21;
+ optional uint64 qqmeetChannelId = 22;
+ optional bytes downloadIndex = 23;
+ }
+
+ message GetImgUrlRsp {
+ optional uint64 fileid = 1;
+ optional bytes fileMd5 = 2;
+ optional uint32 result = 3;
+ optional bytes failMsg = 4;
+ optional ImgInfo imgInfo = 5;
+ repeated bytes thumbDownUrl = 6;
+ repeated bytes originalDownUrl = 7;
+ repeated bytes bigDownUrl = 8;
+ repeated uint32 downIp = 9;
+ repeated uint32 downPort = 10;
+ optional bytes downDomain = 11;
+ optional bytes thumbDownPara = 12;
+ optional bytes originalDownPara = 13;
+ optional bytes bigDownPara = 14;
+ optional uint64 fileId = 15;
+ optional uint32 autoDownType = 16;
+ repeated uint32 orderDownType = 17;
+ optional bytes bigThumbDownPara = 19;
+ optional uint32 httpsUrlFlag = 20;
+ repeated IPv6Info downIp6 = 26;
+ optional bytes clientIp6 = 27;
+ }
+
+ message GetPttUrlReq {
+ optional uint64 groupCode = 1;
+ optional uint64 dstUin = 2;
+ optional uint64 fileid = 3;
+ optional bytes fileMd5 = 4;
+ optional uint32 reqTerm = 5;
+ optional uint32 reqPlatformType = 6;
+ optional uint32 innerIp = 7;
+ optional uint32 buType = 8;
+ optional bytes buildVer = 9;
+ optional uint64 fileId = 10;
+ optional bytes fileKey = 11;
+ optional uint32 codec = 12;
+ optional uint32 buId = 13;
+ optional uint32 reqTransferType = 14;
+ optional uint32 isAuto = 15;
+ }
+
+ message GetPttUrlRsp {
+ optional uint64 fileid = 1;
+ optional bytes fileMd5 = 2;
+ optional uint32 result = 3;
+ optional bytes failMsg = 4;
+ repeated bytes downUrl = 5;
+ repeated uint32 downIp = 6;
+ repeated uint32 downPort = 7;
+ optional bytes downDomain = 8;
+ optional bytes downPara = 9;
+ optional uint64 fileId = 10;
+ optional uint32 transferType = 11;
+ optional uint32 allowRetry = 12;
+ repeated IPv6Info downIp6 = 26;
+ optional bytes clientIp6 = 27;
+ optional string domain = 28;
+ }
+
+ message IPv6Info {
+ optional bytes ip6 = 1;
+ optional uint32 port = 2;
+ }
+
+ message ImgInfo {
+ optional bytes fileMd5 = 1;
+ optional uint32 fileType = 2;
+ optional uint64 fileSize = 3;
+ optional uint32 fileWidth = 4;
+ optional uint32 fileHeight = 5;
+ }
+
+ message PicSize {
+ optional uint32 original = 1;
+ optional uint32 thumb = 2;
+ optional uint32 high = 3;
+ }
+
+ message D388ReqBody {
+ optional uint32 netType = 1;
+ optional uint32 subcmd = 2;
+ repeated TryUpImgReq tryupImgReq = 3;
+ repeated GetImgUrlReq getimgUrlReq = 4;
+ repeated TryUpPttReq tryupPttReq = 5;
+ repeated GetPttUrlReq getpttUrlReq = 6;
+ optional uint32 commandId = 7;
+ repeated DelImgReq delImgReq = 8;
+ optional bytes extension = 1001;
+ }
+
+ message D388RspBody {
+ optional uint32 clientIp = 1;
+ optional uint32 subcmd = 2;
+ repeated D388TryUpImgRsp tryupImgRsp = 3;
+ repeated GetImgUrlRsp getimgUrlRsp = 4;
+ repeated TryUpPttRsp tryupPttRsp = 5;
+ repeated GetPttUrlRsp getpttUrlRsp = 6;
+ repeated DelImgRsp delImgRsp = 7;
+ }
+
+ message TryUpImgReq {
+ optional uint64 groupCode = 1;
+ optional uint64 srcUin = 2;
+ optional uint64 fileId = 3;
+ optional bytes fileMd5 = 4;
+ optional uint64 fileSize = 5;
+ optional bytes fileName = 6;
+ optional uint32 srcTerm = 7;
+ optional uint32 platformType = 8;
+ optional uint32 buType = 9;
+ optional uint32 picWidth = 10;
+ optional uint32 picHeight = 11;
+ optional uint32 picType = 12;
+ optional bytes buildVer = 13;
+ optional uint32 innerIp = 14;
+ optional uint32 appPicType = 15;
+ optional uint32 originalPic = 16;
+ optional bytes fileIndex = 17;
+ optional uint64 dstUin = 18;
+ optional uint32 srvUpload = 19;
+ optional bytes transferUrl = 20;
+ optional uint64 qqmeetGuildId = 21;
+ optional uint64 qqmeetChannelId = 22;
+ }
+
+ message D388TryUpImgRsp {
+ optional uint64 fileId = 1;
+ optional uint32 result = 2;
+ optional bytes failMsg = 3;
+ optional bool fileExit = 4;
+ optional ImgInfo imgInfo = 5;
+ repeated uint32 upIp = 6;
+ repeated uint32 upPort = 7;
+ optional bytes upUkey = 8;
+ optional uint64 fileid = 9;
+ optional uint64 upOffset = 10;
+ optional uint64 blockSize = 11;
+ optional bool newBigChan = 12;
+ repeated IPv6Info upIp6 = 26;
+ optional bytes clientIp6 = 27;
+ optional bytes downloadIndex = 28;
+ optional TryUpInfo4Busi info4Busi = 1001;
+ }
+
+ message TryUpInfo4Busi {
+ optional bytes downDomain = 1;
+ optional bytes thumbDownUrl = 2;
+ optional bytes originalDownUrl = 3;
+ optional bytes bigDownUrl = 4;
+ optional bytes fileResid = 5;
+ }
+
+ message TryUpPttReq {
+ optional uint64 groupCode = 1;
+ optional uint64 srcUin = 2;
+ optional uint64 fileId = 3;
+ optional bytes fileMd5 = 4;
+ optional uint64 fileSize = 5;
+ optional bytes fileName = 6;
+ optional uint32 srcTerm = 7;
+ optional uint32 platformType = 8;
+ optional uint32 buType = 9;
+ optional bytes buildVer = 10;
+ optional uint32 innerIp = 11;
+ optional uint32 voiceLength = 12;
+ optional bool newUpChan = 13;
+ optional uint32 codec = 14;
+ optional uint32 voiceType = 15;
+ optional uint32 buId = 16;
+ }
+
+ message TryUpPttRsp {
+ optional uint64 fileId = 1;
+ optional uint32 result = 2;
+ optional bytes failMsg = 3;
+ optional bool fileExit = 4;
+ repeated uint32 upIp = 5;
+ repeated uint32 upPort = 6;
+ optional bytes upUkey = 7;
+ optional uint64 fileid = 8;
+ optional uint64 upOffset = 9;
+ optional uint64 blockSize = 10;
+ optional bytes fileKey = 11;
+ optional uint32 channelType = 12;
+ repeated IPv6Info upIp6 = 26;
+ optional bytes clientIp6 = 27;
+ }
+
diff --git a/cai/pb/im/oidb/cmd0x388/cmd0x388_pb2.py b/cai/pb/im/oidb/cmd0x388/cmd0x388_pb2.py
new file mode 100644
index 00000000..4f02ceba
--- /dev/null
+++ b/cai/pb/im/oidb/cmd0x388/cmd0x388_pb2.py
@@ -0,0 +1,225 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: cmd0x388.proto
+"""Generated protocol buffer code."""
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import message as _message
+from google.protobuf import reflection as _reflection
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0e\x63md0x388.proto\"\xaf\x01\n\tDelImgReq\x12\x0e\n\x06srcUin\x18\x01 \x01(\x04\x12\x0e\n\x06\x64stUin\x18\x02 \x01(\x04\x12\x0f\n\x07reqTerm\x18\x03 \x01(\r\x12\x17\n\x0freqPlatformType\x18\x04 \x01(\r\x12\x0e\n\x06\x62uType\x18\x05 \x01(\r\x12\x10\n\x08\x62uildVer\x18\x06 \x01(\x0c\x12\x11\n\tfileResid\x18\x07 \x01(\x0c\x12\x10\n\x08picWidth\x18\x08 \x01(\r\x12\x11\n\tpicHeight\x18\t \x01(\r\"?\n\tDelImgRsp\x12\x0e\n\x06result\x18\x01 \x01(\r\x12\x0f\n\x07\x66\x61ilMsg\x18\x02 \x01(\x0c\x12\x11\n\tfileResid\x18\x03 \x01(\x0c\"\"\n\x11\x45xpRoamExtendInfo\x12\r\n\x05resid\x18\x01 \x01(\x0c\"@\n\x0e\x45xpRoamPicInfo\x12\x10\n\x08shopFlag\x18\x01 \x01(\r\x12\r\n\x05pkgId\x18\x02 \x01(\r\x12\r\n\x05picId\x18\x03 \x01(\x0c\"(\n\x15\x45xtensionCommPicTryUp\x12\x0f\n\x07\x65xtinfo\x18\x01 \x03(\x0c\"@\n\x15\x45xtensionExpRoamTryUp\x12\'\n\x0e\x65xproamPicInfo\x18\x01 \x03(\x0b\x32\x0f.ExpRoamPicInfo\"\xca\x03\n\x0cGetImgUrlReq\x12\x11\n\tgroupCode\x18\x01 \x01(\x04\x12\x0e\n\x06\x64stUin\x18\x02 \x01(\x04\x12\x0e\n\x06\x66ileid\x18\x03 \x01(\x04\x12\x0f\n\x07\x66ileMd5\x18\x04 \x01(\x0c\x12\x0f\n\x07urlFlag\x18\x05 \x01(\r\x12\x0f\n\x07urlType\x18\x06 \x01(\r\x12\x0f\n\x07reqTerm\x18\x07 \x01(\r\x12\x17\n\x0freqPlatformType\x18\x08 \x01(\r\x12\x0f\n\x07innerIp\x18\t \x01(\r\x12\x0e\n\x06\x62uType\x18\n \x01(\r\x12\x10\n\x08\x62uildVer\x18\x0b \x01(\x0c\x12\x0e\n\x06\x66ileId\x18\x0c \x01(\x04\x12\x10\n\x08\x66ileSize\x18\r \x01(\x04\x12\x13\n\x0boriginalPic\x18\x0e \x01(\r\x12\x10\n\x08retryReq\x18\x0f \x01(\r\x12\x12\n\nfileHeight\x18\x10 \x01(\r\x12\x11\n\tfileWidth\x18\x11 \x01(\r\x12\x0f\n\x07picType\x18\x12 \x01(\r\x12\x16\n\x0epicUpTimestamp\x18\x13 \x01(\r\x12\x17\n\x0freqTransferType\x18\x14 \x01(\r\x12\x15\n\rqqmeetGuildId\x18\x15 \x01(\x04\x12\x17\n\x0fqqmeetChannelId\x18\x16 \x01(\x04\x12\x15\n\rdownloadIndex\x18\x17 \x01(\x0c\"\xc6\x03\n\x0cGetImgUrlRsp\x12\x0e\n\x06\x66ileid\x18\x01 \x01(\x04\x12\x0f\n\x07\x66ileMd5\x18\x02 \x01(\x0c\x12\x0e\n\x06result\x18\x03 \x01(\r\x12\x0f\n\x07\x66\x61ilMsg\x18\x04 \x01(\x0c\x12\x19\n\x07imgInfo\x18\x05 \x01(\x0b\x32\x08.ImgInfo\x12\x14\n\x0cthumbDownUrl\x18\x06 \x03(\x0c\x12\x17\n\x0foriginalDownUrl\x18\x07 \x03(\x0c\x12\x12\n\nbigDownUrl\x18\x08 \x03(\x0c\x12\x0e\n\x06\x64ownIp\x18\t \x03(\r\x12\x10\n\x08\x64ownPort\x18\n \x03(\r\x12\x12\n\ndownDomain\x18\x0b \x01(\x0c\x12\x15\n\rthumbDownPara\x18\x0c \x01(\x0c\x12\x18\n\x10originalDownPara\x18\r \x01(\x0c\x12\x13\n\x0b\x62igDownPara\x18\x0e \x01(\x0c\x12\x0e\n\x06\x66ileId\x18\x0f \x01(\x04\x12\x14\n\x0c\x61utoDownType\x18\x10 \x01(\r\x12\x15\n\rorderDownType\x18\x11 \x03(\r\x12\x18\n\x10\x62igThumbDownPara\x18\x13 \x01(\x0c\x12\x14\n\x0chttpsUrlFlag\x18\x14 \x01(\r\x12\x1a\n\x07\x64ownIp6\x18\x1a \x03(\x0b\x32\t.IPv6Info\x12\x11\n\tclientIp6\x18\x1b \x01(\x0c\"\x96\x02\n\x0cGetPttUrlReq\x12\x11\n\tgroupCode\x18\x01 \x01(\x04\x12\x0e\n\x06\x64stUin\x18\x02 \x01(\x04\x12\x0e\n\x06\x66ileid\x18\x03 \x01(\x04\x12\x0f\n\x07\x66ileMd5\x18\x04 \x01(\x0c\x12\x0f\n\x07reqTerm\x18\x05 \x01(\r\x12\x17\n\x0freqPlatformType\x18\x06 \x01(\r\x12\x0f\n\x07innerIp\x18\x07 \x01(\r\x12\x0e\n\x06\x62uType\x18\x08 \x01(\r\x12\x10\n\x08\x62uildVer\x18\t \x01(\x0c\x12\x0e\n\x06\x66ileId\x18\n \x01(\x04\x12\x0f\n\x07\x66ileKey\x18\x0b \x01(\x0c\x12\r\n\x05\x63odec\x18\x0c \x01(\r\x12\x0c\n\x04\x62uId\x18\r \x01(\r\x12\x17\n\x0freqTransferType\x18\x0e \x01(\r\x12\x0e\n\x06isAuto\x18\x0f \x01(\r\"\xa2\x02\n\x0cGetPttUrlRsp\x12\x0e\n\x06\x66ileid\x18\x01 \x01(\x04\x12\x0f\n\x07\x66ileMd5\x18\x02 \x01(\x0c\x12\x0e\n\x06result\x18\x03 \x01(\r\x12\x0f\n\x07\x66\x61ilMsg\x18\x04 \x01(\x0c\x12\x0f\n\x07\x64ownUrl\x18\x05 \x03(\x0c\x12\x0e\n\x06\x64ownIp\x18\x06 \x03(\r\x12\x10\n\x08\x64ownPort\x18\x07 \x03(\r\x12\x12\n\ndownDomain\x18\x08 \x01(\x0c\x12\x10\n\x08\x64ownPara\x18\t \x01(\x0c\x12\x0e\n\x06\x66ileId\x18\n \x01(\x04\x12\x14\n\x0ctransferType\x18\x0b \x01(\r\x12\x12\n\nallowRetry\x18\x0c \x01(\r\x12\x1a\n\x07\x64ownIp6\x18\x1a \x03(\x0b\x32\t.IPv6Info\x12\x11\n\tclientIp6\x18\x1b \x01(\x0c\x12\x0e\n\x06\x64omain\x18\x1c \x01(\t\"%\n\x08IPv6Info\x12\x0b\n\x03ip6\x18\x01 \x01(\x0c\x12\x0c\n\x04port\x18\x02 \x01(\r\"e\n\x07ImgInfo\x12\x0f\n\x07\x66ileMd5\x18\x01 \x01(\x0c\x12\x10\n\x08\x66ileType\x18\x02 \x01(\r\x12\x10\n\x08\x66ileSize\x18\x03 \x01(\x04\x12\x11\n\tfileWidth\x18\x04 \x01(\r\x12\x12\n\nfileHeight\x18\x05 \x01(\r\"8\n\x07PicSize\x12\x10\n\x08original\x18\x01 \x01(\r\x12\r\n\x05thumb\x18\x02 \x01(\r\x12\x0c\n\x04high\x18\x03 \x01(\r\"\x84\x02\n\x0b\x44\x33\x38\x38ReqBody\x12\x0f\n\x07netType\x18\x01 \x01(\r\x12\x0e\n\x06subcmd\x18\x02 \x01(\r\x12!\n\x0btryupImgReq\x18\x03 \x03(\x0b\x32\x0c.TryUpImgReq\x12#\n\x0cgetimgUrlReq\x18\x04 \x03(\x0b\x32\r.GetImgUrlReq\x12!\n\x0btryupPttReq\x18\x05 \x03(\x0b\x32\x0c.TryUpPttReq\x12#\n\x0cgetpttUrlReq\x18\x06 \x03(\x0b\x32\r.GetPttUrlReq\x12\x11\n\tcommandId\x18\x07 \x01(\r\x12\x1d\n\tdelImgReq\x18\x08 \x03(\x0b\x32\n.DelImgReq\x12\x12\n\textension\x18\xe9\x07 \x01(\x0c\"\xe2\x01\n\x0b\x44\x33\x38\x38RspBody\x12\x10\n\x08\x63lientIp\x18\x01 \x01(\r\x12\x0e\n\x06subcmd\x18\x02 \x01(\r\x12%\n\x0btryupImgRsp\x18\x03 \x03(\x0b\x32\x10.D388TryUpImgRsp\x12#\n\x0cgetimgUrlRsp\x18\x04 \x03(\x0b\x32\r.GetImgUrlRsp\x12!\n\x0btryupPttRsp\x18\x05 \x03(\x0b\x32\x0c.TryUpPttRsp\x12#\n\x0cgetpttUrlRsp\x18\x06 \x03(\x0b\x32\r.GetPttUrlRsp\x12\x1d\n\tdelImgRsp\x18\x07 \x03(\x0b\x32\n.DelImgRsp\"\xa9\x03\n\x0bTryUpImgReq\x12\x11\n\tgroupCode\x18\x01 \x01(\x04\x12\x0e\n\x06srcUin\x18\x02 \x01(\x04\x12\x0e\n\x06\x66ileId\x18\x03 \x01(\x04\x12\x0f\n\x07\x66ileMd5\x18\x04 \x01(\x0c\x12\x10\n\x08\x66ileSize\x18\x05 \x01(\x04\x12\x10\n\x08\x66ileName\x18\x06 \x01(\x0c\x12\x0f\n\x07srcTerm\x18\x07 \x01(\r\x12\x14\n\x0cplatformType\x18\x08 \x01(\r\x12\x0e\n\x06\x62uType\x18\t \x01(\r\x12\x10\n\x08picWidth\x18\n \x01(\r\x12\x11\n\tpicHeight\x18\x0b \x01(\r\x12\x0f\n\x07picType\x18\x0c \x01(\r\x12\x10\n\x08\x62uildVer\x18\r \x01(\x0c\x12\x0f\n\x07innerIp\x18\x0e \x01(\r\x12\x12\n\nappPicType\x18\x0f \x01(\r\x12\x13\n\x0boriginalPic\x18\x10 \x01(\r\x12\x11\n\tfileIndex\x18\x11 \x01(\x0c\x12\x0e\n\x06\x64stUin\x18\x12 \x01(\x04\x12\x11\n\tsrvUpload\x18\x13 \x01(\r\x12\x13\n\x0btransferUrl\x18\x14 \x01(\x0c\x12\x15\n\rqqmeetGuildId\x18\x15 \x01(\x04\x12\x17\n\x0fqqmeetChannelId\x18\x16 \x01(\x04\"\xcf\x02\n\x0f\x44\x33\x38\x38TryUpImgRsp\x12\x0e\n\x06\x66ileId\x18\x01 \x01(\x04\x12\x0e\n\x06result\x18\x02 \x01(\r\x12\x0f\n\x07\x66\x61ilMsg\x18\x03 \x01(\x0c\x12\x10\n\x08\x66ileExit\x18\x04 \x01(\x08\x12\x19\n\x07imgInfo\x18\x05 \x01(\x0b\x32\x08.ImgInfo\x12\x0c\n\x04upIp\x18\x06 \x03(\r\x12\x0e\n\x06upPort\x18\x07 \x03(\r\x12\x0e\n\x06upUkey\x18\x08 \x01(\x0c\x12\x0e\n\x06\x66ileid\x18\t \x01(\x04\x12\x10\n\x08upOffset\x18\n \x01(\x04\x12\x11\n\tblockSize\x18\x0b \x01(\x04\x12\x12\n\nnewBigChan\x18\x0c \x01(\x08\x12\x18\n\x05upIp6\x18\x1a \x03(\x0b\x32\t.IPv6Info\x12\x11\n\tclientIp6\x18\x1b \x01(\x0c\x12\x15\n\rdownloadIndex\x18\x1c \x01(\x0c\x12#\n\tinfo4Busi\x18\xe9\x07 \x01(\x0b\x32\x0f.TryUpInfo4Busi\"z\n\x0eTryUpInfo4Busi\x12\x12\n\ndownDomain\x18\x01 \x01(\x0c\x12\x14\n\x0cthumbDownUrl\x18\x02 \x01(\x0c\x12\x17\n\x0foriginalDownUrl\x18\x03 \x01(\x0c\x12\x12\n\nbigDownUrl\x18\x04 \x01(\x0c\x12\x11\n\tfileResid\x18\x05 \x01(\x0c\"\xa7\x02\n\x0bTryUpPttReq\x12\x11\n\tgroupCode\x18\x01 \x01(\x04\x12\x0e\n\x06srcUin\x18\x02 \x01(\x04\x12\x0e\n\x06\x66ileId\x18\x03 \x01(\x04\x12\x0f\n\x07\x66ileMd5\x18\x04 \x01(\x0c\x12\x10\n\x08\x66ileSize\x18\x05 \x01(\x04\x12\x10\n\x08\x66ileName\x18\x06 \x01(\x0c\x12\x0f\n\x07srcTerm\x18\x07 \x01(\r\x12\x14\n\x0cplatformType\x18\x08 \x01(\r\x12\x0e\n\x06\x62uType\x18\t \x01(\r\x12\x10\n\x08\x62uildVer\x18\n \x01(\x0c\x12\x0f\n\x07innerIp\x18\x0b \x01(\r\x12\x13\n\x0bvoiceLength\x18\x0c \x01(\r\x12\x11\n\tnewUpChan\x18\r \x01(\x08\x12\r\n\x05\x63odec\x18\x0e \x01(\r\x12\x11\n\tvoiceType\x18\x0f \x01(\r\x12\x0c\n\x04\x62uId\x18\x10 \x01(\r\"\x86\x02\n\x0bTryUpPttRsp\x12\x0e\n\x06\x66ileId\x18\x01 \x01(\x04\x12\x0e\n\x06result\x18\x02 \x01(\r\x12\x0f\n\x07\x66\x61ilMsg\x18\x03 \x01(\x0c\x12\x10\n\x08\x66ileExit\x18\x04 \x01(\x08\x12\x0c\n\x04upIp\x18\x05 \x03(\r\x12\x0e\n\x06upPort\x18\x06 \x03(\r\x12\x0e\n\x06upUkey\x18\x07 \x01(\x0c\x12\x0e\n\x06\x66ileid\x18\x08 \x01(\x04\x12\x10\n\x08upOffset\x18\t \x01(\x04\x12\x11\n\tblockSize\x18\n \x01(\x04\x12\x0f\n\x07\x66ileKey\x18\x0b \x01(\x0c\x12\x13\n\x0b\x63hannelType\x18\x0c \x01(\r\x12\x18\n\x05upIp6\x18\x1a \x03(\x0b\x32\t.IPv6Info\x12\x11\n\tclientIp6\x18\x1b \x01(\x0c\x42-Z+github.com/Mrs4s/MiraiGo/client/pb/cmd0x388')
+
+
+
+_DELIMGREQ = DESCRIPTOR.message_types_by_name['DelImgReq']
+_DELIMGRSP = DESCRIPTOR.message_types_by_name['DelImgRsp']
+_EXPROAMEXTENDINFO = DESCRIPTOR.message_types_by_name['ExpRoamExtendInfo']
+_EXPROAMPICINFO = DESCRIPTOR.message_types_by_name['ExpRoamPicInfo']
+_EXTENSIONCOMMPICTRYUP = DESCRIPTOR.message_types_by_name['ExtensionCommPicTryUp']
+_EXTENSIONEXPROAMTRYUP = DESCRIPTOR.message_types_by_name['ExtensionExpRoamTryUp']
+_GETIMGURLREQ = DESCRIPTOR.message_types_by_name['GetImgUrlReq']
+_GETIMGURLRSP = DESCRIPTOR.message_types_by_name['GetImgUrlRsp']
+_GETPTTURLREQ = DESCRIPTOR.message_types_by_name['GetPttUrlReq']
+_GETPTTURLRSP = DESCRIPTOR.message_types_by_name['GetPttUrlRsp']
+_IPV6INFO = DESCRIPTOR.message_types_by_name['IPv6Info']
+_IMGINFO = DESCRIPTOR.message_types_by_name['ImgInfo']
+_PICSIZE = DESCRIPTOR.message_types_by_name['PicSize']
+_D388REQBODY = DESCRIPTOR.message_types_by_name['D388ReqBody']
+_D388RSPBODY = DESCRIPTOR.message_types_by_name['D388RspBody']
+_TRYUPIMGREQ = DESCRIPTOR.message_types_by_name['TryUpImgReq']
+_D388TRYUPIMGRSP = DESCRIPTOR.message_types_by_name['D388TryUpImgRsp']
+_TRYUPINFO4BUSI = DESCRIPTOR.message_types_by_name['TryUpInfo4Busi']
+_TRYUPPTTREQ = DESCRIPTOR.message_types_by_name['TryUpPttReq']
+_TRYUPPTTRSP = DESCRIPTOR.message_types_by_name['TryUpPttRsp']
+DelImgReq = _reflection.GeneratedProtocolMessageType('DelImgReq', (_message.Message,), {
+ 'DESCRIPTOR' : _DELIMGREQ,
+ '__module__' : 'cmd0x388_pb2'
+ # @@protoc_insertion_point(class_scope:DelImgReq)
+ })
+_sym_db.RegisterMessage(DelImgReq)
+
+DelImgRsp = _reflection.GeneratedProtocolMessageType('DelImgRsp', (_message.Message,), {
+ 'DESCRIPTOR' : _DELIMGRSP,
+ '__module__' : 'cmd0x388_pb2'
+ # @@protoc_insertion_point(class_scope:DelImgRsp)
+ })
+_sym_db.RegisterMessage(DelImgRsp)
+
+ExpRoamExtendInfo = _reflection.GeneratedProtocolMessageType('ExpRoamExtendInfo', (_message.Message,), {
+ 'DESCRIPTOR' : _EXPROAMEXTENDINFO,
+ '__module__' : 'cmd0x388_pb2'
+ # @@protoc_insertion_point(class_scope:ExpRoamExtendInfo)
+ })
+_sym_db.RegisterMessage(ExpRoamExtendInfo)
+
+ExpRoamPicInfo = _reflection.GeneratedProtocolMessageType('ExpRoamPicInfo', (_message.Message,), {
+ 'DESCRIPTOR' : _EXPROAMPICINFO,
+ '__module__' : 'cmd0x388_pb2'
+ # @@protoc_insertion_point(class_scope:ExpRoamPicInfo)
+ })
+_sym_db.RegisterMessage(ExpRoamPicInfo)
+
+ExtensionCommPicTryUp = _reflection.GeneratedProtocolMessageType('ExtensionCommPicTryUp', (_message.Message,), {
+ 'DESCRIPTOR' : _EXTENSIONCOMMPICTRYUP,
+ '__module__' : 'cmd0x388_pb2'
+ # @@protoc_insertion_point(class_scope:ExtensionCommPicTryUp)
+ })
+_sym_db.RegisterMessage(ExtensionCommPicTryUp)
+
+ExtensionExpRoamTryUp = _reflection.GeneratedProtocolMessageType('ExtensionExpRoamTryUp', (_message.Message,), {
+ 'DESCRIPTOR' : _EXTENSIONEXPROAMTRYUP,
+ '__module__' : 'cmd0x388_pb2'
+ # @@protoc_insertion_point(class_scope:ExtensionExpRoamTryUp)
+ })
+_sym_db.RegisterMessage(ExtensionExpRoamTryUp)
+
+GetImgUrlReq = _reflection.GeneratedProtocolMessageType('GetImgUrlReq', (_message.Message,), {
+ 'DESCRIPTOR' : _GETIMGURLREQ,
+ '__module__' : 'cmd0x388_pb2'
+ # @@protoc_insertion_point(class_scope:GetImgUrlReq)
+ })
+_sym_db.RegisterMessage(GetImgUrlReq)
+
+GetImgUrlRsp = _reflection.GeneratedProtocolMessageType('GetImgUrlRsp', (_message.Message,), {
+ 'DESCRIPTOR' : _GETIMGURLRSP,
+ '__module__' : 'cmd0x388_pb2'
+ # @@protoc_insertion_point(class_scope:GetImgUrlRsp)
+ })
+_sym_db.RegisterMessage(GetImgUrlRsp)
+
+GetPttUrlReq = _reflection.GeneratedProtocolMessageType('GetPttUrlReq', (_message.Message,), {
+ 'DESCRIPTOR' : _GETPTTURLREQ,
+ '__module__' : 'cmd0x388_pb2'
+ # @@protoc_insertion_point(class_scope:GetPttUrlReq)
+ })
+_sym_db.RegisterMessage(GetPttUrlReq)
+
+GetPttUrlRsp = _reflection.GeneratedProtocolMessageType('GetPttUrlRsp', (_message.Message,), {
+ 'DESCRIPTOR' : _GETPTTURLRSP,
+ '__module__' : 'cmd0x388_pb2'
+ # @@protoc_insertion_point(class_scope:GetPttUrlRsp)
+ })
+_sym_db.RegisterMessage(GetPttUrlRsp)
+
+IPv6Info = _reflection.GeneratedProtocolMessageType('IPv6Info', (_message.Message,), {
+ 'DESCRIPTOR' : _IPV6INFO,
+ '__module__' : 'cmd0x388_pb2'
+ # @@protoc_insertion_point(class_scope:IPv6Info)
+ })
+_sym_db.RegisterMessage(IPv6Info)
+
+ImgInfo = _reflection.GeneratedProtocolMessageType('ImgInfo', (_message.Message,), {
+ 'DESCRIPTOR' : _IMGINFO,
+ '__module__' : 'cmd0x388_pb2'
+ # @@protoc_insertion_point(class_scope:ImgInfo)
+ })
+_sym_db.RegisterMessage(ImgInfo)
+
+PicSize = _reflection.GeneratedProtocolMessageType('PicSize', (_message.Message,), {
+ 'DESCRIPTOR' : _PICSIZE,
+ '__module__' : 'cmd0x388_pb2'
+ # @@protoc_insertion_point(class_scope:PicSize)
+ })
+_sym_db.RegisterMessage(PicSize)
+
+D388ReqBody = _reflection.GeneratedProtocolMessageType('D388ReqBody', (_message.Message,), {
+ 'DESCRIPTOR' : _D388REQBODY,
+ '__module__' : 'cmd0x388_pb2'
+ # @@protoc_insertion_point(class_scope:D388ReqBody)
+ })
+_sym_db.RegisterMessage(D388ReqBody)
+
+D388RspBody = _reflection.GeneratedProtocolMessageType('D388RspBody', (_message.Message,), {
+ 'DESCRIPTOR' : _D388RSPBODY,
+ '__module__' : 'cmd0x388_pb2'
+ # @@protoc_insertion_point(class_scope:D388RspBody)
+ })
+_sym_db.RegisterMessage(D388RspBody)
+
+TryUpImgReq = _reflection.GeneratedProtocolMessageType('TryUpImgReq', (_message.Message,), {
+ 'DESCRIPTOR' : _TRYUPIMGREQ,
+ '__module__' : 'cmd0x388_pb2'
+ # @@protoc_insertion_point(class_scope:TryUpImgReq)
+ })
+_sym_db.RegisterMessage(TryUpImgReq)
+
+D388TryUpImgRsp = _reflection.GeneratedProtocolMessageType('D388TryUpImgRsp', (_message.Message,), {
+ 'DESCRIPTOR' : _D388TRYUPIMGRSP,
+ '__module__' : 'cmd0x388_pb2'
+ # @@protoc_insertion_point(class_scope:D388TryUpImgRsp)
+ })
+_sym_db.RegisterMessage(D388TryUpImgRsp)
+
+TryUpInfo4Busi = _reflection.GeneratedProtocolMessageType('TryUpInfo4Busi', (_message.Message,), {
+ 'DESCRIPTOR' : _TRYUPINFO4BUSI,
+ '__module__' : 'cmd0x388_pb2'
+ # @@protoc_insertion_point(class_scope:TryUpInfo4Busi)
+ })
+_sym_db.RegisterMessage(TryUpInfo4Busi)
+
+TryUpPttReq = _reflection.GeneratedProtocolMessageType('TryUpPttReq', (_message.Message,), {
+ 'DESCRIPTOR' : _TRYUPPTTREQ,
+ '__module__' : 'cmd0x388_pb2'
+ # @@protoc_insertion_point(class_scope:TryUpPttReq)
+ })
+_sym_db.RegisterMessage(TryUpPttReq)
+
+TryUpPttRsp = _reflection.GeneratedProtocolMessageType('TryUpPttRsp', (_message.Message,), {
+ 'DESCRIPTOR' : _TRYUPPTTRSP,
+ '__module__' : 'cmd0x388_pb2'
+ # @@protoc_insertion_point(class_scope:TryUpPttRsp)
+ })
+_sym_db.RegisterMessage(TryUpPttRsp)
+
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ DESCRIPTOR._serialized_options = b'Z+github.com/Mrs4s/MiraiGo/client/pb/cmd0x388'
+ _DELIMGREQ._serialized_start=19
+ _DELIMGREQ._serialized_end=194
+ _DELIMGRSP._serialized_start=196
+ _DELIMGRSP._serialized_end=259
+ _EXPROAMEXTENDINFO._serialized_start=261
+ _EXPROAMEXTENDINFO._serialized_end=295
+ _EXPROAMPICINFO._serialized_start=297
+ _EXPROAMPICINFO._serialized_end=361
+ _EXTENSIONCOMMPICTRYUP._serialized_start=363
+ _EXTENSIONCOMMPICTRYUP._serialized_end=403
+ _EXTENSIONEXPROAMTRYUP._serialized_start=405
+ _EXTENSIONEXPROAMTRYUP._serialized_end=469
+ _GETIMGURLREQ._serialized_start=472
+ _GETIMGURLREQ._serialized_end=930
+ _GETIMGURLRSP._serialized_start=933
+ _GETIMGURLRSP._serialized_end=1387
+ _GETPTTURLREQ._serialized_start=1390
+ _GETPTTURLREQ._serialized_end=1668
+ _GETPTTURLRSP._serialized_start=1671
+ _GETPTTURLRSP._serialized_end=1961
+ _IPV6INFO._serialized_start=1963
+ _IPV6INFO._serialized_end=2000
+ _IMGINFO._serialized_start=2002
+ _IMGINFO._serialized_end=2103
+ _PICSIZE._serialized_start=2105
+ _PICSIZE._serialized_end=2161
+ _D388REQBODY._serialized_start=2164
+ _D388REQBODY._serialized_end=2424
+ _D388RSPBODY._serialized_start=2427
+ _D388RSPBODY._serialized_end=2653
+ _TRYUPIMGREQ._serialized_start=2656
+ _TRYUPIMGREQ._serialized_end=3081
+ _D388TRYUPIMGRSP._serialized_start=3084
+ _D388TRYUPIMGRSP._serialized_end=3419
+ _TRYUPINFO4BUSI._serialized_start=3421
+ _TRYUPINFO4BUSI._serialized_end=3543
+ _TRYUPPTTREQ._serialized_start=3546
+ _TRYUPPTTREQ._serialized_end=3841
+ _TRYUPPTTRSP._serialized_start=3844
+ _TRYUPPTTRSP._serialized_end=4106
+# @@protoc_insertion_point(module_scope)
diff --git a/cai/pb/im/oidb/cmd0x388/cmd0x388_pb2.pyi b/cai/pb/im/oidb/cmd0x388/cmd0x388_pb2.pyi
new file mode 100644
index 00000000..49ccf026
--- /dev/null
+++ b/cai/pb/im/oidb/cmd0x388/cmd0x388_pb2.pyi
@@ -0,0 +1,799 @@
+"""
+@generated by mypy-protobuf. Do not edit manually!
+isort:skip_file
+"""
+from builtins import (
+ bool,
+ bytes,
+ int,
+)
+
+from google.protobuf.descriptor import (
+ Descriptor,
+ FileDescriptor,
+)
+
+from google.protobuf.internal.containers import (
+ RepeatedCompositeFieldContainer,
+ RepeatedScalarFieldContainer,
+)
+
+from google.protobuf.message import (
+ Message,
+)
+
+from typing import (
+ Iterable,
+ Optional,
+ Text,
+)
+
+from typing_extensions import (
+ Literal,
+)
+
+
+DESCRIPTOR: FileDescriptor
+
+class DelImgReq(Message):
+ DESCRIPTOR: Descriptor
+ SRCUIN_FIELD_NUMBER: int
+ DSTUIN_FIELD_NUMBER: int
+ REQTERM_FIELD_NUMBER: int
+ REQPLATFORMTYPE_FIELD_NUMBER: int
+ BUTYPE_FIELD_NUMBER: int
+ BUILDVER_FIELD_NUMBER: int
+ FILERESID_FIELD_NUMBER: int
+ PICWIDTH_FIELD_NUMBER: int
+ PICHEIGHT_FIELD_NUMBER: int
+ srcUin: int
+ dstUin: int
+ reqTerm: int
+ reqPlatformType: int
+ buType: int
+ buildVer: bytes
+ fileResid: bytes
+ picWidth: int
+ picHeight: int
+ def __init__(self,
+ *,
+ srcUin: Optional[int] = ...,
+ dstUin: Optional[int] = ...,
+ reqTerm: Optional[int] = ...,
+ reqPlatformType: Optional[int] = ...,
+ buType: Optional[int] = ...,
+ buildVer: Optional[bytes] = ...,
+ fileResid: Optional[bytes] = ...,
+ picWidth: Optional[int] = ...,
+ picHeight: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["buType",b"buType","buildVer",b"buildVer","dstUin",b"dstUin","fileResid",b"fileResid","picHeight",b"picHeight","picWidth",b"picWidth","reqPlatformType",b"reqPlatformType","reqTerm",b"reqTerm","srcUin",b"srcUin"]) -> bool: ...
+ def ClearField(self, field_name: Literal["buType",b"buType","buildVer",b"buildVer","dstUin",b"dstUin","fileResid",b"fileResid","picHeight",b"picHeight","picWidth",b"picWidth","reqPlatformType",b"reqPlatformType","reqTerm",b"reqTerm","srcUin",b"srcUin"]) -> None: ...
+
+class DelImgRsp(Message):
+ DESCRIPTOR: Descriptor
+ RESULT_FIELD_NUMBER: int
+ FAILMSG_FIELD_NUMBER: int
+ FILERESID_FIELD_NUMBER: int
+ result: int
+ failMsg: bytes
+ fileResid: bytes
+ def __init__(self,
+ *,
+ result: Optional[int] = ...,
+ failMsg: Optional[bytes] = ...,
+ fileResid: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["failMsg",b"failMsg","fileResid",b"fileResid","result",b"result"]) -> bool: ...
+ def ClearField(self, field_name: Literal["failMsg",b"failMsg","fileResid",b"fileResid","result",b"result"]) -> None: ...
+
+class ExpRoamExtendInfo(Message):
+ DESCRIPTOR: Descriptor
+ RESID_FIELD_NUMBER: int
+ resid: bytes
+ def __init__(self,
+ *,
+ resid: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["resid",b"resid"]) -> bool: ...
+ def ClearField(self, field_name: Literal["resid",b"resid"]) -> None: ...
+
+class ExpRoamPicInfo(Message):
+ DESCRIPTOR: Descriptor
+ SHOPFLAG_FIELD_NUMBER: int
+ PKGID_FIELD_NUMBER: int
+ PICID_FIELD_NUMBER: int
+ shopFlag: int
+ pkgId: int
+ picId: bytes
+ def __init__(self,
+ *,
+ shopFlag: Optional[int] = ...,
+ pkgId: Optional[int] = ...,
+ picId: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["picId",b"picId","pkgId",b"pkgId","shopFlag",b"shopFlag"]) -> bool: ...
+ def ClearField(self, field_name: Literal["picId",b"picId","pkgId",b"pkgId","shopFlag",b"shopFlag"]) -> None: ...
+
+class ExtensionCommPicTryUp(Message):
+ DESCRIPTOR: Descriptor
+ EXTINFO_FIELD_NUMBER: int
+ @property
+ def extinfo(self) -> RepeatedScalarFieldContainer[bytes]: ...
+ def __init__(self,
+ *,
+ extinfo: Optional[Iterable[bytes]] = ...,
+ ) -> None: ...
+ def ClearField(self, field_name: Literal["extinfo",b"extinfo"]) -> None: ...
+
+class ExtensionExpRoamTryUp(Message):
+ DESCRIPTOR: Descriptor
+ EXPROAMPICINFO_FIELD_NUMBER: int
+ @property
+ def exproamPicInfo(self) -> RepeatedCompositeFieldContainer[ExpRoamPicInfo]: ...
+ def __init__(self,
+ *,
+ exproamPicInfo: Optional[Iterable[ExpRoamPicInfo]] = ...,
+ ) -> None: ...
+ def ClearField(self, field_name: Literal["exproamPicInfo",b"exproamPicInfo"]) -> None: ...
+
+class GetImgUrlReq(Message):
+ DESCRIPTOR: Descriptor
+ GROUPCODE_FIELD_NUMBER: int
+ DSTUIN_FIELD_NUMBER: int
+ FILEID_FIELD_NUMBER: int
+ FILEMD5_FIELD_NUMBER: int
+ URLFLAG_FIELD_NUMBER: int
+ URLTYPE_FIELD_NUMBER: int
+ REQTERM_FIELD_NUMBER: int
+ REQPLATFORMTYPE_FIELD_NUMBER: int
+ INNERIP_FIELD_NUMBER: int
+ BUTYPE_FIELD_NUMBER: int
+ BUILDVER_FIELD_NUMBER: int
+ FILEID_FIELD_NUMBER: int
+ FILESIZE_FIELD_NUMBER: int
+ ORIGINALPIC_FIELD_NUMBER: int
+ RETRYREQ_FIELD_NUMBER: int
+ FILEHEIGHT_FIELD_NUMBER: int
+ FILEWIDTH_FIELD_NUMBER: int
+ PICTYPE_FIELD_NUMBER: int
+ PICUPTIMESTAMP_FIELD_NUMBER: int
+ REQTRANSFERTYPE_FIELD_NUMBER: int
+ QQMEETGUILDID_FIELD_NUMBER: int
+ QQMEETCHANNELID_FIELD_NUMBER: int
+ DOWNLOADINDEX_FIELD_NUMBER: int
+ groupCode: int
+ dstUin: int
+ fileid: int
+ fileMd5: bytes
+ urlFlag: int
+ urlType: int
+ reqTerm: int
+ reqPlatformType: int
+ innerIp: int
+ buType: int
+ buildVer: bytes
+ fileId: int
+ fileSize: int
+ originalPic: int
+ retryReq: int
+ fileHeight: int
+ fileWidth: int
+ picType: int
+ picUpTimestamp: int
+ reqTransferType: int
+ qqmeetGuildId: int
+ qqmeetChannelId: int
+ downloadIndex: bytes
+ def __init__(self,
+ *,
+ groupCode: Optional[int] = ...,
+ dstUin: Optional[int] = ...,
+ fileid: Optional[int] = ...,
+ fileMd5: Optional[bytes] = ...,
+ urlFlag: Optional[int] = ...,
+ urlType: Optional[int] = ...,
+ reqTerm: Optional[int] = ...,
+ reqPlatformType: Optional[int] = ...,
+ innerIp: Optional[int] = ...,
+ buType: Optional[int] = ...,
+ buildVer: Optional[bytes] = ...,
+ fileId: Optional[int] = ...,
+ fileSize: Optional[int] = ...,
+ originalPic: Optional[int] = ...,
+ retryReq: Optional[int] = ...,
+ fileHeight: Optional[int] = ...,
+ fileWidth: Optional[int] = ...,
+ picType: Optional[int] = ...,
+ picUpTimestamp: Optional[int] = ...,
+ reqTransferType: Optional[int] = ...,
+ qqmeetGuildId: Optional[int] = ...,
+ qqmeetChannelId: Optional[int] = ...,
+ downloadIndex: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["buType",b"buType","buildVer",b"buildVer","downloadIndex",b"downloadIndex","dstUin",b"dstUin","fileHeight",b"fileHeight","fileId",b"fileId","fileMd5",b"fileMd5","fileSize",b"fileSize","fileWidth",b"fileWidth","fileid",b"fileid","groupCode",b"groupCode","innerIp",b"innerIp","originalPic",b"originalPic","picType",b"picType","picUpTimestamp",b"picUpTimestamp","qqmeetChannelId",b"qqmeetChannelId","qqmeetGuildId",b"qqmeetGuildId","reqPlatformType",b"reqPlatformType","reqTerm",b"reqTerm","reqTransferType",b"reqTransferType","retryReq",b"retryReq","urlFlag",b"urlFlag","urlType",b"urlType"]) -> bool: ...
+ def ClearField(self, field_name: Literal["buType",b"buType","buildVer",b"buildVer","downloadIndex",b"downloadIndex","dstUin",b"dstUin","fileHeight",b"fileHeight","fileId",b"fileId","fileMd5",b"fileMd5","fileSize",b"fileSize","fileWidth",b"fileWidth","fileid",b"fileid","groupCode",b"groupCode","innerIp",b"innerIp","originalPic",b"originalPic","picType",b"picType","picUpTimestamp",b"picUpTimestamp","qqmeetChannelId",b"qqmeetChannelId","qqmeetGuildId",b"qqmeetGuildId","reqPlatformType",b"reqPlatformType","reqTerm",b"reqTerm","reqTransferType",b"reqTransferType","retryReq",b"retryReq","urlFlag",b"urlFlag","urlType",b"urlType"]) -> None: ...
+
+class GetImgUrlRsp(Message):
+ DESCRIPTOR: Descriptor
+ FILEID_FIELD_NUMBER: int
+ FILEMD5_FIELD_NUMBER: int
+ RESULT_FIELD_NUMBER: int
+ FAILMSG_FIELD_NUMBER: int
+ IMGINFO_FIELD_NUMBER: int
+ THUMBDOWNURL_FIELD_NUMBER: int
+ ORIGINALDOWNURL_FIELD_NUMBER: int
+ BIGDOWNURL_FIELD_NUMBER: int
+ DOWNIP_FIELD_NUMBER: int
+ DOWNPORT_FIELD_NUMBER: int
+ DOWNDOMAIN_FIELD_NUMBER: int
+ THUMBDOWNPARA_FIELD_NUMBER: int
+ ORIGINALDOWNPARA_FIELD_NUMBER: int
+ BIGDOWNPARA_FIELD_NUMBER: int
+ FILEID_FIELD_NUMBER: int
+ AUTODOWNTYPE_FIELD_NUMBER: int
+ ORDERDOWNTYPE_FIELD_NUMBER: int
+ BIGTHUMBDOWNPARA_FIELD_NUMBER: int
+ HTTPSURLFLAG_FIELD_NUMBER: int
+ DOWNIP6_FIELD_NUMBER: int
+ CLIENTIP6_FIELD_NUMBER: int
+ fileid: int
+ fileMd5: bytes
+ result: int
+ failMsg: bytes
+ @property
+ def imgInfo(self) -> ImgInfo: ...
+ @property
+ def thumbDownUrl(self) -> RepeatedScalarFieldContainer[bytes]: ...
+ @property
+ def originalDownUrl(self) -> RepeatedScalarFieldContainer[bytes]: ...
+ @property
+ def bigDownUrl(self) -> RepeatedScalarFieldContainer[bytes]: ...
+ @property
+ def downIp(self) -> RepeatedScalarFieldContainer[int]: ...
+ @property
+ def downPort(self) -> RepeatedScalarFieldContainer[int]: ...
+ downDomain: bytes
+ thumbDownPara: bytes
+ originalDownPara: bytes
+ bigDownPara: bytes
+ fileId: int
+ autoDownType: int
+ @property
+ def orderDownType(self) -> RepeatedScalarFieldContainer[int]: ...
+ bigThumbDownPara: bytes
+ httpsUrlFlag: int
+ @property
+ def downIp6(self) -> RepeatedCompositeFieldContainer[IPv6Info]: ...
+ clientIp6: bytes
+ def __init__(self,
+ *,
+ fileid: Optional[int] = ...,
+ fileMd5: Optional[bytes] = ...,
+ result: Optional[int] = ...,
+ failMsg: Optional[bytes] = ...,
+ imgInfo: Optional[ImgInfo] = ...,
+ thumbDownUrl: Optional[Iterable[bytes]] = ...,
+ originalDownUrl: Optional[Iterable[bytes]] = ...,
+ bigDownUrl: Optional[Iterable[bytes]] = ...,
+ downIp: Optional[Iterable[int]] = ...,
+ downPort: Optional[Iterable[int]] = ...,
+ downDomain: Optional[bytes] = ...,
+ thumbDownPara: Optional[bytes] = ...,
+ originalDownPara: Optional[bytes] = ...,
+ bigDownPara: Optional[bytes] = ...,
+ fileId: Optional[int] = ...,
+ autoDownType: Optional[int] = ...,
+ orderDownType: Optional[Iterable[int]] = ...,
+ bigThumbDownPara: Optional[bytes] = ...,
+ httpsUrlFlag: Optional[int] = ...,
+ downIp6: Optional[Iterable[IPv6Info]] = ...,
+ clientIp6: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["autoDownType",b"autoDownType","bigDownPara",b"bigDownPara","bigThumbDownPara",b"bigThumbDownPara","clientIp6",b"clientIp6","downDomain",b"downDomain","failMsg",b"failMsg","fileId",b"fileId","fileMd5",b"fileMd5","fileid",b"fileid","httpsUrlFlag",b"httpsUrlFlag","imgInfo",b"imgInfo","originalDownPara",b"originalDownPara","result",b"result","thumbDownPara",b"thumbDownPara"]) -> bool: ...
+ def ClearField(self, field_name: Literal["autoDownType",b"autoDownType","bigDownPara",b"bigDownPara","bigDownUrl",b"bigDownUrl","bigThumbDownPara",b"bigThumbDownPara","clientIp6",b"clientIp6","downDomain",b"downDomain","downIp",b"downIp","downIp6",b"downIp6","downPort",b"downPort","failMsg",b"failMsg","fileId",b"fileId","fileMd5",b"fileMd5","fileid",b"fileid","httpsUrlFlag",b"httpsUrlFlag","imgInfo",b"imgInfo","orderDownType",b"orderDownType","originalDownPara",b"originalDownPara","originalDownUrl",b"originalDownUrl","result",b"result","thumbDownPara",b"thumbDownPara","thumbDownUrl",b"thumbDownUrl"]) -> None: ...
+
+class GetPttUrlReq(Message):
+ DESCRIPTOR: Descriptor
+ GROUPCODE_FIELD_NUMBER: int
+ DSTUIN_FIELD_NUMBER: int
+ FILEID_FIELD_NUMBER: int
+ FILEMD5_FIELD_NUMBER: int
+ REQTERM_FIELD_NUMBER: int
+ REQPLATFORMTYPE_FIELD_NUMBER: int
+ INNERIP_FIELD_NUMBER: int
+ BUTYPE_FIELD_NUMBER: int
+ BUILDVER_FIELD_NUMBER: int
+ FILEID_FIELD_NUMBER: int
+ FILEKEY_FIELD_NUMBER: int
+ CODEC_FIELD_NUMBER: int
+ BUID_FIELD_NUMBER: int
+ REQTRANSFERTYPE_FIELD_NUMBER: int
+ ISAUTO_FIELD_NUMBER: int
+ groupCode: int
+ dstUin: int
+ fileid: int
+ fileMd5: bytes
+ reqTerm: int
+ reqPlatformType: int
+ innerIp: int
+ buType: int
+ buildVer: bytes
+ fileId: int
+ fileKey: bytes
+ codec: int
+ buId: int
+ reqTransferType: int
+ isAuto: int
+ def __init__(self,
+ *,
+ groupCode: Optional[int] = ...,
+ dstUin: Optional[int] = ...,
+ fileid: Optional[int] = ...,
+ fileMd5: Optional[bytes] = ...,
+ reqTerm: Optional[int] = ...,
+ reqPlatformType: Optional[int] = ...,
+ innerIp: Optional[int] = ...,
+ buType: Optional[int] = ...,
+ buildVer: Optional[bytes] = ...,
+ fileId: Optional[int] = ...,
+ fileKey: Optional[bytes] = ...,
+ codec: Optional[int] = ...,
+ buId: Optional[int] = ...,
+ reqTransferType: Optional[int] = ...,
+ isAuto: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["buId",b"buId","buType",b"buType","buildVer",b"buildVer","codec",b"codec","dstUin",b"dstUin","fileId",b"fileId","fileKey",b"fileKey","fileMd5",b"fileMd5","fileid",b"fileid","groupCode",b"groupCode","innerIp",b"innerIp","isAuto",b"isAuto","reqPlatformType",b"reqPlatformType","reqTerm",b"reqTerm","reqTransferType",b"reqTransferType"]) -> bool: ...
+ def ClearField(self, field_name: Literal["buId",b"buId","buType",b"buType","buildVer",b"buildVer","codec",b"codec","dstUin",b"dstUin","fileId",b"fileId","fileKey",b"fileKey","fileMd5",b"fileMd5","fileid",b"fileid","groupCode",b"groupCode","innerIp",b"innerIp","isAuto",b"isAuto","reqPlatformType",b"reqPlatformType","reqTerm",b"reqTerm","reqTransferType",b"reqTransferType"]) -> None: ...
+
+class GetPttUrlRsp(Message):
+ DESCRIPTOR: Descriptor
+ FILEID_FIELD_NUMBER: int
+ FILEMD5_FIELD_NUMBER: int
+ RESULT_FIELD_NUMBER: int
+ FAILMSG_FIELD_NUMBER: int
+ DOWNURL_FIELD_NUMBER: int
+ DOWNIP_FIELD_NUMBER: int
+ DOWNPORT_FIELD_NUMBER: int
+ DOWNDOMAIN_FIELD_NUMBER: int
+ DOWNPARA_FIELD_NUMBER: int
+ FILEID_FIELD_NUMBER: int
+ TRANSFERTYPE_FIELD_NUMBER: int
+ ALLOWRETRY_FIELD_NUMBER: int
+ DOWNIP6_FIELD_NUMBER: int
+ CLIENTIP6_FIELD_NUMBER: int
+ DOMAIN_FIELD_NUMBER: int
+ fileid: int
+ fileMd5: bytes
+ result: int
+ failMsg: bytes
+ @property
+ def downUrl(self) -> RepeatedScalarFieldContainer[bytes]: ...
+ @property
+ def downIp(self) -> RepeatedScalarFieldContainer[int]: ...
+ @property
+ def downPort(self) -> RepeatedScalarFieldContainer[int]: ...
+ downDomain: bytes
+ downPara: bytes
+ fileId: int
+ transferType: int
+ allowRetry: int
+ @property
+ def downIp6(self) -> RepeatedCompositeFieldContainer[IPv6Info]: ...
+ clientIp6: bytes
+ domain: Text
+ def __init__(self,
+ *,
+ fileid: Optional[int] = ...,
+ fileMd5: Optional[bytes] = ...,
+ result: Optional[int] = ...,
+ failMsg: Optional[bytes] = ...,
+ downUrl: Optional[Iterable[bytes]] = ...,
+ downIp: Optional[Iterable[int]] = ...,
+ downPort: Optional[Iterable[int]] = ...,
+ downDomain: Optional[bytes] = ...,
+ downPara: Optional[bytes] = ...,
+ fileId: Optional[int] = ...,
+ transferType: Optional[int] = ...,
+ allowRetry: Optional[int] = ...,
+ downIp6: Optional[Iterable[IPv6Info]] = ...,
+ clientIp6: Optional[bytes] = ...,
+ domain: Optional[Text] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["allowRetry",b"allowRetry","clientIp6",b"clientIp6","domain",b"domain","downDomain",b"downDomain","downPara",b"downPara","failMsg",b"failMsg","fileId",b"fileId","fileMd5",b"fileMd5","fileid",b"fileid","result",b"result","transferType",b"transferType"]) -> bool: ...
+ def ClearField(self, field_name: Literal["allowRetry",b"allowRetry","clientIp6",b"clientIp6","domain",b"domain","downDomain",b"downDomain","downIp",b"downIp","downIp6",b"downIp6","downPara",b"downPara","downPort",b"downPort","downUrl",b"downUrl","failMsg",b"failMsg","fileId",b"fileId","fileMd5",b"fileMd5","fileid",b"fileid","result",b"result","transferType",b"transferType"]) -> None: ...
+
+class IPv6Info(Message):
+ DESCRIPTOR: Descriptor
+ IP6_FIELD_NUMBER: int
+ PORT_FIELD_NUMBER: int
+ ip6: bytes
+ port: int
+ def __init__(self,
+ *,
+ ip6: Optional[bytes] = ...,
+ port: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["ip6",b"ip6","port",b"port"]) -> bool: ...
+ def ClearField(self, field_name: Literal["ip6",b"ip6","port",b"port"]) -> None: ...
+
+class ImgInfo(Message):
+ DESCRIPTOR: Descriptor
+ FILEMD5_FIELD_NUMBER: int
+ FILETYPE_FIELD_NUMBER: int
+ FILESIZE_FIELD_NUMBER: int
+ FILEWIDTH_FIELD_NUMBER: int
+ FILEHEIGHT_FIELD_NUMBER: int
+ fileMd5: bytes
+ fileType: int
+ fileSize: int
+ fileWidth: int
+ fileHeight: int
+ def __init__(self,
+ *,
+ fileMd5: Optional[bytes] = ...,
+ fileType: Optional[int] = ...,
+ fileSize: Optional[int] = ...,
+ fileWidth: Optional[int] = ...,
+ fileHeight: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["fileHeight",b"fileHeight","fileMd5",b"fileMd5","fileSize",b"fileSize","fileType",b"fileType","fileWidth",b"fileWidth"]) -> bool: ...
+ def ClearField(self, field_name: Literal["fileHeight",b"fileHeight","fileMd5",b"fileMd5","fileSize",b"fileSize","fileType",b"fileType","fileWidth",b"fileWidth"]) -> None: ...
+
+class PicSize(Message):
+ DESCRIPTOR: Descriptor
+ ORIGINAL_FIELD_NUMBER: int
+ THUMB_FIELD_NUMBER: int
+ HIGH_FIELD_NUMBER: int
+ original: int
+ thumb: int
+ high: int
+ def __init__(self,
+ *,
+ original: Optional[int] = ...,
+ thumb: Optional[int] = ...,
+ high: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["high",b"high","original",b"original","thumb",b"thumb"]) -> bool: ...
+ def ClearField(self, field_name: Literal["high",b"high","original",b"original","thumb",b"thumb"]) -> None: ...
+
+class D388ReqBody(Message):
+ DESCRIPTOR: Descriptor
+ NETTYPE_FIELD_NUMBER: int
+ SUBCMD_FIELD_NUMBER: int
+ TRYUPIMGREQ_FIELD_NUMBER: int
+ GETIMGURLREQ_FIELD_NUMBER: int
+ TRYUPPTTREQ_FIELD_NUMBER: int
+ GETPTTURLREQ_FIELD_NUMBER: int
+ COMMANDID_FIELD_NUMBER: int
+ DELIMGREQ_FIELD_NUMBER: int
+ EXTENSION_FIELD_NUMBER: int
+ netType: int
+ subcmd: int
+ @property
+ def tryupImgReq(self) -> RepeatedCompositeFieldContainer[TryUpImgReq]: ...
+ @property
+ def getimgUrlReq(self) -> RepeatedCompositeFieldContainer[GetImgUrlReq]: ...
+ @property
+ def tryupPttReq(self) -> RepeatedCompositeFieldContainer[TryUpPttReq]: ...
+ @property
+ def getpttUrlReq(self) -> RepeatedCompositeFieldContainer[GetPttUrlReq]: ...
+ commandId: int
+ @property
+ def delImgReq(self) -> RepeatedCompositeFieldContainer[DelImgReq]: ...
+ extension: bytes
+ def __init__(self,
+ *,
+ netType: Optional[int] = ...,
+ subcmd: Optional[int] = ...,
+ tryupImgReq: Optional[Iterable[TryUpImgReq]] = ...,
+ getimgUrlReq: Optional[Iterable[GetImgUrlReq]] = ...,
+ tryupPttReq: Optional[Iterable[TryUpPttReq]] = ...,
+ getpttUrlReq: Optional[Iterable[GetPttUrlReq]] = ...,
+ commandId: Optional[int] = ...,
+ delImgReq: Optional[Iterable[DelImgReq]] = ...,
+ extension: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["commandId",b"commandId","extension",b"extension","netType",b"netType","subcmd",b"subcmd"]) -> bool: ...
+ def ClearField(self, field_name: Literal["commandId",b"commandId","delImgReq",b"delImgReq","extension",b"extension","getimgUrlReq",b"getimgUrlReq","getpttUrlReq",b"getpttUrlReq","netType",b"netType","subcmd",b"subcmd","tryupImgReq",b"tryupImgReq","tryupPttReq",b"tryupPttReq"]) -> None: ...
+
+class D388RspBody(Message):
+ DESCRIPTOR: Descriptor
+ CLIENTIP_FIELD_NUMBER: int
+ SUBCMD_FIELD_NUMBER: int
+ TRYUPIMGRSP_FIELD_NUMBER: int
+ GETIMGURLRSP_FIELD_NUMBER: int
+ TRYUPPTTRSP_FIELD_NUMBER: int
+ GETPTTURLRSP_FIELD_NUMBER: int
+ DELIMGRSP_FIELD_NUMBER: int
+ clientIp: int
+ subcmd: int
+ @property
+ def tryupImgRsp(self) -> RepeatedCompositeFieldContainer[D388TryUpImgRsp]: ...
+ @property
+ def getimgUrlRsp(self) -> RepeatedCompositeFieldContainer[GetImgUrlRsp]: ...
+ @property
+ def tryupPttRsp(self) -> RepeatedCompositeFieldContainer[TryUpPttRsp]: ...
+ @property
+ def getpttUrlRsp(self) -> RepeatedCompositeFieldContainer[GetPttUrlRsp]: ...
+ @property
+ def delImgRsp(self) -> RepeatedCompositeFieldContainer[DelImgRsp]: ...
+ def __init__(self,
+ *,
+ clientIp: Optional[int] = ...,
+ subcmd: Optional[int] = ...,
+ tryupImgRsp: Optional[Iterable[D388TryUpImgRsp]] = ...,
+ getimgUrlRsp: Optional[Iterable[GetImgUrlRsp]] = ...,
+ tryupPttRsp: Optional[Iterable[TryUpPttRsp]] = ...,
+ getpttUrlRsp: Optional[Iterable[GetPttUrlRsp]] = ...,
+ delImgRsp: Optional[Iterable[DelImgRsp]] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["clientIp",b"clientIp","subcmd",b"subcmd"]) -> bool: ...
+ def ClearField(self, field_name: Literal["clientIp",b"clientIp","delImgRsp",b"delImgRsp","getimgUrlRsp",b"getimgUrlRsp","getpttUrlRsp",b"getpttUrlRsp","subcmd",b"subcmd","tryupImgRsp",b"tryupImgRsp","tryupPttRsp",b"tryupPttRsp"]) -> None: ...
+
+class TryUpImgReq(Message):
+ DESCRIPTOR: Descriptor
+ GROUPCODE_FIELD_NUMBER: int
+ SRCUIN_FIELD_NUMBER: int
+ FILEID_FIELD_NUMBER: int
+ FILEMD5_FIELD_NUMBER: int
+ FILESIZE_FIELD_NUMBER: int
+ FILENAME_FIELD_NUMBER: int
+ SRCTERM_FIELD_NUMBER: int
+ PLATFORMTYPE_FIELD_NUMBER: int
+ BUTYPE_FIELD_NUMBER: int
+ PICWIDTH_FIELD_NUMBER: int
+ PICHEIGHT_FIELD_NUMBER: int
+ PICTYPE_FIELD_NUMBER: int
+ BUILDVER_FIELD_NUMBER: int
+ INNERIP_FIELD_NUMBER: int
+ APPPICTYPE_FIELD_NUMBER: int
+ ORIGINALPIC_FIELD_NUMBER: int
+ FILEINDEX_FIELD_NUMBER: int
+ DSTUIN_FIELD_NUMBER: int
+ SRVUPLOAD_FIELD_NUMBER: int
+ TRANSFERURL_FIELD_NUMBER: int
+ QQMEETGUILDID_FIELD_NUMBER: int
+ QQMEETCHANNELID_FIELD_NUMBER: int
+ groupCode: int
+ srcUin: int
+ fileId: int
+ fileMd5: bytes
+ fileSize: int
+ fileName: bytes
+ srcTerm: int
+ platformType: int
+ buType: int
+ picWidth: int
+ picHeight: int
+ picType: int
+ buildVer: bytes
+ innerIp: int
+ appPicType: int
+ originalPic: int
+ fileIndex: bytes
+ dstUin: int
+ srvUpload: int
+ transferUrl: bytes
+ qqmeetGuildId: int
+ qqmeetChannelId: int
+ def __init__(self,
+ *,
+ groupCode: Optional[int] = ...,
+ srcUin: Optional[int] = ...,
+ fileId: Optional[int] = ...,
+ fileMd5: Optional[bytes] = ...,
+ fileSize: Optional[int] = ...,
+ fileName: Optional[bytes] = ...,
+ srcTerm: Optional[int] = ...,
+ platformType: Optional[int] = ...,
+ buType: Optional[int] = ...,
+ picWidth: Optional[int] = ...,
+ picHeight: Optional[int] = ...,
+ picType: Optional[int] = ...,
+ buildVer: Optional[bytes] = ...,
+ innerIp: Optional[int] = ...,
+ appPicType: Optional[int] = ...,
+ originalPic: Optional[int] = ...,
+ fileIndex: Optional[bytes] = ...,
+ dstUin: Optional[int] = ...,
+ srvUpload: Optional[int] = ...,
+ transferUrl: Optional[bytes] = ...,
+ qqmeetGuildId: Optional[int] = ...,
+ qqmeetChannelId: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["appPicType",b"appPicType","buType",b"buType","buildVer",b"buildVer","dstUin",b"dstUin","fileId",b"fileId","fileIndex",b"fileIndex","fileMd5",b"fileMd5","fileName",b"fileName","fileSize",b"fileSize","groupCode",b"groupCode","innerIp",b"innerIp","originalPic",b"originalPic","picHeight",b"picHeight","picType",b"picType","picWidth",b"picWidth","platformType",b"platformType","qqmeetChannelId",b"qqmeetChannelId","qqmeetGuildId",b"qqmeetGuildId","srcTerm",b"srcTerm","srcUin",b"srcUin","srvUpload",b"srvUpload","transferUrl",b"transferUrl"]) -> bool: ...
+ def ClearField(self, field_name: Literal["appPicType",b"appPicType","buType",b"buType","buildVer",b"buildVer","dstUin",b"dstUin","fileId",b"fileId","fileIndex",b"fileIndex","fileMd5",b"fileMd5","fileName",b"fileName","fileSize",b"fileSize","groupCode",b"groupCode","innerIp",b"innerIp","originalPic",b"originalPic","picHeight",b"picHeight","picType",b"picType","picWidth",b"picWidth","platformType",b"platformType","qqmeetChannelId",b"qqmeetChannelId","qqmeetGuildId",b"qqmeetGuildId","srcTerm",b"srcTerm","srcUin",b"srcUin","srvUpload",b"srvUpload","transferUrl",b"transferUrl"]) -> None: ...
+
+class D388TryUpImgRsp(Message):
+ DESCRIPTOR: Descriptor
+ FILEID_FIELD_NUMBER: int
+ RESULT_FIELD_NUMBER: int
+ FAILMSG_FIELD_NUMBER: int
+ FILEEXIT_FIELD_NUMBER: int
+ IMGINFO_FIELD_NUMBER: int
+ UPIP_FIELD_NUMBER: int
+ UPPORT_FIELD_NUMBER: int
+ UPUKEY_FIELD_NUMBER: int
+ FILEID_FIELD_NUMBER: int
+ UPOFFSET_FIELD_NUMBER: int
+ BLOCKSIZE_FIELD_NUMBER: int
+ NEWBIGCHAN_FIELD_NUMBER: int
+ UPIP6_FIELD_NUMBER: int
+ CLIENTIP6_FIELD_NUMBER: int
+ DOWNLOADINDEX_FIELD_NUMBER: int
+ INFO4BUSI_FIELD_NUMBER: int
+ fileId: int
+ result: int
+ failMsg: bytes
+ fileExit: bool
+ @property
+ def imgInfo(self) -> ImgInfo: ...
+ @property
+ def upIp(self) -> RepeatedScalarFieldContainer[int]: ...
+ @property
+ def upPort(self) -> RepeatedScalarFieldContainer[int]: ...
+ upUkey: bytes
+ fileid: int
+ upOffset: int
+ blockSize: int
+ newBigChan: bool
+ @property
+ def upIp6(self) -> RepeatedCompositeFieldContainer[IPv6Info]: ...
+ clientIp6: bytes
+ downloadIndex: bytes
+ @property
+ def info4Busi(self) -> TryUpInfo4Busi: ...
+ def __init__(self,
+ *,
+ fileId: Optional[int] = ...,
+ result: Optional[int] = ...,
+ failMsg: Optional[bytes] = ...,
+ fileExit: Optional[bool] = ...,
+ imgInfo: Optional[ImgInfo] = ...,
+ upIp: Optional[Iterable[int]] = ...,
+ upPort: Optional[Iterable[int]] = ...,
+ upUkey: Optional[bytes] = ...,
+ fileid: Optional[int] = ...,
+ upOffset: Optional[int] = ...,
+ blockSize: Optional[int] = ...,
+ newBigChan: Optional[bool] = ...,
+ upIp6: Optional[Iterable[IPv6Info]] = ...,
+ clientIp6: Optional[bytes] = ...,
+ downloadIndex: Optional[bytes] = ...,
+ info4Busi: Optional[TryUpInfo4Busi] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["blockSize",b"blockSize","clientIp6",b"clientIp6","downloadIndex",b"downloadIndex","failMsg",b"failMsg","fileExit",b"fileExit","fileId",b"fileId","fileid",b"fileid","imgInfo",b"imgInfo","info4Busi",b"info4Busi","newBigChan",b"newBigChan","result",b"result","upOffset",b"upOffset","upUkey",b"upUkey"]) -> bool: ...
+ def ClearField(self, field_name: Literal["blockSize",b"blockSize","clientIp6",b"clientIp6","downloadIndex",b"downloadIndex","failMsg",b"failMsg","fileExit",b"fileExit","fileId",b"fileId","fileid",b"fileid","imgInfo",b"imgInfo","info4Busi",b"info4Busi","newBigChan",b"newBigChan","result",b"result","upIp",b"upIp","upIp6",b"upIp6","upOffset",b"upOffset","upPort",b"upPort","upUkey",b"upUkey"]) -> None: ...
+
+class TryUpInfo4Busi(Message):
+ DESCRIPTOR: Descriptor
+ DOWNDOMAIN_FIELD_NUMBER: int
+ THUMBDOWNURL_FIELD_NUMBER: int
+ ORIGINALDOWNURL_FIELD_NUMBER: int
+ BIGDOWNURL_FIELD_NUMBER: int
+ FILERESID_FIELD_NUMBER: int
+ downDomain: bytes
+ thumbDownUrl: bytes
+ originalDownUrl: bytes
+ bigDownUrl: bytes
+ fileResid: bytes
+ def __init__(self,
+ *,
+ downDomain: Optional[bytes] = ...,
+ thumbDownUrl: Optional[bytes] = ...,
+ originalDownUrl: Optional[bytes] = ...,
+ bigDownUrl: Optional[bytes] = ...,
+ fileResid: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["bigDownUrl",b"bigDownUrl","downDomain",b"downDomain","fileResid",b"fileResid","originalDownUrl",b"originalDownUrl","thumbDownUrl",b"thumbDownUrl"]) -> bool: ...
+ def ClearField(self, field_name: Literal["bigDownUrl",b"bigDownUrl","downDomain",b"downDomain","fileResid",b"fileResid","originalDownUrl",b"originalDownUrl","thumbDownUrl",b"thumbDownUrl"]) -> None: ...
+
+class TryUpPttReq(Message):
+ DESCRIPTOR: Descriptor
+ GROUPCODE_FIELD_NUMBER: int
+ SRCUIN_FIELD_NUMBER: int
+ FILEID_FIELD_NUMBER: int
+ FILEMD5_FIELD_NUMBER: int
+ FILESIZE_FIELD_NUMBER: int
+ FILENAME_FIELD_NUMBER: int
+ SRCTERM_FIELD_NUMBER: int
+ PLATFORMTYPE_FIELD_NUMBER: int
+ BUTYPE_FIELD_NUMBER: int
+ BUILDVER_FIELD_NUMBER: int
+ INNERIP_FIELD_NUMBER: int
+ VOICELENGTH_FIELD_NUMBER: int
+ NEWUPCHAN_FIELD_NUMBER: int
+ CODEC_FIELD_NUMBER: int
+ VOICETYPE_FIELD_NUMBER: int
+ BUID_FIELD_NUMBER: int
+ groupCode: int
+ srcUin: int
+ fileId: int
+ fileMd5: bytes
+ fileSize: int
+ fileName: bytes
+ srcTerm: int
+ platformType: int
+ buType: int
+ buildVer: bytes
+ innerIp: int
+ voiceLength: int
+ newUpChan: bool
+ codec: int
+ voiceType: int
+ buId: int
+ def __init__(self,
+ *,
+ groupCode: Optional[int] = ...,
+ srcUin: Optional[int] = ...,
+ fileId: Optional[int] = ...,
+ fileMd5: Optional[bytes] = ...,
+ fileSize: Optional[int] = ...,
+ fileName: Optional[bytes] = ...,
+ srcTerm: Optional[int] = ...,
+ platformType: Optional[int] = ...,
+ buType: Optional[int] = ...,
+ buildVer: Optional[bytes] = ...,
+ innerIp: Optional[int] = ...,
+ voiceLength: Optional[int] = ...,
+ newUpChan: Optional[bool] = ...,
+ codec: Optional[int] = ...,
+ voiceType: Optional[int] = ...,
+ buId: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["buId",b"buId","buType",b"buType","buildVer",b"buildVer","codec",b"codec","fileId",b"fileId","fileMd5",b"fileMd5","fileName",b"fileName","fileSize",b"fileSize","groupCode",b"groupCode","innerIp",b"innerIp","newUpChan",b"newUpChan","platformType",b"platformType","srcTerm",b"srcTerm","srcUin",b"srcUin","voiceLength",b"voiceLength","voiceType",b"voiceType"]) -> bool: ...
+ def ClearField(self, field_name: Literal["buId",b"buId","buType",b"buType","buildVer",b"buildVer","codec",b"codec","fileId",b"fileId","fileMd5",b"fileMd5","fileName",b"fileName","fileSize",b"fileSize","groupCode",b"groupCode","innerIp",b"innerIp","newUpChan",b"newUpChan","platformType",b"platformType","srcTerm",b"srcTerm","srcUin",b"srcUin","voiceLength",b"voiceLength","voiceType",b"voiceType"]) -> None: ...
+
+class TryUpPttRsp(Message):
+ DESCRIPTOR: Descriptor
+ FILEID_FIELD_NUMBER: int
+ RESULT_FIELD_NUMBER: int
+ FAILMSG_FIELD_NUMBER: int
+ FILEEXIT_FIELD_NUMBER: int
+ UPIP_FIELD_NUMBER: int
+ UPPORT_FIELD_NUMBER: int
+ UPUKEY_FIELD_NUMBER: int
+ FILEID_FIELD_NUMBER: int
+ UPOFFSET_FIELD_NUMBER: int
+ BLOCKSIZE_FIELD_NUMBER: int
+ FILEKEY_FIELD_NUMBER: int
+ CHANNELTYPE_FIELD_NUMBER: int
+ UPIP6_FIELD_NUMBER: int
+ CLIENTIP6_FIELD_NUMBER: int
+ fileId: int
+ result: int
+ failMsg: bytes
+ fileExit: bool
+ @property
+ def upIp(self) -> RepeatedScalarFieldContainer[int]: ...
+ @property
+ def upPort(self) -> RepeatedScalarFieldContainer[int]: ...
+ upUkey: bytes
+ fileid: int
+ upOffset: int
+ blockSize: int
+ fileKey: bytes
+ channelType: int
+ @property
+ def upIp6(self) -> RepeatedCompositeFieldContainer[IPv6Info]: ...
+ clientIp6: bytes
+ def __init__(self,
+ *,
+ fileId: Optional[int] = ...,
+ result: Optional[int] = ...,
+ failMsg: Optional[bytes] = ...,
+ fileExit: Optional[bool] = ...,
+ upIp: Optional[Iterable[int]] = ...,
+ upPort: Optional[Iterable[int]] = ...,
+ upUkey: Optional[bytes] = ...,
+ fileid: Optional[int] = ...,
+ upOffset: Optional[int] = ...,
+ blockSize: Optional[int] = ...,
+ fileKey: Optional[bytes] = ...,
+ channelType: Optional[int] = ...,
+ upIp6: Optional[Iterable[IPv6Info]] = ...,
+ clientIp6: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["blockSize",b"blockSize","channelType",b"channelType","clientIp6",b"clientIp6","failMsg",b"failMsg","fileExit",b"fileExit","fileId",b"fileId","fileKey",b"fileKey","fileid",b"fileid","result",b"result","upOffset",b"upOffset","upUkey",b"upUkey"]) -> bool: ...
+ def ClearField(self, field_name: Literal["blockSize",b"blockSize","channelType",b"channelType","clientIp6",b"clientIp6","failMsg",b"failMsg","fileExit",b"fileExit","fileId",b"fileId","fileKey",b"fileKey","fileid",b"fileid","result",b"result","upIp",b"upIp","upIp6",b"upIp6","upOffset",b"upOffset","upPort",b"upPort","upUkey",b"upUkey"]) -> None: ...
From 0d452b51ef64cd056242f06ca9b26857a427b384 Mon Sep 17 00:00:00 2001
From: a1025
Date: Mon, 21 Mar 2022 23:57:45 +0800
Subject: [PATCH 024/113] sync changes
---
cai/api/client.py | 11 +-
cai/client/client.py | 6 +-
cai/client/highway.py | 162 +++++++++++++++++++++++++--
cai/client/message_service/models.py | 4 +-
cai/client/message_service/upload.py | 29 +++++
cai/client/multi_msg/long_msg.py | 5 +-
examples/login.py | 2 +
7 files changed, 199 insertions(+), 20 deletions(-)
create mode 100644 cai/client/message_service/upload.py
diff --git a/cai/api/client.py b/cai/api/client.py
index af0f4831..85a9a580 100644
--- a/cai/api/client.py
+++ b/cai/api/client.py
@@ -8,7 +8,7 @@
"""
import hashlib
-from typing import Union, Optional, Sequence
+from typing import Union, Optional, Sequence, BinaryIO
from cai.client import OnlineStatus, Client as client_t
from cai.client.message_service.encoders import make_group_msg_pkg, build_msg
@@ -17,7 +17,10 @@
from .friend import Friend as _Friend
from .group import Group as _Group
from .login import Login as _Login
+from cai.utils.gcode import GroupIdConvertor
from cai.client.message_service.models import Element
+from cai.client.message_service.upload import encode_d388_req
+from ..client.highway import calc_file_md5_and_length, upload_image
def make_client(
@@ -53,13 +56,17 @@ async def send_group_msg(self, gid: int, msg: Sequence[Element]):
seq = self.client.next_seq()
# todo: split long msg
return await self.client.send_unipkg_and_wait(
- seq,
"MessageSvc.PbSendMsg",
make_group_msg_pkg(
seq, gid, build_msg(msg)
).SerializeToString()
)
+ async def upload_image(self, group_id: int, file: BinaryIO):
+ await upload_image(file, group_id, self.client)
+ "todo: https://github.com/Mrs4s/MiraiGo/blob/714961d68f3dcd6956771d7b8bdea70d96ad65fd/client/image.go#L98"
+
+
async def close(self):
"""Stop Client"""
await self.client.close()
diff --git a/cai/client/client.py b/cai/client/client.py
index 2aeeda14..a3a26529 100644
--- a/cai/client/client.py
+++ b/cai/client/client.py
@@ -389,8 +389,10 @@ async def send_and_wait(
await self.send(seq, command_name, packet)
return await self._receive_store.fetch(seq, timeout)
- async def send_unipkg_and_wait(self, seq: int, command_name: str, enc_packet: bytes, timeout=10.0):
- await self.send_and_wait(
+ async def send_unipkg_and_wait(self, command_name: str, enc_packet: bytes, seq=-1, timeout=10.0):
+ if seq == -1:
+ seq = self.next_seq()
+ return await self.send_and_wait(
seq, command_name,
UniPacket.build(self.uin, seq, command_name, self._session_id, 1, enc_packet, self._siginfo.d2key),
timeout
diff --git a/cai/client/highway.py b/cai/client/highway.py
index d1bb18ea..303125d3 100644
--- a/cai/client/highway.py
+++ b/cai/client/highway.py
@@ -1,24 +1,34 @@
import asyncio
+import ipaddress
+import struct
+import uuid
+from dataclasses import dataclass
from hashlib import md5
-from typing import Tuple, BinaryIO, TYPE_CHECKING
+from typing import Tuple, BinaryIO, TYPE_CHECKING, Optional
+from cai.client.message_service.models import ImageElement
+from cai.utils.gcode import GroupIdConvertor
+from cai.client.message_service.upload import encode_d388_req, decode_d388_rsp
from cai.pb.highway.protocol.highway_head_pb2 import highway_head
if TYPE_CHECKING:
from cai.client.client import Client
+
# https://github.com/Mrs4s/MiraiGo/blob/master/client/internal/highway/highway.go#L79
-def calc_file_md5(file: BinaryIO, bs=4096) -> str:
+def calc_file_md5_and_length(file: BinaryIO, bs=4096) -> Tuple[bytes, int]:
try:
- fm = md5()
+ fm, length = md5(), 0
while True:
bl = file.read(bs)
fm.update(bl)
if len(bl) != bs:
break
- return fm.hexdigest()
+ else:
+ length += len(bl)
+ return fm.digest(), length
finally:
file.seek(0)
@@ -32,7 +42,7 @@ def create_highway_header(
) -> highway_head.DataHighwayHead:
return highway_head.DataHighwayHead(
version=1,
- uin=bytes(str(client.uin)),
+ uin=str(client.uin).encode(),
command=cmd,
commandId=cmd_id,
seq=client.next_seq(),
@@ -42,23 +52,151 @@ def create_highway_header(
)
-async def upload_file(addr: Tuple[str, int], file: BinaryIO, cmd_id: int, client: Client, *, block_size=65535):
- fmd5, fl = calc_file_md5(file), len(file.read())
+def itoa(i: int) -> str: # int to address(str)
+ return ipaddress.IPv4Address(i).compressed
+
+
+def to_img_id(i_uuid: int) -> str:
+ return "{%s}.png" % uuid.UUID(int=i_uuid)
+
+
+def write_frame(head: bytes, body: bytes) -> bytes:
+ buf = bytearray()
+ buf.append(0x28)
+ buf += struct.pack("!II", len(head), len(body))
+ buf += head
+ buf += body
+ buf.append(0x29)
+ return buf
+
+
+async def read_frame(reader: asyncio.StreamReader) -> Tuple[highway_head.RspDataHighwayHead, bytes]:
+ head = await reader.read(9)
+ if len(head) != 9:
+ raise ValueError("Invalid frame head", head)
+ _, hl, bl = struct.unpack("!cII", head)
+ return (
+ highway_head.RspDataHighwayHead.FromString(await reader.readexactly(hl)),
+ await reader.readexactly(bl)
+ )
+
+
+@dataclass
+class ImageUploadResponse:
+ uploadKey: Optional[bytes] = None
+ uploadIp: Optional[int] = None
+ uploadPort: Optional[int] = None
+ width: Optional[int] = None
+ height: Optional[int] = None
+ message: Optional[str] = None
+ downloadIndex: Optional[str] = None
+ resourceId: Optional[int] = None
+ fileId: Optional[int] = None
+ fileType: Optional[int] = None
+ resultCode: Optional[int] = 0
+ isExists: bool = False
+ hasMetaData: bool = False
+
+
+def decode_upload_image_resp(data: bytes) -> ImageUploadResponse:
+ pkg = decode_d388_rsp(data).tryupImgRsp[0]
+ if pkg.result != 0:
+ return ImageUploadResponse(resultCode=pkg.result, message=pkg.failMsg.decode())
+
+ if pkg.fileExit:
+ if pkg.imgInfo:
+ info = pkg.imgInfo
+ return ImageUploadResponse(
+ isExists=True, fileId=pkg.fileId, hasMetaData=True,
+ fileType=info.fileType, width=info.fileWidth, height=info.fileHeight
+ )
+ else:
+ return ImageUploadResponse(isExists=True, fileId=pkg.fileId)
+ return ImageUploadResponse(
+ isExists=False,
+ uploadIp=pkg.upIp[0], # todo: parse
+ uploadPort=pkg.upPort[0],
+ uploadKey=pkg.upUkey
+ )
+
+
+async def upload_image(file: BinaryIO, gid: int, client: "Client") -> ImageElement:
+ fmd5, fl = calc_file_md5_and_length(file)
+ ret = decode_upload_image_resp(
+ (await client.send_unipkg_and_wait(
+ "ImgStore.GroupPicUp",
+ encode_d388_req(GroupIdConvertor.to_group_code(gid), client.uin, fmd5, fl).SerializeToString()
+ )).data
+ )
+ print(ret)
+ if ret.resultCode != 0:
+ raise ConnectionError(ret.resultCode)
+ elif not ret.isExists:
+ print("not exists")
+ #raise ValueError("Upload Error")
+
+ await bdh_uploader(
+ b"PicUp.DataUp",
+ (itoa(ret.uploadIp), ret.uploadPort),
+ file,
+ 2,
+ ret.uploadKey,
+ client
+ )
file.seek(0)
+
+ if ret.hasMetaData:
+ image_type = ret.fileType
+ w, h = ret.width, ret.height
+ else:
+ image_type = 1000
+ w, h = (800, 600)
+
+ return ImageElement(
+ id=ret.fileId,
+ filename=to_img_id(ret.fileId),
+ size=fl,
+ width=w,
+ height=h,
+ md5=fmd5,
+ filetype=image_type,
+ url=f"https://gchat.qpic.cn/gchatpic_new/1/0-0-{fmd5:x}/0?term=2"
+ )
+
+
+async def bdh_uploader(
+ cmd: bytes,
+ addr: Tuple[str, int],
+ file: BinaryIO,
+ cmd_id: int,
+ ticket: bytes,
+ client: "Client", *,
+ block_size=65535
+):
+ fmd5, fl = calc_file_md5_and_length(file)
+ print(addr)
reader, writer = await asyncio.open_connection(*addr)
bc = 0
while True:
bl = file.read(block_size)
if not bl:
break
- highway_head.ReqDataHighwayHead(
- basehead=create_highway_header(b"PicUp.DataUp", 4096, cmd_id, client),
+ head = highway_head.ReqDataHighwayHead(
+ basehead=create_highway_header(cmd, 4096, cmd_id, client),
seghead=highway_head.SegHead(
filesize=fl,
dataoffset=bc * block_size,
datalength=len(bl),
- serviceticket=None, #todo: https://github.com/Mrs4s/MiraiGo/blob/38990f6e1cf9ca0785709d03b66237a713338d0b/client/group_msg.go#L216
-
+ serviceticket=ticket,
+ # todo: https://github.com/Mrs4s/MiraiGo/blob/38990f6e1cf9ca0785709d03b66237a713338d0b/client/group_msg.go#L216
+ md5=md5(bl).digest(),
+ fileMd5=fmd5
)
- )
+ ).SerializeToString()
+
+ writer.write(write_frame(head, bl))
+ await writer.drain()
+
+ resp, _ = await read_frame(reader)
+
bc += 1
diff --git a/cai/client/message_service/models.py b/cai/client/message_service/models.py
index baa32edc..40e0c771 100644
--- a/cai/client/message_service/models.py
+++ b/cai/client/message_service/models.py
@@ -101,12 +101,14 @@ def type(self) -> str:
@dataclass
class ImageElement(Element):
+ id: int
filename: str
size: int
width: int
height: int
md5: bytes
- url: str
+ url: Optional[str] = None
+ filetype: Optional[int] = 1000
@property
def type(self) -> str:
diff --git a/cai/client/message_service/upload.py b/cai/client/message_service/upload.py
new file mode 100644
index 00000000..52e5d7a5
--- /dev/null
+++ b/cai/client/message_service/upload.py
@@ -0,0 +1,29 @@
+import os
+
+from cai.pb.im.oidb.cmd0x388.cmd0x388_pb2 import D388ReqBody, TryUpImgReq, D388RspBody
+
+
+def encode_d388_req(group_code: int, uin: int, md5: bytes, size: int) -> D388ReqBody:
+ fn = os.urandom(16).hex() + ".gif"
+ return D388ReqBody(
+ netType=3,
+ subcmd=1,
+ tryupImgReq=[TryUpImgReq(
+ groupCode=group_code,
+ srcUin=uin,
+ fileName=fn.encode(),
+ fileMd5=md5,
+ fileIndex=None,
+ fileSize=size,
+ srcTerm=5,
+ platformType=9,
+ buType=1,
+ picType=1000,
+ buildVer="8.2.7.4410".encode(),
+ appPicType=1006
+ )]
+ )
+
+
+def decode_d388_rsp(data: bytes) -> D388RspBody:
+ return D388RspBody.FromString(data)
diff --git a/cai/client/multi_msg/long_msg.py b/cai/client/multi_msg/long_msg.py
index 5fc2fca2..345b4186 100644
--- a/cai/client/multi_msg/long_msg.py
+++ b/cai/client/multi_msg/long_msg.py
@@ -1,7 +1,7 @@
from cai.client import Command
from cai.pb.highway.multi_msg.multi_msg_pb2 import MultiReqBody, MultiMsgApplyUpReq, MultiMsgApplyUpRsp, MultiRspBody
from cai.pb.highway.long_msg.long_msg_pb2 import LongReqBody, LongMsgUpReq
-from typing import TYPE_CHECKING
+from typing import TYPE_CHECKING, Tuple
from dataclasses import dataclass
@@ -32,9 +32,8 @@ class MultiApplyResp(Command):
data: MultiMsgApplyUpRsp
-async def build_multi_apply_up_pkg(client: "Client", group_id: int, data_len: int, data_md5: bytes, bu_type: int):
+async def build_multi_apply_up_pkg(client: "Client", group_id: int, data_len: int, data_md5: bytes, bu_type: int) -> Tuple[LongReqBody, MultiMsgApplyUpRsp]:
body: MultiApplyResp = await client.send_unipkg_and_wait(
- client.next_seq(),
"MultiMsg.ApplyUp",
_encode_multi_req_body(
group_id, data_len, data_md5, bu_type
diff --git a/examples/login.py b/examples/login.py
index fc533dd1..71fe5cf7 100644
--- a/examples/login.py
+++ b/examples/login.py
@@ -71,6 +71,8 @@ async def listen_message(client: Client, _, event: Event):
TextElement("Supported.")
]
)
+ elif event.message[0].content == "1919":
+ print(await client.upload_image(event.group_id, open("test.jpg", "rb")))
async def handle_failure(client: Client, exception: Exception):
From 8e41ae59ec267e1c8de6b005952dae256c274fc4 Mon Sep 17 00:00:00 2001
From: yitaoguanggao
Date: Tue, 22 Mar 2022 13:43:37 +0800
Subject: [PATCH 025/113] fix: struct parse error
---
cai/client/wtlogin/oicq.py | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/cai/client/wtlogin/oicq.py b/cai/client/wtlogin/oicq.py
index a17ac00f..6b7afda0 100644
--- a/cai/client/wtlogin/oicq.py
+++ b/cai/client/wtlogin/oicq.py
@@ -307,7 +307,10 @@ def __init__(
self.t174 = _tlv_map.get(0x174)
if self.t174:
t178 = Packet(_tlv_map[0x178])
- self.sms_phone = t178.start().string(4).execute()[0]
+ try:
+ self.sms_phone = t178.start().string(4).execute()[0]
+ except struct.error:
+ self.sms_phone = None
@dataclass
From c87d7024b6b85aeb440945b830f27317ea6992c7 Mon Sep 17 00:00:00 2001
From: yitaoguanggao
Date: Tue, 22 Mar 2022 14:14:15 +0800
Subject: [PATCH 026/113] sync changes
---
cai/api/login.py | 10 ++++------
cai/client/highway.py | 2 +-
cai/client/message_service/upload.py | 11 ++++++-----
cai/utils/gcode.py | 4 ++--
examples/login.py | 9 +++++----
5 files changed, 18 insertions(+), 18 deletions(-)
diff --git a/cai/api/login.py b/cai/api/login.py
index 64ea60a5..55e967da 100644
--- a/cai/api/login.py
+++ b/cai/api/login.py
@@ -23,7 +23,9 @@ async def login(self):
await self.client.reconnect()
try:
await self._executor("login")
- except not LoginException:
+ except LoginException:
+ raise # user handle required
+ except Exception:
await self.client.close()
raise
@@ -63,11 +65,7 @@ async def submit_slider_ticket(self, ticket: str) -> bool:
LoginSliderException: Need slider ticket.
LoginCaptchaException: Need captcha image.
"""
- try:
- await self._executor("submit_slider_ticket", ticket)
- except not LoginException:
- await self.client.close()
- raise
+ await self._executor("submit_slider_ticket", ticket)
return True
async def request_sms(self) -> bool:
diff --git a/cai/client/highway.py b/cai/client/highway.py
index 303125d3..a5a58775 100644
--- a/cai/client/highway.py
+++ b/cai/client/highway.py
@@ -125,7 +125,7 @@ async def upload_image(file: BinaryIO, gid: int, client: "Client") -> ImageEleme
ret = decode_upload_image_resp(
(await client.send_unipkg_and_wait(
"ImgStore.GroupPicUp",
- encode_d388_req(GroupIdConvertor.to_group_code(gid), client.uin, fmd5, fl).SerializeToString()
+ encode_d388_req(GroupIdConvertor.to_group_code(gid), client.uin, fmd5, fl, client.apk_info.version.encode()).SerializeToString()
)).data
)
print(ret)
diff --git a/cai/client/message_service/upload.py b/cai/client/message_service/upload.py
index 52e5d7a5..994654cd 100644
--- a/cai/client/message_service/upload.py
+++ b/cai/client/message_service/upload.py
@@ -3,8 +3,8 @@
from cai.pb.im.oidb.cmd0x388.cmd0x388_pb2 import D388ReqBody, TryUpImgReq, D388RspBody
-def encode_d388_req(group_code: int, uin: int, md5: bytes, size: int) -> D388ReqBody:
- fn = os.urandom(16).hex() + ".gif"
+def encode_d388_req(group_code: int, uin: int, md5: bytes, size: int, build_ver: bytes) -> D388ReqBody:
+ fn = md5.hex() + ".gif"
return D388ReqBody(
netType=3,
subcmd=1,
@@ -13,14 +13,15 @@ def encode_d388_req(group_code: int, uin: int, md5: bytes, size: int) -> D388Req
srcUin=uin,
fileName=fn.encode(),
fileMd5=md5,
- fileIndex=None,
fileSize=size,
+ fileId=0,
srcTerm=5,
platformType=9,
buType=1,
picType=1000,
- buildVer="8.2.7.4410".encode(),
- appPicType=1006
+ buildVer=build_ver,
+ appPicType=1006,
+ originalPic=0,
)]
)
diff --git a/cai/utils/gcode.py b/cai/utils/gcode.py
index 688d9a92..53b5714a 100644
--- a/cai/utils/gcode.py
+++ b/cai/utils/gcode.py
@@ -1,7 +1,7 @@
class GroupIdConvertor:
@staticmethod
def to_group_code(group_id: int) -> int:
- left = group_id / 1000000
+ left = group_id // 1000000
if 0 + 202 <= left <= 10 + 202:
left -= 202
elif 11 + 480 - 11 <= left <= 19 + 480 - 11:
@@ -20,7 +20,7 @@ def to_group_code(group_id: int) -> int:
@staticmethod
def to_group_uin(group_code: int) -> int:
- left = group_code / 1000000
+ left = group_code // 1000000
if 0 <= left <= 10:
left += 202
elif 11 <= left <= 19:
diff --git a/examples/login.py b/examples/login.py
index 71fe5cf7..67c9a1e7 100644
--- a/examples/login.py
+++ b/examples/login.py
@@ -45,13 +45,14 @@ async def run(closed: asyncio.Event):
print(f"Login Success! Client status: {ci.client.status!r}")
except Exception as e:
await handle_failure(ci, e)
- ci.client.add_event_listener(functools.partial(listen_message, ci))
+ #ci.client.add_event_listener(functools.partial(listen_message, ci))
+ print(await ci.upload_image(478399804, open("test.png", "rb")))
while True:
for status in OnlineStatus:
if status == OnlineStatus.Offline:
continue
print(status, "Changed")
- await ci.set_status(status, 67, True)
+ #await ci.set_status(status, 67, True)
await asyncio.sleep(360)
finally:
closed.set()
@@ -72,12 +73,12 @@ async def listen_message(client: Client, _, event: Event):
]
)
elif event.message[0].content == "1919":
- print(await client.upload_image(event.group_id, open("test.jpg", "rb")))
+ print(await client.upload_image(event.group_id, open("test.png", "rb")))
async def handle_failure(client: Client, exception: Exception):
if isinstance(exception, LoginSliderNeeded):
- print("Verify url:", exception.verify_url)
+ print("Verify url:", exception.verify_url.replace("ssl.captcha.qq.com", "txhelper.glitch.me"))
ticket = input("Please enter the ticket: ").strip()
try:
await client.submit_slider_ticket(ticket)
From 6411f298c192977032caefd5be9c02510ca30f97 Mon Sep 17 00:00:00 2001
From: yitaoguanggao
Date: Wed, 23 Mar 2022 13:53:54 +0800
Subject: [PATCH 027/113] add: highway & upload image
---
cai/api/client.py | 3 +-
cai/client/highway.py | 136 ++++++++++++++-----------
cai/client/message_service/encoders.py | 32 +++++-
cai/client/message_service/upload.py | 17 ++--
cai/log.py | 1 +
examples/login.py | 11 +-
6 files changed, 126 insertions(+), 74 deletions(-)
diff --git a/cai/api/client.py b/cai/api/client.py
index 85a9a580..b7764d86 100644
--- a/cai/api/client.py
+++ b/cai/api/client.py
@@ -63,8 +63,7 @@ async def send_group_msg(self, gid: int, msg: Sequence[Element]):
)
async def upload_image(self, group_id: int, file: BinaryIO):
- await upload_image(file, group_id, self.client)
- "todo: https://github.com/Mrs4s/MiraiGo/blob/714961d68f3dcd6956771d7b8bdea70d96ad65fd/client/image.go#L98"
+ return await upload_image(file, group_id, self.client)
async def close(self):
diff --git a/cai/client/highway.py b/cai/client/highway.py
index a5a58775..1c02922b 100644
--- a/cai/client/highway.py
+++ b/cai/client/highway.py
@@ -1,13 +1,13 @@
import asyncio
-import ipaddress
import struct
+import time
import uuid
from dataclasses import dataclass
from hashlib import md5
-from typing import Tuple, BinaryIO, TYPE_CHECKING, Optional
+from typing import Tuple, BinaryIO, TYPE_CHECKING, Optional, List, Any, Callable, Awaitable
+from cai.log import highway as highway_logger
from cai.client.message_service.models import ImageElement
-from cai.utils.gcode import GroupIdConvertor
from cai.client.message_service.upload import encode_d388_req, decode_d388_rsp
from cai.pb.highway.protocol.highway_head_pb2 import highway_head
@@ -24,10 +24,9 @@ def calc_file_md5_and_length(file: BinaryIO, bs=4096) -> Tuple[bytes, int]:
while True:
bl = file.read(bs)
fm.update(bl)
+ length += len(bl)
if len(bl) != bs:
break
- else:
- length += len(bl)
return fm.digest(), length
finally:
file.seek(0)
@@ -53,11 +52,11 @@ def create_highway_header(
def itoa(i: int) -> str: # int to address(str)
- return ipaddress.IPv4Address(i).compressed
+ return ".".join([str(p) for p in i.to_bytes(4, "little")])
-def to_img_id(i_uuid: int) -> str:
- return "{%s}.png" % uuid.UUID(int=i_uuid)
+def to_img_id(b_uuid: bytes) -> str:
+ return "{%s}.png" % uuid.UUID(bytes=b_uuid)
def write_frame(head: bytes, body: bytes) -> bytes:
@@ -71,21 +70,29 @@ def write_frame(head: bytes, body: bytes) -> bytes:
async def read_frame(reader: asyncio.StreamReader) -> Tuple[highway_head.RspDataHighwayHead, bytes]:
- head = await reader.read(9)
- if len(head) != 9:
+ head = await reader.readexactly(9)
+ if len(head) != 9 and head[0] != 0x28:
raise ValueError("Invalid frame head", head)
- _, hl, bl = struct.unpack("!cII", head)
- return (
- highway_head.RspDataHighwayHead.FromString(await reader.readexactly(hl)),
- await reader.readexactly(bl)
- )
+ hl, bl = struct.unpack("!II", head[1:])
+ try:
+ return (
+ highway_head.RspDataHighwayHead.FromString(await reader.readexactly(hl)),
+ await reader.readexactly(bl)
+ )
+ finally:
+ await reader.read(1) # flush end byte
+
+
+async def timeit(func: Awaitable) -> Tuple[float, Any]:
+ start = time.time()
+ result = await func
+ return time.time() - start, result
@dataclass
class ImageUploadResponse:
uploadKey: Optional[bytes] = None
- uploadIp: Optional[int] = None
- uploadPort: Optional[int] = None
+ uploadAddr: Optional[List[Tuple[str, int]]] = None
width: Optional[int] = None
height: Optional[int] = None
message: Optional[str] = None
@@ -93,7 +100,7 @@ class ImageUploadResponse:
resourceId: Optional[int] = None
fileId: Optional[int] = None
fileType: Optional[int] = None
- resultCode: Optional[int] = 0
+ resultCode: int = 0
isExists: bool = False
hasMetaData: bool = False
@@ -114,36 +121,47 @@ def decode_upload_image_resp(data: bytes) -> ImageUploadResponse:
return ImageUploadResponse(isExists=True, fileId=pkg.fileId)
return ImageUploadResponse(
isExists=False,
- uploadIp=pkg.upIp[0], # todo: parse
- uploadPort=pkg.upPort[0],
+ uploadAddr=[(itoa(a), p) for a, p in zip(pkg.upIp, pkg.upPort)],
uploadKey=pkg.upUkey
)
async def upload_image(file: BinaryIO, gid: int, client: "Client") -> ImageElement:
fmd5, fl = calc_file_md5_and_length(file)
+ print(encode_d388_req(gid, client.uin, fmd5, fl).SerializeToString().hex())
ret = decode_upload_image_resp(
(await client.send_unipkg_and_wait(
"ImgStore.GroupPicUp",
- encode_d388_req(GroupIdConvertor.to_group_code(gid), client.uin, fmd5, fl, client.apk_info.version.encode()).SerializeToString()
+ encode_d388_req(gid, client.uin, fmd5, fl).SerializeToString()
)).data
)
print(ret)
if ret.resultCode != 0:
raise ConnectionError(ret.resultCode)
elif not ret.isExists:
- print("not exists")
- #raise ValueError("Upload Error")
-
- await bdh_uploader(
- b"PicUp.DataUp",
- (itoa(ret.uploadIp), ret.uploadPort),
- file,
- 2,
- ret.uploadKey,
- client
- )
- file.seek(0)
+ highway_logger.debug("file not found, uploading...")
+
+ for addr in ret.uploadAddr:
+ try:
+ t, _ = await timeit(
+ bdh_uploader(
+ b"PicUp.DataUp",
+ addr,
+ file,
+ 2,
+ ret.uploadKey,
+ client
+ )
+ )
+ highway_logger.info("upload complete, use %fs in %d bytes" % (t * 1000, fl))
+ except TimeoutError:
+ highway_logger.error(f"server {addr[0]}:{addr[1]} timeout")
+ continue
+ finally:
+ file.seek(0)
+ break
+ else:
+ raise ConnectionError("cannot upload image, all server failure")
if ret.hasMetaData:
image_type = ret.fileType
@@ -154,13 +172,13 @@ async def upload_image(file: BinaryIO, gid: int, client: "Client") -> ImageEleme
return ImageElement(
id=ret.fileId,
- filename=to_img_id(ret.fileId),
+ filename=to_img_id(fmd5),
size=fl,
width=w,
height=h,
md5=fmd5,
filetype=image_type,
- url=f"https://gchat.qpic.cn/gchatpic_new/1/0-0-{fmd5:x}/0?term=2"
+ url=f"https://gchat.qpic.cn/gchatpic_new/1/0-0-{fmd5.hex().upper()}/0?term=2"
)
@@ -177,26 +195,28 @@ async def bdh_uploader(
print(addr)
reader, writer = await asyncio.open_connection(*addr)
bc = 0
- while True:
- bl = file.read(block_size)
- if not bl:
- break
- head = highway_head.ReqDataHighwayHead(
- basehead=create_highway_header(cmd, 4096, cmd_id, client),
- seghead=highway_head.SegHead(
- filesize=fl,
- dataoffset=bc * block_size,
- datalength=len(bl),
- serviceticket=ticket,
- # todo: https://github.com/Mrs4s/MiraiGo/blob/38990f6e1cf9ca0785709d03b66237a713338d0b/client/group_msg.go#L216
- md5=md5(bl).digest(),
- fileMd5=fmd5
- )
- ).SerializeToString()
-
- writer.write(write_frame(head, bl))
- await writer.drain()
-
- resp, _ = await read_frame(reader)
-
- bc += 1
+ try:
+ while True:
+ bl = file.read(block_size)
+ if not bl:
+ break
+ head = highway_head.ReqDataHighwayHead(
+ basehead=create_highway_header(cmd, 4096, cmd_id, client),
+ seghead=highway_head.SegHead(
+ filesize=fl,
+ dataoffset=bc * block_size,
+ datalength=len(bl),
+ serviceticket=ticket,
+ md5=md5(bl).digest(),
+ fileMd5=fmd5
+ )
+ ).SerializeToString()
+
+ writer.write(write_frame(head, bl))
+ await writer.drain()
+
+ resp, _ = await read_frame(reader)
+
+ bc += 1
+ finally:
+ writer.close()
diff --git a/cai/client/message_service/encoders.py b/cai/client/message_service/encoders.py
index d65efc86..5f613403 100644
--- a/cai/client/message_service/encoders.py
+++ b/cai/client/message_service/encoders.py
@@ -1,7 +1,7 @@
import random
from typing import Sequence, TYPE_CHECKING, Dict, Type
-from cai.pb.im.msg.msg_body import MsgBody, PlainText, RichText, Elem
+from cai.pb.im.msg.msg_body import MsgBody, PlainText, RichText, CustomFace, Elem
from cai.pb.msf.msg.svc.svc_pb2 import PbSendMsgReq, RoutingHead, Grp
from cai.pb.msf.msg.comm.comm_pb2 import ContentHead
from cai.client.packet import UniPacket
@@ -20,16 +20,40 @@ def build_msg(elements: Sequence[models.Element]) -> MsgBody:
ret = []
for e in elements: # todo: support more element
if isinstance(e, models.TextElement):
- ret.append(PlainText(str=e.content.encode()))
+ ret.append(
+ Elem(text=PlainText(str=e.content.encode()))
+ )
+ elif isinstance(e, models.ImageElement):
+ ret.append(
+ Elem(
+ custom_face=CustomFace(
+ file_type=66,
+ useful=1,
+ biz_type=0, #5
+ width=e.width,
+ height=e.height,
+ file_id=e.id,
+ file_path=e.filename,
+ image_type=e.filetype,
+ origin=1,
+ size=e.size,
+ md5=e.md5,
+ flag=b"\x00\x00\x00\x00"
+ )
+ )
+ )
else:
raise NotImplementedError(e)
- return MsgBody(
+ d = MsgBody(
rich_text=RichText(
- elems=[Elem(text=e) for e in ret],
+ #elems=[Elem(text=e) for e in ret],
+ elems=ret,
ptt=None
)
)
+ print(d.SerializeToString().hex())
+ return d
def encode_send_group_msg_req(
diff --git a/cai/client/message_service/upload.py b/cai/client/message_service/upload.py
index 994654cd..d38afe6a 100644
--- a/cai/client/message_service/upload.py
+++ b/cai/client/message_service/upload.py
@@ -3,10 +3,10 @@
from cai.pb.im.oidb.cmd0x388.cmd0x388_pb2 import D388ReqBody, TryUpImgReq, D388RspBody
-def encode_d388_req(group_code: int, uin: int, md5: bytes, size: int, build_ver: bytes) -> D388ReqBody:
- fn = md5.hex() + ".gif"
+def encode_d388_req(group_code: int, uin: int, md5: bytes, size: int) -> D388ReqBody:
+ fn = md5.hex().upper() + ".jpg"
return D388ReqBody(
- netType=3,
+ netType=8,
subcmd=1,
tryupImgReq=[TryUpImgReq(
groupCode=group_code,
@@ -18,10 +18,13 @@ def encode_d388_req(group_code: int, uin: int, md5: bytes, size: int, build_ver:
srcTerm=5,
platformType=9,
buType=1,
- picType=1000,
- buildVer=build_ver,
- appPicType=1006,
- originalPic=0,
+ picType=1003,
+ picWidth=1920,
+ picHeight=903,
+ buildVer=b"8.8.50.2324",
+ appPicType=1052,
+ originalPic=1,
+ srvUpload=0
)]
)
diff --git a/cai/log.py b/cai/log.py
index 1ca89ad1..64ed0a9e 100644
--- a/cai/log.py
+++ b/cai/log.py
@@ -12,3 +12,4 @@
logger = logging.getLogger("cai")
network = logging.getLogger("cai.network")
+highway = logging.getLogger("cai.highway")
diff --git a/examples/login.py b/examples/login.py
index 67c9a1e7..de030378 100644
--- a/examples/login.py
+++ b/examples/login.py
@@ -45,8 +45,7 @@ async def run(closed: asyncio.Event):
print(f"Login Success! Client status: {ci.client.status!r}")
except Exception as e:
await handle_failure(ci, e)
- #ci.client.add_event_listener(functools.partial(listen_message, ci))
- print(await ci.upload_image(478399804, open("test.png", "rb")))
+ ci.client.add_event_listener(functools.partial(listen_message, ci))
while True:
for status in OnlineStatus:
if status == OnlineStatus.Offline:
@@ -73,7 +72,13 @@ async def listen_message(client: Client, _, event: Event):
]
)
elif event.message[0].content == "1919":
- print(await client.upload_image(event.group_id, open("test.png", "rb")))
+ await client.send_group_msg(
+ event.group_id,
+ [
+ await client.upload_image(event.group_id, open("test.png", "rb")),
+ TextElement("1234")
+ ]
+ )
async def handle_failure(client: Client, exception: Exception):
From 1a97045fbb64079374f12f86b3353fe603d1de54 Mon Sep 17 00:00:00 2001
From: yitaoguanggao
Date: Thu, 24 Mar 2022 21:26:49 +0800
Subject: [PATCH 028/113] fix: send image to group
---
cai/api/client.py | 1 -
cai/client/highway.py | 7 +++----
cai/client/message_service/encoders.py | 11 +++++++----
3 files changed, 10 insertions(+), 9 deletions(-)
diff --git a/cai/api/client.py b/cai/api/client.py
index b7764d86..32ec17f6 100644
--- a/cai/api/client.py
+++ b/cai/api/client.py
@@ -65,7 +65,6 @@ async def send_group_msg(self, gid: int, msg: Sequence[Element]):
async def upload_image(self, group_id: int, file: BinaryIO):
return await upload_image(file, group_id, self.client)
-
async def close(self):
"""Stop Client"""
await self.client.close()
diff --git a/cai/client/highway.py b/cai/client/highway.py
index 1c02922b..3be5904a 100644
--- a/cai/client/highway.py
+++ b/cai/client/highway.py
@@ -113,12 +113,13 @@ def decode_upload_image_resp(data: bytes) -> ImageUploadResponse:
if pkg.fileExit:
if pkg.imgInfo:
info = pkg.imgInfo
+ # fuck: pkg.fileId != pkg.fileid
return ImageUploadResponse(
- isExists=True, fileId=pkg.fileId, hasMetaData=True,
+ isExists=True, fileId=pkg.fileid, hasMetaData=True,
fileType=info.fileType, width=info.fileWidth, height=info.fileHeight
)
else:
- return ImageUploadResponse(isExists=True, fileId=pkg.fileId)
+ return ImageUploadResponse(isExists=True, fileId=pkg.fileid)
return ImageUploadResponse(
isExists=False,
uploadAddr=[(itoa(a), p) for a, p in zip(pkg.upIp, pkg.upPort)],
@@ -128,14 +129,12 @@ def decode_upload_image_resp(data: bytes) -> ImageUploadResponse:
async def upload_image(file: BinaryIO, gid: int, client: "Client") -> ImageElement:
fmd5, fl = calc_file_md5_and_length(file)
- print(encode_d388_req(gid, client.uin, fmd5, fl).SerializeToString().hex())
ret = decode_upload_image_resp(
(await client.send_unipkg_and_wait(
"ImgStore.GroupPicUp",
encode_d388_req(gid, client.uin, fmd5, fl).SerializeToString()
)).data
)
- print(ret)
if ret.resultCode != 0:
raise ConnectionError(ret.resultCode)
elif not ret.isExists:
diff --git a/cai/client/message_service/encoders.py b/cai/client/message_service/encoders.py
index 5f613403..c55373ef 100644
--- a/cai/client/message_service/encoders.py
+++ b/cai/client/message_service/encoders.py
@@ -29,16 +29,19 @@ def build_msg(elements: Sequence[models.Element]) -> MsgBody:
custom_face=CustomFace(
file_type=66,
useful=1,
- biz_type=0, #5
+ biz_type=0,
width=e.width,
height=e.height,
file_id=e.id,
file_path=e.filename,
image_type=e.filetype,
+ source=200,
origin=1,
size=e.size,
md5=e.md5,
- flag=b"\x00\x00\x00\x00"
+ show_len=0,
+ download_len=0
+ #flag=b"\x00\x00\x00\x00"
)
)
)
@@ -64,8 +67,8 @@ def encode_send_group_msg_req(
content_head=head,
body=body,
seq=seq,
- rand=random.randrange(3000, 30000),
- via=0
+ rand=random.randrange(300000, 3000000),
+ via=1,
)
From c318dcc672bc5e77bb06b58b7db902a7a85d7926 Mon Sep 17 00:00:00 2001
From: a1025
Date: Sun, 3 Apr 2022 13:19:38 +0800
Subject: [PATCH 029/113] sync changes
---
cai/api/client.py | 4 ++-
cai/client/client.py | 31 ++++++++++------
cai/client/message_service/decoders.py | 49 +++++++++++++-------------
cai/client/message_service/models.py | 2 +-
cai/connection/__init__.py | 10 +++++-
5 files changed, 57 insertions(+), 39 deletions(-)
diff --git a/cai/api/client.py b/cai/api/client.py
index 32ec17f6..85a9a580 100644
--- a/cai/api/client.py
+++ b/cai/api/client.py
@@ -63,7 +63,9 @@ async def send_group_msg(self, gid: int, msg: Sequence[Element]):
)
async def upload_image(self, group_id: int, file: BinaryIO):
- return await upload_image(file, group_id, self.client)
+ await upload_image(file, group_id, self.client)
+ "todo: https://github.com/Mrs4s/MiraiGo/blob/714961d68f3dcd6956771d7b8bdea70d96ad65fd/client/image.go#L98"
+
async def close(self):
"""Stop Client"""
diff --git a/cai/client/client.py b/cai/client/client.py
index a3a26529..c88a29ba 100644
--- a/cai/client/client.py
+++ b/cai/client/client.py
@@ -142,7 +142,7 @@
class Client:
LISTENERS: Set[LT] = set()
- def __init__(self, uin: int, password_md5: bytes, device: DeviceInfo, apk_info: ApkInfo):
+ def __init__(self, uin: int, password_md5: bytes, device: DeviceInfo, apk_info: ApkInfo, *, loop=None):
# account info
self._uin: int = uin
self._password_md5: bytes = password_md5
@@ -188,9 +188,13 @@ def __init__(self, uin: int, password_md5: bytes, device: DeviceInfo, apk_info:
self.device_info: DeviceInfo = device
self.apk_info: ApkInfo = apk_info
+
+ if not loop:
+ loop = asyncio.get_event_loop()
+ self._loop = loop
def __str__(self) -> str:
- return f""
+ return f""
@property
def uin(self) -> int:
@@ -281,7 +285,7 @@ async def connect(self, server: Optional[SsoServer] = None) -> None:
self._connection = await connect(
_server.host, _server.port, ssl=False, timeout=3.0
)
- asyncio.create_task(self.receive())
+ self._loop.create_task(self.receive()).add_done_callback(self._recv_done_cb)
except ConnectionError as e:
raise
except Exception as e:
@@ -290,6 +294,10 @@ async def connect(self, server: Optional[SsoServer] = None) -> None:
f"server({_server.host}:{_server.port}): " + repr(e)
)
+ def _recv_done_cb(self, task):
+ log.network.warning("receiver stopped, try to reconnect")
+ self._loop.create_task(self.reconnect())
+
async def disconnect(self) -> None:
"""Disconnect if already connected to the server."""
if self._connection:
@@ -309,6 +317,7 @@ async def reconnect(
log.network.debug("reconnecting...")
if not change_server and self._connection:
await self._connection.reconnect()
+ await self.register()
return
exclude = (
@@ -415,10 +424,8 @@ async def receive(self):
"""
while self.connected:
try:
- length: int = (
- struct.unpack(">i", await self.connection.read_bytes(4))[0]
- - 4
- )
+ length: int = int.from_bytes(await self.connection.read_bytes(4), "big") - 4
+
# FIXME: length < 0 ?
data = await self.connection.read_bytes(length)
packet = IncomingPacket.parse(
@@ -432,9 +439,11 @@ async def receive(self):
f"(receive:{packet.ret_code}): {packet.command_name}"
)
# do not block receive
- asyncio.create_task(self._handle_incoming_packet(packet))
- except ConnectionAbortedError:
- log.logger.debug(f"Client {self.uin} connection closed")
+ self._loop.create_task(self._handle_incoming_packet(packet))
+ except ConnectionError: #ConnectionAbortedError:
+ log.logger.exception(f"Client {self.uin} connection closed")
+ break
+ #await self.reconnect(change_server=True)
except Exception as e:
log.logger.exception(e)
@@ -960,7 +969,7 @@ async def heartbeat(self) -> None:
self._heartbeat_enabled = True
- while self._heartbeat_enabled and self.connected:
+ while self._heartbeat_enabled and not self._connection.closed:
seq = self.next_seq()
packet = encode_heartbeat(
seq, self._session_id, self.device_info.imei, self._ksid, self.uin, self.apk_info.sub_app_id
diff --git a/cai/client/message_service/decoders.py b/cai/client/message_service/decoders.py
index 26f02974..e5b2983d 100644
--- a/cai/client/message_service/decoders.py
+++ b/cai/client/message_service/decoders.py
@@ -96,23 +96,23 @@ def parse_elements(elems: Sequence[Elem]) -> List[Element]:
if elem.custom_face.md5 and elem.custom_face.orig_url:
res.append(
ImageElement(
- elem.custom_face.file_path,
- elem.custom_face.size,
- elem.custom_face.width,
- elem.custom_face.height,
- elem.custom_face.md5,
- "https://gchat.qpic.cn" + elem.custom_face.orig_url,
+ filename=elem.custom_face.file_path,
+ size=elem.custom_face.size,
+ width=elem.custom_face.width,
+ height=elem.custom_face.height,
+ md5=elem.custom_face.md5,
+ url="https://gchat.qpic.cn" + elem.custom_face.orig_url,
)
)
elif elem.custom_face.md5:
res.append(
ImageElement(
- elem.custom_face.file_path,
- elem.custom_face.size,
- elem.custom_face.width,
- elem.custom_face.height,
- elem.custom_face.md5,
- "https://gchat.qpic.cn/gchatpic_new/0/0-0-"
+ filename=elem.custom_face.file_path,
+ size=elem.custom_face.size,
+ width=elem.custom_face.width,
+ height=elem.custom_face.height,
+ md5=elem.custom_face.md5,
+ url="https://gchat.qpic.cn/gchatpic_new/0/0-0-"
+ elem.custom_face.md5.decode().upper()
+ "/0",
)
@@ -122,13 +122,12 @@ def parse_elements(elems: Sequence[Elem]) -> List[Element]:
if elem.not_online_image.orig_url:
res.append(
ImageElement(
- elem.not_online_image.file_path.decode("utf-8"),
- elem.not_online_image.file_len,
- elem.not_online_image.pic_width,
- elem.not_online_image.pic_height,
- elem.not_online_image.pic_md5,
- "https://c2cpicdw.qpic.cn"
- + elem.not_online_image.orig_url,
+ filename=elem.not_online_image.file_path.decode("utf-8"),
+ size=elem.not_online_image.file_len,
+ width=elem.not_online_image.pic_width,
+ height=elem.not_online_image.pic_height,
+ md5=elem.not_online_image.pic_md5,
+ url="https://c2cpicdw.qpic.cn" + elem.not_online_image.orig_url,
)
)
elif (
@@ -137,12 +136,12 @@ def parse_elements(elems: Sequence[Elem]) -> List[Element]:
):
res.append(
ImageElement(
- elem.not_online_image.file_path.decode("utf-8"),
- elem.not_online_image.file_len,
- elem.not_online_image.pic_width,
- elem.not_online_image.pic_height,
- elem.not_online_image.pic_md5,
- "https://c2cpicdw.qpic.cn/offpic_new/0/"
+ filename=elem.not_online_image.file_path.decode("utf-8"),
+ size=elem.not_online_image.file_len,
+ width=elem.not_online_image.pic_width,
+ height=elem.not_online_image.pic_height,
+ md5=elem.not_online_image.pic_md5,
+ url="https://c2cpicdw.qpic.cn/offpic_new/0/"
+ (
elem.not_online_image.res_id
or elem.not_online_image.download_path
diff --git a/cai/client/message_service/models.py b/cai/client/message_service/models.py
index 40e0c771..7dd10ed9 100644
--- a/cai/client/message_service/models.py
+++ b/cai/client/message_service/models.py
@@ -101,12 +101,12 @@ def type(self) -> str:
@dataclass
class ImageElement(Element):
- id: int
filename: str
size: int
width: int
height: int
md5: bytes
+ id: Optional[int] = -1
url: Optional[str] = None
filetype: Optional[int] = 1000
diff --git a/cai/connection/__init__.py b/cai/connection/__init__.py
index 977f3784..3365a1ab 100644
--- a/cai/connection/__init__.py
+++ b/cai/connection/__init__.py
@@ -27,6 +27,7 @@ def __init__(
self._host = host
self._port = port
self._ssl = ssl
+ self._closed = asyncio.Event()
self.timeout = timeout
self._reader: Optional[asyncio.StreamReader] = None
@@ -58,7 +59,12 @@ def reader(self) -> asyncio.StreamReader:
@property
def closed(self) -> bool:
- return self._writer is None
+ #return self._writer is None
+ return self._closed.is_set()
+
+ @property
+ async def wait_closed(self):
+ await self._closed.wait()
async def __aenter__(self):
await self._connect()
@@ -87,8 +93,10 @@ async def _connect(self):
raise ConnectionError(
f"Open connection to {self._host}:{self._port} failed"
) from e
+ self._closed.clear()
async def close(self):
+ self._closed.set()
if self._writer:
self._writer.close()
await self._writer.wait_closed()
From 646bc7b9eaf28c8993eb64d0d0628977843a30c0 Mon Sep 17 00:00:00 2001
From: a1025
Date: Sun, 3 Apr 2022 14:16:30 +0800
Subject: [PATCH 030/113] add: reconnect & Client.closed
---
cai/api/login.py | 2 +-
cai/client/client.py | 33 ++++++++++++++++++++-------------
cai/connection/__init__.py | 2 +-
3 files changed, 22 insertions(+), 15 deletions(-)
diff --git a/cai/api/login.py b/cai/api/login.py
index 55e967da..01d6ff73 100644
--- a/cai/api/login.py
+++ b/cai/api/login.py
@@ -20,7 +20,7 @@ async def login(self):
LoginSliderException: Need slider ticket.
LoginCaptchaException: Need captcha image.
"""
- await self.client.reconnect()
+ await self.client.connect()
try:
await self._executor("login")
except LoginException:
diff --git a/cai/client/client.py b/cai/client/client.py
index c88a29ba..81ce7437 100644
--- a/cai/client/client.py
+++ b/cai/client/client.py
@@ -188,7 +188,9 @@ def __init__(self, uin: int, password_md5: bytes, device: DeviceInfo, apk_info:
self.device_info: DeviceInfo = device
self.apk_info: ApkInfo = apk_info
-
+ self._reconnect: bool = True
+ self.closed: asyncio.Event = asyncio.Event()
+
if not loop:
loop = asyncio.get_event_loop()
self._loop = loop
@@ -294,9 +296,13 @@ async def connect(self, server: Optional[SsoServer] = None) -> None:
f"server({_server.host}:{_server.port}): " + repr(e)
)
- def _recv_done_cb(self, task):
- log.network.warning("receiver stopped, try to reconnect")
- self._loop.create_task(self.reconnect())
+ def _recv_done_cb(self, _task):
+ if self._reconnect:
+ log.network.warning("receiver stopped, try to reconnect")
+ self._loop.create_task(self.reconnect())
+ else:
+ log.network.warning("receiver stopped")
+ await self.close()
async def disconnect(self) -> None:
"""Disconnect if already connected to the server."""
@@ -314,10 +320,13 @@ async def reconnect(
change_server (bool, optional): True if you want to change the server. Defaults to False.
server (Optional[SsoServer], optional): Which server you want to connect to. Defaults to None.
"""
- log.network.debug("reconnecting...")
+
if not change_server and self._connection:
- await self._connection.reconnect()
- await self.register()
+ log.network.debug("reconnecting...")
+ await self.connect()
+ await self.login()
+ await self.register(register_reason=RegPushReason.MsfByNetChange)
+ log.network.debug("reconnected")
return
exclude = (
@@ -330,7 +339,6 @@ async def reconnect(
)
await self.disconnect()
await self.connect(_server)
- log.network.debug("reconnected")
async def close(self) -> None:
"""Close the client and logout."""
@@ -343,6 +351,7 @@ async def close(self) -> None:
await self.register(OnlineStatus.Offline)
self._receive_store.cancel_all()
await self.disconnect()
+ self.closed.set()
@property
def seq(self) -> int:
@@ -424,9 +433,8 @@ async def receive(self):
"""
while self.connected:
try:
- length: int = int.from_bytes(await self.connection.read_bytes(4), "big") - 4
+ length: int = int.from_bytes(await self.connection.read_bytes(4), "big", signed=False) - 4
- # FIXME: length < 0 ?
data = await self.connection.read_bytes(length)
packet = IncomingPacket.parse(
data,
@@ -440,10 +448,9 @@ async def receive(self):
)
# do not block receive
self._loop.create_task(self._handle_incoming_packet(packet))
- except ConnectionError: #ConnectionAbortedError:
- log.logger.exception(f"Client {self.uin} connection closed")
+ except ConnectionAbortedError as e:
+ log.logger.error(f"{self.uin} connection lost: {str(e)}")
break
- #await self.reconnect(change_server=True)
except Exception as e:
log.logger.exception(e)
diff --git a/cai/connection/__init__.py b/cai/connection/__init__.py
index 3365a1ab..dcc8b7b3 100644
--- a/cai/connection/__init__.py
+++ b/cai/connection/__init__.py
@@ -64,7 +64,7 @@ def closed(self) -> bool:
@property
async def wait_closed(self):
- await self._closed.wait()
+ return self._closed.wait
async def __aenter__(self):
await self._connect()
From de9228947dfa3d9367ca12f8315f9c7858589df3 Mon Sep 17 00:00:00 2001
From: a1025
Date: Sun, 3 Apr 2022 14:32:09 +0800
Subject: [PATCH 031/113] revert change
---
cai/client/message_service/encoders.py | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/cai/client/message_service/encoders.py b/cai/client/message_service/encoders.py
index c55373ef..a088c324 100644
--- a/cai/client/message_service/encoders.py
+++ b/cai/client/message_service/encoders.py
@@ -48,15 +48,13 @@ def build_msg(elements: Sequence[models.Element]) -> MsgBody:
else:
raise NotImplementedError(e)
- d = MsgBody(
+ return MsgBody(
rich_text=RichText(
#elems=[Elem(text=e) for e in ret],
elems=ret,
ptt=None
)
)
- print(d.SerializeToString().hex())
- return d
def encode_send_group_msg_req(
From 93279cff4784388c9fef28d5d41bebb44bd4c98d Mon Sep 17 00:00:00 2001
From: a1025
Date: Sun, 3 Apr 2022 15:17:36 +0800
Subject: [PATCH 032/113] update: split highway.py
---
cai/api/client.py | 15 +-
cai/client/client.py | 4 +-
cai/client/highway.py | 221 ------------------
cai/client/highway/__init__.py | 4 +
cai/client/highway/decoders.py | 29 +++
.../upload.py => highway/encoders.py} | 7 +-
cai/client/highway/frame.py | 29 +++
cai/client/highway/highway.py | 131 +++++++++++
cai/client/highway/models.py | 18 ++
cai/client/highway/utils.py | 32 +++
10 files changed, 252 insertions(+), 238 deletions(-)
delete mode 100644 cai/client/highway.py
create mode 100644 cai/client/highway/__init__.py
create mode 100644 cai/client/highway/decoders.py
rename cai/client/{message_service/upload.py => highway/encoders.py} (85%)
create mode 100644 cai/client/highway/frame.py
create mode 100644 cai/client/highway/highway.py
create mode 100644 cai/client/highway/models.py
create mode 100644 cai/client/highway/utils.py
diff --git a/cai/api/client.py b/cai/api/client.py
index 85a9a580..be42e96a 100644
--- a/cai/api/client.py
+++ b/cai/api/client.py
@@ -10,17 +10,17 @@
import hashlib
from typing import Union, Optional, Sequence, BinaryIO
+from cai import log
from cai.client import OnlineStatus, Client as client_t
+from cai.client.highway import HighWaySession
+from cai.client.message_service.models import Element, ImageElement
from cai.client.message_service.encoders import make_group_msg_pkg, build_msg
from cai.settings.device import DeviceInfo, new_device
from cai.settings.protocol import ApkInfo
+
from .friend import Friend as _Friend
from .group import Group as _Group
from .login import Login as _Login
-from cai.utils.gcode import GroupIdConvertor
-from cai.client.message_service.models import Element
-from cai.client.message_service.upload import encode_d388_req
-from ..client.highway import calc_file_md5_and_length, upload_image
def make_client(
@@ -43,6 +43,7 @@ def make_client(
class Client(_Login, _Friend, _Group):
def __init__(self, client: client_t):
self.client = client
+ self._highway_session = HighWaySession(client, logger=log.highway)
@property
def connected(self) -> bool:
@@ -62,10 +63,8 @@ async def send_group_msg(self, gid: int, msg: Sequence[Element]):
).SerializeToString()
)
- async def upload_image(self, group_id: int, file: BinaryIO):
- await upload_image(file, group_id, self.client)
- "todo: https://github.com/Mrs4s/MiraiGo/blob/714961d68f3dcd6956771d7b8bdea70d96ad65fd/client/image.go#L98"
-
+ async def upload_image(self, group_id: int, file: BinaryIO) -> ImageElement:
+ return await self._highway_session.upload_image(file, group_id)
async def close(self):
"""Stop Client"""
diff --git a/cai/client/client.py b/cai/client/client.py
index 81ce7437..471310d5 100644
--- a/cai/client/client.py
+++ b/cai/client/client.py
@@ -8,9 +8,7 @@
.. _LICENSE:
https://github.com/cscs181/CAI/blob/master/LICENSE
"""
-import logging
import time
-import struct
import asyncio
import secrets
from typing import (
@@ -302,7 +300,7 @@ def _recv_done_cb(self, _task):
self._loop.create_task(self.reconnect())
else:
log.network.warning("receiver stopped")
- await self.close()
+ self._loop.create_task(self.close())
async def disconnect(self) -> None:
"""Disconnect if already connected to the server."""
diff --git a/cai/client/highway.py b/cai/client/highway.py
deleted file mode 100644
index 3be5904a..00000000
--- a/cai/client/highway.py
+++ /dev/null
@@ -1,221 +0,0 @@
-import asyncio
-import struct
-import time
-import uuid
-from dataclasses import dataclass
-from hashlib import md5
-from typing import Tuple, BinaryIO, TYPE_CHECKING, Optional, List, Any, Callable, Awaitable
-
-from cai.log import highway as highway_logger
-from cai.client.message_service.models import ImageElement
-from cai.client.message_service.upload import encode_d388_req, decode_d388_rsp
-from cai.pb.highway.protocol.highway_head_pb2 import highway_head
-
-if TYPE_CHECKING:
- from cai.client.client import Client
-
-
-# https://github.com/Mrs4s/MiraiGo/blob/master/client/internal/highway/highway.go#L79
-
-
-def calc_file_md5_and_length(file: BinaryIO, bs=4096) -> Tuple[bytes, int]:
- try:
- fm, length = md5(), 0
- while True:
- bl = file.read(bs)
- fm.update(bl)
- length += len(bl)
- if len(bl) != bs:
- break
- return fm.digest(), length
- finally:
- file.seek(0)
-
-
-def create_highway_header(
- cmd: bytes,
- flag: int,
- cmd_id: int,
- client: "Client",
- locale=2052
-) -> highway_head.DataHighwayHead:
- return highway_head.DataHighwayHead(
- version=1,
- uin=str(client.uin).encode(),
- command=cmd,
- commandId=cmd_id,
- seq=client.next_seq(),
- appid=client.apk_info.app_id,
- localeId=locale,
- dataflag=flag
- )
-
-
-def itoa(i: int) -> str: # int to address(str)
- return ".".join([str(p) for p in i.to_bytes(4, "little")])
-
-
-def to_img_id(b_uuid: bytes) -> str:
- return "{%s}.png" % uuid.UUID(bytes=b_uuid)
-
-
-def write_frame(head: bytes, body: bytes) -> bytes:
- buf = bytearray()
- buf.append(0x28)
- buf += struct.pack("!II", len(head), len(body))
- buf += head
- buf += body
- buf.append(0x29)
- return buf
-
-
-async def read_frame(reader: asyncio.StreamReader) -> Tuple[highway_head.RspDataHighwayHead, bytes]:
- head = await reader.readexactly(9)
- if len(head) != 9 and head[0] != 0x28:
- raise ValueError("Invalid frame head", head)
- hl, bl = struct.unpack("!II", head[1:])
- try:
- return (
- highway_head.RspDataHighwayHead.FromString(await reader.readexactly(hl)),
- await reader.readexactly(bl)
- )
- finally:
- await reader.read(1) # flush end byte
-
-
-async def timeit(func: Awaitable) -> Tuple[float, Any]:
- start = time.time()
- result = await func
- return time.time() - start, result
-
-
-@dataclass
-class ImageUploadResponse:
- uploadKey: Optional[bytes] = None
- uploadAddr: Optional[List[Tuple[str, int]]] = None
- width: Optional[int] = None
- height: Optional[int] = None
- message: Optional[str] = None
- downloadIndex: Optional[str] = None
- resourceId: Optional[int] = None
- fileId: Optional[int] = None
- fileType: Optional[int] = None
- resultCode: int = 0
- isExists: bool = False
- hasMetaData: bool = False
-
-
-def decode_upload_image_resp(data: bytes) -> ImageUploadResponse:
- pkg = decode_d388_rsp(data).tryupImgRsp[0]
- if pkg.result != 0:
- return ImageUploadResponse(resultCode=pkg.result, message=pkg.failMsg.decode())
-
- if pkg.fileExit:
- if pkg.imgInfo:
- info = pkg.imgInfo
- # fuck: pkg.fileId != pkg.fileid
- return ImageUploadResponse(
- isExists=True, fileId=pkg.fileid, hasMetaData=True,
- fileType=info.fileType, width=info.fileWidth, height=info.fileHeight
- )
- else:
- return ImageUploadResponse(isExists=True, fileId=pkg.fileid)
- return ImageUploadResponse(
- isExists=False,
- uploadAddr=[(itoa(a), p) for a, p in zip(pkg.upIp, pkg.upPort)],
- uploadKey=pkg.upUkey
- )
-
-
-async def upload_image(file: BinaryIO, gid: int, client: "Client") -> ImageElement:
- fmd5, fl = calc_file_md5_and_length(file)
- ret = decode_upload_image_resp(
- (await client.send_unipkg_and_wait(
- "ImgStore.GroupPicUp",
- encode_d388_req(gid, client.uin, fmd5, fl).SerializeToString()
- )).data
- )
- if ret.resultCode != 0:
- raise ConnectionError(ret.resultCode)
- elif not ret.isExists:
- highway_logger.debug("file not found, uploading...")
-
- for addr in ret.uploadAddr:
- try:
- t, _ = await timeit(
- bdh_uploader(
- b"PicUp.DataUp",
- addr,
- file,
- 2,
- ret.uploadKey,
- client
- )
- )
- highway_logger.info("upload complete, use %fs in %d bytes" % (t * 1000, fl))
- except TimeoutError:
- highway_logger.error(f"server {addr[0]}:{addr[1]} timeout")
- continue
- finally:
- file.seek(0)
- break
- else:
- raise ConnectionError("cannot upload image, all server failure")
-
- if ret.hasMetaData:
- image_type = ret.fileType
- w, h = ret.width, ret.height
- else:
- image_type = 1000
- w, h = (800, 600)
-
- return ImageElement(
- id=ret.fileId,
- filename=to_img_id(fmd5),
- size=fl,
- width=w,
- height=h,
- md5=fmd5,
- filetype=image_type,
- url=f"https://gchat.qpic.cn/gchatpic_new/1/0-0-{fmd5.hex().upper()}/0?term=2"
- )
-
-
-async def bdh_uploader(
- cmd: bytes,
- addr: Tuple[str, int],
- file: BinaryIO,
- cmd_id: int,
- ticket: bytes,
- client: "Client", *,
- block_size=65535
-):
- fmd5, fl = calc_file_md5_and_length(file)
- print(addr)
- reader, writer = await asyncio.open_connection(*addr)
- bc = 0
- try:
- while True:
- bl = file.read(block_size)
- if not bl:
- break
- head = highway_head.ReqDataHighwayHead(
- basehead=create_highway_header(cmd, 4096, cmd_id, client),
- seghead=highway_head.SegHead(
- filesize=fl,
- dataoffset=bc * block_size,
- datalength=len(bl),
- serviceticket=ticket,
- md5=md5(bl).digest(),
- fileMd5=fmd5
- )
- ).SerializeToString()
-
- writer.write(write_frame(head, bl))
- await writer.drain()
-
- resp, _ = await read_frame(reader)
-
- bc += 1
- finally:
- writer.close()
diff --git a/cai/client/highway/__init__.py b/cai/client/highway/__init__.py
new file mode 100644
index 00000000..b53b1834
--- /dev/null
+++ b/cai/client/highway/__init__.py
@@ -0,0 +1,4 @@
+from .highway import HighWaySession
+
+
+__all__ = ["HighWaySession"]
diff --git a/cai/client/highway/decoders.py b/cai/client/highway/decoders.py
new file mode 100644
index 00000000..41ff971f
--- /dev/null
+++ b/cai/client/highway/decoders.py
@@ -0,0 +1,29 @@
+from .models import ImageUploadResponse
+from .utils import itoa
+from ...pb.im.oidb.cmd0x388.cmd0x388_pb2 import D388RspBody
+
+
+def decode_upload_image_resp(data: bytes) -> ImageUploadResponse:
+ pkg = decode_d388_rsp(data).tryupImgRsp[0]
+ if pkg.result != 0:
+ return ImageUploadResponse(resultCode=pkg.result, message=pkg.failMsg.decode())
+
+ if pkg.fileExit:
+ if pkg.imgInfo:
+ info = pkg.imgInfo
+ # fuck: pkg.fileId != pkg.fileid
+ return ImageUploadResponse(
+ isExists=True, fileId=pkg.fileid, hasMetaData=True,
+ fileType=info.fileType, width=info.fileWidth, height=info.fileHeight
+ )
+ else:
+ return ImageUploadResponse(isExists=True, fileId=pkg.fileid)
+ return ImageUploadResponse(
+ isExists=False,
+ uploadAddr=[(itoa(a), p) for a, p in zip(pkg.upIp, pkg.upPort)],
+ uploadKey=pkg.upUkey
+ )
+
+
+def decode_d388_rsp(data: bytes) -> D388RspBody:
+ return D388RspBody.FromString(data)
diff --git a/cai/client/message_service/upload.py b/cai/client/highway/encoders.py
similarity index 85%
rename from cai/client/message_service/upload.py
rename to cai/client/highway/encoders.py
index d38afe6a..ab733119 100644
--- a/cai/client/message_service/upload.py
+++ b/cai/client/highway/encoders.py
@@ -1,6 +1,4 @@
-import os
-
-from cai.pb.im.oidb.cmd0x388.cmd0x388_pb2 import D388ReqBody, TryUpImgReq, D388RspBody
+from cai.pb.im.oidb.cmd0x388.cmd0x388_pb2 import D388ReqBody, TryUpImgReq
def encode_d388_req(group_code: int, uin: int, md5: bytes, size: int) -> D388ReqBody:
@@ -28,6 +26,3 @@ def encode_d388_req(group_code: int, uin: int, md5: bytes, size: int) -> D388Req
)]
)
-
-def decode_d388_rsp(data: bytes) -> D388RspBody:
- return D388RspBody.FromString(data)
diff --git a/cai/client/highway/frame.py b/cai/client/highway/frame.py
new file mode 100644
index 00000000..4c557930
--- /dev/null
+++ b/cai/client/highway/frame.py
@@ -0,0 +1,29 @@
+import asyncio
+import struct
+from typing import Tuple
+
+from cai.pb.highway.protocol.highway_head_pb2 import highway_head
+
+
+def write_frame(head: bytes, body: bytes) -> bytes:
+ buf = bytearray()
+ buf.append(0x28)
+ buf += struct.pack("!II", len(head), len(body))
+ buf += head
+ buf += body
+ buf.append(0x29)
+ return buf
+
+
+async def read_frame(reader: asyncio.StreamReader) -> Tuple[highway_head.RspDataHighwayHead, bytes]:
+ head = await reader.readexactly(9)
+ if len(head) != 9 and head[0] != 0x28:
+ raise ValueError("Invalid frame head", head)
+ hl, bl = struct.unpack("!II", head[1:])
+ try:
+ return (
+ highway_head.RspDataHighwayHead.FromString(await reader.readexactly(hl)),
+ await reader.readexactly(bl)
+ )
+ finally:
+ await reader.read(1) # flush end byte
diff --git a/cai/client/highway/highway.py b/cai/client/highway/highway.py
new file mode 100644
index 00000000..2dc1c711
--- /dev/null
+++ b/cai/client/highway/highway.py
@@ -0,0 +1,131 @@
+import asyncio
+import logging
+from hashlib import md5
+from typing import Tuple, BinaryIO, TYPE_CHECKING
+
+from .decoders import decode_upload_image_resp
+from .encoders import encode_d388_req
+from .utils import calc_file_md5_and_length, timeit, to_img_id
+from .frame import read_frame, write_frame
+from cai.pb.highway.protocol.highway_head_pb2 import highway_head
+from ..message_service.models import ImageElement
+
+if TYPE_CHECKING:
+ from cai.client.client import Client
+
+
+def _create_highway_header(
+ cmd: bytes,
+ flag: int,
+ cmd_id: int,
+ client: "Client",
+ locale=2052
+) -> highway_head.DataHighwayHead:
+ return highway_head.DataHighwayHead(
+ version=1,
+ uin=str(client.uin).encode(),
+ command=cmd,
+ commandId=cmd_id,
+ seq=client.next_seq(),
+ appid=client.apk_info.app_id,
+ localeId=locale,
+ dataflag=flag
+ )
+
+
+class HighWaySession:
+ def __init__(self, client: "Client", logger: logging.Logger = None):
+ if not logger:
+ logger = logging.getLogger(__name__)
+ self.logger = logger
+ self._client = client
+
+ async def upload_image(self, file: BinaryIO, gid: int) -> ImageElement:
+ fmd5, fl = calc_file_md5_and_length(file)
+ ret = decode_upload_image_resp(
+ (await self._client.send_unipkg_and_wait(
+ "ImgStore.GroupPicUp",
+ encode_d388_req(gid, self._client.uin, fmd5, fl).SerializeToString()
+ )).data
+ )
+ if ret.resultCode != 0:
+ raise ConnectionError(ret.resultCode)
+ elif not ret.isExists:
+ self.logger.debug("file not found, uploading...")
+
+ for addr in ret.uploadAddr:
+ try:
+ t, _ = await timeit(
+ self.bdh_uploader(
+ b"PicUp.DataUp",
+ addr,
+ file,
+ 2,
+ ret.uploadKey
+ )
+ )
+ self.logger.info("upload complete, use %fs in %d bytes" % (t * 1000, fl))
+ except TimeoutError:
+ self.logger.error(f"server {addr[0]}:{addr[1]} timeout")
+ continue
+ finally:
+ file.seek(0)
+ break
+ else:
+ raise ConnectionError("cannot upload image, all server failure")
+
+ if ret.hasMetaData:
+ image_type = ret.fileType
+ w, h = ret.width, ret.height
+ else:
+ image_type = 1000
+ w, h = (800, 600)
+
+ return ImageElement(
+ id=ret.fileId,
+ filename=to_img_id(fmd5),
+ size=fl,
+ width=w,
+ height=h,
+ md5=fmd5,
+ filetype=image_type,
+ url=f"https://gchat.qpic.cn/gchatpic_new/1/0-0-{fmd5.hex().upper()}/0?term=2"
+ )
+
+ async def bdh_uploader(
+ self,
+ cmd: bytes,
+ addr: Tuple[str, int],
+ file: BinaryIO,
+ cmd_id: int,
+ ticket: bytes, *,
+ block_size=65535
+ ):
+ fmd5, fl = calc_file_md5_and_length(file)
+ reader, writer = await asyncio.open_connection(*addr)
+ bc = 0
+ try:
+ while True:
+ bl = file.read(block_size)
+ if not bl:
+ break
+ head = highway_head.ReqDataHighwayHead(
+ basehead=_create_highway_header(cmd, 4096, cmd_id, self._client),
+ seghead=highway_head.SegHead(
+ filesize=fl,
+ dataoffset=bc * block_size,
+ datalength=len(bl),
+ serviceticket=ticket,
+ md5=md5(bl).digest(),
+ fileMd5=fmd5
+ )
+ ).SerializeToString()
+
+ writer.write(write_frame(head, bl))
+ await writer.drain()
+
+ resp, _ = await read_frame(reader)
+
+ bc += 1
+ finally:
+ writer.close()
diff --git a/cai/client/highway/models.py b/cai/client/highway/models.py
new file mode 100644
index 00000000..b598217d
--- /dev/null
+++ b/cai/client/highway/models.py
@@ -0,0 +1,18 @@
+from dataclasses import dataclass
+from typing import Optional, List, Tuple
+
+
+@dataclass
+class ImageUploadResponse:
+ uploadKey: Optional[bytes] = None
+ uploadAddr: Optional[List[Tuple[str, int]]] = None
+ width: Optional[int] = None
+ height: Optional[int] = None
+ message: Optional[str] = None
+ downloadIndex: Optional[str] = None
+ resourceId: Optional[int] = None
+ fileId: Optional[int] = None
+ fileType: Optional[int] = None
+ resultCode: int = 0
+ isExists: bool = False
+ hasMetaData: bool = False
diff --git a/cai/client/highway/utils.py b/cai/client/highway/utils.py
new file mode 100644
index 00000000..5958499d
--- /dev/null
+++ b/cai/client/highway/utils.py
@@ -0,0 +1,32 @@
+import time
+import uuid
+from hashlib import md5
+from typing import BinaryIO, Tuple, Awaitable, Any
+
+
+def calc_file_md5_and_length(file: BinaryIO, bs=4096) -> Tuple[bytes, int]:
+ try:
+ fm, length = md5(), 0
+ while True:
+ bl = file.read(bs)
+ fm.update(bl)
+ length += len(bl)
+ if len(bl) != bs:
+ break
+ return fm.digest(), length
+ finally:
+ file.seek(0)
+
+
+def itoa(i: int) -> str: # int to address(str)
+ return ".".join([str(p) for p in i.to_bytes(4, "little")])
+
+
+def to_img_id(b_uuid: bytes) -> str:
+ return "{%s}.png" % uuid.UUID(bytes=b_uuid)
+
+
+async def timeit(func: Awaitable) -> Tuple[float, Any]:
+ start = time.time()
+ result = await func
+ return time.time() - start, result
From 270ed93cd15012864e3a63088743468be9bea98d Mon Sep 17 00:00:00 2001
From: a1025
Date: Sun, 3 Apr 2022 16:21:49 +0800
Subject: [PATCH 033/113] update: reconnect method
---
cai/client/client.py | 1 -
1 file changed, 1 deletion(-)
diff --git a/cai/client/client.py b/cai/client/client.py
index 471310d5..dd6eceea 100644
--- a/cai/client/client.py
+++ b/cai/client/client.py
@@ -322,7 +322,6 @@ async def reconnect(
if not change_server and self._connection:
log.network.debug("reconnecting...")
await self.connect()
- await self.login()
await self.register(register_reason=RegPushReason.MsfByNetChange)
log.network.debug("reconnected")
return
From 43ee0a4baf142f6219e6c715c9bad5f843f38ef6 Mon Sep 17 00:00:00 2001
From: a1025
Date: Sun, 3 Apr 2022 16:21:59 +0800
Subject: [PATCH 034/113] remove: unused code
---
cai/client/message_service/encoders.py | 10 +++-------
1 file changed, 3 insertions(+), 7 deletions(-)
diff --git a/cai/client/message_service/encoders.py b/cai/client/message_service/encoders.py
index a088c324..be0371ad 100644
--- a/cai/client/message_service/encoders.py
+++ b/cai/client/message_service/encoders.py
@@ -1,16 +1,12 @@
import random
-from typing import Sequence, TYPE_CHECKING, Dict, Type
+from typing import Sequence
from cai.pb.im.msg.msg_body import MsgBody, PlainText, RichText, CustomFace, Elem
-from cai.pb.msf.msg.svc.svc_pb2 import PbSendMsgReq, RoutingHead, Grp
+from cai.pb.msf.msg.svc.svc_pb2 import RoutingHead, Grp
from cai.pb.msf.msg.comm.comm_pb2 import ContentHead
-from cai.client.packet import UniPacket
from . import models
-from ...pb.msf.msg.svc import PbSendMsgReq
-
-if TYPE_CHECKING:
- from cai.client.client import Client
+from cai.pb.msf.msg.svc import PbSendMsgReq
# todo: https://github.com/mamoe/mirai/blob/7d3971259de59cede94b7a55650c8a6ad4346a59/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/receive/MessageSvc.PbSendMsg.kt#L103
From 79059158d1f567f6f1c1f17150d2ff73bd4cc2a5 Mon Sep 17 00:00:00 2001
From: a1025
Date: Sun, 3 Apr 2022 17:42:00 +0800
Subject: [PATCH 035/113] fix: login failfast
---
cai/client/client.py | 3 +++
1 file changed, 3 insertions(+)
diff --git a/cai/client/client.py b/cai/client/client.py
index dd6eceea..8d1dab09 100644
--- a/cai/client/client.py
+++ b/cai/client/client.py
@@ -8,9 +8,11 @@
.. _LICENSE:
https://github.com/cscs181/CAI/blob/master/LICENSE
"""
+import sys
import time
import asyncio
import secrets
+import traceback
from typing import (
Any,
Set,
@@ -340,6 +342,7 @@ async def reconnect(
async def close(self) -> None:
"""Close the client and logout."""
log.logger.warning("closing client")
+ self._reconnect = False
if (
self.connected
and self.status
From 97ca3a4bddd71463d92f45b5aef7277cbabf802a Mon Sep 17 00:00:00 2001
From: a1025
Date: Sun, 3 Apr 2022 17:58:04 +0800
Subject: [PATCH 036/113] add: FlashImage At RichMsg parse
---
cai/client/message_service/decoders.py | 55 +++++++++++++++++++++++++-
cai/client/message_service/models.py | 36 +++++++++++++++++
2 files changed, 89 insertions(+), 2 deletions(-)
diff --git a/cai/client/message_service/decoders.py b/cai/client/message_service/decoders.py
index e5b2983d..8a3b49fb 100644
--- a/cai/client/message_service/decoders.py
+++ b/cai/client/message_service/decoders.py
@@ -8,7 +8,7 @@
.. _LICENSE:
https://github.com/cscs181/CAI/blob/master/LICENSE
"""
-
+import zlib
from itertools import chain
from typing import Dict, List, Callable, Optional, Sequence
@@ -18,19 +18,23 @@
from cai.pb.im.msg.msg_body import Elem
from cai.pb.im.msg.service.comm_elem import (
MsgElemInfo_servtype2,
+ MsgElemInfo_servtype3,
MsgElemInfo_servtype33,
)
from .models import (
Element,
+ AtElement,
FaceElement,
PokeElement,
TextElement,
GroupMessage,
ImageElement,
ReplyElement,
+ RichMsgElement,
PrivateMessage,
SmallEmojiElement,
+ FlashImageElement
)
@@ -67,7 +71,39 @@ def parse_elements(elems: Sequence[Elem]) -> List[Element]:
)
# TextElemDecoder
if elem.HasField("text"):
- res.append(TextElement(elem.text.str.decode("utf-8")))
+ if elem.text.attr_6_buf:
+ res.append(
+ AtElement(
+ int.from_bytes(elem.text.attr_6_buf[7:11], "big", signed=False),
+ elem.text.str.decode("utf-8")
+ )
+ )
+ else:
+ res.append(TextElement(elem.text.str.decode("utf-8")))
+ if elem.HasField("rich_msg"):
+ if elem.rich_msg.template_1[0]:
+ content = zlib.decompress(elem.rich_msg.template_1[1:])
+ else:
+ content = elem.rich_msg.template_1[1:]
+ res.append(
+ RichMsgElement(
+ content,
+ elem.rich_msg.service_id if content[1] == 60 else -1
+ )
+ )
+ break
+ if elem.HasField("light_app"):
+ if elem.light_app.data[0]:
+ content = zlib.decompress(elem.light_app.data[1:])
+ else:
+ content = elem.light_app.data[1:]
+ res.append(
+ RichMsgElement(
+ content,
+ -2
+ )
+ )
+ break
# TextElemDecoder
if elem.HasField("face"):
res.append(FaceElement(elem.face.index))
@@ -167,6 +203,21 @@ def parse_elements(elems: Sequence[Elem]) -> List[Element]:
)
]
break
+ elif service_type == 3:
+ flash = MsgElemInfo_servtype3.FromString(elem.common_elem.pb_elem)
+ if flash.flash_troop_pic:
+ res.append(
+ FlashImageElement(
+ id=flash.flash_troop_pic.file_id,
+ filename=flash.flash_troop_pic.file_path,
+ filetype=flash.flash_troop_pic.file_type,
+ size=flash.flash_troop_pic.size,
+ md5=flash.flash_troop_pic.md5,
+ width=flash.flash_troop_pic.width,
+ height=flash.flash_troop_pic.height
+ )
+ )
+ break
# TextElemDecoder
elif service_type == 33:
info = MsgElemInfo_servtype33.FromString(
diff --git a/cai/client/message_service/models.py b/cai/client/message_service/models.py
index 7dd10ed9..f2df2f4a 100644
--- a/cai/client/message_service/models.py
+++ b/cai/client/message_service/models.py
@@ -115,6 +115,13 @@ def type(self) -> str:
return "image"
+@dataclass
+class FlashImageElement(ImageElement):
+ @property
+ def type(self) -> str:
+ return "flash_image"
+
+
@dataclass
class PokeElement(Element):
id: int
@@ -125,3 +132,32 @@ class PokeElement(Element):
@property
def type(self) -> str:
return "poke"
+
+
+@dataclass
+class AtElement(Element):
+ target: int
+ display: Optional[str] = ""
+
+ @property
+ def type(self) -> str:
+ return "at"
+
+
+@dataclass
+class RichMsgElement(Element):
+ """
+ service_id:
+ case -1:
+ json
+ case -2:
+ light_app
+ default:
+ xml
+ """
+ content: bytes
+ service_id: Optional[int] = -1
+
+ @property
+ def type(self) -> str:
+ return "rich_msg"
From 398b92bd0a2349cbf599aa7369f981e719a98506 Mon Sep 17 00:00:00 2001
From: a1025
Date: Sun, 3 Apr 2022 22:44:44 +0800
Subject: [PATCH 037/113] add: raise send_group_msg error
---
cai/api/client.py | 26 ++++++++++++++++++++------
cai/api/error.py | 18 ++++++++++++++++++
cai/client/client.py | 2 --
3 files changed, 38 insertions(+), 8 deletions(-)
create mode 100644 cai/api/error.py
diff --git a/cai/api/client.py b/cai/api/client.py
index be42e96a..c86a661e 100644
--- a/cai/api/client.py
+++ b/cai/api/client.py
@@ -18,10 +18,13 @@
from cai.settings.device import DeviceInfo, new_device
from cai.settings.protocol import ApkInfo
+from .error import BotMutedException, AtAllLimitException, GroupMsgLimitException
from .friend import Friend as _Friend
from .group import Group as _Group
from .login import Login as _Login
+from cai.pb.msf.msg.svc import PbSendMsgResp
+
def make_client(
uin: int,
@@ -54,15 +57,26 @@ def status(self) -> Optional[OnlineStatus]:
return self.client.status
async def send_group_msg(self, gid: int, msg: Sequence[Element]):
- seq = self.client.next_seq()
# todo: split long msg
- return await self.client.send_unipkg_and_wait(
- "MessageSvc.PbSendMsg",
- make_group_msg_pkg(
- seq, gid, build_msg(msg)
- ).SerializeToString()
+ resp: PbSendMsgResp = PbSendMsgResp.FromString(
+ (await self.client.send_unipkg_and_wait(
+ "MessageSvc.PbSendMsg",
+ make_group_msg_pkg(
+ self.client.next_seq(), gid, build_msg(msg)
+ ).SerializeToString()
+ )).data
)
+ if resp.result == 120:
+ raise BotMutedException
+ elif resp.result == 121:
+ raise AtAllLimitException
+ elif resp.result == 299:
+ raise GroupMsgLimitException
+ else:
+ # todo: store msg
+ return resp
+
async def upload_image(self, group_id: int, file: BinaryIO) -> ImageElement:
return await self._highway_session.upload_image(file, group_id)
diff --git a/cai/api/error.py b/cai/api/error.py
new file mode 100644
index 00000000..569a4d44
--- /dev/null
+++ b/cai/api/error.py
@@ -0,0 +1,18 @@
+class BotException(Exception):
+ pass
+
+
+class BotMutedException(BotException):
+ pass
+
+
+class LimitException(Exception):
+ pass
+
+
+class AtAllLimitException(LimitException):
+ pass
+
+
+class GroupMsgLimitException(LimitException):
+ pass
diff --git a/cai/client/client.py b/cai/client/client.py
index 8d1dab09..888ed6cf 100644
--- a/cai/client/client.py
+++ b/cai/client/client.py
@@ -8,11 +8,9 @@
.. _LICENSE:
https://github.com/cscs181/CAI/blob/master/LICENSE
"""
-import sys
import time
import asyncio
import secrets
-import traceback
from typing import (
Any,
Set,
From f73d8682b1615da94e63713c28d8efe4ceb9c482 Mon Sep 17 00:00:00 2001
From: a1025
Date: Sun, 3 Apr 2022 23:39:11 +0800
Subject: [PATCH 038/113] add: send At & FlashImage
---
cai/client/message_service/encoders.py | 63 ++++++++++++++++++--------
1 file changed, 44 insertions(+), 19 deletions(-)
diff --git a/cai/client/message_service/encoders.py b/cai/client/message_service/encoders.py
index be0371ad..416c5e97 100644
--- a/cai/client/message_service/encoders.py
+++ b/cai/client/message_service/encoders.py
@@ -1,7 +1,7 @@
import random
-from typing import Sequence
-from cai.pb.im.msg.msg_body import MsgBody, PlainText, RichText, CustomFace, Elem
+from typing import Sequence, Union
+from cai.pb.im.msg.msg_body import MsgBody, PlainText, RichText, CustomFace, Elem, CommonElem
from cai.pb.msf.msg.svc.svc_pb2 import RoutingHead, Grp
from cai.pb.msf.msg.comm.comm_pb2 import ContentHead
@@ -12,6 +12,27 @@
# todo: https://github.com/mamoe/mirai/blob/7d3971259de59cede94b7a55650c8a6ad4346a59/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/receive/MessageSvc.PbSendMsg.kt#L103
# https://github.com/mamoe/mirai/blob/74fc5a50376ed0330b984af51e0fabc2147afdbb/mirai-core/src/commonMain/kotlin/contact/SendMessageHandler.kt
+
+def _build_image_elem(e: Union[models.ImageElement, models.FlashImageElement]) -> CustomFace:
+ return CustomFace(
+ file_type=66,
+ useful=1,
+ biz_type=0,
+ width=e.width,
+ height=e.height,
+ file_id=e.id,
+ file_path=e.filename,
+ image_type=e.filetype,
+ source=200,
+ origin=1,
+ size=e.size,
+ md5=e.md5,
+ show_len=0,
+ download_len=0
+ #flag=b"\x00\x00\x00\x00"
+ )
+
+
def build_msg(elements: Sequence[models.Element]) -> MsgBody:
ret = []
for e in elements: # todo: support more element
@@ -22,22 +43,27 @@ def build_msg(elements: Sequence[models.Element]) -> MsgBody:
elif isinstance(e, models.ImageElement):
ret.append(
Elem(
- custom_face=CustomFace(
- file_type=66,
- useful=1,
- biz_type=0,
- width=e.width,
- height=e.height,
- file_id=e.id,
- file_path=e.filename,
- image_type=e.filetype,
- source=200,
- origin=1,
- size=e.size,
- md5=e.md5,
- show_len=0,
- download_len=0
- #flag=b"\x00\x00\x00\x00"
+ custom_face=_build_image_elem(e)
+ )
+ )
+ elif isinstance(e, models.FlashImageElement):
+ ret.append(
+ Elem(
+ common_elem=CommonElem(
+ service_type=3,
+ pb_elem=_build_image_elem(e).SerializeToString()
+ )
+ )
+ )
+ ret.append( # fallback info
+ Elem(text=PlainText(str="[闪照]请使用新版手机QQ查看".encode()))
+ )
+ elif isinstance(e, models.AtElement):
+ ret.append(
+ Elem(
+ text=PlainText(
+ str=e.display.encode(),
+ attr_6_buf=b"\x00\x01\x00\x00\x00\x03\x00"+e.target.to_bytes(4, "big", signed=False)+b"\x00\x00"
)
)
)
@@ -46,7 +72,6 @@ def build_msg(elements: Sequence[models.Element]) -> MsgBody:
return MsgBody(
rich_text=RichText(
- #elems=[Elem(text=e) for e in ret],
elems=ret,
ptt=None
)
From 9afe29884d39cc80cb77a4392a5d98881a2c2725 Mon Sep 17 00:00:00 2001
From: a1025
Date: Mon, 4 Apr 2022 00:11:11 +0800
Subject: [PATCH 039/113] add: send RichMsg
---
cai/client/message_service/decoders.py | 10 ++++------
cai/client/message_service/encoders.py | 18 +++++++++++++++++-
cai/client/message_service/models.py | 2 +-
3 files changed, 22 insertions(+), 8 deletions(-)
diff --git a/cai/client/message_service/decoders.py b/cai/client/message_service/decoders.py
index 8a3b49fb..bd0a67a6 100644
--- a/cai/client/message_service/decoders.py
+++ b/cai/client/message_service/decoders.py
@@ -85,25 +85,23 @@ def parse_elements(elems: Sequence[Elem]) -> List[Element]:
content = zlib.decompress(elem.rich_msg.template_1[1:])
else:
content = elem.rich_msg.template_1[1:]
- res.append(
+ return [
RichMsgElement(
content,
elem.rich_msg.service_id if content[1] == 60 else -1
)
- )
- break
+ ]
if elem.HasField("light_app"):
if elem.light_app.data[0]:
content = zlib.decompress(elem.light_app.data[1:])
else:
content = elem.light_app.data[1:]
- res.append(
+ return [
RichMsgElement(
content,
-2
)
- )
- break
+ ]
# TextElemDecoder
if elem.HasField("face"):
res.append(FaceElement(elem.face.index))
diff --git a/cai/client/message_service/encoders.py b/cai/client/message_service/encoders.py
index 416c5e97..79cb8d66 100644
--- a/cai/client/message_service/encoders.py
+++ b/cai/client/message_service/encoders.py
@@ -1,7 +1,8 @@
import random
+import zlib
from typing import Sequence, Union
-from cai.pb.im.msg.msg_body import MsgBody, PlainText, RichText, CustomFace, Elem, CommonElem
+from cai.pb.im.msg.msg_body import MsgBody, PlainText, RichText, CustomFace, Elem, CommonElem, LightAppElem, RichMsg
from cai.pb.msf.msg.svc.svc_pb2 import RoutingHead, Grp
from cai.pb.msf.msg.comm.comm_pb2 import ContentHead
@@ -67,6 +68,21 @@ def build_msg(elements: Sequence[models.Element]) -> MsgBody:
)
)
)
+ elif isinstance(e, models.RichMsgElement):
+ if len(e.content) > 256: # compress require
+ content = b"\x01" + zlib.compress(e.content, level=6)
+ else:
+ content = b"\x00" + e.content
+ if e.service_id == -2: # LightApp
+ ret_elem = Elem(light_app=LightAppElem(
+ data=content
+ ))
+ else: # Json & Xml
+ ret_elem = Elem(rich_msg=RichMsg(
+ template_1=content,
+ service_id=0 if e.service_id < 0 else e.service_id
+ ))
+ ret.append(ret_elem)
else:
raise NotImplementedError(e)
diff --git a/cai/client/message_service/models.py b/cai/client/message_service/models.py
index f2df2f4a..5dbb2bb8 100644
--- a/cai/client/message_service/models.py
+++ b/cai/client/message_service/models.py
@@ -156,7 +156,7 @@ class RichMsgElement(Element):
xml
"""
content: bytes
- service_id: Optional[int] = -1
+ service_id: Optional[int] = -2
@property
def type(self) -> str:
From 5cbafe85d41a2b3e4b620f3aafdc85d17498c490 Mon Sep 17 00:00:00 2001
From: a1025
Date: Mon, 4 Apr 2022 10:46:45 +0800
Subject: [PATCH 040/113] fix: remove redundancy data of Reply
---
cai/client/message_service/decoders.py | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/cai/client/message_service/decoders.py b/cai/client/message_service/decoders.py
index bd0a67a6..dfdf3ad3 100644
--- a/cai/client/message_service/decoders.py
+++ b/cai/client/message_service/decoders.py
@@ -60,6 +60,12 @@ def parse_elements(elems: Sequence[Elem]) -> List[Element]:
# SrcElemDecoder
if elem.HasField("src_msg"):
if len(elem.src_msg.orig_seqs) > 0:
+ # preprocess
+ # Delete redundancy data
+ if index == 2: # Sent by PC
+ res = []
+ else:
+ index += 1 # pass
res.append(
ReplyElement(
elem.src_msg.orig_seqs[0],
From 77cd27aff299553c8cfe26439622bf7256f27cf6 Mon Sep 17 00:00:00 2001
From: a1025
Date: Tue, 5 Apr 2022 00:07:48 +0800
Subject: [PATCH 041/113] fix: rich_msg parse
---
cai/client/message_service/decoders.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/cai/client/message_service/decoders.py b/cai/client/message_service/decoders.py
index dfdf3ad3..13fe98ec 100644
--- a/cai/client/message_service/decoders.py
+++ b/cai/client/message_service/decoders.py
@@ -94,7 +94,7 @@ def parse_elements(elems: Sequence[Elem]) -> List[Element]:
return [
RichMsgElement(
content,
- elem.rich_msg.service_id if content[1] == 60 else -1
+ elem.rich_msg.service_id if content[0] == 60 else -1
)
]
if elem.HasField("light_app"):
From ab243e0c6719620e7f90ca8c2af7ca9fe3374d12 Mon Sep 17 00:00:00 2001
From: a1025
Date: Tue, 5 Apr 2022 00:09:25 +0800
Subject: [PATCH 042/113] change: heartbeat err
---
cai/client/client.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/cai/client/client.py b/cai/client/client.py
index 888ed6cf..460a7919 100644
--- a/cai/client/client.py
+++ b/cai/client/client.py
@@ -985,8 +985,8 @@ async def heartbeat(self) -> None:
)
if not isinstance(response, Heartbeat):
raise RuntimeError("Invalid heartbeat response type!")
- except Exception:
- log.network.exception("Heartbeat.Alive: Failed")
+ except (ConnectionError, TimeoutError) as e:
+ log.network.error(f"Heartbeat.Alive: failed by {str(e)}")
break
await asyncio.sleep(self._heartbeat_interval)
From 95d6d51609105a8f170e6c543b1889efd1f763b7 Mon Sep 17 00:00:00 2001
From: a1025
Date: Tue, 5 Apr 2022 00:29:34 +0800
Subject: [PATCH 043/113] change: log level
---
cai/client/client.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/cai/client/client.py b/cai/client/client.py
index 460a7919..83217373 100644
--- a/cai/client/client.py
+++ b/cai/client/client.py
@@ -320,10 +320,10 @@ async def reconnect(
"""
if not change_server and self._connection:
- log.network.debug("reconnecting...")
+ log.network.warning("reconnecting...")
await self.connect()
await self.register(register_reason=RegPushReason.MsfByNetChange)
- log.network.debug("reconnected")
+ log.network.info("reconnected")
return
exclude = (
From d5fbcd865759517463325986b7b70aa07428ad53 Mon Sep 17 00:00:00 2001
From: a1025
Date: Tue, 5 Apr 2022 01:43:28 +0800
Subject: [PATCH 044/113] add: AtAll recv/send
---
cai/client/message_service/decoders.py | 14 +++++++++-----
cai/client/message_service/encoders.py | 9 +++++++++
2 files changed, 18 insertions(+), 5 deletions(-)
diff --git a/cai/client/message_service/decoders.py b/cai/client/message_service/decoders.py
index 13fe98ec..95aca362 100644
--- a/cai/client/message_service/decoders.py
+++ b/cai/client/message_service/decoders.py
@@ -31,6 +31,7 @@
GroupMessage,
ImageElement,
ReplyElement,
+ AtAllElement,
RichMsgElement,
PrivateMessage,
SmallEmojiElement,
@@ -78,12 +79,15 @@ def parse_elements(elems: Sequence[Elem]) -> List[Element]:
# TextElemDecoder
if elem.HasField("text"):
if elem.text.attr_6_buf:
- res.append(
- AtElement(
- int.from_bytes(elem.text.attr_6_buf[7:11], "big", signed=False),
- elem.text.str.decode("utf-8")
+ if elem.text.attr_6_buf[6]: # AtAll
+ res.append(AtAllElement())
+ else:
+ res.append(
+ AtElement(
+ int.from_bytes(elem.text.attr_6_buf[7:11], "big", signed=False),
+ elem.text.str.decode("utf-8")
+ )
)
- )
else:
res.append(TextElement(elem.text.str.decode("utf-8")))
if elem.HasField("rich_msg"):
diff --git a/cai/client/message_service/encoders.py b/cai/client/message_service/encoders.py
index 79cb8d66..e81f686e 100644
--- a/cai/client/message_service/encoders.py
+++ b/cai/client/message_service/encoders.py
@@ -68,6 +68,15 @@ def build_msg(elements: Sequence[models.Element]) -> MsgBody:
)
)
)
+ elif isinstance(e, models.AtAllElement):
+ ret.append(
+ Elem(
+ text=PlainText(
+ str="@全体成员".encode(),
+ attr_6_buf=b"\x00\x01\x00\x00\x00\x03\x01\x00\x00\x00\x00\x00\x00"
+ )
+ )
+ )
elif isinstance(e, models.RichMsgElement):
if len(e.content) > 256: # compress require
content = b"\x01" + zlib.compress(e.content, level=6)
From 325e0abadd2a77099817c0a365f0ccf25e7a9e85 Mon Sep 17 00:00:00 2001
From: a1025
Date: Tue, 5 Apr 2022 01:43:46 +0800
Subject: [PATCH 045/113] add: AtAll recv/send
---
cai/client/message_service/models.py | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/cai/client/message_service/models.py b/cai/client/message_service/models.py
index 5dbb2bb8..40f447e6 100644
--- a/cai/client/message_service/models.py
+++ b/cai/client/message_service/models.py
@@ -99,6 +99,13 @@ def type(self) -> str:
return "small_emoji"
+@dataclass
+class AtAllElement(Element):
+ @property
+ def type(self) -> str:
+ return "at_all"
+
+
@dataclass
class ImageElement(Element):
filename: str
From 18be327194837e044d0df22bffc140801f3169fb Mon Sep 17 00:00:00 2001
From: a1025
Date: Tue, 5 Apr 2022 01:46:57 +0800
Subject: [PATCH 046/113] add: Image.to_flash
---
cai/client/message_service/models.py | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/cai/client/message_service/models.py b/cai/client/message_service/models.py
index 40f447e6..55a766be 100644
--- a/cai/client/message_service/models.py
+++ b/cai/client/message_service/models.py
@@ -121,6 +121,18 @@ class ImageElement(Element):
def type(self) -> str:
return "image"
+ def to_flash(self) -> "FlashImageElement":
+ return FlashImageElement(
+ filename=self.filename,
+ filetype=self.filetype,
+ size=self.size,
+ width=self.width,
+ height=self.height,
+ md5=self.md5,
+ id=self.id,
+ url=self.url
+ )
+
@dataclass
class FlashImageElement(ImageElement):
From 446f383bba3ff3af60284bd4bc6b2c6f7d16d7d4 Mon Sep 17 00:00:00 2001
From: a1025
Date: Tue, 5 Apr 2022 01:54:31 +0800
Subject: [PATCH 047/113] fix: flash_image build err
---
cai/client/message_service/encoders.py | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/cai/client/message_service/encoders.py b/cai/client/message_service/encoders.py
index e81f686e..4cd61b25 100644
--- a/cai/client/message_service/encoders.py
+++ b/cai/client/message_service/encoders.py
@@ -12,6 +12,7 @@
# todo: https://github.com/mamoe/mirai/blob/7d3971259de59cede94b7a55650c8a6ad4346a59/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/receive/MessageSvc.PbSendMsg.kt#L103
# https://github.com/mamoe/mirai/blob/74fc5a50376ed0330b984af51e0fabc2147afdbb/mirai-core/src/commonMain/kotlin/contact/SendMessageHandler.kt
+from ...pb.im.msg.service.comm_elem import MsgElemInfo_servtype3
def _build_image_elem(e: Union[models.ImageElement, models.FlashImageElement]) -> CustomFace:
@@ -41,24 +42,24 @@ def build_msg(elements: Sequence[models.Element]) -> MsgBody:
ret.append(
Elem(text=PlainText(str=e.content.encode()))
)
- elif isinstance(e, models.ImageElement):
- ret.append(
- Elem(
- custom_face=_build_image_elem(e)
- )
- )
elif isinstance(e, models.FlashImageElement):
ret.append(
Elem(
common_elem=CommonElem(
service_type=3,
- pb_elem=_build_image_elem(e).SerializeToString()
+ pb_elem=MsgElemInfo_servtype3(flash_troop_pic=_build_image_elem(e)).SerializeToString()
)
)
)
ret.append( # fallback info
Elem(text=PlainText(str="[闪照]请使用新版手机QQ查看".encode()))
)
+ elif isinstance(e, models.ImageElement):
+ ret.append(
+ Elem(
+ custom_face=_build_image_elem(e)
+ )
+ )
elif isinstance(e, models.AtElement):
ret.append(
Elem(
From 897e78c54ce82dfbc69e6f90fbd9ed7ac71ff052 Mon Sep 17 00:00:00 2001
From: a1025
Date: Tue, 5 Apr 2022 02:03:55 +0800
Subject: [PATCH 048/113] fix: flash_image no url
---
cai/client/message_service/decoders.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/cai/client/message_service/decoders.py b/cai/client/message_service/decoders.py
index 95aca362..5ff29670 100644
--- a/cai/client/message_service/decoders.py
+++ b/cai/client/message_service/decoders.py
@@ -222,7 +222,8 @@ def parse_elements(elems: Sequence[Elem]) -> List[Element]:
size=flash.flash_troop_pic.size,
md5=flash.flash_troop_pic.md5,
width=flash.flash_troop_pic.width,
- height=flash.flash_troop_pic.height
+ height=flash.flash_troop_pic.height,
+ url=f"https://gchat.qpic.cn/gchatpic_new/0/0-0-{flash.flash_troop_pic.md5.hex().upper()}/0"
)
)
break
From 0054da13bf0f70a212318e2e1643f3ad9c9e325c Mon Sep 17 00:00:00 2001
From: a1025
Date: Tue, 5 Apr 2022 02:26:47 +0800
Subject: [PATCH 049/113] add: shake_window & improve parser
---
cai/client/message_service/decoders.py | 21 +++++++++++----------
cai/client/message_service/encoders.py | 12 +++++++++++-
cai/client/message_service/models.py | 10 ++++++++++
3 files changed, 32 insertions(+), 11 deletions(-)
diff --git a/cai/client/message_service/decoders.py b/cai/client/message_service/decoders.py
index 5ff29670..907f06b2 100644
--- a/cai/client/message_service/decoders.py
+++ b/cai/client/message_service/decoders.py
@@ -35,7 +35,7 @@
RichMsgElement,
PrivateMessage,
SmallEmojiElement,
- FlashImageElement
+ FlashImageElement, ShakeElement
)
@@ -77,7 +77,7 @@ def parse_elements(elems: Sequence[Elem]) -> List[Element]:
)
)
# TextElemDecoder
- if elem.HasField("text"):
+ elif elem.HasField("text"):
if elem.text.attr_6_buf:
if elem.text.attr_6_buf[6]: # AtAll
res.append(AtAllElement())
@@ -90,7 +90,7 @@ def parse_elements(elems: Sequence[Elem]) -> List[Element]:
)
else:
res.append(TextElement(elem.text.str.decode("utf-8")))
- if elem.HasField("rich_msg"):
+ elif elem.HasField("rich_msg"):
if elem.rich_msg.template_1[0]:
content = zlib.decompress(elem.rich_msg.template_1[1:])
else:
@@ -101,7 +101,7 @@ def parse_elements(elems: Sequence[Elem]) -> List[Element]:
elem.rich_msg.service_id if content[0] == 60 else -1
)
]
- if elem.HasField("light_app"):
+ elif elem.HasField("light_app"):
if elem.light_app.data[0]:
content = zlib.decompress(elem.light_app.data[1:])
else:
@@ -113,10 +113,10 @@ def parse_elements(elems: Sequence[Elem]) -> List[Element]:
)
]
# TextElemDecoder
- if elem.HasField("face"):
+ elif elem.HasField("face"):
res.append(FaceElement(elem.face.index))
# TextElemDecoder
- if elem.HasField("small_emoji"):
+ elif elem.HasField("small_emoji"):
index += 1
text = elems[index].text.str.decode("utf-8")
res.append(
@@ -136,7 +136,7 @@ def parse_elements(elems: Sequence[Elem]) -> List[Element]:
)
)
# PictureElemDecoder
- if elem.HasField("custom_face"):
+ elif elem.HasField("custom_face"):
if elem.custom_face.md5 and elem.custom_face.orig_url:
res.append(
ImageElement(
@@ -162,7 +162,7 @@ def parse_elements(elems: Sequence[Elem]) -> List[Element]:
)
)
# PictureElemDecoder
- if elem.HasField("not_online_image"):
+ elif elem.HasField("not_online_image"):
if elem.not_online_image.orig_url:
res.append(
ImageElement(
@@ -193,7 +193,7 @@ def parse_elements(elems: Sequence[Elem]) -> List[Element]:
+ "/0",
)
)
- if elem.HasField("common_elem"):
+ elif elem.HasField("common_elem"):
service_type = elem.common_elem.service_type
# PokeMsgElemDecoder
if service_type == 2:
@@ -233,7 +233,8 @@ def parse_elements(elems: Sequence[Elem]) -> List[Element]:
elem.common_elem.pb_elem
)
res.append(FaceElement(info.index))
-
+ elif elem.HasField("shake_window"):
+ res.append(ShakeElement(stype=elem.shake_window.type, uin=elem.shake_window.uin))
index += 1
return res
diff --git a/cai/client/message_service/encoders.py b/cai/client/message_service/encoders.py
index 4cd61b25..c0e8d89b 100644
--- a/cai/client/message_service/encoders.py
+++ b/cai/client/message_service/encoders.py
@@ -2,7 +2,8 @@
import zlib
from typing import Sequence, Union
-from cai.pb.im.msg.msg_body import MsgBody, PlainText, RichText, CustomFace, Elem, CommonElem, LightAppElem, RichMsg
+from cai.pb.im.msg.msg_body import MsgBody, PlainText, RichText, CustomFace, Elem, CommonElem, LightAppElem, RichMsg, \
+ ShakeWindow
from cai.pb.msf.msg.svc.svc_pb2 import RoutingHead, Grp
from cai.pb.msf.msg.comm.comm_pb2 import ContentHead
@@ -93,6 +94,15 @@ def build_msg(elements: Sequence[models.Element]) -> MsgBody:
service_id=0 if e.service_id < 0 else e.service_id
))
ret.append(ret_elem)
+ elif isinstance(e, models.ShakeElement):
+ ret.append(
+ Elem(
+ shake_window=ShakeWindow(type=e.stype, uin=e.uin)
+ )
+ )
+ ret.append( # fallback info
+ Elem(text=PlainText(str="[窗口抖动]请使用新版手机QQ查看".encode()))
+ )
else:
raise NotImplementedError(e)
diff --git a/cai/client/message_service/models.py b/cai/client/message_service/models.py
index 55a766be..b5796572 100644
--- a/cai/client/message_service/models.py
+++ b/cai/client/message_service/models.py
@@ -180,3 +180,13 @@ class RichMsgElement(Element):
@property
def type(self) -> str:
return "rich_msg"
+
+
+@dataclass
+class ShakeElement(Element):
+ stype: int = 0
+ uin: int = 0
+
+ @property
+ def type(self) -> str:
+ return "shake"
From e7d37e09141ca2d8f4b78f85d0084d53640cdf1e Mon Sep 17 00:00:00 2001
From: a1025
Date: Tue, 5 Apr 2022 03:00:58 +0800
Subject: [PATCH 050/113] add: poke send
---
cai/client/message_service/decoders.py | 3 ++-
cai/client/message_service/encoders.py | 19 ++++++++++++++++++-
cai/client/message_service/models.py | 8 ++++----
3 files changed, 24 insertions(+), 6 deletions(-)
diff --git a/cai/client/message_service/decoders.py b/cai/client/message_service/decoders.py
index 907f06b2..f815c3bd 100644
--- a/cai/client/message_service/decoders.py
+++ b/cai/client/message_service/decoders.py
@@ -200,6 +200,7 @@ def parse_elements(elems: Sequence[Elem]) -> List[Element]:
poke = MsgElemInfo_servtype2.FromString(
elem.common_elem.pb_elem
)
+ print(poke)
res = [
PokeElement(
poke.poke_type
@@ -207,7 +208,7 @@ def parse_elements(elems: Sequence[Elem]) -> List[Element]:
else poke.vaspoke_id,
poke.vaspoke_name.decode("utf-8"),
poke.poke_strength,
- poke.double_hit,
+ poke.double_hit
)
]
break
diff --git a/cai/client/message_service/encoders.py b/cai/client/message_service/encoders.py
index c0e8d89b..41a5034d 100644
--- a/cai/client/message_service/encoders.py
+++ b/cai/client/message_service/encoders.py
@@ -9,11 +9,11 @@
from . import models
from cai.pb.msf.msg.svc import PbSendMsgReq
+from cai.pb.im.msg.service.comm_elem import MsgElemInfo_servtype3, MsgElemInfo_servtype2
# todo: https://github.com/mamoe/mirai/blob/7d3971259de59cede94b7a55650c8a6ad4346a59/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/receive/MessageSvc.PbSendMsg.kt#L103
# https://github.com/mamoe/mirai/blob/74fc5a50376ed0330b984af51e0fabc2147afdbb/mirai-core/src/commonMain/kotlin/contact/SendMessageHandler.kt
-from ...pb.im.msg.service.comm_elem import MsgElemInfo_servtype3
def _build_image_elem(e: Union[models.ImageElement, models.FlashImageElement]) -> CustomFace:
@@ -103,6 +103,23 @@ def build_msg(elements: Sequence[models.Element]) -> MsgBody:
ret.append( # fallback info
Elem(text=PlainText(str="[窗口抖动]请使用新版手机QQ查看".encode()))
)
+ elif isinstance(e, models.PokeElement):
+ ret.append(
+ Elem(
+ common_elem=CommonElem(
+ service_type=2,
+ pb_elem=MsgElemInfo_servtype2(
+ vaspoke_id=0xFFFFFFFF,
+ vaspoke_name=e.name.encode(),
+ poke_type=e.id,
+ poke_strength=e.strength,
+ double_hit=e.double_hit,
+ poke_flag=0
+ ).SerializeToString()
+ )
+ )
+ )
+
else:
raise NotImplementedError(e)
diff --git a/cai/client/message_service/models.py b/cai/client/message_service/models.py
index b5796572..6eb8e41e 100644
--- a/cai/client/message_service/models.py
+++ b/cai/client/message_service/models.py
@@ -143,10 +143,10 @@ def type(self) -> str:
@dataclass
class PokeElement(Element):
- id: int
- name: str
- strength: int
- double_hit: int
+ id: int = 0
+ name: str = ""
+ strength: int = 0
+ double_hit: int = 0
@property
def type(self) -> str:
From 1d3f731b6eaeb36392949f755f46d13d9d84c4ba Mon Sep 17 00:00:00 2001
From: a1025
Date: Tue, 5 Apr 2022 15:03:48 +0800
Subject: [PATCH 051/113] fix: highway bug & support send voice
---
cai/api/client.py | 5 +-
cai/client/highway/decoders.py | 18 +++-
cai/client/highway/encoders.py | 43 ++++++--
cai/client/highway/highway.py | 139 +++++++++++++++++++------
cai/client/highway/models.py | 10 +-
cai/client/highway/utils.py | 4 +-
cai/client/message_service/decoders.py | 1 -
cai/client/message_service/encoders.py | 9 +-
cai/client/message_service/models.py | 30 ++++++
9 files changed, 206 insertions(+), 53 deletions(-)
diff --git a/cai/api/client.py b/cai/api/client.py
index c86a661e..d90609a5 100644
--- a/cai/api/client.py
+++ b/cai/api/client.py
@@ -13,7 +13,7 @@
from cai import log
from cai.client import OnlineStatus, Client as client_t
from cai.client.highway import HighWaySession
-from cai.client.message_service.models import Element, ImageElement
+from cai.client.message_service.models import Element, ImageElement, VoiceElement
from cai.client.message_service.encoders import make_group_msg_pkg, build_msg
from cai.settings.device import DeviceInfo, new_device
from cai.settings.protocol import ApkInfo
@@ -80,6 +80,9 @@ async def send_group_msg(self, gid: int, msg: Sequence[Element]):
async def upload_image(self, group_id: int, file: BinaryIO) -> ImageElement:
return await self._highway_session.upload_image(file, group_id)
+ async def upload_voice(self, group_id: int, file: BinaryIO) -> VoiceElement:
+ return await self._highway_session.upload_voice(file, group_id)
+
async def close(self):
"""Stop Client"""
await self.client.close()
diff --git a/cai/client/highway/decoders.py b/cai/client/highway/decoders.py
index 41ff971f..006e4d7f 100644
--- a/cai/client/highway/decoders.py
+++ b/cai/client/highway/decoders.py
@@ -1,6 +1,6 @@
-from .models import ImageUploadResponse
+from .models import ImageUploadResponse, UploadResponse
from .utils import itoa
-from ...pb.im.oidb.cmd0x388.cmd0x388_pb2 import D388RspBody
+from cai.pb.im.oidb.cmd0x388.cmd0x388_pb2 import D388RspBody
def decode_upload_image_resp(data: bytes) -> ImageUploadResponse:
@@ -25,5 +25,19 @@ def decode_upload_image_resp(data: bytes) -> ImageUploadResponse:
)
+def decode_upload_ptt_resp(data: bytes) -> UploadResponse:
+ pkg = decode_d388_rsp(data).tryupPttRsp[0]
+ if pkg.result != 0:
+ return UploadResponse(resultCode=pkg.result, message=pkg.failMsg.decode())
+
+ if pkg.fileExit:
+ return UploadResponse(isExists=True, fileId=pkg.fileid)
+ return UploadResponse(
+ isExists=False,
+ uploadAddr=[(itoa(a), p) for a, p in zip(pkg.upIp, pkg.upPort)],
+ uploadKey=pkg.upUkey
+ )
+
+
def decode_d388_rsp(data: bytes) -> D388RspBody:
return D388RspBody.FromString(data)
diff --git a/cai/client/highway/encoders.py b/cai/client/highway/encoders.py
index ab733119..663fd656 100644
--- a/cai/client/highway/encoders.py
+++ b/cai/client/highway/encoders.py
@@ -1,12 +1,17 @@
-from cai.pb.im.oidb.cmd0x388.cmd0x388_pb2 import D388ReqBody, TryUpImgReq
+from cai.pb.im.oidb.cmd0x388.cmd0x388_pb2 import D388ReqBody, TryUpImgReq, TryUpPttReq
-def encode_d388_req(group_code: int, uin: int, md5: bytes, size: int) -> D388ReqBody:
- fn = md5.hex().upper() + ".jpg"
- return D388ReqBody(
- netType=8,
- subcmd=1,
- tryupImgReq=[TryUpImgReq(
+def encode_d388_req(
+ group_code: int,
+ uin: int,
+ md5: bytes,
+ size: int,
+ subcmd: int
+) -> D388ReqBody:
+ img, ptt = None, None
+ if subcmd == 1: # upload img
+ fn = md5.hex().upper() + ".jpg"
+ img = [TryUpImgReq(
groupCode=group_code,
srcUin=uin,
fileName=fn.encode(),
@@ -24,5 +29,29 @@ def encode_d388_req(group_code: int, uin: int, md5: bytes, size: int) -> D388Req
originalPic=1,
srvUpload=0
)]
+ elif subcmd == 3: # voice
+ ptt = [TryUpPttReq(
+ groupCode=group_code,
+ srcUin=uin,
+ fileMd5=md5,
+ fileName=(md5.hex().upper() + ".amr").encode(),
+ fileSize=size,
+ voiceLength=size,
+ voiceType=1,
+ codec=0,
+ srcTerm=5,
+ platformType=9,
+ buType=4,
+ innerIp=0,
+ buildVer=b"8.8.50.2324",
+ newUpChan=True
+ )]
+ else:
+ ValueError("unsupported subcmd:", subcmd)
+ return D388ReqBody(
+ netType=8,
+ subcmd=subcmd,
+ tryupImgReq=img,
+ tryupPttReq=ptt
)
diff --git a/cai/client/highway/highway.py b/cai/client/highway/highway.py
index 2dc1c711..21e32f5f 100644
--- a/cai/client/highway/highway.py
+++ b/cai/client/highway/highway.py
@@ -1,14 +1,14 @@
import asyncio
import logging
from hashlib import md5
-from typing import Tuple, BinaryIO, TYPE_CHECKING
+from typing import Tuple, BinaryIO, TYPE_CHECKING, Optional, List
-from .decoders import decode_upload_image_resp
+from .decoders import decode_upload_image_resp, decode_upload_ptt_resp
from .encoders import encode_d388_req
-from .utils import calc_file_md5_and_length, timeit, to_img_id
+from .utils import calc_file_md5_and_length, timeit, to_id
from .frame import read_frame, write_frame
from cai.pb.highway.protocol.highway_head_pb2 import highway_head
-from ..message_service.models import ImageElement
+from ..message_service.models import ImageElement, VoiceElement
if TYPE_CHECKING:
from cai.client.client import Client
@@ -27,7 +27,7 @@ def _create_highway_header(
command=cmd,
commandId=cmd_id,
seq=client.next_seq(),
- appid=client.apk_info.app_id,
+ appid=client.apk_info.sub_app_id,
localeId=locale,
dataflag=flag
)
@@ -39,13 +39,56 @@ def __init__(self, client: "Client", logger: logging.Logger = None):
logger = logging.getLogger(__name__)
self.logger = logger
self._client = client
+ self._session_sig: Optional[bytes] = None
+ self._session_key: Optional[bytes] = None
+ self._session_addr_list: Optional[List[Tuple[str, int]]] = []
+
+ def _decode_bdh_session(self):
+ info = self._client._file_storage_info
+ if not info:
+ raise ValueError("info not found, try again later")
+ self._session_sig = info.big_data_channel.bigdata_sig_session
+ self._session_key = info.big_data_channel.bigdata_key_session
+ for iplist in info.big_data_channel.bigdata_iplists:
+ for ip in iplist.ip_list:
+ self._session_addr_list.append((ip.ip, ip.port))
+
+ async def _upload_controller(
+ self,
+ addrs: List[Tuple[str, int]],
+ file: BinaryIO,
+ cmd_id: int,
+ ticket: bytes,
+ ext=None
+ ) -> Optional[bytes]:
+ for addr in addrs:
+ try:
+ t, d = await timeit(
+ self.bdh_uploader(
+ b"PicUp.DataUp",
+ addr,
+ file,
+ cmd_id,
+ ticket,
+ ext
+ )
+ )
+ self.logger.info("upload complete, use %fms" % (t * 1000))
+ return d
+ except TimeoutError:
+ self.logger.error(f"server {addr[0]}:{addr[1]} timeout")
+ continue
+ finally:
+ file.seek(0)
+ else:
+ raise ConnectionError("cannot upload, all server failure")
async def upload_image(self, file: BinaryIO, gid: int) -> ImageElement:
fmd5, fl = calc_file_md5_and_length(file)
ret = decode_upload_image_resp(
(await self._client.send_unipkg_and_wait(
"ImgStore.GroupPicUp",
- encode_d388_req(gid, self._client.uin, fmd5, fl).SerializeToString()
+ encode_d388_req(gid, self._client.uin, fmd5, fl, 1).SerializeToString()
)).data
)
if ret.resultCode != 0:
@@ -53,26 +96,19 @@ async def upload_image(self, file: BinaryIO, gid: int) -> ImageElement:
elif not ret.isExists:
self.logger.debug("file not found, uploading...")
- for addr in ret.uploadAddr:
- try:
- t, _ = await timeit(
- self.bdh_uploader(
- b"PicUp.DataUp",
- addr,
- file,
- 2,
- ret.uploadKey
- )
- )
- self.logger.info("upload complete, use %fs in %d bytes" % (t * 1000, fl))
- except TimeoutError:
- self.logger.error(f"server {addr[0]}:{addr[1]} timeout")
- continue
- finally:
- file.seek(0)
- break
- else:
- raise ConnectionError("cannot upload image, all server failure")
+ await self._upload_controller(
+ ret.uploadAddr,
+ file,
+ 2, # send to group
+ ret.uploadKey
+ )
+
+ ret = decode_upload_image_resp(
+ (await self._client.send_unipkg_and_wait(
+ "ImgStore.GroupPicUp",
+ encode_d388_req(gid, self._client.uin, fmd5, fl, 1).SerializeToString()
+ )).data
+ )
if ret.hasMetaData:
image_type = ret.fileType
@@ -83,7 +119,7 @@ async def upload_image(self, file: BinaryIO, gid: int) -> ImageElement:
return ImageElement(
id=ret.fileId,
- filename=to_img_id(fmd5),
+ filename=to_id(fmd5) + ".png",
size=fl,
width=w,
height=h,
@@ -92,15 +128,41 @@ async def upload_image(self, file: BinaryIO, gid: int) -> ImageElement:
url=f"https://gchat.qpic.cn/gchatpic_new/1/0-0-{fmd5.hex().upper()}/0?term=2"
)
+ async def upload_voice(self, file: BinaryIO, gid: int) -> VoiceElement:
+ fmd5, fl = calc_file_md5_and_length(file)
+ ext = encode_d388_req(gid, self._client.uin, fmd5, fl, 3).SerializeToString()
+ if not (self._session_key and self._session_sig):
+ self._decode_bdh_session()
+ ret = decode_upload_ptt_resp(
+ await self._upload_controller(
+ self._session_addr_list,
+ file,
+ 29, # send to group
+ self._session_sig,
+ ext
+ )
+ )
+ if ret.resultCode:
+ raise ConnectionError(ret.resultCode, ret.message)
+ return VoiceElement(
+ to_id(fmd5) + ".amr",
+ file_type=ret.fileId,
+ from_uin=self._client.uin,
+ md5=fmd5,
+ size=fl,
+ group_file_key=ret.uploadKey
+ )
+
async def bdh_uploader(
self,
cmd: bytes,
addr: Tuple[str, int],
file: BinaryIO,
cmd_id: int,
- ticket: bytes, *,
+ ticket: bytes,
+ ext: bytes = None, *,
block_size=65535
- ):
+ ) -> Optional[bytes]:
fmd5, fl = calc_file_md5_and_length(file)
reader, writer = await asyncio.open_connection(*addr)
bc = 0
@@ -108,7 +170,7 @@ async def bdh_uploader(
while True:
bl = file.read(block_size)
if not bl:
- break
+ return ext
head = highway_head.ReqDataHighwayHead(
basehead=_create_highway_header(cmd, 4096, cmd_id, self._client),
seghead=highway_head.SegHead(
@@ -118,13 +180,22 @@ async def bdh_uploader(
serviceticket=ticket,
md5=md5(bl).digest(),
fileMd5=fmd5
- )
- ).SerializeToString()
+ ),
+ reqExtendinfo=ext
+ )
- writer.write(write_frame(head, bl))
+ writer.write(write_frame(head.SerializeToString(), bl))
await writer.drain()
- resp, _ = await read_frame(reader)
+ resp, data = await read_frame(reader)
+ if resp.errorCode:
+ raise ConnectionError(resp.errorCode, "upload error", resp)
+ if resp and ext:
+ if resp.rspExtendinfo:
+ ext = resp.rspExtendinfo
+ if resp.seghead:
+ if resp.seghead.serviceticket:
+ self._session_key = resp.seghead.serviceticket
bc += 1
finally:
diff --git a/cai/client/highway/models.py b/cai/client/highway/models.py
index b598217d..4a09e76e 100644
--- a/cai/client/highway/models.py
+++ b/cai/client/highway/models.py
@@ -3,11 +3,9 @@
@dataclass
-class ImageUploadResponse:
+class UploadResponse:
uploadKey: Optional[bytes] = None
uploadAddr: Optional[List[Tuple[str, int]]] = None
- width: Optional[int] = None
- height: Optional[int] = None
message: Optional[str] = None
downloadIndex: Optional[str] = None
resourceId: Optional[int] = None
@@ -16,3 +14,9 @@ class ImageUploadResponse:
resultCode: int = 0
isExists: bool = False
hasMetaData: bool = False
+
+
+@dataclass
+class ImageUploadResponse(UploadResponse):
+ width: Optional[int] = None
+ height: Optional[int] = None
diff --git a/cai/client/highway/utils.py b/cai/client/highway/utils.py
index 5958499d..9e3b6bd8 100644
--- a/cai/client/highway/utils.py
+++ b/cai/client/highway/utils.py
@@ -22,8 +22,8 @@ def itoa(i: int) -> str: # int to address(str)
return ".".join([str(p) for p in i.to_bytes(4, "little")])
-def to_img_id(b_uuid: bytes) -> str:
- return "{%s}.png" % uuid.UUID(bytes=b_uuid)
+def to_id(b_uuid: bytes) -> str:
+ return "{%s}" % uuid.UUID(bytes=b_uuid)
async def timeit(func: Awaitable) -> Tuple[float, Any]:
diff --git a/cai/client/message_service/decoders.py b/cai/client/message_service/decoders.py
index f815c3bd..99b189d9 100644
--- a/cai/client/message_service/decoders.py
+++ b/cai/client/message_service/decoders.py
@@ -200,7 +200,6 @@ def parse_elements(elems: Sequence[Elem]) -> List[Element]:
poke = MsgElemInfo_servtype2.FromString(
elem.common_elem.pb_elem
)
- print(poke)
res = [
PokeElement(
poke.poke_type
diff --git a/cai/client/message_service/encoders.py b/cai/client/message_service/encoders.py
index 41a5034d..22f40f97 100644
--- a/cai/client/message_service/encoders.py
+++ b/cai/client/message_service/encoders.py
@@ -3,7 +3,7 @@
from typing import Sequence, Union
from cai.pb.im.msg.msg_body import MsgBody, PlainText, RichText, CustomFace, Elem, CommonElem, LightAppElem, RichMsg, \
- ShakeWindow
+ ShakeWindow, Ptt
from cai.pb.msf.msg.svc.svc_pb2 import RoutingHead, Grp
from cai.pb.msf.msg.comm.comm_pb2 import ContentHead
@@ -38,6 +38,7 @@ def _build_image_elem(e: Union[models.ImageElement, models.FlashImageElement]) -
def build_msg(elements: Sequence[models.Element]) -> MsgBody:
ret = []
+ ptt = None
for e in elements: # todo: support more element
if isinstance(e, models.TextElement):
ret.append(
@@ -119,14 +120,16 @@ def build_msg(elements: Sequence[models.Element]) -> MsgBody:
)
)
)
-
+ elif isinstance(e, models.VoiceElement):
+ ptt = e.to_ptt()
+ break
else:
raise NotImplementedError(e)
return MsgBody(
rich_text=RichText(
elems=ret,
- ptt=None
+ ptt=ptt
)
)
diff --git a/cai/client/message_service/models.py b/cai/client/message_service/models.py
index 6eb8e41e..7cfb23de 100644
--- a/cai/client/message_service/models.py
+++ b/cai/client/message_service/models.py
@@ -14,6 +14,7 @@
from typing import List, Optional
from cai.client.event import Event
+from cai.pb.im.msg.msg_body import Ptt
from cai.pb.msf.msg.comm import Msg
@@ -141,6 +142,35 @@ def type(self) -> str:
return "flash_image"
+@dataclass
+class VoiceElement(Element):
+ file_name: str
+ file_type: int
+ from_uin: int
+ md5: bytes
+ size: int
+ group_file_key: bytes
+
+ @property
+ def type(self) -> str:
+ return "voice"
+
+ @property
+ def _pb_reserve(self) -> bytes:
+ return bytes([8, 0, 40, 0, 56, 0])
+
+ def to_ptt(self) -> Ptt:
+ return Ptt(
+ file_type=self.file_type,
+ src_uin=self.from_uin,
+ file_md5=self.md5,
+ file_name=self.file_name.encode(),
+ file_size=self.size,
+ pb_reserve=self._pb_reserve,
+ valid=True
+ )
+
+
@dataclass
class PokeElement(Element):
id: int = 0
From ef0865fdab1bac755e0b55167b89839c82e279fb Mon Sep 17 00:00:00 2001
From: a1025
Date: Tue, 5 Apr 2022 15:51:45 +0800
Subject: [PATCH 052/113] add: parse voice.url
---
cai/client/highway/highway.py | 5 +++--
cai/client/message_service/decoders.py | 30 ++++++++++++++++++++------
cai/client/message_service/models.py | 1 +
3 files changed, 28 insertions(+), 8 deletions(-)
diff --git a/cai/client/highway/highway.py b/cai/client/highway/highway.py
index 21e32f5f..14d9e218 100644
--- a/cai/client/highway/highway.py
+++ b/cai/client/highway/highway.py
@@ -146,11 +146,12 @@ async def upload_voice(self, file: BinaryIO, gid: int) -> VoiceElement:
raise ConnectionError(ret.resultCode, ret.message)
return VoiceElement(
to_id(fmd5) + ".amr",
- file_type=ret.fileId,
+ file_type=4,
from_uin=self._client.uin,
md5=fmd5,
size=fl,
- group_file_key=ret.uploadKey
+ group_file_key=ret.uploadKey,
+ url=f"https://grouptalk.c2c.qq.com/?ver=0&rkey={ret.uploadKey.hex()}&filetype=4%voice_codec=0"
)
async def bdh_uploader(
diff --git a/cai/client/message_service/decoders.py b/cai/client/message_service/decoders.py
index 99b189d9..cbbc2f25 100644
--- a/cai/client/message_service/decoders.py
+++ b/cai/client/message_service/decoders.py
@@ -15,7 +15,7 @@
from cai.log import logger
from cai.client.event import Event
from cai.pb.msf.msg.comm import Msg
-from cai.pb.im.msg.msg_body import Elem
+from cai.pb.im.msg.msg_body import Elem, Ptt
from cai.pb.im.msg.service.comm_elem import (
MsgElemInfo_servtype2,
MsgElemInfo_servtype3,
@@ -35,11 +35,11 @@
RichMsgElement,
PrivateMessage,
SmallEmojiElement,
- FlashImageElement, ShakeElement
+ FlashImageElement, ShakeElement, VoiceElement
)
-def parse_elements(elems: Sequence[Elem]) -> List[Element]:
+def parse_elements(elems: Sequence[Elem], ptt: Optional[Ptt]) -> List[Element]:
"""Parse message rich text elements.
Only parse ``text``, ``face``, ``small_smoji``, ``common_elem service 33``
@@ -50,10 +50,26 @@ def parse_elements(elems: Sequence[Elem]) -> List[Element]:
Args:
elems (Sequence[Elem]): Sequence of rich text elements.
+ ptt (Ptt)
Returns:
List[Element]: List of decoded message elements.
"""
+ if ptt:
+ if ptt.file_name.endswith(b".amr"):
+ info = {}
+ for bl in ptt.down_para.decode().split("&")[1:]:
+ k, v = bl.split("=", 1)
+ info[k] = v
+ return [VoiceElement(
+ ptt.file_name.decode(),
+ info["filetype"],
+ ptt.src_uin,
+ ptt.file_md5,
+ ptt.file_size,
+ bytes.fromhex(info["rkey"]),
+ "https://grouptalk.c2c.qq.com" + ptt.down_para.decode()
+ )]
res: List[Element] = []
index = 0
while index < len(elems):
@@ -72,7 +88,7 @@ def parse_elements(elems: Sequence[Elem]) -> List[Element]:
elem.src_msg.orig_seqs[0],
elem.src_msg.time,
elem.src_msg.sender_uin,
- parse_elements(elem.src_msg.elems),
+ parse_elements(elem.src_msg.elems, None),
elem.src_msg.troop_name.decode("utf-8") or None,
)
)
@@ -294,6 +310,7 @@ def decode_normal_buddy(cls, message: Msg) -> Optional[Event]:
from_nick = message.head.from_nick
to_uin = message.head.to_uin
elems = message.body.rich_text.elems
+ ptt = message.body.rich_text.ptt
return PrivateMessage(
message,
@@ -303,7 +320,7 @@ def decode_normal_buddy(cls, message: Msg) -> Optional[Event]:
from_uin,
from_nick,
to_uin,
- parse_elements(elems),
+ parse_elements(elems, ptt),
)
@@ -321,6 +338,7 @@ def decode(cls, message: Msg) -> Optional[Event]:
troop = message.head.group_info
content_head = message.content_head
elems = message.body.rich_text.elems
+ ptt = message.body.rich_text.ptt
# long msg fragment
if content_head.pkg_num > 1:
@@ -350,7 +368,7 @@ def decode(cls, message: Msg) -> Optional[Event]:
troop.group_level,
from_uin,
troop.group_card.decode("utf-8"),
- parse_elements(elems),
+ parse_elements(elems, ptt),
)
diff --git a/cai/client/message_service/models.py b/cai/client/message_service/models.py
index 7cfb23de..d45d562f 100644
--- a/cai/client/message_service/models.py
+++ b/cai/client/message_service/models.py
@@ -150,6 +150,7 @@ class VoiceElement(Element):
md5: bytes
size: int
group_file_key: bytes
+ url: str = None
@property
def type(self) -> str:
From 57617ee7f835c4c99a33ad824a45ed8bbbf90eb0 Mon Sep 17 00:00:00 2001
From: yanyongyu <42488585+yanyongyu@users.noreply.github.com>
Date: Thu, 7 Apr 2022 11:02:42 +0800
Subject: [PATCH 053/113] :arrow_up: upgrade dependencies
---
poetry.lock | 618 ++++++++++++++++++++++++-------------------------
pyproject.toml | 18 +-
2 files changed, 315 insertions(+), 321 deletions(-)
diff --git a/poetry.lock b/poetry.lock
index 0f327f50..e0b0de90 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -19,38 +19,34 @@ pytz = ">=2015.7"
[[package]]
name = "black"
-version = "21.12b0"
+version = "22.3.0"
description = "The uncompromising code formatter."
category = "dev"
optional = false
python-versions = ">=3.6.2"
[package.dependencies]
-click = ">=7.1.2"
+click = ">=8.0.0"
mypy-extensions = ">=0.4.3"
-pathspec = ">=0.9.0,<1"
+pathspec = ">=0.9.0"
platformdirs = ">=2"
-tomli = ">=0.2.6,<2.0.0"
+tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""}
typed-ast = {version = ">=1.4.2", markers = "python_version < \"3.8\" and implementation_name == \"cpython\""}
-typing-extensions = [
- {version = ">=3.10.0.0", markers = "python_version < \"3.10\""},
- {version = "!=3.10.0.1", markers = "python_version >= \"3.10\""},
-]
+typing-extensions = {version = ">=3.10.0.0", markers = "python_version < \"3.10\""}
[package.extras]
colorama = ["colorama (>=0.4.3)"]
d = ["aiohttp (>=3.7.4)"]
jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"]
-python2 = ["typed-ast (>=1.4.3)"]
uvloop = ["uvloop (>=0.15.2)"]
[[package]]
name = "cachetools"
-version = "4.2.4"
+version = "5.0.0"
description = "Extensible memoizing collections and decorators"
category = "main"
optional = false
-python-versions = "~=3.5"
+python-versions = "~=3.7"
[[package]]
name = "certifi"
@@ -73,7 +69,7 @@ pycparser = "*"
[[package]]
name = "charset-normalizer"
-version = "2.0.9"
+version = "2.0.12"
description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet."
category = "dev"
optional = false
@@ -84,11 +80,11 @@ unicode_backport = ["unicodedata2"]
[[package]]
name = "click"
-version = "8.0.3"
+version = "8.1.2"
description = "Composable command line interface toolkit"
category = "dev"
optional = false
-python-versions = ">=3.6"
+python-versions = ">=3.7"
[package.dependencies]
colorama = {version = "*", markers = "platform_system == \"Windows\""}
@@ -104,7 +100,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
[[package]]
name = "cryptography"
-version = "3.4.8"
+version = "36.0.2"
description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers."
category = "main"
optional = false
@@ -115,15 +111,15 @@ cffi = ">=1.12"
[package.extras]
docs = ["sphinx (>=1.6.5,!=1.8.0,!=3.1.0,!=3.1.1)", "sphinx-rtd-theme"]
-docstest = ["doc8", "pyenchant (>=1.6.11)", "twine (>=1.12.0)", "sphinxcontrib-spelling (>=4.0.1)"]
+docstest = ["pyenchant (>=1.6.11)", "twine (>=1.12.0)", "sphinxcontrib-spelling (>=4.0.1)"]
pep8test = ["black", "flake8", "flake8-import-order", "pep8-naming"]
-sdist = ["setuptools-rust (>=0.11.4)"]
+sdist = ["setuptools_rust (>=0.11.4)"]
ssh = ["bcrypt (>=3.1.5)"]
-test = ["pytest (>=6.0)", "pytest-cov", "pytest-subtests", "pytest-xdist", "pretend", "iso8601", "pytz", "hypothesis (>=1.11.4,!=3.79.2)"]
+test = ["pytest (>=6.2.0)", "pytest-cov", "pytest-subtests", "pytest-xdist", "pretend", "iso8601", "pytz", "hypothesis (>=1.11.4,!=3.79.2)"]
[[package]]
name = "docutils"
-version = "0.16"
+version = "0.17.1"
description = "Docutils -- Python Documentation Utilities"
category = "dev"
optional = false
@@ -147,20 +143,20 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
[[package]]
name = "importlib-metadata"
-version = "4.8.2"
+version = "4.11.3"
description = "Read metadata from Python packages"
category = "dev"
optional = false
-python-versions = ">=3.6"
+python-versions = ">=3.7"
[package.dependencies]
typing-extensions = {version = ">=3.6.4", markers = "python_version < \"3.8\""}
zipp = ">=0.5"
[package.extras]
-docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"]
+docs = ["sphinx", "jaraco.packaging (>=9)", "rst.linker (>=1.9)"]
perf = ["ipython"]
-testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "packaging", "pep517", "pyfakefs", "flufl.flake8", "pytest-perf (>=0.9.2)", "pytest-black (>=0.3.7)", "pytest-mypy", "importlib-resources (>=1.3)"]
+testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "packaging", "pyfakefs", "flufl.flake8", "pytest-perf (>=0.9.2)", "pytest-black (>=0.3.7)", "pytest-mypy (>=0.9.1)", "importlib-resources (>=1.3)"]
[[package]]
name = "isort"
@@ -190,11 +186,11 @@ typing-extensions = ">=3.7.4,<5.0.0"
[[package]]
name = "jinja2"
-version = "3.0.3"
+version = "3.1.1"
description = "A very fast and expressive template engine."
category = "dev"
optional = false
-python-versions = ">=3.6"
+python-versions = ">=3.7"
[package.dependencies]
MarkupSafe = ">=2.0"
@@ -204,11 +200,11 @@ i18n = ["Babel (>=2.7)"]
[[package]]
name = "markupsafe"
-version = "2.0.1"
+version = "2.1.1"
description = "Safely add untrusted strings to HTML/XML markup."
category = "dev"
optional = false
-python-versions = ">=3.6"
+python-versions = ">=3.7"
[[package]]
name = "mypy-extensions"
@@ -220,15 +216,15 @@ python-versions = "*"
[[package]]
name = "mypy-protobuf"
-version = "2.10"
+version = "3.2.0"
description = "Generate mypy stub files from protobuf specs"
category = "dev"
optional = false
python-versions = ">=3.6"
[package.dependencies]
-protobuf = ">=3.17.3"
-types-protobuf = ">=3.17.4"
+protobuf = ">=3.19.3"
+types-protobuf = ">=3.19.5"
[[package]]
name = "packaging"
@@ -251,19 +247,23 @@ python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7"
[[package]]
name = "pillow"
-version = "8.4.0"
+version = "9.1.0"
description = "Python Imaging Library (Fork)"
category = "dev"
optional = false
-python-versions = ">=3.6"
+python-versions = ">=3.7"
+
+[package.extras]
+docs = ["olefile", "sphinx (>=2.4)", "sphinx-copybutton", "sphinx-issues (>=3.0.1)", "sphinx-removed-in", "sphinx-rtd-theme (>=1.0)", "sphinxext-opengraph"]
+tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout"]
[[package]]
name = "platformdirs"
-version = "2.4.0"
+version = "2.5.1"
description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"."
category = "dev"
optional = false
-python-versions = ">=3.6"
+python-versions = ">=3.7"
[package.extras]
docs = ["Sphinx (>=4)", "furo (>=2021.7.5b38)", "proselint (>=0.10.2)", "sphinx-autodoc-typehints (>=1.12)"]
@@ -282,11 +282,11 @@ six = ">=1.5.2"
[[package]]
name = "protobuf"
-version = "3.19.1"
+version = "3.20.0"
description = "Protocol Buffers"
category = "main"
optional = false
-python-versions = ">=3.5"
+python-versions = ">=3.7"
[[package]]
name = "pycparser"
@@ -298,7 +298,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
[[package]]
name = "pydantic"
-version = "1.8.2"
+version = "1.9.0"
description = "Data validation and settings management using python 3.6 type hinting"
category = "main"
optional = false
@@ -313,7 +313,7 @@ email = ["email-validator (>=1.0.3)"]
[[package]]
name = "pygments"
-version = "2.10.0"
+version = "2.11.2"
description = "Pygments is a syntax highlighting package written in Python."
category = "dev"
optional = false
@@ -321,7 +321,7 @@ python-versions = ">=3.5"
[[package]]
name = "pyparsing"
-version = "3.0.6"
+version = "3.0.7"
description = "Python parsing module"
category = "dev"
optional = false
@@ -332,7 +332,7 @@ diagrams = ["jinja2", "railroad-diagrams"]
[[package]]
name = "pytz"
-version = "2021.3"
+version = "2022.1"
description = "World timezone definitions, modern and historical"
category = "dev"
optional = false
@@ -340,7 +340,7 @@ python-versions = "*"
[[package]]
name = "requests"
-version = "2.26.0"
+version = "2.27.1"
description = "Python HTTP for Humans."
category = "dev"
optional = false
@@ -382,7 +382,7 @@ python-versions = "*"
[[package]]
name = "sphinx"
-version = "4.3.1"
+version = "4.5.0"
description = "Python documentation generator"
category = "dev"
optional = false
@@ -394,6 +394,7 @@ babel = ">=1.3"
colorama = {version = ">=0.3.5", markers = "sys_platform == \"win32\""}
docutils = ">=0.14,<0.18"
imagesize = "*"
+importlib-metadata = {version = ">=4.4", markers = "python_version < \"3.10\""}
Jinja2 = ">=2.3"
packaging = "*"
Pygments = ">=2.0"
@@ -408,12 +409,12 @@ sphinxcontrib-serializinghtml = ">=1.1.5"
[package.extras]
docs = ["sphinxcontrib-websupport"]
-lint = ["flake8 (>=3.5.0)", "isort", "mypy (>=0.900)", "docutils-stubs", "types-typed-ast", "types-pkg-resources", "types-requests"]
+lint = ["flake8 (>=3.5.0)", "isort", "mypy (>=0.931)", "docutils-stubs", "types-typed-ast", "types-requests"]
test = ["pytest", "pytest-cov", "html5lib", "cython", "typed-ast"]
[[package]]
name = "sphinx-copybutton"
-version = "0.4.0"
+version = "0.5.0"
description = "Add a copy button to each of your code cells."
category = "dev"
optional = false
@@ -424,19 +425,19 @@ sphinx = ">=1.8"
[package.extras]
code_style = ["pre-commit (==2.12.1)"]
-rtd = ["sphinx", "ipython", "sphinx-book-theme"]
+rtd = ["sphinx", "ipython", "myst-nb", "sphinx-book-theme"]
[[package]]
name = "sphinx-rtd-theme"
-version = "0.5.2"
+version = "1.0.0"
description = "Read the Docs theme for Sphinx"
category = "dev"
optional = false
-python-versions = "*"
+python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*"
[package.dependencies]
-docutils = "<0.17"
-sphinx = "*"
+docutils = "<0.18"
+sphinx = ">=1.6"
[package.extras]
dev = ["transifex-client", "sphinxcontrib-httpdomain", "bump2version"]
@@ -526,42 +527,31 @@ test = ["pytest"]
[[package]]
name = "tomli"
-version = "1.2.2"
+version = "2.0.1"
description = "A lil' TOML parser"
category = "dev"
optional = false
-python-versions = ">=3.6"
+python-versions = ">=3.7"
[[package]]
name = "typed-ast"
-version = "1.5.1"
+version = "1.5.2"
description = "a fork of Python 2 and 3 ast modules with type comment support"
category = "dev"
optional = false
python-versions = ">=3.6"
-[[package]]
-name = "types-futures"
-version = "3.3.1"
-description = "Typing stubs for futures"
-category = "dev"
-optional = false
-python-versions = "*"
-
[[package]]
name = "types-protobuf"
-version = "3.18.2"
+version = "3.19.15"
description = "Typing stubs for protobuf"
category = "dev"
optional = false
python-versions = "*"
-[package.dependencies]
-types-futures = "*"
-
[[package]]
name = "typing-extensions"
-version = "4.0.1"
+version = "4.1.1"
description = "Backported and Experimental Type Hints for Python 3.6+"
category = "main"
optional = false
@@ -569,33 +559,33 @@ python-versions = ">=3.6"
[[package]]
name = "urllib3"
-version = "1.26.7"
+version = "1.26.9"
description = "HTTP library with thread-safe connection pooling, file post, and more."
category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4"
[package.extras]
-brotli = ["brotlipy (>=0.6.0)"]
+brotli = ["brotlicffi (>=0.8.0)", "brotli (>=1.0.9)", "brotlipy (>=0.6.0)"]
secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "ipaddress"]
socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"]
[[package]]
name = "zipp"
-version = "3.6.0"
+version = "3.8.0"
description = "Backport of pathlib-compatible object wrapper for zip files"
category = "dev"
optional = false
-python-versions = ">=3.6"
+python-versions = ">=3.7"
[package.extras]
-docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"]
-testing = ["pytest (>=4.6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy"]
+docs = ["sphinx", "jaraco.packaging (>=9)", "rst.linker (>=1.9)"]
+testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy (>=0.9.1)"]
[metadata]
lock-version = "1.1"
python-versions = "^3.7"
-content-hash = "581c5d9e6a5eff6418922c6632469be265c318fb0ba8d418ca8b752a8f90a7ae"
+content-hash = "0c909b96166d323dfe34fb02f03a3decc50a45281238be69b02b5de72c445503"
[metadata.files]
alabaster = [
@@ -607,12 +597,33 @@ babel = [
{file = "Babel-2.9.1.tar.gz", hash = "sha256:bc0c176f9f6a994582230df350aa6e05ba2ebe4b3ac317eab29d9be5d2768da0"},
]
black = [
- {file = "black-21.12b0-py3-none-any.whl", hash = "sha256:a615e69ae185e08fdd73e4715e260e2479c861b5740057fde6e8b4e3b7dd589f"},
- {file = "black-21.12b0.tar.gz", hash = "sha256:77b80f693a569e2e527958459634f18df9b0ba2625ba4e0c2d5da5be42e6f2b3"},
+ {file = "black-22.3.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:2497f9c2386572e28921fa8bec7be3e51de6801f7459dffd6e62492531c47e09"},
+ {file = "black-22.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5795a0375eb87bfe902e80e0c8cfaedf8af4d49694d69161e5bd3206c18618bb"},
+ {file = "black-22.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e3556168e2e5c49629f7b0f377070240bd5511e45e25a4497bb0073d9dda776a"},
+ {file = "black-22.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:67c8301ec94e3bcc8906740fe071391bce40a862b7be0b86fb5382beefecd968"},
+ {file = "black-22.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:fd57160949179ec517d32ac2ac898b5f20d68ed1a9c977346efbac9c2f1e779d"},
+ {file = "black-22.3.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:cc1e1de68c8e5444e8f94c3670bb48a2beef0e91dddfd4fcc29595ebd90bb9ce"},
+ {file = "black-22.3.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d2fc92002d44746d3e7db7cf9313cf4452f43e9ea77a2c939defce3b10b5c82"},
+ {file = "black-22.3.0-cp36-cp36m-win_amd64.whl", hash = "sha256:a6342964b43a99dbc72f72812bf88cad8f0217ae9acb47c0d4f141a6416d2d7b"},
+ {file = "black-22.3.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:328efc0cc70ccb23429d6be184a15ce613f676bdfc85e5fe8ea2a9354b4e9015"},
+ {file = "black-22.3.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:06f9d8846f2340dfac80ceb20200ea5d1b3f181dd0556b47af4e8e0b24fa0a6b"},
+ {file = "black-22.3.0-cp37-cp37m-win_amd64.whl", hash = "sha256:ad4efa5fad66b903b4a5f96d91461d90b9507a812b3c5de657d544215bb7877a"},
+ {file = "black-22.3.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:e8477ec6bbfe0312c128e74644ac8a02ca06bcdb8982d4ee06f209be28cdf163"},
+ {file = "black-22.3.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:637a4014c63fbf42a692d22b55d8ad6968a946b4a6ebc385c5505d9625b6a464"},
+ {file = "black-22.3.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:863714200ada56cbc366dc9ae5291ceb936573155f8bf8e9de92aef51f3ad0f0"},
+ {file = "black-22.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10dbe6e6d2988049b4655b2b739f98785a884d4d6b85bc35133a8fb9a2233176"},
+ {file = "black-22.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:cee3e11161dde1b2a33a904b850b0899e0424cc331b7295f2a9698e79f9a69a0"},
+ {file = "black-22.3.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:5891ef8abc06576985de8fa88e95ab70641de6c1fca97e2a15820a9b69e51b20"},
+ {file = "black-22.3.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:30d78ba6bf080eeaf0b7b875d924b15cd46fec5fd044ddfbad38c8ea9171043a"},
+ {file = "black-22.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ee8f1f7228cce7dffc2b464f07ce769f478968bfb3dd1254a4c2eeed84928aad"},
+ {file = "black-22.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6ee227b696ca60dd1c507be80a6bc849a5a6ab57ac7352aad1ffec9e8b805f21"},
+ {file = "black-22.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:9b542ced1ec0ceeff5b37d69838106a6348e60db7b8fdd245294dc1d26136265"},
+ {file = "black-22.3.0-py3-none-any.whl", hash = "sha256:bc58025940a896d7e5356952228b68f793cf5fcb342be703c3a2669a1488cb72"},
+ {file = "black-22.3.0.tar.gz", hash = "sha256:35020b8886c022ced9282b51b5a875b6d1ab0c387b31a065b84db7c33085ca79"},
]
cachetools = [
- {file = "cachetools-4.2.4-py3-none-any.whl", hash = "sha256:92971d3cb7d2a97efff7c7bb1657f21a8f5fb309a37530537c71b1774189f2d1"},
- {file = "cachetools-4.2.4.tar.gz", hash = "sha256:89ea6f1b638d5a73a4f9226be57ac5e4f399d22770b92355f92dcb0f7f001693"},
+ {file = "cachetools-5.0.0-py3-none-any.whl", hash = "sha256:8fecd4203a38af17928be7b90689d8083603073622229ca7077b72d8e5a976e4"},
+ {file = "cachetools-5.0.0.tar.gz", hash = "sha256:486471dfa8799eb7ec503a8059e263db000cdda20075ce5e48903087f79d5fd6"},
]
certifi = [
{file = "certifi-2021.10.8-py2.py3-none-any.whl", hash = "sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569"},
@@ -671,41 +682,42 @@ cffi = [
{file = "cffi-1.15.0.tar.gz", hash = "sha256:920f0d66a896c2d99f0adbb391f990a84091179542c205fa53ce5787aff87954"},
]
charset-normalizer = [
- {file = "charset-normalizer-2.0.9.tar.gz", hash = "sha256:b0b883e8e874edfdece9c28f314e3dd5badf067342e42fb162203335ae61aa2c"},
- {file = "charset_normalizer-2.0.9-py3-none-any.whl", hash = "sha256:1eecaa09422db5be9e29d7fc65664e6c33bd06f9ced7838578ba40d58bdf3721"},
+ {file = "charset-normalizer-2.0.12.tar.gz", hash = "sha256:2857e29ff0d34db842cd7ca3230549d1a697f96ee6d3fb071cfa6c7393832597"},
+ {file = "charset_normalizer-2.0.12-py3-none-any.whl", hash = "sha256:6881edbebdb17b39b4eaaa821b438bf6eddffb4468cf344f09f89def34a8b1df"},
]
click = [
- {file = "click-8.0.3-py3-none-any.whl", hash = "sha256:353f466495adaeb40b6b5f592f9f91cb22372351c84caeb068132442a4518ef3"},
- {file = "click-8.0.3.tar.gz", hash = "sha256:410e932b050f5eed773c4cda94de75971c89cdb3155a72a0831139a79e5ecb5b"},
+ {file = "click-8.1.2-py3-none-any.whl", hash = "sha256:24e1a4a9ec5bf6299411369b208c1df2188d9eb8d916302fe6bf03faed227f1e"},
+ {file = "click-8.1.2.tar.gz", hash = "sha256:479707fe14d9ec9a0757618b7a100a0ae4c4e236fac5b7f80ca68028141a1a72"},
]
colorama = [
{file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"},
{file = "colorama-0.4.4.tar.gz", hash = "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"},
]
cryptography = [
- {file = "cryptography-3.4.8-cp36-abi3-macosx_10_10_x86_64.whl", hash = "sha256:a00cf305f07b26c351d8d4e1af84ad7501eca8a342dedf24a7acb0e7b7406e14"},
- {file = "cryptography-3.4.8-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:f44d141b8c4ea5eb4dbc9b3ad992d45580c1d22bf5e24363f2fbf50c2d7ae8a7"},
- {file = "cryptography-3.4.8-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:0a7dcbcd3f1913f664aca35d47c1331fce738d44ec34b7be8b9d332151b0b01e"},
- {file = "cryptography-3.4.8-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:34dae04a0dce5730d8eb7894eab617d8a70d0c97da76b905de9efb7128ad7085"},
- {file = "cryptography-3.4.8-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1eb7bb0df6f6f583dd8e054689def236255161ebbcf62b226454ab9ec663746b"},
- {file = "cryptography-3.4.8-cp36-abi3-manylinux_2_24_x86_64.whl", hash = "sha256:9965c46c674ba8cc572bc09a03f4c649292ee73e1b683adb1ce81e82e9a6a0fb"},
- {file = "cryptography-3.4.8-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:3c4129fc3fdc0fa8e40861b5ac0c673315b3c902bbdc05fc176764815b43dd1d"},
- {file = "cryptography-3.4.8-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:695104a9223a7239d155d7627ad912953b540929ef97ae0c34c7b8bf30857e89"},
- {file = "cryptography-3.4.8-cp36-abi3-win32.whl", hash = "sha256:21ca464b3a4b8d8e86ba0ee5045e103a1fcfac3b39319727bc0fc58c09c6aff7"},
- {file = "cryptography-3.4.8-cp36-abi3-win_amd64.whl", hash = "sha256:3520667fda779eb788ea00080124875be18f2d8f0848ec00733c0ec3bb8219fc"},
- {file = "cryptography-3.4.8-pp36-pypy36_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:d2a6e5ef66503da51d2110edf6c403dc6b494cc0082f85db12f54e9c5d4c3ec5"},
- {file = "cryptography-3.4.8-pp36-pypy36_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a305600e7a6b7b855cd798e00278161b681ad6e9b7eca94c721d5f588ab212af"},
- {file = "cryptography-3.4.8-pp36-pypy36_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:3fa3a7ccf96e826affdf1a0a9432be74dc73423125c8f96a909e3835a5ef194a"},
- {file = "cryptography-3.4.8-pp37-pypy37_pp73-macosx_10_10_x86_64.whl", hash = "sha256:d9ec0e67a14f9d1d48dd87a2531009a9b251c02ea42851c060b25c782516ff06"},
- {file = "cryptography-3.4.8-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5b0fbfae7ff7febdb74b574055c7466da334a5371f253732d7e2e7525d570498"},
- {file = "cryptography-3.4.8-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94fff993ee9bc1b2440d3b7243d488c6a3d9724cc2b09cdb297f6a886d040ef7"},
- {file = "cryptography-3.4.8-pp37-pypy37_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:8695456444f277af73a4877db9fc979849cd3ee74c198d04fc0776ebc3db52b9"},
- {file = "cryptography-3.4.8-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:cd65b60cfe004790c795cc35f272e41a3df4631e2fb6b35aa7ac6ef2859d554e"},
- {file = "cryptography-3.4.8.tar.gz", hash = "sha256:94cc5ed4ceaefcbe5bf38c8fba6a21fc1d365bb8fb826ea1688e3370b2e24a1c"},
+ {file = "cryptography-36.0.2-cp36-abi3-macosx_10_10_universal2.whl", hash = "sha256:4e2dddd38a5ba733be6a025a1475a9f45e4e41139d1321f412c6b360b19070b6"},
+ {file = "cryptography-36.0.2-cp36-abi3-macosx_10_10_x86_64.whl", hash = "sha256:4881d09298cd0b669bb15b9cfe6166f16fc1277b4ed0d04a22f3d6430cb30f1d"},
+ {file = "cryptography-36.0.2-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ea634401ca02367c1567f012317502ef3437522e2fc44a3ea1844de028fa4b84"},
+ {file = "cryptography-36.0.2-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:7be666cc4599b415f320839e36367b273db8501127b38316f3b9f22f17a0b815"},
+ {file = "cryptography-36.0.2-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8241cac0aae90b82d6b5c443b853723bcc66963970c67e56e71a2609dc4b5eaf"},
+ {file = "cryptography-36.0.2-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7b2d54e787a884ffc6e187262823b6feb06c338084bbe80d45166a1cb1c6c5bf"},
+ {file = "cryptography-36.0.2-cp36-abi3-manylinux_2_24_x86_64.whl", hash = "sha256:c2c5250ff0d36fd58550252f54915776940e4e866f38f3a7866d92b32a654b86"},
+ {file = "cryptography-36.0.2-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:ec6597aa85ce03f3e507566b8bcdf9da2227ec86c4266bd5e6ab4d9e0cc8dab2"},
+ {file = "cryptography-36.0.2-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:ca9f686517ec2c4a4ce930207f75c00bf03d94e5063cbc00a1dc42531511b7eb"},
+ {file = "cryptography-36.0.2-cp36-abi3-win32.whl", hash = "sha256:f64b232348ee82f13aac22856515ce0195837f6968aeaa94a3d0353ea2ec06a6"},
+ {file = "cryptography-36.0.2-cp36-abi3-win_amd64.whl", hash = "sha256:53e0285b49fd0ab6e604f4c5d9c5ddd98de77018542e88366923f152dbeb3c29"},
+ {file = "cryptography-36.0.2-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:32db5cc49c73f39aac27574522cecd0a4bb7384e71198bc65a0d23f901e89bb7"},
+ {file = "cryptography-36.0.2-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b3d199647468d410994dbeb8cec5816fb74feb9368aedf300af709ef507e3e"},
+ {file = "cryptography-36.0.2-pp37-pypy37_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:da73d095f8590ad437cd5e9faf6628a218aa7c387e1fdf67b888b47ba56a17f0"},
+ {file = "cryptography-36.0.2-pp38-pypy38_pp73-macosx_10_10_x86_64.whl", hash = "sha256:0a3bf09bb0b7a2c93ce7b98cb107e9170a90c51a0162a20af1c61c765b90e60b"},
+ {file = "cryptography-36.0.2-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:8897b7b7ec077c819187a123174b645eb680c13df68354ed99f9b40a50898f77"},
+ {file = "cryptography-36.0.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:82740818f2f240a5da8dfb8943b360e4f24022b093207160c77cadade47d7c85"},
+ {file = "cryptography-36.0.2-pp38-pypy38_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:1f64a62b3b75e4005df19d3b5235abd43fa6358d5516cfc43d87aeba8d08dd51"},
+ {file = "cryptography-36.0.2-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:e167b6b710c7f7bc54e67ef593f8731e1f45aa35f8a8a7b72d6e42ec76afd4b3"},
+ {file = "cryptography-36.0.2.tar.gz", hash = "sha256:70f8f4f7bb2ac9f340655cbac89d68c527af5bb4387522a8413e841e3e6628c9"},
]
docutils = [
- {file = "docutils-0.16-py2.py3-none-any.whl", hash = "sha256:0c5b78adfbf7762415433f5515cd5c9e762339e23369dbe8000d84a4bf4ab3af"},
- {file = "docutils-0.16.tar.gz", hash = "sha256:c2de3a60e9e7d07be26b7f2b00ca0309c207e06c100f9cc2a94931fc75a478fc"},
+ {file = "docutils-0.17.1-py2.py3-none-any.whl", hash = "sha256:cf316c8370a737a022b72b56874f6602acf974a37a9fba42ec2876387549fc61"},
+ {file = "docutils-0.17.1.tar.gz", hash = "sha256:686577d2e4c32380bb50cbb22f575ed742d58168cee37e99117a854bcd88f125"},
]
idna = [
{file = "idna-3.3-py3-none-any.whl", hash = "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff"},
@@ -716,8 +728,8 @@ imagesize = [
{file = "imagesize-1.3.0.tar.gz", hash = "sha256:cd1750d452385ca327479d45b64d9c7729ecf0b3969a58148298c77092261f9d"},
]
importlib-metadata = [
- {file = "importlib_metadata-4.8.2-py3-none-any.whl", hash = "sha256:53ccfd5c134223e497627b9815d5030edf77d2ed573922f7a0b8f8bb81a1c100"},
- {file = "importlib_metadata-4.8.2.tar.gz", hash = "sha256:75bdec14c397f528724c1bfd9709d660b33a4d2e77387a3358f20b848bb5e5fb"},
+ {file = "importlib_metadata-4.11.3-py3-none-any.whl", hash = "sha256:1208431ca90a8cca1a6b8af391bb53c1a2db74e5d1cef6ddced95d4b2062edc6"},
+ {file = "importlib_metadata-4.11.3.tar.gz", hash = "sha256:ea4c597ebf37142f827b8f39299579e31685c31d3a438b59f469406afd0f2539"},
]
isort = [
{file = "isort-5.10.1-py3-none-any.whl", hash = "sha256:6f62d78e2f89b4500b080fe3a81690850cd254227f27f75c3a0c491a1f351ba7"},
@@ -728,87 +740,58 @@ jcestruct = [
{file = "JceStruct-0.1.5.tar.gz", hash = "sha256:c465d3ed91c64a0ca23b34c4f1fee66987d9fb7346934a4b160d3a5222ef7e0e"},
]
jinja2 = [
- {file = "Jinja2-3.0.3-py3-none-any.whl", hash = "sha256:077ce6014f7b40d03b47d1f1ca4b0fc8328a692bd284016f806ed0eaca390ad8"},
- {file = "Jinja2-3.0.3.tar.gz", hash = "sha256:611bb273cd68f3b993fabdc4064fc858c5b47a973cb5aa7999ec1ba405c87cd7"},
+ {file = "Jinja2-3.1.1-py3-none-any.whl", hash = "sha256:539835f51a74a69f41b848a9645dbdc35b4f20a3b601e2d9a7e22947b15ff119"},
+ {file = "Jinja2-3.1.1.tar.gz", hash = "sha256:640bed4bb501cbd17194b3cace1dc2126f5b619cf068a726b98192a0fde74ae9"},
]
markupsafe = [
- {file = "MarkupSafe-2.0.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d8446c54dc28c01e5a2dbac5a25f071f6653e6e40f3a8818e8b45d790fe6ef53"},
- {file = "MarkupSafe-2.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:36bc903cbb393720fad60fc28c10de6acf10dc6cc883f3e24ee4012371399a38"},
- {file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2d7d807855b419fc2ed3e631034685db6079889a1f01d5d9dac950f764da3dad"},
- {file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:add36cb2dbb8b736611303cd3bfcee00afd96471b09cda130da3581cbdc56a6d"},
- {file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:168cd0a3642de83558a5153c8bd34f175a9a6e7f6dc6384b9655d2697312a646"},
- {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:4dc8f9fb58f7364b63fd9f85013b780ef83c11857ae79f2feda41e270468dd9b"},
- {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:20dca64a3ef2d6e4d5d615a3fd418ad3bde77a47ec8a23d984a12b5b4c74491a"},
- {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:cdfba22ea2f0029c9261a4bd07e830a8da012291fbe44dc794e488b6c9bb353a"},
- {file = "MarkupSafe-2.0.1-cp310-cp310-win32.whl", hash = "sha256:99df47edb6bda1249d3e80fdabb1dab8c08ef3975f69aed437cb69d0a5de1e28"},
- {file = "MarkupSafe-2.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:e0f138900af21926a02425cf736db95be9f4af72ba1bb21453432a07f6082134"},
- {file = "MarkupSafe-2.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:f9081981fe268bd86831e5c75f7de206ef275defcb82bc70740ae6dc507aee51"},
- {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:0955295dd5eec6cb6cc2fe1698f4c6d84af2e92de33fbcac4111913cd100a6ff"},
- {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:0446679737af14f45767963a1a9ef7620189912317d095f2d9ffa183a4d25d2b"},
- {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:f826e31d18b516f653fe296d967d700fddad5901ae07c622bb3705955e1faa94"},
- {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:fa130dd50c57d53368c9d59395cb5526eda596d3ffe36666cd81a44d56e48872"},
- {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:905fec760bd2fa1388bb5b489ee8ee5f7291d692638ea5f67982d968366bef9f"},
- {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf5d821ffabf0ef3533c39c518f3357b171a1651c1ff6827325e4489b0e46c3c"},
- {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0d4b31cc67ab36e3392bbf3862cfbadac3db12bdd8b02a2731f509ed5b829724"},
- {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:baa1a4e8f868845af802979fcdbf0bb11f94f1cb7ced4c4b8a351bb60d108145"},
- {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:deb993cacb280823246a026e3b2d81c493c53de6acfd5e6bfe31ab3402bb37dd"},
- {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:63f3268ba69ace99cab4e3e3b5840b03340efed0948ab8f78d2fd87ee5442a4f"},
- {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:8d206346619592c6200148b01a2142798c989edcb9c896f9ac9722a99d4e77e6"},
- {file = "MarkupSafe-2.0.1-cp36-cp36m-win32.whl", hash = "sha256:6c4ca60fa24e85fe25b912b01e62cb969d69a23a5d5867682dd3e80b5b02581d"},
- {file = "MarkupSafe-2.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b2f4bf27480f5e5e8ce285a8c8fd176c0b03e93dcc6646477d4630e83440c6a9"},
- {file = "MarkupSafe-2.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0717a7390a68be14b8c793ba258e075c6f4ca819f15edfc2a3a027c823718567"},
- {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:6557b31b5e2c9ddf0de32a691f2312a32f77cd7681d8af66c2692efdbef84c18"},
- {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:49e3ceeabbfb9d66c3aef5af3a60cc43b85c33df25ce03d0031a608b0a8b2e3f"},
- {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:d7f9850398e85aba693bb640262d3611788b1f29a79f0c93c565694658f4071f"},
- {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:6a7fae0dd14cf60ad5ff42baa2e95727c3d81ded453457771d02b7d2b3f9c0c2"},
- {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:b7f2d075102dc8c794cbde1947378051c4e5180d52d276987b8d28a3bd58c17d"},
- {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e9936f0b261d4df76ad22f8fee3ae83b60d7c3e871292cd42f40b81b70afae85"},
- {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:2a7d351cbd8cfeb19ca00de495e224dea7e7d919659c2841bbb7f420ad03e2d6"},
- {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:60bf42e36abfaf9aff1f50f52644b336d4f0a3fd6d8a60ca0d054ac9f713a864"},
- {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d6c7ebd4e944c85e2c3421e612a7057a2f48d478d79e61800d81468a8d842207"},
- {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:f0567c4dc99f264f49fe27da5f735f414c4e7e7dd850cfd8e69f0862d7c74ea9"},
- {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:89c687013cb1cd489a0f0ac24febe8c7a666e6e221b783e53ac50ebf68e45d86"},
- {file = "MarkupSafe-2.0.1-cp37-cp37m-win32.whl", hash = "sha256:a30e67a65b53ea0a5e62fe23682cfe22712e01f453b95233b25502f7c61cb415"},
- {file = "MarkupSafe-2.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:611d1ad9a4288cf3e3c16014564df047fe08410e628f89805e475368bd304914"},
- {file = "MarkupSafe-2.0.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5bb28c636d87e840583ee3adeb78172efc47c8b26127267f54a9c0ec251d41a9"},
- {file = "MarkupSafe-2.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:be98f628055368795d818ebf93da628541e10b75b41c559fdf36d104c5787066"},
- {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:1d609f577dc6e1aa17d746f8bd3c31aa4d258f4070d61b2aa5c4166c1539de35"},
- {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:7d91275b0245b1da4d4cfa07e0faedd5b0812efc15b702576d103293e252af1b"},
- {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:01a9b8ea66f1658938f65b93a85ebe8bc016e6769611be228d797c9d998dd298"},
- {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:47ab1e7b91c098ab893b828deafa1203de86d0bc6ab587b160f78fe6c4011f75"},
- {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:97383d78eb34da7e1fa37dd273c20ad4320929af65d156e35a5e2d89566d9dfb"},
- {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6fcf051089389abe060c9cd7caa212c707e58153afa2c649f00346ce6d260f1b"},
- {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:5855f8438a7d1d458206a2466bf82b0f104a3724bf96a1c781ab731e4201731a"},
- {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:3dd007d54ee88b46be476e293f48c85048603f5f516008bee124ddd891398ed6"},
- {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:aca6377c0cb8a8253e493c6b451565ac77e98c2951c45f913e0b52facdcff83f"},
- {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:04635854b943835a6ea959e948d19dcd311762c5c0c6e1f0e16ee57022669194"},
- {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6300b8454aa6930a24b9618fbb54b5a68135092bc666f7b06901f897fa5c2fee"},
- {file = "MarkupSafe-2.0.1-cp38-cp38-win32.whl", hash = "sha256:023cb26ec21ece8dc3907c0e8320058b2e0cb3c55cf9564da612bc325bed5e64"},
- {file = "MarkupSafe-2.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:984d76483eb32f1bcb536dc27e4ad56bba4baa70be32fa87152832cdd9db0833"},
- {file = "MarkupSafe-2.0.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:2ef54abee730b502252bcdf31b10dacb0a416229b72c18b19e24a4509f273d26"},
- {file = "MarkupSafe-2.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3c112550557578c26af18a1ccc9e090bfe03832ae994343cfdacd287db6a6ae7"},
- {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux1_i686.whl", hash = "sha256:53edb4da6925ad13c07b6d26c2a852bd81e364f95301c66e930ab2aef5b5ddd8"},
- {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:f5653a225f31e113b152e56f154ccbe59eeb1c7487b39b9d9f9cdb58e6c79dc5"},
- {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:4efca8f86c54b22348a5467704e3fec767b2db12fc39c6d963168ab1d3fc9135"},
- {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:ab3ef638ace319fa26553db0624c4699e31a28bb2a835c5faca8f8acf6a5a902"},
- {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:f8ba0e8349a38d3001fae7eadded3f6606f0da5d748ee53cc1dab1d6527b9509"},
- {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c47adbc92fc1bb2b3274c4b3a43ae0e4573d9fbff4f54cd484555edbf030baf1"},
- {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:37205cac2a79194e3750b0af2a5720d95f786a55ce7df90c3af697bfa100eaac"},
- {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:1f2ade76b9903f39aa442b4aadd2177decb66525062db244b35d71d0ee8599b6"},
- {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4296f2b1ce8c86a6aea78613c34bb1a672ea0e3de9c6ba08a960efe0b0a09047"},
- {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f02365d4e99430a12647f09b6cc8bab61a6564363f313126f775eb4f6ef798e"},
- {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5b6d930f030f8ed98e3e6c98ffa0652bdb82601e7a016ec2ab5d7ff23baa78d1"},
- {file = "MarkupSafe-2.0.1-cp39-cp39-win32.whl", hash = "sha256:10f82115e21dc0dfec9ab5c0223652f7197feb168c940f3ef61563fc2d6beb74"},
- {file = "MarkupSafe-2.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:693ce3f9e70a6cf7d2fb9e6c9d8b204b6b39897a2c4a1aa65728d5ac97dcc1d8"},
- {file = "MarkupSafe-2.0.1.tar.gz", hash = "sha256:594c67807fb16238b30c44bdf74f36c02cdf22d1c8cda91ef8a0ed8dabf5620a"},
+ {file = "MarkupSafe-2.1.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:86b1f75c4e7c2ac2ccdaec2b9022845dbb81880ca318bb7a0a01fbf7813e3812"},
+ {file = "MarkupSafe-2.1.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f121a1420d4e173a5d96e47e9a0c0dcff965afdf1626d28de1460815f7c4ee7a"},
+ {file = "MarkupSafe-2.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a49907dd8420c5685cfa064a1335b6754b74541bbb3706c259c02ed65b644b3e"},
+ {file = "MarkupSafe-2.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10c1bfff05d95783da83491be968e8fe789263689c02724e0c691933c52994f5"},
+ {file = "MarkupSafe-2.1.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b7bd98b796e2b6553da7225aeb61f447f80a1ca64f41d83612e6139ca5213aa4"},
+ {file = "MarkupSafe-2.1.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b09bf97215625a311f669476f44b8b318b075847b49316d3e28c08e41a7a573f"},
+ {file = "MarkupSafe-2.1.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:694deca8d702d5db21ec83983ce0bb4b26a578e71fbdbd4fdcd387daa90e4d5e"},
+ {file = "MarkupSafe-2.1.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:efc1913fd2ca4f334418481c7e595c00aad186563bbc1ec76067848c7ca0a933"},
+ {file = "MarkupSafe-2.1.1-cp310-cp310-win32.whl", hash = "sha256:4a33dea2b688b3190ee12bd7cfa29d39c9ed176bda40bfa11099a3ce5d3a7ac6"},
+ {file = "MarkupSafe-2.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:dda30ba7e87fbbb7eab1ec9f58678558fd9a6b8b853530e176eabd064da81417"},
+ {file = "MarkupSafe-2.1.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:671cd1187ed5e62818414afe79ed29da836dde67166a9fac6d435873c44fdd02"},
+ {file = "MarkupSafe-2.1.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3799351e2336dc91ea70b034983ee71cf2f9533cdff7c14c90ea126bfd95d65a"},
+ {file = "MarkupSafe-2.1.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e72591e9ecd94d7feb70c1cbd7be7b3ebea3f548870aa91e2732960fa4d57a37"},
+ {file = "MarkupSafe-2.1.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6fbf47b5d3728c6aea2abb0589b5d30459e369baa772e0f37a0320185e87c980"},
+ {file = "MarkupSafe-2.1.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d5ee4f386140395a2c818d149221149c54849dfcfcb9f1debfe07a8b8bd63f9a"},
+ {file = "MarkupSafe-2.1.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:bcb3ed405ed3222f9904899563d6fc492ff75cce56cba05e32eff40e6acbeaa3"},
+ {file = "MarkupSafe-2.1.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:e1c0b87e09fa55a220f058d1d49d3fb8df88fbfab58558f1198e08c1e1de842a"},
+ {file = "MarkupSafe-2.1.1-cp37-cp37m-win32.whl", hash = "sha256:8dc1c72a69aa7e082593c4a203dcf94ddb74bb5c8a731e4e1eb68d031e8498ff"},
+ {file = "MarkupSafe-2.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:97a68e6ada378df82bc9f16b800ab77cbf4b2fada0081794318520138c088e4a"},
+ {file = "MarkupSafe-2.1.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:e8c843bbcda3a2f1e3c2ab25913c80a3c5376cd00c6e8c4a86a89a28c8dc5452"},
+ {file = "MarkupSafe-2.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0212a68688482dc52b2d45013df70d169f542b7394fc744c02a57374a4207003"},
+ {file = "MarkupSafe-2.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e576a51ad59e4bfaac456023a78f6b5e6e7651dcd383bcc3e18d06f9b55d6d1"},
+ {file = "MarkupSafe-2.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b9fe39a2ccc108a4accc2676e77da025ce383c108593d65cc909add5c3bd601"},
+ {file = "MarkupSafe-2.1.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:96e37a3dc86e80bf81758c152fe66dbf60ed5eca3d26305edf01892257049925"},
+ {file = "MarkupSafe-2.1.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6d0072fea50feec76a4c418096652f2c3238eaa014b2f94aeb1d56a66b41403f"},
+ {file = "MarkupSafe-2.1.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:089cf3dbf0cd6c100f02945abeb18484bd1ee57a079aefd52cffd17fba910b88"},
+ {file = "MarkupSafe-2.1.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6a074d34ee7a5ce3effbc526b7083ec9731bb3cbf921bbe1d3005d4d2bdb3a63"},
+ {file = "MarkupSafe-2.1.1-cp38-cp38-win32.whl", hash = "sha256:421be9fbf0ffe9ffd7a378aafebbf6f4602d564d34be190fc19a193232fd12b1"},
+ {file = "MarkupSafe-2.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:fc7b548b17d238737688817ab67deebb30e8073c95749d55538ed473130ec0c7"},
+ {file = "MarkupSafe-2.1.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e04e26803c9c3851c931eac40c695602c6295b8d432cbe78609649ad9bd2da8a"},
+ {file = "MarkupSafe-2.1.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b87db4360013327109564f0e591bd2a3b318547bcef31b468a92ee504d07ae4f"},
+ {file = "MarkupSafe-2.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:99a2a507ed3ac881b975a2976d59f38c19386d128e7a9a18b7df6fff1fd4c1d6"},
+ {file = "MarkupSafe-2.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:56442863ed2b06d19c37f94d999035e15ee982988920e12a5b4ba29b62ad1f77"},
+ {file = "MarkupSafe-2.1.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3ce11ee3f23f79dbd06fb3d63e2f6af7b12db1d46932fe7bd8afa259a5996603"},
+ {file = "MarkupSafe-2.1.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:33b74d289bd2f5e527beadcaa3f401e0df0a89927c1559c8566c066fa4248ab7"},
+ {file = "MarkupSafe-2.1.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:43093fb83d8343aac0b1baa75516da6092f58f41200907ef92448ecab8825135"},
+ {file = "MarkupSafe-2.1.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8e3dcf21f367459434c18e71b2a9532d96547aef8a871872a5bd69a715c15f96"},
+ {file = "MarkupSafe-2.1.1-cp39-cp39-win32.whl", hash = "sha256:d4306c36ca495956b6d568d276ac11fdd9c30a36f1b6eb928070dc5360b22e1c"},
+ {file = "MarkupSafe-2.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:46d00d6cfecdde84d40e572d63735ef81423ad31184100411e6e3388d405e247"},
+ {file = "MarkupSafe-2.1.1.tar.gz", hash = "sha256:7f91197cc9e48f989d12e4e6fbc46495c446636dfc81b9ccf50bb0ec74b91d4b"},
]
mypy-extensions = [
{file = "mypy_extensions-0.4.3-py2.py3-none-any.whl", hash = "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d"},
{file = "mypy_extensions-0.4.3.tar.gz", hash = "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"},
]
mypy-protobuf = [
- {file = "mypy-protobuf-2.10.tar.gz", hash = "sha256:1fed214e16351b09946770794a321a818abb744078b1d863a479da070028684c"},
- {file = "mypy_protobuf-2.10-py3-none-any.whl", hash = "sha256:8f85a7e12908ca2f59bdacb59f81bd64fd40b946a22844a748fbaf9e1e82d3cd"},
+ {file = "mypy-protobuf-3.2.0.tar.gz", hash = "sha256:730aa15337c38f0446fbe08f6c6c2370ee01d395125369d4b70e08b1e2ee30ee"},
+ {file = "mypy_protobuf-3.2.0-py3-none-any.whl", hash = "sha256:65fc0492165f4a3c0aff69b03e34096fc1453e4dac8f14b4e9c2306cdde06010"},
]
packaging = [
{file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"},
@@ -819,125 +802,135 @@ pathspec = [
{file = "pathspec-0.9.0.tar.gz", hash = "sha256:e564499435a2673d586f6b2130bb5b95f04a3ba06f81b8f895b651a3c76aabb1"},
]
pillow = [
- {file = "Pillow-8.4.0-cp310-cp310-macosx_10_10_universal2.whl", hash = "sha256:81f8d5c81e483a9442d72d182e1fb6dcb9723f289a57e8030811bac9ea3fef8d"},
- {file = "Pillow-8.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3f97cfb1e5a392d75dd8b9fd274d205404729923840ca94ca45a0af57e13dbe6"},
- {file = "Pillow-8.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eb9fc393f3c61f9054e1ed26e6fe912c7321af2f41ff49d3f83d05bacf22cc78"},
- {file = "Pillow-8.4.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d82cdb63100ef5eedb8391732375e6d05993b765f72cb34311fab92103314649"},
- {file = "Pillow-8.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:62cc1afda735a8d109007164714e73771b499768b9bb5afcbbee9d0ff374b43f"},
- {file = "Pillow-8.4.0-cp310-cp310-win32.whl", hash = "sha256:e3dacecfbeec9a33e932f00c6cd7996e62f53ad46fbe677577394aaa90ee419a"},
- {file = "Pillow-8.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:620582db2a85b2df5f8a82ddeb52116560d7e5e6b055095f04ad828d1b0baa39"},
- {file = "Pillow-8.4.0-cp36-cp36m-macosx_10_10_x86_64.whl", hash = "sha256:1bc723b434fbc4ab50bb68e11e93ce5fb69866ad621e3c2c9bdb0cd70e345f55"},
- {file = "Pillow-8.4.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:72cbcfd54df6caf85cc35264c77ede902452d6df41166010262374155947460c"},
- {file = "Pillow-8.4.0-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:70ad9e5c6cb9b8487280a02c0ad8a51581dcbbe8484ce058477692a27c151c0a"},
- {file = "Pillow-8.4.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:25a49dc2e2f74e65efaa32b153527fc5ac98508d502fa46e74fa4fd678ed6645"},
- {file = "Pillow-8.4.0-cp36-cp36m-win32.whl", hash = "sha256:93ce9e955cc95959df98505e4608ad98281fff037350d8c2671c9aa86bcf10a9"},
- {file = "Pillow-8.4.0-cp36-cp36m-win_amd64.whl", hash = "sha256:2e4440b8f00f504ee4b53fe30f4e381aae30b0568193be305256b1462216feff"},
- {file = "Pillow-8.4.0-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:8c803ac3c28bbc53763e6825746f05cc407b20e4a69d0122e526a582e3b5e153"},
- {file = "Pillow-8.4.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c8a17b5d948f4ceeceb66384727dde11b240736fddeda54ca740b9b8b1556b29"},
- {file = "Pillow-8.4.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1394a6ad5abc838c5cd8a92c5a07535648cdf6d09e8e2d6df916dfa9ea86ead8"},
- {file = "Pillow-8.4.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:792e5c12376594bfcb986ebf3855aa4b7c225754e9a9521298e460e92fb4a488"},
- {file = "Pillow-8.4.0-cp37-cp37m-win32.whl", hash = "sha256:d99ec152570e4196772e7a8e4ba5320d2d27bf22fdf11743dd882936ed64305b"},
- {file = "Pillow-8.4.0-cp37-cp37m-win_amd64.whl", hash = "sha256:7b7017b61bbcdd7f6363aeceb881e23c46583739cb69a3ab39cb384f6ec82e5b"},
- {file = "Pillow-8.4.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:d89363f02658e253dbd171f7c3716a5d340a24ee82d38aab9183f7fdf0cdca49"},
- {file = "Pillow-8.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0a0956fdc5defc34462bb1c765ee88d933239f9a94bc37d132004775241a7585"},
- {file = "Pillow-8.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5b7bb9de00197fb4261825c15551adf7605cf14a80badf1761d61e59da347779"},
- {file = "Pillow-8.4.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:72b9e656e340447f827885b8d7a15fc8c4e68d410dc2297ef6787eec0f0ea409"},
- {file = "Pillow-8.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a5a4532a12314149d8b4e4ad8ff09dde7427731fcfa5917ff16d0291f13609df"},
- {file = "Pillow-8.4.0-cp38-cp38-win32.whl", hash = "sha256:82aafa8d5eb68c8463b6e9baeb4f19043bb31fefc03eb7b216b51e6a9981ae09"},
- {file = "Pillow-8.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:066f3999cb3b070a95c3652712cffa1a748cd02d60ad7b4e485c3748a04d9d76"},
- {file = "Pillow-8.4.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:5503c86916d27c2e101b7f71c2ae2cddba01a2cf55b8395b0255fd33fa4d1f1a"},
- {file = "Pillow-8.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4acc0985ddf39d1bc969a9220b51d94ed51695d455c228d8ac29fcdb25810e6e"},
- {file = "Pillow-8.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0b052a619a8bfcf26bd8b3f48f45283f9e977890263e4571f2393ed8898d331b"},
- {file = "Pillow-8.4.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:493cb4e415f44cd601fcec11c99836f707bb714ab03f5ed46ac25713baf0ff20"},
- {file = "Pillow-8.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8831cb7332eda5dc89b21a7bce7ef6ad305548820595033a4b03cf3091235ed"},
- {file = "Pillow-8.4.0-cp39-cp39-win32.whl", hash = "sha256:5e9ac5f66616b87d4da618a20ab0a38324dbe88d8a39b55be8964eb520021e02"},
- {file = "Pillow-8.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:3eb1ce5f65908556c2d8685a8f0a6e989d887ec4057326f6c22b24e8a172c66b"},
- {file = "Pillow-8.4.0-pp36-pypy36_pp73-macosx_10_10_x86_64.whl", hash = "sha256:ddc4d832a0f0b4c52fff973a0d44b6c99839a9d016fe4e6a1cb8f3eea96479c2"},
- {file = "Pillow-8.4.0-pp36-pypy36_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9a3e5ddc44c14042f0844b8cf7d2cd455f6cc80fd7f5eefbe657292cf601d9ad"},
- {file = "Pillow-8.4.0-pp36-pypy36_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c70e94281588ef053ae8998039610dbd71bc509e4acbc77ab59d7d2937b10698"},
- {file = "Pillow-8.4.0-pp37-pypy37_pp73-macosx_10_10_x86_64.whl", hash = "sha256:3862b7256046fcd950618ed22d1d60b842e3a40a48236a5498746f21189afbbc"},
- {file = "Pillow-8.4.0-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a4901622493f88b1a29bd30ec1a2f683782e57c3c16a2dbc7f2595ba01f639df"},
- {file = "Pillow-8.4.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:84c471a734240653a0ec91dec0996696eea227eafe72a33bd06c92697728046b"},
- {file = "Pillow-8.4.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:244cf3b97802c34c41905d22810846802a3329ddcb93ccc432870243211c79fc"},
- {file = "Pillow-8.4.0.tar.gz", hash = "sha256:b8e2f83c56e141920c39464b852de3719dfbfb6e3c99a2d8da0edf4fb33176ed"},
+ {file = "Pillow-9.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:af79d3fde1fc2e33561166d62e3b63f0cc3e47b5a3a2e5fea40d4917754734ea"},
+ {file = "Pillow-9.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:55dd1cf09a1fd7c7b78425967aacae9b0d70125f7d3ab973fadc7b5abc3de652"},
+ {file = "Pillow-9.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:66822d01e82506a19407d1afc104c3fcea3b81d5eb11485e593ad6b8492f995a"},
+ {file = "Pillow-9.1.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a5eaf3b42df2bcda61c53a742ee2c6e63f777d0e085bbc6b2ab7ed57deb13db7"},
+ {file = "Pillow-9.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:01ce45deec9df310cbbee11104bae1a2a43308dd9c317f99235b6d3080ddd66e"},
+ {file = "Pillow-9.1.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:aea7ce61328e15943d7b9eaca87e81f7c62ff90f669116f857262e9da4057ba3"},
+ {file = "Pillow-9.1.0-cp310-cp310-win32.whl", hash = "sha256:7a053bd4d65a3294b153bdd7724dce864a1d548416a5ef61f6d03bf149205160"},
+ {file = "Pillow-9.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:97bda660702a856c2c9e12ec26fc6d187631ddfd896ff685814ab21ef0597033"},
+ {file = "Pillow-9.1.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:21dee8466b42912335151d24c1665fcf44dc2ee47e021d233a40c3ca5adae59c"},
+ {file = "Pillow-9.1.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6b6d4050b208c8ff886fd3db6690bf04f9a48749d78b41b7a5bf24c236ab0165"},
+ {file = "Pillow-9.1.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5cfca31ab4c13552a0f354c87fbd7f162a4fafd25e6b521bba93a57fe6a3700a"},
+ {file = "Pillow-9.1.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ed742214068efa95e9844c2d9129e209ed63f61baa4d54dbf4cf8b5e2d30ccf2"},
+ {file = "Pillow-9.1.0-cp37-cp37m-win32.whl", hash = "sha256:c9efef876c21788366ea1f50ecb39d5d6f65febe25ad1d4c0b8dff98843ac244"},
+ {file = "Pillow-9.1.0-cp37-cp37m-win_amd64.whl", hash = "sha256:de344bcf6e2463bb25179d74d6e7989e375f906bcec8cb86edb8b12acbc7dfef"},
+ {file = "Pillow-9.1.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:17869489de2fce6c36690a0c721bd3db176194af5f39249c1ac56d0bb0fcc512"},
+ {file = "Pillow-9.1.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:25023a6209a4d7c42154073144608c9a71d3512b648a2f5d4465182cb93d3477"},
+ {file = "Pillow-9.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8782189c796eff29dbb37dd87afa4ad4d40fc90b2742704f94812851b725964b"},
+ {file = "Pillow-9.1.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:463acf531f5d0925ca55904fa668bb3461c3ef6bc779e1d6d8a488092bdee378"},
+ {file = "Pillow-9.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3f42364485bfdab19c1373b5cd62f7c5ab7cc052e19644862ec8f15bb8af289e"},
+ {file = "Pillow-9.1.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:3fddcdb619ba04491e8f771636583a7cc5a5051cd193ff1aa1ee8616d2a692c5"},
+ {file = "Pillow-9.1.0-cp38-cp38-win32.whl", hash = "sha256:4fe29a070de394e449fd88ebe1624d1e2d7ddeed4c12e0b31624561b58948d9a"},
+ {file = "Pillow-9.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:c24f718f9dd73bb2b31a6201e6db5ea4a61fdd1d1c200f43ee585fc6dcd21b34"},
+ {file = "Pillow-9.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:fb89397013cf302f282f0fc998bb7abf11d49dcff72c8ecb320f76ea6e2c5717"},
+ {file = "Pillow-9.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c870193cce4b76713a2b29be5d8327c8ccbe0d4a49bc22968aa1e680930f5581"},
+ {file = "Pillow-9.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69e5ddc609230d4408277af135c5b5c8fe7a54b2bdb8ad7c5100b86b3aab04c6"},
+ {file = "Pillow-9.1.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:35be4a9f65441d9982240e6966c1eaa1c654c4e5e931eaf580130409e31804d4"},
+ {file = "Pillow-9.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:82283af99c1c3a5ba1da44c67296d5aad19f11c535b551a5ae55328a317ce331"},
+ {file = "Pillow-9.1.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a325ac71914c5c043fa50441b36606e64a10cd262de12f7a179620f579752ff8"},
+ {file = "Pillow-9.1.0-cp39-cp39-win32.whl", hash = "sha256:a598d8830f6ef5501002ae85c7dbfcd9c27cc4efc02a1989369303ba85573e58"},
+ {file = "Pillow-9.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:0c51cb9edac8a5abd069fd0758ac0a8bfe52c261ee0e330f363548aca6893595"},
+ {file = "Pillow-9.1.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a336a4f74baf67e26f3acc4d61c913e378e931817cd1e2ef4dfb79d3e051b481"},
+ {file = "Pillow-9.1.0-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb1b89b11256b5b6cad5e7593f9061ac4624f7651f7a8eb4dfa37caa1dfaa4d0"},
+ {file = "Pillow-9.1.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:255c9d69754a4c90b0ee484967fc8818c7ff8311c6dddcc43a4340e10cd1636a"},
+ {file = "Pillow-9.1.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:5a3ecc026ea0e14d0ad7cd990ea7f48bfcb3eb4271034657dc9d06933c6629a7"},
+ {file = "Pillow-9.1.0-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c5b0ff59785d93b3437c3703e3c64c178aabada51dea2a7f2c5eccf1bcf565a3"},
+ {file = "Pillow-9.1.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c7110ec1701b0bf8df569a7592a196c9d07c764a0a74f65471ea56816f10e2c8"},
+ {file = "Pillow-9.1.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:8d79c6f468215d1a8415aa53d9868a6b40c4682165b8cb62a221b1baa47db458"},
+ {file = "Pillow-9.1.0.tar.gz", hash = "sha256:f401ed2bbb155e1ade150ccc63db1a4f6c1909d3d378f7d1235a44e90d75fb97"},
]
platformdirs = [
- {file = "platformdirs-2.4.0-py3-none-any.whl", hash = "sha256:8868bbe3c3c80d42f20156f22e7131d2fb321f5bc86a2a345375c6481a67021d"},
- {file = "platformdirs-2.4.0.tar.gz", hash = "sha256:367a5e80b3d04d2428ffa76d33f124cf11e8fff2acdaa9b43d545f5c7d661ef2"},
+ {file = "platformdirs-2.5.1-py3-none-any.whl", hash = "sha256:bcae7cab893c2d310a711b70b24efb93334febe65f8de776ee320b517471e227"},
+ {file = "platformdirs-2.5.1.tar.gz", hash = "sha256:7535e70dfa32e84d4b34996ea99c5e432fa29a708d0f4e394bbcb2a8faa4f16d"},
]
pockets = [
{file = "pockets-0.9.1-py2.py3-none-any.whl", hash = "sha256:68597934193c08a08eb2bf6a1d85593f627c22f9b065cc727a4f03f669d96d86"},
{file = "pockets-0.9.1.tar.gz", hash = "sha256:9320f1a3c6f7a9133fe3b571f283bcf3353cd70249025ae8d618e40e9f7e92b3"},
]
protobuf = [
- {file = "protobuf-3.19.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d80f80eb175bf5f1169139c2e0c5ada98b1c098e2b3c3736667f28cbbea39fc8"},
- {file = "protobuf-3.19.1-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:a529e7df52204565bcd33738a7a5f288f3d2d37d86caa5d78c458fa5fabbd54d"},
- {file = "protobuf-3.19.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:28ccea56d4dc38d35cd70c43c2da2f40ac0be0a355ef882242e8586c6d66666f"},
- {file = "protobuf-3.19.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:8b30a7de128c46b5ecb343917d9fa737612a6e8280f440874e5cc2ba0d79b8f6"},
- {file = "protobuf-3.19.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5935c8ce02e3d89c7900140a8a42b35bc037ec07a6aeb61cc108be8d3c9438a6"},
- {file = "protobuf-3.19.1-cp36-cp36m-win32.whl", hash = "sha256:74f33edeb4f3b7ed13d567881da8e5a92a72b36495d57d696c2ea1ae0cfee80c"},
- {file = "protobuf-3.19.1-cp36-cp36m-win_amd64.whl", hash = "sha256:038daf4fa38a7e818dd61f51f22588d61755160a98db087a046f80d66b855942"},
- {file = "protobuf-3.19.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:8e51561d72efd5bd5c91490af1f13e32bcba8dab4643761eb7de3ce18e64a853"},
- {file = "protobuf-3.19.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:6e8ea9173403219239cdfd8d946ed101f2ab6ecc025b0fda0c6c713c35c9981d"},
- {file = "protobuf-3.19.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db3532d9f7a6ebbe2392041350437953b6d7a792de10e629c1e4f5a6b1fe1ac6"},
- {file = "protobuf-3.19.1-cp37-cp37m-win32.whl", hash = "sha256:615b426a177780ce381ecd212edc1e0f70db8557ed72560b82096bd36b01bc04"},
- {file = "protobuf-3.19.1-cp37-cp37m-win_amd64.whl", hash = "sha256:d8919368410110633717c406ab5c97e8df5ce93020cfcf3012834f28b1fab1ea"},
- {file = "protobuf-3.19.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:71b0250b0cfb738442d60cab68abc166de43411f2a4f791d31378590bfb71bd7"},
- {file = "protobuf-3.19.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:3cd0458870ea7d1c58e948ac8078f6ba8a7ecc44a57e03032ed066c5bb318089"},
- {file = "protobuf-3.19.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:655264ed0d0efe47a523e2255fc1106a22f6faab7cc46cfe99b5bae085c2a13e"},
- {file = "protobuf-3.19.1-cp38-cp38-win32.whl", hash = "sha256:b691d996c6d0984947c4cf8b7ae2fe372d99b32821d0584f0b90277aa36982d3"},
- {file = "protobuf-3.19.1-cp38-cp38-win_amd64.whl", hash = "sha256:e7e8d2c20921f8da0dea277dfefc6abac05903ceac8e72839b2da519db69206b"},
- {file = "protobuf-3.19.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:fd390367fc211cc0ffcf3a9e149dfeca78fecc62adb911371db0cec5c8b7472d"},
- {file = "protobuf-3.19.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:d83e1ef8cb74009bebee3e61cc84b1c9cd04935b72bca0cbc83217d140424995"},
- {file = "protobuf-3.19.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:36d90676d6f426718463fe382ec6274909337ca6319d375eebd2044e6c6ac560"},
- {file = "protobuf-3.19.1-cp39-cp39-win32.whl", hash = "sha256:e7b24c11df36ee8e0c085e5b0dc560289e4b58804746fb487287dda51410f1e2"},
- {file = "protobuf-3.19.1-cp39-cp39-win_amd64.whl", hash = "sha256:77d2fadcf369b3f22859ab25bd12bb8e98fb11e05d9ff9b7cd45b711c719c002"},
- {file = "protobuf-3.19.1-py2.py3-none-any.whl", hash = "sha256:e813b1c9006b6399308e917ac5d298f345d95bb31f46f02b60cd92970a9afa17"},
- {file = "protobuf-3.19.1.tar.gz", hash = "sha256:62a8e4baa9cb9e064eb62d1002eca820857ab2138440cb4b3ea4243830f94ca7"},
+ {file = "protobuf-3.20.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:9d0f3aca8ca51c8b5e204ab92bd8afdb2a8e3df46bd0ce0bd39065d79aabcaa4"},
+ {file = "protobuf-3.20.0-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:001c2160c03b6349c04de39cf1a58e342750da3632f6978a1634a3dcca1ec10e"},
+ {file = "protobuf-3.20.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5b5860b790498f233cdc8d635a17fc08de62e59d4dcd8cdb6c6c0d38a31edf2b"},
+ {file = "protobuf-3.20.0-cp310-cp310-win32.whl", hash = "sha256:0b250c60256c8824219352dc2a228a6b49987e5bf94d3ffcf4c46585efcbd499"},
+ {file = "protobuf-3.20.0-cp310-cp310-win_amd64.whl", hash = "sha256:a1eebb6eb0653e594cb86cd8e536b9b083373fca9aba761ade6cd412d46fb2ab"},
+ {file = "protobuf-3.20.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:bc14037281db66aa60856cd4ce4541a942040686d290e3f3224dd3978f88f554"},
+ {file = "protobuf-3.20.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:47257d932de14a7b6c4ae1b7dbf592388153ee35ec7cae216b87ae6490ed39a3"},
+ {file = "protobuf-3.20.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:fbcbb068ebe67c4ff6483d2e2aa87079c325f8470b24b098d6bf7d4d21d57a69"},
+ {file = "protobuf-3.20.0-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:542f25a4adf3691a306dcc00bf9a73176554938ec9b98f20f929a044f80acf1b"},
+ {file = "protobuf-3.20.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:fd7133b885e356fa4920ead8289bb45dc6f185a164e99e10279f33732ed5ce15"},
+ {file = "protobuf-3.20.0-cp37-cp37m-win32.whl", hash = "sha256:8d84453422312f8275455d1cb52d850d6a4d7d714b784e41b573c6f5bfc2a029"},
+ {file = "protobuf-3.20.0-cp37-cp37m-win_amd64.whl", hash = "sha256:52bae32a147c375522ce09bd6af4d2949aca32a0415bc62df1456b3ad17c6001"},
+ {file = "protobuf-3.20.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:25d2fcd6eef340082718ec9ad2c58d734429f2b1f7335d989523852f2bba220b"},
+ {file = "protobuf-3.20.0-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:88c8be0558bdfc35e68c42ae5bf785eb9390d25915d4863bbc7583d23da77074"},
+ {file = "protobuf-3.20.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:38fd9eb74b852e4ee14b16e9670cd401d147ee3f3ec0d4f7652e0c921d6227f8"},
+ {file = "protobuf-3.20.0-cp38-cp38-win32.whl", hash = "sha256:7dcd84dc31ebb35ade755e06d1561d1bd3b85e85dbdbf6278011fc97b22810db"},
+ {file = "protobuf-3.20.0-cp38-cp38-win_amd64.whl", hash = "sha256:1eb13f5a5a59ca4973bcfa2fc8fff644bd39f2109c3f7a60bd5860cb6a49b679"},
+ {file = "protobuf-3.20.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1d24c81c2310f0063b8fc1c20c8ed01f3331be9374b4b5c2de846f69e11e21fb"},
+ {file = "protobuf-3.20.0-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:8be43a91ab66fe995e85ccdbdd1046d9f0443d59e060c0840319290de25b7d33"},
+ {file = "protobuf-3.20.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:7a53d4035427b9dbfbb397f46642754d294f131e93c661d056366f2a31438263"},
+ {file = "protobuf-3.20.0-cp39-cp39-win32.whl", hash = "sha256:32bf4a90c207a0b4e70ca6dd09d43de3cb9898f7d5b69c2e9e3b966a7f342820"},
+ {file = "protobuf-3.20.0-cp39-cp39-win_amd64.whl", hash = "sha256:6efe066a7135233f97ce51a1aa007d4fb0be28ef093b4f88dac4ad1b3a2b7b6f"},
+ {file = "protobuf-3.20.0-py2.py3-none-any.whl", hash = "sha256:4eda68bd9e2a4879385e6b1ea528c976f59cd9728382005cc54c28bcce8db983"},
+ {file = "protobuf-3.20.0.tar.gz", hash = "sha256:71b2c3d1cd26ed1ec7c8196834143258b2ad7f444efff26fdc366c6f5e752702"},
]
pycparser = [
{file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"},
{file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"},
]
pydantic = [
- {file = "pydantic-1.8.2-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:05ddfd37c1720c392f4e0d43c484217b7521558302e7069ce8d318438d297739"},
- {file = "pydantic-1.8.2-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:a7c6002203fe2c5a1b5cbb141bb85060cbff88c2d78eccbc72d97eb7022c43e4"},
- {file = "pydantic-1.8.2-cp36-cp36m-manylinux2014_i686.whl", hash = "sha256:589eb6cd6361e8ac341db97602eb7f354551482368a37f4fd086c0733548308e"},
- {file = "pydantic-1.8.2-cp36-cp36m-manylinux2014_x86_64.whl", hash = "sha256:10e5622224245941efc193ad1d159887872776df7a8fd592ed746aa25d071840"},
- {file = "pydantic-1.8.2-cp36-cp36m-win_amd64.whl", hash = "sha256:99a9fc39470010c45c161a1dc584997f1feb13f689ecf645f59bb4ba623e586b"},
- {file = "pydantic-1.8.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a83db7205f60c6a86f2c44a61791d993dff4b73135df1973ecd9eed5ea0bda20"},
- {file = "pydantic-1.8.2-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:41b542c0b3c42dc17da70554bc6f38cbc30d7066d2c2815a94499b5684582ecb"},
- {file = "pydantic-1.8.2-cp37-cp37m-manylinux2014_i686.whl", hash = "sha256:ea5cb40a3b23b3265f6325727ddfc45141b08ed665458be8c6285e7b85bd73a1"},
- {file = "pydantic-1.8.2-cp37-cp37m-manylinux2014_x86_64.whl", hash = "sha256:18b5ea242dd3e62dbf89b2b0ec9ba6c7b5abaf6af85b95a97b00279f65845a23"},
- {file = "pydantic-1.8.2-cp37-cp37m-win_amd64.whl", hash = "sha256:234a6c19f1c14e25e362cb05c68afb7f183eb931dd3cd4605eafff055ebbf287"},
- {file = "pydantic-1.8.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:021ea0e4133e8c824775a0cfe098677acf6fa5a3cbf9206a376eed3fc09302cd"},
- {file = "pydantic-1.8.2-cp38-cp38-manylinux1_i686.whl", hash = "sha256:e710876437bc07bd414ff453ac8ec63d219e7690128d925c6e82889d674bb505"},
- {file = "pydantic-1.8.2-cp38-cp38-manylinux2014_i686.whl", hash = "sha256:ac8eed4ca3bd3aadc58a13c2aa93cd8a884bcf21cb019f8cfecaae3b6ce3746e"},
- {file = "pydantic-1.8.2-cp38-cp38-manylinux2014_x86_64.whl", hash = "sha256:4a03cbbe743e9c7247ceae6f0d8898f7a64bb65800a45cbdc52d65e370570820"},
- {file = "pydantic-1.8.2-cp38-cp38-win_amd64.whl", hash = "sha256:8621559dcf5afacf0069ed194278f35c255dc1a1385c28b32dd6c110fd6531b3"},
- {file = "pydantic-1.8.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8b223557f9510cf0bfd8b01316bf6dd281cf41826607eada99662f5e4963f316"},
- {file = "pydantic-1.8.2-cp39-cp39-manylinux1_i686.whl", hash = "sha256:244ad78eeb388a43b0c927e74d3af78008e944074b7d0f4f696ddd5b2af43c62"},
- {file = "pydantic-1.8.2-cp39-cp39-manylinux2014_i686.whl", hash = "sha256:05ef5246a7ffd2ce12a619cbb29f3307b7c4509307b1b49f456657b43529dc6f"},
- {file = "pydantic-1.8.2-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:54cd5121383f4a461ff7644c7ca20c0419d58052db70d8791eacbbe31528916b"},
- {file = "pydantic-1.8.2-cp39-cp39-win_amd64.whl", hash = "sha256:4be75bebf676a5f0f87937c6ddb061fa39cbea067240d98e298508c1bda6f3f3"},
- {file = "pydantic-1.8.2-py3-none-any.whl", hash = "sha256:fec866a0b59f372b7e776f2d7308511784dace622e0992a0b59ea3ccee0ae833"},
- {file = "pydantic-1.8.2.tar.gz", hash = "sha256:26464e57ccaafe72b7ad156fdaa4e9b9ef051f69e175dbbb463283000c05ab7b"},
+ {file = "pydantic-1.9.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:cb23bcc093697cdea2708baae4f9ba0e972960a835af22560f6ae4e7e47d33f5"},
+ {file = "pydantic-1.9.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1d5278bd9f0eee04a44c712982343103bba63507480bfd2fc2790fa70cd64cf4"},
+ {file = "pydantic-1.9.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ab624700dc145aa809e6f3ec93fb8e7d0f99d9023b713f6a953637429b437d37"},
+ {file = "pydantic-1.9.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c8d7da6f1c1049eefb718d43d99ad73100c958a5367d30b9321b092771e96c25"},
+ {file = "pydantic-1.9.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:3c3b035103bd4e2e4a28da9da7ef2fa47b00ee4a9cf4f1a735214c1bcd05e0f6"},
+ {file = "pydantic-1.9.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:3011b975c973819883842c5ab925a4e4298dffccf7782c55ec3580ed17dc464c"},
+ {file = "pydantic-1.9.0-cp310-cp310-win_amd64.whl", hash = "sha256:086254884d10d3ba16da0588604ffdc5aab3f7f09557b998373e885c690dd398"},
+ {file = "pydantic-1.9.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:0fe476769acaa7fcddd17cadd172b156b53546ec3614a4d880e5d29ea5fbce65"},
+ {file = "pydantic-1.9.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c8e9dcf1ac499679aceedac7e7ca6d8641f0193c591a2d090282aaf8e9445a46"},
+ {file = "pydantic-1.9.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d1e4c28f30e767fd07f2ddc6f74f41f034d1dd6bc526cd59e63a82fe8bb9ef4c"},
+ {file = "pydantic-1.9.0-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:c86229333cabaaa8c51cf971496f10318c4734cf7b641f08af0a6fbf17ca3054"},
+ {file = "pydantic-1.9.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:c0727bda6e38144d464daec31dff936a82917f431d9c39c39c60a26567eae3ed"},
+ {file = "pydantic-1.9.0-cp36-cp36m-win_amd64.whl", hash = "sha256:dee5ef83a76ac31ab0c78c10bd7d5437bfdb6358c95b91f1ba7ff7b76f9996a1"},
+ {file = "pydantic-1.9.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:d9c9bdb3af48e242838f9f6e6127de9be7063aad17b32215ccc36a09c5cf1070"},
+ {file = "pydantic-1.9.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2ee7e3209db1e468341ef41fe263eb655f67f5c5a76c924044314e139a1103a2"},
+ {file = "pydantic-1.9.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0b6037175234850ffd094ca77bf60fb54b08b5b22bc85865331dd3bda7a02fa1"},
+ {file = "pydantic-1.9.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:b2571db88c636d862b35090ccf92bf24004393f85c8870a37f42d9f23d13e032"},
+ {file = "pydantic-1.9.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8b5ac0f1c83d31b324e57a273da59197c83d1bb18171e512908fe5dc7278a1d6"},
+ {file = "pydantic-1.9.0-cp37-cp37m-win_amd64.whl", hash = "sha256:bbbc94d0c94dd80b3340fc4f04fd4d701f4b038ebad72c39693c794fd3bc2d9d"},
+ {file = "pydantic-1.9.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:e0896200b6a40197405af18828da49f067c2fa1f821491bc8f5bde241ef3f7d7"},
+ {file = "pydantic-1.9.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7bdfdadb5994b44bd5579cfa7c9b0e1b0e540c952d56f627eb227851cda9db77"},
+ {file = "pydantic-1.9.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:574936363cd4b9eed8acdd6b80d0143162f2eb654d96cb3a8ee91d3e64bf4cf9"},
+ {file = "pydantic-1.9.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c556695b699f648c58373b542534308922c46a1cda06ea47bc9ca45ef5b39ae6"},
+ {file = "pydantic-1.9.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:f947352c3434e8b937e3aa8f96f47bdfe6d92779e44bb3f41e4c213ba6a32145"},
+ {file = "pydantic-1.9.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:5e48ef4a8b8c066c4a31409d91d7ca372a774d0212da2787c0d32f8045b1e034"},
+ {file = "pydantic-1.9.0-cp38-cp38-win_amd64.whl", hash = "sha256:96f240bce182ca7fe045c76bcebfa0b0534a1bf402ed05914a6f1dadff91877f"},
+ {file = "pydantic-1.9.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:815ddebb2792efd4bba5488bc8fde09c29e8ca3227d27cf1c6990fc830fd292b"},
+ {file = "pydantic-1.9.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:6c5b77947b9e85a54848343928b597b4f74fc364b70926b3c4441ff52620640c"},
+ {file = "pydantic-1.9.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c68c3bc88dbda2a6805e9a142ce84782d3930f8fdd9655430d8576315ad97ce"},
+ {file = "pydantic-1.9.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5a79330f8571faf71bf93667d3ee054609816f10a259a109a0738dac983b23c3"},
+ {file = "pydantic-1.9.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f5a64b64ddf4c99fe201ac2724daada8595ada0d102ab96d019c1555c2d6441d"},
+ {file = "pydantic-1.9.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a733965f1a2b4090a5238d40d983dcd78f3ecea221c7af1497b845a9709c1721"},
+ {file = "pydantic-1.9.0-cp39-cp39-win_amd64.whl", hash = "sha256:2cc6a4cb8a118ffec2ca5fcb47afbacb4f16d0ab8b7350ddea5e8ef7bcc53a16"},
+ {file = "pydantic-1.9.0-py3-none-any.whl", hash = "sha256:085ca1de245782e9b46cefcf99deecc67d418737a1fd3f6a4f511344b613a5b3"},
+ {file = "pydantic-1.9.0.tar.gz", hash = "sha256:742645059757a56ecd886faf4ed2441b9c0cd406079c2b4bee51bcc3fbcd510a"},
]
pygments = [
- {file = "Pygments-2.10.0-py3-none-any.whl", hash = "sha256:b8e67fe6af78f492b3c4b3e2970c0624cbf08beb1e493b2c99b9fa1b67a20380"},
- {file = "Pygments-2.10.0.tar.gz", hash = "sha256:f398865f7eb6874156579fdf36bc840a03cab64d1cde9e93d68f46a425ec52c6"},
+ {file = "Pygments-2.11.2-py3-none-any.whl", hash = "sha256:44238f1b60a76d78fc8ca0528ee429702aae011c265fe6a8dd8b63049ae41c65"},
+ {file = "Pygments-2.11.2.tar.gz", hash = "sha256:4e426f72023d88d03b2fa258de560726ce890ff3b630f88c21cbb8b2503b8c6a"},
]
pyparsing = [
- {file = "pyparsing-3.0.6-py3-none-any.whl", hash = "sha256:04ff808a5b90911829c55c4e26f75fa5ca8a2f5f36aa3a51f68e27033341d3e4"},
- {file = "pyparsing-3.0.6.tar.gz", hash = "sha256:d9bdec0013ef1eb5a84ab39a3b3868911598afa494f5faa038647101504e2b81"},
+ {file = "pyparsing-3.0.7-py3-none-any.whl", hash = "sha256:a6c06a88f252e6c322f65faf8f418b16213b51bdfaece0524c1c1bc30c63c484"},
+ {file = "pyparsing-3.0.7.tar.gz", hash = "sha256:18ee9022775d270c55187733956460083db60b37d0d0fb357445f3094eed3eea"},
]
pytz = [
- {file = "pytz-2021.3-py2.py3-none-any.whl", hash = "sha256:3672058bc3453457b622aab7a1c3bfd5ab0bdae451512f6cf25f64ed37f5b87c"},
- {file = "pytz-2021.3.tar.gz", hash = "sha256:acad2d8b20a1af07d4e4c9d2e9285c5ed9104354062f275f3fcd88dcef4f1326"},
+ {file = "pytz-2022.1-py2.py3-none-any.whl", hash = "sha256:e68985985296d9a66a881eb3193b0906246245294a881e7c8afe623866ac6a5c"},
+ {file = "pytz-2022.1.tar.gz", hash = "sha256:1e760e2fe6a8163bc0b3d9a19c4f84342afa0a2affebfaa84b01b978a02ecaa7"},
]
requests = [
- {file = "requests-2.26.0-py2.py3-none-any.whl", hash = "sha256:6c1246513ecd5ecd4528a0906f910e8f0f9c6b8ec72030dc9fd154dc1a6efd24"},
- {file = "requests-2.26.0.tar.gz", hash = "sha256:b8aa58f8cf793ffd8782d3d8cb19e66ef36f7aba4353eec859e74678b01b07a7"},
+ {file = "requests-2.27.1-py2.py3-none-any.whl", hash = "sha256:f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d"},
+ {file = "requests-2.27.1.tar.gz", hash = "sha256:68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61"},
]
rtea = [
{file = "rtea-0.3.2-cp36-cp36m-macosx_10_7_x86_64.whl", hash = "sha256:10aa8b0684fcaa03cbe9398bc29ece6fafbdf86df0838fa123e8880b1fe00239"},
@@ -963,16 +956,16 @@ snowballstemmer = [
{file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"},
]
sphinx = [
- {file = "Sphinx-4.3.1-py3-none-any.whl", hash = "sha256:048dac56039a5713f47a554589dc98a442b39226a2b9ed7f82797fcb2fe9253f"},
- {file = "Sphinx-4.3.1.tar.gz", hash = "sha256:32a5b3e9a1b176cc25ed048557d4d3d01af635e6b76c5bc7a43b0a34447fbd45"},
+ {file = "Sphinx-4.5.0-py3-none-any.whl", hash = "sha256:ebf612653238bcc8f4359627a9b7ce44ede6fdd75d9d30f68255c7383d3a6226"},
+ {file = "Sphinx-4.5.0.tar.gz", hash = "sha256:7bf8ca9637a4ee15af412d1a1d9689fec70523a68ca9bb9127c2f3eeb344e2e6"},
]
sphinx-copybutton = [
- {file = "sphinx-copybutton-0.4.0.tar.gz", hash = "sha256:8daed13a87afd5013c3a9af3575cc4d5bec052075ccd3db243f895c07a689386"},
- {file = "sphinx_copybutton-0.4.0-py3-none-any.whl", hash = "sha256:4340d33c169dac6dd82dce2c83333412aa786a42dd01a81a8decac3b130dc8b0"},
+ {file = "sphinx-copybutton-0.5.0.tar.gz", hash = "sha256:a0c059daadd03c27ba750da534a92a63e7a36a7736dcf684f26ee346199787f6"},
+ {file = "sphinx_copybutton-0.5.0-py3-none-any.whl", hash = "sha256:9684dec7434bd73f0eea58dda93f9bb879d24bff2d8b187b1f2ec08dfe7b5f48"},
]
sphinx-rtd-theme = [
- {file = "sphinx_rtd_theme-0.5.2-py2.py3-none-any.whl", hash = "sha256:4a05bdbe8b1446d77a01e20a23ebc6777c74f43237035e76be89699308987d6f"},
- {file = "sphinx_rtd_theme-0.5.2.tar.gz", hash = "sha256:32bd3b5d13dc8186d7a42fc816a23d32e83a4827d7d9882948e7b837c232da5a"},
+ {file = "sphinx_rtd_theme-1.0.0-py2.py3-none-any.whl", hash = "sha256:4d35a56f4508cfee4c4fb604373ede6feae2a306731d533f409ef5c3496fdbd8"},
+ {file = "sphinx_rtd_theme-1.0.0.tar.gz", hash = "sha256:eec6d497e4c2195fa0e8b2016b337532b8a699a68bcb22a512870e16925c6a5c"},
]
sphinxcontrib-applehelp = [
{file = "sphinxcontrib-applehelp-1.0.2.tar.gz", hash = "sha256:a072735ec80e7675e3f432fcae8610ecf509c5f1869d17e2eecff44389cdbc58"},
@@ -1003,47 +996,48 @@ sphinxcontrib-serializinghtml = [
{file = "sphinxcontrib_serializinghtml-1.1.5-py2.py3-none-any.whl", hash = "sha256:352a9a00ae864471d3a7ead8d7d79f5fc0b57e8b3f95e9867eb9eb28999b92fd"},
]
tomli = [
- {file = "tomli-1.2.2-py3-none-any.whl", hash = "sha256:f04066f68f5554911363063a30b108d2b5a5b1a010aa8b6132af78489fe3aade"},
- {file = "tomli-1.2.2.tar.gz", hash = "sha256:c6ce0015eb38820eaf32b5db832dbc26deb3dd427bd5f6556cf0acac2c214fee"},
+ {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"},
+ {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"},
]
typed-ast = [
- {file = "typed_ast-1.5.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5d8314c92414ce7481eee7ad42b353943679cf6f30237b5ecbf7d835519e1212"},
- {file = "typed_ast-1.5.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b53ae5de5500529c76225d18eeb060efbcec90ad5e030713fe8dab0fb4531631"},
- {file = "typed_ast-1.5.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:24058827d8f5d633f97223f5148a7d22628099a3d2efe06654ce872f46f07cdb"},
- {file = "typed_ast-1.5.1-cp310-cp310-win_amd64.whl", hash = "sha256:a6d495c1ef572519a7bac9534dbf6d94c40e5b6a608ef41136133377bba4aa08"},
- {file = "typed_ast-1.5.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:de4ecae89c7d8b56169473e08f6bfd2df7f95015591f43126e4ea7865928677e"},
- {file = "typed_ast-1.5.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:256115a5bc7ea9e665c6314ed6671ee2c08ca380f9d5f130bd4d2c1f5848d695"},
- {file = "typed_ast-1.5.1-cp36-cp36m-win_amd64.whl", hash = "sha256:7c42707ab981b6cf4b73490c16e9d17fcd5227039720ca14abe415d39a173a30"},
- {file = "typed_ast-1.5.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:71dcda943a471d826ea930dd449ac7e76db7be778fcd722deb63642bab32ea3f"},
- {file = "typed_ast-1.5.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:4f30a2bcd8e68adbb791ce1567fdb897357506f7ea6716f6bbdd3053ac4d9471"},
- {file = "typed_ast-1.5.1-cp37-cp37m-win_amd64.whl", hash = "sha256:ca9e8300d8ba0b66d140820cf463438c8e7b4cdc6fd710c059bfcfb1531d03fb"},
- {file = "typed_ast-1.5.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9caaf2b440efb39ecbc45e2fabde809cbe56272719131a6318fd9bf08b58e2cb"},
- {file = "typed_ast-1.5.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c9bcad65d66d594bffab8575f39420fe0ee96f66e23c4d927ebb4e24354ec1af"},
- {file = "typed_ast-1.5.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:591bc04e507595887160ed7aa8d6785867fb86c5793911be79ccede61ae96f4d"},
- {file = "typed_ast-1.5.1-cp38-cp38-win_amd64.whl", hash = "sha256:a80d84f535642420dd17e16ae25bb46c7f4c16ee231105e7f3eb43976a89670a"},
- {file = "typed_ast-1.5.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:38cf5c642fa808300bae1281460d4f9b7617cf864d4e383054a5ef336e344d32"},
- {file = "typed_ast-1.5.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5b6ab14c56bc9c7e3c30228a0a0b54b915b1579613f6e463ba6f4eb1382e7fd4"},
- {file = "typed_ast-1.5.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:a2b8d7007f6280e36fa42652df47087ac7b0a7d7f09f9468f07792ba646aac2d"},
- {file = "typed_ast-1.5.1-cp39-cp39-win_amd64.whl", hash = "sha256:b6d17f37f6edd879141e64a5db17b67488cfeffeedad8c5cec0392305e9bc775"},
- {file = "typed_ast-1.5.1.tar.gz", hash = "sha256:484137cab8ecf47e137260daa20bafbba5f4e3ec7fda1c1e69ab299b75fa81c5"},
-]
-types-futures = [
- {file = "types-futures-3.3.1.tar.gz", hash = "sha256:bbdad92cec642693bac10fbbecf834776009db7782d91dc293bdd123be73186d"},
- {file = "types_futures-3.3.1-py3-none-any.whl", hash = "sha256:b4bb97d1a028679929a8da2e9e63a5caccc6f68d0d6a456c41fd00e32764f144"},
+ {file = "typed_ast-1.5.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:183b183b7771a508395d2cbffd6db67d6ad52958a5fdc99f450d954003900266"},
+ {file = "typed_ast-1.5.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:676d051b1da67a852c0447621fdd11c4e104827417bf216092ec3e286f7da596"},
+ {file = "typed_ast-1.5.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bc2542e83ac8399752bc16e0b35e038bdb659ba237f4222616b4e83fb9654985"},
+ {file = "typed_ast-1.5.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:74cac86cc586db8dfda0ce65d8bcd2bf17b58668dfcc3652762f3ef0e6677e76"},
+ {file = "typed_ast-1.5.2-cp310-cp310-win_amd64.whl", hash = "sha256:18fe320f354d6f9ad3147859b6e16649a0781425268c4dde596093177660e71a"},
+ {file = "typed_ast-1.5.2-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:31d8c6b2df19a777bc8826770b872a45a1f30cfefcfd729491baa5237faae837"},
+ {file = "typed_ast-1.5.2-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:963a0ccc9a4188524e6e6d39b12c9ca24cc2d45a71cfdd04a26d883c922b4b78"},
+ {file = "typed_ast-1.5.2-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:0eb77764ea470f14fcbb89d51bc6bbf5e7623446ac4ed06cbd9ca9495b62e36e"},
+ {file = "typed_ast-1.5.2-cp36-cp36m-win_amd64.whl", hash = "sha256:294a6903a4d087db805a7656989f613371915fc45c8cc0ddc5c5a0a8ad9bea4d"},
+ {file = "typed_ast-1.5.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:26a432dc219c6b6f38be20a958cbe1abffcc5492821d7e27f08606ef99e0dffd"},
+ {file = "typed_ast-1.5.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c7407cfcad702f0b6c0e0f3e7ab876cd1d2c13b14ce770e412c0c4b9728a0f88"},
+ {file = "typed_ast-1.5.2-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f30ddd110634c2d7534b2d4e0e22967e88366b0d356b24de87419cc4410c41b7"},
+ {file = "typed_ast-1.5.2-cp37-cp37m-win_amd64.whl", hash = "sha256:8c08d6625bb258179b6e512f55ad20f9dfef019bbfbe3095247401e053a3ea30"},
+ {file = "typed_ast-1.5.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:90904d889ab8e81a956f2c0935a523cc4e077c7847a836abee832f868d5c26a4"},
+ {file = "typed_ast-1.5.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:bbebc31bf11762b63bf61aaae232becb41c5bf6b3461b80a4df7e791fabb3aca"},
+ {file = "typed_ast-1.5.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c29dd9a3a9d259c9fa19d19738d021632d673f6ed9b35a739f48e5f807f264fb"},
+ {file = "typed_ast-1.5.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:58ae097a325e9bb7a684572d20eb3e1809802c5c9ec7108e85da1eb6c1a3331b"},
+ {file = "typed_ast-1.5.2-cp38-cp38-win_amd64.whl", hash = "sha256:da0a98d458010bf4fe535f2d1e367a2e2060e105978873c04c04212fb20543f7"},
+ {file = "typed_ast-1.5.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:33b4a19ddc9fc551ebabca9765d54d04600c4a50eda13893dadf67ed81d9a098"},
+ {file = "typed_ast-1.5.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1098df9a0592dd4c8c0ccfc2e98931278a6c6c53cb3a3e2cf7e9ee3b06153344"},
+ {file = "typed_ast-1.5.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42c47c3b43fe3a39ddf8de1d40dbbfca60ac8530a36c9b198ea5b9efac75c09e"},
+ {file = "typed_ast-1.5.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f290617f74a610849bd8f5514e34ae3d09eafd521dceaa6cf68b3f4414266d4e"},
+ {file = "typed_ast-1.5.2-cp39-cp39-win_amd64.whl", hash = "sha256:df05aa5b241e2e8045f5f4367a9f6187b09c4cdf8578bb219861c4e27c443db5"},
+ {file = "typed_ast-1.5.2.tar.gz", hash = "sha256:525a2d4088e70a9f75b08b3f87a51acc9cde640e19cc523c7e41aa355564ae27"},
]
types-protobuf = [
- {file = "types-protobuf-3.18.2.tar.gz", hash = "sha256:ca21dedfe7759acbeb0cd8f5c72a74ff3c409ae0c07bc1d94eff5123ac0fa23c"},
- {file = "types_protobuf-3.18.2-py3-none-any.whl", hash = "sha256:bcf3176ca59b42145fd60530f918b74fba01903a6cd96b94fa488791e3af0586"},
+ {file = "types-protobuf-3.19.15.tar.gz", hash = "sha256:d371d0a5b32e78c2d684329a5d4491d385e6eadcab497b37c41172ded328c5d9"},
+ {file = "types_protobuf-3.19.15-py3-none-any.whl", hash = "sha256:4673a4e56495886590c36cd87f2d855299a699a598eacb2e27d82b57eb4afb05"},
]
typing-extensions = [
- {file = "typing_extensions-4.0.1-py3-none-any.whl", hash = "sha256:7f001e5ac290a0c0401508864c7ec868be4e701886d5b573a9528ed3973d9d3b"},
- {file = "typing_extensions-4.0.1.tar.gz", hash = "sha256:4ca091dea149f945ec56afb48dae714f21e8692ef22a395223bcd328961b6a0e"},
+ {file = "typing_extensions-4.1.1-py3-none-any.whl", hash = "sha256:21c85e0fe4b9a155d0799430b0ad741cdce7e359660ccbd8b530613e8df88ce2"},
+ {file = "typing_extensions-4.1.1.tar.gz", hash = "sha256:1a9462dcc3347a79b1f1c0271fbe79e844580bb598bafa1ed208b94da3cdcd42"},
]
urllib3 = [
- {file = "urllib3-1.26.7-py2.py3-none-any.whl", hash = "sha256:c4fdf4019605b6e5423637e01bc9fe4daef873709a7973e195ceba0a62bbc844"},
- {file = "urllib3-1.26.7.tar.gz", hash = "sha256:4987c65554f7a2dbf30c18fd48778ef124af6fab771a377103da0585e2336ece"},
+ {file = "urllib3-1.26.9-py2.py3-none-any.whl", hash = "sha256:44ece4d53fb1706f667c9bd1c648f5469a2ec925fcf3a776667042d645472c14"},
+ {file = "urllib3-1.26.9.tar.gz", hash = "sha256:aabaf16477806a5e1dd19aa41f8c2b7950dd3c746362d7e3223dbe6de6ac448e"},
]
zipp = [
- {file = "zipp-3.6.0-py3-none-any.whl", hash = "sha256:9fe5ea21568a0a70e50f273397638d39b03353731e6cbbb3fd8502a33fec40bc"},
- {file = "zipp-3.6.0.tar.gz", hash = "sha256:71c644c5369f4a6e07636f0aa966270449561fcea2e3d6747b8d23efaa9d7832"},
+ {file = "zipp-3.8.0-py3-none-any.whl", hash = "sha256:c4f6e5bbf48e74f7a38e7cc5b0480ff42b0ae5178957d564d18932525d5cf099"},
+ {file = "zipp-3.8.0.tar.gz", hash = "sha256:56bf8aadb83c24db6c4b577e13de374ccfb67da2078beba1d037c17980bf43ad"},
]
diff --git a/pyproject.toml b/pyproject.toml
index 7458fd90..4363882d 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -8,7 +8,7 @@ readme = "README.md"
homepage = "https://github.com/cscs181/CAI"
repository = "https://github.com/cscs181/CAI"
documentation = "https://github.com/cscs181/CAI#readme"
-keywords = ["qq", "mirai", "cqhttp"]
+keywords = ["qq", "mirai", "cqhttp", "onebot"]
classifiers = ["Framework :: Robot Framework", "Programming Language :: Python :: 3"]
include = ["cai/py.typed"]
@@ -17,18 +17,18 @@ python = "^3.7"
rtea = "^0.3.0"
jcestruct = "^0.1.0"
protobuf = "^3.14.0"
-cachetools = "^4.2.2"
-cryptography = "^3.4.1"
-typing-extensions = ">=3.10.0,<5.0.0"
+cachetools = "^5.0.0"
+cryptography = "^36.0.2"
+typing-extensions = "^4.1.0"
[tool.poetry.dev-dependencies]
isort = "^5.9.3"
-black = "^21.7b0"
-pillow = "^8.1.0"
+black = "^22.3.0"
+pillow = "^9.1.0"
sphinx = "^4.1.0"
-mypy-protobuf = "^2.4"
-sphinx-rtd-theme = "^0.5.1"
-sphinx-copybutton = "^0.4.0"
+mypy-protobuf = "^3.2.0"
+sphinx-rtd-theme = "^1.0.0"
+sphinx-copybutton = "^0.5.0"
sphinxcontrib-napoleon = "^0.7"
# [[tool.poetry.source]]
From 0f8c52484e7931c228de21b23e6e5be761bdd25e Mon Sep 17 00:00:00 2001
From: yanyongyu <42488585+yanyongyu@users.noreply.github.com>
Date: Thu, 7 Apr 2022 11:25:14 +0800
Subject: [PATCH 054/113] :label: update typing for pep646
---
cai/utils/binary.py | 99 +++++++++++++++++++++++----------------
cai/utils/binary.pyi | 109 -------------------------------------------
2 files changed, 58 insertions(+), 150 deletions(-)
delete mode 100644 cai/utils/binary.pyi
diff --git a/cai/utils/binary.py b/cai/utils/binary.py
index c26aaeb6..e8016416 100644
--- a/cai/utils/binary.py
+++ b/cai/utils/binary.py
@@ -9,19 +9,22 @@
https://github.com/cscs181/CAI/blob/master/LICENSE
"""
import struct
+from typing_extensions import Unpack, TypeVarTuple
from typing import (
+ TYPE_CHECKING,
Any,
List,
Type,
Tuple,
Union,
+ Generic,
NewType,
TypeVar,
Callable,
- Optional,
)
P = TypeVar("P", bound="BasePacket")
+Ts = TypeVarTuple("Ts")
BOOL = NewType("BOOL", bool)
INT8 = NewType("INT8", int)
@@ -147,7 +150,7 @@ def read_string(self, offset: int = 0) -> STRING:
return STRING(self.read_bytes(length, offset + 4).decode())
-class Packet(BasePacket):
+class Packet(BasePacket, Generic[Unpack[Ts]]):
"""Packet Class for extracting data more efficiently.
Support `PEP646`_ typing hints. Using ``pyright`` or ``pylance`` for type checking.
@@ -162,7 +165,12 @@ class Packet(BasePacket):
"""
- def __init__(self, *args, **kwargs):
+ if TYPE_CHECKING:
+
+ def __new__(cls, *args, **kwargs) -> "Packet[()]":
+ ...
+
+ def __init__(self: "Packet[Unpack[Ts]]", *args, **kwargs):
super(Packet, self).__init__(*args, **kwargs)
self.start()
@@ -172,107 +180,116 @@ def _add_filter(self, filter: Callable[[Any], Any]):
def _get_position(self) -> int:
return struct.calcsize(self._query) + self._offset
- def start(self, offset: int = 0):
+ def start(self: "Packet[Unpack[Ts]]", offset: int = 0) -> "Packet[()]":
self._query: str = ">"
self._offset: int = offset
self._executed: bool = False
self._filters: List[Callable[[Any], Any]] = []
- return self
+ return self # type: ignore
- def bool(self):
+ def bool(self: "Packet[Unpack[Ts]]") -> "Packet[Unpack[Ts], BOOL]":
self._query += "?"
self._add_filter(BOOL)
- return self
+ return self # type: ignore
- def int8(self):
+ def int8(self: "Packet[Unpack[Ts]]") -> "Packet[Unpack[Ts], INT8]":
self._query += "b"
self._add_filter(INT8)
- return self
+ return self # type: ignore
- def uint8(self):
+ def uint8(self: "Packet[Unpack[Ts]]") -> "Packet[Unpack[Ts], UINT8]":
self._query += "B"
self._add_filter(UINT8)
- return self
+ return self # type: ignore
- def int16(self):
+ def int16(self: "Packet[Unpack[Ts]]") -> "Packet[Unpack[Ts], INT16]":
self._query += "h"
self._add_filter(INT16)
- return self
+ return self # type: ignore
- def uint16(self):
+ def uint16(self: "Packet[Unpack[Ts]]") -> "Packet[Unpack[Ts], UINT16]":
self._query += "H"
self._add_filter(UINT16)
- return self
+ return self # type: ignore
- def int32(self):
+ def int32(self: "Packet[Unpack[Ts]]") -> "Packet[Unpack[Ts], INT32]":
self._query += "i"
self._add_filter(INT32)
- return self
+ return self # type: ignore
- def uint32(self):
+ def uint32(self: "Packet[Unpack[Ts]]") -> "Packet[Unpack[Ts], UINT32]":
self._query += "I"
self._add_filter(UINT32)
- return self
+ return self # type: ignore
- def int64(self):
+ def int64(self: "Packet[Unpack[Ts]]") -> "Packet[Unpack[Ts], INT64]":
self._query += "q"
self._add_filter(INT64)
- return self
+ return self # type: ignore
- def uint64(self):
+ def uint64(self: "Packet[Unpack[Ts]]") -> "Packet[Unpack[Ts], UINT64]":
self._query += "Q"
self._add_filter(UINT64)
- return self
+ return self # type: ignore
- def float(self):
+ def float(self: "Packet[Unpack[Ts]]") -> "Packet[Unpack[Ts], FLOAT]":
self._query += "f"
self._add_filter(FLOAT)
- return self
+ return self # type: ignore
- def double(self):
+ def double(self: "Packet[Unpack[Ts]]") -> "Packet[Unpack[Ts], DOUBLE]":
self._query += "d"
self._add_filter(DOUBLE)
- return self
+ return self # type: ignore
- def byte(self):
+ def byte(self: "Packet[Unpack[Ts]]") -> "Packet[Unpack[Ts], BYTE]":
self._query += "c"
self._add_filter(BYTE)
- return self
+ return self # type: ignore
- def bytes(self, length: int):
+ def bytes(
+ self: "Packet[Unpack[Ts]]", length: int
+ ) -> "Packet[Unpack[Ts], BYTES]":
self._query += f"{length}s"
self._add_filter(BYTES)
- return self
+ return self # type: ignore
- def bytes_with_length(self, head_bytes: int, offset: int = 0):
+ def bytes_with_length(
+ self: "Packet[Unpack[Ts]]", head_bytes: int, offset: int = 0
+ ) -> "Packet[Unpack[Ts], BYTES]":
length = int.from_bytes(
self.read_bytes(head_bytes, self._get_position()),
"big",
)
self._query += f"{head_bytes}x{length - offset}s"
self._add_filter(BYTES)
- return self
-
- def string(self, head_bytes: int, offset: int = 0, encoding: str = "utf-8"):
+ return self # type: ignore
+
+ def string(
+ self: "Packet[Unpack[Ts]]",
+ head_bytes: int,
+ offset: int = 0,
+ encoding: str = "utf-8",
+ ) -> "Packet[Unpack[Ts], STRING]":
length = int.from_bytes(
self.read_bytes(head_bytes, self._get_position()),
"big",
)
self._query += f"{head_bytes}x{length - offset}s"
self._add_filter(lambda x: STRING(x.decode(encoding)))
- return self
+ return self # type: ignore
- def offset(self, offset: int):
+ def offset(self: "Packet[Unpack[Ts]]", offset: int) -> "Packet[Unpack[Ts]]":
self._query += f"{offset}x"
return self
- def remain(self):
+ def remain(self: "Packet[Unpack[Ts]]") -> "Packet[Unpack[Ts], Packet[()]]":
length = struct.calcsize(self._query)
self._query += f"{len(self) - length}s"
self._add_filter(Packet)
- return self
+ return self # type: ignore
- def execute(self):
+ def execute(self: "Packet[Unpack[Ts]]") -> Tuple[Unpack[Ts]]:
if self._executed:
raise RuntimeError("Cannot re-execute query. Call `start()` first.")
query = self._query
@@ -286,4 +303,4 @@ def execute(self):
filters,
self.unpack_from(query, self._offset),
)
- )
+ ) # type: ignore
diff --git a/cai/utils/binary.pyi b/cai/utils/binary.pyi
deleted file mode 100644
index f68b440f..00000000
--- a/cai/utils/binary.pyi
+++ /dev/null
@@ -1,109 +0,0 @@
-# type: ignore
-"""Binary Tools Stub File.
-
-Type hints in this file needs python>=3.10 or using ``pyright`` or ``pylance``...
-
-:Copyright: Copyright (C) 2021-2021 cscs181
-:License: AGPL-3.0 or later. See `LICENSE`_ for detail.
-
-.. _LICENSE:
- https://github.com/cscs181/CAI/blob/master/LICENSE
-"""
-
-from typing_extensions import Unpack, TypeVarTuple
-from typing import (
- Any,
- List,
- Type,
- Tuple,
- Union,
- Generic,
- NewType,
- TypeVar,
- Callable,
- Optional,
-)
-
-P = TypeVar("P", bound="BasePacket")
-Ts = TypeVarTuple("Ts")
-
-BOOL = NewType("BOOL", bool)
-INT8 = NewType("INT8", int)
-UINT8 = NewType("UINT8", int)
-INT16 = NewType("INT16", int)
-UINT16 = NewType("UINT16", int)
-INT32 = NewType("INT32", int)
-UINT32 = NewType("UINT32", int)
-INT64 = NewType("INT64", int)
-UINT64 = NewType("UINT64", int)
-FLOAT = NewType("FLOAT", float)
-DOUBLE = NewType("DOUBLE", float)
-BYTE = NewType("BYTE", bytes)
-BYTES = NewType("BYTES", bytes)
-STRING = NewType("STRING", str)
-
-class BasePacket(bytearray):
- @classmethod
- def build(cls: Type[P], *data: Union[bytes, "BasePacket"]) -> P: ...
- def write(self: P, *data: Union[bytes, "BasePacket"]) -> P: ...
- def write_with_length(
- self: P, *data: Union[bytes, "BasePacket"], offset: int = ...
- ) -> P: ...
- def unpack(self, format: Union[bytes, str]) -> Tuple[Any, ...]: ...
- def unpack_from(
- self, format: Union[bytes, str], offset: int = ...
- ) -> Tuple[Any, ...]: ...
- def read_int8(self, offset: int = ...) -> INT8: ...
- def read_uint8(self, offset: int = ...) -> UINT8: ...
- def read_int16(self, offset: int = ...) -> INT16: ...
- def read_uint16(self, offset: int = ...) -> UINT16: ...
- def read_int32(self, offset: int = ...) -> INT32: ...
- def read_uint32(self, offset: int = ...) -> UINT32: ...
- def read_int64(self, offset: int = ...) -> INT64: ...
- def read_uint64(self, offset: int = ...) -> UINT64: ...
- def read_byte(self, offset: int = ...) -> BYTE: ...
- def read_bytes(self, n: int, offset: int = ...) -> BYTES: ...
- def read_string(self, offset: int = ...) -> STRING: ...
-
-_bool = bool
-
-class Packet(BasePacket, Generic[Unpack[Ts]]):
- _query: str = ...
- _offset: int = ...
- _executed: _bool = ...
- _filters: List[Callable[[Any], Any]] = ...
- def __init__(
- self, *args, cache: Optional[Tuple[Any, ...]] = None, **kwargs
- ) -> Packet[()]: ...
- def __new__(cls, *args, **kwargs) -> Packet[()]: ...
- def start(self: Packet[Unpack[Ts]], offset: int = ...) -> Packet[()]: ...
- def bool(self: Packet[Unpack[Ts]]) -> Packet[Unpack[Ts], BOOL]: ...
- def int8(self: Packet[Unpack[Ts]]) -> Packet[Unpack[Ts], INT8]: ...
- def uint8(self: Packet[Unpack[Ts]]) -> Packet[Unpack[Ts], UINT8]: ...
- def int16(self: Packet[Unpack[Ts]]) -> Packet[Unpack[Ts], INT16]: ...
- def uint16(self: Packet[Unpack[Ts]]) -> Packet[Unpack[Ts], UINT16]: ...
- def int32(self: Packet[Unpack[Ts]]) -> Packet[Unpack[Ts], INT32]: ...
- def uint32(self: Packet[Unpack[Ts]]) -> Packet[Unpack[Ts], UINT32]: ...
- def int64(self: Packet[Unpack[Ts]]) -> Packet[Unpack[Ts], INT64]: ...
- def uint64(self: Packet[Unpack[Ts]]) -> Packet[Unpack[Ts], UINT64]: ...
- def float(self: Packet[Unpack[Ts]]) -> Packet[Unpack[Ts], FLOAT]: ...
- def double(self: Packet[Unpack[Ts]]) -> Packet[Unpack[Ts], DOUBLE]: ...
- def byte(self: Packet[Unpack[Ts]]) -> Packet[Unpack[Ts], BYTE]: ...
- def bytes(
- self: Packet[Unpack[Ts]], length: int
- ) -> Packet[Unpack[Ts], BYTES]: ...
- def bytes_with_length(
- self: Packet[Unpack[Ts]], head_bytes: int, offset: int = ...
- ) -> Packet[Unpack[Ts], BYTES]: ...
- def string(
- self: Packet[Unpack[Ts]],
- head_bytes: int,
- offset: int = ...,
- encoding: str = ...,
- ) -> Packet[Unpack[Ts], STRING]: ...
- def offset(self: Packet[Unpack[Ts]], offset: int) -> Packet[Unpack[Ts]]: ...
- def remain(
- self: Packet[Unpack[Ts]],
- ) -> Packet[Unpack[Ts], Packet[()]]: ...
- def _exec_cache(self: Packet[Unpack[Ts]]) -> Packet[Unpack[Ts]]: ...
- def execute(self: Packet[Unpack[Ts]]) -> Tuple[Unpack[Ts]]: ...
From 05eb52b242b968710147676aa9f6392138940803 Mon Sep 17 00:00:00 2001
From: yanyongyu <42488585+yanyongyu@users.noreply.github.com>
Date: Thu, 7 Apr 2022 15:06:19 +0800
Subject: [PATCH 055/113] :art: format code
---
cai/api/__init__.py | 1 -
cai/api/base.py | 4 +-
cai/api/client.py | 44 +++++---
cai/api/friend.py | 12 +--
cai/api/group.py | 8 +-
cai/api/login.py | 17 ++-
cai/client/client.py | 137 ++++++++++++++++++-------
cai/client/heartbeat/__init__.py | 7 +-
cai/client/highway/__init__.py | 1 -
cai/client/highway/decoders.py | 25 +++--
cai/client/highway/encoders.py | 90 ++++++++--------
cai/client/highway/frame.py | 12 ++-
cai/client/highway/highway.py | 78 +++++++-------
cai/client/highway/models.py | 2 +-
cai/client/highway/utils.py | 2 +-
cai/client/message_service/decoders.py | 70 +++++++------
cai/client/message_service/encoders.py | 85 +++++++--------
cai/client/message_service/models.py | 7 +-
cai/client/multi_msg/long_msg.py | 67 +++++++-----
cai/client/online_push/__init__.py | 12 ++-
cai/client/sso_server/__init__.py | 2 +-
cai/client/status_service/__init__.py | 10 +-
cai/client/wtlogin/__init__.py | 33 +++---
cai/client/wtlogin/oicq.py | 8 +-
cai/client/wtlogin/tlv.py | 2 +-
cai/connection/__init__.py | 2 +-
cai/settings/protocol.py | 7 +-
cai/utils/coroutine.py | 2 +-
examples/login.py | 44 +++++---
29 files changed, 467 insertions(+), 324 deletions(-)
diff --git a/cai/api/__init__.py b/cai/api/__init__.py
index d3e70dae..2ff5d805 100644
--- a/cai/api/__init__.py
+++ b/cai/api/__init__.py
@@ -11,5 +11,4 @@
from .client import Client, make_client
-
__all__ = ["Client", "make_client"]
diff --git a/cai/api/base.py b/cai/api/base.py
index fea30b33..d642c757 100644
--- a/cai/api/base.py
+++ b/cai/api/base.py
@@ -4,7 +4,9 @@
class BaseAPI:
client: client_t
- async def _executor(self, func_name: str, *args, uncaught_error=False, **kwargs):
+ async def _executor(
+ self, func_name: str, *args, uncaught_error=False, **kwargs
+ ):
if not hasattr(self.client, func_name):
raise AttributeError(f"client has no attribute '{func_name}'")
try:
diff --git a/cai/api/client.py b/cai/api/client.py
index d90609a5..e03e6570 100644
--- a/cai/api/client.py
+++ b/cai/api/client.py
@@ -8,29 +8,37 @@
"""
import hashlib
-from typing import Union, Optional, Sequence, BinaryIO
+from typing import Union, BinaryIO, Optional, Sequence
from cai import log
-from cai.client import OnlineStatus, Client as client_t
+from cai.client import OnlineStatus
+from cai.client import Client as client_t
+from cai.settings.protocol import ApkInfo
+from cai.pb.msf.msg.svc import PbSendMsgResp
from cai.client.highway import HighWaySession
-from cai.client.message_service.models import Element, ImageElement, VoiceElement
-from cai.client.message_service.encoders import make_group_msg_pkg, build_msg
from cai.settings.device import DeviceInfo, new_device
-from cai.settings.protocol import ApkInfo
+from cai.client.message_service.encoders import build_msg, make_group_msg_pkg
+from cai.client.message_service.models import (
+ Element,
+ ImageElement,
+ VoiceElement,
+)
-from .error import BotMutedException, AtAllLimitException, GroupMsgLimitException
-from .friend import Friend as _Friend
from .group import Group as _Group
from .login import Login as _Login
-
-from cai.pb.msf.msg.svc import PbSendMsgResp
+from .friend import Friend as _Friend
+from .error import (
+ BotMutedException,
+ AtAllLimitException,
+ GroupMsgLimitException,
+)
def make_client(
uin: int,
passwd: Union[str, bytes],
apk_info: ApkInfo,
- device: Optional[DeviceInfo] = None
+ device: Optional[DeviceInfo] = None,
) -> client_t:
if not (isinstance(passwd, bytes) and len(passwd) == 16):
# not a vailed md5 passwd
@@ -59,12 +67,14 @@ def status(self) -> Optional[OnlineStatus]:
async def send_group_msg(self, gid: int, msg: Sequence[Element]):
# todo: split long msg
resp: PbSendMsgResp = PbSendMsgResp.FromString(
- (await self.client.send_unipkg_and_wait(
- "MessageSvc.PbSendMsg",
- make_group_msg_pkg(
- self.client.next_seq(), gid, build_msg(msg)
- ).SerializeToString()
- )).data
+ (
+ await self.client.send_unipkg_and_wait(
+ "MessageSvc.PbSendMsg",
+ make_group_msg_pkg(
+ self.client.next_seq(), gid, build_msg(msg)
+ ).SerializeToString(),
+ )
+ ).data
)
if resp.result == 120:
@@ -91,7 +101,7 @@ async def set_status(
self,
status: Union[int, OnlineStatus],
battery_status: Optional[int] = None,
- is_power_connected: bool = False
+ is_power_connected: bool = False,
) -> None:
"""Change client status.
diff --git a/cai/api/friend.py b/cai/api/friend.py
index 6c7820f4..6aabf8bb 100644
--- a/cai/api/friend.py
+++ b/cai/api/friend.py
@@ -9,8 +9,10 @@
from typing import List, Optional
+from cai.client import FriendGroup
+from cai.client import Friend as friend_t
+
from .base import BaseAPI
-from cai.client import FriendGroup, Friend as friend_t
class Friend(BaseAPI):
@@ -37,9 +39,7 @@ async def get_friend(
"""
return await self.client.get_friend(friend_uin, cache)
- async def get_friend_list(
- self, cache: bool = True
- ) -> List[friend_t]:
+ async def get_friend_list(self, cache: bool = True) -> List[friend_t]:
"""Get account friend list.
This function wraps the :meth:`~cai.client.client.Client.get_friend_list`
@@ -103,6 +103,4 @@ async def get_friend_group_list(
return await self._executor("get_friend_group_list", cache)
-__all__ = [
- "Friend"
-]
+__all__ = ["Friend"]
diff --git a/cai/api/group.py b/cai/api/group.py
index 65dd0836..b16536c7 100644
--- a/cai/api/group.py
+++ b/cai/api/group.py
@@ -9,8 +9,10 @@
from typing import List, Union, Optional
+from cai.client import GroupMember
+from cai.client import Group as group_t
+
from .base import BaseAPI
-from cai.client import GroupMember, Group as group_t
class Group(BaseAPI):
@@ -37,9 +39,7 @@ async def get_group(
"""
return await self._executor("get_group", group_id, cache)
- async def get_group_list(
- self, cache: bool = True
- ) -> List[group_t]:
+ async def get_group_list(self, cache: bool = True) -> List[group_t]:
"""Get account group list.
This function wraps the :meth:`~cai.client.client.Client.get_group_list`
diff --git a/cai/api/login.py b/cai/api/login.py
index 01d6ff73..7c736b88 100644
--- a/cai/api/login.py
+++ b/cai/api/login.py
@@ -6,9 +6,10 @@
.. _LICENSE:
https://github.com/cscs181/CAI/blob/master/LICENSE
"""
-from .base import BaseAPI
from cai.exceptions import LoginException
+from .base import BaseAPI
+
class Login(BaseAPI):
async def login(self):
@@ -29,9 +30,7 @@ async def login(self):
await self.client.close()
raise
- async def submit_captcha(
- self, captcha: str, captcha_sign: bytes
- ) -> bool:
+ async def submit_captcha(self, captcha: str, captcha_sign: bytes) -> bool:
"""Submit captcha data to login.
This function wraps the :meth:`~cai.client.client.Client.submit_captcha`
@@ -47,7 +46,7 @@ async def submit_captcha(
"""
try:
await self._executor("submit_captcha", captcha, captcha_sign)
- except not LoginException:
+ except LoginException:
await self.client.close()
raise
return True
@@ -83,7 +82,7 @@ async def request_sms(self) -> bool:
"""
try:
return await self.client.request_sms()
- except not LoginException:
+ except LoginException:
await self.client.close()
raise
@@ -102,12 +101,10 @@ async def submit_sms(self, sms_code: str) -> bool:
"""
try:
await self._executor("submit_sms", sms_code)
- except not LoginException:
+ except LoginException:
await self.client.close()
raise
return True
-__all__ = [
- "Login"
-]
+__all__ = ["Login"]
diff --git a/cai/client/client.py b/cai/client/client.py
index 83217373..5ad34d5e 100644
--- a/cai/client/client.py
+++ b/cai/client/client.py
@@ -16,11 +16,12 @@
Set,
Dict,
List,
+ Tuple,
Union,
Callable,
Optional,
Awaitable,
- overload, Tuple,
+ overload,
)
from cachetools import TTLCache
@@ -28,8 +29,8 @@
from cai import log
from cai.utils.binary import Packet
from cai.utils.future import FutureStore
-from cai.settings.device import DeviceInfo
from cai.settings.protocol import ApkInfo
+from cai.settings.device import DeviceInfo
from cai.connection import Connection, connect
from cai.exceptions import (
LoginException,
@@ -46,10 +47,10 @@
)
from .event import Event
-from .multi_msg.long_msg import _handle_multi_resp_body
-from .packet import IncomingPacket, UniPacket
+from .packet import UniPacket, IncomingPacket
from .command import Command, _packet_to_command
from .sso_server import SsoServer, get_sso_server
+from .multi_msg.long_msg import _handle_multi_resp_body
from .online_push import handle_c2c_sync, handle_push_msg
from .heartbeat import Heartbeat, encode_heartbeat, handle_heartbeat
from .models import Group, Friend, SigInfo, FriendGroup, GroupMember
@@ -109,7 +110,9 @@
encode_login_request2_captcha,
)
-HT = Callable[["Client", IncomingPacket, Tuple[DeviceInfo, ApkInfo]], Awaitable[Command]]
+HT = Callable[
+ ["Client", IncomingPacket, Tuple[DeviceInfo, ApkInfo]], Awaitable[Command]
+]
LT = Callable[["Client", Event], Awaitable[None]]
HANDLERS: Dict[str, HT] = {
@@ -131,16 +134,28 @@
"OnlinePush.PbC2CMsgSync": handle_c2c_sync,
"OnlinePush.PbPushC2CMsg": handle_push_msg,
# "OnlinePush.PbPushBindUinGroupMsg": handle_push_msg, # sub account
-
# new
- "MultiMsg.ApplyUp": _handle_multi_resp_body
+ "MultiMsg.ApplyUp": _handle_multi_resp_body,
}
class Client:
LISTENERS: Set[LT] = set()
- def __init__(self, uin: int, password_md5: bytes, device: DeviceInfo, apk_info: ApkInfo, *, loop=None):
+ def __init__(
+ self,
+ uin: int,
+ password_md5: bytes,
+ device: DeviceInfo,
+ apk_info: ApkInfo,
+ *,
+ auto_reconnect: bool = True,
+ max_reconnections: Optional[int] = 3,
+ ):
+ # client info
+ self._device: DeviceInfo = device
+ self._apk_info: ApkInfo = apk_info
+
# account info
self._uin: int = uin
self._password_md5: bytes = password_md5
@@ -184,18 +199,30 @@ def __init__(self, uin: int, password_md5: bytes, device: DeviceInfo, apk_info:
self._msg_cache: TTLCache = TTLCache(maxsize=1024, ttl=3600)
self._receive_store: FutureStore[int, Command] = FutureStore()
- self.device_info: DeviceInfo = device
- self.apk_info: ApkInfo = apk_info
- self._reconnect: bool = True
- self.closed: asyncio.Event = asyncio.Event()
-
- if not loop:
- loop = asyncio.get_event_loop()
- self._loop = loop
+ # connection info
+ self._reconnect: bool = auto_reconnect
+ self._max_reconnections: Optional[int] = max_reconnections
+ self._closed: asyncio.Event = asyncio.Event()
def __str__(self) -> str:
return f""
+ @property
+ def device(self) -> DeviceInfo:
+ """
+ Returns:
+ DeviceInfo: client device info
+ """
+ return self._device
+
+ @property
+ def apk_info(self) -> ApkInfo:
+ """
+ Returns:
+ ApkInfo: client apk(protocol) info
+ """
+ return self._apk_info
+
@property
def uin(self) -> int:
"""
@@ -264,6 +291,10 @@ def connected(self) -> bool:
"""
return bool(self._connection and not self._connection.closed)
+ @property
+ def closed(self) -> bool:
+ return self._closed.is_set()
+
async def connect(self, server: Optional[SsoServer] = None) -> None:
"""Connect to the server.
@@ -278,6 +309,8 @@ async def connect(self, server: Optional[SsoServer] = None) -> None:
"""
if self.connected:
raise RuntimeError("Already connected to the server")
+ if self.closed:
+ raise RuntimeError("Client is closed")
log.network.debug("Getting Sso server")
_server = server or await get_sso_server()
log.logger.info(f"Connecting to server: {_server.host}:{_server.port}")
@@ -285,7 +318,9 @@ async def connect(self, server: Optional[SsoServer] = None) -> None:
self._connection = await connect(
_server.host, _server.port, ssl=False, timeout=3.0
)
- self._loop.create_task(self.receive()).add_done_callback(self._recv_done_cb)
+ asyncio.create_task(self.receive()).add_done_callback(
+ self._recv_done_cb
+ )
except ConnectionError as e:
raise
except Exception as e:
@@ -297,10 +332,10 @@ async def connect(self, server: Optional[SsoServer] = None) -> None:
def _recv_done_cb(self, _task):
if self._reconnect:
log.network.warning("receiver stopped, try to reconnect")
- self._loop.create_task(self.reconnect())
+ asyncio.create_task(self.reconnect())
else:
log.network.warning("receiver stopped")
- self._loop.create_task(self.close())
+ asyncio.create_task(self.close())
async def disconnect(self) -> None:
"""Disconnect if already connected to the server."""
@@ -340,14 +375,19 @@ async def reconnect(
async def close(self) -> None:
"""Close the client and logout."""
log.logger.warning("closing client")
+ # disable reconnection
self._reconnect = False
+ # logout
if (
self.connected
and self.status
and self.status != OnlineStatus.Offline
):
await self.register(OnlineStatus.Offline)
+
+ # clear waiting packet
self._receive_store.cancel_all()
+ # disconnect server
await self.disconnect()
self.closed.set()
@@ -405,19 +445,32 @@ async def send_and_wait(
await self.send(seq, command_name, packet)
return await self._receive_store.fetch(seq, timeout)
- async def send_unipkg_and_wait(self, command_name: str, enc_packet: bytes, seq=-1, timeout=10.0):
+ async def send_unipkg_and_wait(
+ self, command_name: str, enc_packet: bytes, seq=-1, timeout=10.0
+ ):
if seq == -1:
seq = self.next_seq()
return await self.send_and_wait(
- seq, command_name,
- UniPacket.build(self.uin, seq, command_name, self._session_id, 1, enc_packet, self._siginfo.d2key),
- timeout
+ seq,
+ command_name,
+ UniPacket.build(
+ self.uin,
+ seq,
+ command_name,
+ self._session_id,
+ 1,
+ enc_packet,
+ self._siginfo.d2key,
+ ),
+ timeout,
)
async def _handle_incoming_packet(self, in_packet: IncomingPacket) -> None:
try:
handler = HANDLERS.get(in_packet.command_name, _packet_to_command)
- packet = await handler(self, in_packet, (self.device_info, self.apk_info))
+ packet = await handler(
+ self, in_packet, (self.device_info, self.apk_info)
+ )
self._receive_store.store_result(packet.seq, packet)
except Exception as e:
# TODO: handle exception
@@ -431,7 +484,12 @@ async def receive(self):
"""
while self.connected:
try:
- length: int = int.from_bytes(await self.connection.read_bytes(4), "big", signed=False) - 4
+ length: int = (
+ int.from_bytes(
+ await self.connection.read_bytes(4), "big", signed=False
+ )
+ - 4
+ )
data = await self.connection.read_bytes(length)
packet = IncomingPacket.parse(
@@ -445,7 +503,7 @@ async def receive(self):
f"(receive:{packet.ret_code}): {packet.command_name}"
)
# do not block receive
- self._loop.create_task(self._handle_incoming_packet(packet))
+ asyncio.create_task(self._handle_incoming_packet(packet))
except ConnectionAbortedError as e:
log.logger.error(f"{self.uin} connection lost: {str(e)}")
break
@@ -539,7 +597,7 @@ async def _handle_login_response(
self._t104,
self._siginfo.g,
self.device_info.imei,
- self.apk_info
+ self.apk_info,
)
response = await self.send_and_wait(
seq, "wtlogin.login", packet
@@ -611,7 +669,7 @@ async def login(self) -> LoginSuccess:
self.uin,
self._password_md5,
self.device_info,
- self.apk_info
+ self.apk_info,
)
response = await self.send_and_wait(seq, "wtlogin.login", packet)
return await self._handle_login_response(response)
@@ -647,7 +705,7 @@ async def submit_captcha(
captcha_sign,
self._t104,
self.device_info.imei,
- self.apk_info
+ self.apk_info,
)
response = await self.send_and_wait(seq, "wtlogin.login", packet)
return await self._handle_login_response(response)
@@ -680,7 +738,7 @@ async def submit_slider_ticket(self, ticket: str) -> LoginSuccess:
ticket,
self._t104,
self.device_info.imei,
- self.apk_info
+ self.apk_info,
)
response = await self.send_and_wait(seq, "wtlogin.login", packet)
return await self._handle_login_response(response)
@@ -713,7 +771,7 @@ async def request_sms(self) -> bool:
self._t104,
self._t174,
self.device_info.imei,
- self.apk_info
+ self.apk_info,
)
response = await self.send_and_wait(seq, "wtlogin.login", packet)
@@ -755,7 +813,7 @@ async def submit_sms(self, sms_code: str) -> LoginSuccess:
self._t174,
self._siginfo.g,
self.device_info.imei,
- self.apk_info
+ self.apk_info,
)
response = await self.send_and_wait(seq, "wtlogin.login", packet)
return await self._handle_login_response(response)
@@ -795,7 +853,7 @@ async def _handle_refresh_response(
self._t104,
self._siginfo.g,
self.device_info.imei,
- self.apk_info
+ self.apk_info,
)
response = await self.send_and_wait(
seq, "wtlogin.login", packet
@@ -843,7 +901,7 @@ async def refresh_siginfo(self) -> LoginSuccess:
self._siginfo.wt_session_ticket,
self._siginfo.wt_session_ticket_key,
self.device_info,
- self.apk_info
+ self.apk_info,
)
response = await self.send_and_wait(seq, "wtlogin.exchange_emp", packet)
@@ -883,7 +941,7 @@ async def register(
status,
register_reason,
self.apk_info.sub_app_id,
- self.device_info
+ self.device_info,
)
response = await self.send_and_wait(seq, "StatSvc.register", packet)
@@ -936,7 +994,7 @@ async def set_status(
self.device_info,
status,
battery_status,
- is_power_connected
+ is_power_connected,
)
response = await self.send_and_wait(
seq, "StatSvc.SetStatusFromClient", packet
@@ -977,7 +1035,12 @@ async def heartbeat(self) -> None:
while self._heartbeat_enabled and not self._connection.closed:
seq = self.next_seq()
packet = encode_heartbeat(
- seq, self._session_id, self.device_info.imei, self._ksid, self.uin, self.apk_info.sub_app_id
+ seq,
+ self._session_id,
+ self.device_info.imei,
+ self._ksid,
+ self.uin,
+ self.apk_info.sub_app_id,
)
try:
response = await self.send_and_wait(
diff --git a/cai/client/heartbeat/__init__.py b/cai/client/heartbeat/__init__.py
index 37c1d872..b2b516fd 100644
--- a/cai/client/heartbeat/__init__.py
+++ b/cai/client/heartbeat/__init__.py
@@ -21,7 +21,12 @@
def encode_heartbeat(
- seq: int, session_id: bytes, imei: str, ksid: bytes, uin: int, sub_app_id: int
+ seq: int,
+ session_id: bytes,
+ imei: str,
+ ksid: bytes,
+ uin: int,
+ sub_app_id: int,
) -> Packet:
"""Build heartbeat alive packet.
diff --git a/cai/client/highway/__init__.py b/cai/client/highway/__init__.py
index b53b1834..cb227ebb 100644
--- a/cai/client/highway/__init__.py
+++ b/cai/client/highway/__init__.py
@@ -1,4 +1,3 @@
from .highway import HighWaySession
-
__all__ = ["HighWaySession"]
diff --git a/cai/client/highway/decoders.py b/cai/client/highway/decoders.py
index 006e4d7f..da5e6734 100644
--- a/cai/client/highway/decoders.py
+++ b/cai/client/highway/decoders.py
@@ -1,41 +1,50 @@
-from .models import ImageUploadResponse, UploadResponse
-from .utils import itoa
from cai.pb.im.oidb.cmd0x388.cmd0x388_pb2 import D388RspBody
+from .utils import itoa
+from .models import UploadResponse, ImageUploadResponse
+
def decode_upload_image_resp(data: bytes) -> ImageUploadResponse:
pkg = decode_d388_rsp(data).tryupImgRsp[0]
if pkg.result != 0:
- return ImageUploadResponse(resultCode=pkg.result, message=pkg.failMsg.decode())
+ return ImageUploadResponse(
+ resultCode=pkg.result, message=pkg.failMsg.decode()
+ )
if pkg.fileExit:
if pkg.imgInfo:
info = pkg.imgInfo
# fuck: pkg.fileId != pkg.fileid
return ImageUploadResponse(
- isExists=True, fileId=pkg.fileid, hasMetaData=True,
- fileType=info.fileType, width=info.fileWidth, height=info.fileHeight
+ isExists=True,
+ fileId=pkg.fileid,
+ hasMetaData=True,
+ fileType=info.fileType,
+ width=info.fileWidth,
+ height=info.fileHeight,
)
else:
return ImageUploadResponse(isExists=True, fileId=pkg.fileid)
return ImageUploadResponse(
isExists=False,
uploadAddr=[(itoa(a), p) for a, p in zip(pkg.upIp, pkg.upPort)],
- uploadKey=pkg.upUkey
+ uploadKey=pkg.upUkey,
)
def decode_upload_ptt_resp(data: bytes) -> UploadResponse:
pkg = decode_d388_rsp(data).tryupPttRsp[0]
if pkg.result != 0:
- return UploadResponse(resultCode=pkg.result, message=pkg.failMsg.decode())
+ return UploadResponse(
+ resultCode=pkg.result, message=pkg.failMsg.decode()
+ )
if pkg.fileExit:
return UploadResponse(isExists=True, fileId=pkg.fileid)
return UploadResponse(
isExists=False,
uploadAddr=[(itoa(a), p) for a, p in zip(pkg.upIp, pkg.upPort)],
- uploadKey=pkg.upUkey
+ uploadKey=pkg.upUkey,
)
diff --git a/cai/client/highway/encoders.py b/cai/client/highway/encoders.py
index 663fd656..d96c5859 100644
--- a/cai/client/highway/encoders.py
+++ b/cai/client/highway/encoders.py
@@ -1,57 +1,57 @@
-from cai.pb.im.oidb.cmd0x388.cmd0x388_pb2 import D388ReqBody, TryUpImgReq, TryUpPttReq
+from cai.pb.im.oidb.cmd0x388.cmd0x388_pb2 import (
+ D388ReqBody,
+ TryUpImgReq,
+ TryUpPttReq,
+)
def encode_d388_req(
- group_code: int,
- uin: int,
- md5: bytes,
- size: int,
- subcmd: int
+ group_code: int, uin: int, md5: bytes, size: int, subcmd: int
) -> D388ReqBody:
img, ptt = None, None
if subcmd == 1: # upload img
fn = md5.hex().upper() + ".jpg"
- img = [TryUpImgReq(
- groupCode=group_code,
- srcUin=uin,
- fileName=fn.encode(),
- fileMd5=md5,
- fileSize=size,
- fileId=0,
- srcTerm=5,
- platformType=9,
- buType=1,
- picType=1003,
- picWidth=1920,
- picHeight=903,
- buildVer=b"8.8.50.2324",
- appPicType=1052,
- originalPic=1,
- srvUpload=0
- )]
+ img = [
+ TryUpImgReq(
+ groupCode=group_code,
+ srcUin=uin,
+ fileName=fn.encode(),
+ fileMd5=md5,
+ fileSize=size,
+ fileId=0,
+ srcTerm=5,
+ platformType=9,
+ buType=1,
+ picType=1003,
+ picWidth=1920,
+ picHeight=903,
+ buildVer=b"8.8.50.2324",
+ appPicType=1052,
+ originalPic=1,
+ srvUpload=0,
+ )
+ ]
elif subcmd == 3: # voice
- ptt = [TryUpPttReq(
- groupCode=group_code,
- srcUin=uin,
- fileMd5=md5,
- fileName=(md5.hex().upper() + ".amr").encode(),
- fileSize=size,
- voiceLength=size,
- voiceType=1,
- codec=0,
- srcTerm=5,
- platformType=9,
- buType=4,
- innerIp=0,
- buildVer=b"8.8.50.2324",
- newUpChan=True
- )]
+ ptt = [
+ TryUpPttReq(
+ groupCode=group_code,
+ srcUin=uin,
+ fileMd5=md5,
+ fileName=(md5.hex().upper() + ".amr").encode(),
+ fileSize=size,
+ voiceLength=size,
+ voiceType=1,
+ codec=0,
+ srcTerm=5,
+ platformType=9,
+ buType=4,
+ innerIp=0,
+ buildVer=b"8.8.50.2324",
+ newUpChan=True,
+ )
+ ]
else:
ValueError("unsupported subcmd:", subcmd)
return D388ReqBody(
- netType=8,
- subcmd=subcmd,
- tryupImgReq=img,
- tryupPttReq=ptt
+ netType=8, subcmd=subcmd, tryupImgReq=img, tryupPttReq=ptt
)
-
diff --git a/cai/client/highway/frame.py b/cai/client/highway/frame.py
index 4c557930..42191b1a 100644
--- a/cai/client/highway/frame.py
+++ b/cai/client/highway/frame.py
@@ -1,5 +1,5 @@
-import asyncio
import struct
+import asyncio
from typing import Tuple
from cai.pb.highway.protocol.highway_head_pb2 import highway_head
@@ -15,15 +15,19 @@ def write_frame(head: bytes, body: bytes) -> bytes:
return buf
-async def read_frame(reader: asyncio.StreamReader) -> Tuple[highway_head.RspDataHighwayHead, bytes]:
+async def read_frame(
+ reader: asyncio.StreamReader,
+) -> Tuple[highway_head.RspDataHighwayHead, bytes]:
head = await reader.readexactly(9)
if len(head) != 9 and head[0] != 0x28:
raise ValueError("Invalid frame head", head)
hl, bl = struct.unpack("!II", head[1:])
try:
return (
- highway_head.RspDataHighwayHead.FromString(await reader.readexactly(hl)),
- await reader.readexactly(bl)
+ highway_head.RspDataHighwayHead.FromString(
+ await reader.readexactly(hl)
+ ),
+ await reader.readexactly(bl),
)
finally:
await reader.read(1) # flush end byte
diff --git a/cai/client/highway/highway.py b/cai/client/highway/highway.py
index 14d9e218..13a77d5c 100644
--- a/cai/client/highway/highway.py
+++ b/cai/client/highway/highway.py
@@ -1,25 +1,22 @@
import asyncio
import logging
from hashlib import md5
-from typing import Tuple, BinaryIO, TYPE_CHECKING, Optional, List
+from typing import TYPE_CHECKING, List, Tuple, BinaryIO, Optional
+
+from cai.pb.highway.protocol.highway_head_pb2 import highway_head
-from .decoders import decode_upload_image_resp, decode_upload_ptt_resp
from .encoders import encode_d388_req
-from .utils import calc_file_md5_and_length, timeit, to_id
from .frame import read_frame, write_frame
-from cai.pb.highway.protocol.highway_head_pb2 import highway_head
+from .utils import to_id, timeit, calc_file_md5_and_length
from ..message_service.models import ImageElement, VoiceElement
+from .decoders import decode_upload_ptt_resp, decode_upload_image_resp
if TYPE_CHECKING:
from cai.client.client import Client
def _create_highway_header(
- cmd: bytes,
- flag: int,
- cmd_id: int,
- client: "Client",
- locale=2052
+ cmd: bytes, flag: int, cmd_id: int, client: "Client", locale=2052
) -> highway_head.DataHighwayHead:
return highway_head.DataHighwayHead(
version=1,
@@ -29,7 +26,7 @@ def _create_highway_header(
seq=client.next_seq(),
appid=client.apk_info.sub_app_id,
localeId=locale,
- dataflag=flag
+ dataflag=flag,
)
@@ -59,18 +56,13 @@ async def _upload_controller(
file: BinaryIO,
cmd_id: int,
ticket: bytes,
- ext=None
+ ext=None,
) -> Optional[bytes]:
for addr in addrs:
try:
t, d = await timeit(
self.bdh_uploader(
- b"PicUp.DataUp",
- addr,
- file,
- cmd_id,
- ticket,
- ext
+ b"PicUp.DataUp", addr, file, cmd_id, ticket, ext
)
)
self.logger.info("upload complete, use %fms" % (t * 1000))
@@ -86,10 +78,14 @@ async def _upload_controller(
async def upload_image(self, file: BinaryIO, gid: int) -> ImageElement:
fmd5, fl = calc_file_md5_and_length(file)
ret = decode_upload_image_resp(
- (await self._client.send_unipkg_and_wait(
- "ImgStore.GroupPicUp",
- encode_d388_req(gid, self._client.uin, fmd5, fl, 1).SerializeToString()
- )).data
+ (
+ await self._client.send_unipkg_and_wait(
+ "ImgStore.GroupPicUp",
+ encode_d388_req(
+ gid, self._client.uin, fmd5, fl, 1
+ ).SerializeToString(),
+ )
+ ).data
)
if ret.resultCode != 0:
raise ConnectionError(ret.resultCode)
@@ -97,17 +93,18 @@ async def upload_image(self, file: BinaryIO, gid: int) -> ImageElement:
self.logger.debug("file not found, uploading...")
await self._upload_controller(
- ret.uploadAddr,
- file,
- 2, # send to group
- ret.uploadKey
+ ret.uploadAddr, file, 2, ret.uploadKey # send to group
)
ret = decode_upload_image_resp(
- (await self._client.send_unipkg_and_wait(
- "ImgStore.GroupPicUp",
- encode_d388_req(gid, self._client.uin, fmd5, fl, 1).SerializeToString()
- )).data
+ (
+ await self._client.send_unipkg_and_wait(
+ "ImgStore.GroupPicUp",
+ encode_d388_req(
+ gid, self._client.uin, fmd5, fl, 1
+ ).SerializeToString(),
+ )
+ ).data
)
if ret.hasMetaData:
@@ -125,12 +122,14 @@ async def upload_image(self, file: BinaryIO, gid: int) -> ImageElement:
height=h,
md5=fmd5,
filetype=image_type,
- url=f"https://gchat.qpic.cn/gchatpic_new/1/0-0-{fmd5.hex().upper()}/0?term=2"
+ url=f"https://gchat.qpic.cn/gchatpic_new/1/0-0-{fmd5.hex().upper()}/0?term=2",
)
async def upload_voice(self, file: BinaryIO, gid: int) -> VoiceElement:
fmd5, fl = calc_file_md5_and_length(file)
- ext = encode_d388_req(gid, self._client.uin, fmd5, fl, 3).SerializeToString()
+ ext = encode_d388_req(
+ gid, self._client.uin, fmd5, fl, 3
+ ).SerializeToString()
if not (self._session_key and self._session_sig):
self._decode_bdh_session()
ret = decode_upload_ptt_resp(
@@ -139,7 +138,7 @@ async def upload_voice(self, file: BinaryIO, gid: int) -> VoiceElement:
file,
29, # send to group
self._session_sig,
- ext
+ ext,
)
)
if ret.resultCode:
@@ -151,7 +150,7 @@ async def upload_voice(self, file: BinaryIO, gid: int) -> VoiceElement:
md5=fmd5,
size=fl,
group_file_key=ret.uploadKey,
- url=f"https://grouptalk.c2c.qq.com/?ver=0&rkey={ret.uploadKey.hex()}&filetype=4%voice_codec=0"
+ url=f"https://grouptalk.c2c.qq.com/?ver=0&rkey={ret.uploadKey.hex()}&filetype=4%voice_codec=0",
)
async def bdh_uploader(
@@ -161,8 +160,9 @@ async def bdh_uploader(
file: BinaryIO,
cmd_id: int,
ticket: bytes,
- ext: bytes = None, *,
- block_size=65535
+ ext: bytes = None,
+ *,
+ block_size=65535,
) -> Optional[bytes]:
fmd5, fl = calc_file_md5_and_length(file)
reader, writer = await asyncio.open_connection(*addr)
@@ -173,16 +173,18 @@ async def bdh_uploader(
if not bl:
return ext
head = highway_head.ReqDataHighwayHead(
- basehead=_create_highway_header(cmd, 4096, cmd_id, self._client),
+ basehead=_create_highway_header(
+ cmd, 4096, cmd_id, self._client
+ ),
seghead=highway_head.SegHead(
filesize=fl,
dataoffset=bc * block_size,
datalength=len(bl),
serviceticket=ticket,
md5=md5(bl).digest(),
- fileMd5=fmd5
+ fileMd5=fmd5,
),
- reqExtendinfo=ext
+ reqExtendinfo=ext,
)
writer.write(write_frame(head.SerializeToString(), bl))
diff --git a/cai/client/highway/models.py b/cai/client/highway/models.py
index 4a09e76e..8bd5875b 100644
--- a/cai/client/highway/models.py
+++ b/cai/client/highway/models.py
@@ -1,5 +1,5 @@
from dataclasses import dataclass
-from typing import Optional, List, Tuple
+from typing import List, Tuple, Optional
@dataclass
diff --git a/cai/client/highway/utils.py b/cai/client/highway/utils.py
index 9e3b6bd8..3eb68bfa 100644
--- a/cai/client/highway/utils.py
+++ b/cai/client/highway/utils.py
@@ -1,7 +1,7 @@
import time
import uuid
from hashlib import md5
-from typing import BinaryIO, Tuple, Awaitable, Any
+from typing import Any, Tuple, BinaryIO, Awaitable
def calc_file_md5_and_length(file: BinaryIO, bs=4096) -> Tuple[bytes, int]:
diff --git a/cai/client/message_service/decoders.py b/cai/client/message_service/decoders.py
index cbbc2f25..2e52367f 100644
--- a/cai/client/message_service/decoders.py
+++ b/cai/client/message_service/decoders.py
@@ -15,7 +15,7 @@
from cai.log import logger
from cai.client.event import Event
from cai.pb.msf.msg.comm import Msg
-from cai.pb.im.msg.msg_body import Elem, Ptt
+from cai.pb.im.msg.msg_body import Ptt, Elem
from cai.pb.im.msg.service.comm_elem import (
MsgElemInfo_servtype2,
MsgElemInfo_servtype3,
@@ -28,14 +28,16 @@
FaceElement,
PokeElement,
TextElement,
+ AtAllElement,
GroupMessage,
ImageElement,
ReplyElement,
- AtAllElement,
- RichMsgElement,
+ ShakeElement,
+ VoiceElement,
PrivateMessage,
+ RichMsgElement,
+ FlashImageElement,
SmallEmojiElement,
- FlashImageElement, ShakeElement, VoiceElement
)
@@ -61,15 +63,17 @@ def parse_elements(elems: Sequence[Elem], ptt: Optional[Ptt]) -> List[Element]:
for bl in ptt.down_para.decode().split("&")[1:]:
k, v = bl.split("=", 1)
info[k] = v
- return [VoiceElement(
- ptt.file_name.decode(),
- info["filetype"],
- ptt.src_uin,
- ptt.file_md5,
- ptt.file_size,
- bytes.fromhex(info["rkey"]),
- "https://grouptalk.c2c.qq.com" + ptt.down_para.decode()
- )]
+ return [
+ VoiceElement(
+ ptt.file_name.decode(),
+ info["filetype"],
+ ptt.src_uin,
+ ptt.file_md5,
+ ptt.file_size,
+ bytes.fromhex(info["rkey"]),
+ "https://grouptalk.c2c.qq.com" + ptt.down_para.decode(),
+ )
+ ]
res: List[Element] = []
index = 0
while index < len(elems):
@@ -100,8 +104,10 @@ def parse_elements(elems: Sequence[Elem], ptt: Optional[Ptt]) -> List[Element]:
else:
res.append(
AtElement(
- int.from_bytes(elem.text.attr_6_buf[7:11], "big", signed=False),
- elem.text.str.decode("utf-8")
+ int.from_bytes(
+ elem.text.attr_6_buf[7:11], "big", signed=False
+ ),
+ elem.text.str.decode("utf-8"),
)
)
else:
@@ -114,7 +120,7 @@ def parse_elements(elems: Sequence[Elem], ptt: Optional[Ptt]) -> List[Element]:
return [
RichMsgElement(
content,
- elem.rich_msg.service_id if content[0] == 60 else -1
+ elem.rich_msg.service_id if content[0] == 60 else -1,
)
]
elif elem.HasField("light_app"):
@@ -122,12 +128,7 @@ def parse_elements(elems: Sequence[Elem], ptt: Optional[Ptt]) -> List[Element]:
content = zlib.decompress(elem.light_app.data[1:])
else:
content = elem.light_app.data[1:]
- return [
- RichMsgElement(
- content,
- -2
- )
- ]
+ return [RichMsgElement(content, -2)]
# TextElemDecoder
elif elem.HasField("face"):
res.append(FaceElement(elem.face.index))
@@ -182,12 +183,15 @@ def parse_elements(elems: Sequence[Elem], ptt: Optional[Ptt]) -> List[Element]:
if elem.not_online_image.orig_url:
res.append(
ImageElement(
- filename=elem.not_online_image.file_path.decode("utf-8"),
+ filename=elem.not_online_image.file_path.decode(
+ "utf-8"
+ ),
size=elem.not_online_image.file_len,
width=elem.not_online_image.pic_width,
height=elem.not_online_image.pic_height,
md5=elem.not_online_image.pic_md5,
- url="https://c2cpicdw.qpic.cn" + elem.not_online_image.orig_url,
+ url="https://c2cpicdw.qpic.cn"
+ + elem.not_online_image.orig_url,
)
)
elif (
@@ -196,7 +200,9 @@ def parse_elements(elems: Sequence[Elem], ptt: Optional[Ptt]) -> List[Element]:
):
res.append(
ImageElement(
- filename=elem.not_online_image.file_path.decode("utf-8"),
+ filename=elem.not_online_image.file_path.decode(
+ "utf-8"
+ ),
size=elem.not_online_image.file_len,
width=elem.not_online_image.pic_width,
height=elem.not_online_image.pic_height,
@@ -223,12 +229,14 @@ def parse_elements(elems: Sequence[Elem], ptt: Optional[Ptt]) -> List[Element]:
else poke.vaspoke_id,
poke.vaspoke_name.decode("utf-8"),
poke.poke_strength,
- poke.double_hit
+ poke.double_hit,
)
]
break
elif service_type == 3:
- flash = MsgElemInfo_servtype3.FromString(elem.common_elem.pb_elem)
+ flash = MsgElemInfo_servtype3.FromString(
+ elem.common_elem.pb_elem
+ )
if flash.flash_troop_pic:
res.append(
FlashImageElement(
@@ -239,7 +247,7 @@ def parse_elements(elems: Sequence[Elem], ptt: Optional[Ptt]) -> List[Element]:
md5=flash.flash_troop_pic.md5,
width=flash.flash_troop_pic.width,
height=flash.flash_troop_pic.height,
- url=f"https://gchat.qpic.cn/gchatpic_new/0/0-0-{flash.flash_troop_pic.md5.hex().upper()}/0"
+ url=f"https://gchat.qpic.cn/gchatpic_new/0/0-0-{flash.flash_troop_pic.md5.hex().upper()}/0",
)
)
break
@@ -250,7 +258,11 @@ def parse_elements(elems: Sequence[Elem], ptt: Optional[Ptt]) -> List[Element]:
)
res.append(FaceElement(info.index))
elif elem.HasField("shake_window"):
- res.append(ShakeElement(stype=elem.shake_window.type, uin=elem.shake_window.uin))
+ res.append(
+ ShakeElement(
+ stype=elem.shake_window.type, uin=elem.shake_window.uin
+ )
+ )
index += 1
return res
diff --git a/cai/client/message_service/encoders.py b/cai/client/message_service/encoders.py
index 22f40f97..9c58b97f 100644
--- a/cai/client/message_service/encoders.py
+++ b/cai/client/message_service/encoders.py
@@ -1,22 +1,36 @@
-import random
import zlib
+import random
+from typing import Union, Sequence
-from typing import Sequence, Union
-from cai.pb.im.msg.msg_body import MsgBody, PlainText, RichText, CustomFace, Elem, CommonElem, LightAppElem, RichMsg, \
- ShakeWindow, Ptt
-from cai.pb.msf.msg.svc.svc_pb2 import RoutingHead, Grp
+from cai.pb.msf.msg.svc import PbSendMsgReq
from cai.pb.msf.msg.comm.comm_pb2 import ContentHead
+from cai.pb.msf.msg.svc.svc_pb2 import Grp, RoutingHead
+from cai.pb.im.msg.service.comm_elem import (
+ MsgElemInfo_servtype2,
+ MsgElemInfo_servtype3,
+)
+from cai.pb.im.msg.msg_body import (
+ Ptt,
+ Elem,
+ MsgBody,
+ RichMsg,
+ RichText,
+ PlainText,
+ CommonElem,
+ CustomFace,
+ ShakeWindow,
+ LightAppElem,
+)
from . import models
-from cai.pb.msf.msg.svc import PbSendMsgReq
-from cai.pb.im.msg.service.comm_elem import MsgElemInfo_servtype3, MsgElemInfo_servtype2
-
# todo: https://github.com/mamoe/mirai/blob/7d3971259de59cede94b7a55650c8a6ad4346a59/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/receive/MessageSvc.PbSendMsg.kt#L103
# https://github.com/mamoe/mirai/blob/74fc5a50376ed0330b984af51e0fabc2147afdbb/mirai-core/src/commonMain/kotlin/contact/SendMessageHandler.kt
-def _build_image_elem(e: Union[models.ImageElement, models.FlashImageElement]) -> CustomFace:
+def _build_image_elem(
+ e: Union[models.ImageElement, models.FlashImageElement]
+) -> CustomFace:
return CustomFace(
file_type=66,
useful=1,
@@ -32,7 +46,7 @@ def _build_image_elem(e: Union[models.ImageElement, models.FlashImageElement]) -
md5=e.md5,
show_len=0,
download_len=0
- #flag=b"\x00\x00\x00\x00"
+ # flag=b"\x00\x00\x00\x00"
)
@@ -41,15 +55,15 @@ def build_msg(elements: Sequence[models.Element]) -> MsgBody:
ptt = None
for e in elements: # todo: support more element
if isinstance(e, models.TextElement):
- ret.append(
- Elem(text=PlainText(str=e.content.encode()))
- )
+ ret.append(Elem(text=PlainText(str=e.content.encode())))
elif isinstance(e, models.FlashImageElement):
ret.append(
Elem(
common_elem=CommonElem(
service_type=3,
- pb_elem=MsgElemInfo_servtype3(flash_troop_pic=_build_image_elem(e)).SerializeToString()
+ pb_elem=MsgElemInfo_servtype3(
+ flash_troop_pic=_build_image_elem(e)
+ ).SerializeToString(),
)
)
)
@@ -57,17 +71,15 @@ def build_msg(elements: Sequence[models.Element]) -> MsgBody:
Elem(text=PlainText(str="[闪照]请使用新版手机QQ查看".encode()))
)
elif isinstance(e, models.ImageElement):
- ret.append(
- Elem(
- custom_face=_build_image_elem(e)
- )
- )
+ ret.append(Elem(custom_face=_build_image_elem(e)))
elif isinstance(e, models.AtElement):
ret.append(
Elem(
text=PlainText(
str=e.display.encode(),
- attr_6_buf=b"\x00\x01\x00\x00\x00\x03\x00"+e.target.to_bytes(4, "big", signed=False)+b"\x00\x00"
+ attr_6_buf=b"\x00\x01\x00\x00\x00\x03\x00"
+ + e.target.to_bytes(4, "big", signed=False)
+ + b"\x00\x00",
)
)
)
@@ -76,7 +88,7 @@ def build_msg(elements: Sequence[models.Element]) -> MsgBody:
Elem(
text=PlainText(
str="@全体成员".encode(),
- attr_6_buf=b"\x00\x01\x00\x00\x00\x03\x01\x00\x00\x00\x00\x00\x00"
+ attr_6_buf=b"\x00\x01\x00\x00\x00\x03\x01\x00\x00\x00\x00\x00\x00",
)
)
)
@@ -86,21 +98,17 @@ def build_msg(elements: Sequence[models.Element]) -> MsgBody:
else:
content = b"\x00" + e.content
if e.service_id == -2: # LightApp
- ret_elem = Elem(light_app=LightAppElem(
- data=content
- ))
+ ret_elem = Elem(light_app=LightAppElem(data=content))
else: # Json & Xml
- ret_elem = Elem(rich_msg=RichMsg(
- template_1=content,
- service_id=0 if e.service_id < 0 else e.service_id
- ))
+ ret_elem = Elem(
+ rich_msg=RichMsg(
+ template_1=content,
+ service_id=0 if e.service_id < 0 else e.service_id,
+ )
+ )
ret.append(ret_elem)
elif isinstance(e, models.ShakeElement):
- ret.append(
- Elem(
- shake_window=ShakeWindow(type=e.stype, uin=e.uin)
- )
- )
+ ret.append(Elem(shake_window=ShakeWindow(type=e.stype, uin=e.uin)))
ret.append( # fallback info
Elem(text=PlainText(str="[窗口抖动]请使用新版手机QQ查看".encode()))
)
@@ -115,8 +123,8 @@ def build_msg(elements: Sequence[models.Element]) -> MsgBody:
poke_type=e.id,
poke_strength=e.strength,
double_hit=e.double_hit,
- poke_flag=0
- ).SerializeToString()
+ poke_flag=0,
+ ).SerializeToString(),
)
)
)
@@ -126,12 +134,7 @@ def build_msg(elements: Sequence[models.Element]) -> MsgBody:
else:
raise NotImplementedError(e)
- return MsgBody(
- rich_text=RichText(
- elems=ret,
- ptt=ptt
- )
- )
+ return MsgBody(rich_text=RichText(elems=ret, ptt=ptt))
def encode_send_group_msg_req(
diff --git a/cai/client/message_service/models.py b/cai/client/message_service/models.py
index d45d562f..df9ee92d 100644
--- a/cai/client/message_service/models.py
+++ b/cai/client/message_service/models.py
@@ -14,8 +14,8 @@
from typing import List, Optional
from cai.client.event import Event
-from cai.pb.im.msg.msg_body import Ptt
from cai.pb.msf.msg.comm import Msg
+from cai.pb.im.msg.msg_body import Ptt
@dataclass
@@ -131,7 +131,7 @@ def to_flash(self) -> "FlashImageElement":
height=self.height,
md5=self.md5,
id=self.id,
- url=self.url
+ url=self.url,
)
@@ -168,7 +168,7 @@ def to_ptt(self) -> Ptt:
file_name=self.file_name.encode(),
file_size=self.size,
pb_reserve=self._pb_reserve,
- valid=True
+ valid=True,
)
@@ -205,6 +205,7 @@ class RichMsgElement(Element):
default:
xml
"""
+
content: bytes
service_id: Optional[int] = -2
diff --git a/cai/client/multi_msg/long_msg.py b/cai/client/multi_msg/long_msg.py
index 345b4186..0f635148 100644
--- a/cai/client/multi_msg/long_msg.py
+++ b/cai/client/multi_msg/long_msg.py
@@ -1,29 +1,35 @@
-from cai.client import Command
-from cai.pb.highway.multi_msg.multi_msg_pb2 import MultiReqBody, MultiMsgApplyUpReq, MultiMsgApplyUpRsp, MultiRspBody
-from cai.pb.highway.long_msg.long_msg_pb2 import LongReqBody, LongMsgUpReq
+from dataclasses import dataclass
from typing import TYPE_CHECKING, Tuple
-from dataclasses import dataclass
+from cai.client import Command
+from cai.pb.highway.long_msg.long_msg_pb2 import LongReqBody, LongMsgUpReq
+from cai.pb.highway.multi_msg.multi_msg_pb2 import (
+ MultiReqBody,
+ MultiRspBody,
+ MultiMsgApplyUpReq,
+ MultiMsgApplyUpRsp,
+)
if TYPE_CHECKING:
- from cai.client.packet import IncomingPacket
from cai.client.client import Client
+ from cai.client.packet import IncomingPacket
-def _encode_multi_req_body(group_id: int, data_len: int, data_md5: bytes, bu_type: int) -> MultiReqBody:
+def _encode_multi_req_body(
+ group_id: int, data_len: int, data_md5: bytes, bu_type: int
+) -> MultiReqBody:
return MultiReqBody(
subcmd=1,
termType=5,
platformType=9,
netType=3,
buildVer="8.2.0.1297", # modify
- multimsgApplyupReq=[MultiMsgApplyUpReq(
- dstUin=group_id,
- msgSize=data_len,
- msgMd5=data_md5,
- msgType=3
- )],
- buType=bu_type
+ multimsgApplyupReq=[
+ MultiMsgApplyUpReq(
+ dstUin=group_id, msgSize=data_len, msgMd5=data_md5, msgType=3
+ )
+ ],
+ buType=bu_type,
)
@@ -32,31 +38,38 @@ class MultiApplyResp(Command):
data: MultiMsgApplyUpRsp
-async def build_multi_apply_up_pkg(client: "Client", group_id: int, data_len: int, data_md5: bytes, bu_type: int) -> Tuple[LongReqBody, MultiMsgApplyUpRsp]:
+async def build_multi_apply_up_pkg(
+ client: "Client",
+ group_id: int,
+ data_len: int,
+ data_md5: bytes,
+ bu_type: int,
+) -> Tuple[LongReqBody, MultiMsgApplyUpRsp]:
body: MultiApplyResp = await client.send_unipkg_and_wait(
"MultiMsg.ApplyUp",
_encode_multi_req_body(
group_id, data_len, data_md5, bu_type
- ).SerializeToString()
+ ).SerializeToString(),
)
LongReqBody(
subcmd=1,
termType=5,
platformType=9,
- msgUpReq=[LongMsgUpReq(
- msgType=3,
- dstUin=client.uin,
- msgContent=bytes(), # todo:
- storeType=2,
- msgUkey=body.data.msgUkey
- )]
+ msgUpReq=[
+ LongMsgUpReq(
+ msgType=3,
+ dstUin=client.uin,
+ msgContent=bytes(), # todo:
+ storeType=2,
+ msgUkey=body.data.msgUkey,
+ )
+ ],
)
-
-
-
-async def _handle_multi_resp_body(client: "Client", pkg: "IncomingPacket", _device) -> MultiApplyResp:
+async def _handle_multi_resp_body(
+ client: "Client", pkg: "IncomingPacket", _device
+) -> MultiApplyResp:
mrb = MultiRspBody.FromString(pkg.data).multimsgApplyupRsp
if not mrb:
raise ConnectionError("no MultiMsgApplyUpRsp Found")
@@ -65,5 +78,5 @@ async def _handle_multi_resp_body(client: "Client", pkg: "IncomingPacket", _devi
seq=pkg.seq,
ret_code=pkg.ret_code,
command_name=pkg.command_name,
- data=mrb[0]
+ data=mrb[0],
)
diff --git a/cai/client/online_push/__init__.py b/cai/client/online_push/__init__.py
index b0bf150f..86cc96a0 100644
--- a/cai/client/online_push/__init__.py
+++ b/cai/client/online_push/__init__.py
@@ -9,20 +9,20 @@
https://github.com/cscs181/CAI/blob/master/LICENSE
"""
-from typing import TYPE_CHECKING, List, Optional, Tuple
+from typing import TYPE_CHECKING, List, Tuple, Optional
from jce import types
from cai.log import logger
from cai.utils.binary import Packet
-from cai.settings.device import DeviceInfo as _DeviceInfo_t
from cai.utils.jce import RequestPacketVersion3
from cai.client.message_service import MESSAGE_DECODERS
from cai.client.packet import UniPacket, IncomingPacket
+from cai.settings.device import DeviceInfo as _DeviceInfo_t
-from .jce import DelMsgInfo, SvcRespPushMsg, DeviceInfo
-from .command import PushMsg, PushMsgError, PushMsgCommand
from ...settings.protocol import ApkInfo
+from .jce import DelMsgInfo, DeviceInfo, SvcRespPushMsg
+from .command import PushMsg, PushMsgError, PushMsgCommand
if TYPE_CHECKING:
from cai.client import Client
@@ -136,7 +136,9 @@ async def handle_c2c_sync(
async def handle_push_msg(
- client: "Client", packet: IncomingPacket, device: Tuple[_DeviceInfo_t, ApkInfo]
+ client: "Client",
+ packet: IncomingPacket,
+ device: Tuple[_DeviceInfo_t, ApkInfo],
) -> PushMsgCommand:
"""Handle Push Message Command.
diff --git a/cai/client/sso_server/__init__.py b/cai/client/sso_server/__init__.py
index 1f891baa..b2b102e5 100644
--- a/cai/client/sso_server/__init__.py
+++ b/cai/client/sso_server/__init__.py
@@ -151,7 +151,7 @@ async def quality_test(
async def get_sso_server(
cache: bool = True,
cache_server_list: bool = True,
- exclude: Optional[Container[str]] = None
+ exclude: Optional[Container[str]] = None,
) -> SsoServer:
"""Get the best sso server
diff --git a/cai/client/status_service/__init__.py b/cai/client/status_service/__init__.py
index 146956f2..40889b9b 100644
--- a/cai/client/status_service/__init__.py
+++ b/cai/client/status_service/__init__.py
@@ -11,14 +11,14 @@
import time
from enum import Enum, IntEnum
-from typing import TYPE_CHECKING, Union, Optional, Tuple
+from typing import TYPE_CHECKING, Tuple, Union, Optional
from jce import types
from cai.log import logger
from cai.utils.binary import Packet
-from cai.settings.device import DeviceInfo
from cai.settings.protocol import ApkInfo
+from cai.settings.device import DeviceInfo
from cai.utils.jce import RequestPacketVersion3
from cai.pb.im.oidb.cmd0x769 import ReqBody, ConfigSeq
from cai.client.packet import (
@@ -187,7 +187,7 @@ def encode_register(
status: Union[int, OnlineStatus],
reg_push_reason: Union[str, RegPushReason],
sub_app_id: int,
- device: DeviceInfo
+ device: DeviceInfo,
) -> Packet:
"""Build status service register packet.
@@ -324,7 +324,7 @@ def encode_force_offline_response(
req_uin: int,
seq_no: int,
sub_app_id: int,
- device: DeviceInfo
+ device: DeviceInfo,
) -> Packet:
"""Build status service msf offline response packet.
@@ -405,7 +405,7 @@ async def handle_request_offline(
request.request.uin,
request.request.seq_no,
device[1].sub_app_id,
- device[0]
+ device[0],
)
await client.send(seq, "StatSvc.RspMSFForceOffline", resp_packet)
client._status = OnlineStatus.Offline
diff --git a/cai/client/wtlogin/__init__.py b/cai/client/wtlogin/__init__.py
index e0975368..e7d87742 100644
--- a/cai/client/wtlogin/__init__.py
+++ b/cai/client/wtlogin/__init__.py
@@ -8,26 +8,28 @@
.. _LICENSE:
https://github.com/cscs181/CAI/blob/master/LICENSE
"""
-import ipaddress
-import secrets
+import time
import string
import struct
-import time
+import secrets
+import ipaddress
from hashlib import md5
from typing import TYPE_CHECKING, Tuple
from rtea import qqtea_decrypt
+from cai.utils.binary import Packet
+from cai.settings.protocol import ApkInfo
+from cai.settings.device import DeviceInfo
+from cai.utils.crypto import ECDH, EncryptSession
from cai.client.packet import (
UniPacket,
CSsoBodyPacket,
CSsoDataPacket,
IncomingPacket,
)
-from cai.settings.device import DeviceInfo
-from cai.settings.protocol import ApkInfo
-from cai.utils.binary import Packet
-from cai.utils.crypto import ECDH, EncryptSession
+
+from .tlv import TlvEncoder
from .oicq import (
NeedCaptcha,
OICQRequest,
@@ -39,7 +41,6 @@
TooManySMSRequest,
UnknownLoginStatus,
)
-from .tlv import TlvEncoder
if TYPE_CHECKING:
from cai.client import Client
@@ -56,7 +57,7 @@ def encode_login_request2_captcha(
sign: bytes,
t104: bytes,
imei: str,
- apk_info: ApkInfo
+ apk_info: ApkInfo,
) -> Packet:
"""Build submit captcha request packet.
@@ -130,7 +131,7 @@ def encode_login_request2_slider(
ticket: str,
t104: bytes,
imei: str,
- apk_info: ApkInfo
+ apk_info: ApkInfo,
) -> Packet:
"""Build slider ticket request packet.
@@ -205,7 +206,7 @@ def encode_login_request7(
t174: bytes,
g: bytes,
imei: str,
- apk_info: ApkInfo
+ apk_info: ApkInfo,
) -> Packet:
"""Build sms submit packet.
@@ -288,7 +289,7 @@ def encode_login_request8(
t104: bytes,
t174: bytes,
imei: str,
- apk_info: ApkInfo
+ apk_info: ApkInfo,
) -> Packet:
"""Build sms request packet.
@@ -368,7 +369,7 @@ def encode_login_request9(
uin: int,
password_md5: bytes,
device: DeviceInfo,
- apk_info: ApkInfo
+ apk_info: ApkInfo,
) -> Packet:
"""Build main login request packet.
@@ -538,7 +539,7 @@ def encode_login_request20(
t104: bytes,
g: bytes,
imei: str,
- apk_info: ApkInfo
+ apk_info: ApkInfo,
) -> Packet:
"""Build device lock login request packet.
@@ -620,7 +621,7 @@ def encode_exchange_emp_15(
wt_session_ticket: bytes,
wt_session_ticket_key: bytes,
device: DeviceInfo,
- apk_info: ApkInfo
+ apk_info: ApkInfo,
) -> Packet:
"""Build exchange emp request packet.
@@ -777,7 +778,7 @@ async def handle_oicq_response(
packet.ret_code,
packet.command_name,
packet.data,
- device.tgtgt
+ device.tgtgt,
)
if not isinstance(response, UnknownLoginStatus):
return response
diff --git a/cai/client/wtlogin/oicq.py b/cai/client/wtlogin/oicq.py
index 6b7afda0..bbf41eb3 100644
--- a/cai/client/wtlogin/oicq.py
+++ b/cai/client/wtlogin/oicq.py
@@ -58,7 +58,13 @@ def build_encoded(
class OICQResponse(Command):
@classmethod
def decode_response(
- cls, uin: int, seq: int, ret_code: int, command_name: str, data: bytes, tgtgt: bytes
+ cls,
+ uin: int,
+ seq: int,
+ ret_code: int,
+ command_name: str,
+ data: bytes,
+ tgtgt: bytes,
) -> "OICQResponse":
"""Decode login response and wrap main info of the response.
diff --git a/cai/client/wtlogin/tlv.py b/cai/client/wtlogin/tlv.py
index 03f9b437..4cbab73e 100644
--- a/cai/client/wtlogin/tlv.py
+++ b/cai/client/wtlogin/tlv.py
@@ -607,7 +607,7 @@ def decode(
data: Union[bytes, bytearray],
tgtgt: bytes = None,
offset: int = 0,
- tag_size: int = 2
+ tag_size: int = 2,
) -> Dict[int, Any]:
if not isinstance(data, Packet):
data = Packet(data)
diff --git a/cai/connection/__init__.py b/cai/connection/__init__.py
index dcc8b7b3..51fd42ab 100644
--- a/cai/connection/__init__.py
+++ b/cai/connection/__init__.py
@@ -59,7 +59,7 @@ def reader(self) -> asyncio.StreamReader:
@property
def closed(self) -> bool:
- #return self._writer is None
+ # return self._writer is None
return self._closed.is_set()
@property
diff --git a/cai/settings/protocol.py b/cai/settings/protocol.py
index 035652fd..b7eaf766 100644
--- a/cai/settings/protocol.py
+++ b/cai/settings/protocol.py
@@ -165,7 +165,12 @@ class ApkInfo(NamedTuple):
def get_apk_info(_type: str = "IPAD") -> ApkInfo:
- info = {"IPAD": IPAD, "ANDROID_PHONE": ANDROID_PHONE, "ANDROID_WATCH": ANDROID_WATCH, "MACOS": MACOS}
+ info = {
+ "IPAD": IPAD,
+ "ANDROID_PHONE": ANDROID_PHONE,
+ "ANDROID_WATCH": ANDROID_WATCH,
+ "MACOS": MACOS,
+ }
if _type not in info:
raise ValueError(f"Invalid Protocol Type: {_type}")
return info[_type]
diff --git a/cai/utils/coroutine.py b/cai/utils/coroutine.py
index cd602e31..3991be5a 100644
--- a/cai/utils/coroutine.py
+++ b/cai/utils/coroutine.py
@@ -42,7 +42,7 @@ def close(self):
return self._coro.close()
def __next__(self):
- return self.send(None)
+ raise StopIteration
def __iter__(self):
return self._coro.__await__()
diff --git a/examples/login.py b/examples/login.py
index de030378..fd869e3a 100644
--- a/examples/login.py
+++ b/examples/login.py
@@ -6,21 +6,21 @@
.. _LICENSE:
https://github.com/cscs181/CAI/blob/master/LICENSE
"""
-import functools
-import logging
import os
-import asyncio
import sys
+import asyncio
+import logging
+import functools
import traceback
from io import BytesIO
from PIL import Image
from cai.api import Client, make_client
-from cai.client import OnlineStatus, PrivateMessage, GroupMessage, Event
-from cai.client.message_service.models import TextElement
from cai.settings.device import get_device
from cai.settings.protocol import get_apk_info
+from cai.client.message_service.models import TextElement
+from cai.client import Event, GroupMessage, OnlineStatus, PrivateMessage
from cai.exceptions import (
LoginException,
ApiResponseError,
@@ -38,7 +38,9 @@ async def run(closed: asyncio.Event):
assert password and account, ValueError("account or password not set")
account = int(account)
- ci = Client(make_client(account, password, get_apk_info(), device=get_device()))
+ ci = Client(
+ make_client(account, password, get_apk_info(), device=get_device())
+ )
try:
await ci.login()
@@ -51,7 +53,7 @@ async def run(closed: asyncio.Event):
if status == OnlineStatus.Offline:
continue
print(status, "Changed")
- #await ci.set_status(status, 67, True)
+ # await ci.set_status(status, 67, True)
await asyncio.sleep(360)
finally:
closed.set()
@@ -61,29 +63,39 @@ async def listen_message(client: Client, _, event: Event):
if isinstance(event, PrivateMessage):
print(f"{event.from_nick}(f{event.from_uin}) -> {event.message}")
elif isinstance(event, GroupMessage):
- print(f"{event.group_name}({event.group_id}:{event.from_uin}) -> {event.message}")
+ print(
+ f"{event.group_name}({event.group_id}:{event.from_uin}) -> {event.message}"
+ )
if event.message and hasattr(event.message[0], "content"):
if event.message[0].content == "0x114514":
await client.send_group_msg(
- event.group_id, [
+ event.group_id,
+ [
TextElement("Hello\n"),
TextElement("Multiple element "),
- TextElement("Supported.")
- ]
+ TextElement("Supported."),
+ ],
)
elif event.message[0].content == "1919":
await client.send_group_msg(
event.group_id,
[
- await client.upload_image(event.group_id, open("test.png", "rb")),
- TextElement("1234")
- ]
+ await client.upload_image(
+ event.group_id, open("test.png", "rb")
+ ),
+ TextElement("1234"),
+ ],
)
async def handle_failure(client: Client, exception: Exception):
if isinstance(exception, LoginSliderNeeded):
- print("Verify url:", exception.verify_url.replace("ssl.captcha.qq.com", "txhelper.glitch.me"))
+ print(
+ "Verify url:",
+ exception.verify_url.replace(
+ "ssl.captcha.qq.com", "txhelper.glitch.me"
+ ),
+ )
ticket = input("Please enter the ticket: ").strip()
try:
await client.submit_slider_ticket(ticket)
@@ -158,7 +170,7 @@ async def handle_failure(client: Client, exception: Exception):
logging.basicConfig(
level=logging.DEBUG,
handlers=[logging.StreamHandler(sys.stdout)],
- format="%(asctime)s %(name)s[%(levelname)s]: %(message)s"
+ format="%(asctime)s %(name)s[%(levelname)s]: %(message)s",
)
close = asyncio.Event()
From c61a84a82340c10238d19723f7fdaa990e87a273 Mon Sep 17 00:00:00 2001
From: a1025
Date: Thu, 7 Apr 2022 15:14:47 +0800
Subject: [PATCH 056/113] delete: unused file
---
cai/api/flow.py | 61 -------------------------------------------------
1 file changed, 61 deletions(-)
delete mode 100644 cai/api/flow.py
diff --git a/cai/api/flow.py b/cai/api/flow.py
deleted file mode 100644
index f9f6f0cb..00000000
--- a/cai/api/flow.py
+++ /dev/null
@@ -1,61 +0,0 @@
-"""Application Flow APIs.
-
-:Copyright: Copyright (C) 2021-2021 cscs181
-:License: AGPL-3.0 or later. See `LICENSE`_ for detail.
-
-.. _LICENSE:
- https://github.com/cscs181/CAI/blob/master/LICENSE
-"""
-
-from typing import Callable, Optional, Awaitable
-
-from cai.log import logger
-from cai.client import HANDLERS, Event, Client, Command, IncomingPacket
-
-from .client import get_client
-
-
-def add_event_listener(
- listener: Callable[[Client, Event], Awaitable[None]],
- uin: Optional[int] = None,
-):
- """Add event listener.
-
- If uin is ``None``, listener will receive events from all clients.
-
- Args:
- listener (Callable[[Client, Event], Awaitable[None]]): Event listener.
- uin (Optional[int], optional): Account of the client want to listen.
- Defaults to None.
- """
- if uin:
- client = get_client(uin)
- client.add_event_listener(listener)
- else:
- Client.LISTENERS.add(listener)
-
-
-def register_packet_handler(
- cmd: str,
- packet_handler: Callable[[Client, IncomingPacket], Awaitable[Command]],
-) -> None:
- """Register custom packet handler.
-
- Note:
- This function is a low-level api to mock default behavior.
- Be aware of what you are doing!
-
- Args:
- cmd (str): Command name of the packet.
- packet_handler (Callable[[Client, IncomingPacket], Awaitable[Command]]):
- Asynchronous packet handler. A :obj:`~cai.client.command.Command`
- object should be returned.
- """
- if cmd in HANDLERS:
- logger.warning(
- f"You are overwriting an existing handler for command {cmd}!"
- )
- HANDLERS[cmd] = packet_handler
-
-
-__all__ = ["add_event_listener", "register_packet_handler"]
From 23f8692921a351aa111ed3af6b1e7e2e5de85630 Mon Sep 17 00:00:00 2001
From: a1025
Date: Thu, 7 Apr 2022 15:16:07 +0800
Subject: [PATCH 057/113] Revert "delete: unused file"
This reverts commit c61a84a82340c10238d19723f7fdaa990e87a273.
---
cai/api/flow.py | 61 +++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 61 insertions(+)
create mode 100644 cai/api/flow.py
diff --git a/cai/api/flow.py b/cai/api/flow.py
new file mode 100644
index 00000000..f9f6f0cb
--- /dev/null
+++ b/cai/api/flow.py
@@ -0,0 +1,61 @@
+"""Application Flow APIs.
+
+:Copyright: Copyright (C) 2021-2021 cscs181
+:License: AGPL-3.0 or later. See `LICENSE`_ for detail.
+
+.. _LICENSE:
+ https://github.com/cscs181/CAI/blob/master/LICENSE
+"""
+
+from typing import Callable, Optional, Awaitable
+
+from cai.log import logger
+from cai.client import HANDLERS, Event, Client, Command, IncomingPacket
+
+from .client import get_client
+
+
+def add_event_listener(
+ listener: Callable[[Client, Event], Awaitable[None]],
+ uin: Optional[int] = None,
+):
+ """Add event listener.
+
+ If uin is ``None``, listener will receive events from all clients.
+
+ Args:
+ listener (Callable[[Client, Event], Awaitable[None]]): Event listener.
+ uin (Optional[int], optional): Account of the client want to listen.
+ Defaults to None.
+ """
+ if uin:
+ client = get_client(uin)
+ client.add_event_listener(listener)
+ else:
+ Client.LISTENERS.add(listener)
+
+
+def register_packet_handler(
+ cmd: str,
+ packet_handler: Callable[[Client, IncomingPacket], Awaitable[Command]],
+) -> None:
+ """Register custom packet handler.
+
+ Note:
+ This function is a low-level api to mock default behavior.
+ Be aware of what you are doing!
+
+ Args:
+ cmd (str): Command name of the packet.
+ packet_handler (Callable[[Client, IncomingPacket], Awaitable[Command]]):
+ Asynchronous packet handler. A :obj:`~cai.client.command.Command`
+ object should be returned.
+ """
+ if cmd in HANDLERS:
+ logger.warning(
+ f"You are overwriting an existing handler for command {cmd}!"
+ )
+ HANDLERS[cmd] = packet_handler
+
+
+__all__ = ["add_event_listener", "register_packet_handler"]
From 205a572839f3e93f8d7b8cb811709be2b790d29c Mon Sep 17 00:00:00 2001
From: a1025
Date: Thu, 7 Apr 2022 15:22:01 +0800
Subject: [PATCH 058/113] fix: event register
---
cai/api/client.py | 3 +-
cai/api/flow.py | 86 +++++++++++++++++++++--------------------------
2 files changed, 40 insertions(+), 49 deletions(-)
diff --git a/cai/api/client.py b/cai/api/client.py
index e03e6570..6f280059 100644
--- a/cai/api/client.py
+++ b/cai/api/client.py
@@ -24,6 +24,7 @@
VoiceElement,
)
+from .flow import Events as _Events
from .group import Group as _Group
from .login import Login as _Login
from .friend import Friend as _Friend
@@ -51,7 +52,7 @@ def make_client(
return client_t(uin, passwd, device, apk_info)
-class Client(_Login, _Friend, _Group):
+class Client(_Login, _Friend, _Group, _Events):
def __init__(self, client: client_t):
self.client = client
self._highway_session = HighWaySession(client, logger=log.highway)
diff --git a/cai/api/flow.py b/cai/api/flow.py
index f9f6f0cb..6c2faba1 100644
--- a/cai/api/flow.py
+++ b/cai/api/flow.py
@@ -7,55 +7,45 @@
https://github.com/cscs181/CAI/blob/master/LICENSE
"""
-from typing import Callable, Optional, Awaitable
+from typing import Callable, Awaitable
from cai.log import logger
from cai.client import HANDLERS, Event, Client, Command, IncomingPacket
-from .client import get_client
-
-
-def add_event_listener(
- listener: Callable[[Client, Event], Awaitable[None]],
- uin: Optional[int] = None,
-):
- """Add event listener.
-
- If uin is ``None``, listener will receive events from all clients.
-
- Args:
- listener (Callable[[Client, Event], Awaitable[None]]): Event listener.
- uin (Optional[int], optional): Account of the client want to listen.
- Defaults to None.
- """
- if uin:
- client = get_client(uin)
- client.add_event_listener(listener)
- else:
- Client.LISTENERS.add(listener)
-
-
-def register_packet_handler(
- cmd: str,
- packet_handler: Callable[[Client, IncomingPacket], Awaitable[Command]],
-) -> None:
- """Register custom packet handler.
-
- Note:
- This function is a low-level api to mock default behavior.
- Be aware of what you are doing!
-
- Args:
- cmd (str): Command name of the packet.
- packet_handler (Callable[[Client, IncomingPacket], Awaitable[Command]]):
- Asynchronous packet handler. A :obj:`~cai.client.command.Command`
- object should be returned.
- """
- if cmd in HANDLERS:
- logger.warning(
- f"You are overwriting an existing handler for command {cmd}!"
- )
- HANDLERS[cmd] = packet_handler
-
-
-__all__ = ["add_event_listener", "register_packet_handler"]
+from .base import BaseAPI
+
+
+class Events(BaseAPI):
+ def add_event_listener(
+ self,
+ listener: Callable[[Client, Event], Awaitable[None]]
+ ):
+ """Add event listener.
+
+ Args:
+ listener (Callable[[Client, Event], Awaitable[None]]): Event listener.
+ """
+ self.client.add_event_listener(listener)
+
+ def register_packet_handler(
+ self,
+ cmd: str,
+ packet_handler: Callable[[Client, IncomingPacket], Awaitable[Command]],
+ ) -> None:
+ """Register custom packet handler.
+
+ Note:
+ This function is a low-level api to mock default behavior.
+ Be aware of what you are doing!
+
+ Args:
+ cmd (str): Command name of the packet.
+ packet_handler (Callable[[Client, IncomingPacket], Awaitable[Command]]):
+ Asynchronous packet handler. A :obj:`~cai.client.command.Command`
+ object should be returned.
+ """
+ if cmd in HANDLERS:
+ logger.warning(
+ f"You are overwriting an existing handler for command {cmd}!"
+ )
+ HANDLERS[cmd] = packet_handler
From 7e225de8a76d01809bda3362c63e71bed8f3172e Mon Sep 17 00:00:00 2001
From: a1025
Date: Thu, 7 Apr 2022 15:44:23 +0800
Subject: [PATCH 059/113] fix: unsync changes
---
cai/client/client.py | 26 +++++++++++++-------------
1 file changed, 13 insertions(+), 13 deletions(-)
diff --git a/cai/client/client.py b/cai/client/client.py
index 5ad34d5e..150b8ac2 100644
--- a/cai/client/client.py
+++ b/cai/client/client.py
@@ -389,7 +389,7 @@ async def close(self) -> None:
self._receive_store.cancel_all()
# disconnect server
await self.disconnect()
- self.closed.set()
+ self._closed.set()
@property
def seq(self) -> int:
@@ -469,7 +469,7 @@ async def _handle_incoming_packet(self, in_packet: IncomingPacket) -> None:
try:
handler = HANDLERS.get(in_packet.command_name, _packet_to_command)
packet = await handler(
- self, in_packet, (self.device_info, self.apk_info)
+ self, in_packet, (self.device, self.apk_info)
)
self._receive_store.store_result(packet.seq, packet)
except Exception as e:
@@ -596,7 +596,7 @@ async def _handle_login_response(
self.uin,
self._t104,
self._siginfo.g,
- self.device_info.imei,
+ self.device.imei,
self.apk_info,
)
response = await self.send_and_wait(
@@ -668,7 +668,7 @@ async def login(self) -> LoginSuccess:
self._ksid,
self.uin,
self._password_md5,
- self.device_info,
+ self.device,
self.apk_info,
)
response = await self.send_and_wait(seq, "wtlogin.login", packet)
@@ -704,7 +704,7 @@ async def submit_captcha(
captcha,
captcha_sign,
self._t104,
- self.device_info.imei,
+ self.device.imei,
self.apk_info,
)
response = await self.send_and_wait(seq, "wtlogin.login", packet)
@@ -737,7 +737,7 @@ async def submit_slider_ticket(self, ticket: str) -> LoginSuccess:
self.uin,
ticket,
self._t104,
- self.device_info.imei,
+ self.device.imei,
self.apk_info,
)
response = await self.send_and_wait(seq, "wtlogin.login", packet)
@@ -770,7 +770,7 @@ async def request_sms(self) -> bool:
self.uin,
self._t104,
self._t174,
- self.device_info.imei,
+ self.device.imei,
self.apk_info,
)
response = await self.send_and_wait(seq, "wtlogin.login", packet)
@@ -812,7 +812,7 @@ async def submit_sms(self, sms_code: str) -> LoginSuccess:
self._t104,
self._t174,
self._siginfo.g,
- self.device_info.imei,
+ self.device.imei,
self.apk_info,
)
response = await self.send_and_wait(seq, "wtlogin.login", packet)
@@ -852,7 +852,7 @@ async def _handle_refresh_response(
self.uin,
self._t104,
self._siginfo.g,
- self.device_info.imei,
+ self.device.imei,
self.apk_info,
)
response = await self.send_and_wait(
@@ -900,7 +900,7 @@ async def refresh_siginfo(self) -> LoginSuccess:
self._siginfo.rand_seed,
self._siginfo.wt_session_ticket,
self._siginfo.wt_session_ticket_key,
- self.device_info,
+ self.device,
self.apk_info,
)
response = await self.send_and_wait(seq, "wtlogin.exchange_emp", packet)
@@ -941,7 +941,7 @@ async def register(
status,
register_reason,
self.apk_info.sub_app_id,
- self.device_info,
+ self.device,
)
response = await self.send_and_wait(seq, "StatSvc.register", packet)
@@ -991,7 +991,7 @@ async def set_status(
self._session_id,
self.uin,
self._siginfo.d2key,
- self.device_info,
+ self.device,
status,
battery_status,
is_power_connected,
@@ -1037,7 +1037,7 @@ async def heartbeat(self) -> None:
packet = encode_heartbeat(
seq,
self._session_id,
- self.device_info.imei,
+ self.device.imei,
self._ksid,
self.uin,
self.apk_info.sub_app_id,
From fdef3f9d9e4794500e5573afeb6c1849765dd1d1 Mon Sep 17 00:00:00 2001
From: a1025
Date: Thu, 7 Apr 2022 15:54:50 +0800
Subject: [PATCH 060/113] fix: some bugs
---
cai/api/flow.py | 9 ++++++---
cai/client/client.py | 3 +++
2 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/cai/api/flow.py b/cai/api/flow.py
index 6c2faba1..27a3cc9f 100644
--- a/cai/api/flow.py
+++ b/cai/api/flow.py
@@ -7,25 +7,28 @@
https://github.com/cscs181/CAI/blob/master/LICENSE
"""
-from typing import Callable, Awaitable
+from typing import Callable, Awaitable, TYPE_CHECKING
from cai.log import logger
from cai.client import HANDLERS, Event, Client, Command, IncomingPacket
from .base import BaseAPI
+if TYPE_CHECKING:
+ from .client import Client as Client_T
+
class Events(BaseAPI):
def add_event_listener(
self,
- listener: Callable[[Client, Event], Awaitable[None]]
+ listener: Callable[["Client_T", Event], Awaitable[None]]
):
"""Add event listener.
Args:
listener (Callable[[Client, Event], Awaitable[None]]): Event listener.
"""
- self.client.add_event_listener(listener)
+ self.client.add_event_listener(lambda _, e: listener(self, e)) # type: ignore
def register_packet_handler(
self,
diff --git a/cai/client/client.py b/cai/client/client.py
index 150b8ac2..8441144e 100644
--- a/cai/client/client.py
+++ b/cai/client/client.py
@@ -295,6 +295,9 @@ def connected(self) -> bool:
def closed(self) -> bool:
return self._closed.is_set()
+ async def wait_closed(self):
+ await self._closed.wait()
+
async def connect(self, server: Optional[SsoServer] = None) -> None:
"""Connect to the server.
From 3d1f2634c0b8f7091092fe906b465c6e898498b5 Mon Sep 17 00:00:00 2001
From: a1025
Date: Thu, 7 Apr 2022 16:44:08 +0800
Subject: [PATCH 061/113] add: more poke type
---
cai/client/message_service/encoders.py | 4 ++--
cai/client/message_service/models.py | 13 +++++++++++--
2 files changed, 13 insertions(+), 4 deletions(-)
diff --git a/cai/client/message_service/encoders.py b/cai/client/message_service/encoders.py
index 9c58b97f..98b454cd 100644
--- a/cai/client/message_service/encoders.py
+++ b/cai/client/message_service/encoders.py
@@ -10,7 +10,6 @@
MsgElemInfo_servtype3,
)
from cai.pb.im.msg.msg_body import (
- Ptt,
Elem,
MsgBody,
RichMsg,
@@ -117,10 +116,11 @@ def build_msg(elements: Sequence[models.Element]) -> MsgBody:
Elem(
common_elem=CommonElem(
service_type=2,
+ business_type=e.id,
pb_elem=MsgElemInfo_servtype2(
vaspoke_id=0xFFFFFFFF,
vaspoke_name=e.name.encode(),
- poke_type=e.id,
+ poke_type=0,
poke_strength=e.strength,
double_hit=e.double_hit,
poke_flag=0,
diff --git a/cai/client/message_service/models.py b/cai/client/message_service/models.py
index df9ee92d..4fbe7cd4 100644
--- a/cai/client/message_service/models.py
+++ b/cai/client/message_service/models.py
@@ -11,7 +11,8 @@
import abc
from dataclasses import dataclass
-from typing import List, Optional
+from enum import IntEnum
+from typing import List, Optional, Union
from cai.client.event import Event
from cai.pb.msf.msg.comm import Msg
@@ -174,11 +175,19 @@ def to_ptt(self) -> Ptt:
@dataclass
class PokeElement(Element):
- id: int = 0
+ id: Union[int, "PokeType"] = 0
name: str = ""
strength: int = 0
double_hit: int = 0
+ class PokeType(IntEnum):
+ ChuoYiChuo = 0
+ BiXin = 2
+ DianZan = 3
+ XinSui = 4
+ SixSixSix = 5
+ FangDaZhao = 6
+
@property
def type(self) -> str:
return "poke"
From 9f25e6b0734992ec65172847503aec8cfefd6287 Mon Sep 17 00:00:00 2001
From: a1025
Date: Thu, 7 Apr 2022 16:55:46 +0800
Subject: [PATCH 062/113] change: PokeType
---
cai/client/message_service/models.py | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/cai/client/message_service/models.py b/cai/client/message_service/models.py
index 4fbe7cd4..490b1a9d 100644
--- a/cai/client/message_service/models.py
+++ b/cai/client/message_service/models.py
@@ -10,8 +10,8 @@
"""
import abc
-from dataclasses import dataclass
from enum import IntEnum
+from dataclasses import dataclass
from typing import List, Optional, Union
from cai.client.event import Event
@@ -19,6 +19,15 @@
from cai.pb.im.msg.msg_body import Ptt
+class PokeType(IntEnum):
+ ChuoYiChuo = 0
+ BiXin = 2
+ DianZan = 3
+ XinSui = 4
+ SixSixSix = 5
+ FangDaZhao = 6
+
+
@dataclass
class PrivateMessage(Event):
_msg: Msg
@@ -175,19 +184,11 @@ def to_ptt(self) -> Ptt:
@dataclass
class PokeElement(Element):
- id: Union[int, "PokeType"] = 0
+ id: Union[int, PokeType] = 0
name: str = ""
strength: int = 0
double_hit: int = 0
- class PokeType(IntEnum):
- ChuoYiChuo = 0
- BiXin = 2
- DianZan = 3
- XinSui = 4
- SixSixSix = 5
- FangDaZhao = 6
-
@property
def type(self) -> str:
return "poke"
From e0487e3c74a4e468415fed9ffc8694d7b05b7617 Mon Sep 17 00:00:00 2001
From: a1025
Date: Thu, 7 Apr 2022 22:17:37 +0800
Subject: [PATCH 063/113] add: parse group mute/unmute,recall,nudge event
---
cai/client/__init__.py | 2 +-
cai/client/client.py | 7 +-
cai/client/events/__init__.py | 12 +++
cai/client/{event.py => events/base.py} | 0
cai/client/events/common.py | 16 ++++
cai/client/events/friend.py | 1 +
cai/client/events/group.py | 37 ++++++++++
cai/client/message_service/decoders.py | 2 +-
cai/client/message_service/models.py | 2 +-
cai/client/online_push/__init__.py | 85 +++++++++++++++++++++-
cai/pb/im/oidb/group0x857/__init__.py | 0
cai/pb/im/oidb/group0x857/group0x857.proto | 83 +++++++++++++++++++++
12 files changed, 238 insertions(+), 9 deletions(-)
create mode 100644 cai/client/events/__init__.py
rename cai/client/{event.py => events/base.py} (100%)
create mode 100644 cai/client/events/common.py
create mode 100644 cai/client/events/friend.py
create mode 100644 cai/client/events/group.py
create mode 100644 cai/pb/im/oidb/group0x857/__init__.py
create mode 100644 cai/pb/im/oidb/group0x857/group0x857.proto
diff --git a/cai/client/__init__.py b/cai/client/__init__.py
index 207f79e4..dbf1d67b 100644
--- a/cai/client/__init__.py
+++ b/cai/client/__init__.py
@@ -9,7 +9,7 @@
https://github.com/cscs181/CAI/blob/master/LICENSE
"""
-from .event import Event
+from cai.client.events.base import Event
from .command import Command
from .packet import IncomingPacket
from .client import HANDLERS, Client
diff --git a/cai/client/client.py b/cai/client/client.py
index 8441144e..25b0e292 100644
--- a/cai/client/client.py
+++ b/cai/client/client.py
@@ -46,12 +46,12 @@
GroupMemberListException,
)
-from .event import Event
+from cai.client.events.base import Event
from .packet import UniPacket, IncomingPacket
from .command import Command, _packet_to_command
from .sso_server import SsoServer, get_sso_server
from .multi_msg.long_msg import _handle_multi_resp_body
-from .online_push import handle_c2c_sync, handle_push_msg
+from .online_push import handle_c2c_sync, handle_push_msg, handle_req_push
from .heartbeat import Heartbeat, encode_heartbeat, handle_heartbeat
from .models import Group, Friend, SigInfo, FriendGroup, GroupMember
from .config_push import FileServerPushList, handle_config_push_request
@@ -136,6 +136,7 @@
# "OnlinePush.PbPushBindUinGroupMsg": handle_push_msg, # sub account
# new
"MultiMsg.ApplyUp": _handle_multi_resp_body,
+ "OnlinePush.ReqPush": handle_req_push
}
@@ -524,6 +525,8 @@ async def _run_listener(self, listener: LT, event: Event) -> None:
log.logger.exception(e)
def dispatch_event(self, event: Event) -> None:
+ if event.type not in ("group_message", "private_message"): # log filter
+ log.logger.debug(f"Event {event.type} was triggered")
for listener in self.listeners:
asyncio.create_task(self._run_listener(listener, event))
diff --git a/cai/client/events/__init__.py b/cai/client/events/__init__.py
new file mode 100644
index 00000000..51d507c5
--- /dev/null
+++ b/cai/client/events/__init__.py
@@ -0,0 +1,12 @@
+from .common import NudgeEvent
+from .group import GroupEvent, MemberMutedEvent, MemberUnMutedEvent, MemberRecallMessageEvent
+# from .friend import *
+
+
+__all__ = [
+ "GroupEvent",
+ "MemberMutedEvent",
+ "MemberUnMutedEvent",
+ "MemberRecallMessageEvent",
+ "NudgeEvent"
+]
diff --git a/cai/client/event.py b/cai/client/events/base.py
similarity index 100%
rename from cai/client/event.py
rename to cai/client/events/base.py
diff --git a/cai/client/events/common.py b/cai/client/events/common.py
new file mode 100644
index 00000000..158847ac
--- /dev/null
+++ b/cai/client/events/common.py
@@ -0,0 +1,16 @@
+from typing import Optional
+from dataclasses import dataclass
+from .base import Event
+
+
+@dataclass
+class NudgeEvent(Event):
+ sender: int
+ target: int
+ action: str
+ suffix: Optional[str]
+ group: Optional[int] = None
+
+ @property
+ def type(self) -> str:
+ return "NudgeEvent"
diff --git a/cai/client/events/friend.py b/cai/client/events/friend.py
new file mode 100644
index 00000000..db4e5dd7
--- /dev/null
+++ b/cai/client/events/friend.py
@@ -0,0 +1 @@
+# TODO: PR Welcome
diff --git a/cai/client/events/group.py b/cai/client/events/group.py
new file mode 100644
index 00000000..d3e2bd29
--- /dev/null
+++ b/cai/client/events/group.py
@@ -0,0 +1,37 @@
+from dataclasses import dataclass
+
+from .base import Event
+
+
+class GroupEvent(Event):
+ @property
+ def type(self) -> str:
+ return self.__class__.__name__
+
+
+@dataclass
+class MemberMutedEvent(GroupEvent):
+ group: int
+ operator: int
+ target: int
+ duration: int
+
+
+@dataclass
+class MemberUnMutedEvent(GroupEvent):
+ group: int
+ operator: int
+ target: int
+
+
+@dataclass
+class MemberRecallMessageEvent(GroupEvent):
+ group: int
+ operator: int
+ operator_type: int
+ target: int
+
+ msg_rand: int
+ msg_seq: int
+ msg_time: int
+
diff --git a/cai/client/message_service/decoders.py b/cai/client/message_service/decoders.py
index 2e52367f..da4f456a 100644
--- a/cai/client/message_service/decoders.py
+++ b/cai/client/message_service/decoders.py
@@ -13,7 +13,7 @@
from typing import Dict, List, Callable, Optional, Sequence
from cai.log import logger
-from cai.client.event import Event
+from cai.client.events.base import Event
from cai.pb.msf.msg.comm import Msg
from cai.pb.im.msg.msg_body import Ptt, Elem
from cai.pb.im.msg.service.comm_elem import (
diff --git a/cai/client/message_service/models.py b/cai/client/message_service/models.py
index 490b1a9d..3f1ad89e 100644
--- a/cai/client/message_service/models.py
+++ b/cai/client/message_service/models.py
@@ -14,7 +14,7 @@
from dataclasses import dataclass
from typing import List, Optional, Union
-from cai.client.event import Event
+from cai.client.events.base import Event
from cai.pb.msf.msg.comm import Msg
from cai.pb.im.msg.msg_body import Ptt
diff --git a/cai/client/online_push/__init__.py b/cai/client/online_push/__init__.py
index 86cc96a0..c221165d 100644
--- a/cai/client/online_push/__init__.py
+++ b/cai/client/online_push/__init__.py
@@ -8,18 +8,21 @@
.. _LICENSE:
https://github.com/cscs181/CAI/blob/master/LICENSE
"""
+import struct
+import tkinter
+from typing import TYPE_CHECKING, List, Tuple, Optional, Sequence
-from typing import TYPE_CHECKING, List, Tuple, Optional
-
-from jce import types
+from jce import types, JceDecoder
from cai.log import logger
from cai.utils.binary import Packet
-from cai.utils.jce import RequestPacketVersion3
+from cai.utils.jce import RequestPacketVersion3, RequestPacket
from cai.client.message_service import MESSAGE_DECODERS
from cai.client.packet import UniPacket, IncomingPacket
from cai.settings.device import DeviceInfo as _DeviceInfo_t
+from cai.pb.im.oidb.group0x857.group0x857_pb2 import NotifyMsgBody, TemplParam
+from .. import events
from ...settings.protocol import ApkInfo
from .jce import DelMsgInfo, DeviceInfo, SvcRespPushMsg
from .command import PushMsg, PushMsgError, PushMsgCommand
@@ -218,6 +221,80 @@ async def handle_push_msg(
return push
+def _parse_poke(params: Sequence[TemplParam]) -> dict:
+ res = {"target": None, "sender": None, "action": None, "suffix": None}
+ for p in params:
+ if p.name == "uin_str1":
+ res["sender"] = p.value
+ elif p.name == "uin_str2":
+ res["target"] = p.value
+ elif p.name == "suffix_str":
+ res["suffix"] = p.value
+ elif p.name == "action_str":
+ res["action"] = p.value
+ return res
+
+
+
+# OnlinePush.ReqPush
+async def handle_req_push(
+ client: "Client",
+ packet: IncomingPacket,
+ device: Tuple[_DeviceInfo_t, ApkInfo],
+) -> PushMsgCommand:
+ data = JceDecoder.decode_single( # type: ignore
+ RequestPacket.decode(packet.data).buffer
+ )[1]["req"]["OnlinePushPack.SvcReqPushMsg"]
+ body = JceDecoder.decode_bytes(data)[0]
+ _, stime, content = body[0], body[1], body[2][0][6]
+ # TODO: Send OnlinePush.RespPush
+ if body[2][0][2] == 732: # group
+ gid = int.from_bytes(content[0:4], "big")
+ dtype = content[4]
+ if dtype in (0x14, 0x11):
+ notify = NotifyMsgBody.FromString(content[7:])
+ if dtype == 0x14: # nudge
+ client.dispatch_event(events.NudgeEvent(
+ **_parse_poke(notify.optGeneralGrayTip.msgTemplParam),
+ group=gid
+ ))
+ elif dtype == 0x11: # recall
+ msg = notify.optMsgRecall.recalledMsgList[0]
+ client.dispatch_event(events.MemberRecallMessageEvent(
+ gid,
+ notify.optMsgRecall.uin,
+ notify.optMsgRecall.opType,
+ msg.authorUin,
+ msg.msgRandom,
+ msg.seq,
+ msg.time
+ ))
+ elif dtype == 0x0c: # mute event
+ operator = int.from_bytes(content[6:10], "big", signed=False)
+ target = int.from_bytes(content[16:20], "big", signed=False)
+ duration = int.from_bytes(content[20:24], "big", signed=False)
+ if duration > 0: # muted
+ client.dispatch_event(events.MemberMutedEvent(
+ gid,
+ operator,
+ target,
+ duration
+ ))
+ else:
+ client.dispatch_event(events.MemberUnMutedEvent(
+ gid,
+ operator,
+ target
+ ))
+ # TODO: parse friend event
+ return PushMsgCommand(
+ packet.uin,
+ packet.seq,
+ packet.ret_code,
+ packet.command_name
+ )
+
+
__all__ = [
"handle_c2c_sync",
"handle_push_msg",
diff --git a/cai/pb/im/oidb/group0x857/__init__.py b/cai/pb/im/oidb/group0x857/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/cai/pb/im/oidb/group0x857/group0x857.proto b/cai/pb/im/oidb/group0x857/group0x857.proto
new file mode 100644
index 00000000..6989c805
--- /dev/null
+++ b/cai/pb/im/oidb/group0x857/group0x857.proto
@@ -0,0 +1,83 @@
+syntax = "proto3";
+
+option go_package = "github.com/Mrs4s/MiraiGo/client/pb/notify";
+
+message NotifyMsgBody {
+ AIOGrayTipsInfo optMsgGrayTips = 5;
+ RedGrayTipsInfo optMsgRedTips = 9;
+ MessageRecallReminder optMsgRecall = 11;
+ GeneralGrayTipInfo optGeneralGrayTip = 26;
+ QQGroupDigestMsg qqGroupDigestMsg = 33;
+ int32 serviceType = 13;
+}
+
+message AIOGrayTipsInfo{
+ uint32 showLatest = 1;
+ bytes content = 2;
+ uint32 remind = 3;
+ bytes brief = 4;
+ uint64 receiverUin = 5;
+ uint32 reliaoAdminOpt = 6;
+}
+
+message GeneralGrayTipInfo {
+ uint64 busiType = 1;
+ uint64 busiId = 2;
+ uint32 ctrlFlag = 3;
+ uint32 c2cType = 4;
+ uint32 serviceType = 5;
+ uint64 templId = 6;
+ repeated TemplParam msgTemplParam = 7;
+ string content = 8;
+}
+
+message TemplParam {
+ string name = 1;
+ string value = 2;
+}
+
+message MessageRecallReminder {
+ int64 uin = 1;
+ bytes nickname = 2;
+ repeated RecalledMessageMeta recalledMsgList = 3;
+ bytes reminderContent = 4;
+ bytes userdef = 5;
+ int32 groupType = 6;
+ int32 opType = 7;
+}
+
+message RecalledMessageMeta {
+ int32 seq = 1;
+ int32 time = 2;
+ int32 msgRandom = 3;
+ int32 msgType = 4;
+ int32 msgFlag = 5;
+ int64 authorUin = 6;
+}
+
+message RedGrayTipsInfo {
+ uint32 showLatest = 1;
+ uint64 senderUin = 2;
+ uint64 receiverUin = 3;
+ string senderRichContent = 4;
+ string receiverRichContent = 5;
+ bytes authKey = 6;
+ sint32 msgType = 7;
+ uint32 luckyFlag = 8;
+ uint32 hideFlag = 9;
+ uint64 luckyUin = 12;
+}
+
+message QQGroupDigestMsg {
+ uint64 groupCode = 1;
+ uint32 seq = 2;
+ uint32 random = 3;
+ int32 opType = 4;
+ uint64 sender = 5;
+ uint64 digestOper = 6;
+ uint32 opTime = 7;
+ uint32 lastestMsgSeq = 8;
+ bytes operNick = 9;
+ bytes senderNick = 10;
+ int32 extInfo = 11;
+}
From cff4e4c6d14bf778530e9bfad3de51c40e2ce2ad Mon Sep 17 00:00:00 2001
From: a1025
Date: Thu, 7 Apr 2022 22:37:44 +0800
Subject: [PATCH 064/113] fix: type error
---
cai/client/online_push/__init__.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/cai/client/online_push/__init__.py b/cai/client/online_push/__init__.py
index c221165d..aab0ff8c 100644
--- a/cai/client/online_push/__init__.py
+++ b/cai/client/online_push/__init__.py
@@ -225,9 +225,9 @@ def _parse_poke(params: Sequence[TemplParam]) -> dict:
res = {"target": None, "sender": None, "action": None, "suffix": None}
for p in params:
if p.name == "uin_str1":
- res["sender"] = p.value
+ res["sender"] = int(p.value)
elif p.name == "uin_str2":
- res["target"] = p.value
+ res["target"] = int(p.value)
elif p.name == "suffix_str":
res["suffix"] = p.value
elif p.name == "action_str":
From eb17c61831d8e23a5774109c9a83b59a0e386d4d Mon Sep 17 00:00:00 2001
From: a1025
Date: Thu, 7 Apr 2022 23:57:11 +0800
Subject: [PATCH 065/113] add: send OnlinePush.RespPush & optimized code
---
cai/client/online_push/__init__.py | 67 +++++++++++++++++++++++-------
1 file changed, 51 insertions(+), 16 deletions(-)
diff --git a/cai/client/online_push/__init__.py b/cai/client/online_push/__init__.py
index aab0ff8c..5402986e 100644
--- a/cai/client/online_push/__init__.py
+++ b/cai/client/online_push/__init__.py
@@ -8,11 +8,9 @@
.. _LICENSE:
https://github.com/cscs181/CAI/blob/master/LICENSE
"""
-import struct
-import tkinter
from typing import TYPE_CHECKING, List, Tuple, Optional, Sequence
-from jce import types, JceDecoder
+from jce import types, JceDecoder, JceStruct, JceEncoder
from cai.log import logger
from cai.utils.binary import Packet
@@ -235,6 +233,20 @@ def _parse_poke(params: Sequence[TemplParam]) -> dict:
return res
+"""def encode_resp_push_pkg(uin: int, svrip: int, seq: int, items: Sequence[DelMsgInfo]) -> bytes:
+ pkg = SvcRespPushMsg(
+ uin=uin,
+ del_infos=items,
+ svrip=svrip & 0xffffffff,
+ service_type=0
+ )
+ return RequestPacketVersion3(
+ servant_name="OnlinePush",
+ func_name="SvcRespPushMsg",
+ req_id=seq,
+ data=types.MAP({types.STRING("SvcRespPushMsg"): types.BYTES(SvcRespPushMsg.to_bytes(0, pkg))})
+ ).encode()
+"""
# OnlinePush.ReqPush
async def handle_req_push(
@@ -242,23 +254,25 @@ async def handle_req_push(
packet: IncomingPacket,
device: Tuple[_DeviceInfo_t, ApkInfo],
) -> PushMsgCommand:
- data = JceDecoder.decode_single( # type: ignore
- RequestPacket.decode(packet.data).buffer
- )[1]["req"]["OnlinePushPack.SvcReqPushMsg"]
- body = JceDecoder.decode_bytes(data)[0]
- _, stime, content = body[0], body[1], body[2][0][6]
- # TODO: Send OnlinePush.RespPush
- if body[2][0][2] == 732: # group
+ body = JceDecoder.decode_bytes(
+ JceDecoder.decode_single( # type: ignore
+ RequestPacket.decode(packet.data).buffer
+ )[1]["req"]["OnlinePushPack.SvcReqPushMsg"]
+ )[0]
+
+ _uin, stime, push_type, content = body[0], body[1], body[2][0][2], body[2][0][6]
+
+ if push_type == 732: # group
gid = int.from_bytes(content[0:4], "big")
- dtype = content[4]
- if dtype in (0x14, 0x11):
+ stype = content[4]
+ if stype in (0x14, 0x11):
notify = NotifyMsgBody.FromString(content[7:])
- if dtype == 0x14: # nudge
+ if stype == 0x14: # nudge
client.dispatch_event(events.NudgeEvent(
**_parse_poke(notify.optGeneralGrayTip.msgTemplParam),
group=gid
))
- elif dtype == 0x11: # recall
+ elif stype == 0x11: # recall
msg = notify.optMsgRecall.recalledMsgList[0]
client.dispatch_event(events.MemberRecallMessageEvent(
gid,
@@ -269,7 +283,7 @@ async def handle_req_push(
msg.seq,
msg.time
))
- elif dtype == 0x0c: # mute event
+ elif stype == 0x0c: # mute event
operator = int.from_bytes(content[6:10], "big", signed=False)
target = int.from_bytes(content[16:20], "big", signed=False)
duration = int.from_bytes(content[20:24], "big", signed=False)
@@ -286,7 +300,28 @@ async def handle_req_push(
operator,
target
))
- # TODO: parse friend event
+ elif push_type == 528:
+ pass
+ # TODO: parse friend event
+
+ await client.send_and_wait( # resp ack
+ seq=client.next_seq(),
+ command_name="OnlinePush.RespPush",
+ packet=encode_push_response(
+ body[1],
+ client._session_id,
+ _uin,
+ client._siginfo.d2key,
+ client.uin,
+ body[3] & 0xffffffff,
+ [DelMsgInfo(
+ from_uin=_uin,
+ msg_seq=body[1],
+ msg_time=stime
+ )]
+ )
+ )
+
return PushMsgCommand(
packet.uin,
packet.seq,
From 473d8b28fea60f56430e8a7087627be6862fa458 Mon Sep 17 00:00:00 2001
From: a1025
Date: Fri, 8 Apr 2022 00:04:01 +0800
Subject: [PATCH 066/113] sync file
---
cai/pb/im/oidb/group0x857/group0x857_pb2.py | 105 ++++++++
cai/pb/im/oidb/group0x857/group0x857_pb2.pyi | 267 +++++++++++++++++++
2 files changed, 372 insertions(+)
create mode 100644 cai/pb/im/oidb/group0x857/group0x857_pb2.py
create mode 100644 cai/pb/im/oidb/group0x857/group0x857_pb2.pyi
diff --git a/cai/pb/im/oidb/group0x857/group0x857_pb2.py b/cai/pb/im/oidb/group0x857/group0x857_pb2.py
new file mode 100644
index 00000000..ef7632b0
--- /dev/null
+++ b/cai/pb/im/oidb/group0x857/group0x857_pb2.py
@@ -0,0 +1,105 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: group0x857.proto
+"""Generated protocol buffer code."""
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import message as _message
+from google.protobuf import reflection as _reflection
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x10group0x857.proto\"\x82\x02\n\rNotifyMsgBody\x12(\n\x0eoptMsgGrayTips\x18\x05 \x01(\x0b\x32\x10.AIOGrayTipsInfo\x12\'\n\roptMsgRedTips\x18\t \x01(\x0b\x32\x10.RedGrayTipsInfo\x12,\n\x0coptMsgRecall\x18\x0b \x01(\x0b\x32\x16.MessageRecallReminder\x12.\n\x11optGeneralGrayTip\x18\x1a \x01(\x0b\x32\x13.GeneralGrayTipInfo\x12+\n\x10qqGroupDigestMsg\x18! \x01(\x0b\x32\x11.QQGroupDigestMsg\x12\x13\n\x0bserviceType\x18\r \x01(\x05\"\x82\x01\n\x0f\x41IOGrayTipsInfo\x12\x12\n\nshowLatest\x18\x01 \x01(\r\x12\x0f\n\x07\x63ontent\x18\x02 \x01(\x0c\x12\x0e\n\x06remind\x18\x03 \x01(\r\x12\r\n\x05\x62rief\x18\x04 \x01(\x0c\x12\x13\n\x0breceiverUin\x18\x05 \x01(\x04\x12\x16\n\x0ereliaoAdminOpt\x18\x06 \x01(\r\"\xb4\x01\n\x12GeneralGrayTipInfo\x12\x10\n\x08\x62usiType\x18\x01 \x01(\x04\x12\x0e\n\x06\x62usiId\x18\x02 \x01(\x04\x12\x10\n\x08\x63trlFlag\x18\x03 \x01(\r\x12\x0f\n\x07\x63\x32\x63Type\x18\x04 \x01(\r\x12\x13\n\x0bserviceType\x18\x05 \x01(\r\x12\x0f\n\x07templId\x18\x06 \x01(\x04\x12\"\n\rmsgTemplParam\x18\x07 \x03(\x0b\x32\x0b.TemplParam\x12\x0f\n\x07\x63ontent\x18\x08 \x01(\t\")\n\nTemplParam\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"\xb2\x01\n\x15MessageRecallReminder\x12\x0b\n\x03uin\x18\x01 \x01(\x03\x12\x10\n\x08nickname\x18\x02 \x01(\x0c\x12-\n\x0frecalledMsgList\x18\x03 \x03(\x0b\x32\x14.RecalledMessageMeta\x12\x17\n\x0freminderContent\x18\x04 \x01(\x0c\x12\x0f\n\x07userdef\x18\x05 \x01(\x0c\x12\x11\n\tgroupType\x18\x06 \x01(\x05\x12\x0e\n\x06opType\x18\x07 \x01(\x05\"x\n\x13RecalledMessageMeta\x12\x0b\n\x03seq\x18\x01 \x01(\x05\x12\x0c\n\x04time\x18\x02 \x01(\x05\x12\x11\n\tmsgRandom\x18\x03 \x01(\x05\x12\x0f\n\x07msgType\x18\x04 \x01(\x05\x12\x0f\n\x07msgFlag\x18\x05 \x01(\x05\x12\x11\n\tauthorUin\x18\x06 \x01(\x03\"\xde\x01\n\x0fRedGrayTipsInfo\x12\x12\n\nshowLatest\x18\x01 \x01(\r\x12\x11\n\tsenderUin\x18\x02 \x01(\x04\x12\x13\n\x0breceiverUin\x18\x03 \x01(\x04\x12\x19\n\x11senderRichContent\x18\x04 \x01(\t\x12\x1b\n\x13receiverRichContent\x18\x05 \x01(\t\x12\x0f\n\x07\x61uthKey\x18\x06 \x01(\x0c\x12\x0f\n\x07msgType\x18\x07 \x01(\x11\x12\x11\n\tluckyFlag\x18\x08 \x01(\r\x12\x10\n\x08hideFlag\x18\t \x01(\r\x12\x10\n\x08luckyUin\x18\x0c \x01(\x04\"\xd4\x01\n\x10QQGroupDigestMsg\x12\x11\n\tgroupCode\x18\x01 \x01(\x04\x12\x0b\n\x03seq\x18\x02 \x01(\r\x12\x0e\n\x06random\x18\x03 \x01(\r\x12\x0e\n\x06opType\x18\x04 \x01(\x05\x12\x0e\n\x06sender\x18\x05 \x01(\x04\x12\x12\n\ndigestOper\x18\x06 \x01(\x04\x12\x0e\n\x06opTime\x18\x07 \x01(\r\x12\x15\n\rlastestMsgSeq\x18\x08 \x01(\r\x12\x10\n\x08operNick\x18\t \x01(\x0c\x12\x12\n\nsenderNick\x18\n \x01(\x0c\x12\x0f\n\x07\x65xtInfo\x18\x0b \x01(\x05\x42+Z)github.com/Mrs4s/MiraiGo/client/pb/notifyb\x06proto3')
+
+
+
+_NOTIFYMSGBODY = DESCRIPTOR.message_types_by_name['NotifyMsgBody']
+_AIOGRAYTIPSINFO = DESCRIPTOR.message_types_by_name['AIOGrayTipsInfo']
+_GENERALGRAYTIPINFO = DESCRIPTOR.message_types_by_name['GeneralGrayTipInfo']
+_TEMPLPARAM = DESCRIPTOR.message_types_by_name['TemplParam']
+_MESSAGERECALLREMINDER = DESCRIPTOR.message_types_by_name['MessageRecallReminder']
+_RECALLEDMESSAGEMETA = DESCRIPTOR.message_types_by_name['RecalledMessageMeta']
+_REDGRAYTIPSINFO = DESCRIPTOR.message_types_by_name['RedGrayTipsInfo']
+_QQGROUPDIGESTMSG = DESCRIPTOR.message_types_by_name['QQGroupDigestMsg']
+NotifyMsgBody = _reflection.GeneratedProtocolMessageType('NotifyMsgBody', (_message.Message,), {
+ 'DESCRIPTOR' : _NOTIFYMSGBODY,
+ '__module__' : 'group0x857_pb2'
+ # @@protoc_insertion_point(class_scope:NotifyMsgBody)
+ })
+_sym_db.RegisterMessage(NotifyMsgBody)
+
+AIOGrayTipsInfo = _reflection.GeneratedProtocolMessageType('AIOGrayTipsInfo', (_message.Message,), {
+ 'DESCRIPTOR' : _AIOGRAYTIPSINFO,
+ '__module__' : 'group0x857_pb2'
+ # @@protoc_insertion_point(class_scope:AIOGrayTipsInfo)
+ })
+_sym_db.RegisterMessage(AIOGrayTipsInfo)
+
+GeneralGrayTipInfo = _reflection.GeneratedProtocolMessageType('GeneralGrayTipInfo', (_message.Message,), {
+ 'DESCRIPTOR' : _GENERALGRAYTIPINFO,
+ '__module__' : 'group0x857_pb2'
+ # @@protoc_insertion_point(class_scope:GeneralGrayTipInfo)
+ })
+_sym_db.RegisterMessage(GeneralGrayTipInfo)
+
+TemplParam = _reflection.GeneratedProtocolMessageType('TemplParam', (_message.Message,), {
+ 'DESCRIPTOR' : _TEMPLPARAM,
+ '__module__' : 'group0x857_pb2'
+ # @@protoc_insertion_point(class_scope:TemplParam)
+ })
+_sym_db.RegisterMessage(TemplParam)
+
+MessageRecallReminder = _reflection.GeneratedProtocolMessageType('MessageRecallReminder', (_message.Message,), {
+ 'DESCRIPTOR' : _MESSAGERECALLREMINDER,
+ '__module__' : 'group0x857_pb2'
+ # @@protoc_insertion_point(class_scope:MessageRecallReminder)
+ })
+_sym_db.RegisterMessage(MessageRecallReminder)
+
+RecalledMessageMeta = _reflection.GeneratedProtocolMessageType('RecalledMessageMeta', (_message.Message,), {
+ 'DESCRIPTOR' : _RECALLEDMESSAGEMETA,
+ '__module__' : 'group0x857_pb2'
+ # @@protoc_insertion_point(class_scope:RecalledMessageMeta)
+ })
+_sym_db.RegisterMessage(RecalledMessageMeta)
+
+RedGrayTipsInfo = _reflection.GeneratedProtocolMessageType('RedGrayTipsInfo', (_message.Message,), {
+ 'DESCRIPTOR' : _REDGRAYTIPSINFO,
+ '__module__' : 'group0x857_pb2'
+ # @@protoc_insertion_point(class_scope:RedGrayTipsInfo)
+ })
+_sym_db.RegisterMessage(RedGrayTipsInfo)
+
+QQGroupDigestMsg = _reflection.GeneratedProtocolMessageType('QQGroupDigestMsg', (_message.Message,), {
+ 'DESCRIPTOR' : _QQGROUPDIGESTMSG,
+ '__module__' : 'group0x857_pb2'
+ # @@protoc_insertion_point(class_scope:QQGroupDigestMsg)
+ })
+_sym_db.RegisterMessage(QQGroupDigestMsg)
+
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ DESCRIPTOR._serialized_options = b'Z)github.com/Mrs4s/MiraiGo/client/pb/notify'
+ _NOTIFYMSGBODY._serialized_start=21
+ _NOTIFYMSGBODY._serialized_end=279
+ _AIOGRAYTIPSINFO._serialized_start=282
+ _AIOGRAYTIPSINFO._serialized_end=412
+ _GENERALGRAYTIPINFO._serialized_start=415
+ _GENERALGRAYTIPINFO._serialized_end=595
+ _TEMPLPARAM._serialized_start=597
+ _TEMPLPARAM._serialized_end=638
+ _MESSAGERECALLREMINDER._serialized_start=641
+ _MESSAGERECALLREMINDER._serialized_end=819
+ _RECALLEDMESSAGEMETA._serialized_start=821
+ _RECALLEDMESSAGEMETA._serialized_end=941
+ _REDGRAYTIPSINFO._serialized_start=944
+ _REDGRAYTIPSINFO._serialized_end=1166
+ _QQGROUPDIGESTMSG._serialized_start=1169
+ _QQGROUPDIGESTMSG._serialized_end=1381
+# @@protoc_insertion_point(module_scope)
diff --git a/cai/pb/im/oidb/group0x857/group0x857_pb2.pyi b/cai/pb/im/oidb/group0x857/group0x857_pb2.pyi
new file mode 100644
index 00000000..7fa6257b
--- /dev/null
+++ b/cai/pb/im/oidb/group0x857/group0x857_pb2.pyi
@@ -0,0 +1,267 @@
+"""
+@generated by mypy-protobuf. Do not edit manually!
+isort:skip_file
+"""
+from builtins import (
+ bool,
+ bytes,
+ int,
+)
+
+from google.protobuf.descriptor import (
+ Descriptor,
+ FileDescriptor,
+)
+
+from google.protobuf.internal.containers import (
+ RepeatedCompositeFieldContainer,
+)
+
+from google.protobuf.message import (
+ Message,
+)
+
+from typing import (
+ Iterable,
+ Optional,
+ Text,
+)
+
+from typing_extensions import (
+ Literal,
+)
+
+
+DESCRIPTOR: FileDescriptor
+
+class NotifyMsgBody(Message):
+ DESCRIPTOR: Descriptor
+ OPTMSGGRAYTIPS_FIELD_NUMBER: int
+ OPTMSGREDTIPS_FIELD_NUMBER: int
+ OPTMSGRECALL_FIELD_NUMBER: int
+ OPTGENERALGRAYTIP_FIELD_NUMBER: int
+ QQGROUPDIGESTMSG_FIELD_NUMBER: int
+ SERVICETYPE_FIELD_NUMBER: int
+ @property
+ def optMsgGrayTips(self) -> AIOGrayTipsInfo: ...
+ @property
+ def optMsgRedTips(self) -> RedGrayTipsInfo: ...
+ @property
+ def optMsgRecall(self) -> MessageRecallReminder: ...
+ @property
+ def optGeneralGrayTip(self) -> GeneralGrayTipInfo: ...
+ @property
+ def qqGroupDigestMsg(self) -> QQGroupDigestMsg: ...
+ serviceType: int
+ def __init__(self,
+ *,
+ optMsgGrayTips: Optional[AIOGrayTipsInfo] = ...,
+ optMsgRedTips: Optional[RedGrayTipsInfo] = ...,
+ optMsgRecall: Optional[MessageRecallReminder] = ...,
+ optGeneralGrayTip: Optional[GeneralGrayTipInfo] = ...,
+ qqGroupDigestMsg: Optional[QQGroupDigestMsg] = ...,
+ serviceType: int = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["optGeneralGrayTip",b"optGeneralGrayTip","optMsgGrayTips",b"optMsgGrayTips","optMsgRecall",b"optMsgRecall","optMsgRedTips",b"optMsgRedTips","qqGroupDigestMsg",b"qqGroupDigestMsg"]) -> bool: ...
+ def ClearField(self, field_name: Literal["optGeneralGrayTip",b"optGeneralGrayTip","optMsgGrayTips",b"optMsgGrayTips","optMsgRecall",b"optMsgRecall","optMsgRedTips",b"optMsgRedTips","qqGroupDigestMsg",b"qqGroupDigestMsg","serviceType",b"serviceType"]) -> None: ...
+
+class AIOGrayTipsInfo(Message):
+ DESCRIPTOR: Descriptor
+ SHOWLATEST_FIELD_NUMBER: int
+ CONTENT_FIELD_NUMBER: int
+ REMIND_FIELD_NUMBER: int
+ BRIEF_FIELD_NUMBER: int
+ RECEIVERUIN_FIELD_NUMBER: int
+ RELIAOADMINOPT_FIELD_NUMBER: int
+ showLatest: int
+ content: bytes
+ remind: int
+ brief: bytes
+ receiverUin: int
+ reliaoAdminOpt: int
+ def __init__(self,
+ *,
+ showLatest: int = ...,
+ content: bytes = ...,
+ remind: int = ...,
+ brief: bytes = ...,
+ receiverUin: int = ...,
+ reliaoAdminOpt: int = ...,
+ ) -> None: ...
+ def ClearField(self, field_name: Literal["brief",b"brief","content",b"content","receiverUin",b"receiverUin","reliaoAdminOpt",b"reliaoAdminOpt","remind",b"remind","showLatest",b"showLatest"]) -> None: ...
+
+class GeneralGrayTipInfo(Message):
+ DESCRIPTOR: Descriptor
+ BUSITYPE_FIELD_NUMBER: int
+ BUSIID_FIELD_NUMBER: int
+ CTRLFLAG_FIELD_NUMBER: int
+ C2CTYPE_FIELD_NUMBER: int
+ SERVICETYPE_FIELD_NUMBER: int
+ TEMPLID_FIELD_NUMBER: int
+ MSGTEMPLPARAM_FIELD_NUMBER: int
+ CONTENT_FIELD_NUMBER: int
+ busiType: int
+ busiId: int
+ ctrlFlag: int
+ c2cType: int
+ serviceType: int
+ templId: int
+ @property
+ def msgTemplParam(self) -> RepeatedCompositeFieldContainer[TemplParam]: ...
+ content: Text
+ def __init__(self,
+ *,
+ busiType: int = ...,
+ busiId: int = ...,
+ ctrlFlag: int = ...,
+ c2cType: int = ...,
+ serviceType: int = ...,
+ templId: int = ...,
+ msgTemplParam: Optional[Iterable[TemplParam]] = ...,
+ content: Text = ...,
+ ) -> None: ...
+ def ClearField(self, field_name: Literal["busiId",b"busiId","busiType",b"busiType","c2cType",b"c2cType","content",b"content","ctrlFlag",b"ctrlFlag","msgTemplParam",b"msgTemplParam","serviceType",b"serviceType","templId",b"templId"]) -> None: ...
+
+class TemplParam(Message):
+ DESCRIPTOR: Descriptor
+ NAME_FIELD_NUMBER: int
+ VALUE_FIELD_NUMBER: int
+ name: Text
+ value: Text
+ def __init__(self,
+ *,
+ name: Text = ...,
+ value: Text = ...,
+ ) -> None: ...
+ def ClearField(self, field_name: Literal["name",b"name","value",b"value"]) -> None: ...
+
+class MessageRecallReminder(Message):
+ DESCRIPTOR: Descriptor
+ UIN_FIELD_NUMBER: int
+ NICKNAME_FIELD_NUMBER: int
+ RECALLEDMSGLIST_FIELD_NUMBER: int
+ REMINDERCONTENT_FIELD_NUMBER: int
+ USERDEF_FIELD_NUMBER: int
+ GROUPTYPE_FIELD_NUMBER: int
+ OPTYPE_FIELD_NUMBER: int
+ uin: int
+ nickname: bytes
+ @property
+ def recalledMsgList(self) -> RepeatedCompositeFieldContainer[RecalledMessageMeta]: ...
+ reminderContent: bytes
+ userdef: bytes
+ groupType: int
+ opType: int
+ def __init__(self,
+ *,
+ uin: int = ...,
+ nickname: bytes = ...,
+ recalledMsgList: Optional[Iterable[RecalledMessageMeta]] = ...,
+ reminderContent: bytes = ...,
+ userdef: bytes = ...,
+ groupType: int = ...,
+ opType: int = ...,
+ ) -> None: ...
+ def ClearField(self, field_name: Literal["groupType",b"groupType","nickname",b"nickname","opType",b"opType","recalledMsgList",b"recalledMsgList","reminderContent",b"reminderContent","uin",b"uin","userdef",b"userdef"]) -> None: ...
+
+class RecalledMessageMeta(Message):
+ DESCRIPTOR: Descriptor
+ SEQ_FIELD_NUMBER: int
+ TIME_FIELD_NUMBER: int
+ MSGRANDOM_FIELD_NUMBER: int
+ MSGTYPE_FIELD_NUMBER: int
+ MSGFLAG_FIELD_NUMBER: int
+ AUTHORUIN_FIELD_NUMBER: int
+ seq: int
+ time: int
+ msgRandom: int
+ msgType: int
+ msgFlag: int
+ authorUin: int
+ def __init__(self,
+ *,
+ seq: int = ...,
+ time: int = ...,
+ msgRandom: int = ...,
+ msgType: int = ...,
+ msgFlag: int = ...,
+ authorUin: int = ...,
+ ) -> None: ...
+ def ClearField(self, field_name: Literal["authorUin",b"authorUin","msgFlag",b"msgFlag","msgRandom",b"msgRandom","msgType",b"msgType","seq",b"seq","time",b"time"]) -> None: ...
+
+class RedGrayTipsInfo(Message):
+ DESCRIPTOR: Descriptor
+ SHOWLATEST_FIELD_NUMBER: int
+ SENDERUIN_FIELD_NUMBER: int
+ RECEIVERUIN_FIELD_NUMBER: int
+ SENDERRICHCONTENT_FIELD_NUMBER: int
+ RECEIVERRICHCONTENT_FIELD_NUMBER: int
+ AUTHKEY_FIELD_NUMBER: int
+ MSGTYPE_FIELD_NUMBER: int
+ LUCKYFLAG_FIELD_NUMBER: int
+ HIDEFLAG_FIELD_NUMBER: int
+ LUCKYUIN_FIELD_NUMBER: int
+ showLatest: int
+ senderUin: int
+ receiverUin: int
+ senderRichContent: Text
+ receiverRichContent: Text
+ authKey: bytes
+ msgType: int
+ luckyFlag: int
+ hideFlag: int
+ luckyUin: int
+ def __init__(self,
+ *,
+ showLatest: int = ...,
+ senderUin: int = ...,
+ receiverUin: int = ...,
+ senderRichContent: Text = ...,
+ receiverRichContent: Text = ...,
+ authKey: bytes = ...,
+ msgType: int = ...,
+ luckyFlag: int = ...,
+ hideFlag: int = ...,
+ luckyUin: int = ...,
+ ) -> None: ...
+ def ClearField(self, field_name: Literal["authKey",b"authKey","hideFlag",b"hideFlag","luckyFlag",b"luckyFlag","luckyUin",b"luckyUin","msgType",b"msgType","receiverRichContent",b"receiverRichContent","receiverUin",b"receiverUin","senderRichContent",b"senderRichContent","senderUin",b"senderUin","showLatest",b"showLatest"]) -> None: ...
+
+class QQGroupDigestMsg(Message):
+ DESCRIPTOR: Descriptor
+ GROUPCODE_FIELD_NUMBER: int
+ SEQ_FIELD_NUMBER: int
+ RANDOM_FIELD_NUMBER: int
+ OPTYPE_FIELD_NUMBER: int
+ SENDER_FIELD_NUMBER: int
+ DIGESTOPER_FIELD_NUMBER: int
+ OPTIME_FIELD_NUMBER: int
+ LASTESTMSGSEQ_FIELD_NUMBER: int
+ OPERNICK_FIELD_NUMBER: int
+ SENDERNICK_FIELD_NUMBER: int
+ EXTINFO_FIELD_NUMBER: int
+ groupCode: int
+ seq: int
+ random: int
+ opType: int
+ sender: int
+ digestOper: int
+ opTime: int
+ lastestMsgSeq: int
+ operNick: bytes
+ senderNick: bytes
+ extInfo: int
+ def __init__(self,
+ *,
+ groupCode: int = ...,
+ seq: int = ...,
+ random: int = ...,
+ opType: int = ...,
+ sender: int = ...,
+ digestOper: int = ...,
+ opTime: int = ...,
+ lastestMsgSeq: int = ...,
+ operNick: bytes = ...,
+ senderNick: bytes = ...,
+ extInfo: int = ...,
+ ) -> None: ...
+ def ClearField(self, field_name: Literal["digestOper",b"digestOper","extInfo",b"extInfo","groupCode",b"groupCode","lastestMsgSeq",b"lastestMsgSeq","opTime",b"opTime","opType",b"opType","operNick",b"operNick","random",b"random","sender",b"sender","senderNick",b"senderNick","seq",b"seq"]) -> None: ...
From cbb506e3c7354bc1bb04cbb0d977293298e30ab1 Mon Sep 17 00:00:00 2001
From: yanyongyu <42488585+yanyongyu@users.noreply.github.com>
Date: Fri, 8 Apr 2022 11:11:19 +0800
Subject: [PATCH 067/113] :art: improve reconnect
---
cai/client/client.py | 45 ++++++++++++++++++++++++++------------------
1 file changed, 27 insertions(+), 18 deletions(-)
diff --git a/cai/client/client.py b/cai/client/client.py
index 25b0e292..6cf26073 100644
--- a/cai/client/client.py
+++ b/cai/client/client.py
@@ -9,6 +9,7 @@
https://github.com/cscs181/CAI/blob/master/LICENSE
"""
import time
+import struct
import asyncio
import secrets
from typing import (
@@ -28,6 +29,7 @@
from cai import log
from cai.utils.binary import Packet
+from cai.client.events.base import Event
from cai.utils.future import FutureStore
from cai.settings.protocol import ApkInfo
from cai.settings.device import DeviceInfo
@@ -46,15 +48,14 @@
GroupMemberListException,
)
-from cai.client.events.base import Event
from .packet import UniPacket, IncomingPacket
from .command import Command, _packet_to_command
from .sso_server import SsoServer, get_sso_server
from .multi_msg.long_msg import _handle_multi_resp_body
-from .online_push import handle_c2c_sync, handle_push_msg, handle_req_push
from .heartbeat import Heartbeat, encode_heartbeat, handle_heartbeat
from .models import Group, Friend, SigInfo, FriendGroup, GroupMember
from .config_push import FileServerPushList, handle_config_push_request
+from .online_push import handle_c2c_sync, handle_push_msg, handle_req_push
from .message_service import (
SyncFlag,
GetMessageCommand,
@@ -136,7 +137,7 @@
# "OnlinePush.PbPushBindUinGroupMsg": handle_push_msg, # sub account
# new
"MultiMsg.ApplyUp": _handle_multi_resp_body,
- "OnlinePush.ReqPush": handle_req_push
+ "OnlinePush.ReqPush": handle_req_push,
}
@@ -202,6 +203,7 @@ def __init__(
# connection info
self._reconnect: bool = auto_reconnect
+ self._reconnect_times: int = 0
self._max_reconnections: Optional[int] = max_reconnections
self._closed: asyncio.Event = asyncio.Event()
@@ -322,9 +324,8 @@ async def connect(self, server: Optional[SsoServer] = None) -> None:
self._connection = await connect(
_server.host, _server.port, ssl=False, timeout=3.0
)
- asyncio.create_task(self.receive()).add_done_callback(
- self._recv_done_cb
- )
+ task = asyncio.create_task(self.receive())
+ task.add_done_callback(self._recv_done_cb)
except ConnectionError as e:
raise
except Exception as e:
@@ -333,13 +334,23 @@ async def connect(self, server: Optional[SsoServer] = None) -> None:
f"server({_server.host}:{_server.port}): " + repr(e)
)
- def _recv_done_cb(self, _task):
+ def _recv_done_cb(self, task: asyncio.Task):
if self._reconnect:
- log.network.warning("receiver stopped, try to reconnect")
- asyncio.create_task(self.reconnect())
+ if (
+ self._max_reconnections
+ and self._reconnect_times >= self._max_reconnections
+ ):
+ log.network.warning(
+ "Max reconnections reached, stop reconnecting"
+ )
+ asyncio.create_task(self.disconnect())
+ else:
+ log.network.warning("receiver stopped, try to reconnect")
+ self._reconnect_times += 1
+ asyncio.create_task(self.reconnect())
else:
log.network.warning("receiver stopped")
- asyncio.create_task(self.close())
+ asyncio.create_task(self.disconnect())
async def disconnect(self) -> None:
"""Disconnect if already connected to the server."""
@@ -360,7 +371,7 @@ async def reconnect(
if not change_server and self._connection:
log.network.warning("reconnecting...")
- await self.connect()
+ await self._connection.reconnect()
await self.register(register_reason=RegPushReason.MsfByNetChange)
log.network.info("reconnected")
return
@@ -425,7 +436,7 @@ async def send(
Returns:
None.
"""
- log.network.debug(f"(send:{seq}): {command_name}")
+ log.network.debug(f"(send: {seq}): {command_name}")
await self.connection.awrite(packet)
async def send_and_wait(
@@ -449,6 +460,7 @@ async def send_and_wait(
await self.send(seq, command_name, packet)
return await self._receive_store.fetch(seq, timeout)
+ # FIXME
async def send_unipkg_and_wait(
self, command_name: str, enc_packet: bytes, seq=-1, timeout=10.0
):
@@ -489,12 +501,10 @@ async def receive(self):
while self.connected:
try:
length: int = (
- int.from_bytes(
- await self.connection.read_bytes(4), "big", signed=False
- )
+ struct.unpack(">i", await self.connection.read_bytes(4))[0]
- 4
)
-
+ # FIXME: length < 0 ?
data = await self.connection.read_bytes(length)
packet = IncomingPacket.parse(
data,
@@ -502,9 +512,8 @@ async def receive(self):
self._siginfo.d2key,
self._siginfo.wt_session_ticket_key,
)
- #
log.network.debug(
- f"(receive:{packet.ret_code}): {packet.command_name}"
+ f"(receive: {packet.ret_code}): {packet.command_name}"
)
# do not block receive
asyncio.create_task(self._handle_incoming_packet(packet))
From 21aa1eefe394adb5e39c3c0bfba9cb1781acb4fa Mon Sep 17 00:00:00 2001
From: yanyongyu <42488585+yanyongyu@users.noreply.github.com>
Date: Fri, 8 Apr 2022 11:30:59 +0800
Subject: [PATCH 068/113] :wheelchair: fix reconnect init
---
cai/client/client.py | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/cai/client/client.py b/cai/client/client.py
index 6cf26073..ddb2f067 100644
--- a/cai/client/client.py
+++ b/cai/client/client.py
@@ -372,7 +372,8 @@ async def reconnect(
if not change_server and self._connection:
log.network.warning("reconnecting...")
await self._connection.reconnect()
- await self.register(register_reason=RegPushReason.MsfByNetChange)
+ # FIXME: register reason msfByNetChange?
+ await self._init(drop_offline_msg=False)
log.network.info("reconnected")
return
@@ -642,13 +643,15 @@ async def _handle_login_response(
response.uin, response.status, "Unknown login status."
)
- async def _init(self) -> None:
+ async def _init(self, drop_offline_msg: bool = True) -> None:
if not self.connected or self.status == OnlineStatus.Offline:
raise RuntimeError("Client is offline.")
- self._init_flag = True
+ self._init_flag = drop_offline_msg
+
+ previous_status = self._status or OnlineStatus.Online
# register client online status
- await self.register()
+ await self.register(status=previous_status)
# force refresh group list
await self._refresh_group_list()
# force refresh friend list
From 55e9fac9bfdcbffd8e282f27c325ae1bcd5d7730 Mon Sep 17 00:00:00 2001
From: yanyongyu <42488585+yanyongyu@users.noreply.github.com>
Date: Fri, 8 Apr 2022 12:32:03 +0800
Subject: [PATCH 069/113] :art: remove device handle param
---
cai/api/client.py | 2 +-
cai/api/flow.py | 5 +-
cai/client/__init__.py | 1 +
cai/client/client.py | 28 +++---
cai/client/command.py | 2 +-
cai/client/config_push/__init__.py | 2 +-
cai/client/events/__init__.py | 10 +-
cai/client/events/common.py | 1 +
cai/client/events/group.py | 1 -
cai/client/friendlist/__init__.py | 6 +-
cai/client/heartbeat/__init__.py | 2 +-
cai/client/message_service/__init__.py | 8 +-
cai/client/message_service/decoders.py | 2 +-
cai/client/message_service/models.py | 4 +-
cai/client/multi_msg/long_msg.py | 2 +-
cai/client/online_push/__init__.py | 134 ++++++++++++-------------
cai/client/status_service/__init__.py | 8 +-
cai/client/wtlogin/__init__.py | 10 +-
18 files changed, 114 insertions(+), 114 deletions(-)
diff --git a/cai/api/client.py b/cai/api/client.py
index 6f280059..76b917c4 100644
--- a/cai/api/client.py
+++ b/cai/api/client.py
@@ -24,9 +24,9 @@
VoiceElement,
)
-from .flow import Events as _Events
from .group import Group as _Group
from .login import Login as _Login
+from .flow import Events as _Events
from .friend import Friend as _Friend
from .error import (
BotMutedException,
diff --git a/cai/api/flow.py b/cai/api/flow.py
index 27a3cc9f..1fea701b 100644
--- a/cai/api/flow.py
+++ b/cai/api/flow.py
@@ -7,7 +7,7 @@
https://github.com/cscs181/CAI/blob/master/LICENSE
"""
-from typing import Callable, Awaitable, TYPE_CHECKING
+from typing import TYPE_CHECKING, Callable, Awaitable
from cai.log import logger
from cai.client import HANDLERS, Event, Client, Command, IncomingPacket
@@ -20,8 +20,7 @@
class Events(BaseAPI):
def add_event_listener(
- self,
- listener: Callable[["Client_T", Event], Awaitable[None]]
+ self, listener: Callable[["Client_T", Event], Awaitable[None]]
):
"""Add event listener.
diff --git a/cai/client/__init__.py b/cai/client/__init__.py
index dbf1d67b..6a5d5624 100644
--- a/cai/client/__init__.py
+++ b/cai/client/__init__.py
@@ -10,6 +10,7 @@
"""
from cai.client.events.base import Event
+
from .command import Command
from .packet import IncomingPacket
from .client import HANDLERS, Client
diff --git a/cai/client/client.py b/cai/client/client.py
index ddb2f067..e8d904f5 100644
--- a/cai/client/client.py
+++ b/cai/client/client.py
@@ -111,9 +111,7 @@
encode_login_request2_captcha,
)
-HT = Callable[
- ["Client", IncomingPacket, Tuple[DeviceInfo, ApkInfo]], Awaitable[Command]
-]
+HT = Callable[["Client", IncomingPacket], Awaitable[Command]]
LT = Callable[["Client", Event], Awaitable[None]]
HANDLERS: Dict[str, HT] = {
@@ -135,7 +133,6 @@
"OnlinePush.PbC2CMsgSync": handle_c2c_sync,
"OnlinePush.PbPushC2CMsg": handle_push_msg,
# "OnlinePush.PbPushBindUinGroupMsg": handle_push_msg, # sub account
- # new
"MultiMsg.ApplyUp": _handle_multi_resp_body,
"OnlinePush.ReqPush": handle_req_push,
}
@@ -347,7 +344,7 @@ def _recv_done_cb(self, task: asyncio.Task):
else:
log.network.warning("receiver stopped, try to reconnect")
self._reconnect_times += 1
- asyncio.create_task(self.reconnect())
+ asyncio.create_task(self.reconnect_and_login())
else:
log.network.warning("receiver stopped")
asyncio.create_task(self.disconnect())
@@ -372,8 +369,6 @@ async def reconnect(
if not change_server and self._connection:
log.network.warning("reconnecting...")
await self._connection.reconnect()
- # FIXME: register reason msfByNetChange?
- await self._init(drop_offline_msg=False)
log.network.info("reconnected")
return
@@ -388,6 +383,13 @@ async def reconnect(
await self.disconnect()
await self.connect(_server)
+ async def reconnect_and_login(
+ self, change_server: bool = False, server: Optional[SsoServer] = None
+ ) -> None:
+ await self.reconnect(change_server=change_server, server=server)
+ # FIXME: register reason msfByNetChange?
+ await self._init(drop_offline_msg=False)
+
async def close(self) -> None:
"""Close the client and logout."""
log.logger.warning("closing client")
@@ -485,9 +487,7 @@ async def send_unipkg_and_wait(
async def _handle_incoming_packet(self, in_packet: IncomingPacket) -> None:
try:
handler = HANDLERS.get(in_packet.command_name, _packet_to_command)
- packet = await handler(
- self, in_packet, (self.device, self.apk_info)
- )
+ packet = await handler(self, in_packet)
self._receive_store.store_result(packet.seq, packet)
except Exception as e:
# TODO: handle exception
@@ -644,12 +644,14 @@ async def _handle_login_response(
)
async def _init(self, drop_offline_msg: bool = True) -> None:
- if not self.connected or self.status == OnlineStatus.Offline:
- raise RuntimeError("Client is offline.")
+ if not self.connected:
+ raise RuntimeError("Client not connected.")
self._init_flag = drop_offline_msg
previous_status = self._status or OnlineStatus.Online
+ if previous_status in (OnlineStatus.Offline, OnlineStatus.Unknown):
+ previous_status = OnlineStatus.Online
# register client online status
await self.register(status=previous_status)
# force refresh group list
@@ -1050,7 +1052,7 @@ async def heartbeat(self) -> None:
self._heartbeat_enabled = True
- while self._heartbeat_enabled and not self._connection.closed:
+ while self._heartbeat_enabled and self.connected:
seq = self.next_seq()
packet = encode_heartbeat(
seq,
diff --git a/cai/client/command.py b/cai/client/command.py
index 1e7d726e..e930b111 100644
--- a/cai/client/command.py
+++ b/cai/client/command.py
@@ -31,7 +31,7 @@ class UnhandledCommand(Command):
async def _packet_to_command(
- client: "Client", packet: IncomingPacket, _device
+ client: "Client", packet: IncomingPacket
) -> UnhandledCommand:
return UnhandledCommand(
packet.uin,
diff --git a/cai/client/config_push/__init__.py b/cai/client/config_push/__init__.py
index c1b9bf27..516a4ac8 100644
--- a/cai/client/config_push/__init__.py
+++ b/cai/client/config_push/__init__.py
@@ -75,7 +75,7 @@ def encode_config_push_response(
# ConfigPushSvc.PushReq
async def handle_config_push_request(
- client: "Client", packet: IncomingPacket, _device
+ client: "Client", packet: IncomingPacket
) -> ConfigPushCommand:
command = ConfigPushCommand.decode_push_req(
packet.uin,
diff --git a/cai/client/events/__init__.py b/cai/client/events/__init__.py
index 51d507c5..183ef0b9 100644
--- a/cai/client/events/__init__.py
+++ b/cai/client/events/__init__.py
@@ -1,5 +1,11 @@
from .common import NudgeEvent
-from .group import GroupEvent, MemberMutedEvent, MemberUnMutedEvent, MemberRecallMessageEvent
+from .group import (
+ GroupEvent,
+ MemberMutedEvent,
+ MemberUnMutedEvent,
+ MemberRecallMessageEvent,
+)
+
# from .friend import *
@@ -8,5 +14,5 @@
"MemberMutedEvent",
"MemberUnMutedEvent",
"MemberRecallMessageEvent",
- "NudgeEvent"
+ "NudgeEvent",
]
diff --git a/cai/client/events/common.py b/cai/client/events/common.py
index 158847ac..5a4d1524 100644
--- a/cai/client/events/common.py
+++ b/cai/client/events/common.py
@@ -1,5 +1,6 @@
from typing import Optional
from dataclasses import dataclass
+
from .base import Event
diff --git a/cai/client/events/group.py b/cai/client/events/group.py
index d3e2bd29..ff61ec8d 100644
--- a/cai/client/events/group.py
+++ b/cai/client/events/group.py
@@ -34,4 +34,3 @@ class MemberRecallMessageEvent(GroupEvent):
msg_rand: int
msg_seq: int
msg_time: int
-
diff --git a/cai/client/friendlist/__init__.py b/cai/client/friendlist/__init__.py
index 0dd9c983..9a71ddf2 100644
--- a/cai/client/friendlist/__init__.py
+++ b/cai/client/friendlist/__init__.py
@@ -104,7 +104,7 @@ def encode_get_friend_list(
async def handle_friend_list(
- client: "Client", packet: IncomingPacket, _device
+ client: "Client", packet: IncomingPacket
) -> "FriendListCommand":
return FriendListCommand.decode_response(
packet.uin,
@@ -167,7 +167,7 @@ def encode_get_troop_list(
async def handle_troop_list(
- client: "Client", packet: IncomingPacket, _device
+ client: "Client", packet: IncomingPacket
) -> TroopListCommand:
return TroopListCommand.decode_response(
packet.uin,
@@ -230,7 +230,7 @@ def encode_get_troop_member_list(
async def handle_troop_member_list(
- client: "Client", packet: IncomingPacket, _device
+ client: "Client", packet: IncomingPacket
) -> TroopMemberListCommand:
return TroopMemberListCommand.decode_response(
packet.uin,
diff --git a/cai/client/heartbeat/__init__.py b/cai/client/heartbeat/__init__.py
index b2b516fd..e9af60f9 100644
--- a/cai/client/heartbeat/__init__.py
+++ b/cai/client/heartbeat/__init__.py
@@ -65,7 +65,7 @@ class Heartbeat(Command):
async def handle_heartbeat(
- _client: "Client", packet: IncomingPacket, _device
+ client: "Client", packet: IncomingPacket
) -> Heartbeat:
return Heartbeat(
packet.uin, packet.seq, packet.ret_code, packet.command_name
diff --git a/cai/client/message_service/__init__.py b/cai/client/message_service/__init__.py
index def447ed..515d4cf6 100644
--- a/cai/client/message_service/__init__.py
+++ b/cai/client/message_service/__init__.py
@@ -102,7 +102,7 @@ def encode_get_message(
async def handle_get_message(
- client: "Client", packet: IncomingPacket, _device
+ client: "Client", packet: IncomingPacket
) -> "GetMessageCommand":
"""Handle Pb Get Message response.
@@ -247,7 +247,7 @@ def encode_delete_message(
async def handle_push_notify(
- client: "Client", packet: IncomingPacket, _device
+ client: "Client", packet: IncomingPacket
) -> PushNotifyCommand:
"""Handle Push Notify Command.
@@ -304,10 +304,10 @@ async def handle_push_notify(
# MessageSvc.PushForceOffline
async def handle_force_offline(
- client: "Client", packet: IncomingPacket, _device
+ client: "Client", packet: IncomingPacket
) -> PushForceOfflineCommand:
client._status = OnlineStatus.Offline
- await client.close()
+ await client.disconnect()
request = PushForceOfflineCommand.decode_response(
packet.uin,
packet.seq,
diff --git a/cai/client/message_service/decoders.py b/cai/client/message_service/decoders.py
index da4f456a..f17b2f50 100644
--- a/cai/client/message_service/decoders.py
+++ b/cai/client/message_service/decoders.py
@@ -13,8 +13,8 @@
from typing import Dict, List, Callable, Optional, Sequence
from cai.log import logger
-from cai.client.events.base import Event
from cai.pb.msf.msg.comm import Msg
+from cai.client.events.base import Event
from cai.pb.im.msg.msg_body import Ptt, Elem
from cai.pb.im.msg.service.comm_elem import (
MsgElemInfo_servtype2,
diff --git a/cai/client/message_service/models.py b/cai/client/message_service/models.py
index 3f1ad89e..821bd3f6 100644
--- a/cai/client/message_service/models.py
+++ b/cai/client/message_service/models.py
@@ -12,11 +12,11 @@
import abc
from enum import IntEnum
from dataclasses import dataclass
-from typing import List, Optional, Union
+from typing import List, Union, Optional
-from cai.client.events.base import Event
from cai.pb.msf.msg.comm import Msg
from cai.pb.im.msg.msg_body import Ptt
+from cai.client.events.base import Event
class PokeType(IntEnum):
diff --git a/cai/client/multi_msg/long_msg.py b/cai/client/multi_msg/long_msg.py
index 0f635148..87a2aa5d 100644
--- a/cai/client/multi_msg/long_msg.py
+++ b/cai/client/multi_msg/long_msg.py
@@ -68,7 +68,7 @@ async def build_multi_apply_up_pkg(
async def _handle_multi_resp_body(
- client: "Client", pkg: "IncomingPacket", _device
+ client: "Client", pkg: "IncomingPacket"
) -> MultiApplyResp:
mrb = MultiRspBody.FromString(pkg.data).multimsgApplyupRsp
if not mrb:
diff --git a/cai/client/online_push/__init__.py b/cai/client/online_push/__init__.py
index 5402986e..bec45a51 100644
--- a/cai/client/online_push/__init__.py
+++ b/cai/client/online_push/__init__.py
@@ -10,15 +10,15 @@
"""
from typing import TYPE_CHECKING, List, Tuple, Optional, Sequence
-from jce import types, JceDecoder, JceStruct, JceEncoder
+from jce import JceStruct, JceDecoder, JceEncoder, types
from cai.log import logger
from cai.utils.binary import Packet
-from cai.utils.jce import RequestPacketVersion3, RequestPacket
from cai.client.message_service import MESSAGE_DECODERS
from cai.client.packet import UniPacket, IncomingPacket
from cai.settings.device import DeviceInfo as _DeviceInfo_t
-from cai.pb.im.oidb.group0x857.group0x857_pb2 import NotifyMsgBody, TemplParam
+from cai.utils.jce import RequestPacket, RequestPacketVersion3
+from cai.pb.im.oidb.group0x857.group0x857_pb2 import TemplParam, NotifyMsgBody
from .. import events
from ...settings.protocol import ApkInfo
@@ -29,12 +29,12 @@
from cai.client import Client
+# OnlinePush.RespPush
def encode_push_response(
seq: int,
session_id: bytes,
uin: int,
d2key: bytes,
- resp_uin: int, # warn: unused var
svrip: int,
delete_messages: List[DelMsgInfo] = [],
push_token: Optional[bytes] = None,
@@ -55,7 +55,6 @@ def encode_push_response(
session_id (bytes): Session ID.
uin (int): User QQ number.
d2key (bytes): Siginfo d2 key.
- resp_uin (int): Push response uin.
svrip (int): Svrip from push packet.
delete_messages (List[DelMsgInfo]): List of delete messages.
push_token (Optional[bytes]): Push token from push packet.
@@ -88,7 +87,7 @@ def encode_push_response(
async def handle_c2c_sync(
- client: "Client", packet: IncomingPacket, _device
+ client: "Client", packet: IncomingPacket
) -> PushMsgCommand:
"""Handle C2C Message Sync.
@@ -116,7 +115,6 @@ async def handle_c2c_sync(
client._session_id,
client.uin,
client._siginfo.d2key,
- message.head.from_uin,
push.push.svrip,
push_token=push.push.push_token or None,
)
@@ -139,7 +137,6 @@ async def handle_c2c_sync(
async def handle_push_msg(
client: "Client",
packet: IncomingPacket,
- device: Tuple[_DeviceInfo_t, ApkInfo],
) -> PushMsgCommand:
"""Handle Push Message Command.
@@ -148,7 +145,6 @@ async def handle_push_msg(
com.tencent.mobileqq.app.MessageHandler.b
"""
- device = device[0]
push = PushMsgCommand.decode_response(
packet.uin,
@@ -170,16 +166,15 @@ async def handle_push_msg(
client._session_id,
client.uin,
client._siginfo.d2key,
- client.uin,
push.push.svrip,
push_token=push.push.push_token or None,
service_type=1,
device_info=DeviceInfo(
net_type=1,
- dev_type=device.model,
- os_ver=device.version.release,
- vendor_name=device.vendor_name,
- vendor_os_name=device.vendor_os_name,
+ dev_type=client.device.model,
+ os_ver=client.device.version.release,
+ vendor_name=client.device.vendor_name,
+ vendor_os_name=client.device.vendor_os_name,
),
)
await client.send(push.seq, "OnlinePush.RespPush", resp_packet)
@@ -195,7 +190,6 @@ async def handle_push_msg(
client._session_id,
client.uin,
client._siginfo.d2key,
- message.head.from_uin,
push.push.svrip,
[delete_info],
push_token=push.push.push_token or None,
@@ -233,26 +227,30 @@ def _parse_poke(params: Sequence[TemplParam]) -> dict:
return res
-"""def encode_resp_push_pkg(uin: int, svrip: int, seq: int, items: Sequence[DelMsgInfo]) -> bytes:
- pkg = SvcRespPushMsg(
- uin=uin,
- del_infos=items,
- svrip=svrip & 0xffffffff,
- service_type=0
- )
- return RequestPacketVersion3(
- servant_name="OnlinePush",
- func_name="SvcRespPushMsg",
- req_id=seq,
- data=types.MAP({types.STRING("SvcRespPushMsg"): types.BYTES(SvcRespPushMsg.to_bytes(0, pkg))})
- ).encode()
-"""
+# OnlinePush.SvcRespPushMsg
+# def encode_resp_push_pkg(
+# uin: int, svrip: int, seq: int, items: Sequence[DelMsgInfo]
+# ) -> bytes:
+# pkg = SvcRespPushMsg(
+# uin=uin, del_infos=items, svrip=svrip & 0xFFFFFFFF, service_type=0
+# )
+# return RequestPacketVersion3(
+# servant_name="OnlinePush",
+# func_name="SvcRespPushMsg",
+# req_id=seq,
+# data=types.MAP(
+# {
+# types.STRING("SvcRespPushMsg"): types.BYTES(
+# SvcRespPushMsg.to_bytes(0, pkg)
+# )
+# }
+# ),
+# ).encode()
+
# OnlinePush.ReqPush
async def handle_req_push(
- client: "Client",
- packet: IncomingPacket,
- device: Tuple[_DeviceInfo_t, ApkInfo],
+ client: "Client", packet: IncomingPacket
) -> PushMsgCommand:
body = JceDecoder.decode_bytes(
JceDecoder.decode_single( # type: ignore
@@ -260,7 +258,12 @@ async def handle_req_push(
)[1]["req"]["OnlinePushPack.SvcReqPushMsg"]
)[0]
- _uin, stime, push_type, content = body[0], body[1], body[2][0][2], body[2][0][6]
+ _uin, stime, push_type, content = (
+ body[0],
+ body[1],
+ body[2][0][2],
+ body[2][0][6],
+ )
if push_type == 732: # group
gid = int.from_bytes(content[0:4], "big")
@@ -268,38 +271,37 @@ async def handle_req_push(
if stype in (0x14, 0x11):
notify = NotifyMsgBody.FromString(content[7:])
if stype == 0x14: # nudge
- client.dispatch_event(events.NudgeEvent(
- **_parse_poke(notify.optGeneralGrayTip.msgTemplParam),
- group=gid
- ))
+ client.dispatch_event(
+ events.NudgeEvent(
+ **_parse_poke(notify.optGeneralGrayTip.msgTemplParam),
+ group=gid,
+ )
+ )
elif stype == 0x11: # recall
msg = notify.optMsgRecall.recalledMsgList[0]
- client.dispatch_event(events.MemberRecallMessageEvent(
- gid,
- notify.optMsgRecall.uin,
- notify.optMsgRecall.opType,
- msg.authorUin,
- msg.msgRandom,
- msg.seq,
- msg.time
- ))
- elif stype == 0x0c: # mute event
+ client.dispatch_event(
+ events.MemberRecallMessageEvent(
+ gid,
+ notify.optMsgRecall.uin,
+ notify.optMsgRecall.opType,
+ msg.authorUin,
+ msg.msgRandom,
+ msg.seq,
+ msg.time,
+ )
+ )
+ elif stype == 0x0C: # mute event
operator = int.from_bytes(content[6:10], "big", signed=False)
target = int.from_bytes(content[16:20], "big", signed=False)
duration = int.from_bytes(content[20:24], "big", signed=False)
if duration > 0: # muted
- client.dispatch_event(events.MemberMutedEvent(
- gid,
- operator,
- target,
- duration
- ))
+ client.dispatch_event(
+ events.MemberMutedEvent(gid, operator, target, duration)
+ )
else:
- client.dispatch_event(events.MemberUnMutedEvent(
- gid,
- operator,
- target
- ))
+ client.dispatch_event(
+ events.MemberUnMutedEvent(gid, operator, target)
+ )
elif push_type == 528:
pass
# TODO: parse friend event
@@ -312,21 +314,13 @@ async def handle_req_push(
client._session_id,
_uin,
client._siginfo.d2key,
- client.uin,
- body[3] & 0xffffffff,
- [DelMsgInfo(
- from_uin=_uin,
- msg_seq=body[1],
- msg_time=stime
- )]
- )
+ body[3] & 0xFFFFFFFF,
+ [DelMsgInfo(from_uin=_uin, msg_seq=body[1], msg_time=stime)],
+ ),
)
return PushMsgCommand(
- packet.uin,
- packet.seq,
- packet.ret_code,
- packet.command_name
+ packet.uin, packet.seq, packet.ret_code, packet.command_name
)
diff --git a/cai/client/status_service/__init__.py b/cai/client/status_service/__init__.py
index 40889b9b..b2768079 100644
--- a/cai/client/status_service/__init__.py
+++ b/cai/client/status_service/__init__.py
@@ -296,7 +296,7 @@ def encode_set_status(
async def handle_register_response(
- client: "Client", packet: IncomingPacket, _device
+ client: "Client", packet: IncomingPacket
) -> SvcRegisterResponse:
response = SvcRegisterResponse.decode_response(
packet.uin,
@@ -378,7 +378,7 @@ def encode_force_offline_response(
async def handle_request_offline(
- client: "Client", packet: IncomingPacket, device: Tuple[DeviceInfo, ApkInfo]
+ client: "Client", packet: IncomingPacket
) -> MSFForceOfflineCommand:
request = MSFForceOfflineCommand.decode_response(
packet.uin,
@@ -404,8 +404,8 @@ async def handle_request_offline(
client._siginfo.d2key,
request.request.uin,
request.request.seq_no,
- device[1].sub_app_id,
- device[0],
+ client.apk_info.sub_app_id,
+ client.device,
)
await client.send(seq, "StatSvc.RspMSFForceOffline", resp_packet)
client._status = OnlineStatus.Offline
diff --git a/cai/client/wtlogin/__init__.py b/cai/client/wtlogin/__init__.py
index e7d87742..65783cc9 100644
--- a/cai/client/wtlogin/__init__.py
+++ b/cai/client/wtlogin/__init__.py
@@ -768,17 +768,15 @@ def encode_exchange_emp_15(
async def handle_oicq_response(
- client: "Client", packet: IncomingPacket, dev: Tuple[DeviceInfo, ApkInfo]
+ client: "Client", packet: IncomingPacket
) -> OICQResponse:
- device, apk_info = dev
-
response = OICQResponse.decode_response(
packet.uin,
packet.seq,
packet.ret_code,
packet.command_name,
packet.data,
- device.tgtgt,
+ client.device.tgtgt,
)
if not isinstance(response, UnknownLoginStatus):
return response
@@ -792,7 +790,7 @@ async def handle_oicq_response(
).encode()
client._t402 = response.t402
client._siginfo.g = md5(
- device.guid + client._siginfo.dpwd + client._t402
+ client.device.guid + client._siginfo.dpwd + client._t402
).digest()
if isinstance(response, LoginSuccess):
@@ -849,7 +847,7 @@ async def handle_oicq_response(
client._password_md5 + bytes(4) + struct.pack(">I", client._uin)
).digest()
decrypted = qqtea_decrypt(response.encrypted_a1, key)
- device.tgtgt = decrypted[51:67]
+ client.device.tgtgt = decrypted[51:67]
elif isinstance(response, NeedCaptcha):
client._t104 = response.t104 or client._t104
elif isinstance(response, DeviceLocked):
From 4220e75503f67dd1e80499796c60f8aabfafe4b6 Mon Sep 17 00:00:00 2001
From: yanyongyu <42488585+yanyongyu@users.noreply.github.com>
Date: Fri, 8 Apr 2022 13:57:56 +0800
Subject: [PATCH 070/113] :arrow_up: upgrade protobuf gen
---
cai/client/highway/decoders.py | 36 +-
cai/client/highway/encoders.py | 70 +-
cai/client/online_push/__init__.py | 6 +-
cai/client/wtlogin/tlv.py | 4 +-
cai/connection/__init__.py | 5 +-
cai/pb/highway/long_msg/long_msg_pb2.py | 52 +-
cai/pb/highway/multi_msg/multi_msg_pb2.py | 46 +-
cai/pb/highway/protocol/highway_head_pb2.py | 106 +-
cai/pb/im/cs/__init__.py | 16 +
cai/pb/im/cs/cmd0x388/__init__.py | 1 +
cai/pb/im/cs/cmd0x388/cmd0x388.proto | 255 +
cai/pb/im/cs/cmd0x388/cmd0x388_pb2.py | 224 +
cai/pb/im/cs/cmd0x388/cmd0x388_pb2.pyi | 802 +++
cai/pb/im/msg/common/common_pb2.py | 258 +-
cai/pb/im/msg/common/common_pb2.pyi | 105 +-
cai/pb/im/msg/msg/msg_pb2.py | 510 +-
cai/pb/im/msg/msg/msg_pb2.pyi | 170 +-
cai/pb/im/msg/msg_body/msg_body_pb2.py | 5696 +----------------
cai/pb/im/msg/msg_body/msg_body_pb2.pyi | 2641 ++++----
cai/pb/im/msg/msg_head/msg_head_pb2.py | 1091 +---
cai/pb/im/msg/msg_head/msg_head_pb2.pyi | 480 +-
cai/pb/im/msg/obj_msg/obj_msg_pb2.py | 275 +-
cai/pb/im/msg/obj_msg/obj_msg_pb2.pyi | 111 +-
cai/pb/im/msg/receipt/receipt_pb2.py | 197 +-
cai/pb/im/msg/receipt/receipt_pb2.pyi | 64 +-
.../im/msg/service/comm_elem/comm_elem_pb2.py | 2105 +-----
.../msg/service/comm_elem/comm_elem_pb2.pyi | 925 ++-
cai/pb/im/oidb/cmd0x388/__init__.py | 0
cai/pb/im/oidb/cmd0x388/cmd0x388.proto | 255 -
cai/pb/im/oidb/cmd0x388/cmd0x388_pb2.py | 225 -
cai/pb/im/oidb/cmd0x388/cmd0x388_pb2.pyi | 799 ---
cai/pb/im/oidb/cmd0x769/cmd0x769.proto | 2 +-
cai/pb/im/oidb/cmd0x769/cmd0x769_pb2.py | 877 +--
cai/pb/im/oidb/cmd0x769/cmd0x769_pb2.pyi | 334 +-
cai/pb/im/oidb/cmd0xd50/cmd0xd50_pb2.py | 553 +-
cai/pb/im/oidb/cmd0xd50/cmd0xd50_pb2.pyi | 274 +-
cai/pb/im/oidb/group0x857/group0x857_pb2.py | 52 +-
cai/pb/msf/msg/comm/comm_pb2.py | 1071 +---
cai/pb/msf/msg/comm/comm_pb2.pyi | 461 +-
cai/pb/msf/msg/ctrl/ctrl_pb2.py | 143 +-
cai/pb/msf/msg/ctrl/ctrl_pb2.pyi | 58 +-
cai/pb/msf/msg/onlinepush/onlinepush_pb2.py | 87 +-
cai/pb/msf/msg/onlinepush/onlinepush_pb2.pyi | 32 +-
cai/pb/msf/msg/svc/svc_pb2.py | 5401 +---------------
cai/pb/msf/msg/svc/svc_pb2.pyi | 2130 +++---
cai/pb/wtlogin/data_pb2.py | 184 +-
cai/pb/wtlogin/data_pb2.pyi | 82 +-
47 files changed, 6050 insertions(+), 23221 deletions(-)
create mode 100644 cai/pb/im/cs/__init__.py
create mode 100644 cai/pb/im/cs/cmd0x388/__init__.py
create mode 100644 cai/pb/im/cs/cmd0x388/cmd0x388.proto
create mode 100644 cai/pb/im/cs/cmd0x388/cmd0x388_pb2.py
create mode 100644 cai/pb/im/cs/cmd0x388/cmd0x388_pb2.pyi
delete mode 100644 cai/pb/im/oidb/cmd0x388/__init__.py
delete mode 100644 cai/pb/im/oidb/cmd0x388/cmd0x388.proto
delete mode 100644 cai/pb/im/oidb/cmd0x388/cmd0x388_pb2.py
delete mode 100644 cai/pb/im/oidb/cmd0x388/cmd0x388_pb2.pyi
diff --git a/cai/client/highway/decoders.py b/cai/client/highway/decoders.py
index da5e6734..0fd6ee01 100644
--- a/cai/client/highway/decoders.py
+++ b/cai/client/highway/decoders.py
@@ -1,52 +1,52 @@
-from cai.pb.im.oidb.cmd0x388.cmd0x388_pb2 import D388RspBody
+from cai.pb.im.cs.cmd0x388 import RspBody
from .utils import itoa
from .models import UploadResponse, ImageUploadResponse
def decode_upload_image_resp(data: bytes) -> ImageUploadResponse:
- pkg = decode_d388_rsp(data).tryupImgRsp[0]
+ pkg = decode_d388_rsp(data).tryup_img_rsp[0]
if pkg.result != 0:
return ImageUploadResponse(
- resultCode=pkg.result, message=pkg.failMsg.decode()
+ resultCode=pkg.result, message=pkg.fail_msg.decode()
)
- if pkg.fileExit:
- if pkg.imgInfo:
- info = pkg.imgInfo
+ if pkg.file_exit:
+ if pkg.img_info:
+ info = pkg.img_info
# fuck: pkg.fileId != pkg.fileid
return ImageUploadResponse(
isExists=True,
fileId=pkg.fileid,
hasMetaData=True,
- fileType=info.fileType,
- width=info.fileWidth,
- height=info.fileHeight,
+ fileType=info.file_type,
+ width=info.file_width,
+ height=info.file_height,
)
else:
return ImageUploadResponse(isExists=True, fileId=pkg.fileid)
return ImageUploadResponse(
isExists=False,
- uploadAddr=[(itoa(a), p) for a, p in zip(pkg.upIp, pkg.upPort)],
- uploadKey=pkg.upUkey,
+ uploadAddr=[(itoa(a), p) for a, p in zip(pkg.up_ip, pkg.up_port)],
+ uploadKey=pkg.up_ukey,
)
def decode_upload_ptt_resp(data: bytes) -> UploadResponse:
- pkg = decode_d388_rsp(data).tryupPttRsp[0]
+ pkg = decode_d388_rsp(data).tryup_ptt_rsp[0]
if pkg.result != 0:
return UploadResponse(
- resultCode=pkg.result, message=pkg.failMsg.decode()
+ resultCode=pkg.result, message=pkg.fail_msg.decode()
)
- if pkg.fileExit:
+ if pkg.file_exit:
return UploadResponse(isExists=True, fileId=pkg.fileid)
return UploadResponse(
isExists=False,
- uploadAddr=[(itoa(a), p) for a, p in zip(pkg.upIp, pkg.upPort)],
- uploadKey=pkg.upUkey,
+ uploadAddr=[(itoa(a), p) for a, p in zip(pkg.up_ip, pkg.up_port)],
+ uploadKey=pkg.up_ukey,
)
-def decode_d388_rsp(data: bytes) -> D388RspBody:
- return D388RspBody.FromString(data)
+def decode_d388_rsp(data: bytes) -> RspBody:
+ return RspBody.FromString(data)
diff --git a/cai/client/highway/encoders.py b/cai/client/highway/encoders.py
index d96c5859..30425329 100644
--- a/cai/client/highway/encoders.py
+++ b/cai/client/highway/encoders.py
@@ -1,57 +1,53 @@
-from cai.pb.im.oidb.cmd0x388.cmd0x388_pb2 import (
- D388ReqBody,
- TryUpImgReq,
- TryUpPttReq,
-)
+from cai.pb.im.cs.cmd0x388 import ReqBody, TryUpImgReq, TryUpPttReq
def encode_d388_req(
group_code: int, uin: int, md5: bytes, size: int, subcmd: int
-) -> D388ReqBody:
+) -> ReqBody:
img, ptt = None, None
if subcmd == 1: # upload img
fn = md5.hex().upper() + ".jpg"
img = [
TryUpImgReq(
- groupCode=group_code,
- srcUin=uin,
- fileName=fn.encode(),
- fileMd5=md5,
- fileSize=size,
- fileId=0,
- srcTerm=5,
- platformType=9,
- buType=1,
- picType=1003,
- picWidth=1920,
- picHeight=903,
- buildVer=b"8.8.50.2324",
- appPicType=1052,
- originalPic=1,
- srvUpload=0,
+ group_code=group_code,
+ src_uin=uin,
+ file_name=fn.encode(),
+ file_md5=md5,
+ file_size=size,
+ file_id=0,
+ src_term=5,
+ platform_type=9,
+ bu_type=1,
+ pic_type=1003,
+ pic_width=1920,
+ pic_height=903,
+ build_ver=b"8.8.50.2324",
+ app_pic_type=1052,
+ original_pic=1,
+ srv_upload=0,
)
]
elif subcmd == 3: # voice
ptt = [
TryUpPttReq(
- groupCode=group_code,
- srcUin=uin,
- fileMd5=md5,
- fileName=(md5.hex().upper() + ".amr").encode(),
- fileSize=size,
- voiceLength=size,
- voiceType=1,
+ group_code=group_code,
+ src_uin=uin,
+ file_md5=md5,
+ file_name=(md5.hex().upper() + ".amr").encode(),
+ file_size=size,
+ voice_length=size,
+ voice_type=1,
codec=0,
- srcTerm=5,
- platformType=9,
- buType=4,
- innerIp=0,
- buildVer=b"8.8.50.2324",
- newUpChan=True,
+ src_term=5,
+ platform_type=9,
+ bu_type=4,
+ inner_ip=0,
+ build_ver=b"8.8.50.2324",
+ new_up_chan=True,
)
]
else:
ValueError("unsupported subcmd:", subcmd)
- return D388ReqBody(
- netType=8, subcmd=subcmd, tryupImgReq=img, tryupPttReq=ptt
+ return ReqBody(
+ net_type=8, subcmd=subcmd, tryup_img_req=img, tryup_ptt_req=ptt
)
diff --git a/cai/client/online_push/__init__.py b/cai/client/online_push/__init__.py
index bec45a51..785f700a 100644
--- a/cai/client/online_push/__init__.py
+++ b/cai/client/online_push/__init__.py
@@ -10,18 +10,16 @@
"""
from typing import TYPE_CHECKING, List, Tuple, Optional, Sequence
-from jce import JceStruct, JceDecoder, JceEncoder, types
+from jce import JceStruct, JceDecoder, types
from cai.log import logger
+from cai.client import events
from cai.utils.binary import Packet
from cai.client.message_service import MESSAGE_DECODERS
from cai.client.packet import UniPacket, IncomingPacket
-from cai.settings.device import DeviceInfo as _DeviceInfo_t
from cai.utils.jce import RequestPacket, RequestPacketVersion3
from cai.pb.im.oidb.group0x857.group0x857_pb2 import TemplParam, NotifyMsgBody
-from .. import events
-from ...settings.protocol import ApkInfo
from .jce import DelMsgInfo, DeviceInfo, SvcRespPushMsg
from .command import PushMsg, PushMsgError, PushMsgCommand
diff --git a/cai/client/wtlogin/tlv.py b/cai/client/wtlogin/tlv.py
index 4cbab73e..a6ec6070 100644
--- a/cai/client/wtlogin/tlv.py
+++ b/cai/client/wtlogin/tlv.py
@@ -12,7 +12,7 @@
import random
import struct
from hashlib import md5
-from typing import Any, Dict, List, Union
+from typing import Any, Dict, List, Union, Optional
from rtea import qqtea_decrypt, qqtea_encrypt
@@ -605,7 +605,7 @@ class TlvDecoder:
def decode(
cls,
data: Union[bytes, bytearray],
- tgtgt: bytes = None,
+ tgtgt: Optional[bytes] = None,
offset: int = 0,
tag_size: int = 2,
) -> Dict[int, Any]:
diff --git a/cai/connection/__init__.py b/cai/connection/__init__.py
index 51fd42ab..750a9499 100644
--- a/cai/connection/__init__.py
+++ b/cai/connection/__init__.py
@@ -62,9 +62,8 @@ def closed(self) -> bool:
# return self._writer is None
return self._closed.is_set()
- @property
async def wait_closed(self):
- return self._closed.wait
+ await self._closed.wait()
async def __aenter__(self):
await self._connect()
@@ -96,12 +95,12 @@ async def _connect(self):
self._closed.clear()
async def close(self):
- self._closed.set()
if self._writer:
self._writer.close()
await self._writer.wait_closed()
self._writer = None
self._reader = None
+ self._closed.set()
async def reconnect(self) -> None:
await self.close()
diff --git a/cai/pb/highway/long_msg/long_msg_pb2.py b/cai/pb/highway/long_msg/long_msg_pb2.py
index aac6da9d..dbff969d 100644
--- a/cai/pb/highway/long_msg/long_msg_pb2.py
+++ b/cai/pb/highway/long_msg/long_msg_pb2.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler. DO NOT EDIT!
-# source: long_msg.proto
+# source: cai/pb/highway/long_msg/long_msg.proto
"""Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor
from google.protobuf import descriptor_pool as _descriptor_pool
@@ -14,7 +14,7 @@
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0elong_msg.proto\"5\n\x10LongMsgDeleteReq\x12\x10\n\x08msgResid\x18\x01 \x01(\x0c\x12\x0f\n\x07msgType\x18\x02 \x01(\x05\"4\n\x10LongMsgDeleteRsp\x12\x0e\n\x06result\x18\x01 \x01(\x05\x12\x10\n\x08msgResid\x18\x02 \x01(\x0c\"V\n\x0eLongMsgDownReq\x12\x0e\n\x06srcUin\x18\x01 \x01(\x05\x12\x10\n\x08msgResid\x18\x02 \x01(\x0c\x12\x0f\n\x07msgType\x18\x03 \x01(\x05\x12\x11\n\tneedCache\x18\x04 \x01(\x05\"F\n\x0eLongMsgDownRsp\x12\x0e\n\x06result\x18\x01 \x01(\x05\x12\x10\n\x08msgResid\x18\x02 \x01(\x0c\x12\x12\n\nmsgContent\x18\x03 \x01(\x0c\"\x89\x01\n\x0cLongMsgUpReq\x12\x0f\n\x07msgType\x18\x01 \x01(\x05\x12\x0e\n\x06\x64stUin\x18\x02 \x01(\x03\x12\r\n\x05msgId\x18\x03 \x01(\x05\x12\x12\n\nmsgContent\x18\x04 \x01(\x0c\x12\x11\n\tstoreType\x18\x05 \x01(\x05\x12\x0f\n\x07msgUkey\x18\x06 \x01(\x0c\x12\x11\n\tneedCache\x18\x07 \x01(\x05\"?\n\x0cLongMsgUpRsp\x12\x0e\n\x06result\x18\x01 \x01(\x05\x12\r\n\x05msgId\x18\x02 \x01(\x05\x12\x10\n\x08msgResid\x18\x03 \x01(\x0c\"\xc4\x01\n\x0bLongReqBody\x12\x0e\n\x06subcmd\x18\x01 \x01(\x05\x12\x10\n\x08termType\x18\x02 \x01(\x05\x12\x14\n\x0cplatformType\x18\x03 \x01(\x05\x12\x1f\n\x08msgUpReq\x18\x04 \x03(\x0b\x32\r.LongMsgUpReq\x12#\n\nmsgDownReq\x18\x05 \x03(\x0b\x32\x0f.LongMsgDownReq\x12$\n\tmsgDelReq\x18\x06 \x03(\x0b\x32\x11.LongMsgDeleteReq\x12\x11\n\tagentType\x18\n \x01(\x05\"\x89\x01\n\x0bLongRspBody\x12\x0e\n\x06subcmd\x18\x01 \x01(\x05\x12\x1f\n\x08msgUpRsp\x18\x02 \x03(\x0b\x32\r.LongMsgUpRsp\x12#\n\nmsgDownRsp\x18\x03 \x03(\x0b\x32\x0f.LongMsgDownRsp\x12$\n\tmsgDelRsp\x18\x04 \x03(\x0b\x32\x11.LongMsgDeleteRspB,Z*github.com/Mrs4s/MiraiGo/client/pb/longmsgb\x06proto3')
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n&cai/pb/highway/long_msg/long_msg.proto\"5\n\x10LongMsgDeleteReq\x12\x10\n\x08msgResid\x18\x01 \x01(\x0c\x12\x0f\n\x07msgType\x18\x02 \x01(\x05\"4\n\x10LongMsgDeleteRsp\x12\x0e\n\x06result\x18\x01 \x01(\x05\x12\x10\n\x08msgResid\x18\x02 \x01(\x0c\"V\n\x0eLongMsgDownReq\x12\x0e\n\x06srcUin\x18\x01 \x01(\x05\x12\x10\n\x08msgResid\x18\x02 \x01(\x0c\x12\x0f\n\x07msgType\x18\x03 \x01(\x05\x12\x11\n\tneedCache\x18\x04 \x01(\x05\"F\n\x0eLongMsgDownRsp\x12\x0e\n\x06result\x18\x01 \x01(\x05\x12\x10\n\x08msgResid\x18\x02 \x01(\x0c\x12\x12\n\nmsgContent\x18\x03 \x01(\x0c\"\x89\x01\n\x0cLongMsgUpReq\x12\x0f\n\x07msgType\x18\x01 \x01(\x05\x12\x0e\n\x06\x64stUin\x18\x02 \x01(\x03\x12\r\n\x05msgId\x18\x03 \x01(\x05\x12\x12\n\nmsgContent\x18\x04 \x01(\x0c\x12\x11\n\tstoreType\x18\x05 \x01(\x05\x12\x0f\n\x07msgUkey\x18\x06 \x01(\x0c\x12\x11\n\tneedCache\x18\x07 \x01(\x05\"?\n\x0cLongMsgUpRsp\x12\x0e\n\x06result\x18\x01 \x01(\x05\x12\r\n\x05msgId\x18\x02 \x01(\x05\x12\x10\n\x08msgResid\x18\x03 \x01(\x0c\"\xc4\x01\n\x0bLongReqBody\x12\x0e\n\x06subcmd\x18\x01 \x01(\x05\x12\x10\n\x08termType\x18\x02 \x01(\x05\x12\x14\n\x0cplatformType\x18\x03 \x01(\x05\x12\x1f\n\x08msgUpReq\x18\x04 \x03(\x0b\x32\r.LongMsgUpReq\x12#\n\nmsgDownReq\x18\x05 \x03(\x0b\x32\x0f.LongMsgDownReq\x12$\n\tmsgDelReq\x18\x06 \x03(\x0b\x32\x11.LongMsgDeleteReq\x12\x11\n\tagentType\x18\n \x01(\x05\"\x89\x01\n\x0bLongRspBody\x12\x0e\n\x06subcmd\x18\x01 \x01(\x05\x12\x1f\n\x08msgUpRsp\x18\x02 \x03(\x0b\x32\r.LongMsgUpRsp\x12#\n\nmsgDownRsp\x18\x03 \x03(\x0b\x32\x0f.LongMsgDownRsp\x12$\n\tmsgDelRsp\x18\x04 \x03(\x0b\x32\x11.LongMsgDeleteRspB,Z*github.com/Mrs4s/MiraiGo/client/pb/longmsgb\x06proto3')
@@ -28,56 +28,56 @@
_LONGRSPBODY = DESCRIPTOR.message_types_by_name['LongRspBody']
LongMsgDeleteReq = _reflection.GeneratedProtocolMessageType('LongMsgDeleteReq', (_message.Message,), {
'DESCRIPTOR' : _LONGMSGDELETEREQ,
- '__module__' : 'long_msg_pb2'
+ '__module__' : 'cai.pb.highway.long_msg.long_msg_pb2'
# @@protoc_insertion_point(class_scope:LongMsgDeleteReq)
})
_sym_db.RegisterMessage(LongMsgDeleteReq)
LongMsgDeleteRsp = _reflection.GeneratedProtocolMessageType('LongMsgDeleteRsp', (_message.Message,), {
'DESCRIPTOR' : _LONGMSGDELETERSP,
- '__module__' : 'long_msg_pb2'
+ '__module__' : 'cai.pb.highway.long_msg.long_msg_pb2'
# @@protoc_insertion_point(class_scope:LongMsgDeleteRsp)
})
_sym_db.RegisterMessage(LongMsgDeleteRsp)
LongMsgDownReq = _reflection.GeneratedProtocolMessageType('LongMsgDownReq', (_message.Message,), {
'DESCRIPTOR' : _LONGMSGDOWNREQ,
- '__module__' : 'long_msg_pb2'
+ '__module__' : 'cai.pb.highway.long_msg.long_msg_pb2'
# @@protoc_insertion_point(class_scope:LongMsgDownReq)
})
_sym_db.RegisterMessage(LongMsgDownReq)
LongMsgDownRsp = _reflection.GeneratedProtocolMessageType('LongMsgDownRsp', (_message.Message,), {
'DESCRIPTOR' : _LONGMSGDOWNRSP,
- '__module__' : 'long_msg_pb2'
+ '__module__' : 'cai.pb.highway.long_msg.long_msg_pb2'
# @@protoc_insertion_point(class_scope:LongMsgDownRsp)
})
_sym_db.RegisterMessage(LongMsgDownRsp)
LongMsgUpReq = _reflection.GeneratedProtocolMessageType('LongMsgUpReq', (_message.Message,), {
'DESCRIPTOR' : _LONGMSGUPREQ,
- '__module__' : 'long_msg_pb2'
+ '__module__' : 'cai.pb.highway.long_msg.long_msg_pb2'
# @@protoc_insertion_point(class_scope:LongMsgUpReq)
})
_sym_db.RegisterMessage(LongMsgUpReq)
LongMsgUpRsp = _reflection.GeneratedProtocolMessageType('LongMsgUpRsp', (_message.Message,), {
'DESCRIPTOR' : _LONGMSGUPRSP,
- '__module__' : 'long_msg_pb2'
+ '__module__' : 'cai.pb.highway.long_msg.long_msg_pb2'
# @@protoc_insertion_point(class_scope:LongMsgUpRsp)
})
_sym_db.RegisterMessage(LongMsgUpRsp)
LongReqBody = _reflection.GeneratedProtocolMessageType('LongReqBody', (_message.Message,), {
'DESCRIPTOR' : _LONGREQBODY,
- '__module__' : 'long_msg_pb2'
+ '__module__' : 'cai.pb.highway.long_msg.long_msg_pb2'
# @@protoc_insertion_point(class_scope:LongReqBody)
})
_sym_db.RegisterMessage(LongReqBody)
LongRspBody = _reflection.GeneratedProtocolMessageType('LongRspBody', (_message.Message,), {
'DESCRIPTOR' : _LONGRSPBODY,
- '__module__' : 'long_msg_pb2'
+ '__module__' : 'cai.pb.highway.long_msg.long_msg_pb2'
# @@protoc_insertion_point(class_scope:LongRspBody)
})
_sym_db.RegisterMessage(LongRspBody)
@@ -86,20 +86,20 @@
DESCRIPTOR._options = None
DESCRIPTOR._serialized_options = b'Z*github.com/Mrs4s/MiraiGo/client/pb/longmsg'
- _LONGMSGDELETEREQ._serialized_start=18
- _LONGMSGDELETEREQ._serialized_end=71
- _LONGMSGDELETERSP._serialized_start=73
- _LONGMSGDELETERSP._serialized_end=125
- _LONGMSGDOWNREQ._serialized_start=127
- _LONGMSGDOWNREQ._serialized_end=213
- _LONGMSGDOWNRSP._serialized_start=215
- _LONGMSGDOWNRSP._serialized_end=285
- _LONGMSGUPREQ._serialized_start=288
- _LONGMSGUPREQ._serialized_end=425
- _LONGMSGUPRSP._serialized_start=427
- _LONGMSGUPRSP._serialized_end=490
- _LONGREQBODY._serialized_start=493
- _LONGREQBODY._serialized_end=689
- _LONGRSPBODY._serialized_start=692
- _LONGRSPBODY._serialized_end=829
+ _LONGMSGDELETEREQ._serialized_start=42
+ _LONGMSGDELETEREQ._serialized_end=95
+ _LONGMSGDELETERSP._serialized_start=97
+ _LONGMSGDELETERSP._serialized_end=149
+ _LONGMSGDOWNREQ._serialized_start=151
+ _LONGMSGDOWNREQ._serialized_end=237
+ _LONGMSGDOWNRSP._serialized_start=239
+ _LONGMSGDOWNRSP._serialized_end=309
+ _LONGMSGUPREQ._serialized_start=312
+ _LONGMSGUPREQ._serialized_end=449
+ _LONGMSGUPRSP._serialized_start=451
+ _LONGMSGUPRSP._serialized_end=514
+ _LONGREQBODY._serialized_start=517
+ _LONGREQBODY._serialized_end=713
+ _LONGRSPBODY._serialized_start=716
+ _LONGRSPBODY._serialized_end=853
# @@protoc_insertion_point(module_scope)
diff --git a/cai/pb/highway/multi_msg/multi_msg_pb2.py b/cai/pb/highway/multi_msg/multi_msg_pb2.py
index 73455d32..a5d6dba2 100644
--- a/cai/pb/highway/multi_msg/multi_msg_pb2.py
+++ b/cai/pb/highway/multi_msg/multi_msg_pb2.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler. DO NOT EDIT!
-# source: multi_msg.proto
+# source: cai/pb/highway/multi_msg/multi_msg.proto
"""Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor
from google.protobuf import descriptor_pool as _descriptor_pool
@@ -14,7 +14,7 @@
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0fmulti_msg.proto\" \n\tExternMsg\x12\x13\n\x0b\x63hannelType\x18\x01 \x01(\x05\"I\n\x14MultiMsgApplyDownReq\x12\x10\n\x08msgResid\x18\x01 \x01(\x0c\x12\x0f\n\x07msgType\x18\x02 \x01(\x05\x12\x0e\n\x06srcUin\x18\x03 \x01(\x03\"\xe1\x01\n\x14MultiMsgApplyDownRsp\x12\x0e\n\x06result\x18\x01 \x01(\x05\x12\x15\n\rthumbDownPara\x18\x02 \x01(\x0c\x12\x0e\n\x06msgKey\x18\x03 \x01(\x0c\x12\x14\n\x0cuint32DownIp\x18\x04 \x03(\x05\x12\x16\n\x0euint32DownPort\x18\x05 \x03(\x05\x12\x10\n\x08msgResid\x18\x06 \x01(\x0c\x12!\n\rmsgExternInfo\x18\x07 \x01(\x0b\x32\n.ExternMsg\x12\x15\n\rbytesDownIpV6\x18\x08 \x03(\x0c\x12\x18\n\x10uint32DownV6Port\x18\t \x03(\x05\"g\n\x12MultiMsgApplyUpReq\x12\x0e\n\x06\x64stUin\x18\x01 \x01(\x03\x12\x0f\n\x07msgSize\x18\x02 \x01(\x03\x12\x0e\n\x06msgMd5\x18\x03 \x01(\x0c\x12\x0f\n\x07msgType\x18\x04 \x01(\x05\x12\x0f\n\x07\x61pplyId\x18\x05 \x01(\x05\"\x97\x02\n\x12MultiMsgApplyUpRsp\x12\x0e\n\x06result\x18\x01 \x01(\x05\x12\x10\n\x08msgResid\x18\x02 \x01(\t\x12\x0f\n\x07msgUkey\x18\x03 \x01(\x0c\x12\x12\n\nuint32UpIp\x18\x04 \x03(\x05\x12\x14\n\x0cuint32UpPort\x18\x05 \x03(\x05\x12\x11\n\tblockSize\x18\x06 \x01(\x03\x12\x10\n\x08upOffset\x18\x07 \x01(\x03\x12\x0f\n\x07\x61pplyId\x18\x08 \x01(\x05\x12\x0e\n\x06msgKey\x18\t \x01(\x0c\x12\x0e\n\x06msgSig\x18\n \x01(\x0c\x12!\n\rmsgExternInfo\x18\x0b \x01(\x0b\x32\n.ExternMsg\x12\x13\n\x0b\x62ytesUpIpV6\x18\x0c \x03(\x0c\x12\x16\n\x0euint32UpV6Port\x18\r \x03(\x05\"\xf7\x01\n\x0cMultiReqBody\x12\x0e\n\x06subcmd\x18\x01 \x01(\x05\x12\x10\n\x08termType\x18\x02 \x01(\x05\x12\x14\n\x0cplatformType\x18\x03 \x01(\x05\x12\x0f\n\x07netType\x18\x04 \x01(\x05\x12\x10\n\x08\x62uildVer\x18\x05 \x01(\t\x12/\n\x12multimsgApplyupReq\x18\x06 \x03(\x0b\x32\x13.MultiMsgApplyUpReq\x12\x33\n\x14multimsgApplydownReq\x18\x07 \x03(\x0b\x32\x15.MultiMsgApplyDownReq\x12\x0e\n\x06\x62uType\x18\x08 \x01(\x05\x12\x16\n\x0ereqChannelType\x18\t \x01(\x05\"\x84\x01\n\x0cMultiRspBody\x12\x0e\n\x06subcmd\x18\x01 \x01(\x05\x12/\n\x12multimsgApplyupRsp\x18\x02 \x03(\x0b\x32\x13.MultiMsgApplyUpRsp\x12\x33\n\x14multimsgApplydownRsp\x18\x03 \x03(\x0b\x32\x15.MultiMsgApplyDownRspB.Z,github.com/Mrs4s/MiraiGo/client/pb/multi_msgb\x06proto3')
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n(cai/pb/highway/multi_msg/multi_msg.proto\" \n\tExternMsg\x12\x13\n\x0b\x63hannelType\x18\x01 \x01(\x05\"I\n\x14MultiMsgApplyDownReq\x12\x10\n\x08msgResid\x18\x01 \x01(\x0c\x12\x0f\n\x07msgType\x18\x02 \x01(\x05\x12\x0e\n\x06srcUin\x18\x03 \x01(\x03\"\xe1\x01\n\x14MultiMsgApplyDownRsp\x12\x0e\n\x06result\x18\x01 \x01(\x05\x12\x15\n\rthumbDownPara\x18\x02 \x01(\x0c\x12\x0e\n\x06msgKey\x18\x03 \x01(\x0c\x12\x14\n\x0cuint32DownIp\x18\x04 \x03(\x05\x12\x16\n\x0euint32DownPort\x18\x05 \x03(\x05\x12\x10\n\x08msgResid\x18\x06 \x01(\x0c\x12!\n\rmsgExternInfo\x18\x07 \x01(\x0b\x32\n.ExternMsg\x12\x15\n\rbytesDownIpV6\x18\x08 \x03(\x0c\x12\x18\n\x10uint32DownV6Port\x18\t \x03(\x05\"g\n\x12MultiMsgApplyUpReq\x12\x0e\n\x06\x64stUin\x18\x01 \x01(\x03\x12\x0f\n\x07msgSize\x18\x02 \x01(\x03\x12\x0e\n\x06msgMd5\x18\x03 \x01(\x0c\x12\x0f\n\x07msgType\x18\x04 \x01(\x05\x12\x0f\n\x07\x61pplyId\x18\x05 \x01(\x05\"\x97\x02\n\x12MultiMsgApplyUpRsp\x12\x0e\n\x06result\x18\x01 \x01(\x05\x12\x10\n\x08msgResid\x18\x02 \x01(\t\x12\x0f\n\x07msgUkey\x18\x03 \x01(\x0c\x12\x12\n\nuint32UpIp\x18\x04 \x03(\x05\x12\x14\n\x0cuint32UpPort\x18\x05 \x03(\x05\x12\x11\n\tblockSize\x18\x06 \x01(\x03\x12\x10\n\x08upOffset\x18\x07 \x01(\x03\x12\x0f\n\x07\x61pplyId\x18\x08 \x01(\x05\x12\x0e\n\x06msgKey\x18\t \x01(\x0c\x12\x0e\n\x06msgSig\x18\n \x01(\x0c\x12!\n\rmsgExternInfo\x18\x0b \x01(\x0b\x32\n.ExternMsg\x12\x13\n\x0b\x62ytesUpIpV6\x18\x0c \x03(\x0c\x12\x16\n\x0euint32UpV6Port\x18\r \x03(\x05\"\xf7\x01\n\x0cMultiReqBody\x12\x0e\n\x06subcmd\x18\x01 \x01(\x05\x12\x10\n\x08termType\x18\x02 \x01(\x05\x12\x14\n\x0cplatformType\x18\x03 \x01(\x05\x12\x0f\n\x07netType\x18\x04 \x01(\x05\x12\x10\n\x08\x62uildVer\x18\x05 \x01(\t\x12/\n\x12multimsgApplyupReq\x18\x06 \x03(\x0b\x32\x13.MultiMsgApplyUpReq\x12\x33\n\x14multimsgApplydownReq\x18\x07 \x03(\x0b\x32\x15.MultiMsgApplyDownReq\x12\x0e\n\x06\x62uType\x18\x08 \x01(\x05\x12\x16\n\x0ereqChannelType\x18\t \x01(\x05\"\x84\x01\n\x0cMultiRspBody\x12\x0e\n\x06subcmd\x18\x01 \x01(\x05\x12/\n\x12multimsgApplyupRsp\x18\x02 \x03(\x0b\x32\x13.MultiMsgApplyUpRsp\x12\x33\n\x14multimsgApplydownRsp\x18\x03 \x03(\x0b\x32\x15.MultiMsgApplyDownRspB.Z,github.com/Mrs4s/MiraiGo/client/pb/multi_msgb\x06proto3')
@@ -27,49 +27,49 @@
_MULTIRSPBODY = DESCRIPTOR.message_types_by_name['MultiRspBody']
ExternMsg = _reflection.GeneratedProtocolMessageType('ExternMsg', (_message.Message,), {
'DESCRIPTOR' : _EXTERNMSG,
- '__module__' : 'multi_msg_pb2'
+ '__module__' : 'cai.pb.highway.multi_msg.multi_msg_pb2'
# @@protoc_insertion_point(class_scope:ExternMsg)
})
_sym_db.RegisterMessage(ExternMsg)
MultiMsgApplyDownReq = _reflection.GeneratedProtocolMessageType('MultiMsgApplyDownReq', (_message.Message,), {
'DESCRIPTOR' : _MULTIMSGAPPLYDOWNREQ,
- '__module__' : 'multi_msg_pb2'
+ '__module__' : 'cai.pb.highway.multi_msg.multi_msg_pb2'
# @@protoc_insertion_point(class_scope:MultiMsgApplyDownReq)
})
_sym_db.RegisterMessage(MultiMsgApplyDownReq)
MultiMsgApplyDownRsp = _reflection.GeneratedProtocolMessageType('MultiMsgApplyDownRsp', (_message.Message,), {
'DESCRIPTOR' : _MULTIMSGAPPLYDOWNRSP,
- '__module__' : 'multi_msg_pb2'
+ '__module__' : 'cai.pb.highway.multi_msg.multi_msg_pb2'
# @@protoc_insertion_point(class_scope:MultiMsgApplyDownRsp)
})
_sym_db.RegisterMessage(MultiMsgApplyDownRsp)
MultiMsgApplyUpReq = _reflection.GeneratedProtocolMessageType('MultiMsgApplyUpReq', (_message.Message,), {
'DESCRIPTOR' : _MULTIMSGAPPLYUPREQ,
- '__module__' : 'multi_msg_pb2'
+ '__module__' : 'cai.pb.highway.multi_msg.multi_msg_pb2'
# @@protoc_insertion_point(class_scope:MultiMsgApplyUpReq)
})
_sym_db.RegisterMessage(MultiMsgApplyUpReq)
MultiMsgApplyUpRsp = _reflection.GeneratedProtocolMessageType('MultiMsgApplyUpRsp', (_message.Message,), {
'DESCRIPTOR' : _MULTIMSGAPPLYUPRSP,
- '__module__' : 'multi_msg_pb2'
+ '__module__' : 'cai.pb.highway.multi_msg.multi_msg_pb2'
# @@protoc_insertion_point(class_scope:MultiMsgApplyUpRsp)
})
_sym_db.RegisterMessage(MultiMsgApplyUpRsp)
MultiReqBody = _reflection.GeneratedProtocolMessageType('MultiReqBody', (_message.Message,), {
'DESCRIPTOR' : _MULTIREQBODY,
- '__module__' : 'multi_msg_pb2'
+ '__module__' : 'cai.pb.highway.multi_msg.multi_msg_pb2'
# @@protoc_insertion_point(class_scope:MultiReqBody)
})
_sym_db.RegisterMessage(MultiReqBody)
MultiRspBody = _reflection.GeneratedProtocolMessageType('MultiRspBody', (_message.Message,), {
'DESCRIPTOR' : _MULTIRSPBODY,
- '__module__' : 'multi_msg_pb2'
+ '__module__' : 'cai.pb.highway.multi_msg.multi_msg_pb2'
# @@protoc_insertion_point(class_scope:MultiRspBody)
})
_sym_db.RegisterMessage(MultiRspBody)
@@ -78,18 +78,18 @@
DESCRIPTOR._options = None
DESCRIPTOR._serialized_options = b'Z,github.com/Mrs4s/MiraiGo/client/pb/multi_msg'
- _EXTERNMSG._serialized_start=19
- _EXTERNMSG._serialized_end=51
- _MULTIMSGAPPLYDOWNREQ._serialized_start=53
- _MULTIMSGAPPLYDOWNREQ._serialized_end=126
- _MULTIMSGAPPLYDOWNRSP._serialized_start=129
- _MULTIMSGAPPLYDOWNRSP._serialized_end=354
- _MULTIMSGAPPLYUPREQ._serialized_start=356
- _MULTIMSGAPPLYUPREQ._serialized_end=459
- _MULTIMSGAPPLYUPRSP._serialized_start=462
- _MULTIMSGAPPLYUPRSP._serialized_end=741
- _MULTIREQBODY._serialized_start=744
- _MULTIREQBODY._serialized_end=991
- _MULTIRSPBODY._serialized_start=994
- _MULTIRSPBODY._serialized_end=1126
+ _EXTERNMSG._serialized_start=44
+ _EXTERNMSG._serialized_end=76
+ _MULTIMSGAPPLYDOWNREQ._serialized_start=78
+ _MULTIMSGAPPLYDOWNREQ._serialized_end=151
+ _MULTIMSGAPPLYDOWNRSP._serialized_start=154
+ _MULTIMSGAPPLYDOWNRSP._serialized_end=379
+ _MULTIMSGAPPLYUPREQ._serialized_start=381
+ _MULTIMSGAPPLYUPREQ._serialized_end=484
+ _MULTIMSGAPPLYUPRSP._serialized_start=487
+ _MULTIMSGAPPLYUPRSP._serialized_end=766
+ _MULTIREQBODY._serialized_start=769
+ _MULTIREQBODY._serialized_end=1016
+ _MULTIRSPBODY._serialized_start=1019
+ _MULTIRSPBODY._serialized_end=1151
# @@protoc_insertion_point(module_scope)
diff --git a/cai/pb/highway/protocol/highway_head_pb2.py b/cai/pb/highway/protocol/highway_head_pb2.py
index ee212b00..b6d3a24d 100644
--- a/cai/pb/highway/protocol/highway_head_pb2.py
+++ b/cai/pb/highway/protocol/highway_head_pb2.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler. DO NOT EDIT!
-# source: highway_head.proto
+# source: cai/pb/highway/protocol/highway_head.proto
"""Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor
from google.protobuf import descriptor_pool as _descriptor_pool
@@ -14,7 +14,7 @@
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x12highway_head.proto\"\x93\x10\n\x0chighway_head\x1a_\n\x13\x43\x32\x43\x43ommonExtendinfo\x12\x0e\n\x06infoId\x18\x01 \x01(\r\x12\x38\n\x10\x66ilterExtendinfo\x18\x02 \x01(\x0b\x32\x1e.highway_head.FilterExtendinfo\x1a\xc8\x01\n\x0f\x44\x61taHighwayHead\x12\x0f\n\x07version\x18\x01 \x01(\r\x12\x0b\n\x03uin\x18\x02 \x01(\x0c\x12\x0f\n\x07\x63ommand\x18\x03 \x01(\x0c\x12\x0b\n\x03seq\x18\x04 \x01(\r\x12\x12\n\nretryTimes\x18\x05 \x01(\r\x12\r\n\x05\x61ppid\x18\x06 \x01(\r\x12\x10\n\x08\x64\x61taflag\x18\x07 \x01(\r\x12\x11\n\tcommandId\x18\x08 \x01(\r\x12\x10\n\x08\x62uildVer\x18\t \x01(\x0c\x12\x10\n\x08localeId\x18\n \x01(\r\x12\r\n\x05\x65nvId\x18\x0b \x01(\r\x1a&\n\x08\x44\x61taHole\x12\r\n\x05\x62\x65gin\x18\x01 \x01(\x04\x12\x0b\n\x03\x65nd\x18\x02 \x01(\x04\x1a\x64\n\x10\x46ilterExtendinfo\x12\x12\n\nfilterFlag\x18\x01 \x01(\r\x12<\n\x12imageFilterRequest\x18\x02 \x01(\x0b\x32 .highway_head.ImageFilterRequest\x1a\x31\n\x0b\x46ilterStyle\x12\x0f\n\x07styleId\x18\x01 \x01(\r\x12\x11\n\tstyleName\x18\x02 \x01(\x0c\x1a\xa2\x01\n\x12ImageFilterRequest\x12\x11\n\tsessionId\x18\x01 \x01(\x0c\x12\x10\n\x08\x63lientIp\x18\x02 \x01(\r\x12\x0b\n\x03uin\x18\x03 \x01(\x04\x12(\n\x05style\x18\x04 \x01(\x0b\x32\x19.highway_head.FilterStyle\x12\r\n\x05width\x18\x05 \x01(\r\x12\x0e\n\x06height\x18\x06 \x01(\r\x12\x11\n\timageData\x18\x07 \x01(\x0c\x1aK\n\x13ImageFilterResponse\x12\x0f\n\x07retCode\x18\x01 \x01(\x05\x12\x11\n\timageData\x18\x02 \x01(\x0c\x12\x10\n\x08\x63ostTime\x18\x03 \x01(\r\x1a\x36\n\x0cLoginSigHead\x12\x14\n\x0cloginsigType\x18\x01 \x01(\r\x12\x10\n\x08loginsig\x18\x02 \x01(\x0c\x1a\x33\n\x10NewServiceTicket\x12\x11\n\tsignature\x18\x01 \x01(\x0c\x12\x0c\n\x04ukey\x18\x02 \x01(\x0c\x1a\xfa\x01\n\nPicInfoExt\x12\x10\n\x08picWidth\x18\x01 \x01(\r\x12\x11\n\tpicHeight\x18\x02 \x01(\r\x12\x0f\n\x07picFlag\x18\x03 \x01(\r\x12\x10\n\x08\x62usiType\x18\x04 \x01(\r\x12\x0f\n\x07srcTerm\x18\x05 \x01(\r\x12\x10\n\x08platType\x18\x06 \x01(\r\x12\x0f\n\x07netType\x18\x07 \x01(\r\x12\x0f\n\x07imgType\x18\x08 \x01(\r\x12\x12\n\nappPicType\x18\t \x01(\r\x12\x1b\n\x13\x65\x63hoCreatedByServer\x18\n \x01(\x0c\x12\x15\n\rqqmeetGuildId\x18\x0b \x01(\x04\x12\x17\n\x0fqqmeetChannelId\x18\x0c \x01(\x04\x1aT\n\rPicRspExtInfo\x12\x0c\n\x04skey\x18\x01 \x01(\x0c\x12\x10\n\x08\x63lientIp\x18\x02 \x01(\r\x12\x10\n\x08upOffset\x18\x03 \x01(\x04\x12\x11\n\tblockSize\x18\x04 \x01(\x04\x1aZ\n\x0cQueryHoleRsp\x12\x0e\n\x06result\x18\x01 \x01(\r\x12(\n\x08\x64\x61taHole\x18\x02 \x03(\x0b\x32\x16.highway_head.DataHole\x12\x10\n\x08\x63ompFlag\x18\x03 \x01(\x08\x1a\xc9\x01\n\x12ReqDataHighwayHead\x12/\n\x08\x62\x61sehead\x18\x01 \x01(\x0b\x32\x1d.highway_head.DataHighwayHead\x12&\n\x07seghead\x18\x02 \x01(\x0b\x32\x15.highway_head.SegHead\x12\x15\n\rreqExtendinfo\x18\x03 \x01(\x0c\x12\x11\n\ttimestamp\x18\x04 \x01(\x04\x12\x30\n\x0cloginSigHead\x18\x05 \x01(\x0b\x32\x1a.highway_head.LoginSigHead\x1a;\n\x07RspBody\x12\x30\n\x0cqueryHoleRsp\x18\x01 \x01(\x0b\x32\x1a.highway_head.QueryHoleRsp\x1a\x81\x02\n\x12RspDataHighwayHead\x12/\n\x08\x62\x61sehead\x18\x01 \x01(\x0b\x32\x1d.highway_head.DataHighwayHead\x12&\n\x07seghead\x18\x02 \x01(\x0b\x32\x15.highway_head.SegHead\x12\x11\n\terrorCode\x18\x03 \x01(\r\x12\x12\n\nallowRetry\x18\x04 \x01(\r\x12\x11\n\tcachecost\x18\x05 \x01(\r\x12\x0e\n\x06htcost\x18\x06 \x01(\r\x12\x15\n\rrspExtendinfo\x18\x07 \x01(\x0c\x12\x11\n\ttimestamp\x18\x08 \x01(\x04\x12\r\n\x05range\x18\t \x01(\x04\x12\x0f\n\x07isReset\x18\n \x01(\r\x1a\xfa\x01\n\x07SegHead\x12\x11\n\tserviceid\x18\x01 \x01(\r\x12\x10\n\x08\x66ilesize\x18\x02 \x01(\x04\x12\x12\n\ndataoffset\x18\x03 \x01(\x04\x12\x12\n\ndatalength\x18\x04 \x01(\r\x12\x0e\n\x06rtcode\x18\x05 \x01(\r\x12\x15\n\rserviceticket\x18\x06 \x01(\x0c\x12\x0c\n\x04\x66lag\x18\x07 \x01(\r\x12\x0b\n\x03md5\x18\x08 \x01(\x0c\x12\x0f\n\x07\x66ileMd5\x18\t \x01(\x0c\x12\x11\n\tcacheAddr\x18\n \x01(\r\x12\x12\n\nqueryTimes\x18\x0b \x01(\r\x12\x15\n\rupdateCacheip\x18\x0c \x01(\r\x12\x11\n\tcachePort\x18\r \x01(\r')
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n*cai/pb/highway/protocol/highway_head.proto\"\x93\x10\n\x0chighway_head\x1a_\n\x13\x43\x32\x43\x43ommonExtendinfo\x12\x0e\n\x06infoId\x18\x01 \x01(\r\x12\x38\n\x10\x66ilterExtendinfo\x18\x02 \x01(\x0b\x32\x1e.highway_head.FilterExtendinfo\x1a\xc8\x01\n\x0f\x44\x61taHighwayHead\x12\x0f\n\x07version\x18\x01 \x01(\r\x12\x0b\n\x03uin\x18\x02 \x01(\x0c\x12\x0f\n\x07\x63ommand\x18\x03 \x01(\x0c\x12\x0b\n\x03seq\x18\x04 \x01(\r\x12\x12\n\nretryTimes\x18\x05 \x01(\r\x12\r\n\x05\x61ppid\x18\x06 \x01(\r\x12\x10\n\x08\x64\x61taflag\x18\x07 \x01(\r\x12\x11\n\tcommandId\x18\x08 \x01(\r\x12\x10\n\x08\x62uildVer\x18\t \x01(\x0c\x12\x10\n\x08localeId\x18\n \x01(\r\x12\r\n\x05\x65nvId\x18\x0b \x01(\r\x1a&\n\x08\x44\x61taHole\x12\r\n\x05\x62\x65gin\x18\x01 \x01(\x04\x12\x0b\n\x03\x65nd\x18\x02 \x01(\x04\x1a\x64\n\x10\x46ilterExtendinfo\x12\x12\n\nfilterFlag\x18\x01 \x01(\r\x12<\n\x12imageFilterRequest\x18\x02 \x01(\x0b\x32 .highway_head.ImageFilterRequest\x1a\x31\n\x0b\x46ilterStyle\x12\x0f\n\x07styleId\x18\x01 \x01(\r\x12\x11\n\tstyleName\x18\x02 \x01(\x0c\x1a\xa2\x01\n\x12ImageFilterRequest\x12\x11\n\tsessionId\x18\x01 \x01(\x0c\x12\x10\n\x08\x63lientIp\x18\x02 \x01(\r\x12\x0b\n\x03uin\x18\x03 \x01(\x04\x12(\n\x05style\x18\x04 \x01(\x0b\x32\x19.highway_head.FilterStyle\x12\r\n\x05width\x18\x05 \x01(\r\x12\x0e\n\x06height\x18\x06 \x01(\r\x12\x11\n\timageData\x18\x07 \x01(\x0c\x1aK\n\x13ImageFilterResponse\x12\x0f\n\x07retCode\x18\x01 \x01(\x05\x12\x11\n\timageData\x18\x02 \x01(\x0c\x12\x10\n\x08\x63ostTime\x18\x03 \x01(\r\x1a\x36\n\x0cLoginSigHead\x12\x14\n\x0cloginsigType\x18\x01 \x01(\r\x12\x10\n\x08loginsig\x18\x02 \x01(\x0c\x1a\x33\n\x10NewServiceTicket\x12\x11\n\tsignature\x18\x01 \x01(\x0c\x12\x0c\n\x04ukey\x18\x02 \x01(\x0c\x1a\xfa\x01\n\nPicInfoExt\x12\x10\n\x08picWidth\x18\x01 \x01(\r\x12\x11\n\tpicHeight\x18\x02 \x01(\r\x12\x0f\n\x07picFlag\x18\x03 \x01(\r\x12\x10\n\x08\x62usiType\x18\x04 \x01(\r\x12\x0f\n\x07srcTerm\x18\x05 \x01(\r\x12\x10\n\x08platType\x18\x06 \x01(\r\x12\x0f\n\x07netType\x18\x07 \x01(\r\x12\x0f\n\x07imgType\x18\x08 \x01(\r\x12\x12\n\nappPicType\x18\t \x01(\r\x12\x1b\n\x13\x65\x63hoCreatedByServer\x18\n \x01(\x0c\x12\x15\n\rqqmeetGuildId\x18\x0b \x01(\x04\x12\x17\n\x0fqqmeetChannelId\x18\x0c \x01(\x04\x1aT\n\rPicRspExtInfo\x12\x0c\n\x04skey\x18\x01 \x01(\x0c\x12\x10\n\x08\x63lientIp\x18\x02 \x01(\r\x12\x10\n\x08upOffset\x18\x03 \x01(\x04\x12\x11\n\tblockSize\x18\x04 \x01(\x04\x1aZ\n\x0cQueryHoleRsp\x12\x0e\n\x06result\x18\x01 \x01(\r\x12(\n\x08\x64\x61taHole\x18\x02 \x03(\x0b\x32\x16.highway_head.DataHole\x12\x10\n\x08\x63ompFlag\x18\x03 \x01(\x08\x1a\xc9\x01\n\x12ReqDataHighwayHead\x12/\n\x08\x62\x61sehead\x18\x01 \x01(\x0b\x32\x1d.highway_head.DataHighwayHead\x12&\n\x07seghead\x18\x02 \x01(\x0b\x32\x15.highway_head.SegHead\x12\x15\n\rreqExtendinfo\x18\x03 \x01(\x0c\x12\x11\n\ttimestamp\x18\x04 \x01(\x04\x12\x30\n\x0cloginSigHead\x18\x05 \x01(\x0b\x32\x1a.highway_head.LoginSigHead\x1a;\n\x07RspBody\x12\x30\n\x0cqueryHoleRsp\x18\x01 \x01(\x0b\x32\x1a.highway_head.QueryHoleRsp\x1a\x81\x02\n\x12RspDataHighwayHead\x12/\n\x08\x62\x61sehead\x18\x01 \x01(\x0b\x32\x1d.highway_head.DataHighwayHead\x12&\n\x07seghead\x18\x02 \x01(\x0b\x32\x15.highway_head.SegHead\x12\x11\n\terrorCode\x18\x03 \x01(\r\x12\x12\n\nallowRetry\x18\x04 \x01(\r\x12\x11\n\tcachecost\x18\x05 \x01(\r\x12\x0e\n\x06htcost\x18\x06 \x01(\r\x12\x15\n\rrspExtendinfo\x18\x07 \x01(\x0c\x12\x11\n\ttimestamp\x18\x08 \x01(\x04\x12\r\n\x05range\x18\t \x01(\x04\x12\x0f\n\x07isReset\x18\n \x01(\r\x1a\xfa\x01\n\x07SegHead\x12\x11\n\tserviceid\x18\x01 \x01(\r\x12\x10\n\x08\x66ilesize\x18\x02 \x01(\x04\x12\x12\n\ndataoffset\x18\x03 \x01(\x04\x12\x12\n\ndatalength\x18\x04 \x01(\r\x12\x0e\n\x06rtcode\x18\x05 \x01(\r\x12\x15\n\rserviceticket\x18\x06 \x01(\x0c\x12\x0c\n\x04\x66lag\x18\x07 \x01(\r\x12\x0b\n\x03md5\x18\x08 \x01(\x0c\x12\x0f\n\x07\x66ileMd5\x18\t \x01(\x0c\x12\x11\n\tcacheAddr\x18\n \x01(\r\x12\x12\n\nqueryTimes\x18\x0b \x01(\r\x12\x15\n\rupdateCacheip\x18\x0c \x01(\r\x12\x11\n\tcachePort\x18\r \x01(\r')
@@ -39,117 +39,117 @@
'C2CCommonExtendinfo' : _reflection.GeneratedProtocolMessageType('C2CCommonExtendinfo', (_message.Message,), {
'DESCRIPTOR' : _HIGHWAY_HEAD_C2CCOMMONEXTENDINFO,
- '__module__' : 'highway_head_pb2'
+ '__module__' : 'cai.pb.highway.protocol.highway_head_pb2'
# @@protoc_insertion_point(class_scope:highway_head.C2CCommonExtendinfo)
})
,
'DataHighwayHead' : _reflection.GeneratedProtocolMessageType('DataHighwayHead', (_message.Message,), {
'DESCRIPTOR' : _HIGHWAY_HEAD_DATAHIGHWAYHEAD,
- '__module__' : 'highway_head_pb2'
+ '__module__' : 'cai.pb.highway.protocol.highway_head_pb2'
# @@protoc_insertion_point(class_scope:highway_head.DataHighwayHead)
})
,
'DataHole' : _reflection.GeneratedProtocolMessageType('DataHole', (_message.Message,), {
'DESCRIPTOR' : _HIGHWAY_HEAD_DATAHOLE,
- '__module__' : 'highway_head_pb2'
+ '__module__' : 'cai.pb.highway.protocol.highway_head_pb2'
# @@protoc_insertion_point(class_scope:highway_head.DataHole)
})
,
'FilterExtendinfo' : _reflection.GeneratedProtocolMessageType('FilterExtendinfo', (_message.Message,), {
'DESCRIPTOR' : _HIGHWAY_HEAD_FILTEREXTENDINFO,
- '__module__' : 'highway_head_pb2'
+ '__module__' : 'cai.pb.highway.protocol.highway_head_pb2'
# @@protoc_insertion_point(class_scope:highway_head.FilterExtendinfo)
})
,
'FilterStyle' : _reflection.GeneratedProtocolMessageType('FilterStyle', (_message.Message,), {
'DESCRIPTOR' : _HIGHWAY_HEAD_FILTERSTYLE,
- '__module__' : 'highway_head_pb2'
+ '__module__' : 'cai.pb.highway.protocol.highway_head_pb2'
# @@protoc_insertion_point(class_scope:highway_head.FilterStyle)
})
,
'ImageFilterRequest' : _reflection.GeneratedProtocolMessageType('ImageFilterRequest', (_message.Message,), {
'DESCRIPTOR' : _HIGHWAY_HEAD_IMAGEFILTERREQUEST,
- '__module__' : 'highway_head_pb2'
+ '__module__' : 'cai.pb.highway.protocol.highway_head_pb2'
# @@protoc_insertion_point(class_scope:highway_head.ImageFilterRequest)
})
,
'ImageFilterResponse' : _reflection.GeneratedProtocolMessageType('ImageFilterResponse', (_message.Message,), {
'DESCRIPTOR' : _HIGHWAY_HEAD_IMAGEFILTERRESPONSE,
- '__module__' : 'highway_head_pb2'
+ '__module__' : 'cai.pb.highway.protocol.highway_head_pb2'
# @@protoc_insertion_point(class_scope:highway_head.ImageFilterResponse)
})
,
'LoginSigHead' : _reflection.GeneratedProtocolMessageType('LoginSigHead', (_message.Message,), {
'DESCRIPTOR' : _HIGHWAY_HEAD_LOGINSIGHEAD,
- '__module__' : 'highway_head_pb2'
+ '__module__' : 'cai.pb.highway.protocol.highway_head_pb2'
# @@protoc_insertion_point(class_scope:highway_head.LoginSigHead)
})
,
'NewServiceTicket' : _reflection.GeneratedProtocolMessageType('NewServiceTicket', (_message.Message,), {
'DESCRIPTOR' : _HIGHWAY_HEAD_NEWSERVICETICKET,
- '__module__' : 'highway_head_pb2'
+ '__module__' : 'cai.pb.highway.protocol.highway_head_pb2'
# @@protoc_insertion_point(class_scope:highway_head.NewServiceTicket)
})
,
'PicInfoExt' : _reflection.GeneratedProtocolMessageType('PicInfoExt', (_message.Message,), {
'DESCRIPTOR' : _HIGHWAY_HEAD_PICINFOEXT,
- '__module__' : 'highway_head_pb2'
+ '__module__' : 'cai.pb.highway.protocol.highway_head_pb2'
# @@protoc_insertion_point(class_scope:highway_head.PicInfoExt)
})
,
'PicRspExtInfo' : _reflection.GeneratedProtocolMessageType('PicRspExtInfo', (_message.Message,), {
'DESCRIPTOR' : _HIGHWAY_HEAD_PICRSPEXTINFO,
- '__module__' : 'highway_head_pb2'
+ '__module__' : 'cai.pb.highway.protocol.highway_head_pb2'
# @@protoc_insertion_point(class_scope:highway_head.PicRspExtInfo)
})
,
'QueryHoleRsp' : _reflection.GeneratedProtocolMessageType('QueryHoleRsp', (_message.Message,), {
'DESCRIPTOR' : _HIGHWAY_HEAD_QUERYHOLERSP,
- '__module__' : 'highway_head_pb2'
+ '__module__' : 'cai.pb.highway.protocol.highway_head_pb2'
# @@protoc_insertion_point(class_scope:highway_head.QueryHoleRsp)
})
,
'ReqDataHighwayHead' : _reflection.GeneratedProtocolMessageType('ReqDataHighwayHead', (_message.Message,), {
'DESCRIPTOR' : _HIGHWAY_HEAD_REQDATAHIGHWAYHEAD,
- '__module__' : 'highway_head_pb2'
+ '__module__' : 'cai.pb.highway.protocol.highway_head_pb2'
# @@protoc_insertion_point(class_scope:highway_head.ReqDataHighwayHead)
})
,
'RspBody' : _reflection.GeneratedProtocolMessageType('RspBody', (_message.Message,), {
'DESCRIPTOR' : _HIGHWAY_HEAD_RSPBODY,
- '__module__' : 'highway_head_pb2'
+ '__module__' : 'cai.pb.highway.protocol.highway_head_pb2'
# @@protoc_insertion_point(class_scope:highway_head.RspBody)
})
,
'RspDataHighwayHead' : _reflection.GeneratedProtocolMessageType('RspDataHighwayHead', (_message.Message,), {
'DESCRIPTOR' : _HIGHWAY_HEAD_RSPDATAHIGHWAYHEAD,
- '__module__' : 'highway_head_pb2'
+ '__module__' : 'cai.pb.highway.protocol.highway_head_pb2'
# @@protoc_insertion_point(class_scope:highway_head.RspDataHighwayHead)
})
,
'SegHead' : _reflection.GeneratedProtocolMessageType('SegHead', (_message.Message,), {
'DESCRIPTOR' : _HIGHWAY_HEAD_SEGHEAD,
- '__module__' : 'highway_head_pb2'
+ '__module__' : 'cai.pb.highway.protocol.highway_head_pb2'
# @@protoc_insertion_point(class_scope:highway_head.SegHead)
})
,
'DESCRIPTOR' : _HIGHWAY_HEAD,
- '__module__' : 'highway_head_pb2'
+ '__module__' : 'cai.pb.highway.protocol.highway_head_pb2'
# @@protoc_insertion_point(class_scope:highway_head)
})
_sym_db.RegisterMessage(highway_head)
@@ -173,38 +173,38 @@
if _descriptor._USE_C_DESCRIPTORS == False:
DESCRIPTOR._options = None
- _HIGHWAY_HEAD._serialized_start=23
- _HIGHWAY_HEAD._serialized_end=2090
- _HIGHWAY_HEAD_C2CCOMMONEXTENDINFO._serialized_start=39
- _HIGHWAY_HEAD_C2CCOMMONEXTENDINFO._serialized_end=134
- _HIGHWAY_HEAD_DATAHIGHWAYHEAD._serialized_start=137
- _HIGHWAY_HEAD_DATAHIGHWAYHEAD._serialized_end=337
- _HIGHWAY_HEAD_DATAHOLE._serialized_start=339
- _HIGHWAY_HEAD_DATAHOLE._serialized_end=377
- _HIGHWAY_HEAD_FILTEREXTENDINFO._serialized_start=379
- _HIGHWAY_HEAD_FILTEREXTENDINFO._serialized_end=479
- _HIGHWAY_HEAD_FILTERSTYLE._serialized_start=481
- _HIGHWAY_HEAD_FILTERSTYLE._serialized_end=530
- _HIGHWAY_HEAD_IMAGEFILTERREQUEST._serialized_start=533
- _HIGHWAY_HEAD_IMAGEFILTERREQUEST._serialized_end=695
- _HIGHWAY_HEAD_IMAGEFILTERRESPONSE._serialized_start=697
- _HIGHWAY_HEAD_IMAGEFILTERRESPONSE._serialized_end=772
- _HIGHWAY_HEAD_LOGINSIGHEAD._serialized_start=774
- _HIGHWAY_HEAD_LOGINSIGHEAD._serialized_end=828
- _HIGHWAY_HEAD_NEWSERVICETICKET._serialized_start=830
- _HIGHWAY_HEAD_NEWSERVICETICKET._serialized_end=881
- _HIGHWAY_HEAD_PICINFOEXT._serialized_start=884
- _HIGHWAY_HEAD_PICINFOEXT._serialized_end=1134
- _HIGHWAY_HEAD_PICRSPEXTINFO._serialized_start=1136
- _HIGHWAY_HEAD_PICRSPEXTINFO._serialized_end=1220
- _HIGHWAY_HEAD_QUERYHOLERSP._serialized_start=1222
- _HIGHWAY_HEAD_QUERYHOLERSP._serialized_end=1312
- _HIGHWAY_HEAD_REQDATAHIGHWAYHEAD._serialized_start=1315
- _HIGHWAY_HEAD_REQDATAHIGHWAYHEAD._serialized_end=1516
- _HIGHWAY_HEAD_RSPBODY._serialized_start=1518
- _HIGHWAY_HEAD_RSPBODY._serialized_end=1577
- _HIGHWAY_HEAD_RSPDATAHIGHWAYHEAD._serialized_start=1580
- _HIGHWAY_HEAD_RSPDATAHIGHWAYHEAD._serialized_end=1837
- _HIGHWAY_HEAD_SEGHEAD._serialized_start=1840
- _HIGHWAY_HEAD_SEGHEAD._serialized_end=2090
+ _HIGHWAY_HEAD._serialized_start=47
+ _HIGHWAY_HEAD._serialized_end=2114
+ _HIGHWAY_HEAD_C2CCOMMONEXTENDINFO._serialized_start=63
+ _HIGHWAY_HEAD_C2CCOMMONEXTENDINFO._serialized_end=158
+ _HIGHWAY_HEAD_DATAHIGHWAYHEAD._serialized_start=161
+ _HIGHWAY_HEAD_DATAHIGHWAYHEAD._serialized_end=361
+ _HIGHWAY_HEAD_DATAHOLE._serialized_start=363
+ _HIGHWAY_HEAD_DATAHOLE._serialized_end=401
+ _HIGHWAY_HEAD_FILTEREXTENDINFO._serialized_start=403
+ _HIGHWAY_HEAD_FILTEREXTENDINFO._serialized_end=503
+ _HIGHWAY_HEAD_FILTERSTYLE._serialized_start=505
+ _HIGHWAY_HEAD_FILTERSTYLE._serialized_end=554
+ _HIGHWAY_HEAD_IMAGEFILTERREQUEST._serialized_start=557
+ _HIGHWAY_HEAD_IMAGEFILTERREQUEST._serialized_end=719
+ _HIGHWAY_HEAD_IMAGEFILTERRESPONSE._serialized_start=721
+ _HIGHWAY_HEAD_IMAGEFILTERRESPONSE._serialized_end=796
+ _HIGHWAY_HEAD_LOGINSIGHEAD._serialized_start=798
+ _HIGHWAY_HEAD_LOGINSIGHEAD._serialized_end=852
+ _HIGHWAY_HEAD_NEWSERVICETICKET._serialized_start=854
+ _HIGHWAY_HEAD_NEWSERVICETICKET._serialized_end=905
+ _HIGHWAY_HEAD_PICINFOEXT._serialized_start=908
+ _HIGHWAY_HEAD_PICINFOEXT._serialized_end=1158
+ _HIGHWAY_HEAD_PICRSPEXTINFO._serialized_start=1160
+ _HIGHWAY_HEAD_PICRSPEXTINFO._serialized_end=1244
+ _HIGHWAY_HEAD_QUERYHOLERSP._serialized_start=1246
+ _HIGHWAY_HEAD_QUERYHOLERSP._serialized_end=1336
+ _HIGHWAY_HEAD_REQDATAHIGHWAYHEAD._serialized_start=1339
+ _HIGHWAY_HEAD_REQDATAHIGHWAYHEAD._serialized_end=1540
+ _HIGHWAY_HEAD_RSPBODY._serialized_start=1542
+ _HIGHWAY_HEAD_RSPBODY._serialized_end=1601
+ _HIGHWAY_HEAD_RSPDATAHIGHWAYHEAD._serialized_start=1604
+ _HIGHWAY_HEAD_RSPDATAHIGHWAYHEAD._serialized_end=1861
+ _HIGHWAY_HEAD_SEGHEAD._serialized_start=1864
+ _HIGHWAY_HEAD_SEGHEAD._serialized_end=2114
# @@protoc_insertion_point(module_scope)
diff --git a/cai/pb/im/cs/__init__.py b/cai/pb/im/cs/__init__.py
new file mode 100644
index 00000000..2c6434f0
--- /dev/null
+++ b/cai/pb/im/cs/__init__.py
@@ -0,0 +1,16 @@
+"""IM CS Protocol Buffer Model Category.
+
+This module is used to store all cs protobuf files.
+
+Generate all protobuf file using:
+
+.. code-block:: bash
+
+ protoc cai/pb/**/*.proto --python_out=. --mypy_out=readable_stubs:.
+
+:Copyright: Copyright (C) 2021-2021 cscs181
+:License: AGPL-3.0 or later. See `LICENSE`_ for detail.
+
+.. _LICENSE:
+ https://github.com/cscs181/CAI/blob/master/LICENSE
+"""
diff --git a/cai/pb/im/cs/cmd0x388/__init__.py b/cai/pb/im/cs/cmd0x388/__init__.py
new file mode 100644
index 00000000..27330430
--- /dev/null
+++ b/cai/pb/im/cs/cmd0x388/__init__.py
@@ -0,0 +1 @@
+from .cmd0x388_pb2 import *
diff --git a/cai/pb/im/cs/cmd0x388/cmd0x388.proto b/cai/pb/im/cs/cmd0x388/cmd0x388.proto
new file mode 100644
index 00000000..f572218c
--- /dev/null
+++ b/cai/pb/im/cs/cmd0x388/cmd0x388.proto
@@ -0,0 +1,255 @@
+syntax = "proto2";
+package im.cs.cmd0x388;
+
+// tencent/im/cs/cmd0x388/cmd0x388.java
+
+message DelImgReq {
+ optional uint64 src_uin = 1;
+ optional uint64 dst_uin = 2;
+ optional uint32 req_term = 3;
+ optional uint32 req_platform_type = 4;
+ optional uint32 bu_type = 5;
+ optional bytes build_ver = 6;
+ optional bytes file_resid = 7;
+ optional uint32 pic_width = 8;
+ optional uint32 pic_height = 9;
+}
+
+message DelImgRsp {
+ optional uint32 result = 1;
+ optional bytes fail_msg = 2;
+ optional bytes file_resid = 3;
+}
+
+message ExpRoamExtendInfo {
+ optional bytes resid = 1;
+}
+
+message ExpRoamPicInfo {
+ optional uint32 shop_flag = 1;
+ optional uint32 pkg_id = 2;
+ optional bytes pic_id = 3;
+}
+
+message ExtensionCommPicTryUp {
+ repeated bytes extinfo = 1;
+}
+
+message ExtensionExpRoamTryUp {
+ repeated ExpRoamPicInfo exproam_pic_info = 1;
+}
+
+message GetImgUrlReq {
+ optional uint64 group_code = 1;
+ optional uint64 dst_uin = 2;
+ optional uint64 fileid = 3;
+ optional bytes file_md5 = 4;
+ optional uint32 url_flag = 5;
+ optional uint32 url_type = 6;
+ optional uint32 req_term = 7;
+ optional uint32 req_platform_type = 8;
+ optional uint32 inner_ip = 9;
+ optional uint32 bu_type = 10;
+ optional bytes build_ver = 11;
+ optional uint64 file_id = 12;
+ optional uint64 file_size = 13;
+ optional uint32 original_pic = 14;
+ optional uint32 retry_req = 15;
+ optional uint32 file_height = 16;
+ optional uint32 file_width = 17;
+ optional uint32 pic_type = 18;
+ optional uint32 pic_up_timestamp = 19;
+ optional uint32 req_transfer_type = 20;
+ optional uint64 qqmeet_guild_id = 21;
+ optional uint64 qqmeet_channel_id = 22;
+ optional bytes download_index = 23;
+}
+
+message GetImgUrlRsp {
+ optional uint64 fileid = 1;
+ optional bytes file_md5 = 2;
+ optional uint32 result = 3;
+ optional bytes fail_msg = 4;
+ optional ImgInfo img_info = 5;
+ repeated bytes thumb_down_url = 6;
+ repeated bytes original_down_url = 7;
+ repeated bytes big_down_url = 8;
+ repeated uint32 down_ip = 9;
+ repeated uint32 down_port = 10;
+ optional bytes down_domain = 11;
+ optional bytes thumb_down_para = 12;
+ optional bytes original_down_para = 13;
+ optional bytes big_down_para = 14;
+ optional uint64 file_id = 15;
+ optional uint32 auto_down_type = 16;
+ repeated uint32 order_down_type = 17;
+ optional bytes big_thumb_down_para = 19;
+ optional uint32 https_url_flag = 20;
+ repeated IPv6Info down_ip6 = 26;
+ optional bytes client_ip6 = 27;
+}
+
+message GetPttUrlReq {
+ optional uint64 group_code = 1;
+ optional uint64 dst_uin = 2;
+ optional uint64 fileid = 3;
+ optional bytes file_md5 = 4;
+ optional uint32 req_term = 5;
+ optional uint32 req_platform_type = 6;
+ optional uint32 inner_ip = 7;
+ optional uint32 bu_type = 8;
+ optional bytes build_ver = 9;
+ optional uint64 file_id = 10;
+ optional bytes file_key = 11;
+ optional uint32 codec = 12;
+ optional uint32 bu_id = 13;
+ optional uint32 req_transfer_type = 14;
+ optional uint32 is_auto = 15;
+}
+
+message GetPttUrlRsp {
+ optional uint64 fileid = 1;
+ optional bytes file_md5 = 2;
+ optional uint32 result = 3;
+ optional bytes fail_msg = 4;
+ repeated bytes down_url = 5;
+ repeated uint32 down_ip = 6;
+ repeated uint32 down_port = 7;
+ optional bytes down_domain = 8;
+ optional bytes down_para = 9;
+ optional uint64 file_id = 10;
+ optional uint32 transfer_type = 11;
+ optional uint32 allow_retry = 12;
+ repeated IPv6Info down_ip6 = 26;
+ optional bytes client_ip6 = 27;
+ optional string domain = 28;
+}
+
+message IPv6Info {
+ optional bytes ip6 = 1;
+ optional uint32 port = 2;
+}
+
+message ImgInfo {
+ optional bytes file_md5 = 1;
+ optional uint32 file_type = 2;
+ optional uint64 file_size = 3;
+ optional uint32 file_width = 4;
+ optional uint32 file_height = 5;
+}
+
+message PicSize {
+ optional uint32 original = 1;
+ optional uint32 thumb = 2;
+ optional uint32 high = 3;
+}
+
+message ReqBody {
+ optional uint32 net_type = 1;
+ optional uint32 subcmd = 2;
+ repeated TryUpImgReq tryup_img_req = 3;
+ repeated GetImgUrlReq getimg_url_req = 4;
+ repeated TryUpPttReq tryup_ptt_req = 5;
+ repeated GetPttUrlReq getptt_url_req = 6;
+ optional uint32 command_id = 7;
+ repeated DelImgReq del_img_req = 8;
+ optional bytes extension = 1001;
+}
+
+message RspBody {
+ optional uint32 client_ip = 1;
+ optional uint32 subcmd = 2;
+ repeated TryUpImgRsp tryup_img_rsp = 3;
+ repeated GetImgUrlRsp getimg_url_rsp = 4;
+ repeated TryUpPttRsp tryup_ptt_rsp = 5;
+ repeated GetPttUrlRsp getptt_url_rsp = 6;
+ repeated DelImgRsp del_img_rsp = 7;
+}
+
+message TryUpImgReq {
+ optional uint64 group_code = 1;
+ optional uint64 src_uin = 2;
+ optional uint64 file_id = 3;
+ optional bytes file_md5 = 4;
+ optional uint64 file_size = 5;
+ optional bytes file_name = 6;
+ optional uint32 src_term = 7;
+ optional uint32 platform_type = 8;
+ optional uint32 bu_type = 9;
+ optional uint32 pic_width = 10;
+ optional uint32 pic_height = 11;
+ optional uint32 pic_type = 12;
+ optional bytes build_ver = 13;
+ optional uint32 inner_ip = 14;
+ optional uint32 app_pic_type = 15;
+ optional uint32 original_pic = 16;
+ optional bytes file_index = 17;
+ optional uint64 dst_uin = 18;
+ optional uint32 srv_upload = 19;
+ optional bytes transfer_url = 20;
+ optional uint64 qqmeet_guild_id = 21;
+ optional uint64 qqmeet_channel_id = 22;
+}
+
+message TryUpImgRsp {
+ optional uint64 file_id = 1;
+ optional uint32 result = 2;
+ optional bytes fail_msg = 3;
+ optional bool file_exit = 4;
+ optional ImgInfo img_info = 5;
+ repeated uint32 up_ip = 6;
+ repeated uint32 up_port = 7;
+ optional bytes up_ukey = 8;
+ optional uint64 fileid = 9;
+ optional uint64 up_offset = 10;
+ optional uint64 block_size = 11;
+ optional bool new_big_chan = 12;
+ repeated IPv6Info up_ip6 = 26;
+ optional bytes client_ip6 = 27;
+ optional bytes download_index = 28;
+ optional TryUpInfo4Busi info4_busi = 1001;
+}
+
+message TryUpInfo4Busi {
+ optional bytes down_domain = 1;
+ optional bytes thumb_down_url = 2;
+ optional bytes original_down_url = 3;
+ optional bytes big_down_url = 4;
+ optional bytes file_resid = 5;
+}
+
+message TryUpPttReq {
+ optional uint64 group_code = 1;
+ optional uint64 src_uin = 2;
+ optional uint64 file_id = 3;
+ optional bytes file_md5 = 4;
+ optional uint64 file_size = 5;
+ optional bytes file_name = 6;
+ optional uint32 src_term = 7;
+ optional uint32 platform_type = 8;
+ optional uint32 bu_type = 9;
+ optional bytes build_ver = 10;
+ optional uint32 inner_ip = 11;
+ optional uint32 voice_length = 12;
+ optional bool new_up_chan = 13;
+ optional uint32 codec = 14;
+ optional uint32 voice_type = 15;
+ optional uint32 bu_id = 16;
+}
+
+message TryUpPttRsp {
+ optional uint64 file_id = 1;
+ optional uint32 result = 2;
+ optional bytes fail_msg = 3;
+ optional bool file_exit = 4;
+ repeated uint32 up_ip = 5;
+ repeated uint32 up_port = 6;
+ optional bytes up_ukey = 7;
+ optional uint64 fileid = 8;
+ optional uint64 up_offset = 9;
+ optional uint64 block_size = 10;
+ optional bytes file_key = 11;
+ optional uint32 channel_type = 12;
+ repeated IPv6Info up_ip6 = 26;
+ optional bytes client_ip6 = 27;
+}
diff --git a/cai/pb/im/cs/cmd0x388/cmd0x388_pb2.py b/cai/pb/im/cs/cmd0x388/cmd0x388_pb2.py
new file mode 100644
index 00000000..b1372a04
--- /dev/null
+++ b/cai/pb/im/cs/cmd0x388/cmd0x388_pb2.py
@@ -0,0 +1,224 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: cai/pb/im/cs/cmd0x388/cmd0x388.proto
+"""Generated protocol buffer code."""
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import message as _message
+from google.protobuf import reflection as _reflection
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$cai/pb/im/cs/cmd0x388/cmd0x388.proto\x12\x0eim.cs.cmd0x388\"\xb9\x01\n\tDelImgReq\x12\x0f\n\x07src_uin\x18\x01 \x01(\x04\x12\x0f\n\x07\x64st_uin\x18\x02 \x01(\x04\x12\x10\n\x08req_term\x18\x03 \x01(\r\x12\x19\n\x11req_platform_type\x18\x04 \x01(\r\x12\x0f\n\x07\x62u_type\x18\x05 \x01(\r\x12\x11\n\tbuild_ver\x18\x06 \x01(\x0c\x12\x12\n\nfile_resid\x18\x07 \x01(\x0c\x12\x11\n\tpic_width\x18\x08 \x01(\r\x12\x12\n\npic_height\x18\t \x01(\r\"A\n\tDelImgRsp\x12\x0e\n\x06result\x18\x01 \x01(\r\x12\x10\n\x08\x66\x61il_msg\x18\x02 \x01(\x0c\x12\x12\n\nfile_resid\x18\x03 \x01(\x0c\"\"\n\x11\x45xpRoamExtendInfo\x12\r\n\x05resid\x18\x01 \x01(\x0c\"C\n\x0e\x45xpRoamPicInfo\x12\x11\n\tshop_flag\x18\x01 \x01(\r\x12\x0e\n\x06pkg_id\x18\x02 \x01(\r\x12\x0e\n\x06pic_id\x18\x03 \x01(\x0c\"(\n\x15\x45xtensionCommPicTryUp\x12\x0f\n\x07\x65xtinfo\x18\x01 \x03(\x0c\"Q\n\x15\x45xtensionExpRoamTryUp\x12\x38\n\x10\x65xproam_pic_info\x18\x01 \x03(\x0b\x32\x1e.im.cs.cmd0x388.ExpRoamPicInfo\"\xe5\x03\n\x0cGetImgUrlReq\x12\x12\n\ngroup_code\x18\x01 \x01(\x04\x12\x0f\n\x07\x64st_uin\x18\x02 \x01(\x04\x12\x0e\n\x06\x66ileid\x18\x03 \x01(\x04\x12\x10\n\x08\x66ile_md5\x18\x04 \x01(\x0c\x12\x10\n\x08url_flag\x18\x05 \x01(\r\x12\x10\n\x08url_type\x18\x06 \x01(\r\x12\x10\n\x08req_term\x18\x07 \x01(\r\x12\x19\n\x11req_platform_type\x18\x08 \x01(\r\x12\x10\n\x08inner_ip\x18\t \x01(\r\x12\x0f\n\x07\x62u_type\x18\n \x01(\r\x12\x11\n\tbuild_ver\x18\x0b \x01(\x0c\x12\x0f\n\x07\x66ile_id\x18\x0c \x01(\x04\x12\x11\n\tfile_size\x18\r \x01(\x04\x12\x14\n\x0coriginal_pic\x18\x0e \x01(\r\x12\x11\n\tretry_req\x18\x0f \x01(\r\x12\x13\n\x0b\x66ile_height\x18\x10 \x01(\r\x12\x12\n\nfile_width\x18\x11 \x01(\r\x12\x10\n\x08pic_type\x18\x12 \x01(\r\x12\x18\n\x10pic_up_timestamp\x18\x13 \x01(\r\x12\x19\n\x11req_transfer_type\x18\x14 \x01(\r\x12\x17\n\x0fqqmeet_guild_id\x18\x15 \x01(\x04\x12\x19\n\x11qqmeet_channel_id\x18\x16 \x01(\x04\x12\x16\n\x0e\x64ownload_index\x18\x17 \x01(\x0c\"\x82\x04\n\x0cGetImgUrlRsp\x12\x0e\n\x06\x66ileid\x18\x01 \x01(\x04\x12\x10\n\x08\x66ile_md5\x18\x02 \x01(\x0c\x12\x0e\n\x06result\x18\x03 \x01(\r\x12\x10\n\x08\x66\x61il_msg\x18\x04 \x01(\x0c\x12)\n\x08img_info\x18\x05 \x01(\x0b\x32\x17.im.cs.cmd0x388.ImgInfo\x12\x16\n\x0ethumb_down_url\x18\x06 \x03(\x0c\x12\x19\n\x11original_down_url\x18\x07 \x03(\x0c\x12\x14\n\x0c\x62ig_down_url\x18\x08 \x03(\x0c\x12\x0f\n\x07\x64own_ip\x18\t \x03(\r\x12\x11\n\tdown_port\x18\n \x03(\r\x12\x13\n\x0b\x64own_domain\x18\x0b \x01(\x0c\x12\x17\n\x0fthumb_down_para\x18\x0c \x01(\x0c\x12\x1a\n\x12original_down_para\x18\r \x01(\x0c\x12\x15\n\rbig_down_para\x18\x0e \x01(\x0c\x12\x0f\n\x07\x66ile_id\x18\x0f \x01(\x04\x12\x16\n\x0e\x61uto_down_type\x18\x10 \x01(\r\x12\x17\n\x0forder_down_type\x18\x11 \x03(\r\x12\x1b\n\x13\x62ig_thumb_down_para\x18\x13 \x01(\x0c\x12\x16\n\x0ehttps_url_flag\x18\x14 \x01(\r\x12*\n\x08\x64own_ip6\x18\x1a \x03(\x0b\x32\x18.im.cs.cmd0x388.IPv6Info\x12\x12\n\nclient_ip6\x18\x1b \x01(\x0c\"\xa5\x02\n\x0cGetPttUrlReq\x12\x12\n\ngroup_code\x18\x01 \x01(\x04\x12\x0f\n\x07\x64st_uin\x18\x02 \x01(\x04\x12\x0e\n\x06\x66ileid\x18\x03 \x01(\x04\x12\x10\n\x08\x66ile_md5\x18\x04 \x01(\x0c\x12\x10\n\x08req_term\x18\x05 \x01(\r\x12\x19\n\x11req_platform_type\x18\x06 \x01(\r\x12\x10\n\x08inner_ip\x18\x07 \x01(\r\x12\x0f\n\x07\x62u_type\x18\x08 \x01(\r\x12\x11\n\tbuild_ver\x18\t \x01(\x0c\x12\x0f\n\x07\x66ile_id\x18\n \x01(\x04\x12\x10\n\x08\x66ile_key\x18\x0b \x01(\x0c\x12\r\n\x05\x63odec\x18\x0c \x01(\r\x12\r\n\x05\x62u_id\x18\r \x01(\r\x12\x19\n\x11req_transfer_type\x18\x0e \x01(\r\x12\x0f\n\x07is_auto\x18\x0f \x01(\r\"\xbd\x02\n\x0cGetPttUrlRsp\x12\x0e\n\x06\x66ileid\x18\x01 \x01(\x04\x12\x10\n\x08\x66ile_md5\x18\x02 \x01(\x0c\x12\x0e\n\x06result\x18\x03 \x01(\r\x12\x10\n\x08\x66\x61il_msg\x18\x04 \x01(\x0c\x12\x10\n\x08\x64own_url\x18\x05 \x03(\x0c\x12\x0f\n\x07\x64own_ip\x18\x06 \x03(\r\x12\x11\n\tdown_port\x18\x07 \x03(\r\x12\x13\n\x0b\x64own_domain\x18\x08 \x01(\x0c\x12\x11\n\tdown_para\x18\t \x01(\x0c\x12\x0f\n\x07\x66ile_id\x18\n \x01(\x04\x12\x15\n\rtransfer_type\x18\x0b \x01(\r\x12\x13\n\x0b\x61llow_retry\x18\x0c \x01(\r\x12*\n\x08\x64own_ip6\x18\x1a \x03(\x0b\x32\x18.im.cs.cmd0x388.IPv6Info\x12\x12\n\nclient_ip6\x18\x1b \x01(\x0c\x12\x0e\n\x06\x64omain\x18\x1c \x01(\t\"%\n\x08IPv6Info\x12\x0b\n\x03ip6\x18\x01 \x01(\x0c\x12\x0c\n\x04port\x18\x02 \x01(\r\"j\n\x07ImgInfo\x12\x10\n\x08\x66ile_md5\x18\x01 \x01(\x0c\x12\x11\n\tfile_type\x18\x02 \x01(\r\x12\x11\n\tfile_size\x18\x03 \x01(\x04\x12\x12\n\nfile_width\x18\x04 \x01(\r\x12\x13\n\x0b\x66ile_height\x18\x05 \x01(\r\"8\n\x07PicSize\x12\x10\n\x08original\x18\x01 \x01(\r\x12\r\n\x05thumb\x18\x02 \x01(\r\x12\x0c\n\x04high\x18\x03 \x01(\r\"\xd7\x02\n\x07ReqBody\x12\x10\n\x08net_type\x18\x01 \x01(\r\x12\x0e\n\x06subcmd\x18\x02 \x01(\r\x12\x32\n\rtryup_img_req\x18\x03 \x03(\x0b\x32\x1b.im.cs.cmd0x388.TryUpImgReq\x12\x34\n\x0egetimg_url_req\x18\x04 \x03(\x0b\x32\x1c.im.cs.cmd0x388.GetImgUrlReq\x12\x32\n\rtryup_ptt_req\x18\x05 \x03(\x0b\x32\x1b.im.cs.cmd0x388.TryUpPttReq\x12\x34\n\x0egetptt_url_req\x18\x06 \x03(\x0b\x32\x1c.im.cs.cmd0x388.GetPttUrlReq\x12\x12\n\ncommand_id\x18\x07 \x01(\r\x12.\n\x0b\x64\x65l_img_req\x18\x08 \x03(\x0b\x32\x19.im.cs.cmd0x388.DelImgReq\x12\x12\n\textension\x18\xe9\x07 \x01(\x0c\"\xb0\x02\n\x07RspBody\x12\x11\n\tclient_ip\x18\x01 \x01(\r\x12\x0e\n\x06subcmd\x18\x02 \x01(\r\x12\x32\n\rtryup_img_rsp\x18\x03 \x03(\x0b\x32\x1b.im.cs.cmd0x388.TryUpImgRsp\x12\x34\n\x0egetimg_url_rsp\x18\x04 \x03(\x0b\x32\x1c.im.cs.cmd0x388.GetImgUrlRsp\x12\x32\n\rtryup_ptt_rsp\x18\x05 \x03(\x0b\x32\x1b.im.cs.cmd0x388.TryUpPttRsp\x12\x34\n\x0egetptt_url_rsp\x18\x06 \x03(\x0b\x32\x1c.im.cs.cmd0x388.GetPttUrlRsp\x12.\n\x0b\x64\x65l_img_rsp\x18\x07 \x03(\x0b\x32\x19.im.cs.cmd0x388.DelImgRsp\"\xc2\x03\n\x0bTryUpImgReq\x12\x12\n\ngroup_code\x18\x01 \x01(\x04\x12\x0f\n\x07src_uin\x18\x02 \x01(\x04\x12\x0f\n\x07\x66ile_id\x18\x03 \x01(\x04\x12\x10\n\x08\x66ile_md5\x18\x04 \x01(\x0c\x12\x11\n\tfile_size\x18\x05 \x01(\x04\x12\x11\n\tfile_name\x18\x06 \x01(\x0c\x12\x10\n\x08src_term\x18\x07 \x01(\r\x12\x15\n\rplatform_type\x18\x08 \x01(\r\x12\x0f\n\x07\x62u_type\x18\t \x01(\r\x12\x11\n\tpic_width\x18\n \x01(\r\x12\x12\n\npic_height\x18\x0b \x01(\r\x12\x10\n\x08pic_type\x18\x0c \x01(\r\x12\x11\n\tbuild_ver\x18\r \x01(\x0c\x12\x10\n\x08inner_ip\x18\x0e \x01(\r\x12\x14\n\x0c\x61pp_pic_type\x18\x0f \x01(\r\x12\x14\n\x0coriginal_pic\x18\x10 \x01(\r\x12\x12\n\nfile_index\x18\x11 \x01(\x0c\x12\x0f\n\x07\x64st_uin\x18\x12 \x01(\x04\x12\x12\n\nsrv_upload\x18\x13 \x01(\r\x12\x14\n\x0ctransfer_url\x18\x14 \x01(\x0c\x12\x17\n\x0fqqmeet_guild_id\x18\x15 \x01(\x04\x12\x19\n\x11qqmeet_channel_id\x18\x16 \x01(\x04\"\x87\x03\n\x0bTryUpImgRsp\x12\x0f\n\x07\x66ile_id\x18\x01 \x01(\x04\x12\x0e\n\x06result\x18\x02 \x01(\r\x12\x10\n\x08\x66\x61il_msg\x18\x03 \x01(\x0c\x12\x11\n\tfile_exit\x18\x04 \x01(\x08\x12)\n\x08img_info\x18\x05 \x01(\x0b\x32\x17.im.cs.cmd0x388.ImgInfo\x12\r\n\x05up_ip\x18\x06 \x03(\r\x12\x0f\n\x07up_port\x18\x07 \x03(\r\x12\x0f\n\x07up_ukey\x18\x08 \x01(\x0c\x12\x0e\n\x06\x66ileid\x18\t \x01(\x04\x12\x11\n\tup_offset\x18\n \x01(\x04\x12\x12\n\nblock_size\x18\x0b \x01(\x04\x12\x14\n\x0cnew_big_chan\x18\x0c \x01(\x08\x12(\n\x06up_ip6\x18\x1a \x03(\x0b\x32\x18.im.cs.cmd0x388.IPv6Info\x12\x12\n\nclient_ip6\x18\x1b \x01(\x0c\x12\x16\n\x0e\x64ownload_index\x18\x1c \x01(\x0c\x12\x33\n\ninfo4_busi\x18\xe9\x07 \x01(\x0b\x32\x1e.im.cs.cmd0x388.TryUpInfo4Busi\"\x82\x01\n\x0eTryUpInfo4Busi\x12\x13\n\x0b\x64own_domain\x18\x01 \x01(\x0c\x12\x16\n\x0ethumb_down_url\x18\x02 \x01(\x0c\x12\x19\n\x11original_down_url\x18\x03 \x01(\x0c\x12\x14\n\x0c\x62ig_down_url\x18\x04 \x01(\x0c\x12\x12\n\nfile_resid\x18\x05 \x01(\x0c\"\xb7\x02\n\x0bTryUpPttReq\x12\x12\n\ngroup_code\x18\x01 \x01(\x04\x12\x0f\n\x07src_uin\x18\x02 \x01(\x04\x12\x0f\n\x07\x66ile_id\x18\x03 \x01(\x04\x12\x10\n\x08\x66ile_md5\x18\x04 \x01(\x0c\x12\x11\n\tfile_size\x18\x05 \x01(\x04\x12\x11\n\tfile_name\x18\x06 \x01(\x0c\x12\x10\n\x08src_term\x18\x07 \x01(\r\x12\x15\n\rplatform_type\x18\x08 \x01(\r\x12\x0f\n\x07\x62u_type\x18\t \x01(\r\x12\x11\n\tbuild_ver\x18\n \x01(\x0c\x12\x10\n\x08inner_ip\x18\x0b \x01(\r\x12\x14\n\x0cvoice_length\x18\x0c \x01(\r\x12\x13\n\x0bnew_up_chan\x18\r \x01(\x08\x12\r\n\x05\x63odec\x18\x0e \x01(\r\x12\x12\n\nvoice_type\x18\x0f \x01(\r\x12\r\n\x05\x62u_id\x18\x10 \x01(\r\"\xa1\x02\n\x0bTryUpPttRsp\x12\x0f\n\x07\x66ile_id\x18\x01 \x01(\x04\x12\x0e\n\x06result\x18\x02 \x01(\r\x12\x10\n\x08\x66\x61il_msg\x18\x03 \x01(\x0c\x12\x11\n\tfile_exit\x18\x04 \x01(\x08\x12\r\n\x05up_ip\x18\x05 \x03(\r\x12\x0f\n\x07up_port\x18\x06 \x03(\r\x12\x0f\n\x07up_ukey\x18\x07 \x01(\x0c\x12\x0e\n\x06\x66ileid\x18\x08 \x01(\x04\x12\x11\n\tup_offset\x18\t \x01(\x04\x12\x12\n\nblock_size\x18\n \x01(\x04\x12\x10\n\x08\x66ile_key\x18\x0b \x01(\x0c\x12\x14\n\x0c\x63hannel_type\x18\x0c \x01(\r\x12(\n\x06up_ip6\x18\x1a \x03(\x0b\x32\x18.im.cs.cmd0x388.IPv6Info\x12\x12\n\nclient_ip6\x18\x1b \x01(\x0c')
+
+
+
+_DELIMGREQ = DESCRIPTOR.message_types_by_name['DelImgReq']
+_DELIMGRSP = DESCRIPTOR.message_types_by_name['DelImgRsp']
+_EXPROAMEXTENDINFO = DESCRIPTOR.message_types_by_name['ExpRoamExtendInfo']
+_EXPROAMPICINFO = DESCRIPTOR.message_types_by_name['ExpRoamPicInfo']
+_EXTENSIONCOMMPICTRYUP = DESCRIPTOR.message_types_by_name['ExtensionCommPicTryUp']
+_EXTENSIONEXPROAMTRYUP = DESCRIPTOR.message_types_by_name['ExtensionExpRoamTryUp']
+_GETIMGURLREQ = DESCRIPTOR.message_types_by_name['GetImgUrlReq']
+_GETIMGURLRSP = DESCRIPTOR.message_types_by_name['GetImgUrlRsp']
+_GETPTTURLREQ = DESCRIPTOR.message_types_by_name['GetPttUrlReq']
+_GETPTTURLRSP = DESCRIPTOR.message_types_by_name['GetPttUrlRsp']
+_IPV6INFO = DESCRIPTOR.message_types_by_name['IPv6Info']
+_IMGINFO = DESCRIPTOR.message_types_by_name['ImgInfo']
+_PICSIZE = DESCRIPTOR.message_types_by_name['PicSize']
+_REQBODY = DESCRIPTOR.message_types_by_name['ReqBody']
+_RSPBODY = DESCRIPTOR.message_types_by_name['RspBody']
+_TRYUPIMGREQ = DESCRIPTOR.message_types_by_name['TryUpImgReq']
+_TRYUPIMGRSP = DESCRIPTOR.message_types_by_name['TryUpImgRsp']
+_TRYUPINFO4BUSI = DESCRIPTOR.message_types_by_name['TryUpInfo4Busi']
+_TRYUPPTTREQ = DESCRIPTOR.message_types_by_name['TryUpPttReq']
+_TRYUPPTTRSP = DESCRIPTOR.message_types_by_name['TryUpPttRsp']
+DelImgReq = _reflection.GeneratedProtocolMessageType('DelImgReq', (_message.Message,), {
+ 'DESCRIPTOR' : _DELIMGREQ,
+ '__module__' : 'cai.pb.im.cs.cmd0x388.cmd0x388_pb2'
+ # @@protoc_insertion_point(class_scope:im.cs.cmd0x388.DelImgReq)
+ })
+_sym_db.RegisterMessage(DelImgReq)
+
+DelImgRsp = _reflection.GeneratedProtocolMessageType('DelImgRsp', (_message.Message,), {
+ 'DESCRIPTOR' : _DELIMGRSP,
+ '__module__' : 'cai.pb.im.cs.cmd0x388.cmd0x388_pb2'
+ # @@protoc_insertion_point(class_scope:im.cs.cmd0x388.DelImgRsp)
+ })
+_sym_db.RegisterMessage(DelImgRsp)
+
+ExpRoamExtendInfo = _reflection.GeneratedProtocolMessageType('ExpRoamExtendInfo', (_message.Message,), {
+ 'DESCRIPTOR' : _EXPROAMEXTENDINFO,
+ '__module__' : 'cai.pb.im.cs.cmd0x388.cmd0x388_pb2'
+ # @@protoc_insertion_point(class_scope:im.cs.cmd0x388.ExpRoamExtendInfo)
+ })
+_sym_db.RegisterMessage(ExpRoamExtendInfo)
+
+ExpRoamPicInfo = _reflection.GeneratedProtocolMessageType('ExpRoamPicInfo', (_message.Message,), {
+ 'DESCRIPTOR' : _EXPROAMPICINFO,
+ '__module__' : 'cai.pb.im.cs.cmd0x388.cmd0x388_pb2'
+ # @@protoc_insertion_point(class_scope:im.cs.cmd0x388.ExpRoamPicInfo)
+ })
+_sym_db.RegisterMessage(ExpRoamPicInfo)
+
+ExtensionCommPicTryUp = _reflection.GeneratedProtocolMessageType('ExtensionCommPicTryUp', (_message.Message,), {
+ 'DESCRIPTOR' : _EXTENSIONCOMMPICTRYUP,
+ '__module__' : 'cai.pb.im.cs.cmd0x388.cmd0x388_pb2'
+ # @@protoc_insertion_point(class_scope:im.cs.cmd0x388.ExtensionCommPicTryUp)
+ })
+_sym_db.RegisterMessage(ExtensionCommPicTryUp)
+
+ExtensionExpRoamTryUp = _reflection.GeneratedProtocolMessageType('ExtensionExpRoamTryUp', (_message.Message,), {
+ 'DESCRIPTOR' : _EXTENSIONEXPROAMTRYUP,
+ '__module__' : 'cai.pb.im.cs.cmd0x388.cmd0x388_pb2'
+ # @@protoc_insertion_point(class_scope:im.cs.cmd0x388.ExtensionExpRoamTryUp)
+ })
+_sym_db.RegisterMessage(ExtensionExpRoamTryUp)
+
+GetImgUrlReq = _reflection.GeneratedProtocolMessageType('GetImgUrlReq', (_message.Message,), {
+ 'DESCRIPTOR' : _GETIMGURLREQ,
+ '__module__' : 'cai.pb.im.cs.cmd0x388.cmd0x388_pb2'
+ # @@protoc_insertion_point(class_scope:im.cs.cmd0x388.GetImgUrlReq)
+ })
+_sym_db.RegisterMessage(GetImgUrlReq)
+
+GetImgUrlRsp = _reflection.GeneratedProtocolMessageType('GetImgUrlRsp', (_message.Message,), {
+ 'DESCRIPTOR' : _GETIMGURLRSP,
+ '__module__' : 'cai.pb.im.cs.cmd0x388.cmd0x388_pb2'
+ # @@protoc_insertion_point(class_scope:im.cs.cmd0x388.GetImgUrlRsp)
+ })
+_sym_db.RegisterMessage(GetImgUrlRsp)
+
+GetPttUrlReq = _reflection.GeneratedProtocolMessageType('GetPttUrlReq', (_message.Message,), {
+ 'DESCRIPTOR' : _GETPTTURLREQ,
+ '__module__' : 'cai.pb.im.cs.cmd0x388.cmd0x388_pb2'
+ # @@protoc_insertion_point(class_scope:im.cs.cmd0x388.GetPttUrlReq)
+ })
+_sym_db.RegisterMessage(GetPttUrlReq)
+
+GetPttUrlRsp = _reflection.GeneratedProtocolMessageType('GetPttUrlRsp', (_message.Message,), {
+ 'DESCRIPTOR' : _GETPTTURLRSP,
+ '__module__' : 'cai.pb.im.cs.cmd0x388.cmd0x388_pb2'
+ # @@protoc_insertion_point(class_scope:im.cs.cmd0x388.GetPttUrlRsp)
+ })
+_sym_db.RegisterMessage(GetPttUrlRsp)
+
+IPv6Info = _reflection.GeneratedProtocolMessageType('IPv6Info', (_message.Message,), {
+ 'DESCRIPTOR' : _IPV6INFO,
+ '__module__' : 'cai.pb.im.cs.cmd0x388.cmd0x388_pb2'
+ # @@protoc_insertion_point(class_scope:im.cs.cmd0x388.IPv6Info)
+ })
+_sym_db.RegisterMessage(IPv6Info)
+
+ImgInfo = _reflection.GeneratedProtocolMessageType('ImgInfo', (_message.Message,), {
+ 'DESCRIPTOR' : _IMGINFO,
+ '__module__' : 'cai.pb.im.cs.cmd0x388.cmd0x388_pb2'
+ # @@protoc_insertion_point(class_scope:im.cs.cmd0x388.ImgInfo)
+ })
+_sym_db.RegisterMessage(ImgInfo)
+
+PicSize = _reflection.GeneratedProtocolMessageType('PicSize', (_message.Message,), {
+ 'DESCRIPTOR' : _PICSIZE,
+ '__module__' : 'cai.pb.im.cs.cmd0x388.cmd0x388_pb2'
+ # @@protoc_insertion_point(class_scope:im.cs.cmd0x388.PicSize)
+ })
+_sym_db.RegisterMessage(PicSize)
+
+ReqBody = _reflection.GeneratedProtocolMessageType('ReqBody', (_message.Message,), {
+ 'DESCRIPTOR' : _REQBODY,
+ '__module__' : 'cai.pb.im.cs.cmd0x388.cmd0x388_pb2'
+ # @@protoc_insertion_point(class_scope:im.cs.cmd0x388.ReqBody)
+ })
+_sym_db.RegisterMessage(ReqBody)
+
+RspBody = _reflection.GeneratedProtocolMessageType('RspBody', (_message.Message,), {
+ 'DESCRIPTOR' : _RSPBODY,
+ '__module__' : 'cai.pb.im.cs.cmd0x388.cmd0x388_pb2'
+ # @@protoc_insertion_point(class_scope:im.cs.cmd0x388.RspBody)
+ })
+_sym_db.RegisterMessage(RspBody)
+
+TryUpImgReq = _reflection.GeneratedProtocolMessageType('TryUpImgReq', (_message.Message,), {
+ 'DESCRIPTOR' : _TRYUPIMGREQ,
+ '__module__' : 'cai.pb.im.cs.cmd0x388.cmd0x388_pb2'
+ # @@protoc_insertion_point(class_scope:im.cs.cmd0x388.TryUpImgReq)
+ })
+_sym_db.RegisterMessage(TryUpImgReq)
+
+TryUpImgRsp = _reflection.GeneratedProtocolMessageType('TryUpImgRsp', (_message.Message,), {
+ 'DESCRIPTOR' : _TRYUPIMGRSP,
+ '__module__' : 'cai.pb.im.cs.cmd0x388.cmd0x388_pb2'
+ # @@protoc_insertion_point(class_scope:im.cs.cmd0x388.TryUpImgRsp)
+ })
+_sym_db.RegisterMessage(TryUpImgRsp)
+
+TryUpInfo4Busi = _reflection.GeneratedProtocolMessageType('TryUpInfo4Busi', (_message.Message,), {
+ 'DESCRIPTOR' : _TRYUPINFO4BUSI,
+ '__module__' : 'cai.pb.im.cs.cmd0x388.cmd0x388_pb2'
+ # @@protoc_insertion_point(class_scope:im.cs.cmd0x388.TryUpInfo4Busi)
+ })
+_sym_db.RegisterMessage(TryUpInfo4Busi)
+
+TryUpPttReq = _reflection.GeneratedProtocolMessageType('TryUpPttReq', (_message.Message,), {
+ 'DESCRIPTOR' : _TRYUPPTTREQ,
+ '__module__' : 'cai.pb.im.cs.cmd0x388.cmd0x388_pb2'
+ # @@protoc_insertion_point(class_scope:im.cs.cmd0x388.TryUpPttReq)
+ })
+_sym_db.RegisterMessage(TryUpPttReq)
+
+TryUpPttRsp = _reflection.GeneratedProtocolMessageType('TryUpPttRsp', (_message.Message,), {
+ 'DESCRIPTOR' : _TRYUPPTTRSP,
+ '__module__' : 'cai.pb.im.cs.cmd0x388.cmd0x388_pb2'
+ # @@protoc_insertion_point(class_scope:im.cs.cmd0x388.TryUpPttRsp)
+ })
+_sym_db.RegisterMessage(TryUpPttRsp)
+
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ _DELIMGREQ._serialized_start=57
+ _DELIMGREQ._serialized_end=242
+ _DELIMGRSP._serialized_start=244
+ _DELIMGRSP._serialized_end=309
+ _EXPROAMEXTENDINFO._serialized_start=311
+ _EXPROAMEXTENDINFO._serialized_end=345
+ _EXPROAMPICINFO._serialized_start=347
+ _EXPROAMPICINFO._serialized_end=414
+ _EXTENSIONCOMMPICTRYUP._serialized_start=416
+ _EXTENSIONCOMMPICTRYUP._serialized_end=456
+ _EXTENSIONEXPROAMTRYUP._serialized_start=458
+ _EXTENSIONEXPROAMTRYUP._serialized_end=539
+ _GETIMGURLREQ._serialized_start=542
+ _GETIMGURLREQ._serialized_end=1027
+ _GETIMGURLRSP._serialized_start=1030
+ _GETIMGURLRSP._serialized_end=1544
+ _GETPTTURLREQ._serialized_start=1547
+ _GETPTTURLREQ._serialized_end=1840
+ _GETPTTURLRSP._serialized_start=1843
+ _GETPTTURLRSP._serialized_end=2160
+ _IPV6INFO._serialized_start=2162
+ _IPV6INFO._serialized_end=2199
+ _IMGINFO._serialized_start=2201
+ _IMGINFO._serialized_end=2307
+ _PICSIZE._serialized_start=2309
+ _PICSIZE._serialized_end=2365
+ _REQBODY._serialized_start=2368
+ _REQBODY._serialized_end=2711
+ _RSPBODY._serialized_start=2714
+ _RSPBODY._serialized_end=3018
+ _TRYUPIMGREQ._serialized_start=3021
+ _TRYUPIMGREQ._serialized_end=3471
+ _TRYUPIMGRSP._serialized_start=3474
+ _TRYUPIMGRSP._serialized_end=3865
+ _TRYUPINFO4BUSI._serialized_start=3868
+ _TRYUPINFO4BUSI._serialized_end=3998
+ _TRYUPPTTREQ._serialized_start=4001
+ _TRYUPPTTREQ._serialized_end=4312
+ _TRYUPPTTRSP._serialized_start=4315
+ _TRYUPPTTRSP._serialized_end=4604
+# @@protoc_insertion_point(module_scope)
diff --git a/cai/pb/im/cs/cmd0x388/cmd0x388_pb2.pyi b/cai/pb/im/cs/cmd0x388/cmd0x388_pb2.pyi
new file mode 100644
index 00000000..9ac4c16f
--- /dev/null
+++ b/cai/pb/im/cs/cmd0x388/cmd0x388_pb2.pyi
@@ -0,0 +1,802 @@
+"""
+@generated by mypy-protobuf. Do not edit manually!
+isort:skip_file
+"""
+from builtins import (
+ bool,
+ bytes,
+ int,
+)
+
+from google.protobuf.descriptor import (
+ Descriptor,
+ FileDescriptor,
+)
+
+from google.protobuf.internal.containers import (
+ RepeatedCompositeFieldContainer,
+ RepeatedScalarFieldContainer,
+)
+
+from google.protobuf.message import (
+ Message,
+)
+
+from typing import (
+ Iterable,
+ Optional,
+ Text,
+)
+
+from typing_extensions import (
+ Literal,
+)
+
+
+DESCRIPTOR: FileDescriptor
+
+class DelImgReq(Message):
+ """tencent/im/cs/cmd0x388/cmd0x388.java
+
+ """
+ DESCRIPTOR: Descriptor
+ SRC_UIN_FIELD_NUMBER: int
+ DST_UIN_FIELD_NUMBER: int
+ REQ_TERM_FIELD_NUMBER: int
+ REQ_PLATFORM_TYPE_FIELD_NUMBER: int
+ BU_TYPE_FIELD_NUMBER: int
+ BUILD_VER_FIELD_NUMBER: int
+ FILE_RESID_FIELD_NUMBER: int
+ PIC_WIDTH_FIELD_NUMBER: int
+ PIC_HEIGHT_FIELD_NUMBER: int
+ src_uin: int
+ dst_uin: int
+ req_term: int
+ req_platform_type: int
+ bu_type: int
+ build_ver: bytes
+ file_resid: bytes
+ pic_width: int
+ pic_height: int
+ def __init__(self,
+ *,
+ src_uin: Optional[int] = ...,
+ dst_uin: Optional[int] = ...,
+ req_term: Optional[int] = ...,
+ req_platform_type: Optional[int] = ...,
+ bu_type: Optional[int] = ...,
+ build_ver: Optional[bytes] = ...,
+ file_resid: Optional[bytes] = ...,
+ pic_width: Optional[int] = ...,
+ pic_height: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["bu_type",b"bu_type","build_ver",b"build_ver","dst_uin",b"dst_uin","file_resid",b"file_resid","pic_height",b"pic_height","pic_width",b"pic_width","req_platform_type",b"req_platform_type","req_term",b"req_term","src_uin",b"src_uin"]) -> bool: ...
+ def ClearField(self, field_name: Literal["bu_type",b"bu_type","build_ver",b"build_ver","dst_uin",b"dst_uin","file_resid",b"file_resid","pic_height",b"pic_height","pic_width",b"pic_width","req_platform_type",b"req_platform_type","req_term",b"req_term","src_uin",b"src_uin"]) -> None: ...
+
+class DelImgRsp(Message):
+ DESCRIPTOR: Descriptor
+ RESULT_FIELD_NUMBER: int
+ FAIL_MSG_FIELD_NUMBER: int
+ FILE_RESID_FIELD_NUMBER: int
+ result: int
+ fail_msg: bytes
+ file_resid: bytes
+ def __init__(self,
+ *,
+ result: Optional[int] = ...,
+ fail_msg: Optional[bytes] = ...,
+ file_resid: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["fail_msg",b"fail_msg","file_resid",b"file_resid","result",b"result"]) -> bool: ...
+ def ClearField(self, field_name: Literal["fail_msg",b"fail_msg","file_resid",b"file_resid","result",b"result"]) -> None: ...
+
+class ExpRoamExtendInfo(Message):
+ DESCRIPTOR: Descriptor
+ RESID_FIELD_NUMBER: int
+ resid: bytes
+ def __init__(self,
+ *,
+ resid: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["resid",b"resid"]) -> bool: ...
+ def ClearField(self, field_name: Literal["resid",b"resid"]) -> None: ...
+
+class ExpRoamPicInfo(Message):
+ DESCRIPTOR: Descriptor
+ SHOP_FLAG_FIELD_NUMBER: int
+ PKG_ID_FIELD_NUMBER: int
+ PIC_ID_FIELD_NUMBER: int
+ shop_flag: int
+ pkg_id: int
+ pic_id: bytes
+ def __init__(self,
+ *,
+ shop_flag: Optional[int] = ...,
+ pkg_id: Optional[int] = ...,
+ pic_id: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["pic_id",b"pic_id","pkg_id",b"pkg_id","shop_flag",b"shop_flag"]) -> bool: ...
+ def ClearField(self, field_name: Literal["pic_id",b"pic_id","pkg_id",b"pkg_id","shop_flag",b"shop_flag"]) -> None: ...
+
+class ExtensionCommPicTryUp(Message):
+ DESCRIPTOR: Descriptor
+ EXTINFO_FIELD_NUMBER: int
+ @property
+ def extinfo(self) -> RepeatedScalarFieldContainer[bytes]: ...
+ def __init__(self,
+ *,
+ extinfo: Optional[Iterable[bytes]] = ...,
+ ) -> None: ...
+ def ClearField(self, field_name: Literal["extinfo",b"extinfo"]) -> None: ...
+
+class ExtensionExpRoamTryUp(Message):
+ DESCRIPTOR: Descriptor
+ EXPROAM_PIC_INFO_FIELD_NUMBER: int
+ @property
+ def exproam_pic_info(self) -> RepeatedCompositeFieldContainer[ExpRoamPicInfo]: ...
+ def __init__(self,
+ *,
+ exproam_pic_info: Optional[Iterable[ExpRoamPicInfo]] = ...,
+ ) -> None: ...
+ def ClearField(self, field_name: Literal["exproam_pic_info",b"exproam_pic_info"]) -> None: ...
+
+class GetImgUrlReq(Message):
+ DESCRIPTOR: Descriptor
+ GROUP_CODE_FIELD_NUMBER: int
+ DST_UIN_FIELD_NUMBER: int
+ FILEID_FIELD_NUMBER: int
+ FILE_MD5_FIELD_NUMBER: int
+ URL_FLAG_FIELD_NUMBER: int
+ URL_TYPE_FIELD_NUMBER: int
+ REQ_TERM_FIELD_NUMBER: int
+ REQ_PLATFORM_TYPE_FIELD_NUMBER: int
+ INNER_IP_FIELD_NUMBER: int
+ BU_TYPE_FIELD_NUMBER: int
+ BUILD_VER_FIELD_NUMBER: int
+ FILE_ID_FIELD_NUMBER: int
+ FILE_SIZE_FIELD_NUMBER: int
+ ORIGINAL_PIC_FIELD_NUMBER: int
+ RETRY_REQ_FIELD_NUMBER: int
+ FILE_HEIGHT_FIELD_NUMBER: int
+ FILE_WIDTH_FIELD_NUMBER: int
+ PIC_TYPE_FIELD_NUMBER: int
+ PIC_UP_TIMESTAMP_FIELD_NUMBER: int
+ REQ_TRANSFER_TYPE_FIELD_NUMBER: int
+ QQMEET_GUILD_ID_FIELD_NUMBER: int
+ QQMEET_CHANNEL_ID_FIELD_NUMBER: int
+ DOWNLOAD_INDEX_FIELD_NUMBER: int
+ group_code: int
+ dst_uin: int
+ fileid: int
+ file_md5: bytes
+ url_flag: int
+ url_type: int
+ req_term: int
+ req_platform_type: int
+ inner_ip: int
+ bu_type: int
+ build_ver: bytes
+ file_id: int
+ file_size: int
+ original_pic: int
+ retry_req: int
+ file_height: int
+ file_width: int
+ pic_type: int
+ pic_up_timestamp: int
+ req_transfer_type: int
+ qqmeet_guild_id: int
+ qqmeet_channel_id: int
+ download_index: bytes
+ def __init__(self,
+ *,
+ group_code: Optional[int] = ...,
+ dst_uin: Optional[int] = ...,
+ fileid: Optional[int] = ...,
+ file_md5: Optional[bytes] = ...,
+ url_flag: Optional[int] = ...,
+ url_type: Optional[int] = ...,
+ req_term: Optional[int] = ...,
+ req_platform_type: Optional[int] = ...,
+ inner_ip: Optional[int] = ...,
+ bu_type: Optional[int] = ...,
+ build_ver: Optional[bytes] = ...,
+ file_id: Optional[int] = ...,
+ file_size: Optional[int] = ...,
+ original_pic: Optional[int] = ...,
+ retry_req: Optional[int] = ...,
+ file_height: Optional[int] = ...,
+ file_width: Optional[int] = ...,
+ pic_type: Optional[int] = ...,
+ pic_up_timestamp: Optional[int] = ...,
+ req_transfer_type: Optional[int] = ...,
+ qqmeet_guild_id: Optional[int] = ...,
+ qqmeet_channel_id: Optional[int] = ...,
+ download_index: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["bu_type",b"bu_type","build_ver",b"build_ver","download_index",b"download_index","dst_uin",b"dst_uin","file_height",b"file_height","file_id",b"file_id","file_md5",b"file_md5","file_size",b"file_size","file_width",b"file_width","fileid",b"fileid","group_code",b"group_code","inner_ip",b"inner_ip","original_pic",b"original_pic","pic_type",b"pic_type","pic_up_timestamp",b"pic_up_timestamp","qqmeet_channel_id",b"qqmeet_channel_id","qqmeet_guild_id",b"qqmeet_guild_id","req_platform_type",b"req_platform_type","req_term",b"req_term","req_transfer_type",b"req_transfer_type","retry_req",b"retry_req","url_flag",b"url_flag","url_type",b"url_type"]) -> bool: ...
+ def ClearField(self, field_name: Literal["bu_type",b"bu_type","build_ver",b"build_ver","download_index",b"download_index","dst_uin",b"dst_uin","file_height",b"file_height","file_id",b"file_id","file_md5",b"file_md5","file_size",b"file_size","file_width",b"file_width","fileid",b"fileid","group_code",b"group_code","inner_ip",b"inner_ip","original_pic",b"original_pic","pic_type",b"pic_type","pic_up_timestamp",b"pic_up_timestamp","qqmeet_channel_id",b"qqmeet_channel_id","qqmeet_guild_id",b"qqmeet_guild_id","req_platform_type",b"req_platform_type","req_term",b"req_term","req_transfer_type",b"req_transfer_type","retry_req",b"retry_req","url_flag",b"url_flag","url_type",b"url_type"]) -> None: ...
+
+class GetImgUrlRsp(Message):
+ DESCRIPTOR: Descriptor
+ FILEID_FIELD_NUMBER: int
+ FILE_MD5_FIELD_NUMBER: int
+ RESULT_FIELD_NUMBER: int
+ FAIL_MSG_FIELD_NUMBER: int
+ IMG_INFO_FIELD_NUMBER: int
+ THUMB_DOWN_URL_FIELD_NUMBER: int
+ ORIGINAL_DOWN_URL_FIELD_NUMBER: int
+ BIG_DOWN_URL_FIELD_NUMBER: int
+ DOWN_IP_FIELD_NUMBER: int
+ DOWN_PORT_FIELD_NUMBER: int
+ DOWN_DOMAIN_FIELD_NUMBER: int
+ THUMB_DOWN_PARA_FIELD_NUMBER: int
+ ORIGINAL_DOWN_PARA_FIELD_NUMBER: int
+ BIG_DOWN_PARA_FIELD_NUMBER: int
+ FILE_ID_FIELD_NUMBER: int
+ AUTO_DOWN_TYPE_FIELD_NUMBER: int
+ ORDER_DOWN_TYPE_FIELD_NUMBER: int
+ BIG_THUMB_DOWN_PARA_FIELD_NUMBER: int
+ HTTPS_URL_FLAG_FIELD_NUMBER: int
+ DOWN_IP6_FIELD_NUMBER: int
+ CLIENT_IP6_FIELD_NUMBER: int
+ fileid: int
+ file_md5: bytes
+ result: int
+ fail_msg: bytes
+ @property
+ def img_info(self) -> ImgInfo: ...
+ @property
+ def thumb_down_url(self) -> RepeatedScalarFieldContainer[bytes]: ...
+ @property
+ def original_down_url(self) -> RepeatedScalarFieldContainer[bytes]: ...
+ @property
+ def big_down_url(self) -> RepeatedScalarFieldContainer[bytes]: ...
+ @property
+ def down_ip(self) -> RepeatedScalarFieldContainer[int]: ...
+ @property
+ def down_port(self) -> RepeatedScalarFieldContainer[int]: ...
+ down_domain: bytes
+ thumb_down_para: bytes
+ original_down_para: bytes
+ big_down_para: bytes
+ file_id: int
+ auto_down_type: int
+ @property
+ def order_down_type(self) -> RepeatedScalarFieldContainer[int]: ...
+ big_thumb_down_para: bytes
+ https_url_flag: int
+ @property
+ def down_ip6(self) -> RepeatedCompositeFieldContainer[IPv6Info]: ...
+ client_ip6: bytes
+ def __init__(self,
+ *,
+ fileid: Optional[int] = ...,
+ file_md5: Optional[bytes] = ...,
+ result: Optional[int] = ...,
+ fail_msg: Optional[bytes] = ...,
+ img_info: Optional[ImgInfo] = ...,
+ thumb_down_url: Optional[Iterable[bytes]] = ...,
+ original_down_url: Optional[Iterable[bytes]] = ...,
+ big_down_url: Optional[Iterable[bytes]] = ...,
+ down_ip: Optional[Iterable[int]] = ...,
+ down_port: Optional[Iterable[int]] = ...,
+ down_domain: Optional[bytes] = ...,
+ thumb_down_para: Optional[bytes] = ...,
+ original_down_para: Optional[bytes] = ...,
+ big_down_para: Optional[bytes] = ...,
+ file_id: Optional[int] = ...,
+ auto_down_type: Optional[int] = ...,
+ order_down_type: Optional[Iterable[int]] = ...,
+ big_thumb_down_para: Optional[bytes] = ...,
+ https_url_flag: Optional[int] = ...,
+ down_ip6: Optional[Iterable[IPv6Info]] = ...,
+ client_ip6: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["auto_down_type",b"auto_down_type","big_down_para",b"big_down_para","big_thumb_down_para",b"big_thumb_down_para","client_ip6",b"client_ip6","down_domain",b"down_domain","fail_msg",b"fail_msg","file_id",b"file_id","file_md5",b"file_md5","fileid",b"fileid","https_url_flag",b"https_url_flag","img_info",b"img_info","original_down_para",b"original_down_para","result",b"result","thumb_down_para",b"thumb_down_para"]) -> bool: ...
+ def ClearField(self, field_name: Literal["auto_down_type",b"auto_down_type","big_down_para",b"big_down_para","big_down_url",b"big_down_url","big_thumb_down_para",b"big_thumb_down_para","client_ip6",b"client_ip6","down_domain",b"down_domain","down_ip",b"down_ip","down_ip6",b"down_ip6","down_port",b"down_port","fail_msg",b"fail_msg","file_id",b"file_id","file_md5",b"file_md5","fileid",b"fileid","https_url_flag",b"https_url_flag","img_info",b"img_info","order_down_type",b"order_down_type","original_down_para",b"original_down_para","original_down_url",b"original_down_url","result",b"result","thumb_down_para",b"thumb_down_para","thumb_down_url",b"thumb_down_url"]) -> None: ...
+
+class GetPttUrlReq(Message):
+ DESCRIPTOR: Descriptor
+ GROUP_CODE_FIELD_NUMBER: int
+ DST_UIN_FIELD_NUMBER: int
+ FILEID_FIELD_NUMBER: int
+ FILE_MD5_FIELD_NUMBER: int
+ REQ_TERM_FIELD_NUMBER: int
+ REQ_PLATFORM_TYPE_FIELD_NUMBER: int
+ INNER_IP_FIELD_NUMBER: int
+ BU_TYPE_FIELD_NUMBER: int
+ BUILD_VER_FIELD_NUMBER: int
+ FILE_ID_FIELD_NUMBER: int
+ FILE_KEY_FIELD_NUMBER: int
+ CODEC_FIELD_NUMBER: int
+ BU_ID_FIELD_NUMBER: int
+ REQ_TRANSFER_TYPE_FIELD_NUMBER: int
+ IS_AUTO_FIELD_NUMBER: int
+ group_code: int
+ dst_uin: int
+ fileid: int
+ file_md5: bytes
+ req_term: int
+ req_platform_type: int
+ inner_ip: int
+ bu_type: int
+ build_ver: bytes
+ file_id: int
+ file_key: bytes
+ codec: int
+ bu_id: int
+ req_transfer_type: int
+ is_auto: int
+ def __init__(self,
+ *,
+ group_code: Optional[int] = ...,
+ dst_uin: Optional[int] = ...,
+ fileid: Optional[int] = ...,
+ file_md5: Optional[bytes] = ...,
+ req_term: Optional[int] = ...,
+ req_platform_type: Optional[int] = ...,
+ inner_ip: Optional[int] = ...,
+ bu_type: Optional[int] = ...,
+ build_ver: Optional[bytes] = ...,
+ file_id: Optional[int] = ...,
+ file_key: Optional[bytes] = ...,
+ codec: Optional[int] = ...,
+ bu_id: Optional[int] = ...,
+ req_transfer_type: Optional[int] = ...,
+ is_auto: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["bu_id",b"bu_id","bu_type",b"bu_type","build_ver",b"build_ver","codec",b"codec","dst_uin",b"dst_uin","file_id",b"file_id","file_key",b"file_key","file_md5",b"file_md5","fileid",b"fileid","group_code",b"group_code","inner_ip",b"inner_ip","is_auto",b"is_auto","req_platform_type",b"req_platform_type","req_term",b"req_term","req_transfer_type",b"req_transfer_type"]) -> bool: ...
+ def ClearField(self, field_name: Literal["bu_id",b"bu_id","bu_type",b"bu_type","build_ver",b"build_ver","codec",b"codec","dst_uin",b"dst_uin","file_id",b"file_id","file_key",b"file_key","file_md5",b"file_md5","fileid",b"fileid","group_code",b"group_code","inner_ip",b"inner_ip","is_auto",b"is_auto","req_platform_type",b"req_platform_type","req_term",b"req_term","req_transfer_type",b"req_transfer_type"]) -> None: ...
+
+class GetPttUrlRsp(Message):
+ DESCRIPTOR: Descriptor
+ FILEID_FIELD_NUMBER: int
+ FILE_MD5_FIELD_NUMBER: int
+ RESULT_FIELD_NUMBER: int
+ FAIL_MSG_FIELD_NUMBER: int
+ DOWN_URL_FIELD_NUMBER: int
+ DOWN_IP_FIELD_NUMBER: int
+ DOWN_PORT_FIELD_NUMBER: int
+ DOWN_DOMAIN_FIELD_NUMBER: int
+ DOWN_PARA_FIELD_NUMBER: int
+ FILE_ID_FIELD_NUMBER: int
+ TRANSFER_TYPE_FIELD_NUMBER: int
+ ALLOW_RETRY_FIELD_NUMBER: int
+ DOWN_IP6_FIELD_NUMBER: int
+ CLIENT_IP6_FIELD_NUMBER: int
+ DOMAIN_FIELD_NUMBER: int
+ fileid: int
+ file_md5: bytes
+ result: int
+ fail_msg: bytes
+ @property
+ def down_url(self) -> RepeatedScalarFieldContainer[bytes]: ...
+ @property
+ def down_ip(self) -> RepeatedScalarFieldContainer[int]: ...
+ @property
+ def down_port(self) -> RepeatedScalarFieldContainer[int]: ...
+ down_domain: bytes
+ down_para: bytes
+ file_id: int
+ transfer_type: int
+ allow_retry: int
+ @property
+ def down_ip6(self) -> RepeatedCompositeFieldContainer[IPv6Info]: ...
+ client_ip6: bytes
+ domain: Text
+ def __init__(self,
+ *,
+ fileid: Optional[int] = ...,
+ file_md5: Optional[bytes] = ...,
+ result: Optional[int] = ...,
+ fail_msg: Optional[bytes] = ...,
+ down_url: Optional[Iterable[bytes]] = ...,
+ down_ip: Optional[Iterable[int]] = ...,
+ down_port: Optional[Iterable[int]] = ...,
+ down_domain: Optional[bytes] = ...,
+ down_para: Optional[bytes] = ...,
+ file_id: Optional[int] = ...,
+ transfer_type: Optional[int] = ...,
+ allow_retry: Optional[int] = ...,
+ down_ip6: Optional[Iterable[IPv6Info]] = ...,
+ client_ip6: Optional[bytes] = ...,
+ domain: Optional[Text] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["allow_retry",b"allow_retry","client_ip6",b"client_ip6","domain",b"domain","down_domain",b"down_domain","down_para",b"down_para","fail_msg",b"fail_msg","file_id",b"file_id","file_md5",b"file_md5","fileid",b"fileid","result",b"result","transfer_type",b"transfer_type"]) -> bool: ...
+ def ClearField(self, field_name: Literal["allow_retry",b"allow_retry","client_ip6",b"client_ip6","domain",b"domain","down_domain",b"down_domain","down_ip",b"down_ip","down_ip6",b"down_ip6","down_para",b"down_para","down_port",b"down_port","down_url",b"down_url","fail_msg",b"fail_msg","file_id",b"file_id","file_md5",b"file_md5","fileid",b"fileid","result",b"result","transfer_type",b"transfer_type"]) -> None: ...
+
+class IPv6Info(Message):
+ DESCRIPTOR: Descriptor
+ IP6_FIELD_NUMBER: int
+ PORT_FIELD_NUMBER: int
+ ip6: bytes
+ port: int
+ def __init__(self,
+ *,
+ ip6: Optional[bytes] = ...,
+ port: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["ip6",b"ip6","port",b"port"]) -> bool: ...
+ def ClearField(self, field_name: Literal["ip6",b"ip6","port",b"port"]) -> None: ...
+
+class ImgInfo(Message):
+ DESCRIPTOR: Descriptor
+ FILE_MD5_FIELD_NUMBER: int
+ FILE_TYPE_FIELD_NUMBER: int
+ FILE_SIZE_FIELD_NUMBER: int
+ FILE_WIDTH_FIELD_NUMBER: int
+ FILE_HEIGHT_FIELD_NUMBER: int
+ file_md5: bytes
+ file_type: int
+ file_size: int
+ file_width: int
+ file_height: int
+ def __init__(self,
+ *,
+ file_md5: Optional[bytes] = ...,
+ file_type: Optional[int] = ...,
+ file_size: Optional[int] = ...,
+ file_width: Optional[int] = ...,
+ file_height: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["file_height",b"file_height","file_md5",b"file_md5","file_size",b"file_size","file_type",b"file_type","file_width",b"file_width"]) -> bool: ...
+ def ClearField(self, field_name: Literal["file_height",b"file_height","file_md5",b"file_md5","file_size",b"file_size","file_type",b"file_type","file_width",b"file_width"]) -> None: ...
+
+class PicSize(Message):
+ DESCRIPTOR: Descriptor
+ ORIGINAL_FIELD_NUMBER: int
+ THUMB_FIELD_NUMBER: int
+ HIGH_FIELD_NUMBER: int
+ original: int
+ thumb: int
+ high: int
+ def __init__(self,
+ *,
+ original: Optional[int] = ...,
+ thumb: Optional[int] = ...,
+ high: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["high",b"high","original",b"original","thumb",b"thumb"]) -> bool: ...
+ def ClearField(self, field_name: Literal["high",b"high","original",b"original","thumb",b"thumb"]) -> None: ...
+
+class ReqBody(Message):
+ DESCRIPTOR: Descriptor
+ NET_TYPE_FIELD_NUMBER: int
+ SUBCMD_FIELD_NUMBER: int
+ TRYUP_IMG_REQ_FIELD_NUMBER: int
+ GETIMG_URL_REQ_FIELD_NUMBER: int
+ TRYUP_PTT_REQ_FIELD_NUMBER: int
+ GETPTT_URL_REQ_FIELD_NUMBER: int
+ COMMAND_ID_FIELD_NUMBER: int
+ DEL_IMG_REQ_FIELD_NUMBER: int
+ EXTENSION_FIELD_NUMBER: int
+ net_type: int
+ subcmd: int
+ @property
+ def tryup_img_req(self) -> RepeatedCompositeFieldContainer[TryUpImgReq]: ...
+ @property
+ def getimg_url_req(self) -> RepeatedCompositeFieldContainer[GetImgUrlReq]: ...
+ @property
+ def tryup_ptt_req(self) -> RepeatedCompositeFieldContainer[TryUpPttReq]: ...
+ @property
+ def getptt_url_req(self) -> RepeatedCompositeFieldContainer[GetPttUrlReq]: ...
+ command_id: int
+ @property
+ def del_img_req(self) -> RepeatedCompositeFieldContainer[DelImgReq]: ...
+ extension: bytes
+ def __init__(self,
+ *,
+ net_type: Optional[int] = ...,
+ subcmd: Optional[int] = ...,
+ tryup_img_req: Optional[Iterable[TryUpImgReq]] = ...,
+ getimg_url_req: Optional[Iterable[GetImgUrlReq]] = ...,
+ tryup_ptt_req: Optional[Iterable[TryUpPttReq]] = ...,
+ getptt_url_req: Optional[Iterable[GetPttUrlReq]] = ...,
+ command_id: Optional[int] = ...,
+ del_img_req: Optional[Iterable[DelImgReq]] = ...,
+ extension: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["command_id",b"command_id","extension",b"extension","net_type",b"net_type","subcmd",b"subcmd"]) -> bool: ...
+ def ClearField(self, field_name: Literal["command_id",b"command_id","del_img_req",b"del_img_req","extension",b"extension","getimg_url_req",b"getimg_url_req","getptt_url_req",b"getptt_url_req","net_type",b"net_type","subcmd",b"subcmd","tryup_img_req",b"tryup_img_req","tryup_ptt_req",b"tryup_ptt_req"]) -> None: ...
+
+class RspBody(Message):
+ DESCRIPTOR: Descriptor
+ CLIENT_IP_FIELD_NUMBER: int
+ SUBCMD_FIELD_NUMBER: int
+ TRYUP_IMG_RSP_FIELD_NUMBER: int
+ GETIMG_URL_RSP_FIELD_NUMBER: int
+ TRYUP_PTT_RSP_FIELD_NUMBER: int
+ GETPTT_URL_RSP_FIELD_NUMBER: int
+ DEL_IMG_RSP_FIELD_NUMBER: int
+ client_ip: int
+ subcmd: int
+ @property
+ def tryup_img_rsp(self) -> RepeatedCompositeFieldContainer[TryUpImgRsp]: ...
+ @property
+ def getimg_url_rsp(self) -> RepeatedCompositeFieldContainer[GetImgUrlRsp]: ...
+ @property
+ def tryup_ptt_rsp(self) -> RepeatedCompositeFieldContainer[TryUpPttRsp]: ...
+ @property
+ def getptt_url_rsp(self) -> RepeatedCompositeFieldContainer[GetPttUrlRsp]: ...
+ @property
+ def del_img_rsp(self) -> RepeatedCompositeFieldContainer[DelImgRsp]: ...
+ def __init__(self,
+ *,
+ client_ip: Optional[int] = ...,
+ subcmd: Optional[int] = ...,
+ tryup_img_rsp: Optional[Iterable[TryUpImgRsp]] = ...,
+ getimg_url_rsp: Optional[Iterable[GetImgUrlRsp]] = ...,
+ tryup_ptt_rsp: Optional[Iterable[TryUpPttRsp]] = ...,
+ getptt_url_rsp: Optional[Iterable[GetPttUrlRsp]] = ...,
+ del_img_rsp: Optional[Iterable[DelImgRsp]] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["client_ip",b"client_ip","subcmd",b"subcmd"]) -> bool: ...
+ def ClearField(self, field_name: Literal["client_ip",b"client_ip","del_img_rsp",b"del_img_rsp","getimg_url_rsp",b"getimg_url_rsp","getptt_url_rsp",b"getptt_url_rsp","subcmd",b"subcmd","tryup_img_rsp",b"tryup_img_rsp","tryup_ptt_rsp",b"tryup_ptt_rsp"]) -> None: ...
+
+class TryUpImgReq(Message):
+ DESCRIPTOR: Descriptor
+ GROUP_CODE_FIELD_NUMBER: int
+ SRC_UIN_FIELD_NUMBER: int
+ FILE_ID_FIELD_NUMBER: int
+ FILE_MD5_FIELD_NUMBER: int
+ FILE_SIZE_FIELD_NUMBER: int
+ FILE_NAME_FIELD_NUMBER: int
+ SRC_TERM_FIELD_NUMBER: int
+ PLATFORM_TYPE_FIELD_NUMBER: int
+ BU_TYPE_FIELD_NUMBER: int
+ PIC_WIDTH_FIELD_NUMBER: int
+ PIC_HEIGHT_FIELD_NUMBER: int
+ PIC_TYPE_FIELD_NUMBER: int
+ BUILD_VER_FIELD_NUMBER: int
+ INNER_IP_FIELD_NUMBER: int
+ APP_PIC_TYPE_FIELD_NUMBER: int
+ ORIGINAL_PIC_FIELD_NUMBER: int
+ FILE_INDEX_FIELD_NUMBER: int
+ DST_UIN_FIELD_NUMBER: int
+ SRV_UPLOAD_FIELD_NUMBER: int
+ TRANSFER_URL_FIELD_NUMBER: int
+ QQMEET_GUILD_ID_FIELD_NUMBER: int
+ QQMEET_CHANNEL_ID_FIELD_NUMBER: int
+ group_code: int
+ src_uin: int
+ file_id: int
+ file_md5: bytes
+ file_size: int
+ file_name: bytes
+ src_term: int
+ platform_type: int
+ bu_type: int
+ pic_width: int
+ pic_height: int
+ pic_type: int
+ build_ver: bytes
+ inner_ip: int
+ app_pic_type: int
+ original_pic: int
+ file_index: bytes
+ dst_uin: int
+ srv_upload: int
+ transfer_url: bytes
+ qqmeet_guild_id: int
+ qqmeet_channel_id: int
+ def __init__(self,
+ *,
+ group_code: Optional[int] = ...,
+ src_uin: Optional[int] = ...,
+ file_id: Optional[int] = ...,
+ file_md5: Optional[bytes] = ...,
+ file_size: Optional[int] = ...,
+ file_name: Optional[bytes] = ...,
+ src_term: Optional[int] = ...,
+ platform_type: Optional[int] = ...,
+ bu_type: Optional[int] = ...,
+ pic_width: Optional[int] = ...,
+ pic_height: Optional[int] = ...,
+ pic_type: Optional[int] = ...,
+ build_ver: Optional[bytes] = ...,
+ inner_ip: Optional[int] = ...,
+ app_pic_type: Optional[int] = ...,
+ original_pic: Optional[int] = ...,
+ file_index: Optional[bytes] = ...,
+ dst_uin: Optional[int] = ...,
+ srv_upload: Optional[int] = ...,
+ transfer_url: Optional[bytes] = ...,
+ qqmeet_guild_id: Optional[int] = ...,
+ qqmeet_channel_id: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["app_pic_type",b"app_pic_type","bu_type",b"bu_type","build_ver",b"build_ver","dst_uin",b"dst_uin","file_id",b"file_id","file_index",b"file_index","file_md5",b"file_md5","file_name",b"file_name","file_size",b"file_size","group_code",b"group_code","inner_ip",b"inner_ip","original_pic",b"original_pic","pic_height",b"pic_height","pic_type",b"pic_type","pic_width",b"pic_width","platform_type",b"platform_type","qqmeet_channel_id",b"qqmeet_channel_id","qqmeet_guild_id",b"qqmeet_guild_id","src_term",b"src_term","src_uin",b"src_uin","srv_upload",b"srv_upload","transfer_url",b"transfer_url"]) -> bool: ...
+ def ClearField(self, field_name: Literal["app_pic_type",b"app_pic_type","bu_type",b"bu_type","build_ver",b"build_ver","dst_uin",b"dst_uin","file_id",b"file_id","file_index",b"file_index","file_md5",b"file_md5","file_name",b"file_name","file_size",b"file_size","group_code",b"group_code","inner_ip",b"inner_ip","original_pic",b"original_pic","pic_height",b"pic_height","pic_type",b"pic_type","pic_width",b"pic_width","platform_type",b"platform_type","qqmeet_channel_id",b"qqmeet_channel_id","qqmeet_guild_id",b"qqmeet_guild_id","src_term",b"src_term","src_uin",b"src_uin","srv_upload",b"srv_upload","transfer_url",b"transfer_url"]) -> None: ...
+
+class TryUpImgRsp(Message):
+ DESCRIPTOR: Descriptor
+ FILE_ID_FIELD_NUMBER: int
+ RESULT_FIELD_NUMBER: int
+ FAIL_MSG_FIELD_NUMBER: int
+ FILE_EXIT_FIELD_NUMBER: int
+ IMG_INFO_FIELD_NUMBER: int
+ UP_IP_FIELD_NUMBER: int
+ UP_PORT_FIELD_NUMBER: int
+ UP_UKEY_FIELD_NUMBER: int
+ FILEID_FIELD_NUMBER: int
+ UP_OFFSET_FIELD_NUMBER: int
+ BLOCK_SIZE_FIELD_NUMBER: int
+ NEW_BIG_CHAN_FIELD_NUMBER: int
+ UP_IP6_FIELD_NUMBER: int
+ CLIENT_IP6_FIELD_NUMBER: int
+ DOWNLOAD_INDEX_FIELD_NUMBER: int
+ INFO4_BUSI_FIELD_NUMBER: int
+ file_id: int
+ result: int
+ fail_msg: bytes
+ file_exit: bool
+ @property
+ def img_info(self) -> ImgInfo: ...
+ @property
+ def up_ip(self) -> RepeatedScalarFieldContainer[int]: ...
+ @property
+ def up_port(self) -> RepeatedScalarFieldContainer[int]: ...
+ up_ukey: bytes
+ fileid: int
+ up_offset: int
+ block_size: int
+ new_big_chan: bool
+ @property
+ def up_ip6(self) -> RepeatedCompositeFieldContainer[IPv6Info]: ...
+ client_ip6: bytes
+ download_index: bytes
+ @property
+ def info4_busi(self) -> TryUpInfo4Busi: ...
+ def __init__(self,
+ *,
+ file_id: Optional[int] = ...,
+ result: Optional[int] = ...,
+ fail_msg: Optional[bytes] = ...,
+ file_exit: Optional[bool] = ...,
+ img_info: Optional[ImgInfo] = ...,
+ up_ip: Optional[Iterable[int]] = ...,
+ up_port: Optional[Iterable[int]] = ...,
+ up_ukey: Optional[bytes] = ...,
+ fileid: Optional[int] = ...,
+ up_offset: Optional[int] = ...,
+ block_size: Optional[int] = ...,
+ new_big_chan: Optional[bool] = ...,
+ up_ip6: Optional[Iterable[IPv6Info]] = ...,
+ client_ip6: Optional[bytes] = ...,
+ download_index: Optional[bytes] = ...,
+ info4_busi: Optional[TryUpInfo4Busi] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["block_size",b"block_size","client_ip6",b"client_ip6","download_index",b"download_index","fail_msg",b"fail_msg","file_exit",b"file_exit","file_id",b"file_id","fileid",b"fileid","img_info",b"img_info","info4_busi",b"info4_busi","new_big_chan",b"new_big_chan","result",b"result","up_offset",b"up_offset","up_ukey",b"up_ukey"]) -> bool: ...
+ def ClearField(self, field_name: Literal["block_size",b"block_size","client_ip6",b"client_ip6","download_index",b"download_index","fail_msg",b"fail_msg","file_exit",b"file_exit","file_id",b"file_id","fileid",b"fileid","img_info",b"img_info","info4_busi",b"info4_busi","new_big_chan",b"new_big_chan","result",b"result","up_ip",b"up_ip","up_ip6",b"up_ip6","up_offset",b"up_offset","up_port",b"up_port","up_ukey",b"up_ukey"]) -> None: ...
+
+class TryUpInfo4Busi(Message):
+ DESCRIPTOR: Descriptor
+ DOWN_DOMAIN_FIELD_NUMBER: int
+ THUMB_DOWN_URL_FIELD_NUMBER: int
+ ORIGINAL_DOWN_URL_FIELD_NUMBER: int
+ BIG_DOWN_URL_FIELD_NUMBER: int
+ FILE_RESID_FIELD_NUMBER: int
+ down_domain: bytes
+ thumb_down_url: bytes
+ original_down_url: bytes
+ big_down_url: bytes
+ file_resid: bytes
+ def __init__(self,
+ *,
+ down_domain: Optional[bytes] = ...,
+ thumb_down_url: Optional[bytes] = ...,
+ original_down_url: Optional[bytes] = ...,
+ big_down_url: Optional[bytes] = ...,
+ file_resid: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["big_down_url",b"big_down_url","down_domain",b"down_domain","file_resid",b"file_resid","original_down_url",b"original_down_url","thumb_down_url",b"thumb_down_url"]) -> bool: ...
+ def ClearField(self, field_name: Literal["big_down_url",b"big_down_url","down_domain",b"down_domain","file_resid",b"file_resid","original_down_url",b"original_down_url","thumb_down_url",b"thumb_down_url"]) -> None: ...
+
+class TryUpPttReq(Message):
+ DESCRIPTOR: Descriptor
+ GROUP_CODE_FIELD_NUMBER: int
+ SRC_UIN_FIELD_NUMBER: int
+ FILE_ID_FIELD_NUMBER: int
+ FILE_MD5_FIELD_NUMBER: int
+ FILE_SIZE_FIELD_NUMBER: int
+ FILE_NAME_FIELD_NUMBER: int
+ SRC_TERM_FIELD_NUMBER: int
+ PLATFORM_TYPE_FIELD_NUMBER: int
+ BU_TYPE_FIELD_NUMBER: int
+ BUILD_VER_FIELD_NUMBER: int
+ INNER_IP_FIELD_NUMBER: int
+ VOICE_LENGTH_FIELD_NUMBER: int
+ NEW_UP_CHAN_FIELD_NUMBER: int
+ CODEC_FIELD_NUMBER: int
+ VOICE_TYPE_FIELD_NUMBER: int
+ BU_ID_FIELD_NUMBER: int
+ group_code: int
+ src_uin: int
+ file_id: int
+ file_md5: bytes
+ file_size: int
+ file_name: bytes
+ src_term: int
+ platform_type: int
+ bu_type: int
+ build_ver: bytes
+ inner_ip: int
+ voice_length: int
+ new_up_chan: bool
+ codec: int
+ voice_type: int
+ bu_id: int
+ def __init__(self,
+ *,
+ group_code: Optional[int] = ...,
+ src_uin: Optional[int] = ...,
+ file_id: Optional[int] = ...,
+ file_md5: Optional[bytes] = ...,
+ file_size: Optional[int] = ...,
+ file_name: Optional[bytes] = ...,
+ src_term: Optional[int] = ...,
+ platform_type: Optional[int] = ...,
+ bu_type: Optional[int] = ...,
+ build_ver: Optional[bytes] = ...,
+ inner_ip: Optional[int] = ...,
+ voice_length: Optional[int] = ...,
+ new_up_chan: Optional[bool] = ...,
+ codec: Optional[int] = ...,
+ voice_type: Optional[int] = ...,
+ bu_id: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["bu_id",b"bu_id","bu_type",b"bu_type","build_ver",b"build_ver","codec",b"codec","file_id",b"file_id","file_md5",b"file_md5","file_name",b"file_name","file_size",b"file_size","group_code",b"group_code","inner_ip",b"inner_ip","new_up_chan",b"new_up_chan","platform_type",b"platform_type","src_term",b"src_term","src_uin",b"src_uin","voice_length",b"voice_length","voice_type",b"voice_type"]) -> bool: ...
+ def ClearField(self, field_name: Literal["bu_id",b"bu_id","bu_type",b"bu_type","build_ver",b"build_ver","codec",b"codec","file_id",b"file_id","file_md5",b"file_md5","file_name",b"file_name","file_size",b"file_size","group_code",b"group_code","inner_ip",b"inner_ip","new_up_chan",b"new_up_chan","platform_type",b"platform_type","src_term",b"src_term","src_uin",b"src_uin","voice_length",b"voice_length","voice_type",b"voice_type"]) -> None: ...
+
+class TryUpPttRsp(Message):
+ DESCRIPTOR: Descriptor
+ FILE_ID_FIELD_NUMBER: int
+ RESULT_FIELD_NUMBER: int
+ FAIL_MSG_FIELD_NUMBER: int
+ FILE_EXIT_FIELD_NUMBER: int
+ UP_IP_FIELD_NUMBER: int
+ UP_PORT_FIELD_NUMBER: int
+ UP_UKEY_FIELD_NUMBER: int
+ FILEID_FIELD_NUMBER: int
+ UP_OFFSET_FIELD_NUMBER: int
+ BLOCK_SIZE_FIELD_NUMBER: int
+ FILE_KEY_FIELD_NUMBER: int
+ CHANNEL_TYPE_FIELD_NUMBER: int
+ UP_IP6_FIELD_NUMBER: int
+ CLIENT_IP6_FIELD_NUMBER: int
+ file_id: int
+ result: int
+ fail_msg: bytes
+ file_exit: bool
+ @property
+ def up_ip(self) -> RepeatedScalarFieldContainer[int]: ...
+ @property
+ def up_port(self) -> RepeatedScalarFieldContainer[int]: ...
+ up_ukey: bytes
+ fileid: int
+ up_offset: int
+ block_size: int
+ file_key: bytes
+ channel_type: int
+ @property
+ def up_ip6(self) -> RepeatedCompositeFieldContainer[IPv6Info]: ...
+ client_ip6: bytes
+ def __init__(self,
+ *,
+ file_id: Optional[int] = ...,
+ result: Optional[int] = ...,
+ fail_msg: Optional[bytes] = ...,
+ file_exit: Optional[bool] = ...,
+ up_ip: Optional[Iterable[int]] = ...,
+ up_port: Optional[Iterable[int]] = ...,
+ up_ukey: Optional[bytes] = ...,
+ fileid: Optional[int] = ...,
+ up_offset: Optional[int] = ...,
+ block_size: Optional[int] = ...,
+ file_key: Optional[bytes] = ...,
+ channel_type: Optional[int] = ...,
+ up_ip6: Optional[Iterable[IPv6Info]] = ...,
+ client_ip6: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["block_size",b"block_size","channel_type",b"channel_type","client_ip6",b"client_ip6","fail_msg",b"fail_msg","file_exit",b"file_exit","file_id",b"file_id","file_key",b"file_key","fileid",b"fileid","result",b"result","up_offset",b"up_offset","up_ukey",b"up_ukey"]) -> bool: ...
+ def ClearField(self, field_name: Literal["block_size",b"block_size","channel_type",b"channel_type","client_ip6",b"client_ip6","fail_msg",b"fail_msg","file_exit",b"file_exit","file_id",b"file_id","file_key",b"file_key","fileid",b"fileid","result",b"result","up_ip",b"up_ip","up_ip6",b"up_ip6","up_offset",b"up_offset","up_port",b"up_port","up_ukey",b"up_ukey"]) -> None: ...
diff --git a/cai/pb/im/msg/common/common_pb2.py b/cai/pb/im/msg/common/common_pb2.py
index c36a1de8..d7db7645 100644
--- a/cai/pb/im/msg/common/common_pb2.py
+++ b/cai/pb/im/msg/common/common_pb2.py
@@ -3,6 +3,7 @@
# source: cai/pb/im/msg/common/common.proto
"""Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
@@ -13,249 +14,14 @@
-DESCRIPTOR = _descriptor.FileDescriptor(
- name='cai/pb/im/msg/common/common.proto',
- package='im.msg.common',
- syntax='proto2',
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- serialized_pb=b'\n!cai/pb/im/msg/common/common.proto\x12\rim.msg.common\"1\n\tGroupInfo\x12\x10\n\x08group_id\x18\x01 \x01(\x04\x12\x12\n\ngroup_type\x18\x02 \x01(\r\"J\n\tSignature\x12\x10\n\x08key_type\x18\x01 \x01(\r\x12\x16\n\x0esession_app_id\x18\x02 \x01(\r\x12\x13\n\x0bsession_key\x18\x03 \x01(\x0c\"<\n\x05Token\x12\x0b\n\x03\x62uf\x18\x01 \x01(\x0c\x12\x10\n\x08\x63\x32\x63_type\x18\x02 \x01(\r\x12\x14\n\x0cservice_type\x18\x03 \x01(\r\"\xbe\x01\n\x04User\x12\x0b\n\x03uin\x18\x01 \x01(\x04\x12\x0e\n\x06\x61pp_id\x18\x02 \x01(\r\x12\x13\n\x0binstance_id\x18\x03 \x01(\r\x12\x10\n\x08\x61pp_type\x18\x04 \x01(\r\x12\x11\n\tclient_ip\x18\x05 \x01(\x07\x12\x0f\n\x07version\x18\x06 \x01(\r\x12\x14\n\x0cphone_number\x18\x07 \x01(\t\x12\x13\n\x0bplatform_id\x18\x08 \x01(\r\x12\x10\n\x08language\x18\t \x01(\r\x12\x11\n\tequip_key\x18\n \x01(\x0c'
-)
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!cai/pb/im/msg/common/common.proto\x12\rim.msg.common\"1\n\tGroupInfo\x12\x10\n\x08group_id\x18\x01 \x01(\x04\x12\x12\n\ngroup_type\x18\x02 \x01(\r\"J\n\tSignature\x12\x10\n\x08key_type\x18\x01 \x01(\r\x12\x16\n\x0esession_app_id\x18\x02 \x01(\r\x12\x13\n\x0bsession_key\x18\x03 \x01(\x0c\"<\n\x05Token\x12\x0b\n\x03\x62uf\x18\x01 \x01(\x0c\x12\x10\n\x08\x63\x32\x63_type\x18\x02 \x01(\r\x12\x14\n\x0cservice_type\x18\x03 \x01(\r\"\xbe\x01\n\x04User\x12\x0b\n\x03uin\x18\x01 \x01(\x04\x12\x0e\n\x06\x61pp_id\x18\x02 \x01(\r\x12\x13\n\x0binstance_id\x18\x03 \x01(\r\x12\x10\n\x08\x61pp_type\x18\x04 \x01(\r\x12\x11\n\tclient_ip\x18\x05 \x01(\x07\x12\x0f\n\x07version\x18\x06 \x01(\r\x12\x14\n\x0cphone_number\x18\x07 \x01(\t\x12\x13\n\x0bplatform_id\x18\x08 \x01(\r\x12\x10\n\x08language\x18\t \x01(\r\x12\x11\n\tequip_key\x18\n \x01(\x0c')
-
-_GROUPINFO = _descriptor.Descriptor(
- name='GroupInfo',
- full_name='im.msg.common.GroupInfo',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='group_id', full_name='im.msg.common.GroupInfo.group_id', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='group_type', full_name='im.msg.common.GroupInfo.group_type', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=52,
- serialized_end=101,
-)
-
-
-_SIGNATURE = _descriptor.Descriptor(
- name='Signature',
- full_name='im.msg.common.Signature',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='key_type', full_name='im.msg.common.Signature.key_type', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='session_app_id', full_name='im.msg.common.Signature.session_app_id', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='session_key', full_name='im.msg.common.Signature.session_key', index=2,
- number=3, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=103,
- serialized_end=177,
-)
-
-
-_TOKEN = _descriptor.Descriptor(
- name='Token',
- full_name='im.msg.common.Token',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='buf', full_name='im.msg.common.Token.buf', index=0,
- number=1, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='c2c_type', full_name='im.msg.common.Token.c2c_type', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='service_type', full_name='im.msg.common.Token.service_type', index=2,
- number=3, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=179,
- serialized_end=239,
-)
-
-
-_USER = _descriptor.Descriptor(
- name='User',
- full_name='im.msg.common.User',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='uin', full_name='im.msg.common.User.uin', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='app_id', full_name='im.msg.common.User.app_id', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='instance_id', full_name='im.msg.common.User.instance_id', index=2,
- number=3, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='app_type', full_name='im.msg.common.User.app_type', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='client_ip', full_name='im.msg.common.User.client_ip', index=4,
- number=5, type=7, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='version', full_name='im.msg.common.User.version', index=5,
- number=6, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='phone_number', full_name='im.msg.common.User.phone_number', index=6,
- number=7, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='platform_id', full_name='im.msg.common.User.platform_id', index=7,
- number=8, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='language', full_name='im.msg.common.User.language', index=8,
- number=9, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='equip_key', full_name='im.msg.common.User.equip_key', index=9,
- number=10, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=242,
- serialized_end=432,
-)
-
-DESCRIPTOR.message_types_by_name['GroupInfo'] = _GROUPINFO
-DESCRIPTOR.message_types_by_name['Signature'] = _SIGNATURE
-DESCRIPTOR.message_types_by_name['Token'] = _TOKEN
-DESCRIPTOR.message_types_by_name['User'] = _USER
-_sym_db.RegisterFileDescriptor(DESCRIPTOR)
-
+_GROUPINFO = DESCRIPTOR.message_types_by_name['GroupInfo']
+_SIGNATURE = DESCRIPTOR.message_types_by_name['Signature']
+_TOKEN = DESCRIPTOR.message_types_by_name['Token']
+_USER = DESCRIPTOR.message_types_by_name['User']
GroupInfo = _reflection.GeneratedProtocolMessageType('GroupInfo', (_message.Message,), {
'DESCRIPTOR' : _GROUPINFO,
'__module__' : 'cai.pb.im.msg.common.common_pb2'
@@ -284,5 +50,15 @@
})
_sym_db.RegisterMessage(User)
-
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ _GROUPINFO._serialized_start=52
+ _GROUPINFO._serialized_end=101
+ _SIGNATURE._serialized_start=103
+ _SIGNATURE._serialized_end=177
+ _TOKEN._serialized_start=179
+ _TOKEN._serialized_end=239
+ _USER._serialized_start=242
+ _USER._serialized_end=432
# @@protoc_insertion_point(module_scope)
diff --git a/cai/pb/im/msg/common/common_pb2.pyi b/cai/pb/im/msg/common/common_pb2.pyi
index f27c8021..e4e58b11 100644
--- a/cai/pb/im/msg/common/common_pb2.pyi
+++ b/cai/pb/im/msg/common/common_pb2.pyi
@@ -27,61 +27,61 @@ from typing_extensions import (
)
-DESCRIPTOR: FileDescriptor = ...
+DESCRIPTOR: FileDescriptor
class GroupInfo(Message):
- DESCRIPTOR: Descriptor = ...
+ """tencent/im/msg/im_common.java
+
+ """
+ DESCRIPTOR: Descriptor
GROUP_ID_FIELD_NUMBER: int
GROUP_TYPE_FIELD_NUMBER: int
- group_id: int = ...
- group_type: int = ...
-
+ group_id: int
+ group_type: int
def __init__(self,
*,
- group_id : Optional[int] = ...,
- group_type : Optional[int] = ...,
+ group_id: Optional[int] = ...,
+ group_type: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"group_id",b"group_id",u"group_type",b"group_type"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"group_id",b"group_id",u"group_type",b"group_type"]) -> None: ...
+ def HasField(self, field_name: Literal["group_id",b"group_id","group_type",b"group_type"]) -> bool: ...
+ def ClearField(self, field_name: Literal["group_id",b"group_id","group_type",b"group_type"]) -> None: ...
class Signature(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
KEY_TYPE_FIELD_NUMBER: int
SESSION_APP_ID_FIELD_NUMBER: int
SESSION_KEY_FIELD_NUMBER: int
- key_type: int = ...
- session_app_id: int = ...
- session_key: bytes = ...
-
+ key_type: int
+ session_app_id: int
+ session_key: bytes
def __init__(self,
*,
- key_type : Optional[int] = ...,
- session_app_id : Optional[int] = ...,
- session_key : Optional[bytes] = ...,
+ key_type: Optional[int] = ...,
+ session_app_id: Optional[int] = ...,
+ session_key: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"key_type",b"key_type",u"session_app_id",b"session_app_id",u"session_key",b"session_key"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"key_type",b"key_type",u"session_app_id",b"session_app_id",u"session_key",b"session_key"]) -> None: ...
+ def HasField(self, field_name: Literal["key_type",b"key_type","session_app_id",b"session_app_id","session_key",b"session_key"]) -> bool: ...
+ def ClearField(self, field_name: Literal["key_type",b"key_type","session_app_id",b"session_app_id","session_key",b"session_key"]) -> None: ...
class Token(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
BUF_FIELD_NUMBER: int
C2C_TYPE_FIELD_NUMBER: int
SERVICE_TYPE_FIELD_NUMBER: int
- buf: bytes = ...
- c2c_type: int = ...
- service_type: int = ...
-
+ buf: bytes
+ c2c_type: int
+ service_type: int
def __init__(self,
*,
- buf : Optional[bytes] = ...,
- c2c_type : Optional[int] = ...,
- service_type : Optional[int] = ...,
+ buf: Optional[bytes] = ...,
+ c2c_type: Optional[int] = ...,
+ service_type: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"buf",b"buf",u"c2c_type",b"c2c_type",u"service_type",b"service_type"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"buf",b"buf",u"c2c_type",b"c2c_type",u"service_type",b"service_type"]) -> None: ...
+ def HasField(self, field_name: Literal["buf",b"buf","c2c_type",b"c2c_type","service_type",b"service_type"]) -> bool: ...
+ def ClearField(self, field_name: Literal["buf",b"buf","c2c_type",b"c2c_type","service_type",b"service_type"]) -> None: ...
class User(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
UIN_FIELD_NUMBER: int
APP_ID_FIELD_NUMBER: int
INSTANCE_ID_FIELD_NUMBER: int
@@ -92,29 +92,28 @@ class User(Message):
PLATFORM_ID_FIELD_NUMBER: int
LANGUAGE_FIELD_NUMBER: int
EQUIP_KEY_FIELD_NUMBER: int
- uin: int = ...
- app_id: int = ...
- instance_id: int = ...
- app_type: int = ...
- client_ip: int = ...
- version: int = ...
- phone_number: Text = ...
- platform_id: int = ...
- language: int = ...
- equip_key: bytes = ...
-
+ uin: int
+ app_id: int
+ instance_id: int
+ app_type: int
+ client_ip: int
+ version: int
+ phone_number: Text
+ platform_id: int
+ language: int
+ equip_key: bytes
def __init__(self,
*,
- uin : Optional[int] = ...,
- app_id : Optional[int] = ...,
- instance_id : Optional[int] = ...,
- app_type : Optional[int] = ...,
- client_ip : Optional[int] = ...,
- version : Optional[int] = ...,
- phone_number : Optional[Text] = ...,
- platform_id : Optional[int] = ...,
- language : Optional[int] = ...,
- equip_key : Optional[bytes] = ...,
+ uin: Optional[int] = ...,
+ app_id: Optional[int] = ...,
+ instance_id: Optional[int] = ...,
+ app_type: Optional[int] = ...,
+ client_ip: Optional[int] = ...,
+ version: Optional[int] = ...,
+ phone_number: Optional[Text] = ...,
+ platform_id: Optional[int] = ...,
+ language: Optional[int] = ...,
+ equip_key: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"app_id",b"app_id",u"app_type",b"app_type",u"client_ip",b"client_ip",u"equip_key",b"equip_key",u"instance_id",b"instance_id",u"language",b"language",u"phone_number",b"phone_number",u"platform_id",b"platform_id",u"uin",b"uin",u"version",b"version"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"app_id",b"app_id",u"app_type",b"app_type",u"client_ip",b"client_ip",u"equip_key",b"equip_key",u"instance_id",b"instance_id",u"language",b"language",u"phone_number",b"phone_number",u"platform_id",b"platform_id",u"uin",b"uin",u"version",b"version"]) -> None: ...
+ def HasField(self, field_name: Literal["app_id",b"app_id","app_type",b"app_type","client_ip",b"client_ip","equip_key",b"equip_key","instance_id",b"instance_id","language",b"language","phone_number",b"phone_number","platform_id",b"platform_id","uin",b"uin","version",b"version"]) -> bool: ...
+ def ClearField(self, field_name: Literal["app_id",b"app_id","app_type",b"app_type","client_ip",b"client_ip","equip_key",b"equip_key","instance_id",b"instance_id","language",b"language","phone_number",b"phone_number","platform_id",b"platform_id","uin",b"uin","version",b"version"]) -> None: ...
diff --git a/cai/pb/im/msg/msg/msg_pb2.py b/cai/pb/im/msg/msg/msg_pb2.py
index 23b1d189..d18dee4d 100644
--- a/cai/pb/im/msg/msg/msg_pb2.py
+++ b/cai/pb/im/msg/msg/msg_pb2.py
@@ -3,6 +3,7 @@
# source: cai/pb/im/msg/msg/msg.proto
"""Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
@@ -15,486 +16,19 @@
from cai.pb.im.msg.msg_body import msg_body_pb2 as cai_dot_pb_dot_im_dot_msg_dot_msg__body_dot_msg__body__pb2
-DESCRIPTOR = _descriptor.FileDescriptor(
- name='cai/pb/im/msg/msg/msg.proto',
- package='im.msg.msg',
- syntax='proto2',
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- serialized_pb=b'\n\x1b\x63\x61i/pb/im/msg/msg/msg.proto\x12\nim.msg.msg\x1a!cai/pb/im/msg/common/common.proto\x1a%cai/pb/im/msg/msg_body/msg_body.proto\"\x80\x01\n\x03\x43\x32\x43\x12#\n\x06sender\x18\x01 \x01(\x0b\x32\x13.im.msg.common.User\x12%\n\x08receiver\x18\x02 \x01(\x0b\x32\x13.im.msg.common.User\x12-\n\x0c\x63\x32\x63_relation\x18\x03 \x01(\x0b\x32\x17.im.msg.msg.C2CRelation\"r\n\x0b\x43\x32\x43Relation\x12\x10\n\x08\x63\x32\x63_type\x18\x01 \x01(\r\x12,\n\ngroup_info\x18\x02 \x01(\x0b\x32\x18.im.msg.common.GroupInfo\x12#\n\x05token\x18\x03 \x01(\x0b\x32\x14.im.msg.common.Token\"\xba\x01\n\x0b\x43ontentHead\x12\x0f\n\x07pkg_num\x18\x01 \x01(\r\x12\x11\n\tpkg_index\x18\x02 \x01(\r\x12\x0b\n\x03seq\x18\x03 \x01(\r\x12\x11\n\tdate_time\x18\x04 \x01(\r\x12\x0c\n\x04type\x18\x05 \x01(\r\x12\x0f\n\x07\x64iv_seq\x18\x06 \x01(\r\x12\x11\n\tmsgdb_uin\x18\x07 \x01(\x04\x12\x11\n\tmsgdb_seq\x18\x08 \x01(\r\x12\x14\n\x0cword_msg_seq\x18\t \x01(\r\x12\x0c\n\x04rand\x18\n \x01(\r\"\x81\x01\n\x05Group\x12#\n\x06sender\x18\x01 \x01(\x0b\x32\x13.im.msg.common.User\x12%\n\x08receiver\x18\x02 \x01(\x0b\x32\x13.im.msg.common.User\x12,\n\ngroup_info\x18\x03 \x01(\x0b\x32\x18.im.msg.common.GroupInfo\"P\n\x03Msg\x12!\n\x04head\x18\x01 \x01(\x0b\x32\x13.im.msg.msg.MsgHead\x12&\n\x04\x62ody\x18\x02 \x01(\x0b\x32\x18.im.msg.msg_body.MsgBody\"\x81\x01\n\x07MsgHead\x12-\n\x0crouting_head\x18\x01 \x01(\x0b\x32\x17.im.msg.msg.RoutingHead\x12-\n\x0c\x63ontent_head\x18\x02 \x01(\x0b\x32\x17.im.msg.msg.ContentHead\x12\x18\n\x10gbk_tmp_msg_body\x18\x03 \x01(\x0c\"r\n\nMsgSendReq\x12\x1c\n\x03msg\x18\x01 \x01(\x0b\x32\x0f.im.msg.msg.Msg\x12\x0e\n\x06\x62u_msg\x18\x02 \x01(\x0c\x12\x0f\n\x07tail_id\x18\x03 \x01(\r\x12\x15\n\rconn_msg_flag\x18\x04 \x01(\r\x12\x0e\n\x06\x63ookie\x18\x05 \x01(\x0c\"\r\n\x0bMsgSendResp\"N\n\x0bRoutingHead\x12\x1d\n\x04\x63\x32_c\x18\x01 \x01(\x0b\x32\x0f.im.msg.msg.C2C\x12 \n\x05group\x18\x02 \x01(\x0b\x32\x11.im.msg.msg.Group'
- ,
- dependencies=[cai_dot_pb_dot_im_dot_msg_dot_common_dot_common__pb2.DESCRIPTOR,cai_dot_pb_dot_im_dot_msg_dot_msg__body_dot_msg__body__pb2.DESCRIPTOR,])
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1b\x63\x61i/pb/im/msg/msg/msg.proto\x12\nim.msg.msg\x1a!cai/pb/im/msg/common/common.proto\x1a%cai/pb/im/msg/msg_body/msg_body.proto\"\x80\x01\n\x03\x43\x32\x43\x12#\n\x06sender\x18\x01 \x01(\x0b\x32\x13.im.msg.common.User\x12%\n\x08receiver\x18\x02 \x01(\x0b\x32\x13.im.msg.common.User\x12-\n\x0c\x63\x32\x63_relation\x18\x03 \x01(\x0b\x32\x17.im.msg.msg.C2CRelation\"r\n\x0b\x43\x32\x43Relation\x12\x10\n\x08\x63\x32\x63_type\x18\x01 \x01(\r\x12,\n\ngroup_info\x18\x02 \x01(\x0b\x32\x18.im.msg.common.GroupInfo\x12#\n\x05token\x18\x03 \x01(\x0b\x32\x14.im.msg.common.Token\"\xba\x01\n\x0b\x43ontentHead\x12\x0f\n\x07pkg_num\x18\x01 \x01(\r\x12\x11\n\tpkg_index\x18\x02 \x01(\r\x12\x0b\n\x03seq\x18\x03 \x01(\r\x12\x11\n\tdate_time\x18\x04 \x01(\r\x12\x0c\n\x04type\x18\x05 \x01(\r\x12\x0f\n\x07\x64iv_seq\x18\x06 \x01(\r\x12\x11\n\tmsgdb_uin\x18\x07 \x01(\x04\x12\x11\n\tmsgdb_seq\x18\x08 \x01(\r\x12\x14\n\x0cword_msg_seq\x18\t \x01(\r\x12\x0c\n\x04rand\x18\n \x01(\r\"\x81\x01\n\x05Group\x12#\n\x06sender\x18\x01 \x01(\x0b\x32\x13.im.msg.common.User\x12%\n\x08receiver\x18\x02 \x01(\x0b\x32\x13.im.msg.common.User\x12,\n\ngroup_info\x18\x03 \x01(\x0b\x32\x18.im.msg.common.GroupInfo\"P\n\x03Msg\x12!\n\x04head\x18\x01 \x01(\x0b\x32\x13.im.msg.msg.MsgHead\x12&\n\x04\x62ody\x18\x02 \x01(\x0b\x32\x18.im.msg.msg_body.MsgBody\"\x81\x01\n\x07MsgHead\x12-\n\x0crouting_head\x18\x01 \x01(\x0b\x32\x17.im.msg.msg.RoutingHead\x12-\n\x0c\x63ontent_head\x18\x02 \x01(\x0b\x32\x17.im.msg.msg.ContentHead\x12\x18\n\x10gbk_tmp_msg_body\x18\x03 \x01(\x0c\"r\n\nMsgSendReq\x12\x1c\n\x03msg\x18\x01 \x01(\x0b\x32\x0f.im.msg.msg.Msg\x12\x0e\n\x06\x62u_msg\x18\x02 \x01(\x0c\x12\x0f\n\x07tail_id\x18\x03 \x01(\r\x12\x15\n\rconn_msg_flag\x18\x04 \x01(\r\x12\x0e\n\x06\x63ookie\x18\x05 \x01(\x0c\"\r\n\x0bMsgSendResp\"N\n\x0bRoutingHead\x12\x1d\n\x04\x63\x32_c\x18\x01 \x01(\x0b\x32\x0f.im.msg.msg.C2C\x12 \n\x05group\x18\x02 \x01(\x0b\x32\x11.im.msg.msg.Group')
-
-_C2C = _descriptor.Descriptor(
- name='C2C',
- full_name='im.msg.msg.C2C',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='sender', full_name='im.msg.msg.C2C.sender', index=0,
- number=1, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='receiver', full_name='im.msg.msg.C2C.receiver', index=1,
- number=2, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='c2c_relation', full_name='im.msg.msg.C2C.c2c_relation', index=2,
- number=3, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=118,
- serialized_end=246,
-)
-
-
-_C2CRELATION = _descriptor.Descriptor(
- name='C2CRelation',
- full_name='im.msg.msg.C2CRelation',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='c2c_type', full_name='im.msg.msg.C2CRelation.c2c_type', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='group_info', full_name='im.msg.msg.C2CRelation.group_info', index=1,
- number=2, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='token', full_name='im.msg.msg.C2CRelation.token', index=2,
- number=3, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=248,
- serialized_end=362,
-)
-
-
-_CONTENTHEAD = _descriptor.Descriptor(
- name='ContentHead',
- full_name='im.msg.msg.ContentHead',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='pkg_num', full_name='im.msg.msg.ContentHead.pkg_num', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='pkg_index', full_name='im.msg.msg.ContentHead.pkg_index', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='seq', full_name='im.msg.msg.ContentHead.seq', index=2,
- number=3, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='date_time', full_name='im.msg.msg.ContentHead.date_time', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='type', full_name='im.msg.msg.ContentHead.type', index=4,
- number=5, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='div_seq', full_name='im.msg.msg.ContentHead.div_seq', index=5,
- number=6, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='msgdb_uin', full_name='im.msg.msg.ContentHead.msgdb_uin', index=6,
- number=7, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='msgdb_seq', full_name='im.msg.msg.ContentHead.msgdb_seq', index=7,
- number=8, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='word_msg_seq', full_name='im.msg.msg.ContentHead.word_msg_seq', index=8,
- number=9, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='rand', full_name='im.msg.msg.ContentHead.rand', index=9,
- number=10, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=365,
- serialized_end=551,
-)
-
-
-_GROUP = _descriptor.Descriptor(
- name='Group',
- full_name='im.msg.msg.Group',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='sender', full_name='im.msg.msg.Group.sender', index=0,
- number=1, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='receiver', full_name='im.msg.msg.Group.receiver', index=1,
- number=2, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='group_info', full_name='im.msg.msg.Group.group_info', index=2,
- number=3, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=554,
- serialized_end=683,
-)
-
-
-_MSG = _descriptor.Descriptor(
- name='Msg',
- full_name='im.msg.msg.Msg',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='head', full_name='im.msg.msg.Msg.head', index=0,
- number=1, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='body', full_name='im.msg.msg.Msg.body', index=1,
- number=2, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=685,
- serialized_end=765,
-)
-
-
-_MSGHEAD = _descriptor.Descriptor(
- name='MsgHead',
- full_name='im.msg.msg.MsgHead',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='routing_head', full_name='im.msg.msg.MsgHead.routing_head', index=0,
- number=1, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='content_head', full_name='im.msg.msg.MsgHead.content_head', index=1,
- number=2, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='gbk_tmp_msg_body', full_name='im.msg.msg.MsgHead.gbk_tmp_msg_body', index=2,
- number=3, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=768,
- serialized_end=897,
-)
-
-
-_MSGSENDREQ = _descriptor.Descriptor(
- name='MsgSendReq',
- full_name='im.msg.msg.MsgSendReq',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='msg', full_name='im.msg.msg.MsgSendReq.msg', index=0,
- number=1, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='bu_msg', full_name='im.msg.msg.MsgSendReq.bu_msg', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='tail_id', full_name='im.msg.msg.MsgSendReq.tail_id', index=2,
- number=3, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='conn_msg_flag', full_name='im.msg.msg.MsgSendReq.conn_msg_flag', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='cookie', full_name='im.msg.msg.MsgSendReq.cookie', index=4,
- number=5, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=899,
- serialized_end=1013,
-)
-
-
-_MSGSENDRESP = _descriptor.Descriptor(
- name='MsgSendResp',
- full_name='im.msg.msg.MsgSendResp',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=1015,
- serialized_end=1028,
-)
-
-
-_ROUTINGHEAD = _descriptor.Descriptor(
- name='RoutingHead',
- full_name='im.msg.msg.RoutingHead',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='c2_c', full_name='im.msg.msg.RoutingHead.c2_c', index=0,
- number=1, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='group', full_name='im.msg.msg.RoutingHead.group', index=1,
- number=2, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=1030,
- serialized_end=1108,
-)
-
-_C2C.fields_by_name['sender'].message_type = cai_dot_pb_dot_im_dot_msg_dot_common_dot_common__pb2._USER
-_C2C.fields_by_name['receiver'].message_type = cai_dot_pb_dot_im_dot_msg_dot_common_dot_common__pb2._USER
-_C2C.fields_by_name['c2c_relation'].message_type = _C2CRELATION
-_C2CRELATION.fields_by_name['group_info'].message_type = cai_dot_pb_dot_im_dot_msg_dot_common_dot_common__pb2._GROUPINFO
-_C2CRELATION.fields_by_name['token'].message_type = cai_dot_pb_dot_im_dot_msg_dot_common_dot_common__pb2._TOKEN
-_GROUP.fields_by_name['sender'].message_type = cai_dot_pb_dot_im_dot_msg_dot_common_dot_common__pb2._USER
-_GROUP.fields_by_name['receiver'].message_type = cai_dot_pb_dot_im_dot_msg_dot_common_dot_common__pb2._USER
-_GROUP.fields_by_name['group_info'].message_type = cai_dot_pb_dot_im_dot_msg_dot_common_dot_common__pb2._GROUPINFO
-_MSG.fields_by_name['head'].message_type = _MSGHEAD
-_MSG.fields_by_name['body'].message_type = cai_dot_pb_dot_im_dot_msg_dot_msg__body_dot_msg__body__pb2._MSGBODY
-_MSGHEAD.fields_by_name['routing_head'].message_type = _ROUTINGHEAD
-_MSGHEAD.fields_by_name['content_head'].message_type = _CONTENTHEAD
-_MSGSENDREQ.fields_by_name['msg'].message_type = _MSG
-_ROUTINGHEAD.fields_by_name['c2_c'].message_type = _C2C
-_ROUTINGHEAD.fields_by_name['group'].message_type = _GROUP
-DESCRIPTOR.message_types_by_name['C2C'] = _C2C
-DESCRIPTOR.message_types_by_name['C2CRelation'] = _C2CRELATION
-DESCRIPTOR.message_types_by_name['ContentHead'] = _CONTENTHEAD
-DESCRIPTOR.message_types_by_name['Group'] = _GROUP
-DESCRIPTOR.message_types_by_name['Msg'] = _MSG
-DESCRIPTOR.message_types_by_name['MsgHead'] = _MSGHEAD
-DESCRIPTOR.message_types_by_name['MsgSendReq'] = _MSGSENDREQ
-DESCRIPTOR.message_types_by_name['MsgSendResp'] = _MSGSENDRESP
-DESCRIPTOR.message_types_by_name['RoutingHead'] = _ROUTINGHEAD
-_sym_db.RegisterFileDescriptor(DESCRIPTOR)
-
+_C2C = DESCRIPTOR.message_types_by_name['C2C']
+_C2CRELATION = DESCRIPTOR.message_types_by_name['C2CRelation']
+_CONTENTHEAD = DESCRIPTOR.message_types_by_name['ContentHead']
+_GROUP = DESCRIPTOR.message_types_by_name['Group']
+_MSG = DESCRIPTOR.message_types_by_name['Msg']
+_MSGHEAD = DESCRIPTOR.message_types_by_name['MsgHead']
+_MSGSENDREQ = DESCRIPTOR.message_types_by_name['MsgSendReq']
+_MSGSENDRESP = DESCRIPTOR.message_types_by_name['MsgSendResp']
+_ROUTINGHEAD = DESCRIPTOR.message_types_by_name['RoutingHead']
C2C = _reflection.GeneratedProtocolMessageType('C2C', (_message.Message,), {
'DESCRIPTOR' : _C2C,
'__module__' : 'cai.pb.im.msg.msg.msg_pb2'
@@ -558,5 +92,25 @@
})
_sym_db.RegisterMessage(RoutingHead)
-
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ _C2C._serialized_start=118
+ _C2C._serialized_end=246
+ _C2CRELATION._serialized_start=248
+ _C2CRELATION._serialized_end=362
+ _CONTENTHEAD._serialized_start=365
+ _CONTENTHEAD._serialized_end=551
+ _GROUP._serialized_start=554
+ _GROUP._serialized_end=683
+ _MSG._serialized_start=685
+ _MSG._serialized_end=765
+ _MSGHEAD._serialized_start=768
+ _MSGHEAD._serialized_end=897
+ _MSGSENDREQ._serialized_start=899
+ _MSGSENDREQ._serialized_end=1013
+ _MSGSENDRESP._serialized_start=1015
+ _MSGSENDRESP._serialized_end=1028
+ _ROUTINGHEAD._serialized_start=1030
+ _ROUTINGHEAD._serialized_end=1108
# @@protoc_insertion_point(module_scope)
diff --git a/cai/pb/im/msg/msg/msg_pb2.pyi b/cai/pb/im/msg/msg/msg_pb2.pyi
index 743b2b75..1b7557e9 100644
--- a/cai/pb/im/msg/msg/msg_pb2.pyi
+++ b/cai/pb/im/msg/msg/msg_pb2.pyi
@@ -36,56 +36,49 @@ from typing_extensions import (
)
-DESCRIPTOR: FileDescriptor = ...
+DESCRIPTOR: FileDescriptor
class C2C(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
SENDER_FIELD_NUMBER: int
RECEIVER_FIELD_NUMBER: int
C2C_RELATION_FIELD_NUMBER: int
-
@property
def sender(self) -> User: ...
-
@property
def receiver(self) -> User: ...
-
@property
def c2c_relation(self) -> C2CRelation: ...
-
def __init__(self,
*,
- sender : Optional[User] = ...,
- receiver : Optional[User] = ...,
- c2c_relation : Optional[C2CRelation] = ...,
+ sender: Optional[User] = ...,
+ receiver: Optional[User] = ...,
+ c2c_relation: Optional[C2CRelation] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"c2c_relation",b"c2c_relation",u"receiver",b"receiver",u"sender",b"sender"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"c2c_relation",b"c2c_relation",u"receiver",b"receiver",u"sender",b"sender"]) -> None: ...
+ def HasField(self, field_name: Literal["c2c_relation",b"c2c_relation","receiver",b"receiver","sender",b"sender"]) -> bool: ...
+ def ClearField(self, field_name: Literal["c2c_relation",b"c2c_relation","receiver",b"receiver","sender",b"sender"]) -> None: ...
class C2CRelation(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
C2C_TYPE_FIELD_NUMBER: int
GROUP_INFO_FIELD_NUMBER: int
TOKEN_FIELD_NUMBER: int
- c2c_type: int = ...
-
+ c2c_type: int
@property
def group_info(self) -> GroupInfo: ...
-
@property
def token(self) -> Token: ...
-
def __init__(self,
*,
- c2c_type : Optional[int] = ...,
- group_info : Optional[GroupInfo] = ...,
- token : Optional[Token] = ...,
+ c2c_type: Optional[int] = ...,
+ group_info: Optional[GroupInfo] = ...,
+ token: Optional[Token] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"c2c_type",b"c2c_type",u"group_info",b"group_info",u"token",b"token"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"c2c_type",b"c2c_type",u"group_info",b"group_info",u"token",b"token"]) -> None: ...
+ def HasField(self, field_name: Literal["c2c_type",b"c2c_type","group_info",b"group_info","token",b"token"]) -> bool: ...
+ def ClearField(self, field_name: Literal["c2c_type",b"c2c_type","group_info",b"group_info","token",b"token"]) -> None: ...
class ContentHead(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
PKG_NUM_FIELD_NUMBER: int
PKG_INDEX_FIELD_NUMBER: int
SEQ_FIELD_NUMBER: int
@@ -96,145 +89,128 @@ class ContentHead(Message):
MSGDB_SEQ_FIELD_NUMBER: int
WORD_MSG_SEQ_FIELD_NUMBER: int
RAND_FIELD_NUMBER: int
- pkg_num: int = ...
- pkg_index: int = ...
- seq: int = ...
- date_time: int = ...
- type: int = ...
- div_seq: int = ...
- msgdb_uin: int = ...
- msgdb_seq: int = ...
- word_msg_seq: int = ...
- rand: int = ...
-
+ pkg_num: int
+ pkg_index: int
+ seq: int
+ date_time: int
+ type: int
+ div_seq: int
+ msgdb_uin: int
+ msgdb_seq: int
+ word_msg_seq: int
+ rand: int
def __init__(self,
*,
- pkg_num : Optional[int] = ...,
- pkg_index : Optional[int] = ...,
- seq : Optional[int] = ...,
- date_time : Optional[int] = ...,
- type : Optional[int] = ...,
- div_seq : Optional[int] = ...,
- msgdb_uin : Optional[int] = ...,
- msgdb_seq : Optional[int] = ...,
- word_msg_seq : Optional[int] = ...,
- rand : Optional[int] = ...,
+ pkg_num: Optional[int] = ...,
+ pkg_index: Optional[int] = ...,
+ seq: Optional[int] = ...,
+ date_time: Optional[int] = ...,
+ type: Optional[int] = ...,
+ div_seq: Optional[int] = ...,
+ msgdb_uin: Optional[int] = ...,
+ msgdb_seq: Optional[int] = ...,
+ word_msg_seq: Optional[int] = ...,
+ rand: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"date_time",b"date_time",u"div_seq",b"div_seq",u"msgdb_seq",b"msgdb_seq",u"msgdb_uin",b"msgdb_uin",u"pkg_index",b"pkg_index",u"pkg_num",b"pkg_num",u"rand",b"rand",u"seq",b"seq",u"type",b"type",u"word_msg_seq",b"word_msg_seq"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"date_time",b"date_time",u"div_seq",b"div_seq",u"msgdb_seq",b"msgdb_seq",u"msgdb_uin",b"msgdb_uin",u"pkg_index",b"pkg_index",u"pkg_num",b"pkg_num",u"rand",b"rand",u"seq",b"seq",u"type",b"type",u"word_msg_seq",b"word_msg_seq"]) -> None: ...
+ def HasField(self, field_name: Literal["date_time",b"date_time","div_seq",b"div_seq","msgdb_seq",b"msgdb_seq","msgdb_uin",b"msgdb_uin","pkg_index",b"pkg_index","pkg_num",b"pkg_num","rand",b"rand","seq",b"seq","type",b"type","word_msg_seq",b"word_msg_seq"]) -> bool: ...
+ def ClearField(self, field_name: Literal["date_time",b"date_time","div_seq",b"div_seq","msgdb_seq",b"msgdb_seq","msgdb_uin",b"msgdb_uin","pkg_index",b"pkg_index","pkg_num",b"pkg_num","rand",b"rand","seq",b"seq","type",b"type","word_msg_seq",b"word_msg_seq"]) -> None: ...
class Group(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
SENDER_FIELD_NUMBER: int
RECEIVER_FIELD_NUMBER: int
GROUP_INFO_FIELD_NUMBER: int
-
@property
def sender(self) -> User: ...
-
@property
def receiver(self) -> User: ...
-
@property
def group_info(self) -> GroupInfo: ...
-
def __init__(self,
*,
- sender : Optional[User] = ...,
- receiver : Optional[User] = ...,
- group_info : Optional[GroupInfo] = ...,
+ sender: Optional[User] = ...,
+ receiver: Optional[User] = ...,
+ group_info: Optional[GroupInfo] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"group_info",b"group_info",u"receiver",b"receiver",u"sender",b"sender"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"group_info",b"group_info",u"receiver",b"receiver",u"sender",b"sender"]) -> None: ...
+ def HasField(self, field_name: Literal["group_info",b"group_info","receiver",b"receiver","sender",b"sender"]) -> bool: ...
+ def ClearField(self, field_name: Literal["group_info",b"group_info","receiver",b"receiver","sender",b"sender"]) -> None: ...
class Msg(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
HEAD_FIELD_NUMBER: int
BODY_FIELD_NUMBER: int
-
@property
def head(self) -> MsgHead: ...
-
@property
def body(self) -> MsgBody: ...
-
def __init__(self,
*,
- head : Optional[MsgHead] = ...,
- body : Optional[MsgBody] = ...,
+ head: Optional[MsgHead] = ...,
+ body: Optional[MsgBody] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"body",b"body",u"head",b"head"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"body",b"body",u"head",b"head"]) -> None: ...
+ def HasField(self, field_name: Literal["body",b"body","head",b"head"]) -> bool: ...
+ def ClearField(self, field_name: Literal["body",b"body","head",b"head"]) -> None: ...
class MsgHead(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
ROUTING_HEAD_FIELD_NUMBER: int
CONTENT_HEAD_FIELD_NUMBER: int
GBK_TMP_MSG_BODY_FIELD_NUMBER: int
- gbk_tmp_msg_body: bytes = ...
-
@property
def routing_head(self) -> RoutingHead: ...
-
@property
def content_head(self) -> ContentHead: ...
-
+ gbk_tmp_msg_body: bytes
def __init__(self,
*,
- routing_head : Optional[RoutingHead] = ...,
- content_head : Optional[ContentHead] = ...,
- gbk_tmp_msg_body : Optional[bytes] = ...,
+ routing_head: Optional[RoutingHead] = ...,
+ content_head: Optional[ContentHead] = ...,
+ gbk_tmp_msg_body: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"content_head",b"content_head",u"gbk_tmp_msg_body",b"gbk_tmp_msg_body",u"routing_head",b"routing_head"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"content_head",b"content_head",u"gbk_tmp_msg_body",b"gbk_tmp_msg_body",u"routing_head",b"routing_head"]) -> None: ...
+ def HasField(self, field_name: Literal["content_head",b"content_head","gbk_tmp_msg_body",b"gbk_tmp_msg_body","routing_head",b"routing_head"]) -> bool: ...
+ def ClearField(self, field_name: Literal["content_head",b"content_head","gbk_tmp_msg_body",b"gbk_tmp_msg_body","routing_head",b"routing_head"]) -> None: ...
class MsgSendReq(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
MSG_FIELD_NUMBER: int
BU_MSG_FIELD_NUMBER: int
TAIL_ID_FIELD_NUMBER: int
CONN_MSG_FLAG_FIELD_NUMBER: int
COOKIE_FIELD_NUMBER: int
- bu_msg: bytes = ...
- tail_id: int = ...
- conn_msg_flag: int = ...
- cookie: bytes = ...
-
@property
def msg(self) -> Msg: ...
-
+ bu_msg: bytes
+ tail_id: int
+ conn_msg_flag: int
+ cookie: bytes
def __init__(self,
*,
- msg : Optional[Msg] = ...,
- bu_msg : Optional[bytes] = ...,
- tail_id : Optional[int] = ...,
- conn_msg_flag : Optional[int] = ...,
- cookie : Optional[bytes] = ...,
+ msg: Optional[Msg] = ...,
+ bu_msg: Optional[bytes] = ...,
+ tail_id: Optional[int] = ...,
+ conn_msg_flag: Optional[int] = ...,
+ cookie: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"bu_msg",b"bu_msg",u"conn_msg_flag",b"conn_msg_flag",u"cookie",b"cookie",u"msg",b"msg",u"tail_id",b"tail_id"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"bu_msg",b"bu_msg",u"conn_msg_flag",b"conn_msg_flag",u"cookie",b"cookie",u"msg",b"msg",u"tail_id",b"tail_id"]) -> None: ...
+ def HasField(self, field_name: Literal["bu_msg",b"bu_msg","conn_msg_flag",b"conn_msg_flag","cookie",b"cookie","msg",b"msg","tail_id",b"tail_id"]) -> bool: ...
+ def ClearField(self, field_name: Literal["bu_msg",b"bu_msg","conn_msg_flag",b"conn_msg_flag","cookie",b"cookie","msg",b"msg","tail_id",b"tail_id"]) -> None: ...
class MsgSendResp(Message):
- DESCRIPTOR: Descriptor = ...
-
+ DESCRIPTOR: Descriptor
def __init__(self,
) -> None: ...
class RoutingHead(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
C2_C_FIELD_NUMBER: int
GROUP_FIELD_NUMBER: int
-
@property
def c2_c(self) -> C2C: ...
-
@property
def group(self) -> Group: ...
-
def __init__(self,
*,
- c2_c : Optional[C2C] = ...,
- group : Optional[Group] = ...,
+ c2_c: Optional[C2C] = ...,
+ group: Optional[Group] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"c2_c",b"c2_c",u"group",b"group"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"c2_c",b"c2_c",u"group",b"group"]) -> None: ...
+ def HasField(self, field_name: Literal["c2_c",b"c2_c","group",b"group"]) -> bool: ...
+ def ClearField(self, field_name: Literal["c2_c",b"c2_c","group",b"group"]) -> None: ...
diff --git a/cai/pb/im/msg/msg_body/msg_body_pb2.py b/cai/pb/im/msg/msg_body/msg_body_pb2.py
index f3b1d979..f3090910 100644
--- a/cai/pb/im/msg/msg_body/msg_body_pb2.py
+++ b/cai/pb/im/msg/msg_body/msg_body_pb2.py
@@ -3,6 +3,7 @@
# source: cai/pb/im/msg/msg_body/msg_body.proto
"""Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
@@ -13,5495 +14,76 @@
-DESCRIPTOR = _descriptor.FileDescriptor(
- name='cai/pb/im/msg/msg_body/msg_body.proto',
- package='im.msg.msg_body',
- syntax='proto2',
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- serialized_pb=b'\n%cai/pb/im/msg/msg_body/msg_body.proto\x12\x0fim.msg.msg_body\"\x99\x01\n\x11\x41nonymousGroupMsg\x12\r\n\x05\x66lags\x18\x01 \x01(\r\x12\x0f\n\x07\x61non_id\x18\x02 \x01(\x0c\x12\x11\n\tanon_nick\x18\x03 \x01(\x0c\x12\x15\n\rhead_portrait\x18\x04 \x01(\r\x12\x13\n\x0b\x65xpire_time\x18\x05 \x01(\r\x12\x11\n\tbubble_id\x18\x06 \x01(\r\x12\x12\n\nrank_color\x18\x07 \x01(\x0c\"\x90\x02\n\x0c\x41polloActMsg\x12\x11\n\taction_id\x18\x01 \x01(\r\x12\x13\n\x0b\x61\x63tion_name\x18\x02 \x01(\x0c\x12\x13\n\x0b\x61\x63tion_text\x18\x03 \x01(\x0c\x12\x0c\n\x04\x66lag\x18\x04 \x01(\r\x12\x10\n\x08peer_uin\x18\x05 \x01(\r\x12\x11\n\tsender_ts\x18\x06 \x01(\r\x12\x0f\n\x07peer_ts\x18\x07 \x01(\r\x12\x15\n\rsender_status\x18\x08 \x01(\x05\x12\x13\n\x0bpeer_status\x18\t \x01(\x05\x12\x12\n\ndiytext_id\x18\n \x01(\r\x12\x17\n\x0f\x64iytext_content\x18\x0b \x01(\x0c\x12\x12\n\ninput_text\x18\x0c \x01(\x0c\x12\x12\n\npb_reserve\x18\r \x01(\x0c\"W\n\nArkAppElem\x12\x10\n\x08\x61pp_name\x18\x01 \x01(\t\x12\x13\n\x0bmin_version\x18\x02 \x01(\t\x12\x14\n\x0cxml_template\x18\x03 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x04 \x01(\x0c\"\xb9\x01\n\x04\x41ttr\x12\x11\n\tcode_page\x18\x01 \x01(\x11\x12\x0c\n\x04time\x18\x02 \x01(\r\x12\x0e\n\x06random\x18\x03 \x01(\r\x12\r\n\x05\x63olor\x18\x04 \x01(\r\x12\x0c\n\x04size\x18\x05 \x01(\r\x12\x0e\n\x06\x65\x66\x66\x65\x63t\x18\x06 \x01(\r\x12\x10\n\x08\x63har_set\x18\x07 \x01(\r\x12\x18\n\x10pitch_and_family\x18\x08 \x01(\r\x12\x11\n\tfont_name\x18\t \x01(\t\x12\x14\n\x0creserve_data\x18\n \x01(\x0c\"\x18\n\tBitAppMsg\x12\x0b\n\x03\x62uf\x18\x01 \x01(\x0c\"4\n\x0f\x42lessingMessage\x12\x10\n\x08msg_type\x18\x01 \x01(\r\x12\x0f\n\x07\x65x_flag\x18\x02 \x01(\r\"J\n\nCommonElem\x12\x14\n\x0cservice_type\x18\x01 \x01(\r\x12\x0f\n\x07pb_elem\x18\x02 \x01(\x0c\x12\x15\n\rbusiness_type\x18\x03 \x01(\r\"M\n\x12\x43onferenceTipsInfo\x12\x14\n\x0csession_type\x18\x01 \x01(\r\x12\x13\n\x0bsession_uin\x18\x02 \x01(\x04\x12\x0c\n\x04text\x18\x03 \x01(\t\"i\n\x07\x43rmElem\x12\x0f\n\x07\x63rm_buf\x18\x01 \x01(\x0c\x12\x11\n\tmsg_resid\x18\x02 \x01(\x0c\x12\x13\n\x0bqidian_flag\x18\x03 \x01(\r\x12\x11\n\tpush_flag\x18\x04 \x01(\r\x12\x12\n\ncount_flag\x18\x05 \x01(\r\"W\n\nCustomElem\x12\x0c\n\x04\x64\x65sc\x18\x01 \x01(\x0c\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\x12\x11\n\tenum_type\x18\x03 \x01(\r\x12\x0b\n\x03\x65xt\x18\x04 \x01(\x0c\x12\r\n\x05sound\x18\x05 \x01(\x0c\"\xf1\x04\n\nCustomFace\x12\x0c\n\x04guid\x18\x01 \x01(\x0c\x12\x11\n\tfile_path\x18\x02 \x01(\t\x12\x10\n\x08shortcut\x18\x03 \x01(\t\x12\x0e\n\x06\x62uffer\x18\x04 \x01(\x0c\x12\x0c\n\x04\x66lag\x18\x05 \x01(\x0c\x12\x10\n\x08old_data\x18\x06 \x01(\x0c\x12\x0f\n\x07\x66ile_id\x18\x07 \x01(\r\x12\x11\n\tserver_ip\x18\x08 \x01(\r\x12\x13\n\x0bserver_port\x18\t \x01(\r\x12\x11\n\tfile_type\x18\n \x01(\r\x12\x11\n\tsignature\x18\x0b \x01(\x0c\x12\x0e\n\x06useful\x18\x0c \x01(\r\x12\x0b\n\x03md5\x18\r \x01(\x0c\x12\x11\n\tthumb_url\x18\x0e \x01(\t\x12\x0f\n\x07\x62ig_url\x18\x0f \x01(\t\x12\x10\n\x08orig_url\x18\x10 \x01(\t\x12\x10\n\x08\x62iz_type\x18\x11 \x01(\r\x12\x14\n\x0crepeat_index\x18\x12 \x01(\r\x12\x14\n\x0crepeat_image\x18\x13 \x01(\r\x12\x12\n\nimage_type\x18\x14 \x01(\r\x12\r\n\x05index\x18\x15 \x01(\r\x12\r\n\x05width\x18\x16 \x01(\r\x12\x0e\n\x06height\x18\x17 \x01(\r\x12\x0e\n\x06source\x18\x18 \x01(\r\x12\x0c\n\x04size\x18\x19 \x01(\r\x12\x0e\n\x06origin\x18\x1a \x01(\r\x12\x13\n\x0bthumb_width\x18\x1b \x01(\r\x12\x14\n\x0cthumb_height\x18\x1c \x01(\r\x12\x10\n\x08show_len\x18\x1d \x01(\r\x12\x14\n\x0c\x64ownload_len\x18\x1e \x01(\r\x12\x10\n\x08_400_url\x18\x1f \x01(\t\x12\x12\n\n_400_width\x18 \x01(\r\x12\x13\n\x0b_400_height\x18! \x01(\r\x12\x12\n\npb_reserve\x18\" \x01(\x0c\"\xb6\x04\n\x0e\x44\x65liverGiftMsg\x12\x18\n\x10gray_tip_content\x18\x01 \x01(\x0c\x12\x1c\n\x14\x61nimation_package_id\x18\x02 \x01(\r\x12\x1f\n\x17\x61nimation_package_url_a\x18\x03 \x01(\x0c\x12\x1f\n\x17\x61nimation_package_url_i\x18\x04 \x01(\x0c\x12\x14\n\x0cremind_brief\x18\x05 \x01(\x0c\x12\x0f\n\x07gift_id\x18\x06 \x01(\r\x12\x12\n\ngift_count\x18\x07 \x01(\r\x12\x17\n\x0f\x61nimation_brief\x18\x08 \x01(\x0c\x12\x12\n\nsender_uin\x18\t \x01(\x04\x12\x14\n\x0creceiver_uin\x18\n \x01(\x04\x12\x17\n\x0fstmessage_title\x18\x0b \x01(\x0c\x12\x1a\n\x12stmessage_subtitle\x18\x0c \x01(\x0c\x12\x19\n\x11stmessage_message\x18\r \x01(\x0c\x12\x1b\n\x13stmessage_giftpicid\x18\x0e \x01(\r\x12\x1a\n\x12stmessage_comefrom\x18\x0f \x01(\x0c\x12\x18\n\x10stmessage_exflag\x18\x10 \x01(\r\x12\x16\n\x0eto_all_gift_id\x18\x11 \x01(\x0c\x12\x15\n\rcomefrom_link\x18\x12 \x01(\x0c\x12\x12\n\npb_reserve\x18\x13 \x01(\x0c\x12\x15\n\rreceiver_name\x18\x14 \x01(\x0c\x12\x14\n\x0creceiver_pic\x18\x15 \x01(\x0c\x12\x19\n\x11stmessage_gifturl\x18\x16 \x01(\x0c\"(\n\x07\x45IMInfo\x12\x0f\n\x07root_id\x18\x01 \x01(\x04\x12\x0c\n\x04\x66lag\x18\x02 \x01(\r\"\x8b\x15\n\x04\x45lem\x12(\n\x04text\x18\x01 \x01(\x0b\x32\x1a.im.msg.msg_body.PlainText\x12#\n\x04\x66\x61\x63\x65\x18\x02 \x01(\x0b\x32\x15.im.msg.msg_body.Face\x12\x32\n\x0conline_image\x18\x03 \x01(\x0b\x32\x1c.im.msg.msg_body.OnlineImage\x12\x39\n\x10not_online_image\x18\x04 \x01(\x0b\x32\x1f.im.msg.msg_body.NotOnlineImage\x12\x33\n\x0ftrans_elem_info\x18\x05 \x01(\x0b\x32\x1a.im.msg.msg_body.TransElem\x12\x30\n\x0bmarket_face\x18\x06 \x01(\x0b\x32\x1b.im.msg.msg_body.MarketFace\x12.\n\nelem_flags\x18\x07 \x01(\x0b\x32\x1a.im.msg.msg_body.ElemFlags\x12\x30\n\x0b\x63ustom_face\x18\x08 \x01(\x0b\x32\x1b.im.msg.msg_body.CustomFace\x12\x30\n\x0b\x65lem_flags2\x18\t \x01(\x0b\x32\x1b.im.msg.msg_body.ElemFlags2\x12*\n\x08\x66un_face\x18\n \x01(\x0b\x32\x18.im.msg.msg_body.FunFace\x12\x33\n\x0bsecret_file\x18\x0b \x01(\x0b\x32\x1e.im.msg.msg_body.SecretFileMsg\x12*\n\x08rich_msg\x18\x0c \x01(\x0b\x32\x18.im.msg.msg_body.RichMsg\x12.\n\ngroup_file\x18\r \x01(\x0b\x32\x1a.im.msg.msg_body.GroupFile\x12,\n\tpub_group\x18\x0e \x01(\x0b\x32\x19.im.msg.msg_body.PubGroup\x12\x32\n\x0cmarket_trans\x18\x0f \x01(\x0b\x32\x1c.im.msg.msg_body.MarketTrans\x12.\n\nextra_info\x18\x10 \x01(\x0b\x32\x1a.im.msg.msg_body.ExtraInfo\x12\x32\n\x0cshake_window\x18\x11 \x01(\x0b\x32\x1c.im.msg.msg_body.ShakeWindow\x12\x30\n\x0bpub_account\x18\x12 \x01(\x0b\x32\x1b.im.msg.msg_body.PubAccount\x12.\n\nvideo_file\x18\x13 \x01(\x0b\x32\x1a.im.msg.msg_body.VideoFile\x12,\n\ttips_info\x18\x14 \x01(\x0b\x32\x19.im.msg.msg_body.TipsInfo\x12:\n\x0e\x61non_group_msg\x18\x15 \x01(\x0b\x32\".im.msg.msg_body.AnonymousGroupMsg\x12/\n\x0bqq_live_old\x18\x16 \x01(\x0b\x32\x1a.im.msg.msg_body.QQLiveOld\x12\x37\n\x0blife_online\x18\x17 \x01(\x0b\x32\".im.msg.msg_body.LifeOnlineAccount\x12\x32\n\x0cqqwallet_msg\x18\x18 \x01(\x0b\x32\x1c.im.msg.msg_body.QQWalletMsg\x12*\n\x08\x63rm_elem\x18\x19 \x01(\x0b\x32\x18.im.msg.msg_body.CrmElem\x12\x41\n\x14\x63onference_tips_info\x18\x1a \x01(\x0b\x32#.im.msg.msg_body.ConferenceTipsInfo\x12\x30\n\x0bredbag_info\x18\x1b \x01(\x0b\x32\x1b.im.msg.msg_body.RedBagInfo\x12\x39\n\x10low_version_tips\x18\x1c \x01(\x0b\x32\x1f.im.msg.msg_body.LowVersionTips\x12\x1a\n\x12\x62\x61nkcode_ctrl_info\x18\x1d \x01(\x0c\x12\x37\n\x0bnear_by_msg\x18\x1e \x01(\x0b\x32\".im.msg.msg_body.NearByMessageType\x12\x30\n\x0b\x63ustom_elem\x18\x1f \x01(\x0b\x32\x1b.im.msg.msg_body.CustomElem\x12\x34\n\rlocation_info\x18 \x01(\x0b\x32\x1d.im.msg.msg_body.LocationInfo\x12\x31\n\x0cpub_acc_info\x18! \x01(\x0b\x32\x1b.im.msg.msg_body.PubAccInfo\x12\x30\n\x0bsmall_emoji\x18\" \x01(\x0b\x32\x1b.im.msg.msg_body.SmallEmoji\x12\x35\n\x0c\x66sj_msg_elem\x18# \x01(\x0b\x32\x1f.im.msg.msg_body.FSJMessageElem\x12,\n\x07\x61rk_app\x18$ \x01(\x0b\x32\x1b.im.msg.msg_body.ArkAppElem\x12\x34\n\rgeneral_flags\x18% \x01(\x0b\x32\x1d.im.msg.msg_body.GeneralFlags\x12\x31\n\x0chc_flash_pic\x18& \x01(\x0b\x32\x1b.im.msg.msg_body.CustomFace\x12\x39\n\x10\x64\x65liver_gift_msg\x18\' \x01(\x0b\x32\x1f.im.msg.msg_body.DeliverGiftMsg\x12.\n\nbitapp_msg\x18( \x01(\x0b\x32\x1a.im.msg.msg_body.BitAppMsg\x12\x31\n\x0copen_qq_data\x18) \x01(\x0b\x32\x1b.im.msg.msg_body.OpenQQData\x12\x31\n\napollo_msg\x18* \x01(\x0b\x32\x1d.im.msg.msg_body.ApolloActMsg\x12@\n\x12group_pub_acc_info\x18+ \x01(\x0b\x32$.im.msg.msg_body.GroupPubAccountInfo\x12\x33\n\tbless_msg\x18, \x01(\x0b\x32 .im.msg.msg_body.BlessingMessage\x12+\n\x07src_msg\x18- \x01(\x0b\x32\x1a.im.msg.msg_body.SourceMsg\x12*\n\x08lola_msg\x18. \x01(\x0b\x32\x18.im.msg.msg_body.LolaMsg\x12=\n\x12group_business_msg\x18/ \x01(\x0b\x32!.im.msg.msg_body.GroupBusinessMsg\x12;\n\x0fworkflow_notify\x18\x30 \x01(\x0b\x32\".im.msg.msg_body.WorkflowNotifyMsg\x12+\n\x08pat_elem\x18\x31 \x01(\x0b\x32\x19.im.msg.msg_body.PatsElem\x12\x37\n\x0fgroup_post_elem\x18\x32 \x01(\x0b\x32\x1e.im.msg.msg_body.GroupPostElem\x12\x30\n\tlight_app\x18\x33 \x01(\x0b\x32\x1d.im.msg.msg_body.LightAppElem\x12*\n\x08\x65im_info\x18\x34 \x01(\x0b\x32\x18.im.msg.msg_body.EIMInfo\x12\x30\n\x0b\x63ommon_elem\x18\x35 \x01(\x0b\x32\x1b.im.msg.msg_body.CommonElem\"2\n\tElemFlags\x12\x0e\n\x06\x66lags1\x18\x01 \x01(\x0c\x12\x15\n\rbusiness_data\x18\x02 \x01(\x0c\"\xfb\x02\n\nElemFlags2\x12\x15\n\rcolor_text_id\x18\x01 \x01(\r\x12\x0e\n\x06msg_id\x18\x02 \x01(\x04\x12\x1a\n\x12whisper_session_id\x18\x03 \x01(\r\x12\x16\n\x0eptt_change_bit\x18\x04 \x01(\r\x12\x12\n\nvip_status\x18\x05 \x01(\r\x12\x15\n\rcompatible_id\x18\x06 \x01(\r\x12$\n\x05insts\x18\x07 \x03(\x0b\x32\x15.im.msg.msg_body.Inst\x12\x13\n\x0bmsg_rpt_cnt\x18\x08 \x01(\r\x12\'\n\x08src_inst\x18\t \x01(\x0b\x32\x15.im.msg.msg_body.Inst\x12\x12\n\nlongtitude\x18\n \x01(\r\x12\x10\n\x08latitude\x18\x0b \x01(\r\x12\x13\n\x0b\x63ustom_font\x18\x0c \x01(\r\x12\x35\n\x0epc_support_def\x18\r \x01(\x0b\x32\x1d.im.msg.msg_body.PcSupportDef\x12\x11\n\tcrm_flags\x18\x0e \x01(\r\"\'\n\x04Inst\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x0f\n\x07inst_id\x18\x02 \x01(\r\"\xf3\x01\n\tExtraInfo\x12\x0c\n\x04nick\x18\x01 \x01(\x0c\x12\x12\n\ngroup_card\x18\x02 \x01(\x0c\x12\r\n\x05level\x18\x03 \x01(\r\x12\r\n\x05\x66lags\x18\x04 \x01(\r\x12\x12\n\ngroup_mask\x18\x05 \x01(\r\x12\x13\n\x0bmsg_tail_id\x18\x06 \x01(\r\x12\x14\n\x0csender_title\x18\x07 \x01(\x0c\x12\x11\n\tapns_tips\x18\x08 \x01(\x0c\x12\x0b\n\x03uin\x18\t \x01(\x04\x12\x16\n\x0emsg_state_flag\x18\n \x01(\r\x12\x17\n\x0f\x61pns_sound_type\x18\x0b \x01(\r\x12\x16\n\x0enew_group_flag\x18\x0c \x01(\r\"\"\n\x0e\x46SJMessageElem\x12\x10\n\x08msg_type\x18\x01 \x01(\r\"/\n\x04\x46\x61\x63\x65\x12\r\n\x05index\x18\x01 \x01(\r\x12\x0b\n\x03old\x18\x02 \x01(\x0c\x12\x0b\n\x03\x62uf\x18\x0b \x01(\x0c\"]\n\x07\x46unFace\x12-\n\tturntable\x18\x01 \x01(\x0b\x32\x1a.im.msg.msg_body.Turntable\x12#\n\x04\x62omb\x18\x02 \x01(\x0b\x32\x15.im.msg.msg_body.Bomb\"\x15\n\x04\x42omb\x12\r\n\x05\x62urst\x18\x01 \x01(\x08\"D\n\tTurntable\x12\x10\n\x08uin_list\x18\x01 \x03(\x04\x12\x0f\n\x07hit_uin\x18\x02 \x01(\x04\x12\x14\n\x0chit_uin_nick\x18\x03 \x01(\t\"\xb2\x03\n\x0cGeneralFlags\x12\x1a\n\x12\x62ubble_diy_text_id\x18\x01 \x01(\r\x12\x16\n\x0egroup_flag_new\x18\x02 \x01(\r\x12\x0b\n\x03uin\x18\x03 \x01(\x04\x12\r\n\x05rp_id\x18\x04 \x01(\x0c\x12\x10\n\x08prp_fold\x18\x05 \x01(\r\x12\x16\n\x0elong_text_flag\x18\x06 \x01(\r\x12\x17\n\x0flong_text_resid\x18\x07 \x01(\x0c\x12\x12\n\ngroup_type\x18\x08 \x01(\r\x12\x13\n\x0bto_uin_flag\x18\t \x01(\r\x12\x15\n\rglamour_level\x18\n \x01(\r\x12\x14\n\x0cmember_level\x18\x0b \x01(\r\x12\x16\n\x0egroup_rank_seq\x18\x0c \x01(\x04\x12\x15\n\rolympic_torch\x18\r \x01(\r\x12\x1e\n\x16\x62\x61\x62yq_guide_msg_cookie\x18\x0e \x01(\x0c\x12\x19\n\x11uin32_expert_flag\x18\x0f \x01(\r\x12\x15\n\rbubble_sub_id\x18\x10 \x01(\r\x12\x12\n\npendant_id\x18\x11 \x01(\x04\x12\x10\n\x08rp_index\x18\x12 \x01(\x0c\x12\x12\n\npb_reserve\x18\x13 \x01(\x0c\"\xa3\x01\n\x10GroupBusinessMsg\x12\r\n\x05\x66lags\x18\x01 \x01(\r\x12\x10\n\x08head_url\x18\x02 \x01(\x0c\x12\x14\n\x0chead_clk_url\x18\x03 \x01(\x0c\x12\x0c\n\x04nick\x18\x04 \x01(\x0c\x12\x12\n\nnick_color\x18\x05 \x01(\x0c\x12\x0c\n\x04rank\x18\x06 \x01(\x0c\x12\x12\n\nrank_color\x18\x07 \x01(\x0c\x12\x14\n\x0crank_bgcolor\x18\x08 \x01(\x0c\"\xc7\x01\n\tGroupFile\x12\x10\n\x08\x66ilename\x18\x01 \x01(\x0c\x12\x11\n\tfile_size\x18\x02 \x01(\x04\x12\x0f\n\x07\x66ile_id\x18\x03 \x01(\x0c\x12\x10\n\x08\x62\x61tch_id\x18\x04 \x01(\x0c\x12\x10\n\x08\x66ile_key\x18\x05 \x01(\x0c\x12\x0c\n\x04mark\x18\x06 \x01(\x0c\x12\x10\n\x08sequence\x18\x07 \x01(\x04\x12\x15\n\rbatch_item_id\x18\x08 \x01(\x0c\x12\x15\n\rfeed_msg_time\x18\t \x01(\r\x12\x12\n\npb_reserve\x18\n \x01(\x0c\"6\n\rGroupPostElem\x12\x12\n\ntrans_type\x18\x01 \x01(\r\x12\x11\n\ttrans_msg\x18\x02 \x01(\x0c\"*\n\x13GroupPubAccountInfo\x12\x13\n\x0bpub_account\x18\x01 \x01(\x04\"\xaf\x01\n\x11LifeOnlineAccount\x12\x11\n\tunique_id\x18\x01 \x01(\x04\x12\n\n\x02op\x18\x02 \x01(\r\x12\x11\n\tshow_time\x18\x03 \x01(\r\x12\x0e\n\x06report\x18\x04 \x01(\r\x12\x0b\n\x03\x61\x63k\x18\x05 \x01(\r\x12\x0e\n\x06\x62itmap\x18\x06 \x01(\x04\x12\x14\n\x0cgdt_imp_data\x18\x07 \x01(\x0c\x12\x14\n\x0cgdt_cli_data\x18\x08 \x01(\x0c\x12\x0f\n\x07view_id\x18\t \x01(\x0c\"/\n\x0cLightAppElem\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\x12\x11\n\tmsg_resid\x18\x02 \x01(\x0c\"`\n\x07LolaMsg\x12\x11\n\tmsg_resid\x18\x01 \x01(\x0c\x12\x16\n\x0e\x65ncode_content\x18\x02 \x01(\x0c\x12\x14\n\x0clong_msg_url\x18\x03 \x01(\x0c\x12\x14\n\x0c\x64ownload_key\x18\x04 \x01(\x0c\"r\n\x0eLowVersionTips\x12\x13\n\x0b\x62usiness_id\x18\x01 \x01(\r\x12\x14\n\x0csession_type\x18\x02 \x01(\r\x12\x13\n\x0bsession_uin\x18\x03 \x01(\x04\x12\x12\n\nsender_uin\x18\x04 \x01(\x04\x12\x0c\n\x04text\x18\x05 \x01(\t\"\xfc\x01\n\nMarketFace\x12\x11\n\tface_name\x18\x01 \x01(\x0c\x12\x11\n\titem_type\x18\x02 \x01(\r\x12\x11\n\tface_info\x18\x03 \x01(\r\x12\x0f\n\x07\x66\x61\x63\x65_id\x18\x04 \x01(\x0c\x12\x0e\n\x06tab_id\x18\x05 \x01(\r\x12\x10\n\x08sub_type\x18\x06 \x01(\r\x12\x0b\n\x03key\x18\x07 \x01(\x0c\x12\r\n\x05param\x18\x08 \x01(\x0c\x12\x12\n\nmedia_type\x18\t \x01(\r\x12\x13\n\x0bimage_width\x18\n \x01(\r\x12\x14\n\x0cimage_height\x18\x0b \x01(\r\x12\x13\n\x0bmobileparam\x18\x0c \x01(\x0c\x12\x12\n\npb_reserve\x18\r \x01(\x0c\"a\n\x0bMarketTrans\x12\x0c\n\x04\x66lag\x18\x01 \x01(\x05\x12\x0b\n\x03xml\x18\x02 \x01(\x0c\x12\x11\n\tmsg_resid\x18\x03 \x01(\x0c\x12\x0f\n\x07\x61\x62ility\x18\x04 \x01(\r\x12\x13\n\x0bmin_ability\x18\x05 \x01(\r\"a\n\x07MsgBody\x12,\n\trich_text\x18\x01 \x01(\x0b\x32\x19.im.msg.msg_body.RichText\x12\x0f\n\x07\x63ontent\x18\x02 \x01(\x0c\x12\x17\n\x0f\x65ncrypt_content\x18\x03 \x01(\x0c\"]\n\x10MsgBody_subtype4\x12\x37\n\x0fnot_online_file\x18\x01 \x01(\x0b\x32\x1e.im.msg.msg_body.NotOnlineFile\x12\x10\n\x08msg_time\x18\x02 \x01(\r\"8\n\x11NearByMessageType\x12\x0c\n\x04type\x18\x01 \x01(\r\x12\x15\n\ridentify_type\x18\x02 \x01(\r\"\x94\x03\n\rNotOnlineFile\x12\x11\n\tfile_type\x18\x01 \x01(\r\x12\x0b\n\x03sig\x18\x02 \x01(\x0c\x12\x11\n\tfile_uuid\x18\x03 \x01(\x0c\x12\x10\n\x08\x66ile_md5\x18\x04 \x01(\x0c\x12\x11\n\tfile_name\x18\x05 \x01(\x0c\x12\x11\n\tfile_size\x18\x06 \x01(\x04\x12\x0c\n\x04note\x18\x07 \x01(\x0c\x12\x10\n\x08reserved\x18\x08 \x01(\r\x12\x0e\n\x06subcmd\x18\t \x01(\r\x12\x13\n\x0bmicro_cloud\x18\n \x01(\r\x12\x11\n\tfile_urls\x18\x0b \x03(\x0c\x12\x15\n\rdownload_flag\x18\x0c \x01(\r\x12\x13\n\x0b\x64\x61nger_evel\x18\x32 \x01(\r\x12\x11\n\tlife_time\x18\x33 \x01(\r\x12\x13\n\x0bupload_time\x18\x34 \x01(\r\x12\x15\n\rabs_file_type\x18\x35 \x01(\r\x12\x13\n\x0b\x63lient_type\x18\x36 \x01(\r\x12\x13\n\x0b\x65xpire_time\x18\x37 \x01(\r\x12\x12\n\npb_reserve\x18\x38 \x01(\x0c\x12\x17\n\x0f\x66ileidcrc_media\x18\x39 \x01(\t\"\xbd\x04\n\x0eNotOnlineImage\x12\x11\n\tfile_path\x18\x01 \x01(\x0c\x12\x10\n\x08\x66ile_len\x18\x02 \x01(\r\x12\x15\n\rdownload_path\x18\x03 \x01(\x0c\x12\x19\n\x11old_ver_send_file\x18\x04 \x01(\x0c\x12\x10\n\x08img_type\x18\x05 \x01(\r\x12\x16\n\x0epreviews_image\x18\x06 \x01(\x0c\x12\x0f\n\x07pic_md5\x18\x07 \x01(\x0c\x12\x12\n\npic_height\x18\x08 \x01(\r\x12\x11\n\tpic_width\x18\t \x01(\r\x12\x0e\n\x06res_id\x18\n \x01(\x0c\x12\x0c\n\x04\x66lag\x18\x0b \x01(\x0c\x12\x11\n\tthumb_url\x18\x0c \x01(\t\x12\x10\n\x08original\x18\r \x01(\r\x12\x0f\n\x07\x62ig_url\x18\x0e \x01(\t\x12\x10\n\x08orig_url\x18\x0f \x01(\t\x12\x10\n\x08\x62iz_type\x18\x10 \x01(\r\x12\x0e\n\x06result\x18\x11 \x01(\r\x12\r\n\x05index\x18\x12 \x01(\r\x12\x13\n\x0bop_face_buf\x18\x13 \x01(\x0c\x12\x13\n\x0bold_pic_md5\x18\x14 \x01(\x08\x12\x13\n\x0bthumb_width\x18\x15 \x01(\r\x12\x14\n\x0cthumb_height\x18\x16 \x01(\r\x12\x0f\n\x07\x66ile_id\x18\x17 \x01(\r\x12\x10\n\x08show_len\x18\x18 \x01(\r\x12\x14\n\x0c\x64ownload_len\x18\x19 \x01(\r\x12\x10\n\x08_400_url\x18\x1a \x01(\t\x12\x12\n\n_400_width\x18\x1b \x01(\r\x12\x13\n\x0b_400_height\x18\x1c \x01(\r\x12\x12\n\npb_reserve\x18\x1d \x01(\x0c\"I\n\x0bOnlineImage\x12\x0c\n\x04guid\x18\x01 \x01(\x0c\x12\x11\n\tfile_path\x18\x02 \x01(\x0c\x12\x19\n\x11old_ver_send_file\x18\x03 \x01(\x0c\"!\n\nOpenQQData\x12\x13\n\x0b\x63\x61r_qq_data\x18\x01 \x01(\x0c\"/\n\x08PatsElem\x12\x10\n\x08pat_type\x18\x01 \x01(\r\x12\x11\n\tpat_count\x18\x02 \x01(\r\"\x94\x01\n\x0cPcSupportDef\x12\x14\n\x0cpc_ptl_begin\x18\x01 \x01(\r\x12\x12\n\npc_ptl_end\x18\x02 \x01(\r\x12\x15\n\rmac_ptl_begin\x18\x03 \x01(\r\x12\x13\n\x0bmac_ptl_end\x18\x04 \x01(\r\x12\x14\n\x0cptls_support\x18\x05 \x03(\r\x12\x18\n\x10ptls_not_support\x18\x06 \x03(\r\"\xca\x03\n\x03Ptt\x12\x11\n\tfile_type\x18\x01 \x01(\r\x12\x0f\n\x07src_uin\x18\x02 \x01(\x04\x12\x11\n\tfile_uuid\x18\x03 \x01(\x0c\x12\x10\n\x08\x66ile_md5\x18\x04 \x01(\x0c\x12\x11\n\tfile_name\x18\x05 \x01(\x0c\x12\x11\n\tfile_size\x18\x06 \x01(\r\x12\x0f\n\x07reserve\x18\x07 \x01(\x0c\x12\x0f\n\x07\x66ile_id\x18\x08 \x01(\r\x12\x11\n\tserver_ip\x18\t \x01(\r\x12\x13\n\x0bserver_port\x18\n \x01(\r\x12\r\n\x05valid\x18\x0b \x01(\x08\x12\x11\n\tsignature\x18\x0c \x01(\x0c\x12\x10\n\x08shortcut\x18\r \x01(\x0c\x12\x10\n\x08\x66ile_key\x18\x0e \x01(\x0c\x12\x17\n\x0fmagic_ptt_index\x18\x0f \x01(\r\x12\x14\n\x0cvoice_switch\x18\x10 \x01(\r\x12\x0f\n\x07ptt_url\x18\x11 \x01(\x0c\x12\x16\n\x0egroup_file_key\x18\x12 \x01(\x0c\x12\x0c\n\x04time\x18\x13 \x01(\r\x12\x11\n\tdown_para\x18\x14 \x01(\x0c\x12\x0e\n\x06\x66ormat\x18\x1d \x01(\r\x12\x12\n\npb_reserve\x18\x1e \x01(\x0c\x12\x10\n\x08ptt_urls\x18\x1f \x03(\x0c\x12\x15\n\rdownload_flag\x18 \x01(\r\"g\n\nPubAccInfo\x12\x14\n\x0cis_inter_num\x18\x01 \x01(\r\x12\x17\n\x0fmsg_template_id\x18\x02 \x01(\t\x12\x14\n\x0clong_msg_url\x18\x03 \x01(\t\x12\x14\n\x0c\x64ownload_key\x18\x04 \x01(\x0c\"2\n\nPubAccount\x12\x0b\n\x03\x62uf\x18\x01 \x01(\x0c\x12\x17\n\x0fpub_account_uin\x18\x02 \x01(\x04\"K\n\x08PubGroup\x12\x10\n\x08nickname\x18\x01 \x01(\x0c\x12\x0e\n\x06gender\x18\x02 \x01(\r\x12\x0b\n\x03\x61ge\x18\x03 \x01(\r\x12\x10\n\x08\x64istance\x18\x04 \x01(\r\"Q\n\tQQLiveOld\x12\x0f\n\x07sub_cmd\x18\x01 \x01(\r\x12\x11\n\tshow_text\x18\x02 \x01(\x0c\x12\r\n\x05param\x18\x03 \x01(\x0c\x12\x11\n\tintroduce\x18\x04 \x01(\x0c\"\xcd\x03\n\x0fQQWalletAioBody\x12\x0f\n\x07senduin\x18\x01 \x01(\x04\x12\x30\n\x06sender\x18\x02 \x01(\x0b\x32 .im.msg.msg_body.QQWalletAioElem\x12\x32\n\x08receiver\x18\x03 \x01(\x0b\x32 .im.msg.msg_body.QQWalletAioElem\x12\x11\n\tchannelid\x18\x04 \x01(\x11\x12\x12\n\ntemplateid\x18\x05 \x01(\x11\x12\x0e\n\x06resend\x18\x06 \x01(\r\x12\x14\n\x0cmsg_priority\x18\x07 \x01(\r\x12\x0f\n\x07redtype\x18\x08 \x01(\x11\x12\x0e\n\x06\x62illno\x18\t \x01(\x0c\x12\x0f\n\x07\x61uthkey\x18\n \x01(\x0c\x12\x13\n\x0bsessiontype\x18\x0b \x01(\x11\x12\x0f\n\x07msgtype\x18\x0c \x01(\x11\x12\x12\n\nenvelopeid\x18\r \x01(\x11\x12\x0c\n\x04name\x18\x0e \x01(\x0c\x12\x10\n\x08\x63onftype\x18\x0f \x01(\x11\x12\x10\n\x08msg_from\x18\x10 \x01(\x11\x12\x0f\n\x07pc_body\x18\x11 \x01(\x0c\x12\r\n\x05index\x18\x12 \x01(\x0c\x12\x12\n\nredchannel\x18\x13 \x01(\r\x12\x10\n\x08grap_uin\x18\x14 \x03(\x04\x12\x12\n\npb_reserve\x18\x15 \x01(\x0c\"\xb9\x03\n\x0fQQWalletAioElem\x12\x12\n\nbackground\x18\x01 \x01(\r\x12\x0c\n\x04icon\x18\x02 \x01(\r\x12\r\n\x05title\x18\x03 \x01(\x0c\x12\x10\n\x08subtitle\x18\x04 \x01(\x0c\x12\x0f\n\x07\x63ontent\x18\x05 \x01(\x0c\x12\x0f\n\x07linkurl\x18\x06 \x01(\x0c\x12\x13\n\x0b\x62lackstripe\x18\x07 \x01(\x0c\x12\x0e\n\x06notice\x18\x08 \x01(\x0c\x12\x13\n\x0btitle_color\x18\t \x01(\r\x12\x16\n\x0esubtitle_color\x18\n \x01(\r\x12\x18\n\x10\x61\x63tions_priority\x18\x0b \x01(\x0c\x12\x10\n\x08jump_url\x18\x0c \x01(\x0c\x12\x12\n\nnative_ios\x18\r \x01(\x0c\x12\x16\n\x0enative_android\x18\x0e \x01(\x0c\x12\x0f\n\x07iconurl\x18\x0f \x01(\x0c\x12\x15\n\rcontent_color\x18\x10 \x01(\r\x12\x17\n\x0f\x63ontent_bgcolor\x18\x11 \x01(\r\x12\x16\n\x0e\x61io_image_left\x18\x12 \x01(\x0c\x12\x17\n\x0f\x61io_image_right\x18\x13 \x01(\x0c\x12\x11\n\tcft_image\x18\x14 \x01(\x0c\x12\x12\n\npb_reserve\x18\x15 \x01(\x0c\"A\n\x0bQQWalletMsg\x12\x32\n\x08\x61io_body\x18\x01 \x01(\x0b\x32 .im.msg.msg_body.QQWalletAioBody\"!\n\nRedBagInfo\x12\x13\n\x0bredbag_type\x18\x01 \x01(\r\"n\n\x07RichMsg\x12\x12\n\ntemplate_1\x18\x01 \x01(\x0c\x12\x12\n\nservice_id\x18\x02 \x01(\r\x12\x11\n\tmsg_resid\x18\x03 \x01(\x0c\x12\x0c\n\x04rand\x18\x04 \x01(\r\x12\x0b\n\x03seq\x18\x05 \x01(\r\x12\r\n\x05\x66lags\x18\x06 \x01(\r\"\x97\x02\n\x08RichText\x12#\n\x04\x61ttr\x18\x01 \x01(\x0b\x32\x15.im.msg.msg_body.Attr\x12$\n\x05\x65lems\x18\x02 \x03(\x0b\x32\x15.im.msg.msg_body.Elem\x12\x37\n\x0fnot_online_file\x18\x03 \x01(\x0b\x32\x1e.im.msg.msg_body.NotOnlineFile\x12!\n\x03ptt\x18\x04 \x01(\x0b\x32\x14.im.msg.msg_body.Ptt\x12(\n\x07tmp_ptt\x18\x05 \x01(\x0b\x32\x17.im.msg.msg_body.TmpPtt\x12:\n\x11trans_211_tmp_msg\x18\x06 \x01(\x0b\x32\x1f.im.msg.msg_body.Trans211TmpMsg\"\xf5\x02\n\rSecretFileMsg\x12\x10\n\x08\x66ile_key\x18\x01 \x01(\x0c\x12\x10\n\x08\x66rom_uin\x18\x02 \x01(\x04\x12\x0e\n\x06to_uin\x18\x03 \x01(\x04\x12\x0e\n\x06status\x18\x04 \x01(\r\x12\x0b\n\x03ttl\x18\x05 \x01(\r\x12\x0c\n\x04type\x18\x06 \x01(\r\x12\x1e\n\x16\x65ncrypt_prehead_length\x18\x07 \x01(\r\x12\x14\n\x0c\x65ncrypt_type\x18\x08 \x01(\r\x12\x13\n\x0b\x65ncrypt_key\x18\t \x01(\x0c\x12\x12\n\nread_times\x18\n \x01(\r\x12\x11\n\tleft_time\x18\x0b \x01(\r\x12\x39\n\x10not_online_image\x18\x0c \x01(\x0b\x32\x1f.im.msg.msg_body.NotOnlineImage\x12\x30\n\x0b\x65lem_flags2\x18\r \x01(\x0b\x32\x1b.im.msg.msg_body.ElemFlags2\x12\x10\n\x08opertype\x18\x0e \x01(\r\x12\x14\n\x0c\x66romphonenum\x18\x0f \x01(\t\"9\n\x0bShakeWindow\x12\x0c\n\x04type\x18\x01 \x01(\r\x12\x0f\n\x07reserve\x18\x02 \x01(\r\x12\x0b\n\x03uin\x18\x03 \x01(\x04\"5\n\nSmallEmoji\x12\x13\n\x0bpack_id_sum\x18\x01 \x01(\r\x12\x12\n\nimage_type\x18\x02 \x01(\r\"\xdd\x01\n\tSourceMsg\x12\x11\n\torig_seqs\x18\x01 \x03(\r\x12\x12\n\nsender_uin\x18\x02 \x01(\x04\x12\x0c\n\x04time\x18\x03 \x01(\r\x12\x0c\n\x04\x66lag\x18\x04 \x01(\r\x12$\n\x05\x65lems\x18\x05 \x03(\x0b\x32\x15.im.msg.msg_body.Elem\x12\x0c\n\x04type\x18\x06 \x01(\r\x12\x10\n\x08rich_msg\x18\x07 \x01(\x0c\x12\x12\n\npb_reserve\x18\x08 \x01(\x0c\x12\x0f\n\x07src_msg\x18\t \x01(\x0c\x12\x0e\n\x06to_uin\x18\n \x01(\x04\x12\x12\n\ntroop_name\x18\x0b \x01(\x0c\"o\n\tPlainText\x12\x0b\n\x03str\x18\x01 \x01(\x0c\x12\x0c\n\x04link\x18\x02 \x01(\t\x12\x12\n\nattr_6_buf\x18\x03 \x01(\x0c\x12\x12\n\nattr_7_buf\x18\x04 \x01(\x0c\x12\x0b\n\x03\x62uf\x18\x0b \x01(\x0c\x12\x12\n\npb_reserve\x18\x0c \x01(\x0c\"\x18\n\x08TipsInfo\x12\x0c\n\x04text\x18\x01 \x01(\t\"\xf3\x01\n\x06TmpPtt\x12\x11\n\tfile_type\x18\x01 \x01(\r\x12\x11\n\tfile_uuid\x18\x02 \x01(\x0c\x12\x10\n\x08\x66ile_md5\x18\x03 \x01(\x0c\x12\x11\n\tfile_name\x18\x04 \x01(\x0c\x12\x11\n\tfile_size\x18\x05 \x01(\r\x12\x11\n\tptt_times\x18\x06 \x01(\r\x12\x11\n\tuser_type\x18\x07 \x01(\r\x12\x15\n\rptttrans_flag\x18\x08 \x01(\r\x12\x11\n\tbusi_type\x18\t \x01(\r\x12\x0e\n\x06msg_id\x18\n \x01(\x04\x12\x12\n\npb_reserve\x18\x1e \x01(\x0c\x12\x17\n\x0fptt_encode_data\x18\x1f \x01(\x0c\"3\n\x0eTrans211TmpMsg\x12\x10\n\x08msg_body\x18\x01 \x01(\x0c\x12\x0f\n\x07\x63\x32\x63_cmd\x18\x02 \x01(\r\"2\n\tTransElem\x12\x11\n\telem_type\x18\x01 \x01(\r\x12\x12\n\nelem_value\x18\x02 \x01(\x0c\"\x9c\x04\n\tVideoFile\x12\x11\n\tfile_uuid\x18\x01 \x01(\x0c\x12\x10\n\x08\x66ile_md5\x18\x02 \x01(\x0c\x12\x11\n\tfile_name\x18\x03 \x01(\x0c\x12\x13\n\x0b\x66ile_format\x18\x04 \x01(\r\x12\x11\n\tfile_time\x18\x05 \x01(\r\x12\x11\n\tfile_size\x18\x06 \x01(\r\x12\x13\n\x0bthumb_width\x18\x07 \x01(\r\x12\x14\n\x0cthumb_height\x18\x08 \x01(\r\x12\x16\n\x0ethumb_file_md5\x18\t \x01(\x0c\x12\x0e\n\x06source\x18\n \x01(\x0c\x12\x17\n\x0fthumb_file_size\x18\x0b \x01(\r\x12\x11\n\tbusi_type\x18\x0c \x01(\r\x12\x16\n\x0e\x66rom_chat_type\x18\r \x01(\r\x12\x14\n\x0cto_chat_type\x18\x0e \x01(\r\x12\x1b\n\x13support_progressive\x18\x0f \x01(\x08\x12\x12\n\nfile_width\x18\x10 \x01(\r\x12\x13\n\x0b\x66ile_height\x18\x11 \x01(\r\x12\x15\n\rsub_busi_type\x18\x12 \x01(\r\x12\x12\n\nvideo_attr\x18\x13 \x01(\r\x12\x17\n\x0fthumb_file_urls\x18\x14 \x03(\x0c\x12\x17\n\x0fvideo_file_urls\x18\x15 \x03(\x0c\x12\x1b\n\x13thumb_download_flag\x18\x16 \x01(\r\x12\x1b\n\x13video_download_flag\x18\x17 \x01(\r\x12\x12\n\npb_reserve\x18\x18 \x01(\x0c\"8\n\x11WorkflowNotifyMsg\x12\x0f\n\x07\x65xt_msg\x18\x01 \x01(\x0c\x12\x12\n\ncreate_uin\x18\x02 \x01(\x04\"A\n\x0cLocationInfo\x12\x11\n\tlongitude\x18\x01 \x01(\x01\x12\x10\n\x08latitude\x18\x02 \x01(\x01\x12\x0c\n\x04\x64\x65sc\x18\x03 \x01(\x0c'
-)
-
-
-
-
-_ANONYMOUSGROUPMSG = _descriptor.Descriptor(
- name='AnonymousGroupMsg',
- full_name='im.msg.msg_body.AnonymousGroupMsg',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='flags', full_name='im.msg.msg_body.AnonymousGroupMsg.flags', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='anon_id', full_name='im.msg.msg_body.AnonymousGroupMsg.anon_id', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='anon_nick', full_name='im.msg.msg_body.AnonymousGroupMsg.anon_nick', index=2,
- number=3, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='head_portrait', full_name='im.msg.msg_body.AnonymousGroupMsg.head_portrait', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='expire_time', full_name='im.msg.msg_body.AnonymousGroupMsg.expire_time', index=4,
- number=5, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='bubble_id', full_name='im.msg.msg_body.AnonymousGroupMsg.bubble_id', index=5,
- number=6, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='rank_color', full_name='im.msg.msg_body.AnonymousGroupMsg.rank_color', index=6,
- number=7, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=59,
- serialized_end=212,
-)
-
-
-_APOLLOACTMSG = _descriptor.Descriptor(
- name='ApolloActMsg',
- full_name='im.msg.msg_body.ApolloActMsg',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='action_id', full_name='im.msg.msg_body.ApolloActMsg.action_id', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='action_name', full_name='im.msg.msg_body.ApolloActMsg.action_name', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='action_text', full_name='im.msg.msg_body.ApolloActMsg.action_text', index=2,
- number=3, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='flag', full_name='im.msg.msg_body.ApolloActMsg.flag', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='peer_uin', full_name='im.msg.msg_body.ApolloActMsg.peer_uin', index=4,
- number=5, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='sender_ts', full_name='im.msg.msg_body.ApolloActMsg.sender_ts', index=5,
- number=6, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='peer_ts', full_name='im.msg.msg_body.ApolloActMsg.peer_ts', index=6,
- number=7, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='sender_status', full_name='im.msg.msg_body.ApolloActMsg.sender_status', index=7,
- number=8, type=5, cpp_type=1, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='peer_status', full_name='im.msg.msg_body.ApolloActMsg.peer_status', index=8,
- number=9, type=5, cpp_type=1, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='diytext_id', full_name='im.msg.msg_body.ApolloActMsg.diytext_id', index=9,
- number=10, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='diytext_content', full_name='im.msg.msg_body.ApolloActMsg.diytext_content', index=10,
- number=11, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='input_text', full_name='im.msg.msg_body.ApolloActMsg.input_text', index=11,
- number=12, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='pb_reserve', full_name='im.msg.msg_body.ApolloActMsg.pb_reserve', index=12,
- number=13, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=215,
- serialized_end=487,
-)
-
-
-_ARKAPPELEM = _descriptor.Descriptor(
- name='ArkAppElem',
- full_name='im.msg.msg_body.ArkAppElem',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='app_name', full_name='im.msg.msg_body.ArkAppElem.app_name', index=0,
- number=1, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='min_version', full_name='im.msg.msg_body.ArkAppElem.min_version', index=1,
- number=2, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='xml_template', full_name='im.msg.msg_body.ArkAppElem.xml_template', index=2,
- number=3, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='data', full_name='im.msg.msg_body.ArkAppElem.data', index=3,
- number=4, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=489,
- serialized_end=576,
-)
-
-
-_ATTR = _descriptor.Descriptor(
- name='Attr',
- full_name='im.msg.msg_body.Attr',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='code_page', full_name='im.msg.msg_body.Attr.code_page', index=0,
- number=1, type=17, cpp_type=1, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='time', full_name='im.msg.msg_body.Attr.time', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='random', full_name='im.msg.msg_body.Attr.random', index=2,
- number=3, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='color', full_name='im.msg.msg_body.Attr.color', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='size', full_name='im.msg.msg_body.Attr.size', index=4,
- number=5, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='effect', full_name='im.msg.msg_body.Attr.effect', index=5,
- number=6, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='char_set', full_name='im.msg.msg_body.Attr.char_set', index=6,
- number=7, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='pitch_and_family', full_name='im.msg.msg_body.Attr.pitch_and_family', index=7,
- number=8, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='font_name', full_name='im.msg.msg_body.Attr.font_name', index=8,
- number=9, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='reserve_data', full_name='im.msg.msg_body.Attr.reserve_data', index=9,
- number=10, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=579,
- serialized_end=764,
-)
-
-
-_BITAPPMSG = _descriptor.Descriptor(
- name='BitAppMsg',
- full_name='im.msg.msg_body.BitAppMsg',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='buf', full_name='im.msg.msg_body.BitAppMsg.buf', index=0,
- number=1, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=766,
- serialized_end=790,
-)
-
-
-_BLESSINGMESSAGE = _descriptor.Descriptor(
- name='BlessingMessage',
- full_name='im.msg.msg_body.BlessingMessage',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='msg_type', full_name='im.msg.msg_body.BlessingMessage.msg_type', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='ex_flag', full_name='im.msg.msg_body.BlessingMessage.ex_flag', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=792,
- serialized_end=844,
-)
-
-
-_COMMONELEM = _descriptor.Descriptor(
- name='CommonElem',
- full_name='im.msg.msg_body.CommonElem',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='service_type', full_name='im.msg.msg_body.CommonElem.service_type', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='pb_elem', full_name='im.msg.msg_body.CommonElem.pb_elem', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='business_type', full_name='im.msg.msg_body.CommonElem.business_type', index=2,
- number=3, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=846,
- serialized_end=920,
-)
-
-
-_CONFERENCETIPSINFO = _descriptor.Descriptor(
- name='ConferenceTipsInfo',
- full_name='im.msg.msg_body.ConferenceTipsInfo',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='session_type', full_name='im.msg.msg_body.ConferenceTipsInfo.session_type', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='session_uin', full_name='im.msg.msg_body.ConferenceTipsInfo.session_uin', index=1,
- number=2, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='text', full_name='im.msg.msg_body.ConferenceTipsInfo.text', index=2,
- number=3, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=922,
- serialized_end=999,
-)
-
-
-_CRMELEM = _descriptor.Descriptor(
- name='CrmElem',
- full_name='im.msg.msg_body.CrmElem',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='crm_buf', full_name='im.msg.msg_body.CrmElem.crm_buf', index=0,
- number=1, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='msg_resid', full_name='im.msg.msg_body.CrmElem.msg_resid', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='qidian_flag', full_name='im.msg.msg_body.CrmElem.qidian_flag', index=2,
- number=3, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='push_flag', full_name='im.msg.msg_body.CrmElem.push_flag', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='count_flag', full_name='im.msg.msg_body.CrmElem.count_flag', index=4,
- number=5, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=1001,
- serialized_end=1106,
-)
-
-
-_CUSTOMELEM = _descriptor.Descriptor(
- name='CustomElem',
- full_name='im.msg.msg_body.CustomElem',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='desc', full_name='im.msg.msg_body.CustomElem.desc', index=0,
- number=1, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='data', full_name='im.msg.msg_body.CustomElem.data', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='enum_type', full_name='im.msg.msg_body.CustomElem.enum_type', index=2,
- number=3, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='ext', full_name='im.msg.msg_body.CustomElem.ext', index=3,
- number=4, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='sound', full_name='im.msg.msg_body.CustomElem.sound', index=4,
- number=5, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=1108,
- serialized_end=1195,
-)
-
-
-_CUSTOMFACE = _descriptor.Descriptor(
- name='CustomFace',
- full_name='im.msg.msg_body.CustomFace',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='guid', full_name='im.msg.msg_body.CustomFace.guid', index=0,
- number=1, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='file_path', full_name='im.msg.msg_body.CustomFace.file_path', index=1,
- number=2, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='shortcut', full_name='im.msg.msg_body.CustomFace.shortcut', index=2,
- number=3, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='buffer', full_name='im.msg.msg_body.CustomFace.buffer', index=3,
- number=4, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='flag', full_name='im.msg.msg_body.CustomFace.flag', index=4,
- number=5, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='old_data', full_name='im.msg.msg_body.CustomFace.old_data', index=5,
- number=6, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='file_id', full_name='im.msg.msg_body.CustomFace.file_id', index=6,
- number=7, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='server_ip', full_name='im.msg.msg_body.CustomFace.server_ip', index=7,
- number=8, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='server_port', full_name='im.msg.msg_body.CustomFace.server_port', index=8,
- number=9, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='file_type', full_name='im.msg.msg_body.CustomFace.file_type', index=9,
- number=10, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='signature', full_name='im.msg.msg_body.CustomFace.signature', index=10,
- number=11, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='useful', full_name='im.msg.msg_body.CustomFace.useful', index=11,
- number=12, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='md5', full_name='im.msg.msg_body.CustomFace.md5', index=12,
- number=13, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='thumb_url', full_name='im.msg.msg_body.CustomFace.thumb_url', index=13,
- number=14, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='big_url', full_name='im.msg.msg_body.CustomFace.big_url', index=14,
- number=15, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='orig_url', full_name='im.msg.msg_body.CustomFace.orig_url', index=15,
- number=16, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='biz_type', full_name='im.msg.msg_body.CustomFace.biz_type', index=16,
- number=17, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='repeat_index', full_name='im.msg.msg_body.CustomFace.repeat_index', index=17,
- number=18, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='repeat_image', full_name='im.msg.msg_body.CustomFace.repeat_image', index=18,
- number=19, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='image_type', full_name='im.msg.msg_body.CustomFace.image_type', index=19,
- number=20, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='index', full_name='im.msg.msg_body.CustomFace.index', index=20,
- number=21, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='width', full_name='im.msg.msg_body.CustomFace.width', index=21,
- number=22, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='height', full_name='im.msg.msg_body.CustomFace.height', index=22,
- number=23, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='source', full_name='im.msg.msg_body.CustomFace.source', index=23,
- number=24, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='size', full_name='im.msg.msg_body.CustomFace.size', index=24,
- number=25, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='origin', full_name='im.msg.msg_body.CustomFace.origin', index=25,
- number=26, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='thumb_width', full_name='im.msg.msg_body.CustomFace.thumb_width', index=26,
- number=27, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='thumb_height', full_name='im.msg.msg_body.CustomFace.thumb_height', index=27,
- number=28, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='show_len', full_name='im.msg.msg_body.CustomFace.show_len', index=28,
- number=29, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='download_len', full_name='im.msg.msg_body.CustomFace.download_len', index=29,
- number=30, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='_400_url', full_name='im.msg.msg_body.CustomFace._400_url', index=30,
- number=31, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='_400_width', full_name='im.msg.msg_body.CustomFace._400_width', index=31,
- number=32, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='_400_height', full_name='im.msg.msg_body.CustomFace._400_height', index=32,
- number=33, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='pb_reserve', full_name='im.msg.msg_body.CustomFace.pb_reserve', index=33,
- number=34, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=1198,
- serialized_end=1823,
-)
-
-
-_DELIVERGIFTMSG = _descriptor.Descriptor(
- name='DeliverGiftMsg',
- full_name='im.msg.msg_body.DeliverGiftMsg',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='gray_tip_content', full_name='im.msg.msg_body.DeliverGiftMsg.gray_tip_content', index=0,
- number=1, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='animation_package_id', full_name='im.msg.msg_body.DeliverGiftMsg.animation_package_id', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='animation_package_url_a', full_name='im.msg.msg_body.DeliverGiftMsg.animation_package_url_a', index=2,
- number=3, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='animation_package_url_i', full_name='im.msg.msg_body.DeliverGiftMsg.animation_package_url_i', index=3,
- number=4, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='remind_brief', full_name='im.msg.msg_body.DeliverGiftMsg.remind_brief', index=4,
- number=5, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='gift_id', full_name='im.msg.msg_body.DeliverGiftMsg.gift_id', index=5,
- number=6, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='gift_count', full_name='im.msg.msg_body.DeliverGiftMsg.gift_count', index=6,
- number=7, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='animation_brief', full_name='im.msg.msg_body.DeliverGiftMsg.animation_brief', index=7,
- number=8, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='sender_uin', full_name='im.msg.msg_body.DeliverGiftMsg.sender_uin', index=8,
- number=9, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='receiver_uin', full_name='im.msg.msg_body.DeliverGiftMsg.receiver_uin', index=9,
- number=10, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='stmessage_title', full_name='im.msg.msg_body.DeliverGiftMsg.stmessage_title', index=10,
- number=11, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='stmessage_subtitle', full_name='im.msg.msg_body.DeliverGiftMsg.stmessage_subtitle', index=11,
- number=12, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='stmessage_message', full_name='im.msg.msg_body.DeliverGiftMsg.stmessage_message', index=12,
- number=13, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='stmessage_giftpicid', full_name='im.msg.msg_body.DeliverGiftMsg.stmessage_giftpicid', index=13,
- number=14, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='stmessage_comefrom', full_name='im.msg.msg_body.DeliverGiftMsg.stmessage_comefrom', index=14,
- number=15, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='stmessage_exflag', full_name='im.msg.msg_body.DeliverGiftMsg.stmessage_exflag', index=15,
- number=16, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='to_all_gift_id', full_name='im.msg.msg_body.DeliverGiftMsg.to_all_gift_id', index=16,
- number=17, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='comefrom_link', full_name='im.msg.msg_body.DeliverGiftMsg.comefrom_link', index=17,
- number=18, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='pb_reserve', full_name='im.msg.msg_body.DeliverGiftMsg.pb_reserve', index=18,
- number=19, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='receiver_name', full_name='im.msg.msg_body.DeliverGiftMsg.receiver_name', index=19,
- number=20, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='receiver_pic', full_name='im.msg.msg_body.DeliverGiftMsg.receiver_pic', index=20,
- number=21, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='stmessage_gifturl', full_name='im.msg.msg_body.DeliverGiftMsg.stmessage_gifturl', index=21,
- number=22, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=1826,
- serialized_end=2392,
-)
-
-
-_EIMINFO = _descriptor.Descriptor(
- name='EIMInfo',
- full_name='im.msg.msg_body.EIMInfo',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='root_id', full_name='im.msg.msg_body.EIMInfo.root_id', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='flag', full_name='im.msg.msg_body.EIMInfo.flag', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=2394,
- serialized_end=2434,
-)
-
-
-_ELEM = _descriptor.Descriptor(
- name='Elem',
- full_name='im.msg.msg_body.Elem',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='text', full_name='im.msg.msg_body.Elem.text', index=0,
- number=1, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='face', full_name='im.msg.msg_body.Elem.face', index=1,
- number=2, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='online_image', full_name='im.msg.msg_body.Elem.online_image', index=2,
- number=3, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='not_online_image', full_name='im.msg.msg_body.Elem.not_online_image', index=3,
- number=4, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='trans_elem_info', full_name='im.msg.msg_body.Elem.trans_elem_info', index=4,
- number=5, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='market_face', full_name='im.msg.msg_body.Elem.market_face', index=5,
- number=6, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='elem_flags', full_name='im.msg.msg_body.Elem.elem_flags', index=6,
- number=7, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='custom_face', full_name='im.msg.msg_body.Elem.custom_face', index=7,
- number=8, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='elem_flags2', full_name='im.msg.msg_body.Elem.elem_flags2', index=8,
- number=9, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='fun_face', full_name='im.msg.msg_body.Elem.fun_face', index=9,
- number=10, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='secret_file', full_name='im.msg.msg_body.Elem.secret_file', index=10,
- number=11, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='rich_msg', full_name='im.msg.msg_body.Elem.rich_msg', index=11,
- number=12, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='group_file', full_name='im.msg.msg_body.Elem.group_file', index=12,
- number=13, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='pub_group', full_name='im.msg.msg_body.Elem.pub_group', index=13,
- number=14, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='market_trans', full_name='im.msg.msg_body.Elem.market_trans', index=14,
- number=15, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='extra_info', full_name='im.msg.msg_body.Elem.extra_info', index=15,
- number=16, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='shake_window', full_name='im.msg.msg_body.Elem.shake_window', index=16,
- number=17, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='pub_account', full_name='im.msg.msg_body.Elem.pub_account', index=17,
- number=18, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='video_file', full_name='im.msg.msg_body.Elem.video_file', index=18,
- number=19, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='tips_info', full_name='im.msg.msg_body.Elem.tips_info', index=19,
- number=20, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='anon_group_msg', full_name='im.msg.msg_body.Elem.anon_group_msg', index=20,
- number=21, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='qq_live_old', full_name='im.msg.msg_body.Elem.qq_live_old', index=21,
- number=22, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='life_online', full_name='im.msg.msg_body.Elem.life_online', index=22,
- number=23, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='qqwallet_msg', full_name='im.msg.msg_body.Elem.qqwallet_msg', index=23,
- number=24, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='crm_elem', full_name='im.msg.msg_body.Elem.crm_elem', index=24,
- number=25, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='conference_tips_info', full_name='im.msg.msg_body.Elem.conference_tips_info', index=25,
- number=26, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='redbag_info', full_name='im.msg.msg_body.Elem.redbag_info', index=26,
- number=27, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='low_version_tips', full_name='im.msg.msg_body.Elem.low_version_tips', index=27,
- number=28, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='bankcode_ctrl_info', full_name='im.msg.msg_body.Elem.bankcode_ctrl_info', index=28,
- number=29, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='near_by_msg', full_name='im.msg.msg_body.Elem.near_by_msg', index=29,
- number=30, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='custom_elem', full_name='im.msg.msg_body.Elem.custom_elem', index=30,
- number=31, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='location_info', full_name='im.msg.msg_body.Elem.location_info', index=31,
- number=32, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='pub_acc_info', full_name='im.msg.msg_body.Elem.pub_acc_info', index=32,
- number=33, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='small_emoji', full_name='im.msg.msg_body.Elem.small_emoji', index=33,
- number=34, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='fsj_msg_elem', full_name='im.msg.msg_body.Elem.fsj_msg_elem', index=34,
- number=35, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='ark_app', full_name='im.msg.msg_body.Elem.ark_app', index=35,
- number=36, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='general_flags', full_name='im.msg.msg_body.Elem.general_flags', index=36,
- number=37, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='hc_flash_pic', full_name='im.msg.msg_body.Elem.hc_flash_pic', index=37,
- number=38, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='deliver_gift_msg', full_name='im.msg.msg_body.Elem.deliver_gift_msg', index=38,
- number=39, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='bitapp_msg', full_name='im.msg.msg_body.Elem.bitapp_msg', index=39,
- number=40, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='open_qq_data', full_name='im.msg.msg_body.Elem.open_qq_data', index=40,
- number=41, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='apollo_msg', full_name='im.msg.msg_body.Elem.apollo_msg', index=41,
- number=42, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='group_pub_acc_info', full_name='im.msg.msg_body.Elem.group_pub_acc_info', index=42,
- number=43, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='bless_msg', full_name='im.msg.msg_body.Elem.bless_msg', index=43,
- number=44, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='src_msg', full_name='im.msg.msg_body.Elem.src_msg', index=44,
- number=45, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='lola_msg', full_name='im.msg.msg_body.Elem.lola_msg', index=45,
- number=46, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='group_business_msg', full_name='im.msg.msg_body.Elem.group_business_msg', index=46,
- number=47, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='workflow_notify', full_name='im.msg.msg_body.Elem.workflow_notify', index=47,
- number=48, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='pat_elem', full_name='im.msg.msg_body.Elem.pat_elem', index=48,
- number=49, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='group_post_elem', full_name='im.msg.msg_body.Elem.group_post_elem', index=49,
- number=50, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='light_app', full_name='im.msg.msg_body.Elem.light_app', index=50,
- number=51, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='eim_info', full_name='im.msg.msg_body.Elem.eim_info', index=51,
- number=52, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='common_elem', full_name='im.msg.msg_body.Elem.common_elem', index=52,
- number=53, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=2437,
- serialized_end=5136,
-)
-
-
-_ELEMFLAGS = _descriptor.Descriptor(
- name='ElemFlags',
- full_name='im.msg.msg_body.ElemFlags',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='flags1', full_name='im.msg.msg_body.ElemFlags.flags1', index=0,
- number=1, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='business_data', full_name='im.msg.msg_body.ElemFlags.business_data', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=5138,
- serialized_end=5188,
-)
-
-
-_ELEMFLAGS2 = _descriptor.Descriptor(
- name='ElemFlags2',
- full_name='im.msg.msg_body.ElemFlags2',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='color_text_id', full_name='im.msg.msg_body.ElemFlags2.color_text_id', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='msg_id', full_name='im.msg.msg_body.ElemFlags2.msg_id', index=1,
- number=2, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='whisper_session_id', full_name='im.msg.msg_body.ElemFlags2.whisper_session_id', index=2,
- number=3, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='ptt_change_bit', full_name='im.msg.msg_body.ElemFlags2.ptt_change_bit', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='vip_status', full_name='im.msg.msg_body.ElemFlags2.vip_status', index=4,
- number=5, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='compatible_id', full_name='im.msg.msg_body.ElemFlags2.compatible_id', index=5,
- number=6, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='insts', full_name='im.msg.msg_body.ElemFlags2.insts', index=6,
- number=7, type=11, cpp_type=10, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='msg_rpt_cnt', full_name='im.msg.msg_body.ElemFlags2.msg_rpt_cnt', index=7,
- number=8, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='src_inst', full_name='im.msg.msg_body.ElemFlags2.src_inst', index=8,
- number=9, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='longtitude', full_name='im.msg.msg_body.ElemFlags2.longtitude', index=9,
- number=10, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='latitude', full_name='im.msg.msg_body.ElemFlags2.latitude', index=10,
- number=11, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='custom_font', full_name='im.msg.msg_body.ElemFlags2.custom_font', index=11,
- number=12, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='pc_support_def', full_name='im.msg.msg_body.ElemFlags2.pc_support_def', index=12,
- number=13, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='crm_flags', full_name='im.msg.msg_body.ElemFlags2.crm_flags', index=13,
- number=14, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=5191,
- serialized_end=5570,
-)
-
-
-_INST = _descriptor.Descriptor(
- name='Inst',
- full_name='im.msg.msg_body.Inst',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='app_id', full_name='im.msg.msg_body.Inst.app_id', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='inst_id', full_name='im.msg.msg_body.Inst.inst_id', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=5572,
- serialized_end=5611,
-)
-
-
-_EXTRAINFO = _descriptor.Descriptor(
- name='ExtraInfo',
- full_name='im.msg.msg_body.ExtraInfo',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='nick', full_name='im.msg.msg_body.ExtraInfo.nick', index=0,
- number=1, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='group_card', full_name='im.msg.msg_body.ExtraInfo.group_card', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='level', full_name='im.msg.msg_body.ExtraInfo.level', index=2,
- number=3, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='flags', full_name='im.msg.msg_body.ExtraInfo.flags', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='group_mask', full_name='im.msg.msg_body.ExtraInfo.group_mask', index=4,
- number=5, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='msg_tail_id', full_name='im.msg.msg_body.ExtraInfo.msg_tail_id', index=5,
- number=6, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='sender_title', full_name='im.msg.msg_body.ExtraInfo.sender_title', index=6,
- number=7, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='apns_tips', full_name='im.msg.msg_body.ExtraInfo.apns_tips', index=7,
- number=8, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='uin', full_name='im.msg.msg_body.ExtraInfo.uin', index=8,
- number=9, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='msg_state_flag', full_name='im.msg.msg_body.ExtraInfo.msg_state_flag', index=9,
- number=10, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='apns_sound_type', full_name='im.msg.msg_body.ExtraInfo.apns_sound_type', index=10,
- number=11, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='new_group_flag', full_name='im.msg.msg_body.ExtraInfo.new_group_flag', index=11,
- number=12, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=5614,
- serialized_end=5857,
-)
-
-
-_FSJMESSAGEELEM = _descriptor.Descriptor(
- name='FSJMessageElem',
- full_name='im.msg.msg_body.FSJMessageElem',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='msg_type', full_name='im.msg.msg_body.FSJMessageElem.msg_type', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=5859,
- serialized_end=5893,
-)
-
-
-_FACE = _descriptor.Descriptor(
- name='Face',
- full_name='im.msg.msg_body.Face',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='index', full_name='im.msg.msg_body.Face.index', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='old', full_name='im.msg.msg_body.Face.old', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='buf', full_name='im.msg.msg_body.Face.buf', index=2,
- number=11, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=5895,
- serialized_end=5942,
-)
-
-
-_FUNFACE = _descriptor.Descriptor(
- name='FunFace',
- full_name='im.msg.msg_body.FunFace',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='turntable', full_name='im.msg.msg_body.FunFace.turntable', index=0,
- number=1, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='bomb', full_name='im.msg.msg_body.FunFace.bomb', index=1,
- number=2, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=5944,
- serialized_end=6037,
-)
-
-
-_BOMB = _descriptor.Descriptor(
- name='Bomb',
- full_name='im.msg.msg_body.Bomb',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='burst', full_name='im.msg.msg_body.Bomb.burst', index=0,
- number=1, type=8, cpp_type=7, label=1,
- has_default_value=False, default_value=False,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=6039,
- serialized_end=6060,
-)
-
-
-_TURNTABLE = _descriptor.Descriptor(
- name='Turntable',
- full_name='im.msg.msg_body.Turntable',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='uin_list', full_name='im.msg.msg_body.Turntable.uin_list', index=0,
- number=1, type=4, cpp_type=4, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='hit_uin', full_name='im.msg.msg_body.Turntable.hit_uin', index=1,
- number=2, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='hit_uin_nick', full_name='im.msg.msg_body.Turntable.hit_uin_nick', index=2,
- number=3, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=6062,
- serialized_end=6130,
-)
-
-
-_GENERALFLAGS = _descriptor.Descriptor(
- name='GeneralFlags',
- full_name='im.msg.msg_body.GeneralFlags',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='bubble_diy_text_id', full_name='im.msg.msg_body.GeneralFlags.bubble_diy_text_id', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='group_flag_new', full_name='im.msg.msg_body.GeneralFlags.group_flag_new', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='uin', full_name='im.msg.msg_body.GeneralFlags.uin', index=2,
- number=3, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='rp_id', full_name='im.msg.msg_body.GeneralFlags.rp_id', index=3,
- number=4, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='prp_fold', full_name='im.msg.msg_body.GeneralFlags.prp_fold', index=4,
- number=5, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='long_text_flag', full_name='im.msg.msg_body.GeneralFlags.long_text_flag', index=5,
- number=6, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='long_text_resid', full_name='im.msg.msg_body.GeneralFlags.long_text_resid', index=6,
- number=7, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='group_type', full_name='im.msg.msg_body.GeneralFlags.group_type', index=7,
- number=8, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='to_uin_flag', full_name='im.msg.msg_body.GeneralFlags.to_uin_flag', index=8,
- number=9, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='glamour_level', full_name='im.msg.msg_body.GeneralFlags.glamour_level', index=9,
- number=10, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='member_level', full_name='im.msg.msg_body.GeneralFlags.member_level', index=10,
- number=11, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='group_rank_seq', full_name='im.msg.msg_body.GeneralFlags.group_rank_seq', index=11,
- number=12, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='olympic_torch', full_name='im.msg.msg_body.GeneralFlags.olympic_torch', index=12,
- number=13, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='babyq_guide_msg_cookie', full_name='im.msg.msg_body.GeneralFlags.babyq_guide_msg_cookie', index=13,
- number=14, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='uin32_expert_flag', full_name='im.msg.msg_body.GeneralFlags.uin32_expert_flag', index=14,
- number=15, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='bubble_sub_id', full_name='im.msg.msg_body.GeneralFlags.bubble_sub_id', index=15,
- number=16, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='pendant_id', full_name='im.msg.msg_body.GeneralFlags.pendant_id', index=16,
- number=17, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='rp_index', full_name='im.msg.msg_body.GeneralFlags.rp_index', index=17,
- number=18, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='pb_reserve', full_name='im.msg.msg_body.GeneralFlags.pb_reserve', index=18,
- number=19, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=6133,
- serialized_end=6567,
-)
-
-
-_GROUPBUSINESSMSG = _descriptor.Descriptor(
- name='GroupBusinessMsg',
- full_name='im.msg.msg_body.GroupBusinessMsg',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='flags', full_name='im.msg.msg_body.GroupBusinessMsg.flags', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='head_url', full_name='im.msg.msg_body.GroupBusinessMsg.head_url', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='head_clk_url', full_name='im.msg.msg_body.GroupBusinessMsg.head_clk_url', index=2,
- number=3, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='nick', full_name='im.msg.msg_body.GroupBusinessMsg.nick', index=3,
- number=4, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='nick_color', full_name='im.msg.msg_body.GroupBusinessMsg.nick_color', index=4,
- number=5, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='rank', full_name='im.msg.msg_body.GroupBusinessMsg.rank', index=5,
- number=6, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='rank_color', full_name='im.msg.msg_body.GroupBusinessMsg.rank_color', index=6,
- number=7, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='rank_bgcolor', full_name='im.msg.msg_body.GroupBusinessMsg.rank_bgcolor', index=7,
- number=8, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=6570,
- serialized_end=6733,
-)
-
-
-_GROUPFILE = _descriptor.Descriptor(
- name='GroupFile',
- full_name='im.msg.msg_body.GroupFile',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='filename', full_name='im.msg.msg_body.GroupFile.filename', index=0,
- number=1, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='file_size', full_name='im.msg.msg_body.GroupFile.file_size', index=1,
- number=2, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='file_id', full_name='im.msg.msg_body.GroupFile.file_id', index=2,
- number=3, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='batch_id', full_name='im.msg.msg_body.GroupFile.batch_id', index=3,
- number=4, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='file_key', full_name='im.msg.msg_body.GroupFile.file_key', index=4,
- number=5, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='mark', full_name='im.msg.msg_body.GroupFile.mark', index=5,
- number=6, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='sequence', full_name='im.msg.msg_body.GroupFile.sequence', index=6,
- number=7, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='batch_item_id', full_name='im.msg.msg_body.GroupFile.batch_item_id', index=7,
- number=8, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='feed_msg_time', full_name='im.msg.msg_body.GroupFile.feed_msg_time', index=8,
- number=9, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='pb_reserve', full_name='im.msg.msg_body.GroupFile.pb_reserve', index=9,
- number=10, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=6736,
- serialized_end=6935,
-)
-
-
-_GROUPPOSTELEM = _descriptor.Descriptor(
- name='GroupPostElem',
- full_name='im.msg.msg_body.GroupPostElem',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='trans_type', full_name='im.msg.msg_body.GroupPostElem.trans_type', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='trans_msg', full_name='im.msg.msg_body.GroupPostElem.trans_msg', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=6937,
- serialized_end=6991,
-)
-
-
-_GROUPPUBACCOUNTINFO = _descriptor.Descriptor(
- name='GroupPubAccountInfo',
- full_name='im.msg.msg_body.GroupPubAccountInfo',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='pub_account', full_name='im.msg.msg_body.GroupPubAccountInfo.pub_account', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=6993,
- serialized_end=7035,
-)
-
-
-_LIFEONLINEACCOUNT = _descriptor.Descriptor(
- name='LifeOnlineAccount',
- full_name='im.msg.msg_body.LifeOnlineAccount',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='unique_id', full_name='im.msg.msg_body.LifeOnlineAccount.unique_id', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='op', full_name='im.msg.msg_body.LifeOnlineAccount.op', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='show_time', full_name='im.msg.msg_body.LifeOnlineAccount.show_time', index=2,
- number=3, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='report', full_name='im.msg.msg_body.LifeOnlineAccount.report', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='ack', full_name='im.msg.msg_body.LifeOnlineAccount.ack', index=4,
- number=5, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='bitmap', full_name='im.msg.msg_body.LifeOnlineAccount.bitmap', index=5,
- number=6, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='gdt_imp_data', full_name='im.msg.msg_body.LifeOnlineAccount.gdt_imp_data', index=6,
- number=7, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='gdt_cli_data', full_name='im.msg.msg_body.LifeOnlineAccount.gdt_cli_data', index=7,
- number=8, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='view_id', full_name='im.msg.msg_body.LifeOnlineAccount.view_id', index=8,
- number=9, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=7038,
- serialized_end=7213,
-)
-
-
-_LIGHTAPPELEM = _descriptor.Descriptor(
- name='LightAppElem',
- full_name='im.msg.msg_body.LightAppElem',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='data', full_name='im.msg.msg_body.LightAppElem.data', index=0,
- number=1, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='msg_resid', full_name='im.msg.msg_body.LightAppElem.msg_resid', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=7215,
- serialized_end=7262,
-)
-
-
-_LOLAMSG = _descriptor.Descriptor(
- name='LolaMsg',
- full_name='im.msg.msg_body.LolaMsg',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='msg_resid', full_name='im.msg.msg_body.LolaMsg.msg_resid', index=0,
- number=1, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='encode_content', full_name='im.msg.msg_body.LolaMsg.encode_content', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='long_msg_url', full_name='im.msg.msg_body.LolaMsg.long_msg_url', index=2,
- number=3, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='download_key', full_name='im.msg.msg_body.LolaMsg.download_key', index=3,
- number=4, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=7264,
- serialized_end=7360,
-)
-
-
-_LOWVERSIONTIPS = _descriptor.Descriptor(
- name='LowVersionTips',
- full_name='im.msg.msg_body.LowVersionTips',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='business_id', full_name='im.msg.msg_body.LowVersionTips.business_id', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='session_type', full_name='im.msg.msg_body.LowVersionTips.session_type', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='session_uin', full_name='im.msg.msg_body.LowVersionTips.session_uin', index=2,
- number=3, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='sender_uin', full_name='im.msg.msg_body.LowVersionTips.sender_uin', index=3,
- number=4, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='text', full_name='im.msg.msg_body.LowVersionTips.text', index=4,
- number=5, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=7362,
- serialized_end=7476,
-)
-
-
-_MARKETFACE = _descriptor.Descriptor(
- name='MarketFace',
- full_name='im.msg.msg_body.MarketFace',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='face_name', full_name='im.msg.msg_body.MarketFace.face_name', index=0,
- number=1, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='item_type', full_name='im.msg.msg_body.MarketFace.item_type', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='face_info', full_name='im.msg.msg_body.MarketFace.face_info', index=2,
- number=3, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='face_id', full_name='im.msg.msg_body.MarketFace.face_id', index=3,
- number=4, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='tab_id', full_name='im.msg.msg_body.MarketFace.tab_id', index=4,
- number=5, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='sub_type', full_name='im.msg.msg_body.MarketFace.sub_type', index=5,
- number=6, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='key', full_name='im.msg.msg_body.MarketFace.key', index=6,
- number=7, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='param', full_name='im.msg.msg_body.MarketFace.param', index=7,
- number=8, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='media_type', full_name='im.msg.msg_body.MarketFace.media_type', index=8,
- number=9, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='image_width', full_name='im.msg.msg_body.MarketFace.image_width', index=9,
- number=10, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='image_height', full_name='im.msg.msg_body.MarketFace.image_height', index=10,
- number=11, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='mobileparam', full_name='im.msg.msg_body.MarketFace.mobileparam', index=11,
- number=12, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='pb_reserve', full_name='im.msg.msg_body.MarketFace.pb_reserve', index=12,
- number=13, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=7479,
- serialized_end=7731,
-)
-
-
-_MARKETTRANS = _descriptor.Descriptor(
- name='MarketTrans',
- full_name='im.msg.msg_body.MarketTrans',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='flag', full_name='im.msg.msg_body.MarketTrans.flag', index=0,
- number=1, type=5, cpp_type=1, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='xml', full_name='im.msg.msg_body.MarketTrans.xml', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='msg_resid', full_name='im.msg.msg_body.MarketTrans.msg_resid', index=2,
- number=3, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='ability', full_name='im.msg.msg_body.MarketTrans.ability', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='min_ability', full_name='im.msg.msg_body.MarketTrans.min_ability', index=4,
- number=5, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=7733,
- serialized_end=7830,
-)
-
-
-_MSGBODY = _descriptor.Descriptor(
- name='MsgBody',
- full_name='im.msg.msg_body.MsgBody',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='rich_text', full_name='im.msg.msg_body.MsgBody.rich_text', index=0,
- number=1, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='content', full_name='im.msg.msg_body.MsgBody.content', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='encrypt_content', full_name='im.msg.msg_body.MsgBody.encrypt_content', index=2,
- number=3, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=7832,
- serialized_end=7929,
-)
-
-
-_MSGBODY_SUBTYPE4 = _descriptor.Descriptor(
- name='MsgBody_subtype4',
- full_name='im.msg.msg_body.MsgBody_subtype4',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='not_online_file', full_name='im.msg.msg_body.MsgBody_subtype4.not_online_file', index=0,
- number=1, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='msg_time', full_name='im.msg.msg_body.MsgBody_subtype4.msg_time', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=7931,
- serialized_end=8024,
-)
-
-
-_NEARBYMESSAGETYPE = _descriptor.Descriptor(
- name='NearByMessageType',
- full_name='im.msg.msg_body.NearByMessageType',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='type', full_name='im.msg.msg_body.NearByMessageType.type', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='identify_type', full_name='im.msg.msg_body.NearByMessageType.identify_type', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=8026,
- serialized_end=8082,
-)
-
-
-_NOTONLINEFILE = _descriptor.Descriptor(
- name='NotOnlineFile',
- full_name='im.msg.msg_body.NotOnlineFile',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='file_type', full_name='im.msg.msg_body.NotOnlineFile.file_type', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='sig', full_name='im.msg.msg_body.NotOnlineFile.sig', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='file_uuid', full_name='im.msg.msg_body.NotOnlineFile.file_uuid', index=2,
- number=3, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='file_md5', full_name='im.msg.msg_body.NotOnlineFile.file_md5', index=3,
- number=4, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='file_name', full_name='im.msg.msg_body.NotOnlineFile.file_name', index=4,
- number=5, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='file_size', full_name='im.msg.msg_body.NotOnlineFile.file_size', index=5,
- number=6, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='note', full_name='im.msg.msg_body.NotOnlineFile.note', index=6,
- number=7, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='reserved', full_name='im.msg.msg_body.NotOnlineFile.reserved', index=7,
- number=8, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='subcmd', full_name='im.msg.msg_body.NotOnlineFile.subcmd', index=8,
- number=9, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='micro_cloud', full_name='im.msg.msg_body.NotOnlineFile.micro_cloud', index=9,
- number=10, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='file_urls', full_name='im.msg.msg_body.NotOnlineFile.file_urls', index=10,
- number=11, type=12, cpp_type=9, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='download_flag', full_name='im.msg.msg_body.NotOnlineFile.download_flag', index=11,
- number=12, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='danger_evel', full_name='im.msg.msg_body.NotOnlineFile.danger_evel', index=12,
- number=50, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='life_time', full_name='im.msg.msg_body.NotOnlineFile.life_time', index=13,
- number=51, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='upload_time', full_name='im.msg.msg_body.NotOnlineFile.upload_time', index=14,
- number=52, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='abs_file_type', full_name='im.msg.msg_body.NotOnlineFile.abs_file_type', index=15,
- number=53, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='client_type', full_name='im.msg.msg_body.NotOnlineFile.client_type', index=16,
- number=54, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='expire_time', full_name='im.msg.msg_body.NotOnlineFile.expire_time', index=17,
- number=55, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='pb_reserve', full_name='im.msg.msg_body.NotOnlineFile.pb_reserve', index=18,
- number=56, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='fileidcrc_media', full_name='im.msg.msg_body.NotOnlineFile.fileidcrc_media', index=19,
- number=57, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=8085,
- serialized_end=8489,
-)
-
-
-_NOTONLINEIMAGE = _descriptor.Descriptor(
- name='NotOnlineImage',
- full_name='im.msg.msg_body.NotOnlineImage',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='file_path', full_name='im.msg.msg_body.NotOnlineImage.file_path', index=0,
- number=1, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='file_len', full_name='im.msg.msg_body.NotOnlineImage.file_len', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='download_path', full_name='im.msg.msg_body.NotOnlineImage.download_path', index=2,
- number=3, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='old_ver_send_file', full_name='im.msg.msg_body.NotOnlineImage.old_ver_send_file', index=3,
- number=4, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='img_type', full_name='im.msg.msg_body.NotOnlineImage.img_type', index=4,
- number=5, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='previews_image', full_name='im.msg.msg_body.NotOnlineImage.previews_image', index=5,
- number=6, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='pic_md5', full_name='im.msg.msg_body.NotOnlineImage.pic_md5', index=6,
- number=7, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='pic_height', full_name='im.msg.msg_body.NotOnlineImage.pic_height', index=7,
- number=8, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='pic_width', full_name='im.msg.msg_body.NotOnlineImage.pic_width', index=8,
- number=9, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='res_id', full_name='im.msg.msg_body.NotOnlineImage.res_id', index=9,
- number=10, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='flag', full_name='im.msg.msg_body.NotOnlineImage.flag', index=10,
- number=11, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='thumb_url', full_name='im.msg.msg_body.NotOnlineImage.thumb_url', index=11,
- number=12, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='original', full_name='im.msg.msg_body.NotOnlineImage.original', index=12,
- number=13, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='big_url', full_name='im.msg.msg_body.NotOnlineImage.big_url', index=13,
- number=14, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='orig_url', full_name='im.msg.msg_body.NotOnlineImage.orig_url', index=14,
- number=15, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='biz_type', full_name='im.msg.msg_body.NotOnlineImage.biz_type', index=15,
- number=16, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='result', full_name='im.msg.msg_body.NotOnlineImage.result', index=16,
- number=17, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='index', full_name='im.msg.msg_body.NotOnlineImage.index', index=17,
- number=18, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='op_face_buf', full_name='im.msg.msg_body.NotOnlineImage.op_face_buf', index=18,
- number=19, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='old_pic_md5', full_name='im.msg.msg_body.NotOnlineImage.old_pic_md5', index=19,
- number=20, type=8, cpp_type=7, label=1,
- has_default_value=False, default_value=False,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='thumb_width', full_name='im.msg.msg_body.NotOnlineImage.thumb_width', index=20,
- number=21, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='thumb_height', full_name='im.msg.msg_body.NotOnlineImage.thumb_height', index=21,
- number=22, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='file_id', full_name='im.msg.msg_body.NotOnlineImage.file_id', index=22,
- number=23, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='show_len', full_name='im.msg.msg_body.NotOnlineImage.show_len', index=23,
- number=24, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='download_len', full_name='im.msg.msg_body.NotOnlineImage.download_len', index=24,
- number=25, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='_400_url', full_name='im.msg.msg_body.NotOnlineImage._400_url', index=25,
- number=26, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='_400_width', full_name='im.msg.msg_body.NotOnlineImage._400_width', index=26,
- number=27, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='_400_height', full_name='im.msg.msg_body.NotOnlineImage._400_height', index=27,
- number=28, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='pb_reserve', full_name='im.msg.msg_body.NotOnlineImage.pb_reserve', index=28,
- number=29, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=8492,
- serialized_end=9065,
-)
-
-
-_ONLINEIMAGE = _descriptor.Descriptor(
- name='OnlineImage',
- full_name='im.msg.msg_body.OnlineImage',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='guid', full_name='im.msg.msg_body.OnlineImage.guid', index=0,
- number=1, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='file_path', full_name='im.msg.msg_body.OnlineImage.file_path', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='old_ver_send_file', full_name='im.msg.msg_body.OnlineImage.old_ver_send_file', index=2,
- number=3, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=9067,
- serialized_end=9140,
-)
-
-
-_OPENQQDATA = _descriptor.Descriptor(
- name='OpenQQData',
- full_name='im.msg.msg_body.OpenQQData',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='car_qq_data', full_name='im.msg.msg_body.OpenQQData.car_qq_data', index=0,
- number=1, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=9142,
- serialized_end=9175,
-)
-
-
-_PATSELEM = _descriptor.Descriptor(
- name='PatsElem',
- full_name='im.msg.msg_body.PatsElem',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='pat_type', full_name='im.msg.msg_body.PatsElem.pat_type', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='pat_count', full_name='im.msg.msg_body.PatsElem.pat_count', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=9177,
- serialized_end=9224,
-)
-
-
-_PCSUPPORTDEF = _descriptor.Descriptor(
- name='PcSupportDef',
- full_name='im.msg.msg_body.PcSupportDef',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='pc_ptl_begin', full_name='im.msg.msg_body.PcSupportDef.pc_ptl_begin', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='pc_ptl_end', full_name='im.msg.msg_body.PcSupportDef.pc_ptl_end', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='mac_ptl_begin', full_name='im.msg.msg_body.PcSupportDef.mac_ptl_begin', index=2,
- number=3, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='mac_ptl_end', full_name='im.msg.msg_body.PcSupportDef.mac_ptl_end', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='ptls_support', full_name='im.msg.msg_body.PcSupportDef.ptls_support', index=4,
- number=5, type=13, cpp_type=3, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='ptls_not_support', full_name='im.msg.msg_body.PcSupportDef.ptls_not_support', index=5,
- number=6, type=13, cpp_type=3, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=9227,
- serialized_end=9375,
-)
-
-
-_PTT = _descriptor.Descriptor(
- name='Ptt',
- full_name='im.msg.msg_body.Ptt',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='file_type', full_name='im.msg.msg_body.Ptt.file_type', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='src_uin', full_name='im.msg.msg_body.Ptt.src_uin', index=1,
- number=2, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='file_uuid', full_name='im.msg.msg_body.Ptt.file_uuid', index=2,
- number=3, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='file_md5', full_name='im.msg.msg_body.Ptt.file_md5', index=3,
- number=4, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='file_name', full_name='im.msg.msg_body.Ptt.file_name', index=4,
- number=5, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='file_size', full_name='im.msg.msg_body.Ptt.file_size', index=5,
- number=6, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='reserve', full_name='im.msg.msg_body.Ptt.reserve', index=6,
- number=7, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='file_id', full_name='im.msg.msg_body.Ptt.file_id', index=7,
- number=8, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='server_ip', full_name='im.msg.msg_body.Ptt.server_ip', index=8,
- number=9, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='server_port', full_name='im.msg.msg_body.Ptt.server_port', index=9,
- number=10, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='valid', full_name='im.msg.msg_body.Ptt.valid', index=10,
- number=11, type=8, cpp_type=7, label=1,
- has_default_value=False, default_value=False,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='signature', full_name='im.msg.msg_body.Ptt.signature', index=11,
- number=12, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='shortcut', full_name='im.msg.msg_body.Ptt.shortcut', index=12,
- number=13, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='file_key', full_name='im.msg.msg_body.Ptt.file_key', index=13,
- number=14, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='magic_ptt_index', full_name='im.msg.msg_body.Ptt.magic_ptt_index', index=14,
- number=15, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='voice_switch', full_name='im.msg.msg_body.Ptt.voice_switch', index=15,
- number=16, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='ptt_url', full_name='im.msg.msg_body.Ptt.ptt_url', index=16,
- number=17, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='group_file_key', full_name='im.msg.msg_body.Ptt.group_file_key', index=17,
- number=18, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='time', full_name='im.msg.msg_body.Ptt.time', index=18,
- number=19, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='down_para', full_name='im.msg.msg_body.Ptt.down_para', index=19,
- number=20, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='format', full_name='im.msg.msg_body.Ptt.format', index=20,
- number=29, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='pb_reserve', full_name='im.msg.msg_body.Ptt.pb_reserve', index=21,
- number=30, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='ptt_urls', full_name='im.msg.msg_body.Ptt.ptt_urls', index=22,
- number=31, type=12, cpp_type=9, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='download_flag', full_name='im.msg.msg_body.Ptt.download_flag', index=23,
- number=32, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=9378,
- serialized_end=9836,
-)
-
-
-_PUBACCINFO = _descriptor.Descriptor(
- name='PubAccInfo',
- full_name='im.msg.msg_body.PubAccInfo',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='is_inter_num', full_name='im.msg.msg_body.PubAccInfo.is_inter_num', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='msg_template_id', full_name='im.msg.msg_body.PubAccInfo.msg_template_id', index=1,
- number=2, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='long_msg_url', full_name='im.msg.msg_body.PubAccInfo.long_msg_url', index=2,
- number=3, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='download_key', full_name='im.msg.msg_body.PubAccInfo.download_key', index=3,
- number=4, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=9838,
- serialized_end=9941,
-)
-
-
-_PUBACCOUNT = _descriptor.Descriptor(
- name='PubAccount',
- full_name='im.msg.msg_body.PubAccount',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='buf', full_name='im.msg.msg_body.PubAccount.buf', index=0,
- number=1, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='pub_account_uin', full_name='im.msg.msg_body.PubAccount.pub_account_uin', index=1,
- number=2, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=9943,
- serialized_end=9993,
-)
-
-
-_PUBGROUP = _descriptor.Descriptor(
- name='PubGroup',
- full_name='im.msg.msg_body.PubGroup',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='nickname', full_name='im.msg.msg_body.PubGroup.nickname', index=0,
- number=1, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='gender', full_name='im.msg.msg_body.PubGroup.gender', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='age', full_name='im.msg.msg_body.PubGroup.age', index=2,
- number=3, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='distance', full_name='im.msg.msg_body.PubGroup.distance', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=9995,
- serialized_end=10070,
-)
-
-
-_QQLIVEOLD = _descriptor.Descriptor(
- name='QQLiveOld',
- full_name='im.msg.msg_body.QQLiveOld',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='sub_cmd', full_name='im.msg.msg_body.QQLiveOld.sub_cmd', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='show_text', full_name='im.msg.msg_body.QQLiveOld.show_text', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='param', full_name='im.msg.msg_body.QQLiveOld.param', index=2,
- number=3, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='introduce', full_name='im.msg.msg_body.QQLiveOld.introduce', index=3,
- number=4, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=10072,
- serialized_end=10153,
-)
-
-
-_QQWALLETAIOBODY = _descriptor.Descriptor(
- name='QQWalletAioBody',
- full_name='im.msg.msg_body.QQWalletAioBody',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='senduin', full_name='im.msg.msg_body.QQWalletAioBody.senduin', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='sender', full_name='im.msg.msg_body.QQWalletAioBody.sender', index=1,
- number=2, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='receiver', full_name='im.msg.msg_body.QQWalletAioBody.receiver', index=2,
- number=3, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='channelid', full_name='im.msg.msg_body.QQWalletAioBody.channelid', index=3,
- number=4, type=17, cpp_type=1, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='templateid', full_name='im.msg.msg_body.QQWalletAioBody.templateid', index=4,
- number=5, type=17, cpp_type=1, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='resend', full_name='im.msg.msg_body.QQWalletAioBody.resend', index=5,
- number=6, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='msg_priority', full_name='im.msg.msg_body.QQWalletAioBody.msg_priority', index=6,
- number=7, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='redtype', full_name='im.msg.msg_body.QQWalletAioBody.redtype', index=7,
- number=8, type=17, cpp_type=1, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='billno', full_name='im.msg.msg_body.QQWalletAioBody.billno', index=8,
- number=9, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='authkey', full_name='im.msg.msg_body.QQWalletAioBody.authkey', index=9,
- number=10, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='sessiontype', full_name='im.msg.msg_body.QQWalletAioBody.sessiontype', index=10,
- number=11, type=17, cpp_type=1, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='msgtype', full_name='im.msg.msg_body.QQWalletAioBody.msgtype', index=11,
- number=12, type=17, cpp_type=1, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='envelopeid', full_name='im.msg.msg_body.QQWalletAioBody.envelopeid', index=12,
- number=13, type=17, cpp_type=1, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='name', full_name='im.msg.msg_body.QQWalletAioBody.name', index=13,
- number=14, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='conftype', full_name='im.msg.msg_body.QQWalletAioBody.conftype', index=14,
- number=15, type=17, cpp_type=1, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='msg_from', full_name='im.msg.msg_body.QQWalletAioBody.msg_from', index=15,
- number=16, type=17, cpp_type=1, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='pc_body', full_name='im.msg.msg_body.QQWalletAioBody.pc_body', index=16,
- number=17, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='index', full_name='im.msg.msg_body.QQWalletAioBody.index', index=17,
- number=18, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='redchannel', full_name='im.msg.msg_body.QQWalletAioBody.redchannel', index=18,
- number=19, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='grap_uin', full_name='im.msg.msg_body.QQWalletAioBody.grap_uin', index=19,
- number=20, type=4, cpp_type=4, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='pb_reserve', full_name='im.msg.msg_body.QQWalletAioBody.pb_reserve', index=20,
- number=21, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=10156,
- serialized_end=10617,
-)
-
-
-_QQWALLETAIOELEM = _descriptor.Descriptor(
- name='QQWalletAioElem',
- full_name='im.msg.msg_body.QQWalletAioElem',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='background', full_name='im.msg.msg_body.QQWalletAioElem.background', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='icon', full_name='im.msg.msg_body.QQWalletAioElem.icon', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='title', full_name='im.msg.msg_body.QQWalletAioElem.title', index=2,
- number=3, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='subtitle', full_name='im.msg.msg_body.QQWalletAioElem.subtitle', index=3,
- number=4, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='content', full_name='im.msg.msg_body.QQWalletAioElem.content', index=4,
- number=5, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='linkurl', full_name='im.msg.msg_body.QQWalletAioElem.linkurl', index=5,
- number=6, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='blackstripe', full_name='im.msg.msg_body.QQWalletAioElem.blackstripe', index=6,
- number=7, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='notice', full_name='im.msg.msg_body.QQWalletAioElem.notice', index=7,
- number=8, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='title_color', full_name='im.msg.msg_body.QQWalletAioElem.title_color', index=8,
- number=9, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='subtitle_color', full_name='im.msg.msg_body.QQWalletAioElem.subtitle_color', index=9,
- number=10, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='actions_priority', full_name='im.msg.msg_body.QQWalletAioElem.actions_priority', index=10,
- number=11, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='jump_url', full_name='im.msg.msg_body.QQWalletAioElem.jump_url', index=11,
- number=12, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='native_ios', full_name='im.msg.msg_body.QQWalletAioElem.native_ios', index=12,
- number=13, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='native_android', full_name='im.msg.msg_body.QQWalletAioElem.native_android', index=13,
- number=14, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='iconurl', full_name='im.msg.msg_body.QQWalletAioElem.iconurl', index=14,
- number=15, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='content_color', full_name='im.msg.msg_body.QQWalletAioElem.content_color', index=15,
- number=16, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='content_bgcolor', full_name='im.msg.msg_body.QQWalletAioElem.content_bgcolor', index=16,
- number=17, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='aio_image_left', full_name='im.msg.msg_body.QQWalletAioElem.aio_image_left', index=17,
- number=18, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='aio_image_right', full_name='im.msg.msg_body.QQWalletAioElem.aio_image_right', index=18,
- number=19, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='cft_image', full_name='im.msg.msg_body.QQWalletAioElem.cft_image', index=19,
- number=20, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='pb_reserve', full_name='im.msg.msg_body.QQWalletAioElem.pb_reserve', index=20,
- number=21, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=10620,
- serialized_end=11061,
-)
-
-
-_QQWALLETMSG = _descriptor.Descriptor(
- name='QQWalletMsg',
- full_name='im.msg.msg_body.QQWalletMsg',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='aio_body', full_name='im.msg.msg_body.QQWalletMsg.aio_body', index=0,
- number=1, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=11063,
- serialized_end=11128,
-)
-
-
-_REDBAGINFO = _descriptor.Descriptor(
- name='RedBagInfo',
- full_name='im.msg.msg_body.RedBagInfo',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='redbag_type', full_name='im.msg.msg_body.RedBagInfo.redbag_type', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=11130,
- serialized_end=11163,
-)
-
-
-_RICHMSG = _descriptor.Descriptor(
- name='RichMsg',
- full_name='im.msg.msg_body.RichMsg',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='template_1', full_name='im.msg.msg_body.RichMsg.template_1', index=0,
- number=1, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='service_id', full_name='im.msg.msg_body.RichMsg.service_id', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='msg_resid', full_name='im.msg.msg_body.RichMsg.msg_resid', index=2,
- number=3, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='rand', full_name='im.msg.msg_body.RichMsg.rand', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='seq', full_name='im.msg.msg_body.RichMsg.seq', index=4,
- number=5, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='flags', full_name='im.msg.msg_body.RichMsg.flags', index=5,
- number=6, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=11165,
- serialized_end=11275,
-)
-
-
-_RICHTEXT = _descriptor.Descriptor(
- name='RichText',
- full_name='im.msg.msg_body.RichText',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='attr', full_name='im.msg.msg_body.RichText.attr', index=0,
- number=1, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='elems', full_name='im.msg.msg_body.RichText.elems', index=1,
- number=2, type=11, cpp_type=10, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='not_online_file', full_name='im.msg.msg_body.RichText.not_online_file', index=2,
- number=3, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='ptt', full_name='im.msg.msg_body.RichText.ptt', index=3,
- number=4, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='tmp_ptt', full_name='im.msg.msg_body.RichText.tmp_ptt', index=4,
- number=5, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='trans_211_tmp_msg', full_name='im.msg.msg_body.RichText.trans_211_tmp_msg', index=5,
- number=6, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=11278,
- serialized_end=11557,
-)
-
-
-_SECRETFILEMSG = _descriptor.Descriptor(
- name='SecretFileMsg',
- full_name='im.msg.msg_body.SecretFileMsg',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='file_key', full_name='im.msg.msg_body.SecretFileMsg.file_key', index=0,
- number=1, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='from_uin', full_name='im.msg.msg_body.SecretFileMsg.from_uin', index=1,
- number=2, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='to_uin', full_name='im.msg.msg_body.SecretFileMsg.to_uin', index=2,
- number=3, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='status', full_name='im.msg.msg_body.SecretFileMsg.status', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='ttl', full_name='im.msg.msg_body.SecretFileMsg.ttl', index=4,
- number=5, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='type', full_name='im.msg.msg_body.SecretFileMsg.type', index=5,
- number=6, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='encrypt_prehead_length', full_name='im.msg.msg_body.SecretFileMsg.encrypt_prehead_length', index=6,
- number=7, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='encrypt_type', full_name='im.msg.msg_body.SecretFileMsg.encrypt_type', index=7,
- number=8, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='encrypt_key', full_name='im.msg.msg_body.SecretFileMsg.encrypt_key', index=8,
- number=9, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='read_times', full_name='im.msg.msg_body.SecretFileMsg.read_times', index=9,
- number=10, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='left_time', full_name='im.msg.msg_body.SecretFileMsg.left_time', index=10,
- number=11, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='not_online_image', full_name='im.msg.msg_body.SecretFileMsg.not_online_image', index=11,
- number=12, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='elem_flags2', full_name='im.msg.msg_body.SecretFileMsg.elem_flags2', index=12,
- number=13, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='opertype', full_name='im.msg.msg_body.SecretFileMsg.opertype', index=13,
- number=14, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='fromphonenum', full_name='im.msg.msg_body.SecretFileMsg.fromphonenum', index=14,
- number=15, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=11560,
- serialized_end=11933,
-)
-
-
-_SHAKEWINDOW = _descriptor.Descriptor(
- name='ShakeWindow',
- full_name='im.msg.msg_body.ShakeWindow',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='type', full_name='im.msg.msg_body.ShakeWindow.type', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='reserve', full_name='im.msg.msg_body.ShakeWindow.reserve', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='uin', full_name='im.msg.msg_body.ShakeWindow.uin', index=2,
- number=3, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=11935,
- serialized_end=11992,
-)
-
-
-_SMALLEMOJI = _descriptor.Descriptor(
- name='SmallEmoji',
- full_name='im.msg.msg_body.SmallEmoji',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='pack_id_sum', full_name='im.msg.msg_body.SmallEmoji.pack_id_sum', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='image_type', full_name='im.msg.msg_body.SmallEmoji.image_type', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=11994,
- serialized_end=12047,
-)
-
-
-_SOURCEMSG = _descriptor.Descriptor(
- name='SourceMsg',
- full_name='im.msg.msg_body.SourceMsg',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='orig_seqs', full_name='im.msg.msg_body.SourceMsg.orig_seqs', index=0,
- number=1, type=13, cpp_type=3, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='sender_uin', full_name='im.msg.msg_body.SourceMsg.sender_uin', index=1,
- number=2, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='time', full_name='im.msg.msg_body.SourceMsg.time', index=2,
- number=3, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='flag', full_name='im.msg.msg_body.SourceMsg.flag', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='elems', full_name='im.msg.msg_body.SourceMsg.elems', index=4,
- number=5, type=11, cpp_type=10, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='type', full_name='im.msg.msg_body.SourceMsg.type', index=5,
- number=6, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='rich_msg', full_name='im.msg.msg_body.SourceMsg.rich_msg', index=6,
- number=7, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='pb_reserve', full_name='im.msg.msg_body.SourceMsg.pb_reserve', index=7,
- number=8, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='src_msg', full_name='im.msg.msg_body.SourceMsg.src_msg', index=8,
- number=9, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='to_uin', full_name='im.msg.msg_body.SourceMsg.to_uin', index=9,
- number=10, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='troop_name', full_name='im.msg.msg_body.SourceMsg.troop_name', index=10,
- number=11, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=12050,
- serialized_end=12271,
-)
-
-
-_PLAINTEXT = _descriptor.Descriptor(
- name='PlainText',
- full_name='im.msg.msg_body.PlainText',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='str', full_name='im.msg.msg_body.PlainText.str', index=0,
- number=1, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='link', full_name='im.msg.msg_body.PlainText.link', index=1,
- number=2, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='attr_6_buf', full_name='im.msg.msg_body.PlainText.attr_6_buf', index=2,
- number=3, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='attr_7_buf', full_name='im.msg.msg_body.PlainText.attr_7_buf', index=3,
- number=4, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='buf', full_name='im.msg.msg_body.PlainText.buf', index=4,
- number=11, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='pb_reserve', full_name='im.msg.msg_body.PlainText.pb_reserve', index=5,
- number=12, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=12273,
- serialized_end=12384,
-)
-
-
-_TIPSINFO = _descriptor.Descriptor(
- name='TipsInfo',
- full_name='im.msg.msg_body.TipsInfo',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='text', full_name='im.msg.msg_body.TipsInfo.text', index=0,
- number=1, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=12386,
- serialized_end=12410,
-)
-
-
-_TMPPTT = _descriptor.Descriptor(
- name='TmpPtt',
- full_name='im.msg.msg_body.TmpPtt',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='file_type', full_name='im.msg.msg_body.TmpPtt.file_type', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='file_uuid', full_name='im.msg.msg_body.TmpPtt.file_uuid', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='file_md5', full_name='im.msg.msg_body.TmpPtt.file_md5', index=2,
- number=3, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='file_name', full_name='im.msg.msg_body.TmpPtt.file_name', index=3,
- number=4, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='file_size', full_name='im.msg.msg_body.TmpPtt.file_size', index=4,
- number=5, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='ptt_times', full_name='im.msg.msg_body.TmpPtt.ptt_times', index=5,
- number=6, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='user_type', full_name='im.msg.msg_body.TmpPtt.user_type', index=6,
- number=7, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='ptttrans_flag', full_name='im.msg.msg_body.TmpPtt.ptttrans_flag', index=7,
- number=8, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='busi_type', full_name='im.msg.msg_body.TmpPtt.busi_type', index=8,
- number=9, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='msg_id', full_name='im.msg.msg_body.TmpPtt.msg_id', index=9,
- number=10, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='pb_reserve', full_name='im.msg.msg_body.TmpPtt.pb_reserve', index=10,
- number=30, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='ptt_encode_data', full_name='im.msg.msg_body.TmpPtt.ptt_encode_data', index=11,
- number=31, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=12413,
- serialized_end=12656,
-)
-
-
-_TRANS211TMPMSG = _descriptor.Descriptor(
- name='Trans211TmpMsg',
- full_name='im.msg.msg_body.Trans211TmpMsg',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='msg_body', full_name='im.msg.msg_body.Trans211TmpMsg.msg_body', index=0,
- number=1, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='c2c_cmd', full_name='im.msg.msg_body.Trans211TmpMsg.c2c_cmd', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=12658,
- serialized_end=12709,
-)
-
-
-_TRANSELEM = _descriptor.Descriptor(
- name='TransElem',
- full_name='im.msg.msg_body.TransElem',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='elem_type', full_name='im.msg.msg_body.TransElem.elem_type', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='elem_value', full_name='im.msg.msg_body.TransElem.elem_value', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=12711,
- serialized_end=12761,
-)
-
-
-_VIDEOFILE = _descriptor.Descriptor(
- name='VideoFile',
- full_name='im.msg.msg_body.VideoFile',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='file_uuid', full_name='im.msg.msg_body.VideoFile.file_uuid', index=0,
- number=1, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='file_md5', full_name='im.msg.msg_body.VideoFile.file_md5', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='file_name', full_name='im.msg.msg_body.VideoFile.file_name', index=2,
- number=3, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='file_format', full_name='im.msg.msg_body.VideoFile.file_format', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='file_time', full_name='im.msg.msg_body.VideoFile.file_time', index=4,
- number=5, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='file_size', full_name='im.msg.msg_body.VideoFile.file_size', index=5,
- number=6, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='thumb_width', full_name='im.msg.msg_body.VideoFile.thumb_width', index=6,
- number=7, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='thumb_height', full_name='im.msg.msg_body.VideoFile.thumb_height', index=7,
- number=8, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='thumb_file_md5', full_name='im.msg.msg_body.VideoFile.thumb_file_md5', index=8,
- number=9, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='source', full_name='im.msg.msg_body.VideoFile.source', index=9,
- number=10, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='thumb_file_size', full_name='im.msg.msg_body.VideoFile.thumb_file_size', index=10,
- number=11, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='busi_type', full_name='im.msg.msg_body.VideoFile.busi_type', index=11,
- number=12, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='from_chat_type', full_name='im.msg.msg_body.VideoFile.from_chat_type', index=12,
- number=13, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='to_chat_type', full_name='im.msg.msg_body.VideoFile.to_chat_type', index=13,
- number=14, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='support_progressive', full_name='im.msg.msg_body.VideoFile.support_progressive', index=14,
- number=15, type=8, cpp_type=7, label=1,
- has_default_value=False, default_value=False,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='file_width', full_name='im.msg.msg_body.VideoFile.file_width', index=15,
- number=16, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='file_height', full_name='im.msg.msg_body.VideoFile.file_height', index=16,
- number=17, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='sub_busi_type', full_name='im.msg.msg_body.VideoFile.sub_busi_type', index=17,
- number=18, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='video_attr', full_name='im.msg.msg_body.VideoFile.video_attr', index=18,
- number=19, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='thumb_file_urls', full_name='im.msg.msg_body.VideoFile.thumb_file_urls', index=19,
- number=20, type=12, cpp_type=9, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='video_file_urls', full_name='im.msg.msg_body.VideoFile.video_file_urls', index=20,
- number=21, type=12, cpp_type=9, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='thumb_download_flag', full_name='im.msg.msg_body.VideoFile.thumb_download_flag', index=21,
- number=22, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='video_download_flag', full_name='im.msg.msg_body.VideoFile.video_download_flag', index=22,
- number=23, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='pb_reserve', full_name='im.msg.msg_body.VideoFile.pb_reserve', index=23,
- number=24, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=12764,
- serialized_end=13304,
-)
-
-
-_WORKFLOWNOTIFYMSG = _descriptor.Descriptor(
- name='WorkflowNotifyMsg',
- full_name='im.msg.msg_body.WorkflowNotifyMsg',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='ext_msg', full_name='im.msg.msg_body.WorkflowNotifyMsg.ext_msg', index=0,
- number=1, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='create_uin', full_name='im.msg.msg_body.WorkflowNotifyMsg.create_uin', index=1,
- number=2, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=13306,
- serialized_end=13362,
-)
-
-
-_LOCATIONINFO = _descriptor.Descriptor(
- name='LocationInfo',
- full_name='im.msg.msg_body.LocationInfo',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='longitude', full_name='im.msg.msg_body.LocationInfo.longitude', index=0,
- number=1, type=1, cpp_type=5, label=1,
- has_default_value=False, default_value=float(0),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='latitude', full_name='im.msg.msg_body.LocationInfo.latitude', index=1,
- number=2, type=1, cpp_type=5, label=1,
- has_default_value=False, default_value=float(0),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='desc', full_name='im.msg.msg_body.LocationInfo.desc', index=2,
- number=3, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=13364,
- serialized_end=13429,
-)
-
-_ELEM.fields_by_name['text'].message_type = _PLAINTEXT
-_ELEM.fields_by_name['face'].message_type = _FACE
-_ELEM.fields_by_name['online_image'].message_type = _ONLINEIMAGE
-_ELEM.fields_by_name['not_online_image'].message_type = _NOTONLINEIMAGE
-_ELEM.fields_by_name['trans_elem_info'].message_type = _TRANSELEM
-_ELEM.fields_by_name['market_face'].message_type = _MARKETFACE
-_ELEM.fields_by_name['elem_flags'].message_type = _ELEMFLAGS
-_ELEM.fields_by_name['custom_face'].message_type = _CUSTOMFACE
-_ELEM.fields_by_name['elem_flags2'].message_type = _ELEMFLAGS2
-_ELEM.fields_by_name['fun_face'].message_type = _FUNFACE
-_ELEM.fields_by_name['secret_file'].message_type = _SECRETFILEMSG
-_ELEM.fields_by_name['rich_msg'].message_type = _RICHMSG
-_ELEM.fields_by_name['group_file'].message_type = _GROUPFILE
-_ELEM.fields_by_name['pub_group'].message_type = _PUBGROUP
-_ELEM.fields_by_name['market_trans'].message_type = _MARKETTRANS
-_ELEM.fields_by_name['extra_info'].message_type = _EXTRAINFO
-_ELEM.fields_by_name['shake_window'].message_type = _SHAKEWINDOW
-_ELEM.fields_by_name['pub_account'].message_type = _PUBACCOUNT
-_ELEM.fields_by_name['video_file'].message_type = _VIDEOFILE
-_ELEM.fields_by_name['tips_info'].message_type = _TIPSINFO
-_ELEM.fields_by_name['anon_group_msg'].message_type = _ANONYMOUSGROUPMSG
-_ELEM.fields_by_name['qq_live_old'].message_type = _QQLIVEOLD
-_ELEM.fields_by_name['life_online'].message_type = _LIFEONLINEACCOUNT
-_ELEM.fields_by_name['qqwallet_msg'].message_type = _QQWALLETMSG
-_ELEM.fields_by_name['crm_elem'].message_type = _CRMELEM
-_ELEM.fields_by_name['conference_tips_info'].message_type = _CONFERENCETIPSINFO
-_ELEM.fields_by_name['redbag_info'].message_type = _REDBAGINFO
-_ELEM.fields_by_name['low_version_tips'].message_type = _LOWVERSIONTIPS
-_ELEM.fields_by_name['near_by_msg'].message_type = _NEARBYMESSAGETYPE
-_ELEM.fields_by_name['custom_elem'].message_type = _CUSTOMELEM
-_ELEM.fields_by_name['location_info'].message_type = _LOCATIONINFO
-_ELEM.fields_by_name['pub_acc_info'].message_type = _PUBACCINFO
-_ELEM.fields_by_name['small_emoji'].message_type = _SMALLEMOJI
-_ELEM.fields_by_name['fsj_msg_elem'].message_type = _FSJMESSAGEELEM
-_ELEM.fields_by_name['ark_app'].message_type = _ARKAPPELEM
-_ELEM.fields_by_name['general_flags'].message_type = _GENERALFLAGS
-_ELEM.fields_by_name['hc_flash_pic'].message_type = _CUSTOMFACE
-_ELEM.fields_by_name['deliver_gift_msg'].message_type = _DELIVERGIFTMSG
-_ELEM.fields_by_name['bitapp_msg'].message_type = _BITAPPMSG
-_ELEM.fields_by_name['open_qq_data'].message_type = _OPENQQDATA
-_ELEM.fields_by_name['apollo_msg'].message_type = _APOLLOACTMSG
-_ELEM.fields_by_name['group_pub_acc_info'].message_type = _GROUPPUBACCOUNTINFO
-_ELEM.fields_by_name['bless_msg'].message_type = _BLESSINGMESSAGE
-_ELEM.fields_by_name['src_msg'].message_type = _SOURCEMSG
-_ELEM.fields_by_name['lola_msg'].message_type = _LOLAMSG
-_ELEM.fields_by_name['group_business_msg'].message_type = _GROUPBUSINESSMSG
-_ELEM.fields_by_name['workflow_notify'].message_type = _WORKFLOWNOTIFYMSG
-_ELEM.fields_by_name['pat_elem'].message_type = _PATSELEM
-_ELEM.fields_by_name['group_post_elem'].message_type = _GROUPPOSTELEM
-_ELEM.fields_by_name['light_app'].message_type = _LIGHTAPPELEM
-_ELEM.fields_by_name['eim_info'].message_type = _EIMINFO
-_ELEM.fields_by_name['common_elem'].message_type = _COMMONELEM
-_ELEMFLAGS2.fields_by_name['insts'].message_type = _INST
-_ELEMFLAGS2.fields_by_name['src_inst'].message_type = _INST
-_ELEMFLAGS2.fields_by_name['pc_support_def'].message_type = _PCSUPPORTDEF
-_FUNFACE.fields_by_name['turntable'].message_type = _TURNTABLE
-_FUNFACE.fields_by_name['bomb'].message_type = _BOMB
-_MSGBODY.fields_by_name['rich_text'].message_type = _RICHTEXT
-_MSGBODY_SUBTYPE4.fields_by_name['not_online_file'].message_type = _NOTONLINEFILE
-_QQWALLETAIOBODY.fields_by_name['sender'].message_type = _QQWALLETAIOELEM
-_QQWALLETAIOBODY.fields_by_name['receiver'].message_type = _QQWALLETAIOELEM
-_QQWALLETMSG.fields_by_name['aio_body'].message_type = _QQWALLETAIOBODY
-_RICHTEXT.fields_by_name['attr'].message_type = _ATTR
-_RICHTEXT.fields_by_name['elems'].message_type = _ELEM
-_RICHTEXT.fields_by_name['not_online_file'].message_type = _NOTONLINEFILE
-_RICHTEXT.fields_by_name['ptt'].message_type = _PTT
-_RICHTEXT.fields_by_name['tmp_ptt'].message_type = _TMPPTT
-_RICHTEXT.fields_by_name['trans_211_tmp_msg'].message_type = _TRANS211TMPMSG
-_SECRETFILEMSG.fields_by_name['not_online_image'].message_type = _NOTONLINEIMAGE
-_SECRETFILEMSG.fields_by_name['elem_flags2'].message_type = _ELEMFLAGS2
-_SOURCEMSG.fields_by_name['elems'].message_type = _ELEM
-DESCRIPTOR.message_types_by_name['AnonymousGroupMsg'] = _ANONYMOUSGROUPMSG
-DESCRIPTOR.message_types_by_name['ApolloActMsg'] = _APOLLOACTMSG
-DESCRIPTOR.message_types_by_name['ArkAppElem'] = _ARKAPPELEM
-DESCRIPTOR.message_types_by_name['Attr'] = _ATTR
-DESCRIPTOR.message_types_by_name['BitAppMsg'] = _BITAPPMSG
-DESCRIPTOR.message_types_by_name['BlessingMessage'] = _BLESSINGMESSAGE
-DESCRIPTOR.message_types_by_name['CommonElem'] = _COMMONELEM
-DESCRIPTOR.message_types_by_name['ConferenceTipsInfo'] = _CONFERENCETIPSINFO
-DESCRIPTOR.message_types_by_name['CrmElem'] = _CRMELEM
-DESCRIPTOR.message_types_by_name['CustomElem'] = _CUSTOMELEM
-DESCRIPTOR.message_types_by_name['CustomFace'] = _CUSTOMFACE
-DESCRIPTOR.message_types_by_name['DeliverGiftMsg'] = _DELIVERGIFTMSG
-DESCRIPTOR.message_types_by_name['EIMInfo'] = _EIMINFO
-DESCRIPTOR.message_types_by_name['Elem'] = _ELEM
-DESCRIPTOR.message_types_by_name['ElemFlags'] = _ELEMFLAGS
-DESCRIPTOR.message_types_by_name['ElemFlags2'] = _ELEMFLAGS2
-DESCRIPTOR.message_types_by_name['Inst'] = _INST
-DESCRIPTOR.message_types_by_name['ExtraInfo'] = _EXTRAINFO
-DESCRIPTOR.message_types_by_name['FSJMessageElem'] = _FSJMESSAGEELEM
-DESCRIPTOR.message_types_by_name['Face'] = _FACE
-DESCRIPTOR.message_types_by_name['FunFace'] = _FUNFACE
-DESCRIPTOR.message_types_by_name['Bomb'] = _BOMB
-DESCRIPTOR.message_types_by_name['Turntable'] = _TURNTABLE
-DESCRIPTOR.message_types_by_name['GeneralFlags'] = _GENERALFLAGS
-DESCRIPTOR.message_types_by_name['GroupBusinessMsg'] = _GROUPBUSINESSMSG
-DESCRIPTOR.message_types_by_name['GroupFile'] = _GROUPFILE
-DESCRIPTOR.message_types_by_name['GroupPostElem'] = _GROUPPOSTELEM
-DESCRIPTOR.message_types_by_name['GroupPubAccountInfo'] = _GROUPPUBACCOUNTINFO
-DESCRIPTOR.message_types_by_name['LifeOnlineAccount'] = _LIFEONLINEACCOUNT
-DESCRIPTOR.message_types_by_name['LightAppElem'] = _LIGHTAPPELEM
-DESCRIPTOR.message_types_by_name['LolaMsg'] = _LOLAMSG
-DESCRIPTOR.message_types_by_name['LowVersionTips'] = _LOWVERSIONTIPS
-DESCRIPTOR.message_types_by_name['MarketFace'] = _MARKETFACE
-DESCRIPTOR.message_types_by_name['MarketTrans'] = _MARKETTRANS
-DESCRIPTOR.message_types_by_name['MsgBody'] = _MSGBODY
-DESCRIPTOR.message_types_by_name['MsgBody_subtype4'] = _MSGBODY_SUBTYPE4
-DESCRIPTOR.message_types_by_name['NearByMessageType'] = _NEARBYMESSAGETYPE
-DESCRIPTOR.message_types_by_name['NotOnlineFile'] = _NOTONLINEFILE
-DESCRIPTOR.message_types_by_name['NotOnlineImage'] = _NOTONLINEIMAGE
-DESCRIPTOR.message_types_by_name['OnlineImage'] = _ONLINEIMAGE
-DESCRIPTOR.message_types_by_name['OpenQQData'] = _OPENQQDATA
-DESCRIPTOR.message_types_by_name['PatsElem'] = _PATSELEM
-DESCRIPTOR.message_types_by_name['PcSupportDef'] = _PCSUPPORTDEF
-DESCRIPTOR.message_types_by_name['Ptt'] = _PTT
-DESCRIPTOR.message_types_by_name['PubAccInfo'] = _PUBACCINFO
-DESCRIPTOR.message_types_by_name['PubAccount'] = _PUBACCOUNT
-DESCRIPTOR.message_types_by_name['PubGroup'] = _PUBGROUP
-DESCRIPTOR.message_types_by_name['QQLiveOld'] = _QQLIVEOLD
-DESCRIPTOR.message_types_by_name['QQWalletAioBody'] = _QQWALLETAIOBODY
-DESCRIPTOR.message_types_by_name['QQWalletAioElem'] = _QQWALLETAIOELEM
-DESCRIPTOR.message_types_by_name['QQWalletMsg'] = _QQWALLETMSG
-DESCRIPTOR.message_types_by_name['RedBagInfo'] = _REDBAGINFO
-DESCRIPTOR.message_types_by_name['RichMsg'] = _RICHMSG
-DESCRIPTOR.message_types_by_name['RichText'] = _RICHTEXT
-DESCRIPTOR.message_types_by_name['SecretFileMsg'] = _SECRETFILEMSG
-DESCRIPTOR.message_types_by_name['ShakeWindow'] = _SHAKEWINDOW
-DESCRIPTOR.message_types_by_name['SmallEmoji'] = _SMALLEMOJI
-DESCRIPTOR.message_types_by_name['SourceMsg'] = _SOURCEMSG
-DESCRIPTOR.message_types_by_name['PlainText'] = _PLAINTEXT
-DESCRIPTOR.message_types_by_name['TipsInfo'] = _TIPSINFO
-DESCRIPTOR.message_types_by_name['TmpPtt'] = _TMPPTT
-DESCRIPTOR.message_types_by_name['Trans211TmpMsg'] = _TRANS211TMPMSG
-DESCRIPTOR.message_types_by_name['TransElem'] = _TRANSELEM
-DESCRIPTOR.message_types_by_name['VideoFile'] = _VIDEOFILE
-DESCRIPTOR.message_types_by_name['WorkflowNotifyMsg'] = _WORKFLOWNOTIFYMSG
-DESCRIPTOR.message_types_by_name['LocationInfo'] = _LOCATIONINFO
-_sym_db.RegisterFileDescriptor(DESCRIPTOR)
-
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%cai/pb/im/msg/msg_body/msg_body.proto\x12\x0fim.msg.msg_body\"\x99\x01\n\x11\x41nonymousGroupMsg\x12\r\n\x05\x66lags\x18\x01 \x01(\r\x12\x0f\n\x07\x61non_id\x18\x02 \x01(\x0c\x12\x11\n\tanon_nick\x18\x03 \x01(\x0c\x12\x15\n\rhead_portrait\x18\x04 \x01(\r\x12\x13\n\x0b\x65xpire_time\x18\x05 \x01(\r\x12\x11\n\tbubble_id\x18\x06 \x01(\r\x12\x12\n\nrank_color\x18\x07 \x01(\x0c\"\x90\x02\n\x0c\x41polloActMsg\x12\x11\n\taction_id\x18\x01 \x01(\r\x12\x13\n\x0b\x61\x63tion_name\x18\x02 \x01(\x0c\x12\x13\n\x0b\x61\x63tion_text\x18\x03 \x01(\x0c\x12\x0c\n\x04\x66lag\x18\x04 \x01(\r\x12\x10\n\x08peer_uin\x18\x05 \x01(\r\x12\x11\n\tsender_ts\x18\x06 \x01(\r\x12\x0f\n\x07peer_ts\x18\x07 \x01(\r\x12\x15\n\rsender_status\x18\x08 \x01(\x05\x12\x13\n\x0bpeer_status\x18\t \x01(\x05\x12\x12\n\ndiytext_id\x18\n \x01(\r\x12\x17\n\x0f\x64iytext_content\x18\x0b \x01(\x0c\x12\x12\n\ninput_text\x18\x0c \x01(\x0c\x12\x12\n\npb_reserve\x18\r \x01(\x0c\"W\n\nArkAppElem\x12\x10\n\x08\x61pp_name\x18\x01 \x01(\t\x12\x13\n\x0bmin_version\x18\x02 \x01(\t\x12\x14\n\x0cxml_template\x18\x03 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x04 \x01(\x0c\"\xb9\x01\n\x04\x41ttr\x12\x11\n\tcode_page\x18\x01 \x01(\x11\x12\x0c\n\x04time\x18\x02 \x01(\r\x12\x0e\n\x06random\x18\x03 \x01(\r\x12\r\n\x05\x63olor\x18\x04 \x01(\r\x12\x0c\n\x04size\x18\x05 \x01(\r\x12\x0e\n\x06\x65\x66\x66\x65\x63t\x18\x06 \x01(\r\x12\x10\n\x08\x63har_set\x18\x07 \x01(\r\x12\x18\n\x10pitch_and_family\x18\x08 \x01(\r\x12\x11\n\tfont_name\x18\t \x01(\t\x12\x14\n\x0creserve_data\x18\n \x01(\x0c\"\x18\n\tBitAppMsg\x12\x0b\n\x03\x62uf\x18\x01 \x01(\x0c\"4\n\x0f\x42lessingMessage\x12\x10\n\x08msg_type\x18\x01 \x01(\r\x12\x0f\n\x07\x65x_flag\x18\x02 \x01(\r\"J\n\nCommonElem\x12\x14\n\x0cservice_type\x18\x01 \x01(\r\x12\x0f\n\x07pb_elem\x18\x02 \x01(\x0c\x12\x15\n\rbusiness_type\x18\x03 \x01(\r\"M\n\x12\x43onferenceTipsInfo\x12\x14\n\x0csession_type\x18\x01 \x01(\r\x12\x13\n\x0bsession_uin\x18\x02 \x01(\x04\x12\x0c\n\x04text\x18\x03 \x01(\t\"i\n\x07\x43rmElem\x12\x0f\n\x07\x63rm_buf\x18\x01 \x01(\x0c\x12\x11\n\tmsg_resid\x18\x02 \x01(\x0c\x12\x13\n\x0bqidian_flag\x18\x03 \x01(\r\x12\x11\n\tpush_flag\x18\x04 \x01(\r\x12\x12\n\ncount_flag\x18\x05 \x01(\r\"W\n\nCustomElem\x12\x0c\n\x04\x64\x65sc\x18\x01 \x01(\x0c\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\x12\x11\n\tenum_type\x18\x03 \x01(\r\x12\x0b\n\x03\x65xt\x18\x04 \x01(\x0c\x12\r\n\x05sound\x18\x05 \x01(\x0c\"\xf1\x04\n\nCustomFace\x12\x0c\n\x04guid\x18\x01 \x01(\x0c\x12\x11\n\tfile_path\x18\x02 \x01(\t\x12\x10\n\x08shortcut\x18\x03 \x01(\t\x12\x0e\n\x06\x62uffer\x18\x04 \x01(\x0c\x12\x0c\n\x04\x66lag\x18\x05 \x01(\x0c\x12\x10\n\x08old_data\x18\x06 \x01(\x0c\x12\x0f\n\x07\x66ile_id\x18\x07 \x01(\r\x12\x11\n\tserver_ip\x18\x08 \x01(\r\x12\x13\n\x0bserver_port\x18\t \x01(\r\x12\x11\n\tfile_type\x18\n \x01(\r\x12\x11\n\tsignature\x18\x0b \x01(\x0c\x12\x0e\n\x06useful\x18\x0c \x01(\r\x12\x0b\n\x03md5\x18\r \x01(\x0c\x12\x11\n\tthumb_url\x18\x0e \x01(\t\x12\x0f\n\x07\x62ig_url\x18\x0f \x01(\t\x12\x10\n\x08orig_url\x18\x10 \x01(\t\x12\x10\n\x08\x62iz_type\x18\x11 \x01(\r\x12\x14\n\x0crepeat_index\x18\x12 \x01(\r\x12\x14\n\x0crepeat_image\x18\x13 \x01(\r\x12\x12\n\nimage_type\x18\x14 \x01(\r\x12\r\n\x05index\x18\x15 \x01(\r\x12\r\n\x05width\x18\x16 \x01(\r\x12\x0e\n\x06height\x18\x17 \x01(\r\x12\x0e\n\x06source\x18\x18 \x01(\r\x12\x0c\n\x04size\x18\x19 \x01(\r\x12\x0e\n\x06origin\x18\x1a \x01(\r\x12\x13\n\x0bthumb_width\x18\x1b \x01(\r\x12\x14\n\x0cthumb_height\x18\x1c \x01(\r\x12\x10\n\x08show_len\x18\x1d \x01(\r\x12\x14\n\x0c\x64ownload_len\x18\x1e \x01(\r\x12\x10\n\x08_400_url\x18\x1f \x01(\t\x12\x12\n\n_400_width\x18 \x01(\r\x12\x13\n\x0b_400_height\x18! \x01(\r\x12\x12\n\npb_reserve\x18\" \x01(\x0c\"\xb6\x04\n\x0e\x44\x65liverGiftMsg\x12\x18\n\x10gray_tip_content\x18\x01 \x01(\x0c\x12\x1c\n\x14\x61nimation_package_id\x18\x02 \x01(\r\x12\x1f\n\x17\x61nimation_package_url_a\x18\x03 \x01(\x0c\x12\x1f\n\x17\x61nimation_package_url_i\x18\x04 \x01(\x0c\x12\x14\n\x0cremind_brief\x18\x05 \x01(\x0c\x12\x0f\n\x07gift_id\x18\x06 \x01(\r\x12\x12\n\ngift_count\x18\x07 \x01(\r\x12\x17\n\x0f\x61nimation_brief\x18\x08 \x01(\x0c\x12\x12\n\nsender_uin\x18\t \x01(\x04\x12\x14\n\x0creceiver_uin\x18\n \x01(\x04\x12\x17\n\x0fstmessage_title\x18\x0b \x01(\x0c\x12\x1a\n\x12stmessage_subtitle\x18\x0c \x01(\x0c\x12\x19\n\x11stmessage_message\x18\r \x01(\x0c\x12\x1b\n\x13stmessage_giftpicid\x18\x0e \x01(\r\x12\x1a\n\x12stmessage_comefrom\x18\x0f \x01(\x0c\x12\x18\n\x10stmessage_exflag\x18\x10 \x01(\r\x12\x16\n\x0eto_all_gift_id\x18\x11 \x01(\x0c\x12\x15\n\rcomefrom_link\x18\x12 \x01(\x0c\x12\x12\n\npb_reserve\x18\x13 \x01(\x0c\x12\x15\n\rreceiver_name\x18\x14 \x01(\x0c\x12\x14\n\x0creceiver_pic\x18\x15 \x01(\x0c\x12\x19\n\x11stmessage_gifturl\x18\x16 \x01(\x0c\"(\n\x07\x45IMInfo\x12\x0f\n\x07root_id\x18\x01 \x01(\x04\x12\x0c\n\x04\x66lag\x18\x02 \x01(\r\"\x8b\x15\n\x04\x45lem\x12(\n\x04text\x18\x01 \x01(\x0b\x32\x1a.im.msg.msg_body.PlainText\x12#\n\x04\x66\x61\x63\x65\x18\x02 \x01(\x0b\x32\x15.im.msg.msg_body.Face\x12\x32\n\x0conline_image\x18\x03 \x01(\x0b\x32\x1c.im.msg.msg_body.OnlineImage\x12\x39\n\x10not_online_image\x18\x04 \x01(\x0b\x32\x1f.im.msg.msg_body.NotOnlineImage\x12\x33\n\x0ftrans_elem_info\x18\x05 \x01(\x0b\x32\x1a.im.msg.msg_body.TransElem\x12\x30\n\x0bmarket_face\x18\x06 \x01(\x0b\x32\x1b.im.msg.msg_body.MarketFace\x12.\n\nelem_flags\x18\x07 \x01(\x0b\x32\x1a.im.msg.msg_body.ElemFlags\x12\x30\n\x0b\x63ustom_face\x18\x08 \x01(\x0b\x32\x1b.im.msg.msg_body.CustomFace\x12\x30\n\x0b\x65lem_flags2\x18\t \x01(\x0b\x32\x1b.im.msg.msg_body.ElemFlags2\x12*\n\x08\x66un_face\x18\n \x01(\x0b\x32\x18.im.msg.msg_body.FunFace\x12\x33\n\x0bsecret_file\x18\x0b \x01(\x0b\x32\x1e.im.msg.msg_body.SecretFileMsg\x12*\n\x08rich_msg\x18\x0c \x01(\x0b\x32\x18.im.msg.msg_body.RichMsg\x12.\n\ngroup_file\x18\r \x01(\x0b\x32\x1a.im.msg.msg_body.GroupFile\x12,\n\tpub_group\x18\x0e \x01(\x0b\x32\x19.im.msg.msg_body.PubGroup\x12\x32\n\x0cmarket_trans\x18\x0f \x01(\x0b\x32\x1c.im.msg.msg_body.MarketTrans\x12.\n\nextra_info\x18\x10 \x01(\x0b\x32\x1a.im.msg.msg_body.ExtraInfo\x12\x32\n\x0cshake_window\x18\x11 \x01(\x0b\x32\x1c.im.msg.msg_body.ShakeWindow\x12\x30\n\x0bpub_account\x18\x12 \x01(\x0b\x32\x1b.im.msg.msg_body.PubAccount\x12.\n\nvideo_file\x18\x13 \x01(\x0b\x32\x1a.im.msg.msg_body.VideoFile\x12,\n\ttips_info\x18\x14 \x01(\x0b\x32\x19.im.msg.msg_body.TipsInfo\x12:\n\x0e\x61non_group_msg\x18\x15 \x01(\x0b\x32\".im.msg.msg_body.AnonymousGroupMsg\x12/\n\x0bqq_live_old\x18\x16 \x01(\x0b\x32\x1a.im.msg.msg_body.QQLiveOld\x12\x37\n\x0blife_online\x18\x17 \x01(\x0b\x32\".im.msg.msg_body.LifeOnlineAccount\x12\x32\n\x0cqqwallet_msg\x18\x18 \x01(\x0b\x32\x1c.im.msg.msg_body.QQWalletMsg\x12*\n\x08\x63rm_elem\x18\x19 \x01(\x0b\x32\x18.im.msg.msg_body.CrmElem\x12\x41\n\x14\x63onference_tips_info\x18\x1a \x01(\x0b\x32#.im.msg.msg_body.ConferenceTipsInfo\x12\x30\n\x0bredbag_info\x18\x1b \x01(\x0b\x32\x1b.im.msg.msg_body.RedBagInfo\x12\x39\n\x10low_version_tips\x18\x1c \x01(\x0b\x32\x1f.im.msg.msg_body.LowVersionTips\x12\x1a\n\x12\x62\x61nkcode_ctrl_info\x18\x1d \x01(\x0c\x12\x37\n\x0bnear_by_msg\x18\x1e \x01(\x0b\x32\".im.msg.msg_body.NearByMessageType\x12\x30\n\x0b\x63ustom_elem\x18\x1f \x01(\x0b\x32\x1b.im.msg.msg_body.CustomElem\x12\x34\n\rlocation_info\x18 \x01(\x0b\x32\x1d.im.msg.msg_body.LocationInfo\x12\x31\n\x0cpub_acc_info\x18! \x01(\x0b\x32\x1b.im.msg.msg_body.PubAccInfo\x12\x30\n\x0bsmall_emoji\x18\" \x01(\x0b\x32\x1b.im.msg.msg_body.SmallEmoji\x12\x35\n\x0c\x66sj_msg_elem\x18# \x01(\x0b\x32\x1f.im.msg.msg_body.FSJMessageElem\x12,\n\x07\x61rk_app\x18$ \x01(\x0b\x32\x1b.im.msg.msg_body.ArkAppElem\x12\x34\n\rgeneral_flags\x18% \x01(\x0b\x32\x1d.im.msg.msg_body.GeneralFlags\x12\x31\n\x0chc_flash_pic\x18& \x01(\x0b\x32\x1b.im.msg.msg_body.CustomFace\x12\x39\n\x10\x64\x65liver_gift_msg\x18\' \x01(\x0b\x32\x1f.im.msg.msg_body.DeliverGiftMsg\x12.\n\nbitapp_msg\x18( \x01(\x0b\x32\x1a.im.msg.msg_body.BitAppMsg\x12\x31\n\x0copen_qq_data\x18) \x01(\x0b\x32\x1b.im.msg.msg_body.OpenQQData\x12\x31\n\napollo_msg\x18* \x01(\x0b\x32\x1d.im.msg.msg_body.ApolloActMsg\x12@\n\x12group_pub_acc_info\x18+ \x01(\x0b\x32$.im.msg.msg_body.GroupPubAccountInfo\x12\x33\n\tbless_msg\x18, \x01(\x0b\x32 .im.msg.msg_body.BlessingMessage\x12+\n\x07src_msg\x18- \x01(\x0b\x32\x1a.im.msg.msg_body.SourceMsg\x12*\n\x08lola_msg\x18. \x01(\x0b\x32\x18.im.msg.msg_body.LolaMsg\x12=\n\x12group_business_msg\x18/ \x01(\x0b\x32!.im.msg.msg_body.GroupBusinessMsg\x12;\n\x0fworkflow_notify\x18\x30 \x01(\x0b\x32\".im.msg.msg_body.WorkflowNotifyMsg\x12+\n\x08pat_elem\x18\x31 \x01(\x0b\x32\x19.im.msg.msg_body.PatsElem\x12\x37\n\x0fgroup_post_elem\x18\x32 \x01(\x0b\x32\x1e.im.msg.msg_body.GroupPostElem\x12\x30\n\tlight_app\x18\x33 \x01(\x0b\x32\x1d.im.msg.msg_body.LightAppElem\x12*\n\x08\x65im_info\x18\x34 \x01(\x0b\x32\x18.im.msg.msg_body.EIMInfo\x12\x30\n\x0b\x63ommon_elem\x18\x35 \x01(\x0b\x32\x1b.im.msg.msg_body.CommonElem\"2\n\tElemFlags\x12\x0e\n\x06\x66lags1\x18\x01 \x01(\x0c\x12\x15\n\rbusiness_data\x18\x02 \x01(\x0c\"\xfb\x02\n\nElemFlags2\x12\x15\n\rcolor_text_id\x18\x01 \x01(\r\x12\x0e\n\x06msg_id\x18\x02 \x01(\x04\x12\x1a\n\x12whisper_session_id\x18\x03 \x01(\r\x12\x16\n\x0eptt_change_bit\x18\x04 \x01(\r\x12\x12\n\nvip_status\x18\x05 \x01(\r\x12\x15\n\rcompatible_id\x18\x06 \x01(\r\x12$\n\x05insts\x18\x07 \x03(\x0b\x32\x15.im.msg.msg_body.Inst\x12\x13\n\x0bmsg_rpt_cnt\x18\x08 \x01(\r\x12\'\n\x08src_inst\x18\t \x01(\x0b\x32\x15.im.msg.msg_body.Inst\x12\x12\n\nlongtitude\x18\n \x01(\r\x12\x10\n\x08latitude\x18\x0b \x01(\r\x12\x13\n\x0b\x63ustom_font\x18\x0c \x01(\r\x12\x35\n\x0epc_support_def\x18\r \x01(\x0b\x32\x1d.im.msg.msg_body.PcSupportDef\x12\x11\n\tcrm_flags\x18\x0e \x01(\r\"\'\n\x04Inst\x12\x0e\n\x06\x61pp_id\x18\x01 \x01(\r\x12\x0f\n\x07inst_id\x18\x02 \x01(\r\"\xf3\x01\n\tExtraInfo\x12\x0c\n\x04nick\x18\x01 \x01(\x0c\x12\x12\n\ngroup_card\x18\x02 \x01(\x0c\x12\r\n\x05level\x18\x03 \x01(\r\x12\r\n\x05\x66lags\x18\x04 \x01(\r\x12\x12\n\ngroup_mask\x18\x05 \x01(\r\x12\x13\n\x0bmsg_tail_id\x18\x06 \x01(\r\x12\x14\n\x0csender_title\x18\x07 \x01(\x0c\x12\x11\n\tapns_tips\x18\x08 \x01(\x0c\x12\x0b\n\x03uin\x18\t \x01(\x04\x12\x16\n\x0emsg_state_flag\x18\n \x01(\r\x12\x17\n\x0f\x61pns_sound_type\x18\x0b \x01(\r\x12\x16\n\x0enew_group_flag\x18\x0c \x01(\r\"\"\n\x0e\x46SJMessageElem\x12\x10\n\x08msg_type\x18\x01 \x01(\r\"/\n\x04\x46\x61\x63\x65\x12\r\n\x05index\x18\x01 \x01(\r\x12\x0b\n\x03old\x18\x02 \x01(\x0c\x12\x0b\n\x03\x62uf\x18\x0b \x01(\x0c\"]\n\x07\x46unFace\x12-\n\tturntable\x18\x01 \x01(\x0b\x32\x1a.im.msg.msg_body.Turntable\x12#\n\x04\x62omb\x18\x02 \x01(\x0b\x32\x15.im.msg.msg_body.Bomb\"\x15\n\x04\x42omb\x12\r\n\x05\x62urst\x18\x01 \x01(\x08\"D\n\tTurntable\x12\x10\n\x08uin_list\x18\x01 \x03(\x04\x12\x0f\n\x07hit_uin\x18\x02 \x01(\x04\x12\x14\n\x0chit_uin_nick\x18\x03 \x01(\t\"\xb2\x03\n\x0cGeneralFlags\x12\x1a\n\x12\x62ubble_diy_text_id\x18\x01 \x01(\r\x12\x16\n\x0egroup_flag_new\x18\x02 \x01(\r\x12\x0b\n\x03uin\x18\x03 \x01(\x04\x12\r\n\x05rp_id\x18\x04 \x01(\x0c\x12\x10\n\x08prp_fold\x18\x05 \x01(\r\x12\x16\n\x0elong_text_flag\x18\x06 \x01(\r\x12\x17\n\x0flong_text_resid\x18\x07 \x01(\x0c\x12\x12\n\ngroup_type\x18\x08 \x01(\r\x12\x13\n\x0bto_uin_flag\x18\t \x01(\r\x12\x15\n\rglamour_level\x18\n \x01(\r\x12\x14\n\x0cmember_level\x18\x0b \x01(\r\x12\x16\n\x0egroup_rank_seq\x18\x0c \x01(\x04\x12\x15\n\rolympic_torch\x18\r \x01(\r\x12\x1e\n\x16\x62\x61\x62yq_guide_msg_cookie\x18\x0e \x01(\x0c\x12\x19\n\x11uin32_expert_flag\x18\x0f \x01(\r\x12\x15\n\rbubble_sub_id\x18\x10 \x01(\r\x12\x12\n\npendant_id\x18\x11 \x01(\x04\x12\x10\n\x08rp_index\x18\x12 \x01(\x0c\x12\x12\n\npb_reserve\x18\x13 \x01(\x0c\"\xa3\x01\n\x10GroupBusinessMsg\x12\r\n\x05\x66lags\x18\x01 \x01(\r\x12\x10\n\x08head_url\x18\x02 \x01(\x0c\x12\x14\n\x0chead_clk_url\x18\x03 \x01(\x0c\x12\x0c\n\x04nick\x18\x04 \x01(\x0c\x12\x12\n\nnick_color\x18\x05 \x01(\x0c\x12\x0c\n\x04rank\x18\x06 \x01(\x0c\x12\x12\n\nrank_color\x18\x07 \x01(\x0c\x12\x14\n\x0crank_bgcolor\x18\x08 \x01(\x0c\"\xc7\x01\n\tGroupFile\x12\x10\n\x08\x66ilename\x18\x01 \x01(\x0c\x12\x11\n\tfile_size\x18\x02 \x01(\x04\x12\x0f\n\x07\x66ile_id\x18\x03 \x01(\x0c\x12\x10\n\x08\x62\x61tch_id\x18\x04 \x01(\x0c\x12\x10\n\x08\x66ile_key\x18\x05 \x01(\x0c\x12\x0c\n\x04mark\x18\x06 \x01(\x0c\x12\x10\n\x08sequence\x18\x07 \x01(\x04\x12\x15\n\rbatch_item_id\x18\x08 \x01(\x0c\x12\x15\n\rfeed_msg_time\x18\t \x01(\r\x12\x12\n\npb_reserve\x18\n \x01(\x0c\"6\n\rGroupPostElem\x12\x12\n\ntrans_type\x18\x01 \x01(\r\x12\x11\n\ttrans_msg\x18\x02 \x01(\x0c\"*\n\x13GroupPubAccountInfo\x12\x13\n\x0bpub_account\x18\x01 \x01(\x04\"\xaf\x01\n\x11LifeOnlineAccount\x12\x11\n\tunique_id\x18\x01 \x01(\x04\x12\n\n\x02op\x18\x02 \x01(\r\x12\x11\n\tshow_time\x18\x03 \x01(\r\x12\x0e\n\x06report\x18\x04 \x01(\r\x12\x0b\n\x03\x61\x63k\x18\x05 \x01(\r\x12\x0e\n\x06\x62itmap\x18\x06 \x01(\x04\x12\x14\n\x0cgdt_imp_data\x18\x07 \x01(\x0c\x12\x14\n\x0cgdt_cli_data\x18\x08 \x01(\x0c\x12\x0f\n\x07view_id\x18\t \x01(\x0c\"/\n\x0cLightAppElem\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\x12\x11\n\tmsg_resid\x18\x02 \x01(\x0c\"`\n\x07LolaMsg\x12\x11\n\tmsg_resid\x18\x01 \x01(\x0c\x12\x16\n\x0e\x65ncode_content\x18\x02 \x01(\x0c\x12\x14\n\x0clong_msg_url\x18\x03 \x01(\x0c\x12\x14\n\x0c\x64ownload_key\x18\x04 \x01(\x0c\"r\n\x0eLowVersionTips\x12\x13\n\x0b\x62usiness_id\x18\x01 \x01(\r\x12\x14\n\x0csession_type\x18\x02 \x01(\r\x12\x13\n\x0bsession_uin\x18\x03 \x01(\x04\x12\x12\n\nsender_uin\x18\x04 \x01(\x04\x12\x0c\n\x04text\x18\x05 \x01(\t\"\xfc\x01\n\nMarketFace\x12\x11\n\tface_name\x18\x01 \x01(\x0c\x12\x11\n\titem_type\x18\x02 \x01(\r\x12\x11\n\tface_info\x18\x03 \x01(\r\x12\x0f\n\x07\x66\x61\x63\x65_id\x18\x04 \x01(\x0c\x12\x0e\n\x06tab_id\x18\x05 \x01(\r\x12\x10\n\x08sub_type\x18\x06 \x01(\r\x12\x0b\n\x03key\x18\x07 \x01(\x0c\x12\r\n\x05param\x18\x08 \x01(\x0c\x12\x12\n\nmedia_type\x18\t \x01(\r\x12\x13\n\x0bimage_width\x18\n \x01(\r\x12\x14\n\x0cimage_height\x18\x0b \x01(\r\x12\x13\n\x0bmobileparam\x18\x0c \x01(\x0c\x12\x12\n\npb_reserve\x18\r \x01(\x0c\"a\n\x0bMarketTrans\x12\x0c\n\x04\x66lag\x18\x01 \x01(\x05\x12\x0b\n\x03xml\x18\x02 \x01(\x0c\x12\x11\n\tmsg_resid\x18\x03 \x01(\x0c\x12\x0f\n\x07\x61\x62ility\x18\x04 \x01(\r\x12\x13\n\x0bmin_ability\x18\x05 \x01(\r\"a\n\x07MsgBody\x12,\n\trich_text\x18\x01 \x01(\x0b\x32\x19.im.msg.msg_body.RichText\x12\x0f\n\x07\x63ontent\x18\x02 \x01(\x0c\x12\x17\n\x0f\x65ncrypt_content\x18\x03 \x01(\x0c\"]\n\x10MsgBody_subtype4\x12\x37\n\x0fnot_online_file\x18\x01 \x01(\x0b\x32\x1e.im.msg.msg_body.NotOnlineFile\x12\x10\n\x08msg_time\x18\x02 \x01(\r\"8\n\x11NearByMessageType\x12\x0c\n\x04type\x18\x01 \x01(\r\x12\x15\n\ridentify_type\x18\x02 \x01(\r\"\x94\x03\n\rNotOnlineFile\x12\x11\n\tfile_type\x18\x01 \x01(\r\x12\x0b\n\x03sig\x18\x02 \x01(\x0c\x12\x11\n\tfile_uuid\x18\x03 \x01(\x0c\x12\x10\n\x08\x66ile_md5\x18\x04 \x01(\x0c\x12\x11\n\tfile_name\x18\x05 \x01(\x0c\x12\x11\n\tfile_size\x18\x06 \x01(\x04\x12\x0c\n\x04note\x18\x07 \x01(\x0c\x12\x10\n\x08reserved\x18\x08 \x01(\r\x12\x0e\n\x06subcmd\x18\t \x01(\r\x12\x13\n\x0bmicro_cloud\x18\n \x01(\r\x12\x11\n\tfile_urls\x18\x0b \x03(\x0c\x12\x15\n\rdownload_flag\x18\x0c \x01(\r\x12\x13\n\x0b\x64\x61nger_evel\x18\x32 \x01(\r\x12\x11\n\tlife_time\x18\x33 \x01(\r\x12\x13\n\x0bupload_time\x18\x34 \x01(\r\x12\x15\n\rabs_file_type\x18\x35 \x01(\r\x12\x13\n\x0b\x63lient_type\x18\x36 \x01(\r\x12\x13\n\x0b\x65xpire_time\x18\x37 \x01(\r\x12\x12\n\npb_reserve\x18\x38 \x01(\x0c\x12\x17\n\x0f\x66ileidcrc_media\x18\x39 \x01(\t\"\xbd\x04\n\x0eNotOnlineImage\x12\x11\n\tfile_path\x18\x01 \x01(\x0c\x12\x10\n\x08\x66ile_len\x18\x02 \x01(\r\x12\x15\n\rdownload_path\x18\x03 \x01(\x0c\x12\x19\n\x11old_ver_send_file\x18\x04 \x01(\x0c\x12\x10\n\x08img_type\x18\x05 \x01(\r\x12\x16\n\x0epreviews_image\x18\x06 \x01(\x0c\x12\x0f\n\x07pic_md5\x18\x07 \x01(\x0c\x12\x12\n\npic_height\x18\x08 \x01(\r\x12\x11\n\tpic_width\x18\t \x01(\r\x12\x0e\n\x06res_id\x18\n \x01(\x0c\x12\x0c\n\x04\x66lag\x18\x0b \x01(\x0c\x12\x11\n\tthumb_url\x18\x0c \x01(\t\x12\x10\n\x08original\x18\r \x01(\r\x12\x0f\n\x07\x62ig_url\x18\x0e \x01(\t\x12\x10\n\x08orig_url\x18\x0f \x01(\t\x12\x10\n\x08\x62iz_type\x18\x10 \x01(\r\x12\x0e\n\x06result\x18\x11 \x01(\r\x12\r\n\x05index\x18\x12 \x01(\r\x12\x13\n\x0bop_face_buf\x18\x13 \x01(\x0c\x12\x13\n\x0bold_pic_md5\x18\x14 \x01(\x08\x12\x13\n\x0bthumb_width\x18\x15 \x01(\r\x12\x14\n\x0cthumb_height\x18\x16 \x01(\r\x12\x0f\n\x07\x66ile_id\x18\x17 \x01(\r\x12\x10\n\x08show_len\x18\x18 \x01(\r\x12\x14\n\x0c\x64ownload_len\x18\x19 \x01(\r\x12\x10\n\x08_400_url\x18\x1a \x01(\t\x12\x12\n\n_400_width\x18\x1b \x01(\r\x12\x13\n\x0b_400_height\x18\x1c \x01(\r\x12\x12\n\npb_reserve\x18\x1d \x01(\x0c\"I\n\x0bOnlineImage\x12\x0c\n\x04guid\x18\x01 \x01(\x0c\x12\x11\n\tfile_path\x18\x02 \x01(\x0c\x12\x19\n\x11old_ver_send_file\x18\x03 \x01(\x0c\"!\n\nOpenQQData\x12\x13\n\x0b\x63\x61r_qq_data\x18\x01 \x01(\x0c\"/\n\x08PatsElem\x12\x10\n\x08pat_type\x18\x01 \x01(\r\x12\x11\n\tpat_count\x18\x02 \x01(\r\"\x94\x01\n\x0cPcSupportDef\x12\x14\n\x0cpc_ptl_begin\x18\x01 \x01(\r\x12\x12\n\npc_ptl_end\x18\x02 \x01(\r\x12\x15\n\rmac_ptl_begin\x18\x03 \x01(\r\x12\x13\n\x0bmac_ptl_end\x18\x04 \x01(\r\x12\x14\n\x0cptls_support\x18\x05 \x03(\r\x12\x18\n\x10ptls_not_support\x18\x06 \x03(\r\"\xca\x03\n\x03Ptt\x12\x11\n\tfile_type\x18\x01 \x01(\r\x12\x0f\n\x07src_uin\x18\x02 \x01(\x04\x12\x11\n\tfile_uuid\x18\x03 \x01(\x0c\x12\x10\n\x08\x66ile_md5\x18\x04 \x01(\x0c\x12\x11\n\tfile_name\x18\x05 \x01(\x0c\x12\x11\n\tfile_size\x18\x06 \x01(\r\x12\x0f\n\x07reserve\x18\x07 \x01(\x0c\x12\x0f\n\x07\x66ile_id\x18\x08 \x01(\r\x12\x11\n\tserver_ip\x18\t \x01(\r\x12\x13\n\x0bserver_port\x18\n \x01(\r\x12\r\n\x05valid\x18\x0b \x01(\x08\x12\x11\n\tsignature\x18\x0c \x01(\x0c\x12\x10\n\x08shortcut\x18\r \x01(\x0c\x12\x10\n\x08\x66ile_key\x18\x0e \x01(\x0c\x12\x17\n\x0fmagic_ptt_index\x18\x0f \x01(\r\x12\x14\n\x0cvoice_switch\x18\x10 \x01(\r\x12\x0f\n\x07ptt_url\x18\x11 \x01(\x0c\x12\x16\n\x0egroup_file_key\x18\x12 \x01(\x0c\x12\x0c\n\x04time\x18\x13 \x01(\r\x12\x11\n\tdown_para\x18\x14 \x01(\x0c\x12\x0e\n\x06\x66ormat\x18\x1d \x01(\r\x12\x12\n\npb_reserve\x18\x1e \x01(\x0c\x12\x10\n\x08ptt_urls\x18\x1f \x03(\x0c\x12\x15\n\rdownload_flag\x18 \x01(\r\"g\n\nPubAccInfo\x12\x14\n\x0cis_inter_num\x18\x01 \x01(\r\x12\x17\n\x0fmsg_template_id\x18\x02 \x01(\t\x12\x14\n\x0clong_msg_url\x18\x03 \x01(\t\x12\x14\n\x0c\x64ownload_key\x18\x04 \x01(\x0c\"2\n\nPubAccount\x12\x0b\n\x03\x62uf\x18\x01 \x01(\x0c\x12\x17\n\x0fpub_account_uin\x18\x02 \x01(\x04\"K\n\x08PubGroup\x12\x10\n\x08nickname\x18\x01 \x01(\x0c\x12\x0e\n\x06gender\x18\x02 \x01(\r\x12\x0b\n\x03\x61ge\x18\x03 \x01(\r\x12\x10\n\x08\x64istance\x18\x04 \x01(\r\"Q\n\tQQLiveOld\x12\x0f\n\x07sub_cmd\x18\x01 \x01(\r\x12\x11\n\tshow_text\x18\x02 \x01(\x0c\x12\r\n\x05param\x18\x03 \x01(\x0c\x12\x11\n\tintroduce\x18\x04 \x01(\x0c\"\xcd\x03\n\x0fQQWalletAioBody\x12\x0f\n\x07senduin\x18\x01 \x01(\x04\x12\x30\n\x06sender\x18\x02 \x01(\x0b\x32 .im.msg.msg_body.QQWalletAioElem\x12\x32\n\x08receiver\x18\x03 \x01(\x0b\x32 .im.msg.msg_body.QQWalletAioElem\x12\x11\n\tchannelid\x18\x04 \x01(\x11\x12\x12\n\ntemplateid\x18\x05 \x01(\x11\x12\x0e\n\x06resend\x18\x06 \x01(\r\x12\x14\n\x0cmsg_priority\x18\x07 \x01(\r\x12\x0f\n\x07redtype\x18\x08 \x01(\x11\x12\x0e\n\x06\x62illno\x18\t \x01(\x0c\x12\x0f\n\x07\x61uthkey\x18\n \x01(\x0c\x12\x13\n\x0bsessiontype\x18\x0b \x01(\x11\x12\x0f\n\x07msgtype\x18\x0c \x01(\x11\x12\x12\n\nenvelopeid\x18\r \x01(\x11\x12\x0c\n\x04name\x18\x0e \x01(\x0c\x12\x10\n\x08\x63onftype\x18\x0f \x01(\x11\x12\x10\n\x08msg_from\x18\x10 \x01(\x11\x12\x0f\n\x07pc_body\x18\x11 \x01(\x0c\x12\r\n\x05index\x18\x12 \x01(\x0c\x12\x12\n\nredchannel\x18\x13 \x01(\r\x12\x10\n\x08grap_uin\x18\x14 \x03(\x04\x12\x12\n\npb_reserve\x18\x15 \x01(\x0c\"\xb9\x03\n\x0fQQWalletAioElem\x12\x12\n\nbackground\x18\x01 \x01(\r\x12\x0c\n\x04icon\x18\x02 \x01(\r\x12\r\n\x05title\x18\x03 \x01(\x0c\x12\x10\n\x08subtitle\x18\x04 \x01(\x0c\x12\x0f\n\x07\x63ontent\x18\x05 \x01(\x0c\x12\x0f\n\x07linkurl\x18\x06 \x01(\x0c\x12\x13\n\x0b\x62lackstripe\x18\x07 \x01(\x0c\x12\x0e\n\x06notice\x18\x08 \x01(\x0c\x12\x13\n\x0btitle_color\x18\t \x01(\r\x12\x16\n\x0esubtitle_color\x18\n \x01(\r\x12\x18\n\x10\x61\x63tions_priority\x18\x0b \x01(\x0c\x12\x10\n\x08jump_url\x18\x0c \x01(\x0c\x12\x12\n\nnative_ios\x18\r \x01(\x0c\x12\x16\n\x0enative_android\x18\x0e \x01(\x0c\x12\x0f\n\x07iconurl\x18\x0f \x01(\x0c\x12\x15\n\rcontent_color\x18\x10 \x01(\r\x12\x17\n\x0f\x63ontent_bgcolor\x18\x11 \x01(\r\x12\x16\n\x0e\x61io_image_left\x18\x12 \x01(\x0c\x12\x17\n\x0f\x61io_image_right\x18\x13 \x01(\x0c\x12\x11\n\tcft_image\x18\x14 \x01(\x0c\x12\x12\n\npb_reserve\x18\x15 \x01(\x0c\"A\n\x0bQQWalletMsg\x12\x32\n\x08\x61io_body\x18\x01 \x01(\x0b\x32 .im.msg.msg_body.QQWalletAioBody\"!\n\nRedBagInfo\x12\x13\n\x0bredbag_type\x18\x01 \x01(\r\"n\n\x07RichMsg\x12\x12\n\ntemplate_1\x18\x01 \x01(\x0c\x12\x12\n\nservice_id\x18\x02 \x01(\r\x12\x11\n\tmsg_resid\x18\x03 \x01(\x0c\x12\x0c\n\x04rand\x18\x04 \x01(\r\x12\x0b\n\x03seq\x18\x05 \x01(\r\x12\r\n\x05\x66lags\x18\x06 \x01(\r\"\x97\x02\n\x08RichText\x12#\n\x04\x61ttr\x18\x01 \x01(\x0b\x32\x15.im.msg.msg_body.Attr\x12$\n\x05\x65lems\x18\x02 \x03(\x0b\x32\x15.im.msg.msg_body.Elem\x12\x37\n\x0fnot_online_file\x18\x03 \x01(\x0b\x32\x1e.im.msg.msg_body.NotOnlineFile\x12!\n\x03ptt\x18\x04 \x01(\x0b\x32\x14.im.msg.msg_body.Ptt\x12(\n\x07tmp_ptt\x18\x05 \x01(\x0b\x32\x17.im.msg.msg_body.TmpPtt\x12:\n\x11trans_211_tmp_msg\x18\x06 \x01(\x0b\x32\x1f.im.msg.msg_body.Trans211TmpMsg\"\xf5\x02\n\rSecretFileMsg\x12\x10\n\x08\x66ile_key\x18\x01 \x01(\x0c\x12\x10\n\x08\x66rom_uin\x18\x02 \x01(\x04\x12\x0e\n\x06to_uin\x18\x03 \x01(\x04\x12\x0e\n\x06status\x18\x04 \x01(\r\x12\x0b\n\x03ttl\x18\x05 \x01(\r\x12\x0c\n\x04type\x18\x06 \x01(\r\x12\x1e\n\x16\x65ncrypt_prehead_length\x18\x07 \x01(\r\x12\x14\n\x0c\x65ncrypt_type\x18\x08 \x01(\r\x12\x13\n\x0b\x65ncrypt_key\x18\t \x01(\x0c\x12\x12\n\nread_times\x18\n \x01(\r\x12\x11\n\tleft_time\x18\x0b \x01(\r\x12\x39\n\x10not_online_image\x18\x0c \x01(\x0b\x32\x1f.im.msg.msg_body.NotOnlineImage\x12\x30\n\x0b\x65lem_flags2\x18\r \x01(\x0b\x32\x1b.im.msg.msg_body.ElemFlags2\x12\x10\n\x08opertype\x18\x0e \x01(\r\x12\x14\n\x0c\x66romphonenum\x18\x0f \x01(\t\"9\n\x0bShakeWindow\x12\x0c\n\x04type\x18\x01 \x01(\r\x12\x0f\n\x07reserve\x18\x02 \x01(\r\x12\x0b\n\x03uin\x18\x03 \x01(\x04\"5\n\nSmallEmoji\x12\x13\n\x0bpack_id_sum\x18\x01 \x01(\r\x12\x12\n\nimage_type\x18\x02 \x01(\r\"\xdd\x01\n\tSourceMsg\x12\x11\n\torig_seqs\x18\x01 \x03(\r\x12\x12\n\nsender_uin\x18\x02 \x01(\x04\x12\x0c\n\x04time\x18\x03 \x01(\r\x12\x0c\n\x04\x66lag\x18\x04 \x01(\r\x12$\n\x05\x65lems\x18\x05 \x03(\x0b\x32\x15.im.msg.msg_body.Elem\x12\x0c\n\x04type\x18\x06 \x01(\r\x12\x10\n\x08rich_msg\x18\x07 \x01(\x0c\x12\x12\n\npb_reserve\x18\x08 \x01(\x0c\x12\x0f\n\x07src_msg\x18\t \x01(\x0c\x12\x0e\n\x06to_uin\x18\n \x01(\x04\x12\x12\n\ntroop_name\x18\x0b \x01(\x0c\"o\n\tPlainText\x12\x0b\n\x03str\x18\x01 \x01(\x0c\x12\x0c\n\x04link\x18\x02 \x01(\t\x12\x12\n\nattr_6_buf\x18\x03 \x01(\x0c\x12\x12\n\nattr_7_buf\x18\x04 \x01(\x0c\x12\x0b\n\x03\x62uf\x18\x0b \x01(\x0c\x12\x12\n\npb_reserve\x18\x0c \x01(\x0c\"\x18\n\x08TipsInfo\x12\x0c\n\x04text\x18\x01 \x01(\t\"\xf3\x01\n\x06TmpPtt\x12\x11\n\tfile_type\x18\x01 \x01(\r\x12\x11\n\tfile_uuid\x18\x02 \x01(\x0c\x12\x10\n\x08\x66ile_md5\x18\x03 \x01(\x0c\x12\x11\n\tfile_name\x18\x04 \x01(\x0c\x12\x11\n\tfile_size\x18\x05 \x01(\r\x12\x11\n\tptt_times\x18\x06 \x01(\r\x12\x11\n\tuser_type\x18\x07 \x01(\r\x12\x15\n\rptttrans_flag\x18\x08 \x01(\r\x12\x11\n\tbusi_type\x18\t \x01(\r\x12\x0e\n\x06msg_id\x18\n \x01(\x04\x12\x12\n\npb_reserve\x18\x1e \x01(\x0c\x12\x17\n\x0fptt_encode_data\x18\x1f \x01(\x0c\"3\n\x0eTrans211TmpMsg\x12\x10\n\x08msg_body\x18\x01 \x01(\x0c\x12\x0f\n\x07\x63\x32\x63_cmd\x18\x02 \x01(\r\"2\n\tTransElem\x12\x11\n\telem_type\x18\x01 \x01(\r\x12\x12\n\nelem_value\x18\x02 \x01(\x0c\"\x9c\x04\n\tVideoFile\x12\x11\n\tfile_uuid\x18\x01 \x01(\x0c\x12\x10\n\x08\x66ile_md5\x18\x02 \x01(\x0c\x12\x11\n\tfile_name\x18\x03 \x01(\x0c\x12\x13\n\x0b\x66ile_format\x18\x04 \x01(\r\x12\x11\n\tfile_time\x18\x05 \x01(\r\x12\x11\n\tfile_size\x18\x06 \x01(\r\x12\x13\n\x0bthumb_width\x18\x07 \x01(\r\x12\x14\n\x0cthumb_height\x18\x08 \x01(\r\x12\x16\n\x0ethumb_file_md5\x18\t \x01(\x0c\x12\x0e\n\x06source\x18\n \x01(\x0c\x12\x17\n\x0fthumb_file_size\x18\x0b \x01(\r\x12\x11\n\tbusi_type\x18\x0c \x01(\r\x12\x16\n\x0e\x66rom_chat_type\x18\r \x01(\r\x12\x14\n\x0cto_chat_type\x18\x0e \x01(\r\x12\x1b\n\x13support_progressive\x18\x0f \x01(\x08\x12\x12\n\nfile_width\x18\x10 \x01(\r\x12\x13\n\x0b\x66ile_height\x18\x11 \x01(\r\x12\x15\n\rsub_busi_type\x18\x12 \x01(\r\x12\x12\n\nvideo_attr\x18\x13 \x01(\r\x12\x17\n\x0fthumb_file_urls\x18\x14 \x03(\x0c\x12\x17\n\x0fvideo_file_urls\x18\x15 \x03(\x0c\x12\x1b\n\x13thumb_download_flag\x18\x16 \x01(\r\x12\x1b\n\x13video_download_flag\x18\x17 \x01(\r\x12\x12\n\npb_reserve\x18\x18 \x01(\x0c\"8\n\x11WorkflowNotifyMsg\x12\x0f\n\x07\x65xt_msg\x18\x01 \x01(\x0c\x12\x12\n\ncreate_uin\x18\x02 \x01(\x04\"A\n\x0cLocationInfo\x12\x11\n\tlongitude\x18\x01 \x01(\x01\x12\x10\n\x08latitude\x18\x02 \x01(\x01\x12\x0c\n\x04\x64\x65sc\x18\x03 \x01(\x0c')
+
+
+
+_ANONYMOUSGROUPMSG = DESCRIPTOR.message_types_by_name['AnonymousGroupMsg']
+_APOLLOACTMSG = DESCRIPTOR.message_types_by_name['ApolloActMsg']
+_ARKAPPELEM = DESCRIPTOR.message_types_by_name['ArkAppElem']
+_ATTR = DESCRIPTOR.message_types_by_name['Attr']
+_BITAPPMSG = DESCRIPTOR.message_types_by_name['BitAppMsg']
+_BLESSINGMESSAGE = DESCRIPTOR.message_types_by_name['BlessingMessage']
+_COMMONELEM = DESCRIPTOR.message_types_by_name['CommonElem']
+_CONFERENCETIPSINFO = DESCRIPTOR.message_types_by_name['ConferenceTipsInfo']
+_CRMELEM = DESCRIPTOR.message_types_by_name['CrmElem']
+_CUSTOMELEM = DESCRIPTOR.message_types_by_name['CustomElem']
+_CUSTOMFACE = DESCRIPTOR.message_types_by_name['CustomFace']
+_DELIVERGIFTMSG = DESCRIPTOR.message_types_by_name['DeliverGiftMsg']
+_EIMINFO = DESCRIPTOR.message_types_by_name['EIMInfo']
+_ELEM = DESCRIPTOR.message_types_by_name['Elem']
+_ELEMFLAGS = DESCRIPTOR.message_types_by_name['ElemFlags']
+_ELEMFLAGS2 = DESCRIPTOR.message_types_by_name['ElemFlags2']
+_INST = DESCRIPTOR.message_types_by_name['Inst']
+_EXTRAINFO = DESCRIPTOR.message_types_by_name['ExtraInfo']
+_FSJMESSAGEELEM = DESCRIPTOR.message_types_by_name['FSJMessageElem']
+_FACE = DESCRIPTOR.message_types_by_name['Face']
+_FUNFACE = DESCRIPTOR.message_types_by_name['FunFace']
+_BOMB = DESCRIPTOR.message_types_by_name['Bomb']
+_TURNTABLE = DESCRIPTOR.message_types_by_name['Turntable']
+_GENERALFLAGS = DESCRIPTOR.message_types_by_name['GeneralFlags']
+_GROUPBUSINESSMSG = DESCRIPTOR.message_types_by_name['GroupBusinessMsg']
+_GROUPFILE = DESCRIPTOR.message_types_by_name['GroupFile']
+_GROUPPOSTELEM = DESCRIPTOR.message_types_by_name['GroupPostElem']
+_GROUPPUBACCOUNTINFO = DESCRIPTOR.message_types_by_name['GroupPubAccountInfo']
+_LIFEONLINEACCOUNT = DESCRIPTOR.message_types_by_name['LifeOnlineAccount']
+_LIGHTAPPELEM = DESCRIPTOR.message_types_by_name['LightAppElem']
+_LOLAMSG = DESCRIPTOR.message_types_by_name['LolaMsg']
+_LOWVERSIONTIPS = DESCRIPTOR.message_types_by_name['LowVersionTips']
+_MARKETFACE = DESCRIPTOR.message_types_by_name['MarketFace']
+_MARKETTRANS = DESCRIPTOR.message_types_by_name['MarketTrans']
+_MSGBODY = DESCRIPTOR.message_types_by_name['MsgBody']
+_MSGBODY_SUBTYPE4 = DESCRIPTOR.message_types_by_name['MsgBody_subtype4']
+_NEARBYMESSAGETYPE = DESCRIPTOR.message_types_by_name['NearByMessageType']
+_NOTONLINEFILE = DESCRIPTOR.message_types_by_name['NotOnlineFile']
+_NOTONLINEIMAGE = DESCRIPTOR.message_types_by_name['NotOnlineImage']
+_ONLINEIMAGE = DESCRIPTOR.message_types_by_name['OnlineImage']
+_OPENQQDATA = DESCRIPTOR.message_types_by_name['OpenQQData']
+_PATSELEM = DESCRIPTOR.message_types_by_name['PatsElem']
+_PCSUPPORTDEF = DESCRIPTOR.message_types_by_name['PcSupportDef']
+_PTT = DESCRIPTOR.message_types_by_name['Ptt']
+_PUBACCINFO = DESCRIPTOR.message_types_by_name['PubAccInfo']
+_PUBACCOUNT = DESCRIPTOR.message_types_by_name['PubAccount']
+_PUBGROUP = DESCRIPTOR.message_types_by_name['PubGroup']
+_QQLIVEOLD = DESCRIPTOR.message_types_by_name['QQLiveOld']
+_QQWALLETAIOBODY = DESCRIPTOR.message_types_by_name['QQWalletAioBody']
+_QQWALLETAIOELEM = DESCRIPTOR.message_types_by_name['QQWalletAioElem']
+_QQWALLETMSG = DESCRIPTOR.message_types_by_name['QQWalletMsg']
+_REDBAGINFO = DESCRIPTOR.message_types_by_name['RedBagInfo']
+_RICHMSG = DESCRIPTOR.message_types_by_name['RichMsg']
+_RICHTEXT = DESCRIPTOR.message_types_by_name['RichText']
+_SECRETFILEMSG = DESCRIPTOR.message_types_by_name['SecretFileMsg']
+_SHAKEWINDOW = DESCRIPTOR.message_types_by_name['ShakeWindow']
+_SMALLEMOJI = DESCRIPTOR.message_types_by_name['SmallEmoji']
+_SOURCEMSG = DESCRIPTOR.message_types_by_name['SourceMsg']
+_PLAINTEXT = DESCRIPTOR.message_types_by_name['PlainText']
+_TIPSINFO = DESCRIPTOR.message_types_by_name['TipsInfo']
+_TMPPTT = DESCRIPTOR.message_types_by_name['TmpPtt']
+_TRANS211TMPMSG = DESCRIPTOR.message_types_by_name['Trans211TmpMsg']
+_TRANSELEM = DESCRIPTOR.message_types_by_name['TransElem']
+_VIDEOFILE = DESCRIPTOR.message_types_by_name['VideoFile']
+_WORKFLOWNOTIFYMSG = DESCRIPTOR.message_types_by_name['WorkflowNotifyMsg']
+_LOCATIONINFO = DESCRIPTOR.message_types_by_name['LocationInfo']
AnonymousGroupMsg = _reflection.GeneratedProtocolMessageType('AnonymousGroupMsg', (_message.Message,), {
'DESCRIPTOR' : _ANONYMOUSGROUPMSG,
'__module__' : 'cai.pb.im.msg.msg_body.msg_body_pb2'
@@ -5964,5 +546,139 @@
})
_sym_db.RegisterMessage(LocationInfo)
-
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ _ANONYMOUSGROUPMSG._serialized_start=59
+ _ANONYMOUSGROUPMSG._serialized_end=212
+ _APOLLOACTMSG._serialized_start=215
+ _APOLLOACTMSG._serialized_end=487
+ _ARKAPPELEM._serialized_start=489
+ _ARKAPPELEM._serialized_end=576
+ _ATTR._serialized_start=579
+ _ATTR._serialized_end=764
+ _BITAPPMSG._serialized_start=766
+ _BITAPPMSG._serialized_end=790
+ _BLESSINGMESSAGE._serialized_start=792
+ _BLESSINGMESSAGE._serialized_end=844
+ _COMMONELEM._serialized_start=846
+ _COMMONELEM._serialized_end=920
+ _CONFERENCETIPSINFO._serialized_start=922
+ _CONFERENCETIPSINFO._serialized_end=999
+ _CRMELEM._serialized_start=1001
+ _CRMELEM._serialized_end=1106
+ _CUSTOMELEM._serialized_start=1108
+ _CUSTOMELEM._serialized_end=1195
+ _CUSTOMFACE._serialized_start=1198
+ _CUSTOMFACE._serialized_end=1823
+ _DELIVERGIFTMSG._serialized_start=1826
+ _DELIVERGIFTMSG._serialized_end=2392
+ _EIMINFO._serialized_start=2394
+ _EIMINFO._serialized_end=2434
+ _ELEM._serialized_start=2437
+ _ELEM._serialized_end=5136
+ _ELEMFLAGS._serialized_start=5138
+ _ELEMFLAGS._serialized_end=5188
+ _ELEMFLAGS2._serialized_start=5191
+ _ELEMFLAGS2._serialized_end=5570
+ _INST._serialized_start=5572
+ _INST._serialized_end=5611
+ _EXTRAINFO._serialized_start=5614
+ _EXTRAINFO._serialized_end=5857
+ _FSJMESSAGEELEM._serialized_start=5859
+ _FSJMESSAGEELEM._serialized_end=5893
+ _FACE._serialized_start=5895
+ _FACE._serialized_end=5942
+ _FUNFACE._serialized_start=5944
+ _FUNFACE._serialized_end=6037
+ _BOMB._serialized_start=6039
+ _BOMB._serialized_end=6060
+ _TURNTABLE._serialized_start=6062
+ _TURNTABLE._serialized_end=6130
+ _GENERALFLAGS._serialized_start=6133
+ _GENERALFLAGS._serialized_end=6567
+ _GROUPBUSINESSMSG._serialized_start=6570
+ _GROUPBUSINESSMSG._serialized_end=6733
+ _GROUPFILE._serialized_start=6736
+ _GROUPFILE._serialized_end=6935
+ _GROUPPOSTELEM._serialized_start=6937
+ _GROUPPOSTELEM._serialized_end=6991
+ _GROUPPUBACCOUNTINFO._serialized_start=6993
+ _GROUPPUBACCOUNTINFO._serialized_end=7035
+ _LIFEONLINEACCOUNT._serialized_start=7038
+ _LIFEONLINEACCOUNT._serialized_end=7213
+ _LIGHTAPPELEM._serialized_start=7215
+ _LIGHTAPPELEM._serialized_end=7262
+ _LOLAMSG._serialized_start=7264
+ _LOLAMSG._serialized_end=7360
+ _LOWVERSIONTIPS._serialized_start=7362
+ _LOWVERSIONTIPS._serialized_end=7476
+ _MARKETFACE._serialized_start=7479
+ _MARKETFACE._serialized_end=7731
+ _MARKETTRANS._serialized_start=7733
+ _MARKETTRANS._serialized_end=7830
+ _MSGBODY._serialized_start=7832
+ _MSGBODY._serialized_end=7929
+ _MSGBODY_SUBTYPE4._serialized_start=7931
+ _MSGBODY_SUBTYPE4._serialized_end=8024
+ _NEARBYMESSAGETYPE._serialized_start=8026
+ _NEARBYMESSAGETYPE._serialized_end=8082
+ _NOTONLINEFILE._serialized_start=8085
+ _NOTONLINEFILE._serialized_end=8489
+ _NOTONLINEIMAGE._serialized_start=8492
+ _NOTONLINEIMAGE._serialized_end=9065
+ _ONLINEIMAGE._serialized_start=9067
+ _ONLINEIMAGE._serialized_end=9140
+ _OPENQQDATA._serialized_start=9142
+ _OPENQQDATA._serialized_end=9175
+ _PATSELEM._serialized_start=9177
+ _PATSELEM._serialized_end=9224
+ _PCSUPPORTDEF._serialized_start=9227
+ _PCSUPPORTDEF._serialized_end=9375
+ _PTT._serialized_start=9378
+ _PTT._serialized_end=9836
+ _PUBACCINFO._serialized_start=9838
+ _PUBACCINFO._serialized_end=9941
+ _PUBACCOUNT._serialized_start=9943
+ _PUBACCOUNT._serialized_end=9993
+ _PUBGROUP._serialized_start=9995
+ _PUBGROUP._serialized_end=10070
+ _QQLIVEOLD._serialized_start=10072
+ _QQLIVEOLD._serialized_end=10153
+ _QQWALLETAIOBODY._serialized_start=10156
+ _QQWALLETAIOBODY._serialized_end=10617
+ _QQWALLETAIOELEM._serialized_start=10620
+ _QQWALLETAIOELEM._serialized_end=11061
+ _QQWALLETMSG._serialized_start=11063
+ _QQWALLETMSG._serialized_end=11128
+ _REDBAGINFO._serialized_start=11130
+ _REDBAGINFO._serialized_end=11163
+ _RICHMSG._serialized_start=11165
+ _RICHMSG._serialized_end=11275
+ _RICHTEXT._serialized_start=11278
+ _RICHTEXT._serialized_end=11557
+ _SECRETFILEMSG._serialized_start=11560
+ _SECRETFILEMSG._serialized_end=11933
+ _SHAKEWINDOW._serialized_start=11935
+ _SHAKEWINDOW._serialized_end=11992
+ _SMALLEMOJI._serialized_start=11994
+ _SMALLEMOJI._serialized_end=12047
+ _SOURCEMSG._serialized_start=12050
+ _SOURCEMSG._serialized_end=12271
+ _PLAINTEXT._serialized_start=12273
+ _PLAINTEXT._serialized_end=12384
+ _TIPSINFO._serialized_start=12386
+ _TIPSINFO._serialized_end=12410
+ _TMPPTT._serialized_start=12413
+ _TMPPTT._serialized_end=12656
+ _TRANS211TMPMSG._serialized_start=12658
+ _TRANS211TMPMSG._serialized_end=12709
+ _TRANSELEM._serialized_start=12711
+ _TRANSELEM._serialized_end=12761
+ _VIDEOFILE._serialized_start=12764
+ _VIDEOFILE._serialized_end=13304
+ _WORKFLOWNOTIFYMSG._serialized_start=13306
+ _WORKFLOWNOTIFYMSG._serialized_end=13362
+ _LOCATIONINFO._serialized_start=13364
+ _LOCATIONINFO._serialized_end=13429
# @@protoc_insertion_point(module_scope)
diff --git a/cai/pb/im/msg/msg_body/msg_body_pb2.pyi b/cai/pb/im/msg/msg_body/msg_body_pb2.pyi
index 108ccef3..ec73f80f 100644
--- a/cai/pb/im/msg/msg_body/msg_body_pb2.pyi
+++ b/cai/pb/im/msg/msg_body/msg_body_pb2.pyi
@@ -34,10 +34,13 @@ from typing_extensions import (
)
-DESCRIPTOR: FileDescriptor = ...
+DESCRIPTOR: FileDescriptor
class AnonymousGroupMsg(Message):
- DESCRIPTOR: Descriptor = ...
+ """tencent/im/msg/im_msg_body.java
+
+ """
+ DESCRIPTOR: Descriptor
FLAGS_FIELD_NUMBER: int
ANON_ID_FIELD_NUMBER: int
ANON_NICK_FIELD_NUMBER: int
@@ -45,29 +48,28 @@ class AnonymousGroupMsg(Message):
EXPIRE_TIME_FIELD_NUMBER: int
BUBBLE_ID_FIELD_NUMBER: int
RANK_COLOR_FIELD_NUMBER: int
- flags: int = ...
- anon_id: bytes = ...
- anon_nick: bytes = ...
- head_portrait: int = ...
- expire_time: int = ...
- bubble_id: int = ...
- rank_color: bytes = ...
-
- def __init__(self,
- *,
- flags : Optional[int] = ...,
- anon_id : Optional[bytes] = ...,
- anon_nick : Optional[bytes] = ...,
- head_portrait : Optional[int] = ...,
- expire_time : Optional[int] = ...,
- bubble_id : Optional[int] = ...,
- rank_color : Optional[bytes] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal[u"anon_id",b"anon_id",u"anon_nick",b"anon_nick",u"bubble_id",b"bubble_id",u"expire_time",b"expire_time",u"flags",b"flags",u"head_portrait",b"head_portrait",u"rank_color",b"rank_color"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"anon_id",b"anon_id",u"anon_nick",b"anon_nick",u"bubble_id",b"bubble_id",u"expire_time",b"expire_time",u"flags",b"flags",u"head_portrait",b"head_portrait",u"rank_color",b"rank_color"]) -> None: ...
+ flags: int
+ anon_id: bytes
+ anon_nick: bytes
+ head_portrait: int
+ expire_time: int
+ bubble_id: int
+ rank_color: bytes
+ def __init__(self,
+ *,
+ flags: Optional[int] = ...,
+ anon_id: Optional[bytes] = ...,
+ anon_nick: Optional[bytes] = ...,
+ head_portrait: Optional[int] = ...,
+ expire_time: Optional[int] = ...,
+ bubble_id: Optional[int] = ...,
+ rank_color: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["anon_id",b"anon_id","anon_nick",b"anon_nick","bubble_id",b"bubble_id","expire_time",b"expire_time","flags",b"flags","head_portrait",b"head_portrait","rank_color",b"rank_color"]) -> bool: ...
+ def ClearField(self, field_name: Literal["anon_id",b"anon_id","anon_nick",b"anon_nick","bubble_id",b"bubble_id","expire_time",b"expire_time","flags",b"flags","head_portrait",b"head_portrait","rank_color",b"rank_color"]) -> None: ...
class ApolloActMsg(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
ACTION_ID_FIELD_NUMBER: int
ACTION_NAME_FIELD_NUMBER: int
ACTION_TEXT_FIELD_NUMBER: int
@@ -81,62 +83,60 @@ class ApolloActMsg(Message):
DIYTEXT_CONTENT_FIELD_NUMBER: int
INPUT_TEXT_FIELD_NUMBER: int
PB_RESERVE_FIELD_NUMBER: int
- action_id: int = ...
- action_name: bytes = ...
- action_text: bytes = ...
- flag: int = ...
- peer_uin: int = ...
- sender_ts: int = ...
- peer_ts: int = ...
- sender_status: int = ...
- peer_status: int = ...
- diytext_id: int = ...
- diytext_content: bytes = ...
- input_text: bytes = ...
- pb_reserve: bytes = ...
-
- def __init__(self,
- *,
- action_id : Optional[int] = ...,
- action_name : Optional[bytes] = ...,
- action_text : Optional[bytes] = ...,
- flag : Optional[int] = ...,
- peer_uin : Optional[int] = ...,
- sender_ts : Optional[int] = ...,
- peer_ts : Optional[int] = ...,
- sender_status : Optional[int] = ...,
- peer_status : Optional[int] = ...,
- diytext_id : Optional[int] = ...,
- diytext_content : Optional[bytes] = ...,
- input_text : Optional[bytes] = ...,
- pb_reserve : Optional[bytes] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal[u"action_id",b"action_id",u"action_name",b"action_name",u"action_text",b"action_text",u"diytext_content",b"diytext_content",u"diytext_id",b"diytext_id",u"flag",b"flag",u"input_text",b"input_text",u"pb_reserve",b"pb_reserve",u"peer_status",b"peer_status",u"peer_ts",b"peer_ts",u"peer_uin",b"peer_uin",u"sender_status",b"sender_status",u"sender_ts",b"sender_ts"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"action_id",b"action_id",u"action_name",b"action_name",u"action_text",b"action_text",u"diytext_content",b"diytext_content",u"diytext_id",b"diytext_id",u"flag",b"flag",u"input_text",b"input_text",u"pb_reserve",b"pb_reserve",u"peer_status",b"peer_status",u"peer_ts",b"peer_ts",u"peer_uin",b"peer_uin",u"sender_status",b"sender_status",u"sender_ts",b"sender_ts"]) -> None: ...
+ action_id: int
+ action_name: bytes
+ action_text: bytes
+ flag: int
+ peer_uin: int
+ sender_ts: int
+ peer_ts: int
+ sender_status: int
+ peer_status: int
+ diytext_id: int
+ diytext_content: bytes
+ input_text: bytes
+ pb_reserve: bytes
+ def __init__(self,
+ *,
+ action_id: Optional[int] = ...,
+ action_name: Optional[bytes] = ...,
+ action_text: Optional[bytes] = ...,
+ flag: Optional[int] = ...,
+ peer_uin: Optional[int] = ...,
+ sender_ts: Optional[int] = ...,
+ peer_ts: Optional[int] = ...,
+ sender_status: Optional[int] = ...,
+ peer_status: Optional[int] = ...,
+ diytext_id: Optional[int] = ...,
+ diytext_content: Optional[bytes] = ...,
+ input_text: Optional[bytes] = ...,
+ pb_reserve: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["action_id",b"action_id","action_name",b"action_name","action_text",b"action_text","diytext_content",b"diytext_content","diytext_id",b"diytext_id","flag",b"flag","input_text",b"input_text","pb_reserve",b"pb_reserve","peer_status",b"peer_status","peer_ts",b"peer_ts","peer_uin",b"peer_uin","sender_status",b"sender_status","sender_ts",b"sender_ts"]) -> bool: ...
+ def ClearField(self, field_name: Literal["action_id",b"action_id","action_name",b"action_name","action_text",b"action_text","diytext_content",b"diytext_content","diytext_id",b"diytext_id","flag",b"flag","input_text",b"input_text","pb_reserve",b"pb_reserve","peer_status",b"peer_status","peer_ts",b"peer_ts","peer_uin",b"peer_uin","sender_status",b"sender_status","sender_ts",b"sender_ts"]) -> None: ...
class ArkAppElem(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
APP_NAME_FIELD_NUMBER: int
MIN_VERSION_FIELD_NUMBER: int
XML_TEMPLATE_FIELD_NUMBER: int
DATA_FIELD_NUMBER: int
- app_name: Text = ...
- min_version: Text = ...
- xml_template: Text = ...
- data: bytes = ...
-
+ app_name: Text
+ min_version: Text
+ xml_template: Text
+ data: bytes
def __init__(self,
*,
- app_name : Optional[Text] = ...,
- min_version : Optional[Text] = ...,
- xml_template : Optional[Text] = ...,
- data : Optional[bytes] = ...,
+ app_name: Optional[Text] = ...,
+ min_version: Optional[Text] = ...,
+ xml_template: Optional[Text] = ...,
+ data: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"app_name",b"app_name",u"data",b"data",u"min_version",b"min_version",u"xml_template",b"xml_template"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"app_name",b"app_name",u"data",b"data",u"min_version",b"min_version",u"xml_template",b"xml_template"]) -> None: ...
+ def HasField(self, field_name: Literal["app_name",b"app_name","data",b"data","min_version",b"min_version","xml_template",b"xml_template"]) -> bool: ...
+ def ClearField(self, field_name: Literal["app_name",b"app_name","data",b"data","min_version",b"min_version","xml_template",b"xml_template"]) -> None: ...
class Attr(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
CODE_PAGE_FIELD_NUMBER: int
TIME_FIELD_NUMBER: int
RANDOM_FIELD_NUMBER: int
@@ -147,146 +147,139 @@ class Attr(Message):
PITCH_AND_FAMILY_FIELD_NUMBER: int
FONT_NAME_FIELD_NUMBER: int
RESERVE_DATA_FIELD_NUMBER: int
- code_page: int = ...
- time: int = ...
- random: int = ...
- color: int = ...
- size: int = ...
- effect: int = ...
- char_set: int = ...
- pitch_and_family: int = ...
- font_name: Text = ...
- reserve_data: bytes = ...
-
- def __init__(self,
- *,
- code_page : Optional[int] = ...,
- time : Optional[int] = ...,
- random : Optional[int] = ...,
- color : Optional[int] = ...,
- size : Optional[int] = ...,
- effect : Optional[int] = ...,
- char_set : Optional[int] = ...,
- pitch_and_family : Optional[int] = ...,
- font_name : Optional[Text] = ...,
- reserve_data : Optional[bytes] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal[u"char_set",b"char_set",u"code_page",b"code_page",u"color",b"color",u"effect",b"effect",u"font_name",b"font_name",u"pitch_and_family",b"pitch_and_family",u"random",b"random",u"reserve_data",b"reserve_data",u"size",b"size",u"time",b"time"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"char_set",b"char_set",u"code_page",b"code_page",u"color",b"color",u"effect",b"effect",u"font_name",b"font_name",u"pitch_and_family",b"pitch_and_family",u"random",b"random",u"reserve_data",b"reserve_data",u"size",b"size",u"time",b"time"]) -> None: ...
+ code_page: int
+ time: int
+ random: int
+ color: int
+ size: int
+ effect: int
+ char_set: int
+ pitch_and_family: int
+ font_name: Text
+ reserve_data: bytes
+ def __init__(self,
+ *,
+ code_page: Optional[int] = ...,
+ time: Optional[int] = ...,
+ random: Optional[int] = ...,
+ color: Optional[int] = ...,
+ size: Optional[int] = ...,
+ effect: Optional[int] = ...,
+ char_set: Optional[int] = ...,
+ pitch_and_family: Optional[int] = ...,
+ font_name: Optional[Text] = ...,
+ reserve_data: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["char_set",b"char_set","code_page",b"code_page","color",b"color","effect",b"effect","font_name",b"font_name","pitch_and_family",b"pitch_and_family","random",b"random","reserve_data",b"reserve_data","size",b"size","time",b"time"]) -> bool: ...
+ def ClearField(self, field_name: Literal["char_set",b"char_set","code_page",b"code_page","color",b"color","effect",b"effect","font_name",b"font_name","pitch_and_family",b"pitch_and_family","random",b"random","reserve_data",b"reserve_data","size",b"size","time",b"time"]) -> None: ...
class BitAppMsg(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
BUF_FIELD_NUMBER: int
- buf: bytes = ...
-
+ buf: bytes
def __init__(self,
*,
- buf : Optional[bytes] = ...,
+ buf: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"buf",b"buf"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"buf",b"buf"]) -> None: ...
+ def HasField(self, field_name: Literal["buf",b"buf"]) -> bool: ...
+ def ClearField(self, field_name: Literal["buf",b"buf"]) -> None: ...
class BlessingMessage(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
MSG_TYPE_FIELD_NUMBER: int
EX_FLAG_FIELD_NUMBER: int
- msg_type: int = ...
- ex_flag: int = ...
-
+ msg_type: int
+ ex_flag: int
def __init__(self,
*,
- msg_type : Optional[int] = ...,
- ex_flag : Optional[int] = ...,
+ msg_type: Optional[int] = ...,
+ ex_flag: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"ex_flag",b"ex_flag",u"msg_type",b"msg_type"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"ex_flag",b"ex_flag",u"msg_type",b"msg_type"]) -> None: ...
+ def HasField(self, field_name: Literal["ex_flag",b"ex_flag","msg_type",b"msg_type"]) -> bool: ...
+ def ClearField(self, field_name: Literal["ex_flag",b"ex_flag","msg_type",b"msg_type"]) -> None: ...
class CommonElem(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
SERVICE_TYPE_FIELD_NUMBER: int
PB_ELEM_FIELD_NUMBER: int
BUSINESS_TYPE_FIELD_NUMBER: int
- service_type: int = ...
- pb_elem: bytes = ...
- business_type: int = ...
-
+ service_type: int
+ pb_elem: bytes
+ business_type: int
def __init__(self,
*,
- service_type : Optional[int] = ...,
- pb_elem : Optional[bytes] = ...,
- business_type : Optional[int] = ...,
+ service_type: Optional[int] = ...,
+ pb_elem: Optional[bytes] = ...,
+ business_type: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"business_type",b"business_type",u"pb_elem",b"pb_elem",u"service_type",b"service_type"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"business_type",b"business_type",u"pb_elem",b"pb_elem",u"service_type",b"service_type"]) -> None: ...
+ def HasField(self, field_name: Literal["business_type",b"business_type","pb_elem",b"pb_elem","service_type",b"service_type"]) -> bool: ...
+ def ClearField(self, field_name: Literal["business_type",b"business_type","pb_elem",b"pb_elem","service_type",b"service_type"]) -> None: ...
class ConferenceTipsInfo(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
SESSION_TYPE_FIELD_NUMBER: int
SESSION_UIN_FIELD_NUMBER: int
TEXT_FIELD_NUMBER: int
- session_type: int = ...
- session_uin: int = ...
- text: Text = ...
-
+ session_type: int
+ session_uin: int
+ text: Text
def __init__(self,
*,
- session_type : Optional[int] = ...,
- session_uin : Optional[int] = ...,
- text : Optional[Text] = ...,
+ session_type: Optional[int] = ...,
+ session_uin: Optional[int] = ...,
+ text: Optional[Text] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"session_type",b"session_type",u"session_uin",b"session_uin",u"text",b"text"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"session_type",b"session_type",u"session_uin",b"session_uin",u"text",b"text"]) -> None: ...
+ def HasField(self, field_name: Literal["session_type",b"session_type","session_uin",b"session_uin","text",b"text"]) -> bool: ...
+ def ClearField(self, field_name: Literal["session_type",b"session_type","session_uin",b"session_uin","text",b"text"]) -> None: ...
class CrmElem(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
CRM_BUF_FIELD_NUMBER: int
MSG_RESID_FIELD_NUMBER: int
QIDIAN_FLAG_FIELD_NUMBER: int
PUSH_FLAG_FIELD_NUMBER: int
COUNT_FLAG_FIELD_NUMBER: int
- crm_buf: bytes = ...
- msg_resid: bytes = ...
- qidian_flag: int = ...
- push_flag: int = ...
- count_flag: int = ...
-
+ crm_buf: bytes
+ msg_resid: bytes
+ qidian_flag: int
+ push_flag: int
+ count_flag: int
def __init__(self,
*,
- crm_buf : Optional[bytes] = ...,
- msg_resid : Optional[bytes] = ...,
- qidian_flag : Optional[int] = ...,
- push_flag : Optional[int] = ...,
- count_flag : Optional[int] = ...,
+ crm_buf: Optional[bytes] = ...,
+ msg_resid: Optional[bytes] = ...,
+ qidian_flag: Optional[int] = ...,
+ push_flag: Optional[int] = ...,
+ count_flag: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"count_flag",b"count_flag",u"crm_buf",b"crm_buf",u"msg_resid",b"msg_resid",u"push_flag",b"push_flag",u"qidian_flag",b"qidian_flag"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"count_flag",b"count_flag",u"crm_buf",b"crm_buf",u"msg_resid",b"msg_resid",u"push_flag",b"push_flag",u"qidian_flag",b"qidian_flag"]) -> None: ...
+ def HasField(self, field_name: Literal["count_flag",b"count_flag","crm_buf",b"crm_buf","msg_resid",b"msg_resid","push_flag",b"push_flag","qidian_flag",b"qidian_flag"]) -> bool: ...
+ def ClearField(self, field_name: Literal["count_flag",b"count_flag","crm_buf",b"crm_buf","msg_resid",b"msg_resid","push_flag",b"push_flag","qidian_flag",b"qidian_flag"]) -> None: ...
class CustomElem(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
DESC_FIELD_NUMBER: int
DATA_FIELD_NUMBER: int
ENUM_TYPE_FIELD_NUMBER: int
EXT_FIELD_NUMBER: int
SOUND_FIELD_NUMBER: int
- desc: bytes = ...
- data: bytes = ...
- enum_type: int = ...
- ext: bytes = ...
- sound: bytes = ...
-
+ desc: bytes
+ data: bytes
+ enum_type: int
+ ext: bytes
+ sound: bytes
def __init__(self,
*,
- desc : Optional[bytes] = ...,
- data : Optional[bytes] = ...,
- enum_type : Optional[int] = ...,
- ext : Optional[bytes] = ...,
- sound : Optional[bytes] = ...,
+ desc: Optional[bytes] = ...,
+ data: Optional[bytes] = ...,
+ enum_type: Optional[int] = ...,
+ ext: Optional[bytes] = ...,
+ sound: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"data",b"data",u"desc",b"desc",u"enum_type",b"enum_type",u"ext",b"ext",u"sound",b"sound"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"data",b"data",u"desc",b"desc",u"enum_type",b"enum_type",u"ext",b"ext",u"sound",b"sound"]) -> None: ...
+ def HasField(self, field_name: Literal["data",b"data","desc",b"desc","enum_type",b"enum_type","ext",b"ext","sound",b"sound"]) -> bool: ...
+ def ClearField(self, field_name: Literal["data",b"data","desc",b"desc","enum_type",b"enum_type","ext",b"ext","sound",b"sound"]) -> None: ...
class CustomFace(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
GUID_FIELD_NUMBER: int
FILE_PATH_FIELD_NUMBER: int
SHORTCUT_FIELD_NUMBER: int
@@ -321,83 +314,82 @@ class CustomFace(Message):
_400_WIDTH_FIELD_NUMBER: int
_400_HEIGHT_FIELD_NUMBER: int
PB_RESERVE_FIELD_NUMBER: int
- guid: bytes = ...
- file_path: Text = ...
- shortcut: Text = ...
- buffer: bytes = ...
- flag: bytes = ...
- old_data: bytes = ...
- file_id: int = ...
- server_ip: int = ...
- server_port: int = ...
- file_type: int = ...
- signature: bytes = ...
- useful: int = ...
- md5: bytes = ...
- thumb_url: Text = ...
- big_url: Text = ...
- orig_url: Text = ...
- biz_type: int = ...
- repeat_index: int = ...
- repeat_image: int = ...
- image_type: int = ...
- index: int = ...
- width: int = ...
- height: int = ...
- source: int = ...
- size: int = ...
- origin: int = ...
- thumb_width: int = ...
- thumb_height: int = ...
- show_len: int = ...
- download_len: int = ...
- _400_url: Text = ...
- _400_width: int = ...
- _400_height: int = ...
- pb_reserve: bytes = ...
-
- def __init__(self,
- *,
- guid : Optional[bytes] = ...,
- file_path : Optional[Text] = ...,
- shortcut : Optional[Text] = ...,
- buffer : Optional[bytes] = ...,
- flag : Optional[bytes] = ...,
- old_data : Optional[bytes] = ...,
- file_id : Optional[int] = ...,
- server_ip : Optional[int] = ...,
- server_port : Optional[int] = ...,
- file_type : Optional[int] = ...,
- signature : Optional[bytes] = ...,
- useful : Optional[int] = ...,
- md5 : Optional[bytes] = ...,
- thumb_url : Optional[Text] = ...,
- big_url : Optional[Text] = ...,
- orig_url : Optional[Text] = ...,
- biz_type : Optional[int] = ...,
- repeat_index : Optional[int] = ...,
- repeat_image : Optional[int] = ...,
- image_type : Optional[int] = ...,
- index : Optional[int] = ...,
- width : Optional[int] = ...,
- height : Optional[int] = ...,
- source : Optional[int] = ...,
- size : Optional[int] = ...,
- origin : Optional[int] = ...,
- thumb_width : Optional[int] = ...,
- thumb_height : Optional[int] = ...,
- show_len : Optional[int] = ...,
- download_len : Optional[int] = ...,
- _400_url : Optional[Text] = ...,
- _400_width : Optional[int] = ...,
- _400_height : Optional[int] = ...,
- pb_reserve : Optional[bytes] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal[u"_400_height",b"_400_height",u"_400_url",b"_400_url",u"_400_width",b"_400_width",u"big_url",b"big_url",u"biz_type",b"biz_type",u"buffer",b"buffer",u"download_len",b"download_len",u"file_id",b"file_id",u"file_path",b"file_path",u"file_type",b"file_type",u"flag",b"flag",u"guid",b"guid",u"height",b"height",u"image_type",b"image_type",u"index",b"index",u"md5",b"md5",u"old_data",b"old_data",u"orig_url",b"orig_url",u"origin",b"origin",u"pb_reserve",b"pb_reserve",u"repeat_image",b"repeat_image",u"repeat_index",b"repeat_index",u"server_ip",b"server_ip",u"server_port",b"server_port",u"shortcut",b"shortcut",u"show_len",b"show_len",u"signature",b"signature",u"size",b"size",u"source",b"source",u"thumb_height",b"thumb_height",u"thumb_url",b"thumb_url",u"thumb_width",b"thumb_width",u"useful",b"useful",u"width",b"width"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"_400_height",b"_400_height",u"_400_url",b"_400_url",u"_400_width",b"_400_width",u"big_url",b"big_url",u"biz_type",b"biz_type",u"buffer",b"buffer",u"download_len",b"download_len",u"file_id",b"file_id",u"file_path",b"file_path",u"file_type",b"file_type",u"flag",b"flag",u"guid",b"guid",u"height",b"height",u"image_type",b"image_type",u"index",b"index",u"md5",b"md5",u"old_data",b"old_data",u"orig_url",b"orig_url",u"origin",b"origin",u"pb_reserve",b"pb_reserve",u"repeat_image",b"repeat_image",u"repeat_index",b"repeat_index",u"server_ip",b"server_ip",u"server_port",b"server_port",u"shortcut",b"shortcut",u"show_len",b"show_len",u"signature",b"signature",u"size",b"size",u"source",b"source",u"thumb_height",b"thumb_height",u"thumb_url",b"thumb_url",u"thumb_width",b"thumb_width",u"useful",b"useful",u"width",b"width"]) -> None: ...
+ guid: bytes
+ file_path: Text
+ shortcut: Text
+ buffer: bytes
+ flag: bytes
+ old_data: bytes
+ file_id: int
+ server_ip: int
+ server_port: int
+ file_type: int
+ signature: bytes
+ useful: int
+ md5: bytes
+ thumb_url: Text
+ big_url: Text
+ orig_url: Text
+ biz_type: int
+ repeat_index: int
+ repeat_image: int
+ image_type: int
+ index: int
+ width: int
+ height: int
+ source: int
+ size: int
+ origin: int
+ thumb_width: int
+ thumb_height: int
+ show_len: int
+ download_len: int
+ _400_url: Text
+ _400_width: int
+ _400_height: int
+ pb_reserve: bytes
+ def __init__(self,
+ *,
+ guid: Optional[bytes] = ...,
+ file_path: Optional[Text] = ...,
+ shortcut: Optional[Text] = ...,
+ buffer: Optional[bytes] = ...,
+ flag: Optional[bytes] = ...,
+ old_data: Optional[bytes] = ...,
+ file_id: Optional[int] = ...,
+ server_ip: Optional[int] = ...,
+ server_port: Optional[int] = ...,
+ file_type: Optional[int] = ...,
+ signature: Optional[bytes] = ...,
+ useful: Optional[int] = ...,
+ md5: Optional[bytes] = ...,
+ thumb_url: Optional[Text] = ...,
+ big_url: Optional[Text] = ...,
+ orig_url: Optional[Text] = ...,
+ biz_type: Optional[int] = ...,
+ repeat_index: Optional[int] = ...,
+ repeat_image: Optional[int] = ...,
+ image_type: Optional[int] = ...,
+ index: Optional[int] = ...,
+ width: Optional[int] = ...,
+ height: Optional[int] = ...,
+ source: Optional[int] = ...,
+ size: Optional[int] = ...,
+ origin: Optional[int] = ...,
+ thumb_width: Optional[int] = ...,
+ thumb_height: Optional[int] = ...,
+ show_len: Optional[int] = ...,
+ download_len: Optional[int] = ...,
+ _400_url: Optional[Text] = ...,
+ _400_width: Optional[int] = ...,
+ _400_height: Optional[int] = ...,
+ pb_reserve: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["_400_height",b"_400_height","_400_url",b"_400_url","_400_width",b"_400_width","big_url",b"big_url","biz_type",b"biz_type","buffer",b"buffer","download_len",b"download_len","file_id",b"file_id","file_path",b"file_path","file_type",b"file_type","flag",b"flag","guid",b"guid","height",b"height","image_type",b"image_type","index",b"index","md5",b"md5","old_data",b"old_data","orig_url",b"orig_url","origin",b"origin","pb_reserve",b"pb_reserve","repeat_image",b"repeat_image","repeat_index",b"repeat_index","server_ip",b"server_ip","server_port",b"server_port","shortcut",b"shortcut","show_len",b"show_len","signature",b"signature","size",b"size","source",b"source","thumb_height",b"thumb_height","thumb_url",b"thumb_url","thumb_width",b"thumb_width","useful",b"useful","width",b"width"]) -> bool: ...
+ def ClearField(self, field_name: Literal["_400_height",b"_400_height","_400_url",b"_400_url","_400_width",b"_400_width","big_url",b"big_url","biz_type",b"biz_type","buffer",b"buffer","download_len",b"download_len","file_id",b"file_id","file_path",b"file_path","file_type",b"file_type","flag",b"flag","guid",b"guid","height",b"height","image_type",b"image_type","index",b"index","md5",b"md5","old_data",b"old_data","orig_url",b"orig_url","origin",b"origin","pb_reserve",b"pb_reserve","repeat_image",b"repeat_image","repeat_index",b"repeat_index","server_ip",b"server_ip","server_port",b"server_port","shortcut",b"shortcut","show_len",b"show_len","signature",b"signature","size",b"size","source",b"source","thumb_height",b"thumb_height","thumb_url",b"thumb_url","thumb_width",b"thumb_width","useful",b"useful","width",b"width"]) -> None: ...
class DeliverGiftMsg(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
GRAY_TIP_CONTENT_FIELD_NUMBER: int
ANIMATION_PACKAGE_ID_FIELD_NUMBER: int
ANIMATION_PACKAGE_URL_A_FIELD_NUMBER: int
@@ -420,74 +412,72 @@ class DeliverGiftMsg(Message):
RECEIVER_NAME_FIELD_NUMBER: int
RECEIVER_PIC_FIELD_NUMBER: int
STMESSAGE_GIFTURL_FIELD_NUMBER: int
- gray_tip_content: bytes = ...
- animation_package_id: int = ...
- animation_package_url_a: bytes = ...
- animation_package_url_i: bytes = ...
- remind_brief: bytes = ...
- gift_id: int = ...
- gift_count: int = ...
- animation_brief: bytes = ...
- sender_uin: int = ...
- receiver_uin: int = ...
- stmessage_title: bytes = ...
- stmessage_subtitle: bytes = ...
- stmessage_message: bytes = ...
- stmessage_giftpicid: int = ...
- stmessage_comefrom: bytes = ...
- stmessage_exflag: int = ...
- to_all_gift_id: bytes = ...
- comefrom_link: bytes = ...
- pb_reserve: bytes = ...
- receiver_name: bytes = ...
- receiver_pic: bytes = ...
- stmessage_gifturl: bytes = ...
-
- def __init__(self,
- *,
- gray_tip_content : Optional[bytes] = ...,
- animation_package_id : Optional[int] = ...,
- animation_package_url_a : Optional[bytes] = ...,
- animation_package_url_i : Optional[bytes] = ...,
- remind_brief : Optional[bytes] = ...,
- gift_id : Optional[int] = ...,
- gift_count : Optional[int] = ...,
- animation_brief : Optional[bytes] = ...,
- sender_uin : Optional[int] = ...,
- receiver_uin : Optional[int] = ...,
- stmessage_title : Optional[bytes] = ...,
- stmessage_subtitle : Optional[bytes] = ...,
- stmessage_message : Optional[bytes] = ...,
- stmessage_giftpicid : Optional[int] = ...,
- stmessage_comefrom : Optional[bytes] = ...,
- stmessage_exflag : Optional[int] = ...,
- to_all_gift_id : Optional[bytes] = ...,
- comefrom_link : Optional[bytes] = ...,
- pb_reserve : Optional[bytes] = ...,
- receiver_name : Optional[bytes] = ...,
- receiver_pic : Optional[bytes] = ...,
- stmessage_gifturl : Optional[bytes] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal[u"animation_brief",b"animation_brief",u"animation_package_id",b"animation_package_id",u"animation_package_url_a",b"animation_package_url_a",u"animation_package_url_i",b"animation_package_url_i",u"comefrom_link",b"comefrom_link",u"gift_count",b"gift_count",u"gift_id",b"gift_id",u"gray_tip_content",b"gray_tip_content",u"pb_reserve",b"pb_reserve",u"receiver_name",b"receiver_name",u"receiver_pic",b"receiver_pic",u"receiver_uin",b"receiver_uin",u"remind_brief",b"remind_brief",u"sender_uin",b"sender_uin",u"stmessage_comefrom",b"stmessage_comefrom",u"stmessage_exflag",b"stmessage_exflag",u"stmessage_giftpicid",b"stmessage_giftpicid",u"stmessage_gifturl",b"stmessage_gifturl",u"stmessage_message",b"stmessage_message",u"stmessage_subtitle",b"stmessage_subtitle",u"stmessage_title",b"stmessage_title",u"to_all_gift_id",b"to_all_gift_id"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"animation_brief",b"animation_brief",u"animation_package_id",b"animation_package_id",u"animation_package_url_a",b"animation_package_url_a",u"animation_package_url_i",b"animation_package_url_i",u"comefrom_link",b"comefrom_link",u"gift_count",b"gift_count",u"gift_id",b"gift_id",u"gray_tip_content",b"gray_tip_content",u"pb_reserve",b"pb_reserve",u"receiver_name",b"receiver_name",u"receiver_pic",b"receiver_pic",u"receiver_uin",b"receiver_uin",u"remind_brief",b"remind_brief",u"sender_uin",b"sender_uin",u"stmessage_comefrom",b"stmessage_comefrom",u"stmessage_exflag",b"stmessage_exflag",u"stmessage_giftpicid",b"stmessage_giftpicid",u"stmessage_gifturl",b"stmessage_gifturl",u"stmessage_message",b"stmessage_message",u"stmessage_subtitle",b"stmessage_subtitle",u"stmessage_title",b"stmessage_title",u"to_all_gift_id",b"to_all_gift_id"]) -> None: ...
+ gray_tip_content: bytes
+ animation_package_id: int
+ animation_package_url_a: bytes
+ animation_package_url_i: bytes
+ remind_brief: bytes
+ gift_id: int
+ gift_count: int
+ animation_brief: bytes
+ sender_uin: int
+ receiver_uin: int
+ stmessage_title: bytes
+ stmessage_subtitle: bytes
+ stmessage_message: bytes
+ stmessage_giftpicid: int
+ stmessage_comefrom: bytes
+ stmessage_exflag: int
+ to_all_gift_id: bytes
+ comefrom_link: bytes
+ pb_reserve: bytes
+ receiver_name: bytes
+ receiver_pic: bytes
+ stmessage_gifturl: bytes
+ def __init__(self,
+ *,
+ gray_tip_content: Optional[bytes] = ...,
+ animation_package_id: Optional[int] = ...,
+ animation_package_url_a: Optional[bytes] = ...,
+ animation_package_url_i: Optional[bytes] = ...,
+ remind_brief: Optional[bytes] = ...,
+ gift_id: Optional[int] = ...,
+ gift_count: Optional[int] = ...,
+ animation_brief: Optional[bytes] = ...,
+ sender_uin: Optional[int] = ...,
+ receiver_uin: Optional[int] = ...,
+ stmessage_title: Optional[bytes] = ...,
+ stmessage_subtitle: Optional[bytes] = ...,
+ stmessage_message: Optional[bytes] = ...,
+ stmessage_giftpicid: Optional[int] = ...,
+ stmessage_comefrom: Optional[bytes] = ...,
+ stmessage_exflag: Optional[int] = ...,
+ to_all_gift_id: Optional[bytes] = ...,
+ comefrom_link: Optional[bytes] = ...,
+ pb_reserve: Optional[bytes] = ...,
+ receiver_name: Optional[bytes] = ...,
+ receiver_pic: Optional[bytes] = ...,
+ stmessage_gifturl: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["animation_brief",b"animation_brief","animation_package_id",b"animation_package_id","animation_package_url_a",b"animation_package_url_a","animation_package_url_i",b"animation_package_url_i","comefrom_link",b"comefrom_link","gift_count",b"gift_count","gift_id",b"gift_id","gray_tip_content",b"gray_tip_content","pb_reserve",b"pb_reserve","receiver_name",b"receiver_name","receiver_pic",b"receiver_pic","receiver_uin",b"receiver_uin","remind_brief",b"remind_brief","sender_uin",b"sender_uin","stmessage_comefrom",b"stmessage_comefrom","stmessage_exflag",b"stmessage_exflag","stmessage_giftpicid",b"stmessage_giftpicid","stmessage_gifturl",b"stmessage_gifturl","stmessage_message",b"stmessage_message","stmessage_subtitle",b"stmessage_subtitle","stmessage_title",b"stmessage_title","to_all_gift_id",b"to_all_gift_id"]) -> bool: ...
+ def ClearField(self, field_name: Literal["animation_brief",b"animation_brief","animation_package_id",b"animation_package_id","animation_package_url_a",b"animation_package_url_a","animation_package_url_i",b"animation_package_url_i","comefrom_link",b"comefrom_link","gift_count",b"gift_count","gift_id",b"gift_id","gray_tip_content",b"gray_tip_content","pb_reserve",b"pb_reserve","receiver_name",b"receiver_name","receiver_pic",b"receiver_pic","receiver_uin",b"receiver_uin","remind_brief",b"remind_brief","sender_uin",b"sender_uin","stmessage_comefrom",b"stmessage_comefrom","stmessage_exflag",b"stmessage_exflag","stmessage_giftpicid",b"stmessage_giftpicid","stmessage_gifturl",b"stmessage_gifturl","stmessage_message",b"stmessage_message","stmessage_subtitle",b"stmessage_subtitle","stmessage_title",b"stmessage_title","to_all_gift_id",b"to_all_gift_id"]) -> None: ...
class EIMInfo(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
ROOT_ID_FIELD_NUMBER: int
FLAG_FIELD_NUMBER: int
- root_id: int = ...
- flag: int = ...
-
+ root_id: int
+ flag: int
def __init__(self,
*,
- root_id : Optional[int] = ...,
- flag : Optional[int] = ...,
+ root_id: Optional[int] = ...,
+ flag: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"flag",b"flag",u"root_id",b"root_id"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"flag",b"flag",u"root_id",b"root_id"]) -> None: ...
+ def HasField(self, field_name: Literal["flag",b"flag","root_id",b"root_id"]) -> bool: ...
+ def ClearField(self, field_name: Literal["flag",b"flag","root_id",b"root_id"]) -> None: ...
class Elem(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
TEXT_FIELD_NUMBER: int
FACE_FIELD_NUMBER: int
ONLINE_IMAGE_FIELD_NUMBER: int
@@ -541,240 +531,186 @@ class Elem(Message):
LIGHT_APP_FIELD_NUMBER: int
EIM_INFO_FIELD_NUMBER: int
COMMON_ELEM_FIELD_NUMBER: int
- bankcode_ctrl_info: bytes = ...
-
@property
def text(self) -> PlainText: ...
-
@property
def face(self) -> Face: ...
-
@property
def online_image(self) -> OnlineImage: ...
-
@property
def not_online_image(self) -> NotOnlineImage: ...
-
@property
def trans_elem_info(self) -> TransElem: ...
-
@property
def market_face(self) -> MarketFace: ...
-
@property
def elem_flags(self) -> ElemFlags: ...
-
@property
def custom_face(self) -> CustomFace: ...
-
@property
def elem_flags2(self) -> ElemFlags2: ...
-
@property
def fun_face(self) -> FunFace: ...
-
@property
def secret_file(self) -> SecretFileMsg: ...
-
@property
def rich_msg(self) -> RichMsg: ...
-
@property
def group_file(self) -> GroupFile: ...
-
@property
def pub_group(self) -> PubGroup: ...
-
@property
def market_trans(self) -> MarketTrans: ...
-
@property
def extra_info(self) -> ExtraInfo: ...
-
@property
def shake_window(self) -> ShakeWindow: ...
-
@property
def pub_account(self) -> PubAccount: ...
-
@property
def video_file(self) -> VideoFile: ...
-
@property
def tips_info(self) -> TipsInfo: ...
-
@property
def anon_group_msg(self) -> AnonymousGroupMsg: ...
-
@property
def qq_live_old(self) -> QQLiveOld: ...
-
@property
def life_online(self) -> LifeOnlineAccount: ...
-
@property
def qqwallet_msg(self) -> QQWalletMsg: ...
-
@property
def crm_elem(self) -> CrmElem: ...
-
@property
def conference_tips_info(self) -> ConferenceTipsInfo: ...
-
@property
def redbag_info(self) -> RedBagInfo: ...
-
@property
def low_version_tips(self) -> LowVersionTips: ...
-
+ bankcode_ctrl_info: bytes
@property
def near_by_msg(self) -> NearByMessageType: ...
-
@property
def custom_elem(self) -> CustomElem: ...
-
@property
def location_info(self) -> LocationInfo: ...
-
@property
def pub_acc_info(self) -> PubAccInfo: ...
-
@property
def small_emoji(self) -> SmallEmoji: ...
-
@property
def fsj_msg_elem(self) -> FSJMessageElem: ...
-
@property
def ark_app(self) -> ArkAppElem: ...
-
@property
def general_flags(self) -> GeneralFlags: ...
-
@property
def hc_flash_pic(self) -> CustomFace: ...
-
@property
def deliver_gift_msg(self) -> DeliverGiftMsg: ...
-
@property
def bitapp_msg(self) -> BitAppMsg: ...
-
@property
def open_qq_data(self) -> OpenQQData: ...
-
@property
def apollo_msg(self) -> ApolloActMsg: ...
-
@property
def group_pub_acc_info(self) -> GroupPubAccountInfo: ...
-
@property
def bless_msg(self) -> BlessingMessage: ...
-
@property
def src_msg(self) -> SourceMsg: ...
-
@property
def lola_msg(self) -> LolaMsg: ...
-
@property
def group_business_msg(self) -> GroupBusinessMsg: ...
-
@property
def workflow_notify(self) -> WorkflowNotifyMsg: ...
-
@property
def pat_elem(self) -> PatsElem: ...
-
@property
def group_post_elem(self) -> GroupPostElem: ...
-
@property
def light_app(self) -> LightAppElem: ...
-
@property
def eim_info(self) -> EIMInfo: ...
-
@property
def common_elem(self) -> CommonElem: ...
-
def __init__(self,
*,
- text : Optional[PlainText] = ...,
- face : Optional[Face] = ...,
- online_image : Optional[OnlineImage] = ...,
- not_online_image : Optional[NotOnlineImage] = ...,
- trans_elem_info : Optional[TransElem] = ...,
- market_face : Optional[MarketFace] = ...,
- elem_flags : Optional[ElemFlags] = ...,
- custom_face : Optional[CustomFace] = ...,
- elem_flags2 : Optional[ElemFlags2] = ...,
- fun_face : Optional[FunFace] = ...,
- secret_file : Optional[SecretFileMsg] = ...,
- rich_msg : Optional[RichMsg] = ...,
- group_file : Optional[GroupFile] = ...,
- pub_group : Optional[PubGroup] = ...,
- market_trans : Optional[MarketTrans] = ...,
- extra_info : Optional[ExtraInfo] = ...,
- shake_window : Optional[ShakeWindow] = ...,
- pub_account : Optional[PubAccount] = ...,
- video_file : Optional[VideoFile] = ...,
- tips_info : Optional[TipsInfo] = ...,
- anon_group_msg : Optional[AnonymousGroupMsg] = ...,
- qq_live_old : Optional[QQLiveOld] = ...,
- life_online : Optional[LifeOnlineAccount] = ...,
- qqwallet_msg : Optional[QQWalletMsg] = ...,
- crm_elem : Optional[CrmElem] = ...,
- conference_tips_info : Optional[ConferenceTipsInfo] = ...,
- redbag_info : Optional[RedBagInfo] = ...,
- low_version_tips : Optional[LowVersionTips] = ...,
- bankcode_ctrl_info : Optional[bytes] = ...,
- near_by_msg : Optional[NearByMessageType] = ...,
- custom_elem : Optional[CustomElem] = ...,
- location_info : Optional[LocationInfo] = ...,
- pub_acc_info : Optional[PubAccInfo] = ...,
- small_emoji : Optional[SmallEmoji] = ...,
- fsj_msg_elem : Optional[FSJMessageElem] = ...,
- ark_app : Optional[ArkAppElem] = ...,
- general_flags : Optional[GeneralFlags] = ...,
- hc_flash_pic : Optional[CustomFace] = ...,
- deliver_gift_msg : Optional[DeliverGiftMsg] = ...,
- bitapp_msg : Optional[BitAppMsg] = ...,
- open_qq_data : Optional[OpenQQData] = ...,
- apollo_msg : Optional[ApolloActMsg] = ...,
- group_pub_acc_info : Optional[GroupPubAccountInfo] = ...,
- bless_msg : Optional[BlessingMessage] = ...,
- src_msg : Optional[SourceMsg] = ...,
- lola_msg : Optional[LolaMsg] = ...,
- group_business_msg : Optional[GroupBusinessMsg] = ...,
- workflow_notify : Optional[WorkflowNotifyMsg] = ...,
- pat_elem : Optional[PatsElem] = ...,
- group_post_elem : Optional[GroupPostElem] = ...,
- light_app : Optional[LightAppElem] = ...,
- eim_info : Optional[EIMInfo] = ...,
- common_elem : Optional[CommonElem] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal[u"anon_group_msg",b"anon_group_msg",u"apollo_msg",b"apollo_msg",u"ark_app",b"ark_app",u"bankcode_ctrl_info",b"bankcode_ctrl_info",u"bitapp_msg",b"bitapp_msg",u"bless_msg",b"bless_msg",u"common_elem",b"common_elem",u"conference_tips_info",b"conference_tips_info",u"crm_elem",b"crm_elem",u"custom_elem",b"custom_elem",u"custom_face",b"custom_face",u"deliver_gift_msg",b"deliver_gift_msg",u"eim_info",b"eim_info",u"elem_flags",b"elem_flags",u"elem_flags2",b"elem_flags2",u"extra_info",b"extra_info",u"face",b"face",u"fsj_msg_elem",b"fsj_msg_elem",u"fun_face",b"fun_face",u"general_flags",b"general_flags",u"group_business_msg",b"group_business_msg",u"group_file",b"group_file",u"group_post_elem",b"group_post_elem",u"group_pub_acc_info",b"group_pub_acc_info",u"hc_flash_pic",b"hc_flash_pic",u"life_online",b"life_online",u"light_app",b"light_app",u"location_info",b"location_info",u"lola_msg",b"lola_msg",u"low_version_tips",b"low_version_tips",u"market_face",b"market_face",u"market_trans",b"market_trans",u"near_by_msg",b"near_by_msg",u"not_online_image",b"not_online_image",u"online_image",b"online_image",u"open_qq_data",b"open_qq_data",u"pat_elem",b"pat_elem",u"pub_acc_info",b"pub_acc_info",u"pub_account",b"pub_account",u"pub_group",b"pub_group",u"qq_live_old",b"qq_live_old",u"qqwallet_msg",b"qqwallet_msg",u"redbag_info",b"redbag_info",u"rich_msg",b"rich_msg",u"secret_file",b"secret_file",u"shake_window",b"shake_window",u"small_emoji",b"small_emoji",u"src_msg",b"src_msg",u"text",b"text",u"tips_info",b"tips_info",u"trans_elem_info",b"trans_elem_info",u"video_file",b"video_file",u"workflow_notify",b"workflow_notify"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"anon_group_msg",b"anon_group_msg",u"apollo_msg",b"apollo_msg",u"ark_app",b"ark_app",u"bankcode_ctrl_info",b"bankcode_ctrl_info",u"bitapp_msg",b"bitapp_msg",u"bless_msg",b"bless_msg",u"common_elem",b"common_elem",u"conference_tips_info",b"conference_tips_info",u"crm_elem",b"crm_elem",u"custom_elem",b"custom_elem",u"custom_face",b"custom_face",u"deliver_gift_msg",b"deliver_gift_msg",u"eim_info",b"eim_info",u"elem_flags",b"elem_flags",u"elem_flags2",b"elem_flags2",u"extra_info",b"extra_info",u"face",b"face",u"fsj_msg_elem",b"fsj_msg_elem",u"fun_face",b"fun_face",u"general_flags",b"general_flags",u"group_business_msg",b"group_business_msg",u"group_file",b"group_file",u"group_post_elem",b"group_post_elem",u"group_pub_acc_info",b"group_pub_acc_info",u"hc_flash_pic",b"hc_flash_pic",u"life_online",b"life_online",u"light_app",b"light_app",u"location_info",b"location_info",u"lola_msg",b"lola_msg",u"low_version_tips",b"low_version_tips",u"market_face",b"market_face",u"market_trans",b"market_trans",u"near_by_msg",b"near_by_msg",u"not_online_image",b"not_online_image",u"online_image",b"online_image",u"open_qq_data",b"open_qq_data",u"pat_elem",b"pat_elem",u"pub_acc_info",b"pub_acc_info",u"pub_account",b"pub_account",u"pub_group",b"pub_group",u"qq_live_old",b"qq_live_old",u"qqwallet_msg",b"qqwallet_msg",u"redbag_info",b"redbag_info",u"rich_msg",b"rich_msg",u"secret_file",b"secret_file",u"shake_window",b"shake_window",u"small_emoji",b"small_emoji",u"src_msg",b"src_msg",u"text",b"text",u"tips_info",b"tips_info",u"trans_elem_info",b"trans_elem_info",u"video_file",b"video_file",u"workflow_notify",b"workflow_notify"]) -> None: ...
+ text: Optional[PlainText] = ...,
+ face: Optional[Face] = ...,
+ online_image: Optional[OnlineImage] = ...,
+ not_online_image: Optional[NotOnlineImage] = ...,
+ trans_elem_info: Optional[TransElem] = ...,
+ market_face: Optional[MarketFace] = ...,
+ elem_flags: Optional[ElemFlags] = ...,
+ custom_face: Optional[CustomFace] = ...,
+ elem_flags2: Optional[ElemFlags2] = ...,
+ fun_face: Optional[FunFace] = ...,
+ secret_file: Optional[SecretFileMsg] = ...,
+ rich_msg: Optional[RichMsg] = ...,
+ group_file: Optional[GroupFile] = ...,
+ pub_group: Optional[PubGroup] = ...,
+ market_trans: Optional[MarketTrans] = ...,
+ extra_info: Optional[ExtraInfo] = ...,
+ shake_window: Optional[ShakeWindow] = ...,
+ pub_account: Optional[PubAccount] = ...,
+ video_file: Optional[VideoFile] = ...,
+ tips_info: Optional[TipsInfo] = ...,
+ anon_group_msg: Optional[AnonymousGroupMsg] = ...,
+ qq_live_old: Optional[QQLiveOld] = ...,
+ life_online: Optional[LifeOnlineAccount] = ...,
+ qqwallet_msg: Optional[QQWalletMsg] = ...,
+ crm_elem: Optional[CrmElem] = ...,
+ conference_tips_info: Optional[ConferenceTipsInfo] = ...,
+ redbag_info: Optional[RedBagInfo] = ...,
+ low_version_tips: Optional[LowVersionTips] = ...,
+ bankcode_ctrl_info: Optional[bytes] = ...,
+ near_by_msg: Optional[NearByMessageType] = ...,
+ custom_elem: Optional[CustomElem] = ...,
+ location_info: Optional[LocationInfo] = ...,
+ pub_acc_info: Optional[PubAccInfo] = ...,
+ small_emoji: Optional[SmallEmoji] = ...,
+ fsj_msg_elem: Optional[FSJMessageElem] = ...,
+ ark_app: Optional[ArkAppElem] = ...,
+ general_flags: Optional[GeneralFlags] = ...,
+ hc_flash_pic: Optional[CustomFace] = ...,
+ deliver_gift_msg: Optional[DeliverGiftMsg] = ...,
+ bitapp_msg: Optional[BitAppMsg] = ...,
+ open_qq_data: Optional[OpenQQData] = ...,
+ apollo_msg: Optional[ApolloActMsg] = ...,
+ group_pub_acc_info: Optional[GroupPubAccountInfo] = ...,
+ bless_msg: Optional[BlessingMessage] = ...,
+ src_msg: Optional[SourceMsg] = ...,
+ lola_msg: Optional[LolaMsg] = ...,
+ group_business_msg: Optional[GroupBusinessMsg] = ...,
+ workflow_notify: Optional[WorkflowNotifyMsg] = ...,
+ pat_elem: Optional[PatsElem] = ...,
+ group_post_elem: Optional[GroupPostElem] = ...,
+ light_app: Optional[LightAppElem] = ...,
+ eim_info: Optional[EIMInfo] = ...,
+ common_elem: Optional[CommonElem] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["anon_group_msg",b"anon_group_msg","apollo_msg",b"apollo_msg","ark_app",b"ark_app","bankcode_ctrl_info",b"bankcode_ctrl_info","bitapp_msg",b"bitapp_msg","bless_msg",b"bless_msg","common_elem",b"common_elem","conference_tips_info",b"conference_tips_info","crm_elem",b"crm_elem","custom_elem",b"custom_elem","custom_face",b"custom_face","deliver_gift_msg",b"deliver_gift_msg","eim_info",b"eim_info","elem_flags",b"elem_flags","elem_flags2",b"elem_flags2","extra_info",b"extra_info","face",b"face","fsj_msg_elem",b"fsj_msg_elem","fun_face",b"fun_face","general_flags",b"general_flags","group_business_msg",b"group_business_msg","group_file",b"group_file","group_post_elem",b"group_post_elem","group_pub_acc_info",b"group_pub_acc_info","hc_flash_pic",b"hc_flash_pic","life_online",b"life_online","light_app",b"light_app","location_info",b"location_info","lola_msg",b"lola_msg","low_version_tips",b"low_version_tips","market_face",b"market_face","market_trans",b"market_trans","near_by_msg",b"near_by_msg","not_online_image",b"not_online_image","online_image",b"online_image","open_qq_data",b"open_qq_data","pat_elem",b"pat_elem","pub_acc_info",b"pub_acc_info","pub_account",b"pub_account","pub_group",b"pub_group","qq_live_old",b"qq_live_old","qqwallet_msg",b"qqwallet_msg","redbag_info",b"redbag_info","rich_msg",b"rich_msg","secret_file",b"secret_file","shake_window",b"shake_window","small_emoji",b"small_emoji","src_msg",b"src_msg","text",b"text","tips_info",b"tips_info","trans_elem_info",b"trans_elem_info","video_file",b"video_file","workflow_notify",b"workflow_notify"]) -> bool: ...
+ def ClearField(self, field_name: Literal["anon_group_msg",b"anon_group_msg","apollo_msg",b"apollo_msg","ark_app",b"ark_app","bankcode_ctrl_info",b"bankcode_ctrl_info","bitapp_msg",b"bitapp_msg","bless_msg",b"bless_msg","common_elem",b"common_elem","conference_tips_info",b"conference_tips_info","crm_elem",b"crm_elem","custom_elem",b"custom_elem","custom_face",b"custom_face","deliver_gift_msg",b"deliver_gift_msg","eim_info",b"eim_info","elem_flags",b"elem_flags","elem_flags2",b"elem_flags2","extra_info",b"extra_info","face",b"face","fsj_msg_elem",b"fsj_msg_elem","fun_face",b"fun_face","general_flags",b"general_flags","group_business_msg",b"group_business_msg","group_file",b"group_file","group_post_elem",b"group_post_elem","group_pub_acc_info",b"group_pub_acc_info","hc_flash_pic",b"hc_flash_pic","life_online",b"life_online","light_app",b"light_app","location_info",b"location_info","lola_msg",b"lola_msg","low_version_tips",b"low_version_tips","market_face",b"market_face","market_trans",b"market_trans","near_by_msg",b"near_by_msg","not_online_image",b"not_online_image","online_image",b"online_image","open_qq_data",b"open_qq_data","pat_elem",b"pat_elem","pub_acc_info",b"pub_acc_info","pub_account",b"pub_account","pub_group",b"pub_group","qq_live_old",b"qq_live_old","qqwallet_msg",b"qqwallet_msg","redbag_info",b"redbag_info","rich_msg",b"rich_msg","secret_file",b"secret_file","shake_window",b"shake_window","small_emoji",b"small_emoji","src_msg",b"src_msg","text",b"text","tips_info",b"tips_info","trans_elem_info",b"trans_elem_info","video_file",b"video_file","workflow_notify",b"workflow_notify"]) -> None: ...
class ElemFlags(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
FLAGS1_FIELD_NUMBER: int
BUSINESS_DATA_FIELD_NUMBER: int
- flags1: bytes = ...
- business_data: bytes = ...
-
+ flags1: bytes
+ business_data: bytes
def __init__(self,
*,
- flags1 : Optional[bytes] = ...,
- business_data : Optional[bytes] = ...,
+ flags1: Optional[bytes] = ...,
+ business_data: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"business_data",b"business_data",u"flags1",b"flags1"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"business_data",b"business_data",u"flags1",b"flags1"]) -> None: ...
+ def HasField(self, field_name: Literal["business_data",b"business_data","flags1",b"flags1"]) -> bool: ...
+ def ClearField(self, field_name: Literal["business_data",b"business_data","flags1",b"flags1"]) -> None: ...
class ElemFlags2(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
COLOR_TEXT_ID_FIELD_NUMBER: int
MSG_ID_FIELD_NUMBER: int
WHISPER_SESSION_ID_FIELD_NUMBER: int
@@ -789,64 +725,59 @@ class ElemFlags2(Message):
CUSTOM_FONT_FIELD_NUMBER: int
PC_SUPPORT_DEF_FIELD_NUMBER: int
CRM_FLAGS_FIELD_NUMBER: int
- color_text_id: int = ...
- msg_id: int = ...
- whisper_session_id: int = ...
- ptt_change_bit: int = ...
- vip_status: int = ...
- compatible_id: int = ...
- msg_rpt_cnt: int = ...
- longtitude: int = ...
- latitude: int = ...
- custom_font: int = ...
- crm_flags: int = ...
-
+ color_text_id: int
+ msg_id: int
+ whisper_session_id: int
+ ptt_change_bit: int
+ vip_status: int
+ compatible_id: int
@property
def insts(self) -> RepeatedCompositeFieldContainer[Inst]: ...
-
+ msg_rpt_cnt: int
@property
def src_inst(self) -> Inst: ...
-
+ longtitude: int
+ latitude: int
+ custom_font: int
@property
def pc_support_def(self) -> PcSupportDef: ...
-
- def __init__(self,
- *,
- color_text_id : Optional[int] = ...,
- msg_id : Optional[int] = ...,
- whisper_session_id : Optional[int] = ...,
- ptt_change_bit : Optional[int] = ...,
- vip_status : Optional[int] = ...,
- compatible_id : Optional[int] = ...,
- insts : Optional[Iterable[Inst]] = ...,
- msg_rpt_cnt : Optional[int] = ...,
- src_inst : Optional[Inst] = ...,
- longtitude : Optional[int] = ...,
- latitude : Optional[int] = ...,
- custom_font : Optional[int] = ...,
- pc_support_def : Optional[PcSupportDef] = ...,
- crm_flags : Optional[int] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal[u"color_text_id",b"color_text_id",u"compatible_id",b"compatible_id",u"crm_flags",b"crm_flags",u"custom_font",b"custom_font",u"latitude",b"latitude",u"longtitude",b"longtitude",u"msg_id",b"msg_id",u"msg_rpt_cnt",b"msg_rpt_cnt",u"pc_support_def",b"pc_support_def",u"ptt_change_bit",b"ptt_change_bit",u"src_inst",b"src_inst",u"vip_status",b"vip_status",u"whisper_session_id",b"whisper_session_id"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"color_text_id",b"color_text_id",u"compatible_id",b"compatible_id",u"crm_flags",b"crm_flags",u"custom_font",b"custom_font",u"insts",b"insts",u"latitude",b"latitude",u"longtitude",b"longtitude",u"msg_id",b"msg_id",u"msg_rpt_cnt",b"msg_rpt_cnt",u"pc_support_def",b"pc_support_def",u"ptt_change_bit",b"ptt_change_bit",u"src_inst",b"src_inst",u"vip_status",b"vip_status",u"whisper_session_id",b"whisper_session_id"]) -> None: ...
+ crm_flags: int
+ def __init__(self,
+ *,
+ color_text_id: Optional[int] = ...,
+ msg_id: Optional[int] = ...,
+ whisper_session_id: Optional[int] = ...,
+ ptt_change_bit: Optional[int] = ...,
+ vip_status: Optional[int] = ...,
+ compatible_id: Optional[int] = ...,
+ insts: Optional[Iterable[Inst]] = ...,
+ msg_rpt_cnt: Optional[int] = ...,
+ src_inst: Optional[Inst] = ...,
+ longtitude: Optional[int] = ...,
+ latitude: Optional[int] = ...,
+ custom_font: Optional[int] = ...,
+ pc_support_def: Optional[PcSupportDef] = ...,
+ crm_flags: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["color_text_id",b"color_text_id","compatible_id",b"compatible_id","crm_flags",b"crm_flags","custom_font",b"custom_font","latitude",b"latitude","longtitude",b"longtitude","msg_id",b"msg_id","msg_rpt_cnt",b"msg_rpt_cnt","pc_support_def",b"pc_support_def","ptt_change_bit",b"ptt_change_bit","src_inst",b"src_inst","vip_status",b"vip_status","whisper_session_id",b"whisper_session_id"]) -> bool: ...
+ def ClearField(self, field_name: Literal["color_text_id",b"color_text_id","compatible_id",b"compatible_id","crm_flags",b"crm_flags","custom_font",b"custom_font","insts",b"insts","latitude",b"latitude","longtitude",b"longtitude","msg_id",b"msg_id","msg_rpt_cnt",b"msg_rpt_cnt","pc_support_def",b"pc_support_def","ptt_change_bit",b"ptt_change_bit","src_inst",b"src_inst","vip_status",b"vip_status","whisper_session_id",b"whisper_session_id"]) -> None: ...
class Inst(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
APP_ID_FIELD_NUMBER: int
INST_ID_FIELD_NUMBER: int
- app_id: int = ...
- inst_id: int = ...
-
+ app_id: int
+ inst_id: int
def __init__(self,
*,
- app_id : Optional[int] = ...,
- inst_id : Optional[int] = ...,
+ app_id: Optional[int] = ...,
+ inst_id: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"app_id",b"app_id",u"inst_id",b"inst_id"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"app_id",b"app_id",u"inst_id",b"inst_id"]) -> None: ...
+ def HasField(self, field_name: Literal["app_id",b"app_id","inst_id",b"inst_id"]) -> bool: ...
+ def ClearField(self, field_name: Literal["app_id",b"app_id","inst_id",b"inst_id"]) -> None: ...
class ExtraInfo(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
NICK_FIELD_NUMBER: int
GROUP_CARD_FIELD_NUMBER: int
LEVEL_FIELD_NUMBER: int
@@ -859,118 +790,111 @@ class ExtraInfo(Message):
MSG_STATE_FLAG_FIELD_NUMBER: int
APNS_SOUND_TYPE_FIELD_NUMBER: int
NEW_GROUP_FLAG_FIELD_NUMBER: int
- nick: bytes = ...
- group_card: bytes = ...
- level: int = ...
- flags: int = ...
- group_mask: int = ...
- msg_tail_id: int = ...
- sender_title: bytes = ...
- apns_tips: bytes = ...
- uin: int = ...
- msg_state_flag: int = ...
- apns_sound_type: int = ...
- new_group_flag: int = ...
-
- def __init__(self,
- *,
- nick : Optional[bytes] = ...,
- group_card : Optional[bytes] = ...,
- level : Optional[int] = ...,
- flags : Optional[int] = ...,
- group_mask : Optional[int] = ...,
- msg_tail_id : Optional[int] = ...,
- sender_title : Optional[bytes] = ...,
- apns_tips : Optional[bytes] = ...,
- uin : Optional[int] = ...,
- msg_state_flag : Optional[int] = ...,
- apns_sound_type : Optional[int] = ...,
- new_group_flag : Optional[int] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal[u"apns_sound_type",b"apns_sound_type",u"apns_tips",b"apns_tips",u"flags",b"flags",u"group_card",b"group_card",u"group_mask",b"group_mask",u"level",b"level",u"msg_state_flag",b"msg_state_flag",u"msg_tail_id",b"msg_tail_id",u"new_group_flag",b"new_group_flag",u"nick",b"nick",u"sender_title",b"sender_title",u"uin",b"uin"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"apns_sound_type",b"apns_sound_type",u"apns_tips",b"apns_tips",u"flags",b"flags",u"group_card",b"group_card",u"group_mask",b"group_mask",u"level",b"level",u"msg_state_flag",b"msg_state_flag",u"msg_tail_id",b"msg_tail_id",u"new_group_flag",b"new_group_flag",u"nick",b"nick",u"sender_title",b"sender_title",u"uin",b"uin"]) -> None: ...
+ nick: bytes
+ group_card: bytes
+ level: int
+ flags: int
+ group_mask: int
+ msg_tail_id: int
+ sender_title: bytes
+ apns_tips: bytes
+ uin: int
+ msg_state_flag: int
+ apns_sound_type: int
+ new_group_flag: int
+ def __init__(self,
+ *,
+ nick: Optional[bytes] = ...,
+ group_card: Optional[bytes] = ...,
+ level: Optional[int] = ...,
+ flags: Optional[int] = ...,
+ group_mask: Optional[int] = ...,
+ msg_tail_id: Optional[int] = ...,
+ sender_title: Optional[bytes] = ...,
+ apns_tips: Optional[bytes] = ...,
+ uin: Optional[int] = ...,
+ msg_state_flag: Optional[int] = ...,
+ apns_sound_type: Optional[int] = ...,
+ new_group_flag: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["apns_sound_type",b"apns_sound_type","apns_tips",b"apns_tips","flags",b"flags","group_card",b"group_card","group_mask",b"group_mask","level",b"level","msg_state_flag",b"msg_state_flag","msg_tail_id",b"msg_tail_id","new_group_flag",b"new_group_flag","nick",b"nick","sender_title",b"sender_title","uin",b"uin"]) -> bool: ...
+ def ClearField(self, field_name: Literal["apns_sound_type",b"apns_sound_type","apns_tips",b"apns_tips","flags",b"flags","group_card",b"group_card","group_mask",b"group_mask","level",b"level","msg_state_flag",b"msg_state_flag","msg_tail_id",b"msg_tail_id","new_group_flag",b"new_group_flag","nick",b"nick","sender_title",b"sender_title","uin",b"uin"]) -> None: ...
class FSJMessageElem(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
MSG_TYPE_FIELD_NUMBER: int
- msg_type: int = ...
-
+ msg_type: int
def __init__(self,
*,
- msg_type : Optional[int] = ...,
+ msg_type: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"msg_type",b"msg_type"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"msg_type",b"msg_type"]) -> None: ...
+ def HasField(self, field_name: Literal["msg_type",b"msg_type"]) -> bool: ...
+ def ClearField(self, field_name: Literal["msg_type",b"msg_type"]) -> None: ...
class Face(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
INDEX_FIELD_NUMBER: int
OLD_FIELD_NUMBER: int
BUF_FIELD_NUMBER: int
- index: int = ...
- old: bytes = ...
- buf: bytes = ...
-
+ index: int
+ old: bytes
+ buf: bytes
def __init__(self,
*,
- index : Optional[int] = ...,
- old : Optional[bytes] = ...,
- buf : Optional[bytes] = ...,
+ index: Optional[int] = ...,
+ old: Optional[bytes] = ...,
+ buf: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"buf",b"buf",u"index",b"index",u"old",b"old"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"buf",b"buf",u"index",b"index",u"old",b"old"]) -> None: ...
+ def HasField(self, field_name: Literal["buf",b"buf","index",b"index","old",b"old"]) -> bool: ...
+ def ClearField(self, field_name: Literal["buf",b"buf","index",b"index","old",b"old"]) -> None: ...
class FunFace(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
TURNTABLE_FIELD_NUMBER: int
BOMB_FIELD_NUMBER: int
-
@property
def turntable(self) -> Turntable: ...
-
@property
def bomb(self) -> Bomb: ...
-
def __init__(self,
*,
- turntable : Optional[Turntable] = ...,
- bomb : Optional[Bomb] = ...,
+ turntable: Optional[Turntable] = ...,
+ bomb: Optional[Bomb] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"bomb",b"bomb",u"turntable",b"turntable"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"bomb",b"bomb",u"turntable",b"turntable"]) -> None: ...
+ def HasField(self, field_name: Literal["bomb",b"bomb","turntable",b"turntable"]) -> bool: ...
+ def ClearField(self, field_name: Literal["bomb",b"bomb","turntable",b"turntable"]) -> None: ...
class Bomb(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
BURST_FIELD_NUMBER: int
- burst: bool = ...
-
+ burst: bool
def __init__(self,
*,
- burst : Optional[bool] = ...,
+ burst: Optional[bool] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"burst",b"burst"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"burst",b"burst"]) -> None: ...
+ def HasField(self, field_name: Literal["burst",b"burst"]) -> bool: ...
+ def ClearField(self, field_name: Literal["burst",b"burst"]) -> None: ...
class Turntable(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
UIN_LIST_FIELD_NUMBER: int
HIT_UIN_FIELD_NUMBER: int
HIT_UIN_NICK_FIELD_NUMBER: int
- uin_list: RepeatedScalarFieldContainer[int] = ...
- hit_uin: int = ...
- hit_uin_nick: Text = ...
-
+ @property
+ def uin_list(self) -> RepeatedScalarFieldContainer[int]: ...
+ hit_uin: int
+ hit_uin_nick: Text
def __init__(self,
*,
- uin_list : Optional[Iterable[int]] = ...,
- hit_uin : Optional[int] = ...,
- hit_uin_nick : Optional[Text] = ...,
+ uin_list: Optional[Iterable[int]] = ...,
+ hit_uin: Optional[int] = ...,
+ hit_uin_nick: Optional[Text] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"hit_uin",b"hit_uin",u"hit_uin_nick",b"hit_uin_nick"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"hit_uin",b"hit_uin",u"hit_uin_nick",b"hit_uin_nick",u"uin_list",b"uin_list"]) -> None: ...
+ def HasField(self, field_name: Literal["hit_uin",b"hit_uin","hit_uin_nick",b"hit_uin_nick"]) -> bool: ...
+ def ClearField(self, field_name: Literal["hit_uin",b"hit_uin","hit_uin_nick",b"hit_uin_nick","uin_list",b"uin_list"]) -> None: ...
class GeneralFlags(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
BUBBLE_DIY_TEXT_ID_FIELD_NUMBER: int
GROUP_FLAG_NEW_FIELD_NUMBER: int
UIN_FIELD_NUMBER: int
@@ -990,53 +914,52 @@ class GeneralFlags(Message):
PENDANT_ID_FIELD_NUMBER: int
RP_INDEX_FIELD_NUMBER: int
PB_RESERVE_FIELD_NUMBER: int
- bubble_diy_text_id: int = ...
- group_flag_new: int = ...
- uin: int = ...
- rp_id: bytes = ...
- prp_fold: int = ...
- long_text_flag: int = ...
- long_text_resid: bytes = ...
- group_type: int = ...
- to_uin_flag: int = ...
- glamour_level: int = ...
- member_level: int = ...
- group_rank_seq: int = ...
- olympic_torch: int = ...
- babyq_guide_msg_cookie: bytes = ...
- uin32_expert_flag: int = ...
- bubble_sub_id: int = ...
- pendant_id: int = ...
- rp_index: bytes = ...
- pb_reserve: bytes = ...
-
- def __init__(self,
- *,
- bubble_diy_text_id : Optional[int] = ...,
- group_flag_new : Optional[int] = ...,
- uin : Optional[int] = ...,
- rp_id : Optional[bytes] = ...,
- prp_fold : Optional[int] = ...,
- long_text_flag : Optional[int] = ...,
- long_text_resid : Optional[bytes] = ...,
- group_type : Optional[int] = ...,
- to_uin_flag : Optional[int] = ...,
- glamour_level : Optional[int] = ...,
- member_level : Optional[int] = ...,
- group_rank_seq : Optional[int] = ...,
- olympic_torch : Optional[int] = ...,
- babyq_guide_msg_cookie : Optional[bytes] = ...,
- uin32_expert_flag : Optional[int] = ...,
- bubble_sub_id : Optional[int] = ...,
- pendant_id : Optional[int] = ...,
- rp_index : Optional[bytes] = ...,
- pb_reserve : Optional[bytes] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal[u"babyq_guide_msg_cookie",b"babyq_guide_msg_cookie",u"bubble_diy_text_id",b"bubble_diy_text_id",u"bubble_sub_id",b"bubble_sub_id",u"glamour_level",b"glamour_level",u"group_flag_new",b"group_flag_new",u"group_rank_seq",b"group_rank_seq",u"group_type",b"group_type",u"long_text_flag",b"long_text_flag",u"long_text_resid",b"long_text_resid",u"member_level",b"member_level",u"olympic_torch",b"olympic_torch",u"pb_reserve",b"pb_reserve",u"pendant_id",b"pendant_id",u"prp_fold",b"prp_fold",u"rp_id",b"rp_id",u"rp_index",b"rp_index",u"to_uin_flag",b"to_uin_flag",u"uin",b"uin",u"uin32_expert_flag",b"uin32_expert_flag"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"babyq_guide_msg_cookie",b"babyq_guide_msg_cookie",u"bubble_diy_text_id",b"bubble_diy_text_id",u"bubble_sub_id",b"bubble_sub_id",u"glamour_level",b"glamour_level",u"group_flag_new",b"group_flag_new",u"group_rank_seq",b"group_rank_seq",u"group_type",b"group_type",u"long_text_flag",b"long_text_flag",u"long_text_resid",b"long_text_resid",u"member_level",b"member_level",u"olympic_torch",b"olympic_torch",u"pb_reserve",b"pb_reserve",u"pendant_id",b"pendant_id",u"prp_fold",b"prp_fold",u"rp_id",b"rp_id",u"rp_index",b"rp_index",u"to_uin_flag",b"to_uin_flag",u"uin",b"uin",u"uin32_expert_flag",b"uin32_expert_flag"]) -> None: ...
+ bubble_diy_text_id: int
+ group_flag_new: int
+ uin: int
+ rp_id: bytes
+ prp_fold: int
+ long_text_flag: int
+ long_text_resid: bytes
+ group_type: int
+ to_uin_flag: int
+ glamour_level: int
+ member_level: int
+ group_rank_seq: int
+ olympic_torch: int
+ babyq_guide_msg_cookie: bytes
+ uin32_expert_flag: int
+ bubble_sub_id: int
+ pendant_id: int
+ rp_index: bytes
+ pb_reserve: bytes
+ def __init__(self,
+ *,
+ bubble_diy_text_id: Optional[int] = ...,
+ group_flag_new: Optional[int] = ...,
+ uin: Optional[int] = ...,
+ rp_id: Optional[bytes] = ...,
+ prp_fold: Optional[int] = ...,
+ long_text_flag: Optional[int] = ...,
+ long_text_resid: Optional[bytes] = ...,
+ group_type: Optional[int] = ...,
+ to_uin_flag: Optional[int] = ...,
+ glamour_level: Optional[int] = ...,
+ member_level: Optional[int] = ...,
+ group_rank_seq: Optional[int] = ...,
+ olympic_torch: Optional[int] = ...,
+ babyq_guide_msg_cookie: Optional[bytes] = ...,
+ uin32_expert_flag: Optional[int] = ...,
+ bubble_sub_id: Optional[int] = ...,
+ pendant_id: Optional[int] = ...,
+ rp_index: Optional[bytes] = ...,
+ pb_reserve: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["babyq_guide_msg_cookie",b"babyq_guide_msg_cookie","bubble_diy_text_id",b"bubble_diy_text_id","bubble_sub_id",b"bubble_sub_id","glamour_level",b"glamour_level","group_flag_new",b"group_flag_new","group_rank_seq",b"group_rank_seq","group_type",b"group_type","long_text_flag",b"long_text_flag","long_text_resid",b"long_text_resid","member_level",b"member_level","olympic_torch",b"olympic_torch","pb_reserve",b"pb_reserve","pendant_id",b"pendant_id","prp_fold",b"prp_fold","rp_id",b"rp_id","rp_index",b"rp_index","to_uin_flag",b"to_uin_flag","uin",b"uin","uin32_expert_flag",b"uin32_expert_flag"]) -> bool: ...
+ def ClearField(self, field_name: Literal["babyq_guide_msg_cookie",b"babyq_guide_msg_cookie","bubble_diy_text_id",b"bubble_diy_text_id","bubble_sub_id",b"bubble_sub_id","glamour_level",b"glamour_level","group_flag_new",b"group_flag_new","group_rank_seq",b"group_rank_seq","group_type",b"group_type","long_text_flag",b"long_text_flag","long_text_resid",b"long_text_resid","member_level",b"member_level","olympic_torch",b"olympic_torch","pb_reserve",b"pb_reserve","pendant_id",b"pendant_id","prp_fold",b"prp_fold","rp_id",b"rp_id","rp_index",b"rp_index","to_uin_flag",b"to_uin_flag","uin",b"uin","uin32_expert_flag",b"uin32_expert_flag"]) -> None: ...
class GroupBusinessMsg(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
FLAGS_FIELD_NUMBER: int
HEAD_URL_FIELD_NUMBER: int
HEAD_CLK_URL_FIELD_NUMBER: int
@@ -1045,31 +968,30 @@ class GroupBusinessMsg(Message):
RANK_FIELD_NUMBER: int
RANK_COLOR_FIELD_NUMBER: int
RANK_BGCOLOR_FIELD_NUMBER: int
- flags: int = ...
- head_url: bytes = ...
- head_clk_url: bytes = ...
- nick: bytes = ...
- nick_color: bytes = ...
- rank: bytes = ...
- rank_color: bytes = ...
- rank_bgcolor: bytes = ...
-
- def __init__(self,
- *,
- flags : Optional[int] = ...,
- head_url : Optional[bytes] = ...,
- head_clk_url : Optional[bytes] = ...,
- nick : Optional[bytes] = ...,
- nick_color : Optional[bytes] = ...,
- rank : Optional[bytes] = ...,
- rank_color : Optional[bytes] = ...,
- rank_bgcolor : Optional[bytes] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal[u"flags",b"flags",u"head_clk_url",b"head_clk_url",u"head_url",b"head_url",u"nick",b"nick",u"nick_color",b"nick_color",u"rank",b"rank",u"rank_bgcolor",b"rank_bgcolor",u"rank_color",b"rank_color"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"flags",b"flags",u"head_clk_url",b"head_clk_url",u"head_url",b"head_url",u"nick",b"nick",u"nick_color",b"nick_color",u"rank",b"rank",u"rank_bgcolor",b"rank_bgcolor",u"rank_color",b"rank_color"]) -> None: ...
+ flags: int
+ head_url: bytes
+ head_clk_url: bytes
+ nick: bytes
+ nick_color: bytes
+ rank: bytes
+ rank_color: bytes
+ rank_bgcolor: bytes
+ def __init__(self,
+ *,
+ flags: Optional[int] = ...,
+ head_url: Optional[bytes] = ...,
+ head_clk_url: Optional[bytes] = ...,
+ nick: Optional[bytes] = ...,
+ nick_color: Optional[bytes] = ...,
+ rank: Optional[bytes] = ...,
+ rank_color: Optional[bytes] = ...,
+ rank_bgcolor: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["flags",b"flags","head_clk_url",b"head_clk_url","head_url",b"head_url","nick",b"nick","nick_color",b"nick_color","rank",b"rank","rank_bgcolor",b"rank_bgcolor","rank_color",b"rank_color"]) -> bool: ...
+ def ClearField(self, field_name: Literal["flags",b"flags","head_clk_url",b"head_clk_url","head_url",b"head_url","nick",b"nick","nick_color",b"nick_color","rank",b"rank","rank_bgcolor",b"rank_bgcolor","rank_color",b"rank_color"]) -> None: ...
class GroupFile(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
FILENAME_FIELD_NUMBER: int
FILE_SIZE_FIELD_NUMBER: int
FILE_ID_FIELD_NUMBER: int
@@ -1080,62 +1002,59 @@ class GroupFile(Message):
BATCH_ITEM_ID_FIELD_NUMBER: int
FEED_MSG_TIME_FIELD_NUMBER: int
PB_RESERVE_FIELD_NUMBER: int
- filename: bytes = ...
- file_size: int = ...
- file_id: bytes = ...
- batch_id: bytes = ...
- file_key: bytes = ...
- mark: bytes = ...
- sequence: int = ...
- batch_item_id: bytes = ...
- feed_msg_time: int = ...
- pb_reserve: bytes = ...
-
- def __init__(self,
- *,
- filename : Optional[bytes] = ...,
- file_size : Optional[int] = ...,
- file_id : Optional[bytes] = ...,
- batch_id : Optional[bytes] = ...,
- file_key : Optional[bytes] = ...,
- mark : Optional[bytes] = ...,
- sequence : Optional[int] = ...,
- batch_item_id : Optional[bytes] = ...,
- feed_msg_time : Optional[int] = ...,
- pb_reserve : Optional[bytes] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal[u"batch_id",b"batch_id",u"batch_item_id",b"batch_item_id",u"feed_msg_time",b"feed_msg_time",u"file_id",b"file_id",u"file_key",b"file_key",u"file_size",b"file_size",u"filename",b"filename",u"mark",b"mark",u"pb_reserve",b"pb_reserve",u"sequence",b"sequence"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"batch_id",b"batch_id",u"batch_item_id",b"batch_item_id",u"feed_msg_time",b"feed_msg_time",u"file_id",b"file_id",u"file_key",b"file_key",u"file_size",b"file_size",u"filename",b"filename",u"mark",b"mark",u"pb_reserve",b"pb_reserve",u"sequence",b"sequence"]) -> None: ...
+ filename: bytes
+ file_size: int
+ file_id: bytes
+ batch_id: bytes
+ file_key: bytes
+ mark: bytes
+ sequence: int
+ batch_item_id: bytes
+ feed_msg_time: int
+ pb_reserve: bytes
+ def __init__(self,
+ *,
+ filename: Optional[bytes] = ...,
+ file_size: Optional[int] = ...,
+ file_id: Optional[bytes] = ...,
+ batch_id: Optional[bytes] = ...,
+ file_key: Optional[bytes] = ...,
+ mark: Optional[bytes] = ...,
+ sequence: Optional[int] = ...,
+ batch_item_id: Optional[bytes] = ...,
+ feed_msg_time: Optional[int] = ...,
+ pb_reserve: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["batch_id",b"batch_id","batch_item_id",b"batch_item_id","feed_msg_time",b"feed_msg_time","file_id",b"file_id","file_key",b"file_key","file_size",b"file_size","filename",b"filename","mark",b"mark","pb_reserve",b"pb_reserve","sequence",b"sequence"]) -> bool: ...
+ def ClearField(self, field_name: Literal["batch_id",b"batch_id","batch_item_id",b"batch_item_id","feed_msg_time",b"feed_msg_time","file_id",b"file_id","file_key",b"file_key","file_size",b"file_size","filename",b"filename","mark",b"mark","pb_reserve",b"pb_reserve","sequence",b"sequence"]) -> None: ...
class GroupPostElem(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
TRANS_TYPE_FIELD_NUMBER: int
TRANS_MSG_FIELD_NUMBER: int
- trans_type: int = ...
- trans_msg: bytes = ...
-
+ trans_type: int
+ trans_msg: bytes
def __init__(self,
*,
- trans_type : Optional[int] = ...,
- trans_msg : Optional[bytes] = ...,
+ trans_type: Optional[int] = ...,
+ trans_msg: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"trans_msg",b"trans_msg",u"trans_type",b"trans_type"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"trans_msg",b"trans_msg",u"trans_type",b"trans_type"]) -> None: ...
+ def HasField(self, field_name: Literal["trans_msg",b"trans_msg","trans_type",b"trans_type"]) -> bool: ...
+ def ClearField(self, field_name: Literal["trans_msg",b"trans_msg","trans_type",b"trans_type"]) -> None: ...
class GroupPubAccountInfo(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
PUB_ACCOUNT_FIELD_NUMBER: int
- pub_account: int = ...
-
+ pub_account: int
def __init__(self,
*,
- pub_account : Optional[int] = ...,
+ pub_account: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"pub_account",b"pub_account"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"pub_account",b"pub_account"]) -> None: ...
+ def HasField(self, field_name: Literal["pub_account",b"pub_account"]) -> bool: ...
+ def ClearField(self, field_name: Literal["pub_account",b"pub_account"]) -> None: ...
class LifeOnlineAccount(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
UNIQUE_ID_FIELD_NUMBER: int
OP_FIELD_NUMBER: int
SHOW_TIME_FIELD_NUMBER: int
@@ -1145,93 +1064,89 @@ class LifeOnlineAccount(Message):
GDT_IMP_DATA_FIELD_NUMBER: int
GDT_CLI_DATA_FIELD_NUMBER: int
VIEW_ID_FIELD_NUMBER: int
- unique_id: int = ...
- op: int = ...
- show_time: int = ...
- report: int = ...
- ack: int = ...
- bitmap: int = ...
- gdt_imp_data: bytes = ...
- gdt_cli_data: bytes = ...
- view_id: bytes = ...
-
- def __init__(self,
- *,
- unique_id : Optional[int] = ...,
- op : Optional[int] = ...,
- show_time : Optional[int] = ...,
- report : Optional[int] = ...,
- ack : Optional[int] = ...,
- bitmap : Optional[int] = ...,
- gdt_imp_data : Optional[bytes] = ...,
- gdt_cli_data : Optional[bytes] = ...,
- view_id : Optional[bytes] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal[u"ack",b"ack",u"bitmap",b"bitmap",u"gdt_cli_data",b"gdt_cli_data",u"gdt_imp_data",b"gdt_imp_data",u"op",b"op",u"report",b"report",u"show_time",b"show_time",u"unique_id",b"unique_id",u"view_id",b"view_id"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"ack",b"ack",u"bitmap",b"bitmap",u"gdt_cli_data",b"gdt_cli_data",u"gdt_imp_data",b"gdt_imp_data",u"op",b"op",u"report",b"report",u"show_time",b"show_time",u"unique_id",b"unique_id",u"view_id",b"view_id"]) -> None: ...
+ unique_id: int
+ op: int
+ show_time: int
+ report: int
+ ack: int
+ bitmap: int
+ gdt_imp_data: bytes
+ gdt_cli_data: bytes
+ view_id: bytes
+ def __init__(self,
+ *,
+ unique_id: Optional[int] = ...,
+ op: Optional[int] = ...,
+ show_time: Optional[int] = ...,
+ report: Optional[int] = ...,
+ ack: Optional[int] = ...,
+ bitmap: Optional[int] = ...,
+ gdt_imp_data: Optional[bytes] = ...,
+ gdt_cli_data: Optional[bytes] = ...,
+ view_id: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["ack",b"ack","bitmap",b"bitmap","gdt_cli_data",b"gdt_cli_data","gdt_imp_data",b"gdt_imp_data","op",b"op","report",b"report","show_time",b"show_time","unique_id",b"unique_id","view_id",b"view_id"]) -> bool: ...
+ def ClearField(self, field_name: Literal["ack",b"ack","bitmap",b"bitmap","gdt_cli_data",b"gdt_cli_data","gdt_imp_data",b"gdt_imp_data","op",b"op","report",b"report","show_time",b"show_time","unique_id",b"unique_id","view_id",b"view_id"]) -> None: ...
class LightAppElem(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
DATA_FIELD_NUMBER: int
MSG_RESID_FIELD_NUMBER: int
- data: bytes = ...
- msg_resid: bytes = ...
-
+ data: bytes
+ msg_resid: bytes
def __init__(self,
*,
- data : Optional[bytes] = ...,
- msg_resid : Optional[bytes] = ...,
+ data: Optional[bytes] = ...,
+ msg_resid: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"data",b"data",u"msg_resid",b"msg_resid"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"data",b"data",u"msg_resid",b"msg_resid"]) -> None: ...
+ def HasField(self, field_name: Literal["data",b"data","msg_resid",b"msg_resid"]) -> bool: ...
+ def ClearField(self, field_name: Literal["data",b"data","msg_resid",b"msg_resid"]) -> None: ...
class LolaMsg(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
MSG_RESID_FIELD_NUMBER: int
ENCODE_CONTENT_FIELD_NUMBER: int
LONG_MSG_URL_FIELD_NUMBER: int
DOWNLOAD_KEY_FIELD_NUMBER: int
- msg_resid: bytes = ...
- encode_content: bytes = ...
- long_msg_url: bytes = ...
- download_key: bytes = ...
-
+ msg_resid: bytes
+ encode_content: bytes
+ long_msg_url: bytes
+ download_key: bytes
def __init__(self,
*,
- msg_resid : Optional[bytes] = ...,
- encode_content : Optional[bytes] = ...,
- long_msg_url : Optional[bytes] = ...,
- download_key : Optional[bytes] = ...,
+ msg_resid: Optional[bytes] = ...,
+ encode_content: Optional[bytes] = ...,
+ long_msg_url: Optional[bytes] = ...,
+ download_key: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"download_key",b"download_key",u"encode_content",b"encode_content",u"long_msg_url",b"long_msg_url",u"msg_resid",b"msg_resid"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"download_key",b"download_key",u"encode_content",b"encode_content",u"long_msg_url",b"long_msg_url",u"msg_resid",b"msg_resid"]) -> None: ...
+ def HasField(self, field_name: Literal["download_key",b"download_key","encode_content",b"encode_content","long_msg_url",b"long_msg_url","msg_resid",b"msg_resid"]) -> bool: ...
+ def ClearField(self, field_name: Literal["download_key",b"download_key","encode_content",b"encode_content","long_msg_url",b"long_msg_url","msg_resid",b"msg_resid"]) -> None: ...
class LowVersionTips(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
BUSINESS_ID_FIELD_NUMBER: int
SESSION_TYPE_FIELD_NUMBER: int
SESSION_UIN_FIELD_NUMBER: int
SENDER_UIN_FIELD_NUMBER: int
TEXT_FIELD_NUMBER: int
- business_id: int = ...
- session_type: int = ...
- session_uin: int = ...
- sender_uin: int = ...
- text: Text = ...
-
+ business_id: int
+ session_type: int
+ session_uin: int
+ sender_uin: int
+ text: Text
def __init__(self,
*,
- business_id : Optional[int] = ...,
- session_type : Optional[int] = ...,
- session_uin : Optional[int] = ...,
- sender_uin : Optional[int] = ...,
- text : Optional[Text] = ...,
+ business_id: Optional[int] = ...,
+ session_type: Optional[int] = ...,
+ session_uin: Optional[int] = ...,
+ sender_uin: Optional[int] = ...,
+ text: Optional[Text] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"business_id",b"business_id",u"sender_uin",b"sender_uin",u"session_type",b"session_type",u"session_uin",b"session_uin",u"text",b"text"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"business_id",b"business_id",u"sender_uin",b"sender_uin",u"session_type",b"session_type",u"session_uin",b"session_uin",u"text",b"text"]) -> None: ...
+ def HasField(self, field_name: Literal["business_id",b"business_id","sender_uin",b"sender_uin","session_type",b"session_type","session_uin",b"session_uin","text",b"text"]) -> bool: ...
+ def ClearField(self, field_name: Literal["business_id",b"business_id","sender_uin",b"sender_uin","session_type",b"session_type","session_uin",b"session_uin","text",b"text"]) -> None: ...
class MarketFace(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
FACE_NAME_FIELD_NUMBER: int
ITEM_TYPE_FIELD_NUMBER: int
FACE_INFO_FIELD_NUMBER: int
@@ -1245,117 +1160,110 @@ class MarketFace(Message):
IMAGE_HEIGHT_FIELD_NUMBER: int
MOBILEPARAM_FIELD_NUMBER: int
PB_RESERVE_FIELD_NUMBER: int
- face_name: bytes = ...
- item_type: int = ...
- face_info: int = ...
- face_id: bytes = ...
- tab_id: int = ...
- sub_type: int = ...
- key: bytes = ...
- param: bytes = ...
- media_type: int = ...
- image_width: int = ...
- image_height: int = ...
- mobileparam: bytes = ...
- pb_reserve: bytes = ...
-
- def __init__(self,
- *,
- face_name : Optional[bytes] = ...,
- item_type : Optional[int] = ...,
- face_info : Optional[int] = ...,
- face_id : Optional[bytes] = ...,
- tab_id : Optional[int] = ...,
- sub_type : Optional[int] = ...,
- key : Optional[bytes] = ...,
- param : Optional[bytes] = ...,
- media_type : Optional[int] = ...,
- image_width : Optional[int] = ...,
- image_height : Optional[int] = ...,
- mobileparam : Optional[bytes] = ...,
- pb_reserve : Optional[bytes] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal[u"face_id",b"face_id",u"face_info",b"face_info",u"face_name",b"face_name",u"image_height",b"image_height",u"image_width",b"image_width",u"item_type",b"item_type",u"key",b"key",u"media_type",b"media_type",u"mobileparam",b"mobileparam",u"param",b"param",u"pb_reserve",b"pb_reserve",u"sub_type",b"sub_type",u"tab_id",b"tab_id"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"face_id",b"face_id",u"face_info",b"face_info",u"face_name",b"face_name",u"image_height",b"image_height",u"image_width",b"image_width",u"item_type",b"item_type",u"key",b"key",u"media_type",b"media_type",u"mobileparam",b"mobileparam",u"param",b"param",u"pb_reserve",b"pb_reserve",u"sub_type",b"sub_type",u"tab_id",b"tab_id"]) -> None: ...
+ face_name: bytes
+ item_type: int
+ face_info: int
+ face_id: bytes
+ tab_id: int
+ sub_type: int
+ key: bytes
+ param: bytes
+ media_type: int
+ image_width: int
+ image_height: int
+ mobileparam: bytes
+ pb_reserve: bytes
+ def __init__(self,
+ *,
+ face_name: Optional[bytes] = ...,
+ item_type: Optional[int] = ...,
+ face_info: Optional[int] = ...,
+ face_id: Optional[bytes] = ...,
+ tab_id: Optional[int] = ...,
+ sub_type: Optional[int] = ...,
+ key: Optional[bytes] = ...,
+ param: Optional[bytes] = ...,
+ media_type: Optional[int] = ...,
+ image_width: Optional[int] = ...,
+ image_height: Optional[int] = ...,
+ mobileparam: Optional[bytes] = ...,
+ pb_reserve: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["face_id",b"face_id","face_info",b"face_info","face_name",b"face_name","image_height",b"image_height","image_width",b"image_width","item_type",b"item_type","key",b"key","media_type",b"media_type","mobileparam",b"mobileparam","param",b"param","pb_reserve",b"pb_reserve","sub_type",b"sub_type","tab_id",b"tab_id"]) -> bool: ...
+ def ClearField(self, field_name: Literal["face_id",b"face_id","face_info",b"face_info","face_name",b"face_name","image_height",b"image_height","image_width",b"image_width","item_type",b"item_type","key",b"key","media_type",b"media_type","mobileparam",b"mobileparam","param",b"param","pb_reserve",b"pb_reserve","sub_type",b"sub_type","tab_id",b"tab_id"]) -> None: ...
class MarketTrans(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
FLAG_FIELD_NUMBER: int
XML_FIELD_NUMBER: int
MSG_RESID_FIELD_NUMBER: int
ABILITY_FIELD_NUMBER: int
MIN_ABILITY_FIELD_NUMBER: int
- flag: int = ...
- xml: bytes = ...
- msg_resid: bytes = ...
- ability: int = ...
- min_ability: int = ...
-
+ flag: int
+ xml: bytes
+ msg_resid: bytes
+ ability: int
+ min_ability: int
def __init__(self,
*,
- flag : Optional[int] = ...,
- xml : Optional[bytes] = ...,
- msg_resid : Optional[bytes] = ...,
- ability : Optional[int] = ...,
- min_ability : Optional[int] = ...,
+ flag: Optional[int] = ...,
+ xml: Optional[bytes] = ...,
+ msg_resid: Optional[bytes] = ...,
+ ability: Optional[int] = ...,
+ min_ability: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"ability",b"ability",u"flag",b"flag",u"min_ability",b"min_ability",u"msg_resid",b"msg_resid",u"xml",b"xml"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"ability",b"ability",u"flag",b"flag",u"min_ability",b"min_ability",u"msg_resid",b"msg_resid",u"xml",b"xml"]) -> None: ...
+ def HasField(self, field_name: Literal["ability",b"ability","flag",b"flag","min_ability",b"min_ability","msg_resid",b"msg_resid","xml",b"xml"]) -> bool: ...
+ def ClearField(self, field_name: Literal["ability",b"ability","flag",b"flag","min_ability",b"min_ability","msg_resid",b"msg_resid","xml",b"xml"]) -> None: ...
class MsgBody(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
RICH_TEXT_FIELD_NUMBER: int
CONTENT_FIELD_NUMBER: int
ENCRYPT_CONTENT_FIELD_NUMBER: int
- content: bytes = ...
- encrypt_content: bytes = ...
-
@property
def rich_text(self) -> RichText: ...
-
+ content: bytes
+ encrypt_content: bytes
def __init__(self,
*,
- rich_text : Optional[RichText] = ...,
- content : Optional[bytes] = ...,
- encrypt_content : Optional[bytes] = ...,
+ rich_text: Optional[RichText] = ...,
+ content: Optional[bytes] = ...,
+ encrypt_content: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"content",b"content",u"encrypt_content",b"encrypt_content",u"rich_text",b"rich_text"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"content",b"content",u"encrypt_content",b"encrypt_content",u"rich_text",b"rich_text"]) -> None: ...
+ def HasField(self, field_name: Literal["content",b"content","encrypt_content",b"encrypt_content","rich_text",b"rich_text"]) -> bool: ...
+ def ClearField(self, field_name: Literal["content",b"content","encrypt_content",b"encrypt_content","rich_text",b"rich_text"]) -> None: ...
class MsgBody_subtype4(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
NOT_ONLINE_FILE_FIELD_NUMBER: int
MSG_TIME_FIELD_NUMBER: int
- msg_time: int = ...
-
@property
def not_online_file(self) -> NotOnlineFile: ...
-
+ msg_time: int
def __init__(self,
*,
- not_online_file : Optional[NotOnlineFile] = ...,
- msg_time : Optional[int] = ...,
+ not_online_file: Optional[NotOnlineFile] = ...,
+ msg_time: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"msg_time",b"msg_time",u"not_online_file",b"not_online_file"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"msg_time",b"msg_time",u"not_online_file",b"not_online_file"]) -> None: ...
+ def HasField(self, field_name: Literal["msg_time",b"msg_time","not_online_file",b"not_online_file"]) -> bool: ...
+ def ClearField(self, field_name: Literal["msg_time",b"msg_time","not_online_file",b"not_online_file"]) -> None: ...
class NearByMessageType(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
TYPE_FIELD_NUMBER: int
IDENTIFY_TYPE_FIELD_NUMBER: int
- type: int = ...
- identify_type: int = ...
-
+ type: int
+ identify_type: int
def __init__(self,
*,
- type : Optional[int] = ...,
- identify_type : Optional[int] = ...,
+ type: Optional[int] = ...,
+ identify_type: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"identify_type",b"identify_type",u"type",b"type"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"identify_type",b"identify_type",u"type",b"type"]) -> None: ...
+ def HasField(self, field_name: Literal["identify_type",b"identify_type","type",b"type"]) -> bool: ...
+ def ClearField(self, field_name: Literal["identify_type",b"identify_type","type",b"type"]) -> None: ...
class NotOnlineFile(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
FILE_TYPE_FIELD_NUMBER: int
SIG_FIELD_NUMBER: int
FILE_UUID_FIELD_NUMBER: int
@@ -1376,55 +1284,55 @@ class NotOnlineFile(Message):
EXPIRE_TIME_FIELD_NUMBER: int
PB_RESERVE_FIELD_NUMBER: int
FILEIDCRC_MEDIA_FIELD_NUMBER: int
- file_type: int = ...
- sig: bytes = ...
- file_uuid: bytes = ...
- file_md5: bytes = ...
- file_name: bytes = ...
- file_size: int = ...
- note: bytes = ...
- reserved: int = ...
- subcmd: int = ...
- micro_cloud: int = ...
- file_urls: RepeatedScalarFieldContainer[bytes] = ...
- download_flag: int = ...
- danger_evel: int = ...
- life_time: int = ...
- upload_time: int = ...
- abs_file_type: int = ...
- client_type: int = ...
- expire_time: int = ...
- pb_reserve: bytes = ...
- fileidcrc_media: Text = ...
-
- def __init__(self,
- *,
- file_type : Optional[int] = ...,
- sig : Optional[bytes] = ...,
- file_uuid : Optional[bytes] = ...,
- file_md5 : Optional[bytes] = ...,
- file_name : Optional[bytes] = ...,
- file_size : Optional[int] = ...,
- note : Optional[bytes] = ...,
- reserved : Optional[int] = ...,
- subcmd : Optional[int] = ...,
- micro_cloud : Optional[int] = ...,
- file_urls : Optional[Iterable[bytes]] = ...,
- download_flag : Optional[int] = ...,
- danger_evel : Optional[int] = ...,
- life_time : Optional[int] = ...,
- upload_time : Optional[int] = ...,
- abs_file_type : Optional[int] = ...,
- client_type : Optional[int] = ...,
- expire_time : Optional[int] = ...,
- pb_reserve : Optional[bytes] = ...,
- fileidcrc_media : Optional[Text] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal[u"abs_file_type",b"abs_file_type",u"client_type",b"client_type",u"danger_evel",b"danger_evel",u"download_flag",b"download_flag",u"expire_time",b"expire_time",u"file_md5",b"file_md5",u"file_name",b"file_name",u"file_size",b"file_size",u"file_type",b"file_type",u"file_uuid",b"file_uuid",u"fileidcrc_media",b"fileidcrc_media",u"life_time",b"life_time",u"micro_cloud",b"micro_cloud",u"note",b"note",u"pb_reserve",b"pb_reserve",u"reserved",b"reserved",u"sig",b"sig",u"subcmd",b"subcmd",u"upload_time",b"upload_time"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"abs_file_type",b"abs_file_type",u"client_type",b"client_type",u"danger_evel",b"danger_evel",u"download_flag",b"download_flag",u"expire_time",b"expire_time",u"file_md5",b"file_md5",u"file_name",b"file_name",u"file_size",b"file_size",u"file_type",b"file_type",u"file_urls",b"file_urls",u"file_uuid",b"file_uuid",u"fileidcrc_media",b"fileidcrc_media",u"life_time",b"life_time",u"micro_cloud",b"micro_cloud",u"note",b"note",u"pb_reserve",b"pb_reserve",u"reserved",b"reserved",u"sig",b"sig",u"subcmd",b"subcmd",u"upload_time",b"upload_time"]) -> None: ...
+ file_type: int
+ sig: bytes
+ file_uuid: bytes
+ file_md5: bytes
+ file_name: bytes
+ file_size: int
+ note: bytes
+ reserved: int
+ subcmd: int
+ micro_cloud: int
+ @property
+ def file_urls(self) -> RepeatedScalarFieldContainer[bytes]: ...
+ download_flag: int
+ danger_evel: int
+ life_time: int
+ upload_time: int
+ abs_file_type: int
+ client_type: int
+ expire_time: int
+ pb_reserve: bytes
+ fileidcrc_media: Text
+ def __init__(self,
+ *,
+ file_type: Optional[int] = ...,
+ sig: Optional[bytes] = ...,
+ file_uuid: Optional[bytes] = ...,
+ file_md5: Optional[bytes] = ...,
+ file_name: Optional[bytes] = ...,
+ file_size: Optional[int] = ...,
+ note: Optional[bytes] = ...,
+ reserved: Optional[int] = ...,
+ subcmd: Optional[int] = ...,
+ micro_cloud: Optional[int] = ...,
+ file_urls: Optional[Iterable[bytes]] = ...,
+ download_flag: Optional[int] = ...,
+ danger_evel: Optional[int] = ...,
+ life_time: Optional[int] = ...,
+ upload_time: Optional[int] = ...,
+ abs_file_type: Optional[int] = ...,
+ client_type: Optional[int] = ...,
+ expire_time: Optional[int] = ...,
+ pb_reserve: Optional[bytes] = ...,
+ fileidcrc_media: Optional[Text] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["abs_file_type",b"abs_file_type","client_type",b"client_type","danger_evel",b"danger_evel","download_flag",b"download_flag","expire_time",b"expire_time","file_md5",b"file_md5","file_name",b"file_name","file_size",b"file_size","file_type",b"file_type","file_uuid",b"file_uuid","fileidcrc_media",b"fileidcrc_media","life_time",b"life_time","micro_cloud",b"micro_cloud","note",b"note","pb_reserve",b"pb_reserve","reserved",b"reserved","sig",b"sig","subcmd",b"subcmd","upload_time",b"upload_time"]) -> bool: ...
+ def ClearField(self, field_name: Literal["abs_file_type",b"abs_file_type","client_type",b"client_type","danger_evel",b"danger_evel","download_flag",b"download_flag","expire_time",b"expire_time","file_md5",b"file_md5","file_name",b"file_name","file_size",b"file_size","file_type",b"file_type","file_urls",b"file_urls","file_uuid",b"file_uuid","fileidcrc_media",b"fileidcrc_media","life_time",b"life_time","micro_cloud",b"micro_cloud","note",b"note","pb_reserve",b"pb_reserve","reserved",b"reserved","sig",b"sig","subcmd",b"subcmd","upload_time",b"upload_time"]) -> None: ...
class NotOnlineImage(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
FILE_PATH_FIELD_NUMBER: int
FILE_LEN_FIELD_NUMBER: int
DOWNLOAD_PATH_FIELD_NUMBER: int
@@ -1454,145 +1362,142 @@ class NotOnlineImage(Message):
_400_WIDTH_FIELD_NUMBER: int
_400_HEIGHT_FIELD_NUMBER: int
PB_RESERVE_FIELD_NUMBER: int
- file_path: bytes = ...
- file_len: int = ...
- download_path: bytes = ...
- old_ver_send_file: bytes = ...
- img_type: int = ...
- previews_image: bytes = ...
- pic_md5: bytes = ...
- pic_height: int = ...
- pic_width: int = ...
- res_id: bytes = ...
- flag: bytes = ...
- thumb_url: Text = ...
- original: int = ...
- big_url: Text = ...
- orig_url: Text = ...
- biz_type: int = ...
- result: int = ...
- index: int = ...
- op_face_buf: bytes = ...
- old_pic_md5: bool = ...
- thumb_width: int = ...
- thumb_height: int = ...
- file_id: int = ...
- show_len: int = ...
- download_len: int = ...
- _400_url: Text = ...
- _400_width: int = ...
- _400_height: int = ...
- pb_reserve: bytes = ...
-
- def __init__(self,
- *,
- file_path : Optional[bytes] = ...,
- file_len : Optional[int] = ...,
- download_path : Optional[bytes] = ...,
- old_ver_send_file : Optional[bytes] = ...,
- img_type : Optional[int] = ...,
- previews_image : Optional[bytes] = ...,
- pic_md5 : Optional[bytes] = ...,
- pic_height : Optional[int] = ...,
- pic_width : Optional[int] = ...,
- res_id : Optional[bytes] = ...,
- flag : Optional[bytes] = ...,
- thumb_url : Optional[Text] = ...,
- original : Optional[int] = ...,
- big_url : Optional[Text] = ...,
- orig_url : Optional[Text] = ...,
- biz_type : Optional[int] = ...,
- result : Optional[int] = ...,
- index : Optional[int] = ...,
- op_face_buf : Optional[bytes] = ...,
- old_pic_md5 : Optional[bool] = ...,
- thumb_width : Optional[int] = ...,
- thumb_height : Optional[int] = ...,
- file_id : Optional[int] = ...,
- show_len : Optional[int] = ...,
- download_len : Optional[int] = ...,
- _400_url : Optional[Text] = ...,
- _400_width : Optional[int] = ...,
- _400_height : Optional[int] = ...,
- pb_reserve : Optional[bytes] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal[u"_400_height",b"_400_height",u"_400_url",b"_400_url",u"_400_width",b"_400_width",u"big_url",b"big_url",u"biz_type",b"biz_type",u"download_len",b"download_len",u"download_path",b"download_path",u"file_id",b"file_id",u"file_len",b"file_len",u"file_path",b"file_path",u"flag",b"flag",u"img_type",b"img_type",u"index",b"index",u"old_pic_md5",b"old_pic_md5",u"old_ver_send_file",b"old_ver_send_file",u"op_face_buf",b"op_face_buf",u"orig_url",b"orig_url",u"original",b"original",u"pb_reserve",b"pb_reserve",u"pic_height",b"pic_height",u"pic_md5",b"pic_md5",u"pic_width",b"pic_width",u"previews_image",b"previews_image",u"res_id",b"res_id",u"result",b"result",u"show_len",b"show_len",u"thumb_height",b"thumb_height",u"thumb_url",b"thumb_url",u"thumb_width",b"thumb_width"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"_400_height",b"_400_height",u"_400_url",b"_400_url",u"_400_width",b"_400_width",u"big_url",b"big_url",u"biz_type",b"biz_type",u"download_len",b"download_len",u"download_path",b"download_path",u"file_id",b"file_id",u"file_len",b"file_len",u"file_path",b"file_path",u"flag",b"flag",u"img_type",b"img_type",u"index",b"index",u"old_pic_md5",b"old_pic_md5",u"old_ver_send_file",b"old_ver_send_file",u"op_face_buf",b"op_face_buf",u"orig_url",b"orig_url",u"original",b"original",u"pb_reserve",b"pb_reserve",u"pic_height",b"pic_height",u"pic_md5",b"pic_md5",u"pic_width",b"pic_width",u"previews_image",b"previews_image",u"res_id",b"res_id",u"result",b"result",u"show_len",b"show_len",u"thumb_height",b"thumb_height",u"thumb_url",b"thumb_url",u"thumb_width",b"thumb_width"]) -> None: ...
+ file_path: bytes
+ file_len: int
+ download_path: bytes
+ old_ver_send_file: bytes
+ img_type: int
+ previews_image: bytes
+ pic_md5: bytes
+ pic_height: int
+ pic_width: int
+ res_id: bytes
+ flag: bytes
+ thumb_url: Text
+ original: int
+ big_url: Text
+ orig_url: Text
+ biz_type: int
+ result: int
+ index: int
+ op_face_buf: bytes
+ old_pic_md5: bool
+ thumb_width: int
+ thumb_height: int
+ file_id: int
+ show_len: int
+ download_len: int
+ _400_url: Text
+ _400_width: int
+ _400_height: int
+ pb_reserve: bytes
+ def __init__(self,
+ *,
+ file_path: Optional[bytes] = ...,
+ file_len: Optional[int] = ...,
+ download_path: Optional[bytes] = ...,
+ old_ver_send_file: Optional[bytes] = ...,
+ img_type: Optional[int] = ...,
+ previews_image: Optional[bytes] = ...,
+ pic_md5: Optional[bytes] = ...,
+ pic_height: Optional[int] = ...,
+ pic_width: Optional[int] = ...,
+ res_id: Optional[bytes] = ...,
+ flag: Optional[bytes] = ...,
+ thumb_url: Optional[Text] = ...,
+ original: Optional[int] = ...,
+ big_url: Optional[Text] = ...,
+ orig_url: Optional[Text] = ...,
+ biz_type: Optional[int] = ...,
+ result: Optional[int] = ...,
+ index: Optional[int] = ...,
+ op_face_buf: Optional[bytes] = ...,
+ old_pic_md5: Optional[bool] = ...,
+ thumb_width: Optional[int] = ...,
+ thumb_height: Optional[int] = ...,
+ file_id: Optional[int] = ...,
+ show_len: Optional[int] = ...,
+ download_len: Optional[int] = ...,
+ _400_url: Optional[Text] = ...,
+ _400_width: Optional[int] = ...,
+ _400_height: Optional[int] = ...,
+ pb_reserve: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["_400_height",b"_400_height","_400_url",b"_400_url","_400_width",b"_400_width","big_url",b"big_url","biz_type",b"biz_type","download_len",b"download_len","download_path",b"download_path","file_id",b"file_id","file_len",b"file_len","file_path",b"file_path","flag",b"flag","img_type",b"img_type","index",b"index","old_pic_md5",b"old_pic_md5","old_ver_send_file",b"old_ver_send_file","op_face_buf",b"op_face_buf","orig_url",b"orig_url","original",b"original","pb_reserve",b"pb_reserve","pic_height",b"pic_height","pic_md5",b"pic_md5","pic_width",b"pic_width","previews_image",b"previews_image","res_id",b"res_id","result",b"result","show_len",b"show_len","thumb_height",b"thumb_height","thumb_url",b"thumb_url","thumb_width",b"thumb_width"]) -> bool: ...
+ def ClearField(self, field_name: Literal["_400_height",b"_400_height","_400_url",b"_400_url","_400_width",b"_400_width","big_url",b"big_url","biz_type",b"biz_type","download_len",b"download_len","download_path",b"download_path","file_id",b"file_id","file_len",b"file_len","file_path",b"file_path","flag",b"flag","img_type",b"img_type","index",b"index","old_pic_md5",b"old_pic_md5","old_ver_send_file",b"old_ver_send_file","op_face_buf",b"op_face_buf","orig_url",b"orig_url","original",b"original","pb_reserve",b"pb_reserve","pic_height",b"pic_height","pic_md5",b"pic_md5","pic_width",b"pic_width","previews_image",b"previews_image","res_id",b"res_id","result",b"result","show_len",b"show_len","thumb_height",b"thumb_height","thumb_url",b"thumb_url","thumb_width",b"thumb_width"]) -> None: ...
class OnlineImage(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
GUID_FIELD_NUMBER: int
FILE_PATH_FIELD_NUMBER: int
OLD_VER_SEND_FILE_FIELD_NUMBER: int
- guid: bytes = ...
- file_path: bytes = ...
- old_ver_send_file: bytes = ...
-
+ guid: bytes
+ file_path: bytes
+ old_ver_send_file: bytes
def __init__(self,
*,
- guid : Optional[bytes] = ...,
- file_path : Optional[bytes] = ...,
- old_ver_send_file : Optional[bytes] = ...,
+ guid: Optional[bytes] = ...,
+ file_path: Optional[bytes] = ...,
+ old_ver_send_file: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"file_path",b"file_path",u"guid",b"guid",u"old_ver_send_file",b"old_ver_send_file"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"file_path",b"file_path",u"guid",b"guid",u"old_ver_send_file",b"old_ver_send_file"]) -> None: ...
+ def HasField(self, field_name: Literal["file_path",b"file_path","guid",b"guid","old_ver_send_file",b"old_ver_send_file"]) -> bool: ...
+ def ClearField(self, field_name: Literal["file_path",b"file_path","guid",b"guid","old_ver_send_file",b"old_ver_send_file"]) -> None: ...
class OpenQQData(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
CAR_QQ_DATA_FIELD_NUMBER: int
- car_qq_data: bytes = ...
-
+ car_qq_data: bytes
def __init__(self,
*,
- car_qq_data : Optional[bytes] = ...,
+ car_qq_data: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"car_qq_data",b"car_qq_data"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"car_qq_data",b"car_qq_data"]) -> None: ...
+ def HasField(self, field_name: Literal["car_qq_data",b"car_qq_data"]) -> bool: ...
+ def ClearField(self, field_name: Literal["car_qq_data",b"car_qq_data"]) -> None: ...
class PatsElem(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
PAT_TYPE_FIELD_NUMBER: int
PAT_COUNT_FIELD_NUMBER: int
- pat_type: int = ...
- pat_count: int = ...
-
+ pat_type: int
+ pat_count: int
def __init__(self,
*,
- pat_type : Optional[int] = ...,
- pat_count : Optional[int] = ...,
+ pat_type: Optional[int] = ...,
+ pat_count: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"pat_count",b"pat_count",u"pat_type",b"pat_type"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"pat_count",b"pat_count",u"pat_type",b"pat_type"]) -> None: ...
+ def HasField(self, field_name: Literal["pat_count",b"pat_count","pat_type",b"pat_type"]) -> bool: ...
+ def ClearField(self, field_name: Literal["pat_count",b"pat_count","pat_type",b"pat_type"]) -> None: ...
class PcSupportDef(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
PC_PTL_BEGIN_FIELD_NUMBER: int
PC_PTL_END_FIELD_NUMBER: int
MAC_PTL_BEGIN_FIELD_NUMBER: int
MAC_PTL_END_FIELD_NUMBER: int
PTLS_SUPPORT_FIELD_NUMBER: int
PTLS_NOT_SUPPORT_FIELD_NUMBER: int
- pc_ptl_begin: int = ...
- pc_ptl_end: int = ...
- mac_ptl_begin: int = ...
- mac_ptl_end: int = ...
- ptls_support: RepeatedScalarFieldContainer[int] = ...
- ptls_not_support: RepeatedScalarFieldContainer[int] = ...
-
+ pc_ptl_begin: int
+ pc_ptl_end: int
+ mac_ptl_begin: int
+ mac_ptl_end: int
+ @property
+ def ptls_support(self) -> RepeatedScalarFieldContainer[int]: ...
+ @property
+ def ptls_not_support(self) -> RepeatedScalarFieldContainer[int]: ...
def __init__(self,
*,
- pc_ptl_begin : Optional[int] = ...,
- pc_ptl_end : Optional[int] = ...,
- mac_ptl_begin : Optional[int] = ...,
- mac_ptl_end : Optional[int] = ...,
- ptls_support : Optional[Iterable[int]] = ...,
- ptls_not_support : Optional[Iterable[int]] = ...,
+ pc_ptl_begin: Optional[int] = ...,
+ pc_ptl_end: Optional[int] = ...,
+ mac_ptl_begin: Optional[int] = ...,
+ mac_ptl_end: Optional[int] = ...,
+ ptls_support: Optional[Iterable[int]] = ...,
+ ptls_not_support: Optional[Iterable[int]] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"mac_ptl_begin",b"mac_ptl_begin",u"mac_ptl_end",b"mac_ptl_end",u"pc_ptl_begin",b"pc_ptl_begin",u"pc_ptl_end",b"pc_ptl_end"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"mac_ptl_begin",b"mac_ptl_begin",u"mac_ptl_end",b"mac_ptl_end",u"pc_ptl_begin",b"pc_ptl_begin",u"pc_ptl_end",b"pc_ptl_end",u"ptls_not_support",b"ptls_not_support",u"ptls_support",b"ptls_support"]) -> None: ...
+ def HasField(self, field_name: Literal["mac_ptl_begin",b"mac_ptl_begin","mac_ptl_end",b"mac_ptl_end","pc_ptl_begin",b"pc_ptl_begin","pc_ptl_end",b"pc_ptl_end"]) -> bool: ...
+ def ClearField(self, field_name: Literal["mac_ptl_begin",b"mac_ptl_begin","mac_ptl_end",b"mac_ptl_end","pc_ptl_begin",b"pc_ptl_begin","pc_ptl_end",b"pc_ptl_end","ptls_not_support",b"ptls_not_support","ptls_support",b"ptls_support"]) -> None: ...
class Ptt(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
FILE_TYPE_FIELD_NUMBER: int
SRC_UIN_FIELD_NUMBER: int
FILE_UUID_FIELD_NUMBER: int
@@ -1617,141 +1522,137 @@ class Ptt(Message):
PB_RESERVE_FIELD_NUMBER: int
PTT_URLS_FIELD_NUMBER: int
DOWNLOAD_FLAG_FIELD_NUMBER: int
- file_type: int = ...
- src_uin: int = ...
- file_uuid: bytes = ...
- file_md5: bytes = ...
- file_name: bytes = ...
- file_size: int = ...
- reserve: bytes = ...
- file_id: int = ...
- server_ip: int = ...
- server_port: int = ...
- valid: bool = ...
- signature: bytes = ...
- shortcut: bytes = ...
- file_key: bytes = ...
- magic_ptt_index: int = ...
- voice_switch: int = ...
- ptt_url: bytes = ...
- group_file_key: bytes = ...
- time: int = ...
- down_para: bytes = ...
- format: int = ...
- pb_reserve: bytes = ...
- ptt_urls: RepeatedScalarFieldContainer[bytes] = ...
- download_flag: int = ...
-
- def __init__(self,
- *,
- file_type : Optional[int] = ...,
- src_uin : Optional[int] = ...,
- file_uuid : Optional[bytes] = ...,
- file_md5 : Optional[bytes] = ...,
- file_name : Optional[bytes] = ...,
- file_size : Optional[int] = ...,
- reserve : Optional[bytes] = ...,
- file_id : Optional[int] = ...,
- server_ip : Optional[int] = ...,
- server_port : Optional[int] = ...,
- valid : Optional[bool] = ...,
- signature : Optional[bytes] = ...,
- shortcut : Optional[bytes] = ...,
- file_key : Optional[bytes] = ...,
- magic_ptt_index : Optional[int] = ...,
- voice_switch : Optional[int] = ...,
- ptt_url : Optional[bytes] = ...,
- group_file_key : Optional[bytes] = ...,
- time : Optional[int] = ...,
- down_para : Optional[bytes] = ...,
- format : Optional[int] = ...,
- pb_reserve : Optional[bytes] = ...,
- ptt_urls : Optional[Iterable[bytes]] = ...,
- download_flag : Optional[int] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal[u"down_para",b"down_para",u"download_flag",b"download_flag",u"file_id",b"file_id",u"file_key",b"file_key",u"file_md5",b"file_md5",u"file_name",b"file_name",u"file_size",b"file_size",u"file_type",b"file_type",u"file_uuid",b"file_uuid",u"format",b"format",u"group_file_key",b"group_file_key",u"magic_ptt_index",b"magic_ptt_index",u"pb_reserve",b"pb_reserve",u"ptt_url",b"ptt_url",u"reserve",b"reserve",u"server_ip",b"server_ip",u"server_port",b"server_port",u"shortcut",b"shortcut",u"signature",b"signature",u"src_uin",b"src_uin",u"time",b"time",u"valid",b"valid",u"voice_switch",b"voice_switch"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"down_para",b"down_para",u"download_flag",b"download_flag",u"file_id",b"file_id",u"file_key",b"file_key",u"file_md5",b"file_md5",u"file_name",b"file_name",u"file_size",b"file_size",u"file_type",b"file_type",u"file_uuid",b"file_uuid",u"format",b"format",u"group_file_key",b"group_file_key",u"magic_ptt_index",b"magic_ptt_index",u"pb_reserve",b"pb_reserve",u"ptt_url",b"ptt_url",u"ptt_urls",b"ptt_urls",u"reserve",b"reserve",u"server_ip",b"server_ip",u"server_port",b"server_port",u"shortcut",b"shortcut",u"signature",b"signature",u"src_uin",b"src_uin",u"time",b"time",u"valid",b"valid",u"voice_switch",b"voice_switch"]) -> None: ...
+ file_type: int
+ src_uin: int
+ file_uuid: bytes
+ file_md5: bytes
+ file_name: bytes
+ file_size: int
+ reserve: bytes
+ file_id: int
+ server_ip: int
+ server_port: int
+ valid: bool
+ signature: bytes
+ shortcut: bytes
+ file_key: bytes
+ magic_ptt_index: int
+ voice_switch: int
+ ptt_url: bytes
+ group_file_key: bytes
+ time: int
+ down_para: bytes
+ format: int
+ pb_reserve: bytes
+ @property
+ def ptt_urls(self) -> RepeatedScalarFieldContainer[bytes]: ...
+ download_flag: int
+ def __init__(self,
+ *,
+ file_type: Optional[int] = ...,
+ src_uin: Optional[int] = ...,
+ file_uuid: Optional[bytes] = ...,
+ file_md5: Optional[bytes] = ...,
+ file_name: Optional[bytes] = ...,
+ file_size: Optional[int] = ...,
+ reserve: Optional[bytes] = ...,
+ file_id: Optional[int] = ...,
+ server_ip: Optional[int] = ...,
+ server_port: Optional[int] = ...,
+ valid: Optional[bool] = ...,
+ signature: Optional[bytes] = ...,
+ shortcut: Optional[bytes] = ...,
+ file_key: Optional[bytes] = ...,
+ magic_ptt_index: Optional[int] = ...,
+ voice_switch: Optional[int] = ...,
+ ptt_url: Optional[bytes] = ...,
+ group_file_key: Optional[bytes] = ...,
+ time: Optional[int] = ...,
+ down_para: Optional[bytes] = ...,
+ format: Optional[int] = ...,
+ pb_reserve: Optional[bytes] = ...,
+ ptt_urls: Optional[Iterable[bytes]] = ...,
+ download_flag: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["down_para",b"down_para","download_flag",b"download_flag","file_id",b"file_id","file_key",b"file_key","file_md5",b"file_md5","file_name",b"file_name","file_size",b"file_size","file_type",b"file_type","file_uuid",b"file_uuid","format",b"format","group_file_key",b"group_file_key","magic_ptt_index",b"magic_ptt_index","pb_reserve",b"pb_reserve","ptt_url",b"ptt_url","reserve",b"reserve","server_ip",b"server_ip","server_port",b"server_port","shortcut",b"shortcut","signature",b"signature","src_uin",b"src_uin","time",b"time","valid",b"valid","voice_switch",b"voice_switch"]) -> bool: ...
+ def ClearField(self, field_name: Literal["down_para",b"down_para","download_flag",b"download_flag","file_id",b"file_id","file_key",b"file_key","file_md5",b"file_md5","file_name",b"file_name","file_size",b"file_size","file_type",b"file_type","file_uuid",b"file_uuid","format",b"format","group_file_key",b"group_file_key","magic_ptt_index",b"magic_ptt_index","pb_reserve",b"pb_reserve","ptt_url",b"ptt_url","ptt_urls",b"ptt_urls","reserve",b"reserve","server_ip",b"server_ip","server_port",b"server_port","shortcut",b"shortcut","signature",b"signature","src_uin",b"src_uin","time",b"time","valid",b"valid","voice_switch",b"voice_switch"]) -> None: ...
class PubAccInfo(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
IS_INTER_NUM_FIELD_NUMBER: int
MSG_TEMPLATE_ID_FIELD_NUMBER: int
LONG_MSG_URL_FIELD_NUMBER: int
DOWNLOAD_KEY_FIELD_NUMBER: int
- is_inter_num: int = ...
- msg_template_id: Text = ...
- long_msg_url: Text = ...
- download_key: bytes = ...
-
+ is_inter_num: int
+ msg_template_id: Text
+ long_msg_url: Text
+ download_key: bytes
def __init__(self,
*,
- is_inter_num : Optional[int] = ...,
- msg_template_id : Optional[Text] = ...,
- long_msg_url : Optional[Text] = ...,
- download_key : Optional[bytes] = ...,
+ is_inter_num: Optional[int] = ...,
+ msg_template_id: Optional[Text] = ...,
+ long_msg_url: Optional[Text] = ...,
+ download_key: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"download_key",b"download_key",u"is_inter_num",b"is_inter_num",u"long_msg_url",b"long_msg_url",u"msg_template_id",b"msg_template_id"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"download_key",b"download_key",u"is_inter_num",b"is_inter_num",u"long_msg_url",b"long_msg_url",u"msg_template_id",b"msg_template_id"]) -> None: ...
+ def HasField(self, field_name: Literal["download_key",b"download_key","is_inter_num",b"is_inter_num","long_msg_url",b"long_msg_url","msg_template_id",b"msg_template_id"]) -> bool: ...
+ def ClearField(self, field_name: Literal["download_key",b"download_key","is_inter_num",b"is_inter_num","long_msg_url",b"long_msg_url","msg_template_id",b"msg_template_id"]) -> None: ...
class PubAccount(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
BUF_FIELD_NUMBER: int
PUB_ACCOUNT_UIN_FIELD_NUMBER: int
- buf: bytes = ...
- pub_account_uin: int = ...
-
+ buf: bytes
+ pub_account_uin: int
def __init__(self,
*,
- buf : Optional[bytes] = ...,
- pub_account_uin : Optional[int] = ...,
+ buf: Optional[bytes] = ...,
+ pub_account_uin: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"buf",b"buf",u"pub_account_uin",b"pub_account_uin"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"buf",b"buf",u"pub_account_uin",b"pub_account_uin"]) -> None: ...
+ def HasField(self, field_name: Literal["buf",b"buf","pub_account_uin",b"pub_account_uin"]) -> bool: ...
+ def ClearField(self, field_name: Literal["buf",b"buf","pub_account_uin",b"pub_account_uin"]) -> None: ...
class PubGroup(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
NICKNAME_FIELD_NUMBER: int
GENDER_FIELD_NUMBER: int
AGE_FIELD_NUMBER: int
DISTANCE_FIELD_NUMBER: int
- nickname: bytes = ...
- gender: int = ...
- age: int = ...
- distance: int = ...
-
+ nickname: bytes
+ gender: int
+ age: int
+ distance: int
def __init__(self,
*,
- nickname : Optional[bytes] = ...,
- gender : Optional[int] = ...,
- age : Optional[int] = ...,
- distance : Optional[int] = ...,
+ nickname: Optional[bytes] = ...,
+ gender: Optional[int] = ...,
+ age: Optional[int] = ...,
+ distance: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"age",b"age",u"distance",b"distance",u"gender",b"gender",u"nickname",b"nickname"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"age",b"age",u"distance",b"distance",u"gender",b"gender",u"nickname",b"nickname"]) -> None: ...
+ def HasField(self, field_name: Literal["age",b"age","distance",b"distance","gender",b"gender","nickname",b"nickname"]) -> bool: ...
+ def ClearField(self, field_name: Literal["age",b"age","distance",b"distance","gender",b"gender","nickname",b"nickname"]) -> None: ...
class QQLiveOld(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
SUB_CMD_FIELD_NUMBER: int
SHOW_TEXT_FIELD_NUMBER: int
PARAM_FIELD_NUMBER: int
INTRODUCE_FIELD_NUMBER: int
- sub_cmd: int = ...
- show_text: bytes = ...
- param: bytes = ...
- introduce: bytes = ...
-
+ sub_cmd: int
+ show_text: bytes
+ param: bytes
+ introduce: bytes
def __init__(self,
*,
- sub_cmd : Optional[int] = ...,
- show_text : Optional[bytes] = ...,
- param : Optional[bytes] = ...,
- introduce : Optional[bytes] = ...,
+ sub_cmd: Optional[int] = ...,
+ show_text: Optional[bytes] = ...,
+ param: Optional[bytes] = ...,
+ introduce: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"introduce",b"introduce",u"param",b"param",u"show_text",b"show_text",u"sub_cmd",b"sub_cmd"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"introduce",b"introduce",u"param",b"param",u"show_text",b"show_text",u"sub_cmd",b"sub_cmd"]) -> None: ...
+ def HasField(self, field_name: Literal["introduce",b"introduce","param",b"param","show_text",b"show_text","sub_cmd",b"sub_cmd"]) -> bool: ...
+ def ClearField(self, field_name: Literal["introduce",b"introduce","param",b"param","show_text",b"show_text","sub_cmd",b"sub_cmd"]) -> None: ...
class QQWalletAioBody(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
SENDUIN_FIELD_NUMBER: int
SENDER_FIELD_NUMBER: int
RECEIVER_FIELD_NUMBER: int
@@ -1773,61 +1674,59 @@ class QQWalletAioBody(Message):
REDCHANNEL_FIELD_NUMBER: int
GRAP_UIN_FIELD_NUMBER: int
PB_RESERVE_FIELD_NUMBER: int
- senduin: int = ...
- channelid: int = ...
- templateid: int = ...
- resend: int = ...
- msg_priority: int = ...
- redtype: int = ...
- billno: bytes = ...
- authkey: bytes = ...
- sessiontype: int = ...
- msgtype: int = ...
- envelopeid: int = ...
- name: bytes = ...
- conftype: int = ...
- msg_from: int = ...
- pc_body: bytes = ...
- index: bytes = ...
- redchannel: int = ...
- grap_uin: RepeatedScalarFieldContainer[int] = ...
- pb_reserve: bytes = ...
-
+ senduin: int
@property
def sender(self) -> QQWalletAioElem: ...
-
@property
def receiver(self) -> QQWalletAioElem: ...
-
- def __init__(self,
- *,
- senduin : Optional[int] = ...,
- sender : Optional[QQWalletAioElem] = ...,
- receiver : Optional[QQWalletAioElem] = ...,
- channelid : Optional[int] = ...,
- templateid : Optional[int] = ...,
- resend : Optional[int] = ...,
- msg_priority : Optional[int] = ...,
- redtype : Optional[int] = ...,
- billno : Optional[bytes] = ...,
- authkey : Optional[bytes] = ...,
- sessiontype : Optional[int] = ...,
- msgtype : Optional[int] = ...,
- envelopeid : Optional[int] = ...,
- name : Optional[bytes] = ...,
- conftype : Optional[int] = ...,
- msg_from : Optional[int] = ...,
- pc_body : Optional[bytes] = ...,
- index : Optional[bytes] = ...,
- redchannel : Optional[int] = ...,
- grap_uin : Optional[Iterable[int]] = ...,
- pb_reserve : Optional[bytes] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal[u"authkey",b"authkey",u"billno",b"billno",u"channelid",b"channelid",u"conftype",b"conftype",u"envelopeid",b"envelopeid",u"index",b"index",u"msg_from",b"msg_from",u"msg_priority",b"msg_priority",u"msgtype",b"msgtype",u"name",b"name",u"pb_reserve",b"pb_reserve",u"pc_body",b"pc_body",u"receiver",b"receiver",u"redchannel",b"redchannel",u"redtype",b"redtype",u"resend",b"resend",u"sender",b"sender",u"senduin",b"senduin",u"sessiontype",b"sessiontype",u"templateid",b"templateid"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"authkey",b"authkey",u"billno",b"billno",u"channelid",b"channelid",u"conftype",b"conftype",u"envelopeid",b"envelopeid",u"grap_uin",b"grap_uin",u"index",b"index",u"msg_from",b"msg_from",u"msg_priority",b"msg_priority",u"msgtype",b"msgtype",u"name",b"name",u"pb_reserve",b"pb_reserve",u"pc_body",b"pc_body",u"receiver",b"receiver",u"redchannel",b"redchannel",u"redtype",b"redtype",u"resend",b"resend",u"sender",b"sender",u"senduin",b"senduin",u"sessiontype",b"sessiontype",u"templateid",b"templateid"]) -> None: ...
+ channelid: int
+ templateid: int
+ resend: int
+ msg_priority: int
+ redtype: int
+ billno: bytes
+ authkey: bytes
+ sessiontype: int
+ msgtype: int
+ envelopeid: int
+ name: bytes
+ conftype: int
+ msg_from: int
+ pc_body: bytes
+ index: bytes
+ redchannel: int
+ @property
+ def grap_uin(self) -> RepeatedScalarFieldContainer[int]: ...
+ pb_reserve: bytes
+ def __init__(self,
+ *,
+ senduin: Optional[int] = ...,
+ sender: Optional[QQWalletAioElem] = ...,
+ receiver: Optional[QQWalletAioElem] = ...,
+ channelid: Optional[int] = ...,
+ templateid: Optional[int] = ...,
+ resend: Optional[int] = ...,
+ msg_priority: Optional[int] = ...,
+ redtype: Optional[int] = ...,
+ billno: Optional[bytes] = ...,
+ authkey: Optional[bytes] = ...,
+ sessiontype: Optional[int] = ...,
+ msgtype: Optional[int] = ...,
+ envelopeid: Optional[int] = ...,
+ name: Optional[bytes] = ...,
+ conftype: Optional[int] = ...,
+ msg_from: Optional[int] = ...,
+ pc_body: Optional[bytes] = ...,
+ index: Optional[bytes] = ...,
+ redchannel: Optional[int] = ...,
+ grap_uin: Optional[Iterable[int]] = ...,
+ pb_reserve: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["authkey",b"authkey","billno",b"billno","channelid",b"channelid","conftype",b"conftype","envelopeid",b"envelopeid","index",b"index","msg_from",b"msg_from","msg_priority",b"msg_priority","msgtype",b"msgtype","name",b"name","pb_reserve",b"pb_reserve","pc_body",b"pc_body","receiver",b"receiver","redchannel",b"redchannel","redtype",b"redtype","resend",b"resend","sender",b"sender","senduin",b"senduin","sessiontype",b"sessiontype","templateid",b"templateid"]) -> bool: ...
+ def ClearField(self, field_name: Literal["authkey",b"authkey","billno",b"billno","channelid",b"channelid","conftype",b"conftype","envelopeid",b"envelopeid","grap_uin",b"grap_uin","index",b"index","msg_from",b"msg_from","msg_priority",b"msg_priority","msgtype",b"msgtype","name",b"name","pb_reserve",b"pb_reserve","pc_body",b"pc_body","receiver",b"receiver","redchannel",b"redchannel","redtype",b"redtype","resend",b"resend","sender",b"sender","senduin",b"senduin","sessiontype",b"sessiontype","templateid",b"templateid"]) -> None: ...
class QQWalletAioElem(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
BACKGROUND_FIELD_NUMBER: int
ICON_FIELD_NUMBER: int
TITLE_FIELD_NUMBER: int
@@ -1849,149 +1748,137 @@ class QQWalletAioElem(Message):
AIO_IMAGE_RIGHT_FIELD_NUMBER: int
CFT_IMAGE_FIELD_NUMBER: int
PB_RESERVE_FIELD_NUMBER: int
- background: int = ...
- icon: int = ...
- title: bytes = ...
- subtitle: bytes = ...
- content: bytes = ...
- linkurl: bytes = ...
- blackstripe: bytes = ...
- notice: bytes = ...
- title_color: int = ...
- subtitle_color: int = ...
- actions_priority: bytes = ...
- jump_url: bytes = ...
- native_ios: bytes = ...
- native_android: bytes = ...
- iconurl: bytes = ...
- content_color: int = ...
- content_bgcolor: int = ...
- aio_image_left: bytes = ...
- aio_image_right: bytes = ...
- cft_image: bytes = ...
- pb_reserve: bytes = ...
-
- def __init__(self,
- *,
- background : Optional[int] = ...,
- icon : Optional[int] = ...,
- title : Optional[bytes] = ...,
- subtitle : Optional[bytes] = ...,
- content : Optional[bytes] = ...,
- linkurl : Optional[bytes] = ...,
- blackstripe : Optional[bytes] = ...,
- notice : Optional[bytes] = ...,
- title_color : Optional[int] = ...,
- subtitle_color : Optional[int] = ...,
- actions_priority : Optional[bytes] = ...,
- jump_url : Optional[bytes] = ...,
- native_ios : Optional[bytes] = ...,
- native_android : Optional[bytes] = ...,
- iconurl : Optional[bytes] = ...,
- content_color : Optional[int] = ...,
- content_bgcolor : Optional[int] = ...,
- aio_image_left : Optional[bytes] = ...,
- aio_image_right : Optional[bytes] = ...,
- cft_image : Optional[bytes] = ...,
- pb_reserve : Optional[bytes] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal[u"actions_priority",b"actions_priority",u"aio_image_left",b"aio_image_left",u"aio_image_right",b"aio_image_right",u"background",b"background",u"blackstripe",b"blackstripe",u"cft_image",b"cft_image",u"content",b"content",u"content_bgcolor",b"content_bgcolor",u"content_color",b"content_color",u"icon",b"icon",u"iconurl",b"iconurl",u"jump_url",b"jump_url",u"linkurl",b"linkurl",u"native_android",b"native_android",u"native_ios",b"native_ios",u"notice",b"notice",u"pb_reserve",b"pb_reserve",u"subtitle",b"subtitle",u"subtitle_color",b"subtitle_color",u"title",b"title",u"title_color",b"title_color"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"actions_priority",b"actions_priority",u"aio_image_left",b"aio_image_left",u"aio_image_right",b"aio_image_right",u"background",b"background",u"blackstripe",b"blackstripe",u"cft_image",b"cft_image",u"content",b"content",u"content_bgcolor",b"content_bgcolor",u"content_color",b"content_color",u"icon",b"icon",u"iconurl",b"iconurl",u"jump_url",b"jump_url",u"linkurl",b"linkurl",u"native_android",b"native_android",u"native_ios",b"native_ios",u"notice",b"notice",u"pb_reserve",b"pb_reserve",u"subtitle",b"subtitle",u"subtitle_color",b"subtitle_color",u"title",b"title",u"title_color",b"title_color"]) -> None: ...
+ background: int
+ icon: int
+ title: bytes
+ subtitle: bytes
+ content: bytes
+ linkurl: bytes
+ blackstripe: bytes
+ notice: bytes
+ title_color: int
+ subtitle_color: int
+ actions_priority: bytes
+ jump_url: bytes
+ native_ios: bytes
+ native_android: bytes
+ iconurl: bytes
+ content_color: int
+ content_bgcolor: int
+ aio_image_left: bytes
+ aio_image_right: bytes
+ cft_image: bytes
+ pb_reserve: bytes
+ def __init__(self,
+ *,
+ background: Optional[int] = ...,
+ icon: Optional[int] = ...,
+ title: Optional[bytes] = ...,
+ subtitle: Optional[bytes] = ...,
+ content: Optional[bytes] = ...,
+ linkurl: Optional[bytes] = ...,
+ blackstripe: Optional[bytes] = ...,
+ notice: Optional[bytes] = ...,
+ title_color: Optional[int] = ...,
+ subtitle_color: Optional[int] = ...,
+ actions_priority: Optional[bytes] = ...,
+ jump_url: Optional[bytes] = ...,
+ native_ios: Optional[bytes] = ...,
+ native_android: Optional[bytes] = ...,
+ iconurl: Optional[bytes] = ...,
+ content_color: Optional[int] = ...,
+ content_bgcolor: Optional[int] = ...,
+ aio_image_left: Optional[bytes] = ...,
+ aio_image_right: Optional[bytes] = ...,
+ cft_image: Optional[bytes] = ...,
+ pb_reserve: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["actions_priority",b"actions_priority","aio_image_left",b"aio_image_left","aio_image_right",b"aio_image_right","background",b"background","blackstripe",b"blackstripe","cft_image",b"cft_image","content",b"content","content_bgcolor",b"content_bgcolor","content_color",b"content_color","icon",b"icon","iconurl",b"iconurl","jump_url",b"jump_url","linkurl",b"linkurl","native_android",b"native_android","native_ios",b"native_ios","notice",b"notice","pb_reserve",b"pb_reserve","subtitle",b"subtitle","subtitle_color",b"subtitle_color","title",b"title","title_color",b"title_color"]) -> bool: ...
+ def ClearField(self, field_name: Literal["actions_priority",b"actions_priority","aio_image_left",b"aio_image_left","aio_image_right",b"aio_image_right","background",b"background","blackstripe",b"blackstripe","cft_image",b"cft_image","content",b"content","content_bgcolor",b"content_bgcolor","content_color",b"content_color","icon",b"icon","iconurl",b"iconurl","jump_url",b"jump_url","linkurl",b"linkurl","native_android",b"native_android","native_ios",b"native_ios","notice",b"notice","pb_reserve",b"pb_reserve","subtitle",b"subtitle","subtitle_color",b"subtitle_color","title",b"title","title_color",b"title_color"]) -> None: ...
class QQWalletMsg(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
AIO_BODY_FIELD_NUMBER: int
-
@property
def aio_body(self) -> QQWalletAioBody: ...
-
def __init__(self,
*,
- aio_body : Optional[QQWalletAioBody] = ...,
+ aio_body: Optional[QQWalletAioBody] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"aio_body",b"aio_body"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"aio_body",b"aio_body"]) -> None: ...
+ def HasField(self, field_name: Literal["aio_body",b"aio_body"]) -> bool: ...
+ def ClearField(self, field_name: Literal["aio_body",b"aio_body"]) -> None: ...
class RedBagInfo(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
REDBAG_TYPE_FIELD_NUMBER: int
- redbag_type: int = ...
-
+ redbag_type: int
def __init__(self,
*,
- redbag_type : Optional[int] = ...,
+ redbag_type: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"redbag_type",b"redbag_type"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"redbag_type",b"redbag_type"]) -> None: ...
+ def HasField(self, field_name: Literal["redbag_type",b"redbag_type"]) -> bool: ...
+ def ClearField(self, field_name: Literal["redbag_type",b"redbag_type"]) -> None: ...
class RichMsg(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
TEMPLATE_1_FIELD_NUMBER: int
SERVICE_ID_FIELD_NUMBER: int
MSG_RESID_FIELD_NUMBER: int
RAND_FIELD_NUMBER: int
SEQ_FIELD_NUMBER: int
FLAGS_FIELD_NUMBER: int
- template_1: bytes = ...
- service_id: int = ...
- msg_resid: bytes = ...
- rand: int = ...
- seq: int = ...
- flags: int = ...
-
+ template_1: bytes
+ service_id: int
+ msg_resid: bytes
+ rand: int
+ seq: int
+ flags: int
def __init__(self,
*,
- template_1 : Optional[bytes] = ...,
- service_id : Optional[int] = ...,
- msg_resid : Optional[bytes] = ...,
- rand : Optional[int] = ...,
- seq : Optional[int] = ...,
- flags : Optional[int] = ...,
+ template_1: Optional[bytes] = ...,
+ service_id: Optional[int] = ...,
+ msg_resid: Optional[bytes] = ...,
+ rand: Optional[int] = ...,
+ seq: Optional[int] = ...,
+ flags: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"flags",b"flags",u"msg_resid",b"msg_resid",u"rand",b"rand",u"seq",b"seq",u"service_id",b"service_id",u"template_1",b"template_1"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"flags",b"flags",u"msg_resid",b"msg_resid",u"rand",b"rand",u"seq",b"seq",u"service_id",b"service_id",u"template_1",b"template_1"]) -> None: ...
+ def HasField(self, field_name: Literal["flags",b"flags","msg_resid",b"msg_resid","rand",b"rand","seq",b"seq","service_id",b"service_id","template_1",b"template_1"]) -> bool: ...
+ def ClearField(self, field_name: Literal["flags",b"flags","msg_resid",b"msg_resid","rand",b"rand","seq",b"seq","service_id",b"service_id","template_1",b"template_1"]) -> None: ...
class RichText(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
ATTR_FIELD_NUMBER: int
ELEMS_FIELD_NUMBER: int
NOT_ONLINE_FILE_FIELD_NUMBER: int
PTT_FIELD_NUMBER: int
TMP_PTT_FIELD_NUMBER: int
TRANS_211_TMP_MSG_FIELD_NUMBER: int
-
@property
def attr(self) -> Attr: ...
-
@property
def elems(self) -> RepeatedCompositeFieldContainer[Elem]: ...
-
@property
def not_online_file(self) -> NotOnlineFile: ...
-
@property
def ptt(self) -> Ptt: ...
-
@property
def tmp_ptt(self) -> TmpPtt: ...
-
@property
def trans_211_tmp_msg(self) -> Trans211TmpMsg: ...
-
def __init__(self,
*,
- attr : Optional[Attr] = ...,
- elems : Optional[Iterable[Elem]] = ...,
- not_online_file : Optional[NotOnlineFile] = ...,
- ptt : Optional[Ptt] = ...,
- tmp_ptt : Optional[TmpPtt] = ...,
- trans_211_tmp_msg : Optional[Trans211TmpMsg] = ...,
+ attr: Optional[Attr] = ...,
+ elems: Optional[Iterable[Elem]] = ...,
+ not_online_file: Optional[NotOnlineFile] = ...,
+ ptt: Optional[Ptt] = ...,
+ tmp_ptt: Optional[TmpPtt] = ...,
+ trans_211_tmp_msg: Optional[Trans211TmpMsg] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"attr",b"attr",u"not_online_file",b"not_online_file",u"ptt",b"ptt",u"tmp_ptt",b"tmp_ptt",u"trans_211_tmp_msg",b"trans_211_tmp_msg"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"attr",b"attr",u"elems",b"elems",u"not_online_file",b"not_online_file",u"ptt",b"ptt",u"tmp_ptt",b"tmp_ptt",u"trans_211_tmp_msg",b"trans_211_tmp_msg"]) -> None: ...
+ def HasField(self, field_name: Literal["attr",b"attr","not_online_file",b"not_online_file","ptt",b"ptt","tmp_ptt",b"tmp_ptt","trans_211_tmp_msg",b"trans_211_tmp_msg"]) -> bool: ...
+ def ClearField(self, field_name: Literal["attr",b"attr","elems",b"elems","not_online_file",b"not_online_file","ptt",b"ptt","tmp_ptt",b"tmp_ptt","trans_211_tmp_msg",b"trans_211_tmp_msg"]) -> None: ...
class SecretFileMsg(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
FILE_KEY_FIELD_NUMBER: int
FROM_UIN_FIELD_NUMBER: int
TO_UIN_FIELD_NUMBER: int
@@ -2007,82 +1894,77 @@ class SecretFileMsg(Message):
ELEM_FLAGS2_FIELD_NUMBER: int
OPERTYPE_FIELD_NUMBER: int
FROMPHONENUM_FIELD_NUMBER: int
- file_key: bytes = ...
- from_uin: int = ...
- to_uin: int = ...
- status: int = ...
- ttl: int = ...
- type: int = ...
- encrypt_prehead_length: int = ...
- encrypt_type: int = ...
- encrypt_key: bytes = ...
- read_times: int = ...
- left_time: int = ...
- opertype: int = ...
- fromphonenum: Text = ...
-
+ file_key: bytes
+ from_uin: int
+ to_uin: int
+ status: int
+ ttl: int
+ type: int
+ encrypt_prehead_length: int
+ encrypt_type: int
+ encrypt_key: bytes
+ read_times: int
+ left_time: int
@property
def not_online_image(self) -> NotOnlineImage: ...
-
@property
def elem_flags2(self) -> ElemFlags2: ...
-
- def __init__(self,
- *,
- file_key : Optional[bytes] = ...,
- from_uin : Optional[int] = ...,
- to_uin : Optional[int] = ...,
- status : Optional[int] = ...,
- ttl : Optional[int] = ...,
- type : Optional[int] = ...,
- encrypt_prehead_length : Optional[int] = ...,
- encrypt_type : Optional[int] = ...,
- encrypt_key : Optional[bytes] = ...,
- read_times : Optional[int] = ...,
- left_time : Optional[int] = ...,
- not_online_image : Optional[NotOnlineImage] = ...,
- elem_flags2 : Optional[ElemFlags2] = ...,
- opertype : Optional[int] = ...,
- fromphonenum : Optional[Text] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal[u"elem_flags2",b"elem_flags2",u"encrypt_key",b"encrypt_key",u"encrypt_prehead_length",b"encrypt_prehead_length",u"encrypt_type",b"encrypt_type",u"file_key",b"file_key",u"from_uin",b"from_uin",u"fromphonenum",b"fromphonenum",u"left_time",b"left_time",u"not_online_image",b"not_online_image",u"opertype",b"opertype",u"read_times",b"read_times",u"status",b"status",u"to_uin",b"to_uin",u"ttl",b"ttl",u"type",b"type"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"elem_flags2",b"elem_flags2",u"encrypt_key",b"encrypt_key",u"encrypt_prehead_length",b"encrypt_prehead_length",u"encrypt_type",b"encrypt_type",u"file_key",b"file_key",u"from_uin",b"from_uin",u"fromphonenum",b"fromphonenum",u"left_time",b"left_time",u"not_online_image",b"not_online_image",u"opertype",b"opertype",u"read_times",b"read_times",u"status",b"status",u"to_uin",b"to_uin",u"ttl",b"ttl",u"type",b"type"]) -> None: ...
+ opertype: int
+ fromphonenum: Text
+ def __init__(self,
+ *,
+ file_key: Optional[bytes] = ...,
+ from_uin: Optional[int] = ...,
+ to_uin: Optional[int] = ...,
+ status: Optional[int] = ...,
+ ttl: Optional[int] = ...,
+ type: Optional[int] = ...,
+ encrypt_prehead_length: Optional[int] = ...,
+ encrypt_type: Optional[int] = ...,
+ encrypt_key: Optional[bytes] = ...,
+ read_times: Optional[int] = ...,
+ left_time: Optional[int] = ...,
+ not_online_image: Optional[NotOnlineImage] = ...,
+ elem_flags2: Optional[ElemFlags2] = ...,
+ opertype: Optional[int] = ...,
+ fromphonenum: Optional[Text] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["elem_flags2",b"elem_flags2","encrypt_key",b"encrypt_key","encrypt_prehead_length",b"encrypt_prehead_length","encrypt_type",b"encrypt_type","file_key",b"file_key","from_uin",b"from_uin","fromphonenum",b"fromphonenum","left_time",b"left_time","not_online_image",b"not_online_image","opertype",b"opertype","read_times",b"read_times","status",b"status","to_uin",b"to_uin","ttl",b"ttl","type",b"type"]) -> bool: ...
+ def ClearField(self, field_name: Literal["elem_flags2",b"elem_flags2","encrypt_key",b"encrypt_key","encrypt_prehead_length",b"encrypt_prehead_length","encrypt_type",b"encrypt_type","file_key",b"file_key","from_uin",b"from_uin","fromphonenum",b"fromphonenum","left_time",b"left_time","not_online_image",b"not_online_image","opertype",b"opertype","read_times",b"read_times","status",b"status","to_uin",b"to_uin","ttl",b"ttl","type",b"type"]) -> None: ...
class ShakeWindow(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
TYPE_FIELD_NUMBER: int
RESERVE_FIELD_NUMBER: int
UIN_FIELD_NUMBER: int
- type: int = ...
- reserve: int = ...
- uin: int = ...
-
+ type: int
+ reserve: int
+ uin: int
def __init__(self,
*,
- type : Optional[int] = ...,
- reserve : Optional[int] = ...,
- uin : Optional[int] = ...,
+ type: Optional[int] = ...,
+ reserve: Optional[int] = ...,
+ uin: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"reserve",b"reserve",u"type",b"type",u"uin",b"uin"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"reserve",b"reserve",u"type",b"type",u"uin",b"uin"]) -> None: ...
+ def HasField(self, field_name: Literal["reserve",b"reserve","type",b"type","uin",b"uin"]) -> bool: ...
+ def ClearField(self, field_name: Literal["reserve",b"reserve","type",b"type","uin",b"uin"]) -> None: ...
class SmallEmoji(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
PACK_ID_SUM_FIELD_NUMBER: int
IMAGE_TYPE_FIELD_NUMBER: int
- pack_id_sum: int = ...
- image_type: int = ...
-
+ pack_id_sum: int
+ image_type: int
def __init__(self,
*,
- pack_id_sum : Optional[int] = ...,
- image_type : Optional[int] = ...,
+ pack_id_sum: Optional[int] = ...,
+ image_type: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"image_type",b"image_type",u"pack_id_sum",b"pack_id_sum"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"image_type",b"image_type",u"pack_id_sum",b"pack_id_sum"]) -> None: ...
+ def HasField(self, field_name: Literal["image_type",b"image_type","pack_id_sum",b"pack_id_sum"]) -> bool: ...
+ def ClearField(self, field_name: Literal["image_type",b"image_type","pack_id_sum",b"pack_id_sum"]) -> None: ...
class SourceMsg(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
ORIG_SEQS_FIELD_NUMBER: int
SENDER_UIN_FIELD_NUMBER: int
TIME_FIELD_NUMBER: int
@@ -2094,78 +1976,75 @@ class SourceMsg(Message):
SRC_MSG_FIELD_NUMBER: int
TO_UIN_FIELD_NUMBER: int
TROOP_NAME_FIELD_NUMBER: int
- orig_seqs: RepeatedScalarFieldContainer[int] = ...
- sender_uin: int = ...
- time: int = ...
- flag: int = ...
- type: int = ...
- rich_msg: bytes = ...
- pb_reserve: bytes = ...
- src_msg: bytes = ...
- to_uin: int = ...
- troop_name: bytes = ...
-
+ @property
+ def orig_seqs(self) -> RepeatedScalarFieldContainer[int]: ...
+ sender_uin: int
+ time: int
+ flag: int
@property
def elems(self) -> RepeatedCompositeFieldContainer[Elem]: ...
-
- def __init__(self,
- *,
- orig_seqs : Optional[Iterable[int]] = ...,
- sender_uin : Optional[int] = ...,
- time : Optional[int] = ...,
- flag : Optional[int] = ...,
- elems : Optional[Iterable[Elem]] = ...,
- type : Optional[int] = ...,
- rich_msg : Optional[bytes] = ...,
- pb_reserve : Optional[bytes] = ...,
- src_msg : Optional[bytes] = ...,
- to_uin : Optional[int] = ...,
- troop_name : Optional[bytes] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal[u"flag",b"flag",u"pb_reserve",b"pb_reserve",u"rich_msg",b"rich_msg",u"sender_uin",b"sender_uin",u"src_msg",b"src_msg",u"time",b"time",u"to_uin",b"to_uin",u"troop_name",b"troop_name",u"type",b"type"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"elems",b"elems",u"flag",b"flag",u"orig_seqs",b"orig_seqs",u"pb_reserve",b"pb_reserve",u"rich_msg",b"rich_msg",u"sender_uin",b"sender_uin",u"src_msg",b"src_msg",u"time",b"time",u"to_uin",b"to_uin",u"troop_name",b"troop_name",u"type",b"type"]) -> None: ...
+ type: int
+ rich_msg: bytes
+ pb_reserve: bytes
+ src_msg: bytes
+ to_uin: int
+ troop_name: bytes
+ def __init__(self,
+ *,
+ orig_seqs: Optional[Iterable[int]] = ...,
+ sender_uin: Optional[int] = ...,
+ time: Optional[int] = ...,
+ flag: Optional[int] = ...,
+ elems: Optional[Iterable[Elem]] = ...,
+ type: Optional[int] = ...,
+ rich_msg: Optional[bytes] = ...,
+ pb_reserve: Optional[bytes] = ...,
+ src_msg: Optional[bytes] = ...,
+ to_uin: Optional[int] = ...,
+ troop_name: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["flag",b"flag","pb_reserve",b"pb_reserve","rich_msg",b"rich_msg","sender_uin",b"sender_uin","src_msg",b"src_msg","time",b"time","to_uin",b"to_uin","troop_name",b"troop_name","type",b"type"]) -> bool: ...
+ def ClearField(self, field_name: Literal["elems",b"elems","flag",b"flag","orig_seqs",b"orig_seqs","pb_reserve",b"pb_reserve","rich_msg",b"rich_msg","sender_uin",b"sender_uin","src_msg",b"src_msg","time",b"time","to_uin",b"to_uin","troop_name",b"troop_name","type",b"type"]) -> None: ...
class PlainText(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
STR_FIELD_NUMBER: int
LINK_FIELD_NUMBER: int
ATTR_6_BUF_FIELD_NUMBER: int
ATTR_7_BUF_FIELD_NUMBER: int
BUF_FIELD_NUMBER: int
PB_RESERVE_FIELD_NUMBER: int
- str: bytes = ...
- link: Text = ...
- attr_6_buf: bytes = ...
- attr_7_buf: bytes = ...
- buf: bytes = ...
- pb_reserve: bytes = ...
-
+ str: bytes
+ link: Text
+ attr_6_buf: bytes
+ attr_7_buf: bytes
+ buf: bytes
+ pb_reserve: bytes
def __init__(self,
*,
- str : Optional[bytes] = ...,
- link : Optional[Text] = ...,
- attr_6_buf : Optional[bytes] = ...,
- attr_7_buf : Optional[bytes] = ...,
- buf : Optional[bytes] = ...,
- pb_reserve : Optional[bytes] = ...,
+ str: Optional[bytes] = ...,
+ link: Optional[Text] = ...,
+ attr_6_buf: Optional[bytes] = ...,
+ attr_7_buf: Optional[bytes] = ...,
+ buf: Optional[bytes] = ...,
+ pb_reserve: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"attr_6_buf",b"attr_6_buf",u"attr_7_buf",b"attr_7_buf",u"buf",b"buf",u"link",b"link",u"pb_reserve",b"pb_reserve",u"str",b"str"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"attr_6_buf",b"attr_6_buf",u"attr_7_buf",b"attr_7_buf",u"buf",b"buf",u"link",b"link",u"pb_reserve",b"pb_reserve",u"str",b"str"]) -> None: ...
+ def HasField(self, field_name: Literal["attr_6_buf",b"attr_6_buf","attr_7_buf",b"attr_7_buf","buf",b"buf","link",b"link","pb_reserve",b"pb_reserve","str",b"str"]) -> bool: ...
+ def ClearField(self, field_name: Literal["attr_6_buf",b"attr_6_buf","attr_7_buf",b"attr_7_buf","buf",b"buf","link",b"link","pb_reserve",b"pb_reserve","str",b"str"]) -> None: ...
class TipsInfo(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
TEXT_FIELD_NUMBER: int
- text: Text = ...
-
+ text: Text
def __init__(self,
*,
- text : Optional[Text] = ...,
+ text: Optional[Text] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"text",b"text"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"text",b"text"]) -> None: ...
+ def HasField(self, field_name: Literal["text",b"text"]) -> bool: ...
+ def ClearField(self, field_name: Literal["text",b"text"]) -> None: ...
class TmpPtt(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
FILE_TYPE_FIELD_NUMBER: int
FILE_UUID_FIELD_NUMBER: int
FILE_MD5_FIELD_NUMBER: int
@@ -2178,69 +2057,66 @@ class TmpPtt(Message):
MSG_ID_FIELD_NUMBER: int
PB_RESERVE_FIELD_NUMBER: int
PTT_ENCODE_DATA_FIELD_NUMBER: int
- file_type: int = ...
- file_uuid: bytes = ...
- file_md5: bytes = ...
- file_name: bytes = ...
- file_size: int = ...
- ptt_times: int = ...
- user_type: int = ...
- ptttrans_flag: int = ...
- busi_type: int = ...
- msg_id: int = ...
- pb_reserve: bytes = ...
- ptt_encode_data: bytes = ...
-
- def __init__(self,
- *,
- file_type : Optional[int] = ...,
- file_uuid : Optional[bytes] = ...,
- file_md5 : Optional[bytes] = ...,
- file_name : Optional[bytes] = ...,
- file_size : Optional[int] = ...,
- ptt_times : Optional[int] = ...,
- user_type : Optional[int] = ...,
- ptttrans_flag : Optional[int] = ...,
- busi_type : Optional[int] = ...,
- msg_id : Optional[int] = ...,
- pb_reserve : Optional[bytes] = ...,
- ptt_encode_data : Optional[bytes] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal[u"busi_type",b"busi_type",u"file_md5",b"file_md5",u"file_name",b"file_name",u"file_size",b"file_size",u"file_type",b"file_type",u"file_uuid",b"file_uuid",u"msg_id",b"msg_id",u"pb_reserve",b"pb_reserve",u"ptt_encode_data",b"ptt_encode_data",u"ptt_times",b"ptt_times",u"ptttrans_flag",b"ptttrans_flag",u"user_type",b"user_type"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"busi_type",b"busi_type",u"file_md5",b"file_md5",u"file_name",b"file_name",u"file_size",b"file_size",u"file_type",b"file_type",u"file_uuid",b"file_uuid",u"msg_id",b"msg_id",u"pb_reserve",b"pb_reserve",u"ptt_encode_data",b"ptt_encode_data",u"ptt_times",b"ptt_times",u"ptttrans_flag",b"ptttrans_flag",u"user_type",b"user_type"]) -> None: ...
+ file_type: int
+ file_uuid: bytes
+ file_md5: bytes
+ file_name: bytes
+ file_size: int
+ ptt_times: int
+ user_type: int
+ ptttrans_flag: int
+ busi_type: int
+ msg_id: int
+ pb_reserve: bytes
+ ptt_encode_data: bytes
+ def __init__(self,
+ *,
+ file_type: Optional[int] = ...,
+ file_uuid: Optional[bytes] = ...,
+ file_md5: Optional[bytes] = ...,
+ file_name: Optional[bytes] = ...,
+ file_size: Optional[int] = ...,
+ ptt_times: Optional[int] = ...,
+ user_type: Optional[int] = ...,
+ ptttrans_flag: Optional[int] = ...,
+ busi_type: Optional[int] = ...,
+ msg_id: Optional[int] = ...,
+ pb_reserve: Optional[bytes] = ...,
+ ptt_encode_data: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["busi_type",b"busi_type","file_md5",b"file_md5","file_name",b"file_name","file_size",b"file_size","file_type",b"file_type","file_uuid",b"file_uuid","msg_id",b"msg_id","pb_reserve",b"pb_reserve","ptt_encode_data",b"ptt_encode_data","ptt_times",b"ptt_times","ptttrans_flag",b"ptttrans_flag","user_type",b"user_type"]) -> bool: ...
+ def ClearField(self, field_name: Literal["busi_type",b"busi_type","file_md5",b"file_md5","file_name",b"file_name","file_size",b"file_size","file_type",b"file_type","file_uuid",b"file_uuid","msg_id",b"msg_id","pb_reserve",b"pb_reserve","ptt_encode_data",b"ptt_encode_data","ptt_times",b"ptt_times","ptttrans_flag",b"ptttrans_flag","user_type",b"user_type"]) -> None: ...
class Trans211TmpMsg(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
MSG_BODY_FIELD_NUMBER: int
C2C_CMD_FIELD_NUMBER: int
- msg_body: bytes = ...
- c2c_cmd: int = ...
-
+ msg_body: bytes
+ c2c_cmd: int
def __init__(self,
*,
- msg_body : Optional[bytes] = ...,
- c2c_cmd : Optional[int] = ...,
+ msg_body: Optional[bytes] = ...,
+ c2c_cmd: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"c2c_cmd",b"c2c_cmd",u"msg_body",b"msg_body"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"c2c_cmd",b"c2c_cmd",u"msg_body",b"msg_body"]) -> None: ...
+ def HasField(self, field_name: Literal["c2c_cmd",b"c2c_cmd","msg_body",b"msg_body"]) -> bool: ...
+ def ClearField(self, field_name: Literal["c2c_cmd",b"c2c_cmd","msg_body",b"msg_body"]) -> None: ...
class TransElem(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
ELEM_TYPE_FIELD_NUMBER: int
ELEM_VALUE_FIELD_NUMBER: int
- elem_type: int = ...
- elem_value: bytes = ...
-
+ elem_type: int
+ elem_value: bytes
def __init__(self,
*,
- elem_type : Optional[int] = ...,
- elem_value : Optional[bytes] = ...,
+ elem_type: Optional[int] = ...,
+ elem_value: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"elem_type",b"elem_type",u"elem_value",b"elem_value"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"elem_type",b"elem_type",u"elem_value",b"elem_value"]) -> None: ...
+ def HasField(self, field_name: Literal["elem_type",b"elem_type","elem_value",b"elem_value"]) -> bool: ...
+ def ClearField(self, field_name: Literal["elem_type",b"elem_type","elem_value",b"elem_value"]) -> None: ...
class VideoFile(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
FILE_UUID_FIELD_NUMBER: int
FILE_MD5_FIELD_NUMBER: int
FILE_NAME_FIELD_NUMBER: int
@@ -2265,90 +2141,89 @@ class VideoFile(Message):
THUMB_DOWNLOAD_FLAG_FIELD_NUMBER: int
VIDEO_DOWNLOAD_FLAG_FIELD_NUMBER: int
PB_RESERVE_FIELD_NUMBER: int
- file_uuid: bytes = ...
- file_md5: bytes = ...
- file_name: bytes = ...
- file_format: int = ...
- file_time: int = ...
- file_size: int = ...
- thumb_width: int = ...
- thumb_height: int = ...
- thumb_file_md5: bytes = ...
- source: bytes = ...
- thumb_file_size: int = ...
- busi_type: int = ...
- from_chat_type: int = ...
- to_chat_type: int = ...
- support_progressive: bool = ...
- file_width: int = ...
- file_height: int = ...
- sub_busi_type: int = ...
- video_attr: int = ...
- thumb_file_urls: RepeatedScalarFieldContainer[bytes] = ...
- video_file_urls: RepeatedScalarFieldContainer[bytes] = ...
- thumb_download_flag: int = ...
- video_download_flag: int = ...
- pb_reserve: bytes = ...
-
- def __init__(self,
- *,
- file_uuid : Optional[bytes] = ...,
- file_md5 : Optional[bytes] = ...,
- file_name : Optional[bytes] = ...,
- file_format : Optional[int] = ...,
- file_time : Optional[int] = ...,
- file_size : Optional[int] = ...,
- thumb_width : Optional[int] = ...,
- thumb_height : Optional[int] = ...,
- thumb_file_md5 : Optional[bytes] = ...,
- source : Optional[bytes] = ...,
- thumb_file_size : Optional[int] = ...,
- busi_type : Optional[int] = ...,
- from_chat_type : Optional[int] = ...,
- to_chat_type : Optional[int] = ...,
- support_progressive : Optional[bool] = ...,
- file_width : Optional[int] = ...,
- file_height : Optional[int] = ...,
- sub_busi_type : Optional[int] = ...,
- video_attr : Optional[int] = ...,
- thumb_file_urls : Optional[Iterable[bytes]] = ...,
- video_file_urls : Optional[Iterable[bytes]] = ...,
- thumb_download_flag : Optional[int] = ...,
- video_download_flag : Optional[int] = ...,
- pb_reserve : Optional[bytes] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal[u"busi_type",b"busi_type",u"file_format",b"file_format",u"file_height",b"file_height",u"file_md5",b"file_md5",u"file_name",b"file_name",u"file_size",b"file_size",u"file_time",b"file_time",u"file_uuid",b"file_uuid",u"file_width",b"file_width",u"from_chat_type",b"from_chat_type",u"pb_reserve",b"pb_reserve",u"source",b"source",u"sub_busi_type",b"sub_busi_type",u"support_progressive",b"support_progressive",u"thumb_download_flag",b"thumb_download_flag",u"thumb_file_md5",b"thumb_file_md5",u"thumb_file_size",b"thumb_file_size",u"thumb_height",b"thumb_height",u"thumb_width",b"thumb_width",u"to_chat_type",b"to_chat_type",u"video_attr",b"video_attr",u"video_download_flag",b"video_download_flag"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"busi_type",b"busi_type",u"file_format",b"file_format",u"file_height",b"file_height",u"file_md5",b"file_md5",u"file_name",b"file_name",u"file_size",b"file_size",u"file_time",b"file_time",u"file_uuid",b"file_uuid",u"file_width",b"file_width",u"from_chat_type",b"from_chat_type",u"pb_reserve",b"pb_reserve",u"source",b"source",u"sub_busi_type",b"sub_busi_type",u"support_progressive",b"support_progressive",u"thumb_download_flag",b"thumb_download_flag",u"thumb_file_md5",b"thumb_file_md5",u"thumb_file_size",b"thumb_file_size",u"thumb_file_urls",b"thumb_file_urls",u"thumb_height",b"thumb_height",u"thumb_width",b"thumb_width",u"to_chat_type",b"to_chat_type",u"video_attr",b"video_attr",u"video_download_flag",b"video_download_flag",u"video_file_urls",b"video_file_urls"]) -> None: ...
+ file_uuid: bytes
+ file_md5: bytes
+ file_name: bytes
+ file_format: int
+ file_time: int
+ file_size: int
+ thumb_width: int
+ thumb_height: int
+ thumb_file_md5: bytes
+ source: bytes
+ thumb_file_size: int
+ busi_type: int
+ from_chat_type: int
+ to_chat_type: int
+ support_progressive: bool
+ file_width: int
+ file_height: int
+ sub_busi_type: int
+ video_attr: int
+ @property
+ def thumb_file_urls(self) -> RepeatedScalarFieldContainer[bytes]: ...
+ @property
+ def video_file_urls(self) -> RepeatedScalarFieldContainer[bytes]: ...
+ thumb_download_flag: int
+ video_download_flag: int
+ pb_reserve: bytes
+ def __init__(self,
+ *,
+ file_uuid: Optional[bytes] = ...,
+ file_md5: Optional[bytes] = ...,
+ file_name: Optional[bytes] = ...,
+ file_format: Optional[int] = ...,
+ file_time: Optional[int] = ...,
+ file_size: Optional[int] = ...,
+ thumb_width: Optional[int] = ...,
+ thumb_height: Optional[int] = ...,
+ thumb_file_md5: Optional[bytes] = ...,
+ source: Optional[bytes] = ...,
+ thumb_file_size: Optional[int] = ...,
+ busi_type: Optional[int] = ...,
+ from_chat_type: Optional[int] = ...,
+ to_chat_type: Optional[int] = ...,
+ support_progressive: Optional[bool] = ...,
+ file_width: Optional[int] = ...,
+ file_height: Optional[int] = ...,
+ sub_busi_type: Optional[int] = ...,
+ video_attr: Optional[int] = ...,
+ thumb_file_urls: Optional[Iterable[bytes]] = ...,
+ video_file_urls: Optional[Iterable[bytes]] = ...,
+ thumb_download_flag: Optional[int] = ...,
+ video_download_flag: Optional[int] = ...,
+ pb_reserve: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["busi_type",b"busi_type","file_format",b"file_format","file_height",b"file_height","file_md5",b"file_md5","file_name",b"file_name","file_size",b"file_size","file_time",b"file_time","file_uuid",b"file_uuid","file_width",b"file_width","from_chat_type",b"from_chat_type","pb_reserve",b"pb_reserve","source",b"source","sub_busi_type",b"sub_busi_type","support_progressive",b"support_progressive","thumb_download_flag",b"thumb_download_flag","thumb_file_md5",b"thumb_file_md5","thumb_file_size",b"thumb_file_size","thumb_height",b"thumb_height","thumb_width",b"thumb_width","to_chat_type",b"to_chat_type","video_attr",b"video_attr","video_download_flag",b"video_download_flag"]) -> bool: ...
+ def ClearField(self, field_name: Literal["busi_type",b"busi_type","file_format",b"file_format","file_height",b"file_height","file_md5",b"file_md5","file_name",b"file_name","file_size",b"file_size","file_time",b"file_time","file_uuid",b"file_uuid","file_width",b"file_width","from_chat_type",b"from_chat_type","pb_reserve",b"pb_reserve","source",b"source","sub_busi_type",b"sub_busi_type","support_progressive",b"support_progressive","thumb_download_flag",b"thumb_download_flag","thumb_file_md5",b"thumb_file_md5","thumb_file_size",b"thumb_file_size","thumb_file_urls",b"thumb_file_urls","thumb_height",b"thumb_height","thumb_width",b"thumb_width","to_chat_type",b"to_chat_type","video_attr",b"video_attr","video_download_flag",b"video_download_flag","video_file_urls",b"video_file_urls"]) -> None: ...
class WorkflowNotifyMsg(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
EXT_MSG_FIELD_NUMBER: int
CREATE_UIN_FIELD_NUMBER: int
- ext_msg: bytes = ...
- create_uin: int = ...
-
+ ext_msg: bytes
+ create_uin: int
def __init__(self,
*,
- ext_msg : Optional[bytes] = ...,
- create_uin : Optional[int] = ...,
+ ext_msg: Optional[bytes] = ...,
+ create_uin: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"create_uin",b"create_uin",u"ext_msg",b"ext_msg"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"create_uin",b"create_uin",u"ext_msg",b"ext_msg"]) -> None: ...
+ def HasField(self, field_name: Literal["create_uin",b"create_uin","ext_msg",b"ext_msg"]) -> bool: ...
+ def ClearField(self, field_name: Literal["create_uin",b"create_uin","ext_msg",b"ext_msg"]) -> None: ...
class LocationInfo(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
LONGITUDE_FIELD_NUMBER: int
LATITUDE_FIELD_NUMBER: int
DESC_FIELD_NUMBER: int
- longitude: float = ...
- latitude: float = ...
- desc: bytes = ...
-
+ longitude: float
+ latitude: float
+ desc: bytes
def __init__(self,
*,
- longitude : Optional[float] = ...,
- latitude : Optional[float] = ...,
- desc : Optional[bytes] = ...,
+ longitude: Optional[float] = ...,
+ latitude: Optional[float] = ...,
+ desc: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"desc",b"desc",u"latitude",b"latitude",u"longitude",b"longitude"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"desc",b"desc",u"latitude",b"latitude",u"longitude",b"longitude"]) -> None: ...
+ def HasField(self, field_name: Literal["desc",b"desc","latitude",b"latitude","longitude",b"longitude"]) -> bool: ...
+ def ClearField(self, field_name: Literal["desc",b"desc","latitude",b"latitude","longitude",b"longitude"]) -> None: ...
diff --git a/cai/pb/im/msg/msg_head/msg_head_pb2.py b/cai/pb/im/msg/msg_head/msg_head_pb2.py
index f55330e0..840f1bc3 100644
--- a/cai/pb/im/msg/msg_head/msg_head_pb2.py
+++ b/cai/pb/im/msg/msg_head/msg_head_pb2.py
@@ -3,6 +3,7 @@
# source: cai/pb/im/msg/msg_head/msg_head.proto
"""Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
@@ -13,1058 +14,22 @@
-DESCRIPTOR = _descriptor.FileDescriptor(
- name='cai/pb/im/msg/msg_head/msg_head.proto',
- package='im.msg.msg_head',
- syntax='proto2',
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- serialized_pb=b'\n%cai/pb/im/msg/msg_head/msg_head.proto\x12\x0fim.msg.msg_head\"\xd4\x01\n\x07\x43\x32\x43Head\x12\x0e\n\x06to_uin\x18\x01 \x01(\x04\x12\x10\n\x08\x66rom_uin\x18\x02 \x01(\x04\x12\x0f\n\x07\x63\x63_type\x18\x03 \x01(\r\x12\x0e\n\x06\x63\x63_cmd\x18\x04 \x01(\r\x12\x14\n\x0c\x61uth_pic_sig\x18\x05 \x01(\x0c\x12\x10\n\x08\x61uth_sig\x18\x06 \x01(\x0c\x12\x10\n\x08\x61uth_buf\x18\x07 \x01(\x0c\x12\x13\n\x0bserver_time\x18\x08 \x01(\r\x12\x13\n\x0b\x63lient_time\x18\t \x01(\r\x12\x0c\n\x04rand\x18\n \x01(\r\x12\x14\n\x0cphone_number\x18\x0b \x01(\t\"\xb7\x03\n\x06\x43SHead\x12\x0b\n\x03uin\x18\x01 \x01(\x04\x12\x0f\n\x07\x63ommand\x18\x02 \x01(\r\x12\x0b\n\x03seq\x18\x03 \x01(\r\x12\x0f\n\x07version\x18\x04 \x01(\r\x12\x13\n\x0bretry_times\x18\x05 \x01(\r\x12\x13\n\x0b\x63lient_type\x18\x06 \x01(\r\x12\r\n\x05pubno\x18\x07 \x01(\r\x12\x0f\n\x07localid\x18\x08 \x01(\r\x12\x10\n\x08timezone\x18\t \x01(\r\x12\x11\n\tclient_ip\x18\n \x01(\x07\x12\x13\n\x0b\x63lient_port\x18\x0b \x01(\r\x12\x0f\n\x07\x63onn_ip\x18\x0c \x01(\x07\x12\x11\n\tconn_port\x18\r \x01(\r\x12\x14\n\x0cinterface_ip\x18\x0e \x01(\x07\x12\x16\n\x0einterface_port\x18\x0f \x01(\r\x12\x11\n\tactual_ip\x18\x10 \x01(\x07\x12\x0c\n\x04\x66lag\x18\x11 \x01(\r\x12\x11\n\ttimestamp\x18\x12 \x01(\x07\x12\x0e\n\x06subcmd\x18\x13 \x01(\r\x12\x0e\n\x06result\x18\x14 \x01(\r\x12\x0e\n\x06\x61pp_id\x18\x15 \x01(\r\x12\x13\n\x0binstance_id\x18\x16 \x01(\r\x12\x12\n\nsession_id\x18\x17 \x01(\x04\x12\x0e\n\x06idc_id\x18\x18 \x01(\r\"\x85\x01\n\tDeltaHead\x12\x11\n\ttotal_len\x18\x01 \x01(\x04\x12\x0e\n\x06offset\x18\x02 \x01(\x04\x12\x12\n\nack_offset\x18\x03 \x01(\x04\x12\x0e\n\x06\x63ookie\x18\x04 \x01(\x0c\x12\x12\n\nack_cookie\x18\x05 \x01(\x0c\x12\x0e\n\x06result\x18\x06 \x01(\r\x12\r\n\x05\x66lags\x18\x07 \x01(\r\"\xa1\x03\n\x04Head\x12\x11\n\thead_type\x18\x01 \x01(\r\x12(\n\x07\x63s_head\x18\x02 \x01(\x0b\x32\x17.im.msg.msg_head.CSHead\x12*\n\x08s2c_head\x18\x03 \x01(\x0b\x32\x18.im.msg.msg_head.S2CHead\x12\x34\n\rhttpconn_head\x18\x04 \x01(\x0b\x32\x1d.im.msg.msg_head.HttpConnHead\x12\x12\n\npaint_flag\x18\x05 \x01(\r\x12,\n\tlogin_sig\x18\x06 \x01(\x0b\x32\x19.im.msg.msg_head.LoginSig\x12.\n\ndelta_head\x18\x07 \x01(\x0b\x32\x1a.im.msg.msg_head.DeltaHead\x12*\n\x08\x63\x32\x63_head\x18\x08 \x01(\x0b\x32\x18.im.msg.msg_head.C2CHead\x12.\n\nsconn_head\x18\t \x01(\x0b\x32\x1a.im.msg.msg_head.SConnHead\x12,\n\tinst_ctrl\x18\n \x01(\x0b\x32\x19.im.msg.msg_head.InstCtrl\"\x98\x04\n\x0cHttpConnHead\x12\x0b\n\x03uin\x18\x01 \x01(\x04\x12\x0f\n\x07\x63ommand\x18\x02 \x01(\r\x12\x13\n\x0bsub_command\x18\x03 \x01(\r\x12\x0b\n\x03seq\x18\x04 \x01(\r\x12\x0f\n\x07version\x18\x05 \x01(\r\x12\x13\n\x0bretry_times\x18\x06 \x01(\r\x12\x13\n\x0b\x63lient_type\x18\x07 \x01(\r\x12\x0e\n\x06pub_no\x18\x08 \x01(\r\x12\x10\n\x08local_id\x18\t \x01(\r\x12\x11\n\ttime_zone\x18\n \x01(\r\x12\x11\n\tclient_ip\x18\x0b \x01(\x07\x12\x13\n\x0b\x63lient_port\x18\x0c \x01(\r\x12\x11\n\tqzhttp_ip\x18\r \x01(\x07\x12\x13\n\x0bqzhttp_port\x18\x0e \x01(\r\x12\x0e\n\x06spp_ip\x18\x0f \x01(\x07\x12\x10\n\x08spp_port\x18\x10 \x01(\r\x12\x0c\n\x04\x66lag\x18\x11 \x01(\r\x12\x0b\n\x03key\x18\x12 \x01(\x0c\x12\x15\n\rcompress_type\x18\x13 \x01(\r\x12\x13\n\x0borigin_size\x18\x14 \x01(\r\x12\x12\n\nerror_code\x18\x15 \x01(\r\x12.\n\x08redirect\x18\x16 \x01(\x0b\x32\x1c.im.msg.msg_head.RedirectMsg\x12\x12\n\ncommand_id\x18\x17 \x01(\r\x12\x15\n\rservice_cmdid\x18\x18 \x01(\r\x12\x30\n\x08oidbhead\x18\x19 \x01(\x0b\x32\x1e.im.msg.msg_head.TransOidbHead\"\x9a\x01\n\x08InstCtrl\x12/\n\x0csend_to_inst\x18\x01 \x03(\x0b\x32\x19.im.msg.msg_head.InstInfo\x12/\n\x0c\x65xclude_inst\x18\x02 \x03(\x0b\x32\x19.im.msg.msg_head.InstInfo\x12,\n\tfrom_inst\x18\x03 \x01(\x0b\x32\x19.im.msg.msg_head.InstInfo\"V\n\x08InstInfo\x12\x0e\n\x06\x61pppid\x18\x01 \x01(\r\x12\x0e\n\x06instid\x18\x02 \x01(\r\x12\x10\n\x08platform\x18\x03 \x01(\r\x12\x18\n\x10\x65num_device_type\x18\n \x01(\r\"%\n\x08LoginSig\x12\x0c\n\x04type\x18\x01 \x01(\r\x12\x0b\n\x03sig\x18\x02 \x01(\x0c\"\x87\x01\n\x0bRedirectMsg\x12\x18\n\x10last_redirect_ip\x18\x01 \x01(\x07\x12\x1a\n\x12last_redirect_port\x18\x02 \x01(\r\x12\x13\n\x0bredirect_ip\x18\x03 \x01(\x07\x12\x15\n\rredirect_port\x18\x04 \x01(\r\x12\x16\n\x0eredirect_count\x18\x05 \x01(\r\"\x88\x01\n\x07S2CHead\x12\x13\n\x0bsub_msgtype\x18\x01 \x01(\r\x12\x10\n\x08msg_type\x18\x02 \x01(\r\x12\x10\n\x08\x66rom_uin\x18\x03 \x01(\x04\x12\x0e\n\x06msg_id\x18\x04 \x01(\r\x12\x10\n\x08relay_ip\x18\x05 \x01(\x07\x12\x12\n\nrelay_port\x18\x06 \x01(\r\x12\x0e\n\x06to_uin\x18\x07 \x01(\x04\"\x0b\n\tSConnHead\"Y\n\rTransOidbHead\x12\x0f\n\x07\x63ommand\x18\x01 \x01(\r\x12\x14\n\x0cservice_type\x18\x02 \x01(\r\x12\x0e\n\x06result\x18\x03 \x01(\r\x12\x11\n\terror_msg\x18\x04 \x01(\t'
-)
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%cai/pb/im/msg/msg_head/msg_head.proto\x12\x0fim.msg.msg_head\"\xd4\x01\n\x07\x43\x32\x43Head\x12\x0e\n\x06to_uin\x18\x01 \x01(\x04\x12\x10\n\x08\x66rom_uin\x18\x02 \x01(\x04\x12\x0f\n\x07\x63\x63_type\x18\x03 \x01(\r\x12\x0e\n\x06\x63\x63_cmd\x18\x04 \x01(\r\x12\x14\n\x0c\x61uth_pic_sig\x18\x05 \x01(\x0c\x12\x10\n\x08\x61uth_sig\x18\x06 \x01(\x0c\x12\x10\n\x08\x61uth_buf\x18\x07 \x01(\x0c\x12\x13\n\x0bserver_time\x18\x08 \x01(\r\x12\x13\n\x0b\x63lient_time\x18\t \x01(\r\x12\x0c\n\x04rand\x18\n \x01(\r\x12\x14\n\x0cphone_number\x18\x0b \x01(\t\"\xb7\x03\n\x06\x43SHead\x12\x0b\n\x03uin\x18\x01 \x01(\x04\x12\x0f\n\x07\x63ommand\x18\x02 \x01(\r\x12\x0b\n\x03seq\x18\x03 \x01(\r\x12\x0f\n\x07version\x18\x04 \x01(\r\x12\x13\n\x0bretry_times\x18\x05 \x01(\r\x12\x13\n\x0b\x63lient_type\x18\x06 \x01(\r\x12\r\n\x05pubno\x18\x07 \x01(\r\x12\x0f\n\x07localid\x18\x08 \x01(\r\x12\x10\n\x08timezone\x18\t \x01(\r\x12\x11\n\tclient_ip\x18\n \x01(\x07\x12\x13\n\x0b\x63lient_port\x18\x0b \x01(\r\x12\x0f\n\x07\x63onn_ip\x18\x0c \x01(\x07\x12\x11\n\tconn_port\x18\r \x01(\r\x12\x14\n\x0cinterface_ip\x18\x0e \x01(\x07\x12\x16\n\x0einterface_port\x18\x0f \x01(\r\x12\x11\n\tactual_ip\x18\x10 \x01(\x07\x12\x0c\n\x04\x66lag\x18\x11 \x01(\r\x12\x11\n\ttimestamp\x18\x12 \x01(\x07\x12\x0e\n\x06subcmd\x18\x13 \x01(\r\x12\x0e\n\x06result\x18\x14 \x01(\r\x12\x0e\n\x06\x61pp_id\x18\x15 \x01(\r\x12\x13\n\x0binstance_id\x18\x16 \x01(\r\x12\x12\n\nsession_id\x18\x17 \x01(\x04\x12\x0e\n\x06idc_id\x18\x18 \x01(\r\"\x85\x01\n\tDeltaHead\x12\x11\n\ttotal_len\x18\x01 \x01(\x04\x12\x0e\n\x06offset\x18\x02 \x01(\x04\x12\x12\n\nack_offset\x18\x03 \x01(\x04\x12\x0e\n\x06\x63ookie\x18\x04 \x01(\x0c\x12\x12\n\nack_cookie\x18\x05 \x01(\x0c\x12\x0e\n\x06result\x18\x06 \x01(\r\x12\r\n\x05\x66lags\x18\x07 \x01(\r\"\xa1\x03\n\x04Head\x12\x11\n\thead_type\x18\x01 \x01(\r\x12(\n\x07\x63s_head\x18\x02 \x01(\x0b\x32\x17.im.msg.msg_head.CSHead\x12*\n\x08s2c_head\x18\x03 \x01(\x0b\x32\x18.im.msg.msg_head.S2CHead\x12\x34\n\rhttpconn_head\x18\x04 \x01(\x0b\x32\x1d.im.msg.msg_head.HttpConnHead\x12\x12\n\npaint_flag\x18\x05 \x01(\r\x12,\n\tlogin_sig\x18\x06 \x01(\x0b\x32\x19.im.msg.msg_head.LoginSig\x12.\n\ndelta_head\x18\x07 \x01(\x0b\x32\x1a.im.msg.msg_head.DeltaHead\x12*\n\x08\x63\x32\x63_head\x18\x08 \x01(\x0b\x32\x18.im.msg.msg_head.C2CHead\x12.\n\nsconn_head\x18\t \x01(\x0b\x32\x1a.im.msg.msg_head.SConnHead\x12,\n\tinst_ctrl\x18\n \x01(\x0b\x32\x19.im.msg.msg_head.InstCtrl\"\x98\x04\n\x0cHttpConnHead\x12\x0b\n\x03uin\x18\x01 \x01(\x04\x12\x0f\n\x07\x63ommand\x18\x02 \x01(\r\x12\x13\n\x0bsub_command\x18\x03 \x01(\r\x12\x0b\n\x03seq\x18\x04 \x01(\r\x12\x0f\n\x07version\x18\x05 \x01(\r\x12\x13\n\x0bretry_times\x18\x06 \x01(\r\x12\x13\n\x0b\x63lient_type\x18\x07 \x01(\r\x12\x0e\n\x06pub_no\x18\x08 \x01(\r\x12\x10\n\x08local_id\x18\t \x01(\r\x12\x11\n\ttime_zone\x18\n \x01(\r\x12\x11\n\tclient_ip\x18\x0b \x01(\x07\x12\x13\n\x0b\x63lient_port\x18\x0c \x01(\r\x12\x11\n\tqzhttp_ip\x18\r \x01(\x07\x12\x13\n\x0bqzhttp_port\x18\x0e \x01(\r\x12\x0e\n\x06spp_ip\x18\x0f \x01(\x07\x12\x10\n\x08spp_port\x18\x10 \x01(\r\x12\x0c\n\x04\x66lag\x18\x11 \x01(\r\x12\x0b\n\x03key\x18\x12 \x01(\x0c\x12\x15\n\rcompress_type\x18\x13 \x01(\r\x12\x13\n\x0borigin_size\x18\x14 \x01(\r\x12\x12\n\nerror_code\x18\x15 \x01(\r\x12.\n\x08redirect\x18\x16 \x01(\x0b\x32\x1c.im.msg.msg_head.RedirectMsg\x12\x12\n\ncommand_id\x18\x17 \x01(\r\x12\x15\n\rservice_cmdid\x18\x18 \x01(\r\x12\x30\n\x08oidbhead\x18\x19 \x01(\x0b\x32\x1e.im.msg.msg_head.TransOidbHead\"\x9a\x01\n\x08InstCtrl\x12/\n\x0csend_to_inst\x18\x01 \x03(\x0b\x32\x19.im.msg.msg_head.InstInfo\x12/\n\x0c\x65xclude_inst\x18\x02 \x03(\x0b\x32\x19.im.msg.msg_head.InstInfo\x12,\n\tfrom_inst\x18\x03 \x01(\x0b\x32\x19.im.msg.msg_head.InstInfo\"V\n\x08InstInfo\x12\x0e\n\x06\x61pppid\x18\x01 \x01(\r\x12\x0e\n\x06instid\x18\x02 \x01(\r\x12\x10\n\x08platform\x18\x03 \x01(\r\x12\x18\n\x10\x65num_device_type\x18\n \x01(\r\"%\n\x08LoginSig\x12\x0c\n\x04type\x18\x01 \x01(\r\x12\x0b\n\x03sig\x18\x02 \x01(\x0c\"\x87\x01\n\x0bRedirectMsg\x12\x18\n\x10last_redirect_ip\x18\x01 \x01(\x07\x12\x1a\n\x12last_redirect_port\x18\x02 \x01(\r\x12\x13\n\x0bredirect_ip\x18\x03 \x01(\x07\x12\x15\n\rredirect_port\x18\x04 \x01(\r\x12\x16\n\x0eredirect_count\x18\x05 \x01(\r\"\x88\x01\n\x07S2CHead\x12\x13\n\x0bsub_msgtype\x18\x01 \x01(\r\x12\x10\n\x08msg_type\x18\x02 \x01(\r\x12\x10\n\x08\x66rom_uin\x18\x03 \x01(\x04\x12\x0e\n\x06msg_id\x18\x04 \x01(\r\x12\x10\n\x08relay_ip\x18\x05 \x01(\x07\x12\x12\n\nrelay_port\x18\x06 \x01(\r\x12\x0e\n\x06to_uin\x18\x07 \x01(\x04\"\x0b\n\tSConnHead\"Y\n\rTransOidbHead\x12\x0f\n\x07\x63ommand\x18\x01 \x01(\r\x12\x14\n\x0cservice_type\x18\x02 \x01(\r\x12\x0e\n\x06result\x18\x03 \x01(\r\x12\x11\n\terror_msg\x18\x04 \x01(\t')
-
-_C2CHEAD = _descriptor.Descriptor(
- name='C2CHead',
- full_name='im.msg.msg_head.C2CHead',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='to_uin', full_name='im.msg.msg_head.C2CHead.to_uin', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='from_uin', full_name='im.msg.msg_head.C2CHead.from_uin', index=1,
- number=2, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='cc_type', full_name='im.msg.msg_head.C2CHead.cc_type', index=2,
- number=3, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='cc_cmd', full_name='im.msg.msg_head.C2CHead.cc_cmd', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='auth_pic_sig', full_name='im.msg.msg_head.C2CHead.auth_pic_sig', index=4,
- number=5, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='auth_sig', full_name='im.msg.msg_head.C2CHead.auth_sig', index=5,
- number=6, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='auth_buf', full_name='im.msg.msg_head.C2CHead.auth_buf', index=6,
- number=7, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='server_time', full_name='im.msg.msg_head.C2CHead.server_time', index=7,
- number=8, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='client_time', full_name='im.msg.msg_head.C2CHead.client_time', index=8,
- number=9, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='rand', full_name='im.msg.msg_head.C2CHead.rand', index=9,
- number=10, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='phone_number', full_name='im.msg.msg_head.C2CHead.phone_number', index=10,
- number=11, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=59,
- serialized_end=271,
-)
-
-
-_CSHEAD = _descriptor.Descriptor(
- name='CSHead',
- full_name='im.msg.msg_head.CSHead',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='uin', full_name='im.msg.msg_head.CSHead.uin', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='command', full_name='im.msg.msg_head.CSHead.command', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='seq', full_name='im.msg.msg_head.CSHead.seq', index=2,
- number=3, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='version', full_name='im.msg.msg_head.CSHead.version', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='retry_times', full_name='im.msg.msg_head.CSHead.retry_times', index=4,
- number=5, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='client_type', full_name='im.msg.msg_head.CSHead.client_type', index=5,
- number=6, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='pubno', full_name='im.msg.msg_head.CSHead.pubno', index=6,
- number=7, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='localid', full_name='im.msg.msg_head.CSHead.localid', index=7,
- number=8, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='timezone', full_name='im.msg.msg_head.CSHead.timezone', index=8,
- number=9, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='client_ip', full_name='im.msg.msg_head.CSHead.client_ip', index=9,
- number=10, type=7, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='client_port', full_name='im.msg.msg_head.CSHead.client_port', index=10,
- number=11, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='conn_ip', full_name='im.msg.msg_head.CSHead.conn_ip', index=11,
- number=12, type=7, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='conn_port', full_name='im.msg.msg_head.CSHead.conn_port', index=12,
- number=13, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='interface_ip', full_name='im.msg.msg_head.CSHead.interface_ip', index=13,
- number=14, type=7, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='interface_port', full_name='im.msg.msg_head.CSHead.interface_port', index=14,
- number=15, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='actual_ip', full_name='im.msg.msg_head.CSHead.actual_ip', index=15,
- number=16, type=7, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='flag', full_name='im.msg.msg_head.CSHead.flag', index=16,
- number=17, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='timestamp', full_name='im.msg.msg_head.CSHead.timestamp', index=17,
- number=18, type=7, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='subcmd', full_name='im.msg.msg_head.CSHead.subcmd', index=18,
- number=19, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='result', full_name='im.msg.msg_head.CSHead.result', index=19,
- number=20, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='app_id', full_name='im.msg.msg_head.CSHead.app_id', index=20,
- number=21, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='instance_id', full_name='im.msg.msg_head.CSHead.instance_id', index=21,
- number=22, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='session_id', full_name='im.msg.msg_head.CSHead.session_id', index=22,
- number=23, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='idc_id', full_name='im.msg.msg_head.CSHead.idc_id', index=23,
- number=24, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=274,
- serialized_end=713,
-)
-
-
-_DELTAHEAD = _descriptor.Descriptor(
- name='DeltaHead',
- full_name='im.msg.msg_head.DeltaHead',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='total_len', full_name='im.msg.msg_head.DeltaHead.total_len', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='offset', full_name='im.msg.msg_head.DeltaHead.offset', index=1,
- number=2, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='ack_offset', full_name='im.msg.msg_head.DeltaHead.ack_offset', index=2,
- number=3, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='cookie', full_name='im.msg.msg_head.DeltaHead.cookie', index=3,
- number=4, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='ack_cookie', full_name='im.msg.msg_head.DeltaHead.ack_cookie', index=4,
- number=5, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='result', full_name='im.msg.msg_head.DeltaHead.result', index=5,
- number=6, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='flags', full_name='im.msg.msg_head.DeltaHead.flags', index=6,
- number=7, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=716,
- serialized_end=849,
-)
-
-
-_HEAD = _descriptor.Descriptor(
- name='Head',
- full_name='im.msg.msg_head.Head',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='head_type', full_name='im.msg.msg_head.Head.head_type', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='cs_head', full_name='im.msg.msg_head.Head.cs_head', index=1,
- number=2, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='s2c_head', full_name='im.msg.msg_head.Head.s2c_head', index=2,
- number=3, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='httpconn_head', full_name='im.msg.msg_head.Head.httpconn_head', index=3,
- number=4, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='paint_flag', full_name='im.msg.msg_head.Head.paint_flag', index=4,
- number=5, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='login_sig', full_name='im.msg.msg_head.Head.login_sig', index=5,
- number=6, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='delta_head', full_name='im.msg.msg_head.Head.delta_head', index=6,
- number=7, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='c2c_head', full_name='im.msg.msg_head.Head.c2c_head', index=7,
- number=8, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='sconn_head', full_name='im.msg.msg_head.Head.sconn_head', index=8,
- number=9, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='inst_ctrl', full_name='im.msg.msg_head.Head.inst_ctrl', index=9,
- number=10, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=852,
- serialized_end=1269,
-)
-
-
-_HTTPCONNHEAD = _descriptor.Descriptor(
- name='HttpConnHead',
- full_name='im.msg.msg_head.HttpConnHead',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='uin', full_name='im.msg.msg_head.HttpConnHead.uin', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='command', full_name='im.msg.msg_head.HttpConnHead.command', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='sub_command', full_name='im.msg.msg_head.HttpConnHead.sub_command', index=2,
- number=3, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='seq', full_name='im.msg.msg_head.HttpConnHead.seq', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='version', full_name='im.msg.msg_head.HttpConnHead.version', index=4,
- number=5, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='retry_times', full_name='im.msg.msg_head.HttpConnHead.retry_times', index=5,
- number=6, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='client_type', full_name='im.msg.msg_head.HttpConnHead.client_type', index=6,
- number=7, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='pub_no', full_name='im.msg.msg_head.HttpConnHead.pub_no', index=7,
- number=8, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='local_id', full_name='im.msg.msg_head.HttpConnHead.local_id', index=8,
- number=9, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='time_zone', full_name='im.msg.msg_head.HttpConnHead.time_zone', index=9,
- number=10, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='client_ip', full_name='im.msg.msg_head.HttpConnHead.client_ip', index=10,
- number=11, type=7, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='client_port', full_name='im.msg.msg_head.HttpConnHead.client_port', index=11,
- number=12, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='qzhttp_ip', full_name='im.msg.msg_head.HttpConnHead.qzhttp_ip', index=12,
- number=13, type=7, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='qzhttp_port', full_name='im.msg.msg_head.HttpConnHead.qzhttp_port', index=13,
- number=14, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='spp_ip', full_name='im.msg.msg_head.HttpConnHead.spp_ip', index=14,
- number=15, type=7, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='spp_port', full_name='im.msg.msg_head.HttpConnHead.spp_port', index=15,
- number=16, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='flag', full_name='im.msg.msg_head.HttpConnHead.flag', index=16,
- number=17, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='key', full_name='im.msg.msg_head.HttpConnHead.key', index=17,
- number=18, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='compress_type', full_name='im.msg.msg_head.HttpConnHead.compress_type', index=18,
- number=19, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='origin_size', full_name='im.msg.msg_head.HttpConnHead.origin_size', index=19,
- number=20, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='error_code', full_name='im.msg.msg_head.HttpConnHead.error_code', index=20,
- number=21, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='redirect', full_name='im.msg.msg_head.HttpConnHead.redirect', index=21,
- number=22, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='command_id', full_name='im.msg.msg_head.HttpConnHead.command_id', index=22,
- number=23, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='service_cmdid', full_name='im.msg.msg_head.HttpConnHead.service_cmdid', index=23,
- number=24, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='oidbhead', full_name='im.msg.msg_head.HttpConnHead.oidbhead', index=24,
- number=25, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=1272,
- serialized_end=1808,
-)
-
-
-_INSTCTRL = _descriptor.Descriptor(
- name='InstCtrl',
- full_name='im.msg.msg_head.InstCtrl',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='send_to_inst', full_name='im.msg.msg_head.InstCtrl.send_to_inst', index=0,
- number=1, type=11, cpp_type=10, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='exclude_inst', full_name='im.msg.msg_head.InstCtrl.exclude_inst', index=1,
- number=2, type=11, cpp_type=10, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='from_inst', full_name='im.msg.msg_head.InstCtrl.from_inst', index=2,
- number=3, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=1811,
- serialized_end=1965,
-)
-
-
-_INSTINFO = _descriptor.Descriptor(
- name='InstInfo',
- full_name='im.msg.msg_head.InstInfo',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='apppid', full_name='im.msg.msg_head.InstInfo.apppid', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='instid', full_name='im.msg.msg_head.InstInfo.instid', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='platform', full_name='im.msg.msg_head.InstInfo.platform', index=2,
- number=3, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='enum_device_type', full_name='im.msg.msg_head.InstInfo.enum_device_type', index=3,
- number=10, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=1967,
- serialized_end=2053,
-)
-
-
-_LOGINSIG = _descriptor.Descriptor(
- name='LoginSig',
- full_name='im.msg.msg_head.LoginSig',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='type', full_name='im.msg.msg_head.LoginSig.type', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='sig', full_name='im.msg.msg_head.LoginSig.sig', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=2055,
- serialized_end=2092,
-)
-
-
-_REDIRECTMSG = _descriptor.Descriptor(
- name='RedirectMsg',
- full_name='im.msg.msg_head.RedirectMsg',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='last_redirect_ip', full_name='im.msg.msg_head.RedirectMsg.last_redirect_ip', index=0,
- number=1, type=7, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='last_redirect_port', full_name='im.msg.msg_head.RedirectMsg.last_redirect_port', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='redirect_ip', full_name='im.msg.msg_head.RedirectMsg.redirect_ip', index=2,
- number=3, type=7, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='redirect_port', full_name='im.msg.msg_head.RedirectMsg.redirect_port', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='redirect_count', full_name='im.msg.msg_head.RedirectMsg.redirect_count', index=4,
- number=5, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=2095,
- serialized_end=2230,
-)
-
-
-_S2CHEAD = _descriptor.Descriptor(
- name='S2CHead',
- full_name='im.msg.msg_head.S2CHead',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='sub_msgtype', full_name='im.msg.msg_head.S2CHead.sub_msgtype', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='msg_type', full_name='im.msg.msg_head.S2CHead.msg_type', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='from_uin', full_name='im.msg.msg_head.S2CHead.from_uin', index=2,
- number=3, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='msg_id', full_name='im.msg.msg_head.S2CHead.msg_id', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='relay_ip', full_name='im.msg.msg_head.S2CHead.relay_ip', index=4,
- number=5, type=7, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='relay_port', full_name='im.msg.msg_head.S2CHead.relay_port', index=5,
- number=6, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='to_uin', full_name='im.msg.msg_head.S2CHead.to_uin', index=6,
- number=7, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=2233,
- serialized_end=2369,
-)
-
-
-_SCONNHEAD = _descriptor.Descriptor(
- name='SConnHead',
- full_name='im.msg.msg_head.SConnHead',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=2371,
- serialized_end=2382,
-)
-
-
-_TRANSOIDBHEAD = _descriptor.Descriptor(
- name='TransOidbHead',
- full_name='im.msg.msg_head.TransOidbHead',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='command', full_name='im.msg.msg_head.TransOidbHead.command', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='service_type', full_name='im.msg.msg_head.TransOidbHead.service_type', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='result', full_name='im.msg.msg_head.TransOidbHead.result', index=2,
- number=3, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='error_msg', full_name='im.msg.msg_head.TransOidbHead.error_msg', index=3,
- number=4, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=2384,
- serialized_end=2473,
-)
-
-_HEAD.fields_by_name['cs_head'].message_type = _CSHEAD
-_HEAD.fields_by_name['s2c_head'].message_type = _S2CHEAD
-_HEAD.fields_by_name['httpconn_head'].message_type = _HTTPCONNHEAD
-_HEAD.fields_by_name['login_sig'].message_type = _LOGINSIG
-_HEAD.fields_by_name['delta_head'].message_type = _DELTAHEAD
-_HEAD.fields_by_name['c2c_head'].message_type = _C2CHEAD
-_HEAD.fields_by_name['sconn_head'].message_type = _SCONNHEAD
-_HEAD.fields_by_name['inst_ctrl'].message_type = _INSTCTRL
-_HTTPCONNHEAD.fields_by_name['redirect'].message_type = _REDIRECTMSG
-_HTTPCONNHEAD.fields_by_name['oidbhead'].message_type = _TRANSOIDBHEAD
-_INSTCTRL.fields_by_name['send_to_inst'].message_type = _INSTINFO
-_INSTCTRL.fields_by_name['exclude_inst'].message_type = _INSTINFO
-_INSTCTRL.fields_by_name['from_inst'].message_type = _INSTINFO
-DESCRIPTOR.message_types_by_name['C2CHead'] = _C2CHEAD
-DESCRIPTOR.message_types_by_name['CSHead'] = _CSHEAD
-DESCRIPTOR.message_types_by_name['DeltaHead'] = _DELTAHEAD
-DESCRIPTOR.message_types_by_name['Head'] = _HEAD
-DESCRIPTOR.message_types_by_name['HttpConnHead'] = _HTTPCONNHEAD
-DESCRIPTOR.message_types_by_name['InstCtrl'] = _INSTCTRL
-DESCRIPTOR.message_types_by_name['InstInfo'] = _INSTINFO
-DESCRIPTOR.message_types_by_name['LoginSig'] = _LOGINSIG
-DESCRIPTOR.message_types_by_name['RedirectMsg'] = _REDIRECTMSG
-DESCRIPTOR.message_types_by_name['S2CHead'] = _S2CHEAD
-DESCRIPTOR.message_types_by_name['SConnHead'] = _SCONNHEAD
-DESCRIPTOR.message_types_by_name['TransOidbHead'] = _TRANSOIDBHEAD
-_sym_db.RegisterFileDescriptor(DESCRIPTOR)
-
+_C2CHEAD = DESCRIPTOR.message_types_by_name['C2CHead']
+_CSHEAD = DESCRIPTOR.message_types_by_name['CSHead']
+_DELTAHEAD = DESCRIPTOR.message_types_by_name['DeltaHead']
+_HEAD = DESCRIPTOR.message_types_by_name['Head']
+_HTTPCONNHEAD = DESCRIPTOR.message_types_by_name['HttpConnHead']
+_INSTCTRL = DESCRIPTOR.message_types_by_name['InstCtrl']
+_INSTINFO = DESCRIPTOR.message_types_by_name['InstInfo']
+_LOGINSIG = DESCRIPTOR.message_types_by_name['LoginSig']
+_REDIRECTMSG = DESCRIPTOR.message_types_by_name['RedirectMsg']
+_S2CHEAD = DESCRIPTOR.message_types_by_name['S2CHead']
+_SCONNHEAD = DESCRIPTOR.message_types_by_name['SConnHead']
+_TRANSOIDBHEAD = DESCRIPTOR.message_types_by_name['TransOidbHead']
C2CHead = _reflection.GeneratedProtocolMessageType('C2CHead', (_message.Message,), {
'DESCRIPTOR' : _C2CHEAD,
'__module__' : 'cai.pb.im.msg.msg_head.msg_head_pb2'
@@ -1149,5 +114,31 @@
})
_sym_db.RegisterMessage(TransOidbHead)
-
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ _C2CHEAD._serialized_start=59
+ _C2CHEAD._serialized_end=271
+ _CSHEAD._serialized_start=274
+ _CSHEAD._serialized_end=713
+ _DELTAHEAD._serialized_start=716
+ _DELTAHEAD._serialized_end=849
+ _HEAD._serialized_start=852
+ _HEAD._serialized_end=1269
+ _HTTPCONNHEAD._serialized_start=1272
+ _HTTPCONNHEAD._serialized_end=1808
+ _INSTCTRL._serialized_start=1811
+ _INSTCTRL._serialized_end=1965
+ _INSTINFO._serialized_start=1967
+ _INSTINFO._serialized_end=2053
+ _LOGINSIG._serialized_start=2055
+ _LOGINSIG._serialized_end=2092
+ _REDIRECTMSG._serialized_start=2095
+ _REDIRECTMSG._serialized_end=2230
+ _S2CHEAD._serialized_start=2233
+ _S2CHEAD._serialized_end=2369
+ _SCONNHEAD._serialized_start=2371
+ _SCONNHEAD._serialized_end=2382
+ _TRANSOIDBHEAD._serialized_start=2384
+ _TRANSOIDBHEAD._serialized_end=2473
# @@protoc_insertion_point(module_scope)
diff --git a/cai/pb/im/msg/msg_head/msg_head_pb2.pyi b/cai/pb/im/msg/msg_head/msg_head_pb2.pyi
index 8288d243..24b94614 100644
--- a/cai/pb/im/msg/msg_head/msg_head_pb2.pyi
+++ b/cai/pb/im/msg/msg_head/msg_head_pb2.pyi
@@ -32,10 +32,13 @@ from typing_extensions import (
)
-DESCRIPTOR: FileDescriptor = ...
+DESCRIPTOR: FileDescriptor
class C2CHead(Message):
- DESCRIPTOR: Descriptor = ...
+ """tencent/im/msg/im_msg_head.java
+
+ """
+ DESCRIPTOR: Descriptor
TO_UIN_FIELD_NUMBER: int
FROM_UIN_FIELD_NUMBER: int
CC_TYPE_FIELD_NUMBER: int
@@ -47,37 +50,36 @@ class C2CHead(Message):
CLIENT_TIME_FIELD_NUMBER: int
RAND_FIELD_NUMBER: int
PHONE_NUMBER_FIELD_NUMBER: int
- to_uin: int = ...
- from_uin: int = ...
- cc_type: int = ...
- cc_cmd: int = ...
- auth_pic_sig: bytes = ...
- auth_sig: bytes = ...
- auth_buf: bytes = ...
- server_time: int = ...
- client_time: int = ...
- rand: int = ...
- phone_number: Text = ...
-
+ to_uin: int
+ from_uin: int
+ cc_type: int
+ cc_cmd: int
+ auth_pic_sig: bytes
+ auth_sig: bytes
+ auth_buf: bytes
+ server_time: int
+ client_time: int
+ rand: int
+ phone_number: Text
def __init__(self,
*,
- to_uin : Optional[int] = ...,
- from_uin : Optional[int] = ...,
- cc_type : Optional[int] = ...,
- cc_cmd : Optional[int] = ...,
- auth_pic_sig : Optional[bytes] = ...,
- auth_sig : Optional[bytes] = ...,
- auth_buf : Optional[bytes] = ...,
- server_time : Optional[int] = ...,
- client_time : Optional[int] = ...,
- rand : Optional[int] = ...,
- phone_number : Optional[Text] = ...,
+ to_uin: Optional[int] = ...,
+ from_uin: Optional[int] = ...,
+ cc_type: Optional[int] = ...,
+ cc_cmd: Optional[int] = ...,
+ auth_pic_sig: Optional[bytes] = ...,
+ auth_sig: Optional[bytes] = ...,
+ auth_buf: Optional[bytes] = ...,
+ server_time: Optional[int] = ...,
+ client_time: Optional[int] = ...,
+ rand: Optional[int] = ...,
+ phone_number: Optional[Text] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"auth_buf",b"auth_buf",u"auth_pic_sig",b"auth_pic_sig",u"auth_sig",b"auth_sig",u"cc_cmd",b"cc_cmd",u"cc_type",b"cc_type",u"client_time",b"client_time",u"from_uin",b"from_uin",u"phone_number",b"phone_number",u"rand",b"rand",u"server_time",b"server_time",u"to_uin",b"to_uin"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"auth_buf",b"auth_buf",u"auth_pic_sig",b"auth_pic_sig",u"auth_sig",b"auth_sig",u"cc_cmd",b"cc_cmd",u"cc_type",b"cc_type",u"client_time",b"client_time",u"from_uin",b"from_uin",u"phone_number",b"phone_number",u"rand",b"rand",u"server_time",b"server_time",u"to_uin",b"to_uin"]) -> None: ...
+ def HasField(self, field_name: Literal["auth_buf",b"auth_buf","auth_pic_sig",b"auth_pic_sig","auth_sig",b"auth_sig","cc_cmd",b"cc_cmd","cc_type",b"cc_type","client_time",b"client_time","from_uin",b"from_uin","phone_number",b"phone_number","rand",b"rand","server_time",b"server_time","to_uin",b"to_uin"]) -> bool: ...
+ def ClearField(self, field_name: Literal["auth_buf",b"auth_buf","auth_pic_sig",b"auth_pic_sig","auth_sig",b"auth_sig","cc_cmd",b"cc_cmd","cc_type",b"cc_type","client_time",b"client_time","from_uin",b"from_uin","phone_number",b"phone_number","rand",b"rand","server_time",b"server_time","to_uin",b"to_uin"]) -> None: ...
class CSHead(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
UIN_FIELD_NUMBER: int
COMMAND_FIELD_NUMBER: int
SEQ_FIELD_NUMBER: int
@@ -102,63 +104,62 @@ class CSHead(Message):
INSTANCE_ID_FIELD_NUMBER: int
SESSION_ID_FIELD_NUMBER: int
IDC_ID_FIELD_NUMBER: int
- uin: int = ...
- command: int = ...
- seq: int = ...
- version: int = ...
- retry_times: int = ...
- client_type: int = ...
- pubno: int = ...
- localid: int = ...
- timezone: int = ...
- client_ip: int = ...
- client_port: int = ...
- conn_ip: int = ...
- conn_port: int = ...
- interface_ip: int = ...
- interface_port: int = ...
- actual_ip: int = ...
- flag: int = ...
- timestamp: int = ...
- subcmd: int = ...
- result: int = ...
- app_id: int = ...
- instance_id: int = ...
- session_id: int = ...
- idc_id: int = ...
-
+ uin: int
+ command: int
+ seq: int
+ version: int
+ retry_times: int
+ client_type: int
+ pubno: int
+ localid: int
+ timezone: int
+ client_ip: int
+ client_port: int
+ conn_ip: int
+ conn_port: int
+ interface_ip: int
+ interface_port: int
+ actual_ip: int
+ flag: int
+ timestamp: int
+ subcmd: int
+ result: int
+ app_id: int
+ instance_id: int
+ session_id: int
+ idc_id: int
def __init__(self,
*,
- uin : Optional[int] = ...,
- command : Optional[int] = ...,
- seq : Optional[int] = ...,
- version : Optional[int] = ...,
- retry_times : Optional[int] = ...,
- client_type : Optional[int] = ...,
- pubno : Optional[int] = ...,
- localid : Optional[int] = ...,
- timezone : Optional[int] = ...,
- client_ip : Optional[int] = ...,
- client_port : Optional[int] = ...,
- conn_ip : Optional[int] = ...,
- conn_port : Optional[int] = ...,
- interface_ip : Optional[int] = ...,
- interface_port : Optional[int] = ...,
- actual_ip : Optional[int] = ...,
- flag : Optional[int] = ...,
- timestamp : Optional[int] = ...,
- subcmd : Optional[int] = ...,
- result : Optional[int] = ...,
- app_id : Optional[int] = ...,
- instance_id : Optional[int] = ...,
- session_id : Optional[int] = ...,
- idc_id : Optional[int] = ...,
+ uin: Optional[int] = ...,
+ command: Optional[int] = ...,
+ seq: Optional[int] = ...,
+ version: Optional[int] = ...,
+ retry_times: Optional[int] = ...,
+ client_type: Optional[int] = ...,
+ pubno: Optional[int] = ...,
+ localid: Optional[int] = ...,
+ timezone: Optional[int] = ...,
+ client_ip: Optional[int] = ...,
+ client_port: Optional[int] = ...,
+ conn_ip: Optional[int] = ...,
+ conn_port: Optional[int] = ...,
+ interface_ip: Optional[int] = ...,
+ interface_port: Optional[int] = ...,
+ actual_ip: Optional[int] = ...,
+ flag: Optional[int] = ...,
+ timestamp: Optional[int] = ...,
+ subcmd: Optional[int] = ...,
+ result: Optional[int] = ...,
+ app_id: Optional[int] = ...,
+ instance_id: Optional[int] = ...,
+ session_id: Optional[int] = ...,
+ idc_id: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"actual_ip",b"actual_ip",u"app_id",b"app_id",u"client_ip",b"client_ip",u"client_port",b"client_port",u"client_type",b"client_type",u"command",b"command",u"conn_ip",b"conn_ip",u"conn_port",b"conn_port",u"flag",b"flag",u"idc_id",b"idc_id",u"instance_id",b"instance_id",u"interface_ip",b"interface_ip",u"interface_port",b"interface_port",u"localid",b"localid",u"pubno",b"pubno",u"result",b"result",u"retry_times",b"retry_times",u"seq",b"seq",u"session_id",b"session_id",u"subcmd",b"subcmd",u"timestamp",b"timestamp",u"timezone",b"timezone",u"uin",b"uin",u"version",b"version"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"actual_ip",b"actual_ip",u"app_id",b"app_id",u"client_ip",b"client_ip",u"client_port",b"client_port",u"client_type",b"client_type",u"command",b"command",u"conn_ip",b"conn_ip",u"conn_port",b"conn_port",u"flag",b"flag",u"idc_id",b"idc_id",u"instance_id",b"instance_id",u"interface_ip",b"interface_ip",u"interface_port",b"interface_port",u"localid",b"localid",u"pubno",b"pubno",u"result",b"result",u"retry_times",b"retry_times",u"seq",b"seq",u"session_id",b"session_id",u"subcmd",b"subcmd",u"timestamp",b"timestamp",u"timezone",b"timezone",u"uin",b"uin",u"version",b"version"]) -> None: ...
+ def HasField(self, field_name: Literal["actual_ip",b"actual_ip","app_id",b"app_id","client_ip",b"client_ip","client_port",b"client_port","client_type",b"client_type","command",b"command","conn_ip",b"conn_ip","conn_port",b"conn_port","flag",b"flag","idc_id",b"idc_id","instance_id",b"instance_id","interface_ip",b"interface_ip","interface_port",b"interface_port","localid",b"localid","pubno",b"pubno","result",b"result","retry_times",b"retry_times","seq",b"seq","session_id",b"session_id","subcmd",b"subcmd","timestamp",b"timestamp","timezone",b"timezone","uin",b"uin","version",b"version"]) -> bool: ...
+ def ClearField(self, field_name: Literal["actual_ip",b"actual_ip","app_id",b"app_id","client_ip",b"client_ip","client_port",b"client_port","client_type",b"client_type","command",b"command","conn_ip",b"conn_ip","conn_port",b"conn_port","flag",b"flag","idc_id",b"idc_id","instance_id",b"instance_id","interface_ip",b"interface_ip","interface_port",b"interface_port","localid",b"localid","pubno",b"pubno","result",b"result","retry_times",b"retry_times","seq",b"seq","session_id",b"session_id","subcmd",b"subcmd","timestamp",b"timestamp","timezone",b"timezone","uin",b"uin","version",b"version"]) -> None: ...
class DeltaHead(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
TOTAL_LEN_FIELD_NUMBER: int
OFFSET_FIELD_NUMBER: int
ACK_OFFSET_FIELD_NUMBER: int
@@ -166,29 +167,28 @@ class DeltaHead(Message):
ACK_COOKIE_FIELD_NUMBER: int
RESULT_FIELD_NUMBER: int
FLAGS_FIELD_NUMBER: int
- total_len: int = ...
- offset: int = ...
- ack_offset: int = ...
- cookie: bytes = ...
- ack_cookie: bytes = ...
- result: int = ...
- flags: int = ...
-
+ total_len: int
+ offset: int
+ ack_offset: int
+ cookie: bytes
+ ack_cookie: bytes
+ result: int
+ flags: int
def __init__(self,
*,
- total_len : Optional[int] = ...,
- offset : Optional[int] = ...,
- ack_offset : Optional[int] = ...,
- cookie : Optional[bytes] = ...,
- ack_cookie : Optional[bytes] = ...,
- result : Optional[int] = ...,
- flags : Optional[int] = ...,
+ total_len: Optional[int] = ...,
+ offset: Optional[int] = ...,
+ ack_offset: Optional[int] = ...,
+ cookie: Optional[bytes] = ...,
+ ack_cookie: Optional[bytes] = ...,
+ result: Optional[int] = ...,
+ flags: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"ack_cookie",b"ack_cookie",u"ack_offset",b"ack_offset",u"cookie",b"cookie",u"flags",b"flags",u"offset",b"offset",u"result",b"result",u"total_len",b"total_len"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"ack_cookie",b"ack_cookie",u"ack_offset",b"ack_offset",u"cookie",b"cookie",u"flags",b"flags",u"offset",b"offset",u"result",b"result",u"total_len",b"total_len"]) -> None: ...
+ def HasField(self, field_name: Literal["ack_cookie",b"ack_cookie","ack_offset",b"ack_offset","cookie",b"cookie","flags",b"flags","offset",b"offset","result",b"result","total_len",b"total_len"]) -> bool: ...
+ def ClearField(self, field_name: Literal["ack_cookie",b"ack_cookie","ack_offset",b"ack_offset","cookie",b"cookie","flags",b"flags","offset",b"offset","result",b"result","total_len",b"total_len"]) -> None: ...
class Head(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
HEAD_TYPE_FIELD_NUMBER: int
CS_HEAD_FIELD_NUMBER: int
S2C_HEAD_FIELD_NUMBER: int
@@ -199,51 +199,42 @@ class Head(Message):
C2C_HEAD_FIELD_NUMBER: int
SCONN_HEAD_FIELD_NUMBER: int
INST_CTRL_FIELD_NUMBER: int
- head_type: int = ...
- paint_flag: int = ...
-
+ head_type: int
@property
def cs_head(self) -> CSHead: ...
-
@property
def s2c_head(self) -> S2CHead: ...
-
@property
def httpconn_head(self) -> HttpConnHead: ...
-
+ paint_flag: int
@property
def login_sig(self) -> LoginSig: ...
-
@property
def delta_head(self) -> DeltaHead: ...
-
@property
def c2c_head(self) -> C2CHead: ...
-
@property
def sconn_head(self) -> SConnHead: ...
-
@property
def inst_ctrl(self) -> InstCtrl: ...
-
def __init__(self,
*,
- head_type : Optional[int] = ...,
- cs_head : Optional[CSHead] = ...,
- s2c_head : Optional[S2CHead] = ...,
- httpconn_head : Optional[HttpConnHead] = ...,
- paint_flag : Optional[int] = ...,
- login_sig : Optional[LoginSig] = ...,
- delta_head : Optional[DeltaHead] = ...,
- c2c_head : Optional[C2CHead] = ...,
- sconn_head : Optional[SConnHead] = ...,
- inst_ctrl : Optional[InstCtrl] = ...,
+ head_type: Optional[int] = ...,
+ cs_head: Optional[CSHead] = ...,
+ s2c_head: Optional[S2CHead] = ...,
+ httpconn_head: Optional[HttpConnHead] = ...,
+ paint_flag: Optional[int] = ...,
+ login_sig: Optional[LoginSig] = ...,
+ delta_head: Optional[DeltaHead] = ...,
+ c2c_head: Optional[C2CHead] = ...,
+ sconn_head: Optional[SConnHead] = ...,
+ inst_ctrl: Optional[InstCtrl] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"c2c_head",b"c2c_head",u"cs_head",b"cs_head",u"delta_head",b"delta_head",u"head_type",b"head_type",u"httpconn_head",b"httpconn_head",u"inst_ctrl",b"inst_ctrl",u"login_sig",b"login_sig",u"paint_flag",b"paint_flag",u"s2c_head",b"s2c_head",u"sconn_head",b"sconn_head"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"c2c_head",b"c2c_head",u"cs_head",b"cs_head",u"delta_head",b"delta_head",u"head_type",b"head_type",u"httpconn_head",b"httpconn_head",u"inst_ctrl",b"inst_ctrl",u"login_sig",b"login_sig",u"paint_flag",b"paint_flag",u"s2c_head",b"s2c_head",u"sconn_head",b"sconn_head"]) -> None: ...
+ def HasField(self, field_name: Literal["c2c_head",b"c2c_head","cs_head",b"cs_head","delta_head",b"delta_head","head_type",b"head_type","httpconn_head",b"httpconn_head","inst_ctrl",b"inst_ctrl","login_sig",b"login_sig","paint_flag",b"paint_flag","s2c_head",b"s2c_head","sconn_head",b"sconn_head"]) -> bool: ...
+ def ClearField(self, field_name: Literal["c2c_head",b"c2c_head","cs_head",b"cs_head","delta_head",b"delta_head","head_type",b"head_type","httpconn_head",b"httpconn_head","inst_ctrl",b"inst_ctrl","login_sig",b"login_sig","paint_flag",b"paint_flag","s2c_head",b"s2c_head","sconn_head",b"sconn_head"]) -> None: ...
class HttpConnHead(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
UIN_FIELD_NUMBER: int
COMMAND_FIELD_NUMBER: int
SUB_COMMAND_FIELD_NUMBER: int
@@ -269,153 +260,143 @@ class HttpConnHead(Message):
COMMAND_ID_FIELD_NUMBER: int
SERVICE_CMDID_FIELD_NUMBER: int
OIDBHEAD_FIELD_NUMBER: int
- uin: int = ...
- command: int = ...
- sub_command: int = ...
- seq: int = ...
- version: int = ...
- retry_times: int = ...
- client_type: int = ...
- pub_no: int = ...
- local_id: int = ...
- time_zone: int = ...
- client_ip: int = ...
- client_port: int = ...
- qzhttp_ip: int = ...
- qzhttp_port: int = ...
- spp_ip: int = ...
- spp_port: int = ...
- flag: int = ...
- key: bytes = ...
- compress_type: int = ...
- origin_size: int = ...
- error_code: int = ...
- command_id: int = ...
- service_cmdid: int = ...
-
+ uin: int
+ command: int
+ sub_command: int
+ seq: int
+ version: int
+ retry_times: int
+ client_type: int
+ pub_no: int
+ local_id: int
+ time_zone: int
+ client_ip: int
+ client_port: int
+ qzhttp_ip: int
+ qzhttp_port: int
+ spp_ip: int
+ spp_port: int
+ flag: int
+ key: bytes
+ compress_type: int
+ origin_size: int
+ error_code: int
@property
def redirect(self) -> RedirectMsg: ...
-
+ command_id: int
+ service_cmdid: int
@property
def oidbhead(self) -> TransOidbHead: ...
-
def __init__(self,
*,
- uin : Optional[int] = ...,
- command : Optional[int] = ...,
- sub_command : Optional[int] = ...,
- seq : Optional[int] = ...,
- version : Optional[int] = ...,
- retry_times : Optional[int] = ...,
- client_type : Optional[int] = ...,
- pub_no : Optional[int] = ...,
- local_id : Optional[int] = ...,
- time_zone : Optional[int] = ...,
- client_ip : Optional[int] = ...,
- client_port : Optional[int] = ...,
- qzhttp_ip : Optional[int] = ...,
- qzhttp_port : Optional[int] = ...,
- spp_ip : Optional[int] = ...,
- spp_port : Optional[int] = ...,
- flag : Optional[int] = ...,
- key : Optional[bytes] = ...,
- compress_type : Optional[int] = ...,
- origin_size : Optional[int] = ...,
- error_code : Optional[int] = ...,
- redirect : Optional[RedirectMsg] = ...,
- command_id : Optional[int] = ...,
- service_cmdid : Optional[int] = ...,
- oidbhead : Optional[TransOidbHead] = ...,
+ uin: Optional[int] = ...,
+ command: Optional[int] = ...,
+ sub_command: Optional[int] = ...,
+ seq: Optional[int] = ...,
+ version: Optional[int] = ...,
+ retry_times: Optional[int] = ...,
+ client_type: Optional[int] = ...,
+ pub_no: Optional[int] = ...,
+ local_id: Optional[int] = ...,
+ time_zone: Optional[int] = ...,
+ client_ip: Optional[int] = ...,
+ client_port: Optional[int] = ...,
+ qzhttp_ip: Optional[int] = ...,
+ qzhttp_port: Optional[int] = ...,
+ spp_ip: Optional[int] = ...,
+ spp_port: Optional[int] = ...,
+ flag: Optional[int] = ...,
+ key: Optional[bytes] = ...,
+ compress_type: Optional[int] = ...,
+ origin_size: Optional[int] = ...,
+ error_code: Optional[int] = ...,
+ redirect: Optional[RedirectMsg] = ...,
+ command_id: Optional[int] = ...,
+ service_cmdid: Optional[int] = ...,
+ oidbhead: Optional[TransOidbHead] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"client_ip",b"client_ip",u"client_port",b"client_port",u"client_type",b"client_type",u"command",b"command",u"command_id",b"command_id",u"compress_type",b"compress_type",u"error_code",b"error_code",u"flag",b"flag",u"key",b"key",u"local_id",b"local_id",u"oidbhead",b"oidbhead",u"origin_size",b"origin_size",u"pub_no",b"pub_no",u"qzhttp_ip",b"qzhttp_ip",u"qzhttp_port",b"qzhttp_port",u"redirect",b"redirect",u"retry_times",b"retry_times",u"seq",b"seq",u"service_cmdid",b"service_cmdid",u"spp_ip",b"spp_ip",u"spp_port",b"spp_port",u"sub_command",b"sub_command",u"time_zone",b"time_zone",u"uin",b"uin",u"version",b"version"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"client_ip",b"client_ip",u"client_port",b"client_port",u"client_type",b"client_type",u"command",b"command",u"command_id",b"command_id",u"compress_type",b"compress_type",u"error_code",b"error_code",u"flag",b"flag",u"key",b"key",u"local_id",b"local_id",u"oidbhead",b"oidbhead",u"origin_size",b"origin_size",u"pub_no",b"pub_no",u"qzhttp_ip",b"qzhttp_ip",u"qzhttp_port",b"qzhttp_port",u"redirect",b"redirect",u"retry_times",b"retry_times",u"seq",b"seq",u"service_cmdid",b"service_cmdid",u"spp_ip",b"spp_ip",u"spp_port",b"spp_port",u"sub_command",b"sub_command",u"time_zone",b"time_zone",u"uin",b"uin",u"version",b"version"]) -> None: ...
+ def HasField(self, field_name: Literal["client_ip",b"client_ip","client_port",b"client_port","client_type",b"client_type","command",b"command","command_id",b"command_id","compress_type",b"compress_type","error_code",b"error_code","flag",b"flag","key",b"key","local_id",b"local_id","oidbhead",b"oidbhead","origin_size",b"origin_size","pub_no",b"pub_no","qzhttp_ip",b"qzhttp_ip","qzhttp_port",b"qzhttp_port","redirect",b"redirect","retry_times",b"retry_times","seq",b"seq","service_cmdid",b"service_cmdid","spp_ip",b"spp_ip","spp_port",b"spp_port","sub_command",b"sub_command","time_zone",b"time_zone","uin",b"uin","version",b"version"]) -> bool: ...
+ def ClearField(self, field_name: Literal["client_ip",b"client_ip","client_port",b"client_port","client_type",b"client_type","command",b"command","command_id",b"command_id","compress_type",b"compress_type","error_code",b"error_code","flag",b"flag","key",b"key","local_id",b"local_id","oidbhead",b"oidbhead","origin_size",b"origin_size","pub_no",b"pub_no","qzhttp_ip",b"qzhttp_ip","qzhttp_port",b"qzhttp_port","redirect",b"redirect","retry_times",b"retry_times","seq",b"seq","service_cmdid",b"service_cmdid","spp_ip",b"spp_ip","spp_port",b"spp_port","sub_command",b"sub_command","time_zone",b"time_zone","uin",b"uin","version",b"version"]) -> None: ...
class InstCtrl(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
SEND_TO_INST_FIELD_NUMBER: int
EXCLUDE_INST_FIELD_NUMBER: int
FROM_INST_FIELD_NUMBER: int
-
@property
def send_to_inst(self) -> RepeatedCompositeFieldContainer[InstInfo]: ...
-
@property
def exclude_inst(self) -> RepeatedCompositeFieldContainer[InstInfo]: ...
-
@property
def from_inst(self) -> InstInfo: ...
-
def __init__(self,
*,
- send_to_inst : Optional[Iterable[InstInfo]] = ...,
- exclude_inst : Optional[Iterable[InstInfo]] = ...,
- from_inst : Optional[InstInfo] = ...,
+ send_to_inst: Optional[Iterable[InstInfo]] = ...,
+ exclude_inst: Optional[Iterable[InstInfo]] = ...,
+ from_inst: Optional[InstInfo] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"from_inst",b"from_inst"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"exclude_inst",b"exclude_inst",u"from_inst",b"from_inst",u"send_to_inst",b"send_to_inst"]) -> None: ...
+ def HasField(self, field_name: Literal["from_inst",b"from_inst"]) -> bool: ...
+ def ClearField(self, field_name: Literal["exclude_inst",b"exclude_inst","from_inst",b"from_inst","send_to_inst",b"send_to_inst"]) -> None: ...
class InstInfo(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
APPPID_FIELD_NUMBER: int
INSTID_FIELD_NUMBER: int
PLATFORM_FIELD_NUMBER: int
ENUM_DEVICE_TYPE_FIELD_NUMBER: int
- apppid: int = ...
- instid: int = ...
- platform: int = ...
- enum_device_type: int = ...
-
+ apppid: int
+ instid: int
+ platform: int
+ enum_device_type: int
def __init__(self,
*,
- apppid : Optional[int] = ...,
- instid : Optional[int] = ...,
- platform : Optional[int] = ...,
- enum_device_type : Optional[int] = ...,
+ apppid: Optional[int] = ...,
+ instid: Optional[int] = ...,
+ platform: Optional[int] = ...,
+ enum_device_type: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"apppid",b"apppid",u"enum_device_type",b"enum_device_type",u"instid",b"instid",u"platform",b"platform"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"apppid",b"apppid",u"enum_device_type",b"enum_device_type",u"instid",b"instid",u"platform",b"platform"]) -> None: ...
+ def HasField(self, field_name: Literal["apppid",b"apppid","enum_device_type",b"enum_device_type","instid",b"instid","platform",b"platform"]) -> bool: ...
+ def ClearField(self, field_name: Literal["apppid",b"apppid","enum_device_type",b"enum_device_type","instid",b"instid","platform",b"platform"]) -> None: ...
class LoginSig(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
TYPE_FIELD_NUMBER: int
SIG_FIELD_NUMBER: int
- type: int = ...
- sig: bytes = ...
-
+ type: int
+ sig: bytes
def __init__(self,
*,
- type : Optional[int] = ...,
- sig : Optional[bytes] = ...,
+ type: Optional[int] = ...,
+ sig: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"sig",b"sig",u"type",b"type"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"sig",b"sig",u"type",b"type"]) -> None: ...
+ def HasField(self, field_name: Literal["sig",b"sig","type",b"type"]) -> bool: ...
+ def ClearField(self, field_name: Literal["sig",b"sig","type",b"type"]) -> None: ...
class RedirectMsg(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
LAST_REDIRECT_IP_FIELD_NUMBER: int
LAST_REDIRECT_PORT_FIELD_NUMBER: int
REDIRECT_IP_FIELD_NUMBER: int
REDIRECT_PORT_FIELD_NUMBER: int
REDIRECT_COUNT_FIELD_NUMBER: int
- last_redirect_ip: int = ...
- last_redirect_port: int = ...
- redirect_ip: int = ...
- redirect_port: int = ...
- redirect_count: int = ...
-
+ last_redirect_ip: int
+ last_redirect_port: int
+ redirect_ip: int
+ redirect_port: int
+ redirect_count: int
def __init__(self,
*,
- last_redirect_ip : Optional[int] = ...,
- last_redirect_port : Optional[int] = ...,
- redirect_ip : Optional[int] = ...,
- redirect_port : Optional[int] = ...,
- redirect_count : Optional[int] = ...,
+ last_redirect_ip: Optional[int] = ...,
+ last_redirect_port: Optional[int] = ...,
+ redirect_ip: Optional[int] = ...,
+ redirect_port: Optional[int] = ...,
+ redirect_count: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"last_redirect_ip",b"last_redirect_ip",u"last_redirect_port",b"last_redirect_port",u"redirect_count",b"redirect_count",u"redirect_ip",b"redirect_ip",u"redirect_port",b"redirect_port"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"last_redirect_ip",b"last_redirect_ip",u"last_redirect_port",b"last_redirect_port",u"redirect_count",b"redirect_count",u"redirect_ip",b"redirect_ip",u"redirect_port",b"redirect_port"]) -> None: ...
+ def HasField(self, field_name: Literal["last_redirect_ip",b"last_redirect_ip","last_redirect_port",b"last_redirect_port","redirect_count",b"redirect_count","redirect_ip",b"redirect_ip","redirect_port",b"redirect_port"]) -> bool: ...
+ def ClearField(self, field_name: Literal["last_redirect_ip",b"last_redirect_ip","last_redirect_port",b"last_redirect_port","redirect_count",b"redirect_count","redirect_ip",b"redirect_ip","redirect_port",b"redirect_port"]) -> None: ...
class S2CHead(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
SUB_MSGTYPE_FIELD_NUMBER: int
MSG_TYPE_FIELD_NUMBER: int
FROM_UIN_FIELD_NUMBER: int
@@ -423,50 +404,47 @@ class S2CHead(Message):
RELAY_IP_FIELD_NUMBER: int
RELAY_PORT_FIELD_NUMBER: int
TO_UIN_FIELD_NUMBER: int
- sub_msgtype: int = ...
- msg_type: int = ...
- from_uin: int = ...
- msg_id: int = ...
- relay_ip: int = ...
- relay_port: int = ...
- to_uin: int = ...
-
+ sub_msgtype: int
+ msg_type: int
+ from_uin: int
+ msg_id: int
+ relay_ip: int
+ relay_port: int
+ to_uin: int
def __init__(self,
*,
- sub_msgtype : Optional[int] = ...,
- msg_type : Optional[int] = ...,
- from_uin : Optional[int] = ...,
- msg_id : Optional[int] = ...,
- relay_ip : Optional[int] = ...,
- relay_port : Optional[int] = ...,
- to_uin : Optional[int] = ...,
+ sub_msgtype: Optional[int] = ...,
+ msg_type: Optional[int] = ...,
+ from_uin: Optional[int] = ...,
+ msg_id: Optional[int] = ...,
+ relay_ip: Optional[int] = ...,
+ relay_port: Optional[int] = ...,
+ to_uin: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"from_uin",b"from_uin",u"msg_id",b"msg_id",u"msg_type",b"msg_type",u"relay_ip",b"relay_ip",u"relay_port",b"relay_port",u"sub_msgtype",b"sub_msgtype",u"to_uin",b"to_uin"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"from_uin",b"from_uin",u"msg_id",b"msg_id",u"msg_type",b"msg_type",u"relay_ip",b"relay_ip",u"relay_port",b"relay_port",u"sub_msgtype",b"sub_msgtype",u"to_uin",b"to_uin"]) -> None: ...
+ def HasField(self, field_name: Literal["from_uin",b"from_uin","msg_id",b"msg_id","msg_type",b"msg_type","relay_ip",b"relay_ip","relay_port",b"relay_port","sub_msgtype",b"sub_msgtype","to_uin",b"to_uin"]) -> bool: ...
+ def ClearField(self, field_name: Literal["from_uin",b"from_uin","msg_id",b"msg_id","msg_type",b"msg_type","relay_ip",b"relay_ip","relay_port",b"relay_port","sub_msgtype",b"sub_msgtype","to_uin",b"to_uin"]) -> None: ...
class SConnHead(Message):
- DESCRIPTOR: Descriptor = ...
-
+ DESCRIPTOR: Descriptor
def __init__(self,
) -> None: ...
class TransOidbHead(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
COMMAND_FIELD_NUMBER: int
SERVICE_TYPE_FIELD_NUMBER: int
RESULT_FIELD_NUMBER: int
ERROR_MSG_FIELD_NUMBER: int
- command: int = ...
- service_type: int = ...
- result: int = ...
- error_msg: Text = ...
-
+ command: int
+ service_type: int
+ result: int
+ error_msg: Text
def __init__(self,
*,
- command : Optional[int] = ...,
- service_type : Optional[int] = ...,
- result : Optional[int] = ...,
- error_msg : Optional[Text] = ...,
+ command: Optional[int] = ...,
+ service_type: Optional[int] = ...,
+ result: Optional[int] = ...,
+ error_msg: Optional[Text] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"command",b"command",u"error_msg",b"error_msg",u"result",b"result",u"service_type",b"service_type"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"command",b"command",u"error_msg",b"error_msg",u"result",b"result",u"service_type",b"service_type"]) -> None: ...
+ def HasField(self, field_name: Literal["command",b"command","error_msg",b"error_msg","result",b"result","service_type",b"service_type"]) -> bool: ...
+ def ClearField(self, field_name: Literal["command",b"command","error_msg",b"error_msg","result",b"result","service_type",b"service_type"]) -> None: ...
diff --git a/cai/pb/im/msg/obj_msg/obj_msg_pb2.py b/cai/pb/im/msg/obj_msg/obj_msg_pb2.py
index 4bfe3466..0f8de275 100644
--- a/cai/pb/im/msg/obj_msg/obj_msg_pb2.py
+++ b/cai/pb/im/msg/obj_msg/obj_msg_pb2.py
@@ -3,6 +3,7 @@
# source: cai/pb/im/msg/obj_msg/obj_msg.proto
"""Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
@@ -13,266 +14,14 @@
-DESCRIPTOR = _descriptor.FileDescriptor(
- name='cai/pb/im/msg/obj_msg/obj_msg.proto',
- package='im.msg.obj_msg',
- syntax='proto2',
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- serialized_pb=b'\n#cai/pb/im/msg/obj_msg/obj_msg.proto\x12\x0eim.msg.obj_msg\"P\n\x0eMsgContentInfo\x12\x17\n\x0f\x63ontent_info_id\x18\x01 \x01(\x0c\x12%\n\x04\x66ile\x18\x02 \x01(\x0b\x32\x17.im.msg.obj_msg.MsgFile\"\x97\x01\n\x07MsgFile\x12\x0e\n\x06\x62us_id\x18\x01 \x01(\r\x12\x11\n\tfile_path\x18\x02 \x01(\x0c\x12\x11\n\tfile_size\x18\x03 \x01(\x04\x12\x11\n\tfile_name\x18\x04 \x01(\t\x12\x11\n\tdead_time\x18\x05 \x01(\x03\x12\x11\n\tfile_sha1\x18\x06 \x01(\x0c\x12\x0b\n\x03\x65xt\x18\x07 \x01(\x0c\x12\x10\n\x08\x66ile_md5\x18\x08 \x01(\x0c\"O\n\x06MsgPic\x12\x15\n\rsmall_pic_url\x18\x01 \x01(\x0c\x12\x18\n\x10original_pic_url\x18\x02 \x01(\x0c\x12\x14\n\x0clocal_pic_id\x18\x03 \x01(\r\"\xc0\x01\n\x06ObjMsg\x12\x10\n\x08msg_type\x18\x01 \x01(\r\x12\r\n\x05title\x18\x02 \x01(\x0c\x12\x0f\n\x07\x61\x62stact\x18\x03 \x03(\x0c\x12\x11\n\ttitle_ext\x18\x05 \x01(\x0c\x12#\n\x03pic\x18\x06 \x03(\x0b\x32\x16.im.msg.obj_msg.MsgPic\x12\x34\n\x0c\x63ontent_info\x18\x07 \x03(\x0b\x32\x1e.im.msg.obj_msg.MsgContentInfo\x12\x16\n\x0ereport_id_show\x18\x08 \x01(\r'
-)
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n#cai/pb/im/msg/obj_msg/obj_msg.proto\x12\x0eim.msg.obj_msg\"P\n\x0eMsgContentInfo\x12\x17\n\x0f\x63ontent_info_id\x18\x01 \x01(\x0c\x12%\n\x04\x66ile\x18\x02 \x01(\x0b\x32\x17.im.msg.obj_msg.MsgFile\"\x97\x01\n\x07MsgFile\x12\x0e\n\x06\x62us_id\x18\x01 \x01(\r\x12\x11\n\tfile_path\x18\x02 \x01(\x0c\x12\x11\n\tfile_size\x18\x03 \x01(\x04\x12\x11\n\tfile_name\x18\x04 \x01(\t\x12\x11\n\tdead_time\x18\x05 \x01(\x03\x12\x11\n\tfile_sha1\x18\x06 \x01(\x0c\x12\x0b\n\x03\x65xt\x18\x07 \x01(\x0c\x12\x10\n\x08\x66ile_md5\x18\x08 \x01(\x0c\"O\n\x06MsgPic\x12\x15\n\rsmall_pic_url\x18\x01 \x01(\x0c\x12\x18\n\x10original_pic_url\x18\x02 \x01(\x0c\x12\x14\n\x0clocal_pic_id\x18\x03 \x01(\r\"\xc0\x01\n\x06ObjMsg\x12\x10\n\x08msg_type\x18\x01 \x01(\r\x12\r\n\x05title\x18\x02 \x01(\x0c\x12\x0f\n\x07\x61\x62stact\x18\x03 \x03(\x0c\x12\x11\n\ttitle_ext\x18\x05 \x01(\x0c\x12#\n\x03pic\x18\x06 \x03(\x0b\x32\x16.im.msg.obj_msg.MsgPic\x12\x34\n\x0c\x63ontent_info\x18\x07 \x03(\x0b\x32\x1e.im.msg.obj_msg.MsgContentInfo\x12\x16\n\x0ereport_id_show\x18\x08 \x01(\r')
-
-_MSGCONTENTINFO = _descriptor.Descriptor(
- name='MsgContentInfo',
- full_name='im.msg.obj_msg.MsgContentInfo',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='content_info_id', full_name='im.msg.obj_msg.MsgContentInfo.content_info_id', index=0,
- number=1, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='file', full_name='im.msg.obj_msg.MsgContentInfo.file', index=1,
- number=2, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=55,
- serialized_end=135,
-)
-
-
-_MSGFILE = _descriptor.Descriptor(
- name='MsgFile',
- full_name='im.msg.obj_msg.MsgFile',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='bus_id', full_name='im.msg.obj_msg.MsgFile.bus_id', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='file_path', full_name='im.msg.obj_msg.MsgFile.file_path', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='file_size', full_name='im.msg.obj_msg.MsgFile.file_size', index=2,
- number=3, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='file_name', full_name='im.msg.obj_msg.MsgFile.file_name', index=3,
- number=4, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='dead_time', full_name='im.msg.obj_msg.MsgFile.dead_time', index=4,
- number=5, type=3, cpp_type=2, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='file_sha1', full_name='im.msg.obj_msg.MsgFile.file_sha1', index=5,
- number=6, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='ext', full_name='im.msg.obj_msg.MsgFile.ext', index=6,
- number=7, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='file_md5', full_name='im.msg.obj_msg.MsgFile.file_md5', index=7,
- number=8, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=138,
- serialized_end=289,
-)
-
-
-_MSGPIC = _descriptor.Descriptor(
- name='MsgPic',
- full_name='im.msg.obj_msg.MsgPic',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='small_pic_url', full_name='im.msg.obj_msg.MsgPic.small_pic_url', index=0,
- number=1, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='original_pic_url', full_name='im.msg.obj_msg.MsgPic.original_pic_url', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='local_pic_id', full_name='im.msg.obj_msg.MsgPic.local_pic_id', index=2,
- number=3, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=291,
- serialized_end=370,
-)
-
-
-_OBJMSG = _descriptor.Descriptor(
- name='ObjMsg',
- full_name='im.msg.obj_msg.ObjMsg',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='msg_type', full_name='im.msg.obj_msg.ObjMsg.msg_type', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='title', full_name='im.msg.obj_msg.ObjMsg.title', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='abstact', full_name='im.msg.obj_msg.ObjMsg.abstact', index=2,
- number=3, type=12, cpp_type=9, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='title_ext', full_name='im.msg.obj_msg.ObjMsg.title_ext', index=3,
- number=5, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='pic', full_name='im.msg.obj_msg.ObjMsg.pic', index=4,
- number=6, type=11, cpp_type=10, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='content_info', full_name='im.msg.obj_msg.ObjMsg.content_info', index=5,
- number=7, type=11, cpp_type=10, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='report_id_show', full_name='im.msg.obj_msg.ObjMsg.report_id_show', index=6,
- number=8, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=373,
- serialized_end=565,
-)
-
-_MSGCONTENTINFO.fields_by_name['file'].message_type = _MSGFILE
-_OBJMSG.fields_by_name['pic'].message_type = _MSGPIC
-_OBJMSG.fields_by_name['content_info'].message_type = _MSGCONTENTINFO
-DESCRIPTOR.message_types_by_name['MsgContentInfo'] = _MSGCONTENTINFO
-DESCRIPTOR.message_types_by_name['MsgFile'] = _MSGFILE
-DESCRIPTOR.message_types_by_name['MsgPic'] = _MSGPIC
-DESCRIPTOR.message_types_by_name['ObjMsg'] = _OBJMSG
-_sym_db.RegisterFileDescriptor(DESCRIPTOR)
-
+_MSGCONTENTINFO = DESCRIPTOR.message_types_by_name['MsgContentInfo']
+_MSGFILE = DESCRIPTOR.message_types_by_name['MsgFile']
+_MSGPIC = DESCRIPTOR.message_types_by_name['MsgPic']
+_OBJMSG = DESCRIPTOR.message_types_by_name['ObjMsg']
MsgContentInfo = _reflection.GeneratedProtocolMessageType('MsgContentInfo', (_message.Message,), {
'DESCRIPTOR' : _MSGCONTENTINFO,
'__module__' : 'cai.pb.im.msg.obj_msg.obj_msg_pb2'
@@ -301,5 +50,15 @@
})
_sym_db.RegisterMessage(ObjMsg)
-
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ _MSGCONTENTINFO._serialized_start=55
+ _MSGCONTENTINFO._serialized_end=135
+ _MSGFILE._serialized_start=138
+ _MSGFILE._serialized_end=289
+ _MSGPIC._serialized_start=291
+ _MSGPIC._serialized_end=370
+ _OBJMSG._serialized_start=373
+ _OBJMSG._serialized_end=565
# @@protoc_insertion_point(module_scope)
diff --git a/cai/pb/im/msg/obj_msg/obj_msg_pb2.pyi b/cai/pb/im/msg/obj_msg/obj_msg_pb2.pyi
index 660c9b8f..d02df1cf 100644
--- a/cai/pb/im/msg/obj_msg/obj_msg_pb2.pyi
+++ b/cai/pb/im/msg/obj_msg/obj_msg_pb2.pyi
@@ -33,27 +33,28 @@ from typing_extensions import (
)
-DESCRIPTOR: FileDescriptor = ...
+DESCRIPTOR: FileDescriptor
class MsgContentInfo(Message):
- DESCRIPTOR: Descriptor = ...
+ """tencent/im/msg/obj_msg.java
+
+ """
+ DESCRIPTOR: Descriptor
CONTENT_INFO_ID_FIELD_NUMBER: int
FILE_FIELD_NUMBER: int
- content_info_id: bytes = ...
-
+ content_info_id: bytes
@property
def file(self) -> MsgFile: ...
-
def __init__(self,
*,
- content_info_id : Optional[bytes] = ...,
- file : Optional[MsgFile] = ...,
+ content_info_id: Optional[bytes] = ...,
+ file: Optional[MsgFile] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"content_info_id",b"content_info_id",u"file",b"file"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"content_info_id",b"content_info_id",u"file",b"file"]) -> None: ...
+ def HasField(self, field_name: Literal["content_info_id",b"content_info_id","file",b"file"]) -> bool: ...
+ def ClearField(self, field_name: Literal["content_info_id",b"content_info_id","file",b"file"]) -> None: ...
class MsgFile(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
BUS_ID_FIELD_NUMBER: int
FILE_PATH_FIELD_NUMBER: int
FILE_SIZE_FIELD_NUMBER: int
@@ -62,49 +63,47 @@ class MsgFile(Message):
FILE_SHA1_FIELD_NUMBER: int
EXT_FIELD_NUMBER: int
FILE_MD5_FIELD_NUMBER: int
- bus_id: int = ...
- file_path: bytes = ...
- file_size: int = ...
- file_name: Text = ...
- dead_time: int = ...
- file_sha1: bytes = ...
- ext: bytes = ...
- file_md5: bytes = ...
-
+ bus_id: int
+ file_path: bytes
+ file_size: int
+ file_name: Text
+ dead_time: int
+ file_sha1: bytes
+ ext: bytes
+ file_md5: bytes
def __init__(self,
*,
- bus_id : Optional[int] = ...,
- file_path : Optional[bytes] = ...,
- file_size : Optional[int] = ...,
- file_name : Optional[Text] = ...,
- dead_time : Optional[int] = ...,
- file_sha1 : Optional[bytes] = ...,
- ext : Optional[bytes] = ...,
- file_md5 : Optional[bytes] = ...,
+ bus_id: Optional[int] = ...,
+ file_path: Optional[bytes] = ...,
+ file_size: Optional[int] = ...,
+ file_name: Optional[Text] = ...,
+ dead_time: Optional[int] = ...,
+ file_sha1: Optional[bytes] = ...,
+ ext: Optional[bytes] = ...,
+ file_md5: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"bus_id",b"bus_id",u"dead_time",b"dead_time",u"ext",b"ext",u"file_md5",b"file_md5",u"file_name",b"file_name",u"file_path",b"file_path",u"file_sha1",b"file_sha1",u"file_size",b"file_size"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"bus_id",b"bus_id",u"dead_time",b"dead_time",u"ext",b"ext",u"file_md5",b"file_md5",u"file_name",b"file_name",u"file_path",b"file_path",u"file_sha1",b"file_sha1",u"file_size",b"file_size"]) -> None: ...
+ def HasField(self, field_name: Literal["bus_id",b"bus_id","dead_time",b"dead_time","ext",b"ext","file_md5",b"file_md5","file_name",b"file_name","file_path",b"file_path","file_sha1",b"file_sha1","file_size",b"file_size"]) -> bool: ...
+ def ClearField(self, field_name: Literal["bus_id",b"bus_id","dead_time",b"dead_time","ext",b"ext","file_md5",b"file_md5","file_name",b"file_name","file_path",b"file_path","file_sha1",b"file_sha1","file_size",b"file_size"]) -> None: ...
class MsgPic(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
SMALL_PIC_URL_FIELD_NUMBER: int
ORIGINAL_PIC_URL_FIELD_NUMBER: int
LOCAL_PIC_ID_FIELD_NUMBER: int
- small_pic_url: bytes = ...
- original_pic_url: bytes = ...
- local_pic_id: int = ...
-
+ small_pic_url: bytes
+ original_pic_url: bytes
+ local_pic_id: int
def __init__(self,
*,
- small_pic_url : Optional[bytes] = ...,
- original_pic_url : Optional[bytes] = ...,
- local_pic_id : Optional[int] = ...,
+ small_pic_url: Optional[bytes] = ...,
+ original_pic_url: Optional[bytes] = ...,
+ local_pic_id: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"local_pic_id",b"local_pic_id",u"original_pic_url",b"original_pic_url",u"small_pic_url",b"small_pic_url"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"local_pic_id",b"local_pic_id",u"original_pic_url",b"original_pic_url",u"small_pic_url",b"small_pic_url"]) -> None: ...
+ def HasField(self, field_name: Literal["local_pic_id",b"local_pic_id","original_pic_url",b"original_pic_url","small_pic_url",b"small_pic_url"]) -> bool: ...
+ def ClearField(self, field_name: Literal["local_pic_id",b"local_pic_id","original_pic_url",b"original_pic_url","small_pic_url",b"small_pic_url"]) -> None: ...
class ObjMsg(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
MSG_TYPE_FIELD_NUMBER: int
TITLE_FIELD_NUMBER: int
ABSTACT_FIELD_NUMBER: int
@@ -112,27 +111,25 @@ class ObjMsg(Message):
PIC_FIELD_NUMBER: int
CONTENT_INFO_FIELD_NUMBER: int
REPORT_ID_SHOW_FIELD_NUMBER: int
- msg_type: int = ...
- title: bytes = ...
- abstact: RepeatedScalarFieldContainer[bytes] = ...
- title_ext: bytes = ...
- report_id_show: int = ...
-
+ msg_type: int
+ title: bytes
+ @property
+ def abstact(self) -> RepeatedScalarFieldContainer[bytes]: ...
+ title_ext: bytes
@property
def pic(self) -> RepeatedCompositeFieldContainer[MsgPic]: ...
-
@property
def content_info(self) -> RepeatedCompositeFieldContainer[MsgContentInfo]: ...
-
+ report_id_show: int
def __init__(self,
*,
- msg_type : Optional[int] = ...,
- title : Optional[bytes] = ...,
- abstact : Optional[Iterable[bytes]] = ...,
- title_ext : Optional[bytes] = ...,
- pic : Optional[Iterable[MsgPic]] = ...,
- content_info : Optional[Iterable[MsgContentInfo]] = ...,
- report_id_show : Optional[int] = ...,
+ msg_type: Optional[int] = ...,
+ title: Optional[bytes] = ...,
+ abstact: Optional[Iterable[bytes]] = ...,
+ title_ext: Optional[bytes] = ...,
+ pic: Optional[Iterable[MsgPic]] = ...,
+ content_info: Optional[Iterable[MsgContentInfo]] = ...,
+ report_id_show: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"msg_type",b"msg_type",u"report_id_show",b"report_id_show",u"title",b"title",u"title_ext",b"title_ext"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"abstact",b"abstact",u"content_info",b"content_info",u"msg_type",b"msg_type",u"pic",b"pic",u"report_id_show",b"report_id_show",u"title",b"title",u"title_ext",b"title_ext"]) -> None: ...
+ def HasField(self, field_name: Literal["msg_type",b"msg_type","report_id_show",b"report_id_show","title",b"title","title_ext",b"title_ext"]) -> bool: ...
+ def ClearField(self, field_name: Literal["abstact",b"abstact","content_info",b"content_info","msg_type",b"msg_type","pic",b"pic","report_id_show",b"report_id_show","title",b"title","title_ext",b"title_ext"]) -> None: ...
diff --git a/cai/pb/im/msg/receipt/receipt_pb2.py b/cai/pb/im/msg/receipt/receipt_pb2.py
index 883847d9..ac741f0a 100644
--- a/cai/pb/im/msg/receipt/receipt_pb2.py
+++ b/cai/pb/im/msg/receipt/receipt_pb2.py
@@ -3,6 +3,7 @@
# source: cai/pb/im/msg/receipt/receipt.proto
"""Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
@@ -13,188 +14,14 @@
-DESCRIPTOR = _descriptor.FileDescriptor(
- name='cai/pb/im/msg/receipt/receipt.proto',
- package='im.msg.receipt',
- syntax='proto2',
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- serialized_pb=b'\n#cai/pb/im/msg/receipt/receipt.proto\x12\x0eim.msg.receipt\"P\n\x07MsgInfo\x12\x10\n\x08\x66rom_uin\x18\x01 \x01(\x04\x12\x0e\n\x06to_uin\x18\x02 \x01(\x04\x12\x0f\n\x07msg_seq\x18\x03 \x01(\r\x12\x12\n\nmsg_random\x18\x04 \x01(\r\" \n\x0bReceiptInfo\x12\x11\n\tread_time\x18\x01 \x01(\x04\"D\n\nReceiptReq\x12\x0f\n\x07\x63ommand\x18\x01 \x01(\r\x12%\n\x04info\x18\x02 \x01(\x0b\x32\x17.im.msg.receipt.MsgInfo\"Q\n\x0bReceiptResp\x12\x0f\n\x07\x63ommand\x18\x01 \x01(\r\x12\x31\n\x0creceipt_info\x18\x02 \x01(\x0b\x32\x1b.im.msg.receipt.ReceiptInfo'
-)
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n#cai/pb/im/msg/receipt/receipt.proto\x12\x0eim.msg.receipt\"P\n\x07MsgInfo\x12\x10\n\x08\x66rom_uin\x18\x01 \x01(\x04\x12\x0e\n\x06to_uin\x18\x02 \x01(\x04\x12\x0f\n\x07msg_seq\x18\x03 \x01(\r\x12\x12\n\nmsg_random\x18\x04 \x01(\r\" \n\x0bReceiptInfo\x12\x11\n\tread_time\x18\x01 \x01(\x04\"D\n\nReceiptReq\x12\x0f\n\x07\x63ommand\x18\x01 \x01(\r\x12%\n\x04info\x18\x02 \x01(\x0b\x32\x17.im.msg.receipt.MsgInfo\"Q\n\x0bReceiptResp\x12\x0f\n\x07\x63ommand\x18\x01 \x01(\r\x12\x31\n\x0creceipt_info\x18\x02 \x01(\x0b\x32\x1b.im.msg.receipt.ReceiptInfo')
-
-_MSGINFO = _descriptor.Descriptor(
- name='MsgInfo',
- full_name='im.msg.receipt.MsgInfo',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='from_uin', full_name='im.msg.receipt.MsgInfo.from_uin', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='to_uin', full_name='im.msg.receipt.MsgInfo.to_uin', index=1,
- number=2, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='msg_seq', full_name='im.msg.receipt.MsgInfo.msg_seq', index=2,
- number=3, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='msg_random', full_name='im.msg.receipt.MsgInfo.msg_random', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=55,
- serialized_end=135,
-)
-
-
-_RECEIPTINFO = _descriptor.Descriptor(
- name='ReceiptInfo',
- full_name='im.msg.receipt.ReceiptInfo',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='read_time', full_name='im.msg.receipt.ReceiptInfo.read_time', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=137,
- serialized_end=169,
-)
-
-
-_RECEIPTREQ = _descriptor.Descriptor(
- name='ReceiptReq',
- full_name='im.msg.receipt.ReceiptReq',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='command', full_name='im.msg.receipt.ReceiptReq.command', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='info', full_name='im.msg.receipt.ReceiptReq.info', index=1,
- number=2, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=171,
- serialized_end=239,
-)
-
-
-_RECEIPTRESP = _descriptor.Descriptor(
- name='ReceiptResp',
- full_name='im.msg.receipt.ReceiptResp',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='command', full_name='im.msg.receipt.ReceiptResp.command', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='receipt_info', full_name='im.msg.receipt.ReceiptResp.receipt_info', index=1,
- number=2, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=241,
- serialized_end=322,
-)
-
-_RECEIPTREQ.fields_by_name['info'].message_type = _MSGINFO
-_RECEIPTRESP.fields_by_name['receipt_info'].message_type = _RECEIPTINFO
-DESCRIPTOR.message_types_by_name['MsgInfo'] = _MSGINFO
-DESCRIPTOR.message_types_by_name['ReceiptInfo'] = _RECEIPTINFO
-DESCRIPTOR.message_types_by_name['ReceiptReq'] = _RECEIPTREQ
-DESCRIPTOR.message_types_by_name['ReceiptResp'] = _RECEIPTRESP
-_sym_db.RegisterFileDescriptor(DESCRIPTOR)
-
+_MSGINFO = DESCRIPTOR.message_types_by_name['MsgInfo']
+_RECEIPTINFO = DESCRIPTOR.message_types_by_name['ReceiptInfo']
+_RECEIPTREQ = DESCRIPTOR.message_types_by_name['ReceiptReq']
+_RECEIPTRESP = DESCRIPTOR.message_types_by_name['ReceiptResp']
MsgInfo = _reflection.GeneratedProtocolMessageType('MsgInfo', (_message.Message,), {
'DESCRIPTOR' : _MSGINFO,
'__module__' : 'cai.pb.im.msg.receipt.receipt_pb2'
@@ -223,5 +50,15 @@
})
_sym_db.RegisterMessage(ReceiptResp)
-
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ _MSGINFO._serialized_start=55
+ _MSGINFO._serialized_end=135
+ _RECEIPTINFO._serialized_start=137
+ _RECEIPTINFO._serialized_end=169
+ _RECEIPTREQ._serialized_start=171
+ _RECEIPTREQ._serialized_end=239
+ _RECEIPTRESP._serialized_start=241
+ _RECEIPTRESP._serialized_end=322
# @@protoc_insertion_point(module_scope)
diff --git a/cai/pb/im/msg/receipt/receipt_pb2.pyi b/cai/pb/im/msg/receipt/receipt_pb2.pyi
index 6c1a289f..b92646f1 100644
--- a/cai/pb/im/msg/receipt/receipt_pb2.pyi
+++ b/cai/pb/im/msg/receipt/receipt_pb2.pyi
@@ -25,71 +25,65 @@ from typing_extensions import (
)
-DESCRIPTOR: FileDescriptor = ...
+DESCRIPTOR: FileDescriptor
class MsgInfo(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
FROM_UIN_FIELD_NUMBER: int
TO_UIN_FIELD_NUMBER: int
MSG_SEQ_FIELD_NUMBER: int
MSG_RANDOM_FIELD_NUMBER: int
- from_uin: int = ...
- to_uin: int = ...
- msg_seq: int = ...
- msg_random: int = ...
-
+ from_uin: int
+ to_uin: int
+ msg_seq: int
+ msg_random: int
def __init__(self,
*,
- from_uin : Optional[int] = ...,
- to_uin : Optional[int] = ...,
- msg_seq : Optional[int] = ...,
- msg_random : Optional[int] = ...,
+ from_uin: Optional[int] = ...,
+ to_uin: Optional[int] = ...,
+ msg_seq: Optional[int] = ...,
+ msg_random: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"from_uin",b"from_uin",u"msg_random",b"msg_random",u"msg_seq",b"msg_seq",u"to_uin",b"to_uin"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"from_uin",b"from_uin",u"msg_random",b"msg_random",u"msg_seq",b"msg_seq",u"to_uin",b"to_uin"]) -> None: ...
+ def HasField(self, field_name: Literal["from_uin",b"from_uin","msg_random",b"msg_random","msg_seq",b"msg_seq","to_uin",b"to_uin"]) -> bool: ...
+ def ClearField(self, field_name: Literal["from_uin",b"from_uin","msg_random",b"msg_random","msg_seq",b"msg_seq","to_uin",b"to_uin"]) -> None: ...
class ReceiptInfo(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
READ_TIME_FIELD_NUMBER: int
- read_time: int = ...
-
+ read_time: int
def __init__(self,
*,
- read_time : Optional[int] = ...,
+ read_time: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"read_time",b"read_time"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"read_time",b"read_time"]) -> None: ...
+ def HasField(self, field_name: Literal["read_time",b"read_time"]) -> bool: ...
+ def ClearField(self, field_name: Literal["read_time",b"read_time"]) -> None: ...
class ReceiptReq(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
COMMAND_FIELD_NUMBER: int
INFO_FIELD_NUMBER: int
- command: int = ...
-
+ command: int
@property
def info(self) -> MsgInfo: ...
-
def __init__(self,
*,
- command : Optional[int] = ...,
- info : Optional[MsgInfo] = ...,
+ command: Optional[int] = ...,
+ info: Optional[MsgInfo] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"command",b"command",u"info",b"info"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"command",b"command",u"info",b"info"]) -> None: ...
+ def HasField(self, field_name: Literal["command",b"command","info",b"info"]) -> bool: ...
+ def ClearField(self, field_name: Literal["command",b"command","info",b"info"]) -> None: ...
class ReceiptResp(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
COMMAND_FIELD_NUMBER: int
RECEIPT_INFO_FIELD_NUMBER: int
- command: int = ...
-
+ command: int
@property
def receipt_info(self) -> ReceiptInfo: ...
-
def __init__(self,
*,
- command : Optional[int] = ...,
- receipt_info : Optional[ReceiptInfo] = ...,
+ command: Optional[int] = ...,
+ receipt_info: Optional[ReceiptInfo] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"command",b"command",u"receipt_info",b"receipt_info"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"command",b"command",u"receipt_info",b"receipt_info"]) -> None: ...
+ def HasField(self, field_name: Literal["command",b"command","receipt_info",b"receipt_info"]) -> bool: ...
+ def ClearField(self, field_name: Literal["command",b"command","receipt_info",b"receipt_info"]) -> None: ...
diff --git a/cai/pb/im/msg/service/comm_elem/comm_elem_pb2.py b/cai/pb/im/msg/service/comm_elem/comm_elem_pb2.py
index 46bc7d8e..e0a5c960 100644
--- a/cai/pb/im/msg/service/comm_elem/comm_elem_pb2.py
+++ b/cai/pb/im/msg/service/comm_elem/comm_elem_pb2.py
@@ -3,6 +3,7 @@
# source: cai/pb/im/msg/service/comm_elem/comm_elem.proto
"""Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
@@ -14,2006 +15,42 @@
from cai.pb.im.msg.msg_body import msg_body_pb2 as cai_dot_pb_dot_im_dot_msg_dot_msg__body_dot_msg__body__pb2
-DESCRIPTOR = _descriptor.FileDescriptor(
- name='cai/pb/im/msg/service/comm_elem/comm_elem.proto',
- package='im.msg.service.comm_elem',
- syntax='proto2',
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- serialized_pb=b'\n/cai/pb/im/msg/service/comm_elem/comm_elem.proto\x12\x18im.msg.service.comm_elem\x1a%cai/pb/im/msg/msg_body/msg_body.proto\"\xfa\x01\n\x15MsgElemInfo_servtype1\x12\x11\n\treward_id\x18\x01 \x01(\x0c\x12\x12\n\nsender_uin\x18\x02 \x01(\x04\x12\x10\n\x08pic_type\x18\x03 \x01(\r\x12\x14\n\x0creward_money\x18\x04 \x01(\r\x12\x0b\n\x03url\x18\x05 \x01(\x0c\x12\x0f\n\x07\x63ontent\x18\x06 \x01(\x0c\x12\x18\n\x10\x63reate_timestamp\x18\x07 \x01(\r\x12\x0e\n\x06status\x18\x08 \x01(\r\x12\x0c\n\x04size\x18\t \x01(\r\x12\x16\n\x0evideo_duration\x18\n \x01(\r\x12\x0b\n\x03seq\x18\x0b \x01(\x04\x12\x17\n\x0freward_type_ext\x18\x0c \x01(\r\"\xc2\x01\n\x16MsgElemInfo_servtype11\x12\x0e\n\x06res_id\x18\x01 \x01(\x0c\x12\x0f\n\x07res_md5\x18\x02 \x01(\x0c\x12\x15\n\rreserve_info1\x18\x03 \x01(\x0c\x12\x15\n\rreserve_info2\x18\x04 \x01(\x0c\x12\x1a\n\x12\x64oodle_data_offset\x18\x05 \x01(\r\x12\x15\n\rdoodle_gif_id\x18\x06 \x01(\r\x12\x12\n\ndoodle_url\x18\x07 \x01(\x0c\x12\x12\n\ndoodle_md5\x18\x08 \x01(\x0c\"@\n\x16MsgElemInfo_servtype13\x12\x13\n\x0bsys_head_id\x18\x01 \x01(\r\x12\x11\n\thead_flag\x18\x02 \x01(\r\":\n\x16MsgElemInfo_servtype14\x12\n\n\x02id\x18\x01 \x01(\r\x12\x14\n\x0creserve_info\x18\x02 \x01(\x0c\"\xa7\x01\n\x16MsgElemInfo_servtype15\x12\x0b\n\x03vid\x18\x01 \x01(\x0c\x12\r\n\x05\x63over\x18\x02 \x01(\x0c\x12\r\n\x05title\x18\x03 \x01(\x0c\x12\x0f\n\x07summary\x18\x04 \x01(\x0c\x12\x13\n\x0b\x63reate_time\x18\x05 \x01(\x04\x12\x17\n\x0f\x63omment_content\x18\x06 \x01(\x0c\x12\x0e\n\x06\x61uthor\x18\x07 \x01(\x04\x12\x13\n\x0b\x63tr_version\x18\x08 \x01(\r\"\x8a\x02\n\x16MsgElemInfo_servtype16\x12\x0b\n\x03uid\x18\x01 \x01(\x04\x12\x10\n\x08union_id\x18\x02 \x01(\x0c\x12\x10\n\x08story_id\x18\x03 \x01(\x0c\x12\x0b\n\x03md5\x18\x04 \x01(\x0c\x12\x11\n\tthumb_url\x18\x05 \x01(\x0c\x12\x12\n\ndoodle_url\x18\x06 \x01(\x0c\x12\x13\n\x0bvideo_width\x18\x07 \x01(\r\x12\x14\n\x0cvideo_height\x18\x08 \x01(\r\x12\x13\n\x0bsource_name\x18\t \x01(\x0c\x12\x1a\n\x12source_action_type\x18\n \x01(\x0c\x12\x1a\n\x12source_action_data\x18\x0b \x01(\x0c\x12\x13\n\x0b\x63tr_version\x18\x0c \x01(\r\"x\n\x16MsgElemInfo_servtype18\x12\x16\n\x0e\x63urrent_amount\x18\x01 \x01(\x04\x12\x14\n\x0ctotal_amount\x18\x02 \x01(\x04\x12\x0e\n\x06listid\x18\x03 \x01(\x0c\x12\x10\n\x08\x61uth_key\x18\x04 \x01(\x0c\x12\x0e\n\x06number\x18\x05 \x01(\r\"&\n\x16MsgElemInfo_servtype19\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"\xed\x01\n\x15MsgElemInfo_servtype2\x12\x11\n\tpoke_type\x18\x01 \x01(\r\x12\x14\n\x0cpoke_summary\x18\x02 \x01(\x0c\x12\x12\n\ndouble_hit\x18\x03 \x01(\r\x12\x12\n\nvaspoke_id\x18\x04 \x01(\r\x12\x14\n\x0cvaspoke_name\x18\x05 \x01(\x0c\x12\x16\n\x0evaspoke_minver\x18\x06 \x01(\x0c\x12\x15\n\rpoke_strength\x18\x07 \x01(\r\x12\x10\n\x08msg_type\x18\x08 \x01(\r\x12\x19\n\x11\x66\x61\x63\x65_bubble_count\x18\t \x01(\r\x12\x11\n\tpoke_flag\x18\n \x01(\r\"&\n\x16MsgElemInfo_servtype20\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"\x81\x03\n\x16MsgElemInfo_servtype21\x12\x10\n\x08topic_id\x18\x01 \x01(\r\x12\x15\n\rconfessor_uin\x18\x02 \x01(\x04\x12\x16\n\x0e\x63onfessor_nick\x18\x03 \x01(\x0c\x12\x15\n\rconfessor_sex\x18\x04 \x01(\r\x12\x13\n\x0bsysmsg_flag\x18\x05 \x01(\r\x12\x45\n\x10\x63\x32_c_confess_ctx\x18\x06 \x01(\x0b\x32+.im.msg.service.comm_elem.C2CConfessContext\x12\r\n\x05topic\x18\x07 \x01(\x0c\x12\x14\n\x0c\x63onfess_time\x18\x08 \x01(\x04\x12\x44\n\x11group_confess_msg\x18\t \x01(\x0b\x32).im.msg.service.comm_elem.GroupConfessMsg\x12H\n\x11group_confess_ctx\x18\n \x01(\x0b\x32-.im.msg.service.comm_elem.GroupConfessContext\"\x8c\x02\n\x11\x43\x32\x43\x43onfessContext\x12\x15\n\rconfessor_uin\x18\x01 \x01(\x04\x12\x16\n\x0e\x63onfess_to_uin\x18\x02 \x01(\x04\x12\x10\n\x08send_uin\x18\x03 \x01(\x04\x12\x16\n\x0e\x63onfessor_nick\x18\x04 \x01(\x0c\x12\x0f\n\x07\x63onfess\x18\x05 \x01(\x0c\x12\x0f\n\x07\x62g_type\x18\x06 \x01(\r\x12\x10\n\x08topic_id\x18\x07 \x01(\r\x12\x14\n\x0c\x63onfess_time\x18\x08 \x01(\x04\x12\x15\n\rconfessor_sex\x18\t \x01(\r\x12\x10\n\x08\x62iz_type\x18\n \x01(\r\x12\x13\n\x0b\x63onfess_num\x18\x0b \x01(\r\x12\x16\n\x0e\x63onfess_to_sex\x18\x0c \x01(\r\"\xf3\x01\n\x13GroupConfessContext\x12\x15\n\rconfessor_uin\x18\x01 \x01(\x04\x12\x16\n\x0e\x63onfess_to_uin\x18\x02 \x01(\x04\x12\x10\n\x08send_uin\x18\x03 \x01(\x04\x12\x15\n\rconfessor_sex\x18\x04 \x01(\r\x12\x17\n\x0f\x63onfess_to_nick\x18\x05 \x01(\x0c\x12\r\n\x05topic\x18\x06 \x01(\x0c\x12\x10\n\x08topic_id\x18\x07 \x01(\r\x12\x14\n\x0c\x63onfess_time\x18\x08 \x01(\x04\x12\x1c\n\x14\x63onfess_to_nick_type\x18\t \x01(\r\x12\x16\n\x0e\x63onfessor_nick\x18\n \x01(\x0c\"\x82\x01\n\x10GroupConfessItem\x12\x10\n\x08topic_id\x18\x01 \x01(\r\x12\x16\n\x0e\x63onfess_to_uin\x18\x02 \x01(\x04\x12\x17\n\x0f\x63onfess_to_nick\x18\x03 \x01(\x0c\x12\r\n\x05topic\x18\x04 \x01(\x0c\x12\x1c\n\x14\x63onfess_to_nick_type\x18\x05 \x01(\r\"\xc8\x01\n\x0fGroupConfessMsg\x12\x14\n\x0c\x63onfess_time\x18\x01 \x01(\x04\x12\x15\n\rconfessor_uin\x18\x02 \x01(\x04\x12\x15\n\rconfessor_sex\x18\x03 \x01(\r\x12\x13\n\x0bsysmsg_flag\x18\x04 \x01(\r\x12\x41\n\rconfess_items\x18\x05 \x03(\x0b\x32*.im.msg.service.comm_elem.GroupConfessItem\x12\x19\n\x11total_topic_count\x18\x06 \x01(\r\"\xc1\x01\n\x16MsgElemInfo_servtype23\x12\x11\n\tface_type\x18\x01 \x01(\r\x12\x19\n\x11\x66\x61\x63\x65_bubble_count\x18\x02 \x01(\r\x12\x14\n\x0c\x66\x61\x63\x65_summary\x18\x03 \x01(\x0c\x12\x0c\n\x04\x66lag\x18\x04 \x01(\r\x12\x0e\n\x06others\x18\x05 \x01(\x0c\x12\x45\n\x0byellow_face\x18\x06 \x01(\x0b\x32\x30.im.msg.service.comm_elem.MsgElemInfo_servtype33\"\x9e\x01\n\x16MsgElemInfo_servtype24\x12\x42\n\x10limit_chat_enter\x18\x01 \x01(\x0b\x32(.im.msg.service.comm_elem.LimitChatEnter\x12@\n\x0flimit_chat_exit\x18\x02 \x01(\x0b\x32\'.im.msg.service.comm_elem.LimitChatExit\"\xad\x01\n\x0eLimitChatEnter\x12\x14\n\x0ctips_wording\x18\x01 \x01(\x0c\x12\x16\n\x0eleft_chat_time\x18\x02 \x01(\r\x12\x10\n\x08match_ts\x18\x03 \x01(\x04\x12\x1a\n\x12match_expired_time\x18\x04 \x01(\r\x12\x19\n\x11\x63\x32_c_expired_time\x18\x05 \x01(\r\x12\x10\n\x08ready_ts\x18\x06 \x01(\x04\x12\x12\n\nmatch_nick\x18\x07 \x01(\x0c\"6\n\rLimitChatExit\x12\x13\n\x0b\x65xit_method\x18\x01 \x01(\r\x12\x10\n\x08match_ts\x18\x02 \x01(\x04\"H\n\x16MsgElemInfo_servtype27\x12.\n\nvideo_file\x18\x01 \x01(\x0b\x32\x1a.im.msg.msg_body.VideoFile\".\n\x16MsgElemInfo_servtype29\x12\x14\n\x0cluckybag_msg\x18\x01 \x01(\x0c\"\x86\x01\n\x15MsgElemInfo_servtype3\x12\x34\n\x0f\x66lash_troop_pic\x18\x01 \x01(\x0b\x32\x1b.im.msg.msg_body.CustomFace\x12\x37\n\x0e\x66lash_c2_c_pic\x18\x02 \x01(\x0b\x32\x1f.im.msg.msg_body.NotOnlineImage\"3\n\x16MsgElemInfo_servtype31\x12\x0c\n\x04text\x18\x01 \x01(\x0c\x12\x0b\n\x03\x65xt\x18\x02 \x01(\x0c\"R\n\x16MsgElemInfo_servtype33\x12\r\n\x05index\x18\x01 \x01(\r\x12\x0c\n\x04text\x18\x02 \x01(\x0c\x12\x0e\n\x06\x63ompat\x18\x03 \x01(\x0c\x12\x0b\n\x03\x62uf\x18\x04 \x01(\x0c\"\x93\x01\n\x16MsgElemInfo_servtype34\x12\x15\n\rfrom_nickname\x18\x01 \x01(\x0c\x12\x18\n\x10push_window_flag\x18\x02 \x01(\r\x12;\n\x0cgame_session\x18\x03 \x01(\x0b\x32%.im.msg.service.comm_elem.GameSession\x12\x0b\n\x03\x65xt\x18\x04 \x01(\x0c\"\x9f\x01\n\x0bGameSession\x12\x14\n\x0c\x66rom_role_id\x18\x01 \x01(\x0c\x12\x14\n\x0c\x66rom_open_id\x18\x02 \x01(\x0c\x12\x12\n\nto_role_id\x18\x03 \x01(\x0c\x12\x12\n\nto_open_id\x18\x04 \x01(\x0c\x12\x12\n\ngame_appid\x18\x05 \x01(\x04\x12\x14\n\x0c\x66rom_tiny_id\x18\x06 \x01(\x04\x12\x12\n\nto_tiny_id\x18\x07 \x01(\x04\"h\n\x16MsgElemInfo_servtype35\x12\r\n\x05token\x18\x01 \x01(\x0c\x12\x14\n\x0cglobal_padid\x18\x02 \x01(\x0c\x12\x0f\n\x07get_rev\x18\x03 \x01(\r\x12\x18\n\x10his_edit_uin_num\x18\x04 \x01(\r\"r\n\x15MsgElemInfo_servtype4\x12\x11\n\timsg_type\x18\x01 \x01(\r\x12\x46\n\x14st_story_aio_obj_msg\x18\x04 \x01(\x0b\x32(.im.msg.service.comm_elem.StoryAioObjMsg\"\x91\x01\n\x15MsgElemInfo_servtype5\x12\x0b\n\x03vid\x18\x01 \x01(\x0c\x12\r\n\x05\x63over\x18\x02 \x01(\x0c\x12\r\n\x05title\x18\x03 \x01(\x0c\x12\x0f\n\x07summary\x18\x04 \x01(\x0c\x12\x13\n\x0b\x63reate_time\x18\x05 \x01(\x04\x12\x17\n\x0f\x63omment_content\x18\x06 \x01(\x0c\x12\x0e\n\x06\x61uthor\x18\x07 \x01(\x04\"W\n\x15MsgElemInfo_servtype8\x12>\n\x15wifi_deliver_gift_msg\x18\x01 \x01(\x0b\x32\x1f.im.msg.msg_body.DeliverGiftMsg\"\x89\x01\n\x15MsgElemInfo_servtype9\x12\x15\n\ranchor_status\x18\x01 \x01(\r\x12\x13\n\x0bjump_schema\x18\x02 \x01(\x0c\x12\x17\n\x0f\x61nchor_nickname\x18\x03 \x01(\t\x12\x17\n\x0f\x61nchor_head_url\x18\x04 \x01(\x0c\x12\x12\n\nlive_title\x18\x05 \x01(\t\"1\n\x0eStoryAioObjMsg\x12\x0e\n\x06ui_url\x18\x01 \x01(\t\x12\x0f\n\x07jmp_url\x18\x02 \x01(\t'
- ,
- dependencies=[cai_dot_pb_dot_im_dot_msg_dot_msg__body_dot_msg__body__pb2.DESCRIPTOR,])
-
-
-
-
-_MSGELEMINFO_SERVTYPE1 = _descriptor.Descriptor(
- name='MsgElemInfo_servtype1',
- full_name='im.msg.service.comm_elem.MsgElemInfo_servtype1',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='reward_id', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype1.reward_id', index=0,
- number=1, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='sender_uin', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype1.sender_uin', index=1,
- number=2, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='pic_type', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype1.pic_type', index=2,
- number=3, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='reward_money', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype1.reward_money', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='url', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype1.url', index=4,
- number=5, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='content', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype1.content', index=5,
- number=6, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='create_timestamp', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype1.create_timestamp', index=6,
- number=7, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='status', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype1.status', index=7,
- number=8, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='size', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype1.size', index=8,
- number=9, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='video_duration', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype1.video_duration', index=9,
- number=10, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='seq', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype1.seq', index=10,
- number=11, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='reward_type_ext', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype1.reward_type_ext', index=11,
- number=12, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=117,
- serialized_end=367,
-)
-
-
-_MSGELEMINFO_SERVTYPE11 = _descriptor.Descriptor(
- name='MsgElemInfo_servtype11',
- full_name='im.msg.service.comm_elem.MsgElemInfo_servtype11',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='res_id', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype11.res_id', index=0,
- number=1, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='res_md5', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype11.res_md5', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='reserve_info1', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype11.reserve_info1', index=2,
- number=3, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='reserve_info2', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype11.reserve_info2', index=3,
- number=4, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='doodle_data_offset', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype11.doodle_data_offset', index=4,
- number=5, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='doodle_gif_id', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype11.doodle_gif_id', index=5,
- number=6, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='doodle_url', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype11.doodle_url', index=6,
- number=7, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='doodle_md5', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype11.doodle_md5', index=7,
- number=8, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=370,
- serialized_end=564,
-)
-
-
-_MSGELEMINFO_SERVTYPE13 = _descriptor.Descriptor(
- name='MsgElemInfo_servtype13',
- full_name='im.msg.service.comm_elem.MsgElemInfo_servtype13',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='sys_head_id', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype13.sys_head_id', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='head_flag', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype13.head_flag', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=566,
- serialized_end=630,
-)
-
-
-_MSGELEMINFO_SERVTYPE14 = _descriptor.Descriptor(
- name='MsgElemInfo_servtype14',
- full_name='im.msg.service.comm_elem.MsgElemInfo_servtype14',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='id', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype14.id', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='reserve_info', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype14.reserve_info', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=632,
- serialized_end=690,
-)
-
-
-_MSGELEMINFO_SERVTYPE15 = _descriptor.Descriptor(
- name='MsgElemInfo_servtype15',
- full_name='im.msg.service.comm_elem.MsgElemInfo_servtype15',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='vid', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype15.vid', index=0,
- number=1, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='cover', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype15.cover', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='title', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype15.title', index=2,
- number=3, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='summary', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype15.summary', index=3,
- number=4, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='create_time', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype15.create_time', index=4,
- number=5, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='comment_content', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype15.comment_content', index=5,
- number=6, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='author', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype15.author', index=6,
- number=7, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='ctr_version', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype15.ctr_version', index=7,
- number=8, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=693,
- serialized_end=860,
-)
-
-
-_MSGELEMINFO_SERVTYPE16 = _descriptor.Descriptor(
- name='MsgElemInfo_servtype16',
- full_name='im.msg.service.comm_elem.MsgElemInfo_servtype16',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='uid', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype16.uid', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='union_id', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype16.union_id', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='story_id', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype16.story_id', index=2,
- number=3, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='md5', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype16.md5', index=3,
- number=4, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='thumb_url', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype16.thumb_url', index=4,
- number=5, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='doodle_url', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype16.doodle_url', index=5,
- number=6, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='video_width', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype16.video_width', index=6,
- number=7, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='video_height', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype16.video_height', index=7,
- number=8, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='source_name', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype16.source_name', index=8,
- number=9, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='source_action_type', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype16.source_action_type', index=9,
- number=10, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='source_action_data', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype16.source_action_data', index=10,
- number=11, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='ctr_version', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype16.ctr_version', index=11,
- number=12, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=863,
- serialized_end=1129,
-)
-
-
-_MSGELEMINFO_SERVTYPE18 = _descriptor.Descriptor(
- name='MsgElemInfo_servtype18',
- full_name='im.msg.service.comm_elem.MsgElemInfo_servtype18',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='current_amount', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype18.current_amount', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='total_amount', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype18.total_amount', index=1,
- number=2, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='listid', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype18.listid', index=2,
- number=3, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='auth_key', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype18.auth_key', index=3,
- number=4, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='number', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype18.number', index=4,
- number=5, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=1131,
- serialized_end=1251,
-)
-
-
-_MSGELEMINFO_SERVTYPE19 = _descriptor.Descriptor(
- name='MsgElemInfo_servtype19',
- full_name='im.msg.service.comm_elem.MsgElemInfo_servtype19',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='data', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype19.data', index=0,
- number=1, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=1253,
- serialized_end=1291,
-)
-
-
-_MSGELEMINFO_SERVTYPE2 = _descriptor.Descriptor(
- name='MsgElemInfo_servtype2',
- full_name='im.msg.service.comm_elem.MsgElemInfo_servtype2',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='poke_type', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype2.poke_type', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='poke_summary', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype2.poke_summary', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='double_hit', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype2.double_hit', index=2,
- number=3, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='vaspoke_id', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype2.vaspoke_id', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='vaspoke_name', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype2.vaspoke_name', index=4,
- number=5, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='vaspoke_minver', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype2.vaspoke_minver', index=5,
- number=6, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='poke_strength', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype2.poke_strength', index=6,
- number=7, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='msg_type', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype2.msg_type', index=7,
- number=8, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='face_bubble_count', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype2.face_bubble_count', index=8,
- number=9, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='poke_flag', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype2.poke_flag', index=9,
- number=10, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=1294,
- serialized_end=1531,
-)
-
-
-_MSGELEMINFO_SERVTYPE20 = _descriptor.Descriptor(
- name='MsgElemInfo_servtype20',
- full_name='im.msg.service.comm_elem.MsgElemInfo_servtype20',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='data', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype20.data', index=0,
- number=1, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=1533,
- serialized_end=1571,
-)
-
-
-_MSGELEMINFO_SERVTYPE21 = _descriptor.Descriptor(
- name='MsgElemInfo_servtype21',
- full_name='im.msg.service.comm_elem.MsgElemInfo_servtype21',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='topic_id', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype21.topic_id', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='confessor_uin', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype21.confessor_uin', index=1,
- number=2, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='confessor_nick', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype21.confessor_nick', index=2,
- number=3, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='confessor_sex', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype21.confessor_sex', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='sysmsg_flag', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype21.sysmsg_flag', index=4,
- number=5, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='c2_c_confess_ctx', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype21.c2_c_confess_ctx', index=5,
- number=6, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='topic', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype21.topic', index=6,
- number=7, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='confess_time', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype21.confess_time', index=7,
- number=8, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='group_confess_msg', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype21.group_confess_msg', index=8,
- number=9, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='group_confess_ctx', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype21.group_confess_ctx', index=9,
- number=10, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=1574,
- serialized_end=1959,
-)
-
-
-_C2CCONFESSCONTEXT = _descriptor.Descriptor(
- name='C2CConfessContext',
- full_name='im.msg.service.comm_elem.C2CConfessContext',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='confessor_uin', full_name='im.msg.service.comm_elem.C2CConfessContext.confessor_uin', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='confess_to_uin', full_name='im.msg.service.comm_elem.C2CConfessContext.confess_to_uin', index=1,
- number=2, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='send_uin', full_name='im.msg.service.comm_elem.C2CConfessContext.send_uin', index=2,
- number=3, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='confessor_nick', full_name='im.msg.service.comm_elem.C2CConfessContext.confessor_nick', index=3,
- number=4, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='confess', full_name='im.msg.service.comm_elem.C2CConfessContext.confess', index=4,
- number=5, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='bg_type', full_name='im.msg.service.comm_elem.C2CConfessContext.bg_type', index=5,
- number=6, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='topic_id', full_name='im.msg.service.comm_elem.C2CConfessContext.topic_id', index=6,
- number=7, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='confess_time', full_name='im.msg.service.comm_elem.C2CConfessContext.confess_time', index=7,
- number=8, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='confessor_sex', full_name='im.msg.service.comm_elem.C2CConfessContext.confessor_sex', index=8,
- number=9, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='biz_type', full_name='im.msg.service.comm_elem.C2CConfessContext.biz_type', index=9,
- number=10, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='confess_num', full_name='im.msg.service.comm_elem.C2CConfessContext.confess_num', index=10,
- number=11, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='confess_to_sex', full_name='im.msg.service.comm_elem.C2CConfessContext.confess_to_sex', index=11,
- number=12, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=1962,
- serialized_end=2230,
-)
-
-
-_GROUPCONFESSCONTEXT = _descriptor.Descriptor(
- name='GroupConfessContext',
- full_name='im.msg.service.comm_elem.GroupConfessContext',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='confessor_uin', full_name='im.msg.service.comm_elem.GroupConfessContext.confessor_uin', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='confess_to_uin', full_name='im.msg.service.comm_elem.GroupConfessContext.confess_to_uin', index=1,
- number=2, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='send_uin', full_name='im.msg.service.comm_elem.GroupConfessContext.send_uin', index=2,
- number=3, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='confessor_sex', full_name='im.msg.service.comm_elem.GroupConfessContext.confessor_sex', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='confess_to_nick', full_name='im.msg.service.comm_elem.GroupConfessContext.confess_to_nick', index=4,
- number=5, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='topic', full_name='im.msg.service.comm_elem.GroupConfessContext.topic', index=5,
- number=6, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='topic_id', full_name='im.msg.service.comm_elem.GroupConfessContext.topic_id', index=6,
- number=7, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='confess_time', full_name='im.msg.service.comm_elem.GroupConfessContext.confess_time', index=7,
- number=8, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='confess_to_nick_type', full_name='im.msg.service.comm_elem.GroupConfessContext.confess_to_nick_type', index=8,
- number=9, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='confessor_nick', full_name='im.msg.service.comm_elem.GroupConfessContext.confessor_nick', index=9,
- number=10, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=2233,
- serialized_end=2476,
-)
-
-
-_GROUPCONFESSITEM = _descriptor.Descriptor(
- name='GroupConfessItem',
- full_name='im.msg.service.comm_elem.GroupConfessItem',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='topic_id', full_name='im.msg.service.comm_elem.GroupConfessItem.topic_id', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='confess_to_uin', full_name='im.msg.service.comm_elem.GroupConfessItem.confess_to_uin', index=1,
- number=2, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='confess_to_nick', full_name='im.msg.service.comm_elem.GroupConfessItem.confess_to_nick', index=2,
- number=3, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='topic', full_name='im.msg.service.comm_elem.GroupConfessItem.topic', index=3,
- number=4, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='confess_to_nick_type', full_name='im.msg.service.comm_elem.GroupConfessItem.confess_to_nick_type', index=4,
- number=5, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=2479,
- serialized_end=2609,
-)
-
-
-_GROUPCONFESSMSG = _descriptor.Descriptor(
- name='GroupConfessMsg',
- full_name='im.msg.service.comm_elem.GroupConfessMsg',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='confess_time', full_name='im.msg.service.comm_elem.GroupConfessMsg.confess_time', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='confessor_uin', full_name='im.msg.service.comm_elem.GroupConfessMsg.confessor_uin', index=1,
- number=2, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='confessor_sex', full_name='im.msg.service.comm_elem.GroupConfessMsg.confessor_sex', index=2,
- number=3, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='sysmsg_flag', full_name='im.msg.service.comm_elem.GroupConfessMsg.sysmsg_flag', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='confess_items', full_name='im.msg.service.comm_elem.GroupConfessMsg.confess_items', index=4,
- number=5, type=11, cpp_type=10, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='total_topic_count', full_name='im.msg.service.comm_elem.GroupConfessMsg.total_topic_count', index=5,
- number=6, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=2612,
- serialized_end=2812,
-)
-
-
-_MSGELEMINFO_SERVTYPE23 = _descriptor.Descriptor(
- name='MsgElemInfo_servtype23',
- full_name='im.msg.service.comm_elem.MsgElemInfo_servtype23',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='face_type', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype23.face_type', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='face_bubble_count', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype23.face_bubble_count', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='face_summary', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype23.face_summary', index=2,
- number=3, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='flag', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype23.flag', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='others', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype23.others', index=4,
- number=5, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='yellow_face', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype23.yellow_face', index=5,
- number=6, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=2815,
- serialized_end=3008,
-)
-
-
-_MSGELEMINFO_SERVTYPE24 = _descriptor.Descriptor(
- name='MsgElemInfo_servtype24',
- full_name='im.msg.service.comm_elem.MsgElemInfo_servtype24',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='limit_chat_enter', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype24.limit_chat_enter', index=0,
- number=1, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='limit_chat_exit', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype24.limit_chat_exit', index=1,
- number=2, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=3011,
- serialized_end=3169,
-)
-
-
-_LIMITCHATENTER = _descriptor.Descriptor(
- name='LimitChatEnter',
- full_name='im.msg.service.comm_elem.LimitChatEnter',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='tips_wording', full_name='im.msg.service.comm_elem.LimitChatEnter.tips_wording', index=0,
- number=1, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='left_chat_time', full_name='im.msg.service.comm_elem.LimitChatEnter.left_chat_time', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='match_ts', full_name='im.msg.service.comm_elem.LimitChatEnter.match_ts', index=2,
- number=3, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='match_expired_time', full_name='im.msg.service.comm_elem.LimitChatEnter.match_expired_time', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='c2_c_expired_time', full_name='im.msg.service.comm_elem.LimitChatEnter.c2_c_expired_time', index=4,
- number=5, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='ready_ts', full_name='im.msg.service.comm_elem.LimitChatEnter.ready_ts', index=5,
- number=6, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='match_nick', full_name='im.msg.service.comm_elem.LimitChatEnter.match_nick', index=6,
- number=7, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=3172,
- serialized_end=3345,
-)
-
-
-_LIMITCHATEXIT = _descriptor.Descriptor(
- name='LimitChatExit',
- full_name='im.msg.service.comm_elem.LimitChatExit',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='exit_method', full_name='im.msg.service.comm_elem.LimitChatExit.exit_method', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='match_ts', full_name='im.msg.service.comm_elem.LimitChatExit.match_ts', index=1,
- number=2, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=3347,
- serialized_end=3401,
-)
-
-
-_MSGELEMINFO_SERVTYPE27 = _descriptor.Descriptor(
- name='MsgElemInfo_servtype27',
- full_name='im.msg.service.comm_elem.MsgElemInfo_servtype27',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='video_file', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype27.video_file', index=0,
- number=1, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=3403,
- serialized_end=3475,
-)
-
-
-_MSGELEMINFO_SERVTYPE29 = _descriptor.Descriptor(
- name='MsgElemInfo_servtype29',
- full_name='im.msg.service.comm_elem.MsgElemInfo_servtype29',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='luckybag_msg', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype29.luckybag_msg', index=0,
- number=1, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=3477,
- serialized_end=3523,
-)
-
-
-_MSGELEMINFO_SERVTYPE3 = _descriptor.Descriptor(
- name='MsgElemInfo_servtype3',
- full_name='im.msg.service.comm_elem.MsgElemInfo_servtype3',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='flash_troop_pic', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype3.flash_troop_pic', index=0,
- number=1, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='flash_c2_c_pic', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype3.flash_c2_c_pic', index=1,
- number=2, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=3526,
- serialized_end=3660,
-)
-
-
-_MSGELEMINFO_SERVTYPE31 = _descriptor.Descriptor(
- name='MsgElemInfo_servtype31',
- full_name='im.msg.service.comm_elem.MsgElemInfo_servtype31',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='text', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype31.text', index=0,
- number=1, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='ext', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype31.ext', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=3662,
- serialized_end=3713,
-)
-
-
-_MSGELEMINFO_SERVTYPE33 = _descriptor.Descriptor(
- name='MsgElemInfo_servtype33',
- full_name='im.msg.service.comm_elem.MsgElemInfo_servtype33',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='index', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype33.index', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='text', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype33.text', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='compat', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype33.compat', index=2,
- number=3, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='buf', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype33.buf', index=3,
- number=4, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=3715,
- serialized_end=3797,
-)
-
-
-_MSGELEMINFO_SERVTYPE34 = _descriptor.Descriptor(
- name='MsgElemInfo_servtype34',
- full_name='im.msg.service.comm_elem.MsgElemInfo_servtype34',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='from_nickname', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype34.from_nickname', index=0,
- number=1, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='push_window_flag', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype34.push_window_flag', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='game_session', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype34.game_session', index=2,
- number=3, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='ext', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype34.ext', index=3,
- number=4, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=3800,
- serialized_end=3947,
-)
-
-
-_GAMESESSION = _descriptor.Descriptor(
- name='GameSession',
- full_name='im.msg.service.comm_elem.GameSession',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='from_role_id', full_name='im.msg.service.comm_elem.GameSession.from_role_id', index=0,
- number=1, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='from_open_id', full_name='im.msg.service.comm_elem.GameSession.from_open_id', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='to_role_id', full_name='im.msg.service.comm_elem.GameSession.to_role_id', index=2,
- number=3, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='to_open_id', full_name='im.msg.service.comm_elem.GameSession.to_open_id', index=3,
- number=4, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='game_appid', full_name='im.msg.service.comm_elem.GameSession.game_appid', index=4,
- number=5, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='from_tiny_id', full_name='im.msg.service.comm_elem.GameSession.from_tiny_id', index=5,
- number=6, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='to_tiny_id', full_name='im.msg.service.comm_elem.GameSession.to_tiny_id', index=6,
- number=7, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=3950,
- serialized_end=4109,
-)
-
-
-_MSGELEMINFO_SERVTYPE35 = _descriptor.Descriptor(
- name='MsgElemInfo_servtype35',
- full_name='im.msg.service.comm_elem.MsgElemInfo_servtype35',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='token', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype35.token', index=0,
- number=1, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='global_padid', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype35.global_padid', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='get_rev', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype35.get_rev', index=2,
- number=3, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='his_edit_uin_num', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype35.his_edit_uin_num', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=4111,
- serialized_end=4215,
-)
-
-
-_MSGELEMINFO_SERVTYPE4 = _descriptor.Descriptor(
- name='MsgElemInfo_servtype4',
- full_name='im.msg.service.comm_elem.MsgElemInfo_servtype4',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='imsg_type', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype4.imsg_type', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='st_story_aio_obj_msg', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype4.st_story_aio_obj_msg', index=1,
- number=4, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=4217,
- serialized_end=4331,
-)
-
-
-_MSGELEMINFO_SERVTYPE5 = _descriptor.Descriptor(
- name='MsgElemInfo_servtype5',
- full_name='im.msg.service.comm_elem.MsgElemInfo_servtype5',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='vid', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype5.vid', index=0,
- number=1, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='cover', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype5.cover', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='title', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype5.title', index=2,
- number=3, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='summary', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype5.summary', index=3,
- number=4, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='create_time', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype5.create_time', index=4,
- number=5, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='comment_content', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype5.comment_content', index=5,
- number=6, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='author', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype5.author', index=6,
- number=7, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=4334,
- serialized_end=4479,
-)
-
-
-_MSGELEMINFO_SERVTYPE8 = _descriptor.Descriptor(
- name='MsgElemInfo_servtype8',
- full_name='im.msg.service.comm_elem.MsgElemInfo_servtype8',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='wifi_deliver_gift_msg', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype8.wifi_deliver_gift_msg', index=0,
- number=1, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=4481,
- serialized_end=4568,
-)
-
-
-_MSGELEMINFO_SERVTYPE9 = _descriptor.Descriptor(
- name='MsgElemInfo_servtype9',
- full_name='im.msg.service.comm_elem.MsgElemInfo_servtype9',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='anchor_status', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype9.anchor_status', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='jump_schema', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype9.jump_schema', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='anchor_nickname', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype9.anchor_nickname', index=2,
- number=3, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='anchor_head_url', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype9.anchor_head_url', index=3,
- number=4, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='live_title', full_name='im.msg.service.comm_elem.MsgElemInfo_servtype9.live_title', index=4,
- number=5, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=4571,
- serialized_end=4708,
-)
-
-
-_STORYAIOOBJMSG = _descriptor.Descriptor(
- name='StoryAioObjMsg',
- full_name='im.msg.service.comm_elem.StoryAioObjMsg',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='ui_url', full_name='im.msg.service.comm_elem.StoryAioObjMsg.ui_url', index=0,
- number=1, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='jmp_url', full_name='im.msg.service.comm_elem.StoryAioObjMsg.jmp_url', index=1,
- number=2, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=4710,
- serialized_end=4759,
-)
-
-_MSGELEMINFO_SERVTYPE21.fields_by_name['c2_c_confess_ctx'].message_type = _C2CCONFESSCONTEXT
-_MSGELEMINFO_SERVTYPE21.fields_by_name['group_confess_msg'].message_type = _GROUPCONFESSMSG
-_MSGELEMINFO_SERVTYPE21.fields_by_name['group_confess_ctx'].message_type = _GROUPCONFESSCONTEXT
-_GROUPCONFESSMSG.fields_by_name['confess_items'].message_type = _GROUPCONFESSITEM
-_MSGELEMINFO_SERVTYPE23.fields_by_name['yellow_face'].message_type = _MSGELEMINFO_SERVTYPE33
-_MSGELEMINFO_SERVTYPE24.fields_by_name['limit_chat_enter'].message_type = _LIMITCHATENTER
-_MSGELEMINFO_SERVTYPE24.fields_by_name['limit_chat_exit'].message_type = _LIMITCHATEXIT
-_MSGELEMINFO_SERVTYPE27.fields_by_name['video_file'].message_type = cai_dot_pb_dot_im_dot_msg_dot_msg__body_dot_msg__body__pb2._VIDEOFILE
-_MSGELEMINFO_SERVTYPE3.fields_by_name['flash_troop_pic'].message_type = cai_dot_pb_dot_im_dot_msg_dot_msg__body_dot_msg__body__pb2._CUSTOMFACE
-_MSGELEMINFO_SERVTYPE3.fields_by_name['flash_c2_c_pic'].message_type = cai_dot_pb_dot_im_dot_msg_dot_msg__body_dot_msg__body__pb2._NOTONLINEIMAGE
-_MSGELEMINFO_SERVTYPE34.fields_by_name['game_session'].message_type = _GAMESESSION
-_MSGELEMINFO_SERVTYPE4.fields_by_name['st_story_aio_obj_msg'].message_type = _STORYAIOOBJMSG
-_MSGELEMINFO_SERVTYPE8.fields_by_name['wifi_deliver_gift_msg'].message_type = cai_dot_pb_dot_im_dot_msg_dot_msg__body_dot_msg__body__pb2._DELIVERGIFTMSG
-DESCRIPTOR.message_types_by_name['MsgElemInfo_servtype1'] = _MSGELEMINFO_SERVTYPE1
-DESCRIPTOR.message_types_by_name['MsgElemInfo_servtype11'] = _MSGELEMINFO_SERVTYPE11
-DESCRIPTOR.message_types_by_name['MsgElemInfo_servtype13'] = _MSGELEMINFO_SERVTYPE13
-DESCRIPTOR.message_types_by_name['MsgElemInfo_servtype14'] = _MSGELEMINFO_SERVTYPE14
-DESCRIPTOR.message_types_by_name['MsgElemInfo_servtype15'] = _MSGELEMINFO_SERVTYPE15
-DESCRIPTOR.message_types_by_name['MsgElemInfo_servtype16'] = _MSGELEMINFO_SERVTYPE16
-DESCRIPTOR.message_types_by_name['MsgElemInfo_servtype18'] = _MSGELEMINFO_SERVTYPE18
-DESCRIPTOR.message_types_by_name['MsgElemInfo_servtype19'] = _MSGELEMINFO_SERVTYPE19
-DESCRIPTOR.message_types_by_name['MsgElemInfo_servtype2'] = _MSGELEMINFO_SERVTYPE2
-DESCRIPTOR.message_types_by_name['MsgElemInfo_servtype20'] = _MSGELEMINFO_SERVTYPE20
-DESCRIPTOR.message_types_by_name['MsgElemInfo_servtype21'] = _MSGELEMINFO_SERVTYPE21
-DESCRIPTOR.message_types_by_name['C2CConfessContext'] = _C2CCONFESSCONTEXT
-DESCRIPTOR.message_types_by_name['GroupConfessContext'] = _GROUPCONFESSCONTEXT
-DESCRIPTOR.message_types_by_name['GroupConfessItem'] = _GROUPCONFESSITEM
-DESCRIPTOR.message_types_by_name['GroupConfessMsg'] = _GROUPCONFESSMSG
-DESCRIPTOR.message_types_by_name['MsgElemInfo_servtype23'] = _MSGELEMINFO_SERVTYPE23
-DESCRIPTOR.message_types_by_name['MsgElemInfo_servtype24'] = _MSGELEMINFO_SERVTYPE24
-DESCRIPTOR.message_types_by_name['LimitChatEnter'] = _LIMITCHATENTER
-DESCRIPTOR.message_types_by_name['LimitChatExit'] = _LIMITCHATEXIT
-DESCRIPTOR.message_types_by_name['MsgElemInfo_servtype27'] = _MSGELEMINFO_SERVTYPE27
-DESCRIPTOR.message_types_by_name['MsgElemInfo_servtype29'] = _MSGELEMINFO_SERVTYPE29
-DESCRIPTOR.message_types_by_name['MsgElemInfo_servtype3'] = _MSGELEMINFO_SERVTYPE3
-DESCRIPTOR.message_types_by_name['MsgElemInfo_servtype31'] = _MSGELEMINFO_SERVTYPE31
-DESCRIPTOR.message_types_by_name['MsgElemInfo_servtype33'] = _MSGELEMINFO_SERVTYPE33
-DESCRIPTOR.message_types_by_name['MsgElemInfo_servtype34'] = _MSGELEMINFO_SERVTYPE34
-DESCRIPTOR.message_types_by_name['GameSession'] = _GAMESESSION
-DESCRIPTOR.message_types_by_name['MsgElemInfo_servtype35'] = _MSGELEMINFO_SERVTYPE35
-DESCRIPTOR.message_types_by_name['MsgElemInfo_servtype4'] = _MSGELEMINFO_SERVTYPE4
-DESCRIPTOR.message_types_by_name['MsgElemInfo_servtype5'] = _MSGELEMINFO_SERVTYPE5
-DESCRIPTOR.message_types_by_name['MsgElemInfo_servtype8'] = _MSGELEMINFO_SERVTYPE8
-DESCRIPTOR.message_types_by_name['MsgElemInfo_servtype9'] = _MSGELEMINFO_SERVTYPE9
-DESCRIPTOR.message_types_by_name['StoryAioObjMsg'] = _STORYAIOOBJMSG
-_sym_db.RegisterFileDescriptor(DESCRIPTOR)
-
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n/cai/pb/im/msg/service/comm_elem/comm_elem.proto\x12\x18im.msg.service.comm_elem\x1a%cai/pb/im/msg/msg_body/msg_body.proto\"\xfa\x01\n\x15MsgElemInfo_servtype1\x12\x11\n\treward_id\x18\x01 \x01(\x0c\x12\x12\n\nsender_uin\x18\x02 \x01(\x04\x12\x10\n\x08pic_type\x18\x03 \x01(\r\x12\x14\n\x0creward_money\x18\x04 \x01(\r\x12\x0b\n\x03url\x18\x05 \x01(\x0c\x12\x0f\n\x07\x63ontent\x18\x06 \x01(\x0c\x12\x18\n\x10\x63reate_timestamp\x18\x07 \x01(\r\x12\x0e\n\x06status\x18\x08 \x01(\r\x12\x0c\n\x04size\x18\t \x01(\r\x12\x16\n\x0evideo_duration\x18\n \x01(\r\x12\x0b\n\x03seq\x18\x0b \x01(\x04\x12\x17\n\x0freward_type_ext\x18\x0c \x01(\r\"\xc2\x01\n\x16MsgElemInfo_servtype11\x12\x0e\n\x06res_id\x18\x01 \x01(\x0c\x12\x0f\n\x07res_md5\x18\x02 \x01(\x0c\x12\x15\n\rreserve_info1\x18\x03 \x01(\x0c\x12\x15\n\rreserve_info2\x18\x04 \x01(\x0c\x12\x1a\n\x12\x64oodle_data_offset\x18\x05 \x01(\r\x12\x15\n\rdoodle_gif_id\x18\x06 \x01(\r\x12\x12\n\ndoodle_url\x18\x07 \x01(\x0c\x12\x12\n\ndoodle_md5\x18\x08 \x01(\x0c\"@\n\x16MsgElemInfo_servtype13\x12\x13\n\x0bsys_head_id\x18\x01 \x01(\r\x12\x11\n\thead_flag\x18\x02 \x01(\r\":\n\x16MsgElemInfo_servtype14\x12\n\n\x02id\x18\x01 \x01(\r\x12\x14\n\x0creserve_info\x18\x02 \x01(\x0c\"\xa7\x01\n\x16MsgElemInfo_servtype15\x12\x0b\n\x03vid\x18\x01 \x01(\x0c\x12\r\n\x05\x63over\x18\x02 \x01(\x0c\x12\r\n\x05title\x18\x03 \x01(\x0c\x12\x0f\n\x07summary\x18\x04 \x01(\x0c\x12\x13\n\x0b\x63reate_time\x18\x05 \x01(\x04\x12\x17\n\x0f\x63omment_content\x18\x06 \x01(\x0c\x12\x0e\n\x06\x61uthor\x18\x07 \x01(\x04\x12\x13\n\x0b\x63tr_version\x18\x08 \x01(\r\"\x8a\x02\n\x16MsgElemInfo_servtype16\x12\x0b\n\x03uid\x18\x01 \x01(\x04\x12\x10\n\x08union_id\x18\x02 \x01(\x0c\x12\x10\n\x08story_id\x18\x03 \x01(\x0c\x12\x0b\n\x03md5\x18\x04 \x01(\x0c\x12\x11\n\tthumb_url\x18\x05 \x01(\x0c\x12\x12\n\ndoodle_url\x18\x06 \x01(\x0c\x12\x13\n\x0bvideo_width\x18\x07 \x01(\r\x12\x14\n\x0cvideo_height\x18\x08 \x01(\r\x12\x13\n\x0bsource_name\x18\t \x01(\x0c\x12\x1a\n\x12source_action_type\x18\n \x01(\x0c\x12\x1a\n\x12source_action_data\x18\x0b \x01(\x0c\x12\x13\n\x0b\x63tr_version\x18\x0c \x01(\r\"x\n\x16MsgElemInfo_servtype18\x12\x16\n\x0e\x63urrent_amount\x18\x01 \x01(\x04\x12\x14\n\x0ctotal_amount\x18\x02 \x01(\x04\x12\x0e\n\x06listid\x18\x03 \x01(\x0c\x12\x10\n\x08\x61uth_key\x18\x04 \x01(\x0c\x12\x0e\n\x06number\x18\x05 \x01(\r\"&\n\x16MsgElemInfo_servtype19\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"\xed\x01\n\x15MsgElemInfo_servtype2\x12\x11\n\tpoke_type\x18\x01 \x01(\r\x12\x14\n\x0cpoke_summary\x18\x02 \x01(\x0c\x12\x12\n\ndouble_hit\x18\x03 \x01(\r\x12\x12\n\nvaspoke_id\x18\x04 \x01(\r\x12\x14\n\x0cvaspoke_name\x18\x05 \x01(\x0c\x12\x16\n\x0evaspoke_minver\x18\x06 \x01(\x0c\x12\x15\n\rpoke_strength\x18\x07 \x01(\r\x12\x10\n\x08msg_type\x18\x08 \x01(\r\x12\x19\n\x11\x66\x61\x63\x65_bubble_count\x18\t \x01(\r\x12\x11\n\tpoke_flag\x18\n \x01(\r\"&\n\x16MsgElemInfo_servtype20\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"\x81\x03\n\x16MsgElemInfo_servtype21\x12\x10\n\x08topic_id\x18\x01 \x01(\r\x12\x15\n\rconfessor_uin\x18\x02 \x01(\x04\x12\x16\n\x0e\x63onfessor_nick\x18\x03 \x01(\x0c\x12\x15\n\rconfessor_sex\x18\x04 \x01(\r\x12\x13\n\x0bsysmsg_flag\x18\x05 \x01(\r\x12\x45\n\x10\x63\x32_c_confess_ctx\x18\x06 \x01(\x0b\x32+.im.msg.service.comm_elem.C2CConfessContext\x12\r\n\x05topic\x18\x07 \x01(\x0c\x12\x14\n\x0c\x63onfess_time\x18\x08 \x01(\x04\x12\x44\n\x11group_confess_msg\x18\t \x01(\x0b\x32).im.msg.service.comm_elem.GroupConfessMsg\x12H\n\x11group_confess_ctx\x18\n \x01(\x0b\x32-.im.msg.service.comm_elem.GroupConfessContext\"\x8c\x02\n\x11\x43\x32\x43\x43onfessContext\x12\x15\n\rconfessor_uin\x18\x01 \x01(\x04\x12\x16\n\x0e\x63onfess_to_uin\x18\x02 \x01(\x04\x12\x10\n\x08send_uin\x18\x03 \x01(\x04\x12\x16\n\x0e\x63onfessor_nick\x18\x04 \x01(\x0c\x12\x0f\n\x07\x63onfess\x18\x05 \x01(\x0c\x12\x0f\n\x07\x62g_type\x18\x06 \x01(\r\x12\x10\n\x08topic_id\x18\x07 \x01(\r\x12\x14\n\x0c\x63onfess_time\x18\x08 \x01(\x04\x12\x15\n\rconfessor_sex\x18\t \x01(\r\x12\x10\n\x08\x62iz_type\x18\n \x01(\r\x12\x13\n\x0b\x63onfess_num\x18\x0b \x01(\r\x12\x16\n\x0e\x63onfess_to_sex\x18\x0c \x01(\r\"\xf3\x01\n\x13GroupConfessContext\x12\x15\n\rconfessor_uin\x18\x01 \x01(\x04\x12\x16\n\x0e\x63onfess_to_uin\x18\x02 \x01(\x04\x12\x10\n\x08send_uin\x18\x03 \x01(\x04\x12\x15\n\rconfessor_sex\x18\x04 \x01(\r\x12\x17\n\x0f\x63onfess_to_nick\x18\x05 \x01(\x0c\x12\r\n\x05topic\x18\x06 \x01(\x0c\x12\x10\n\x08topic_id\x18\x07 \x01(\r\x12\x14\n\x0c\x63onfess_time\x18\x08 \x01(\x04\x12\x1c\n\x14\x63onfess_to_nick_type\x18\t \x01(\r\x12\x16\n\x0e\x63onfessor_nick\x18\n \x01(\x0c\"\x82\x01\n\x10GroupConfessItem\x12\x10\n\x08topic_id\x18\x01 \x01(\r\x12\x16\n\x0e\x63onfess_to_uin\x18\x02 \x01(\x04\x12\x17\n\x0f\x63onfess_to_nick\x18\x03 \x01(\x0c\x12\r\n\x05topic\x18\x04 \x01(\x0c\x12\x1c\n\x14\x63onfess_to_nick_type\x18\x05 \x01(\r\"\xc8\x01\n\x0fGroupConfessMsg\x12\x14\n\x0c\x63onfess_time\x18\x01 \x01(\x04\x12\x15\n\rconfessor_uin\x18\x02 \x01(\x04\x12\x15\n\rconfessor_sex\x18\x03 \x01(\r\x12\x13\n\x0bsysmsg_flag\x18\x04 \x01(\r\x12\x41\n\rconfess_items\x18\x05 \x03(\x0b\x32*.im.msg.service.comm_elem.GroupConfessItem\x12\x19\n\x11total_topic_count\x18\x06 \x01(\r\"\xc1\x01\n\x16MsgElemInfo_servtype23\x12\x11\n\tface_type\x18\x01 \x01(\r\x12\x19\n\x11\x66\x61\x63\x65_bubble_count\x18\x02 \x01(\r\x12\x14\n\x0c\x66\x61\x63\x65_summary\x18\x03 \x01(\x0c\x12\x0c\n\x04\x66lag\x18\x04 \x01(\r\x12\x0e\n\x06others\x18\x05 \x01(\x0c\x12\x45\n\x0byellow_face\x18\x06 \x01(\x0b\x32\x30.im.msg.service.comm_elem.MsgElemInfo_servtype33\"\x9e\x01\n\x16MsgElemInfo_servtype24\x12\x42\n\x10limit_chat_enter\x18\x01 \x01(\x0b\x32(.im.msg.service.comm_elem.LimitChatEnter\x12@\n\x0flimit_chat_exit\x18\x02 \x01(\x0b\x32\'.im.msg.service.comm_elem.LimitChatExit\"\xad\x01\n\x0eLimitChatEnter\x12\x14\n\x0ctips_wording\x18\x01 \x01(\x0c\x12\x16\n\x0eleft_chat_time\x18\x02 \x01(\r\x12\x10\n\x08match_ts\x18\x03 \x01(\x04\x12\x1a\n\x12match_expired_time\x18\x04 \x01(\r\x12\x19\n\x11\x63\x32_c_expired_time\x18\x05 \x01(\r\x12\x10\n\x08ready_ts\x18\x06 \x01(\x04\x12\x12\n\nmatch_nick\x18\x07 \x01(\x0c\"6\n\rLimitChatExit\x12\x13\n\x0b\x65xit_method\x18\x01 \x01(\r\x12\x10\n\x08match_ts\x18\x02 \x01(\x04\"H\n\x16MsgElemInfo_servtype27\x12.\n\nvideo_file\x18\x01 \x01(\x0b\x32\x1a.im.msg.msg_body.VideoFile\".\n\x16MsgElemInfo_servtype29\x12\x14\n\x0cluckybag_msg\x18\x01 \x01(\x0c\"\x86\x01\n\x15MsgElemInfo_servtype3\x12\x34\n\x0f\x66lash_troop_pic\x18\x01 \x01(\x0b\x32\x1b.im.msg.msg_body.CustomFace\x12\x37\n\x0e\x66lash_c2_c_pic\x18\x02 \x01(\x0b\x32\x1f.im.msg.msg_body.NotOnlineImage\"3\n\x16MsgElemInfo_servtype31\x12\x0c\n\x04text\x18\x01 \x01(\x0c\x12\x0b\n\x03\x65xt\x18\x02 \x01(\x0c\"R\n\x16MsgElemInfo_servtype33\x12\r\n\x05index\x18\x01 \x01(\r\x12\x0c\n\x04text\x18\x02 \x01(\x0c\x12\x0e\n\x06\x63ompat\x18\x03 \x01(\x0c\x12\x0b\n\x03\x62uf\x18\x04 \x01(\x0c\"\x93\x01\n\x16MsgElemInfo_servtype34\x12\x15\n\rfrom_nickname\x18\x01 \x01(\x0c\x12\x18\n\x10push_window_flag\x18\x02 \x01(\r\x12;\n\x0cgame_session\x18\x03 \x01(\x0b\x32%.im.msg.service.comm_elem.GameSession\x12\x0b\n\x03\x65xt\x18\x04 \x01(\x0c\"\x9f\x01\n\x0bGameSession\x12\x14\n\x0c\x66rom_role_id\x18\x01 \x01(\x0c\x12\x14\n\x0c\x66rom_open_id\x18\x02 \x01(\x0c\x12\x12\n\nto_role_id\x18\x03 \x01(\x0c\x12\x12\n\nto_open_id\x18\x04 \x01(\x0c\x12\x12\n\ngame_appid\x18\x05 \x01(\x04\x12\x14\n\x0c\x66rom_tiny_id\x18\x06 \x01(\x04\x12\x12\n\nto_tiny_id\x18\x07 \x01(\x04\"h\n\x16MsgElemInfo_servtype35\x12\r\n\x05token\x18\x01 \x01(\x0c\x12\x14\n\x0cglobal_padid\x18\x02 \x01(\x0c\x12\x0f\n\x07get_rev\x18\x03 \x01(\r\x12\x18\n\x10his_edit_uin_num\x18\x04 \x01(\r\"r\n\x15MsgElemInfo_servtype4\x12\x11\n\timsg_type\x18\x01 \x01(\r\x12\x46\n\x14st_story_aio_obj_msg\x18\x04 \x01(\x0b\x32(.im.msg.service.comm_elem.StoryAioObjMsg\"\x91\x01\n\x15MsgElemInfo_servtype5\x12\x0b\n\x03vid\x18\x01 \x01(\x0c\x12\r\n\x05\x63over\x18\x02 \x01(\x0c\x12\r\n\x05title\x18\x03 \x01(\x0c\x12\x0f\n\x07summary\x18\x04 \x01(\x0c\x12\x13\n\x0b\x63reate_time\x18\x05 \x01(\x04\x12\x17\n\x0f\x63omment_content\x18\x06 \x01(\x0c\x12\x0e\n\x06\x61uthor\x18\x07 \x01(\x04\"W\n\x15MsgElemInfo_servtype8\x12>\n\x15wifi_deliver_gift_msg\x18\x01 \x01(\x0b\x32\x1f.im.msg.msg_body.DeliverGiftMsg\"\x89\x01\n\x15MsgElemInfo_servtype9\x12\x15\n\ranchor_status\x18\x01 \x01(\r\x12\x13\n\x0bjump_schema\x18\x02 \x01(\x0c\x12\x17\n\x0f\x61nchor_nickname\x18\x03 \x01(\t\x12\x17\n\x0f\x61nchor_head_url\x18\x04 \x01(\x0c\x12\x12\n\nlive_title\x18\x05 \x01(\t\"1\n\x0eStoryAioObjMsg\x12\x0e\n\x06ui_url\x18\x01 \x01(\t\x12\x0f\n\x07jmp_url\x18\x02 \x01(\t')
+
+
+
+_MSGELEMINFO_SERVTYPE1 = DESCRIPTOR.message_types_by_name['MsgElemInfo_servtype1']
+_MSGELEMINFO_SERVTYPE11 = DESCRIPTOR.message_types_by_name['MsgElemInfo_servtype11']
+_MSGELEMINFO_SERVTYPE13 = DESCRIPTOR.message_types_by_name['MsgElemInfo_servtype13']
+_MSGELEMINFO_SERVTYPE14 = DESCRIPTOR.message_types_by_name['MsgElemInfo_servtype14']
+_MSGELEMINFO_SERVTYPE15 = DESCRIPTOR.message_types_by_name['MsgElemInfo_servtype15']
+_MSGELEMINFO_SERVTYPE16 = DESCRIPTOR.message_types_by_name['MsgElemInfo_servtype16']
+_MSGELEMINFO_SERVTYPE18 = DESCRIPTOR.message_types_by_name['MsgElemInfo_servtype18']
+_MSGELEMINFO_SERVTYPE19 = DESCRIPTOR.message_types_by_name['MsgElemInfo_servtype19']
+_MSGELEMINFO_SERVTYPE2 = DESCRIPTOR.message_types_by_name['MsgElemInfo_servtype2']
+_MSGELEMINFO_SERVTYPE20 = DESCRIPTOR.message_types_by_name['MsgElemInfo_servtype20']
+_MSGELEMINFO_SERVTYPE21 = DESCRIPTOR.message_types_by_name['MsgElemInfo_servtype21']
+_C2CCONFESSCONTEXT = DESCRIPTOR.message_types_by_name['C2CConfessContext']
+_GROUPCONFESSCONTEXT = DESCRIPTOR.message_types_by_name['GroupConfessContext']
+_GROUPCONFESSITEM = DESCRIPTOR.message_types_by_name['GroupConfessItem']
+_GROUPCONFESSMSG = DESCRIPTOR.message_types_by_name['GroupConfessMsg']
+_MSGELEMINFO_SERVTYPE23 = DESCRIPTOR.message_types_by_name['MsgElemInfo_servtype23']
+_MSGELEMINFO_SERVTYPE24 = DESCRIPTOR.message_types_by_name['MsgElemInfo_servtype24']
+_LIMITCHATENTER = DESCRIPTOR.message_types_by_name['LimitChatEnter']
+_LIMITCHATEXIT = DESCRIPTOR.message_types_by_name['LimitChatExit']
+_MSGELEMINFO_SERVTYPE27 = DESCRIPTOR.message_types_by_name['MsgElemInfo_servtype27']
+_MSGELEMINFO_SERVTYPE29 = DESCRIPTOR.message_types_by_name['MsgElemInfo_servtype29']
+_MSGELEMINFO_SERVTYPE3 = DESCRIPTOR.message_types_by_name['MsgElemInfo_servtype3']
+_MSGELEMINFO_SERVTYPE31 = DESCRIPTOR.message_types_by_name['MsgElemInfo_servtype31']
+_MSGELEMINFO_SERVTYPE33 = DESCRIPTOR.message_types_by_name['MsgElemInfo_servtype33']
+_MSGELEMINFO_SERVTYPE34 = DESCRIPTOR.message_types_by_name['MsgElemInfo_servtype34']
+_GAMESESSION = DESCRIPTOR.message_types_by_name['GameSession']
+_MSGELEMINFO_SERVTYPE35 = DESCRIPTOR.message_types_by_name['MsgElemInfo_servtype35']
+_MSGELEMINFO_SERVTYPE4 = DESCRIPTOR.message_types_by_name['MsgElemInfo_servtype4']
+_MSGELEMINFO_SERVTYPE5 = DESCRIPTOR.message_types_by_name['MsgElemInfo_servtype5']
+_MSGELEMINFO_SERVTYPE8 = DESCRIPTOR.message_types_by_name['MsgElemInfo_servtype8']
+_MSGELEMINFO_SERVTYPE9 = DESCRIPTOR.message_types_by_name['MsgElemInfo_servtype9']
+_STORYAIOOBJMSG = DESCRIPTOR.message_types_by_name['StoryAioObjMsg']
MsgElemInfo_servtype1 = _reflection.GeneratedProtocolMessageType('MsgElemInfo_servtype1', (_message.Message,), {
'DESCRIPTOR' : _MSGELEMINFO_SERVTYPE1,
'__module__' : 'cai.pb.im.msg.service.comm_elem.comm_elem_pb2'
@@ -2238,5 +275,71 @@
})
_sym_db.RegisterMessage(StoryAioObjMsg)
-
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ _MSGELEMINFO_SERVTYPE1._serialized_start=117
+ _MSGELEMINFO_SERVTYPE1._serialized_end=367
+ _MSGELEMINFO_SERVTYPE11._serialized_start=370
+ _MSGELEMINFO_SERVTYPE11._serialized_end=564
+ _MSGELEMINFO_SERVTYPE13._serialized_start=566
+ _MSGELEMINFO_SERVTYPE13._serialized_end=630
+ _MSGELEMINFO_SERVTYPE14._serialized_start=632
+ _MSGELEMINFO_SERVTYPE14._serialized_end=690
+ _MSGELEMINFO_SERVTYPE15._serialized_start=693
+ _MSGELEMINFO_SERVTYPE15._serialized_end=860
+ _MSGELEMINFO_SERVTYPE16._serialized_start=863
+ _MSGELEMINFO_SERVTYPE16._serialized_end=1129
+ _MSGELEMINFO_SERVTYPE18._serialized_start=1131
+ _MSGELEMINFO_SERVTYPE18._serialized_end=1251
+ _MSGELEMINFO_SERVTYPE19._serialized_start=1253
+ _MSGELEMINFO_SERVTYPE19._serialized_end=1291
+ _MSGELEMINFO_SERVTYPE2._serialized_start=1294
+ _MSGELEMINFO_SERVTYPE2._serialized_end=1531
+ _MSGELEMINFO_SERVTYPE20._serialized_start=1533
+ _MSGELEMINFO_SERVTYPE20._serialized_end=1571
+ _MSGELEMINFO_SERVTYPE21._serialized_start=1574
+ _MSGELEMINFO_SERVTYPE21._serialized_end=1959
+ _C2CCONFESSCONTEXT._serialized_start=1962
+ _C2CCONFESSCONTEXT._serialized_end=2230
+ _GROUPCONFESSCONTEXT._serialized_start=2233
+ _GROUPCONFESSCONTEXT._serialized_end=2476
+ _GROUPCONFESSITEM._serialized_start=2479
+ _GROUPCONFESSITEM._serialized_end=2609
+ _GROUPCONFESSMSG._serialized_start=2612
+ _GROUPCONFESSMSG._serialized_end=2812
+ _MSGELEMINFO_SERVTYPE23._serialized_start=2815
+ _MSGELEMINFO_SERVTYPE23._serialized_end=3008
+ _MSGELEMINFO_SERVTYPE24._serialized_start=3011
+ _MSGELEMINFO_SERVTYPE24._serialized_end=3169
+ _LIMITCHATENTER._serialized_start=3172
+ _LIMITCHATENTER._serialized_end=3345
+ _LIMITCHATEXIT._serialized_start=3347
+ _LIMITCHATEXIT._serialized_end=3401
+ _MSGELEMINFO_SERVTYPE27._serialized_start=3403
+ _MSGELEMINFO_SERVTYPE27._serialized_end=3475
+ _MSGELEMINFO_SERVTYPE29._serialized_start=3477
+ _MSGELEMINFO_SERVTYPE29._serialized_end=3523
+ _MSGELEMINFO_SERVTYPE3._serialized_start=3526
+ _MSGELEMINFO_SERVTYPE3._serialized_end=3660
+ _MSGELEMINFO_SERVTYPE31._serialized_start=3662
+ _MSGELEMINFO_SERVTYPE31._serialized_end=3713
+ _MSGELEMINFO_SERVTYPE33._serialized_start=3715
+ _MSGELEMINFO_SERVTYPE33._serialized_end=3797
+ _MSGELEMINFO_SERVTYPE34._serialized_start=3800
+ _MSGELEMINFO_SERVTYPE34._serialized_end=3947
+ _GAMESESSION._serialized_start=3950
+ _GAMESESSION._serialized_end=4109
+ _MSGELEMINFO_SERVTYPE35._serialized_start=4111
+ _MSGELEMINFO_SERVTYPE35._serialized_end=4215
+ _MSGELEMINFO_SERVTYPE4._serialized_start=4217
+ _MSGELEMINFO_SERVTYPE4._serialized_end=4331
+ _MSGELEMINFO_SERVTYPE5._serialized_start=4334
+ _MSGELEMINFO_SERVTYPE5._serialized_end=4479
+ _MSGELEMINFO_SERVTYPE8._serialized_start=4481
+ _MSGELEMINFO_SERVTYPE8._serialized_end=4568
+ _MSGELEMINFO_SERVTYPE9._serialized_start=4571
+ _MSGELEMINFO_SERVTYPE9._serialized_end=4708
+ _STORYAIOOBJMSG._serialized_start=4710
+ _STORYAIOOBJMSG._serialized_end=4759
# @@protoc_insertion_point(module_scope)
diff --git a/cai/pb/im/msg/service/comm_elem/comm_elem_pb2.pyi b/cai/pb/im/msg/service/comm_elem/comm_elem_pb2.pyi
index 2c4f00ae..62fe8f33 100644
--- a/cai/pb/im/msg/service/comm_elem/comm_elem_pb2.pyi
+++ b/cai/pb/im/msg/service/comm_elem/comm_elem_pb2.pyi
@@ -39,10 +39,10 @@ from typing_extensions import (
)
-DESCRIPTOR: FileDescriptor = ...
+DESCRIPTOR: FileDescriptor
class MsgElemInfo_servtype1(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
REWARD_ID_FIELD_NUMBER: int
SENDER_UIN_FIELD_NUMBER: int
PIC_TYPE_FIELD_NUMBER: int
@@ -55,39 +55,38 @@ class MsgElemInfo_servtype1(Message):
VIDEO_DURATION_FIELD_NUMBER: int
SEQ_FIELD_NUMBER: int
REWARD_TYPE_EXT_FIELD_NUMBER: int
- reward_id: bytes = ...
- sender_uin: int = ...
- pic_type: int = ...
- reward_money: int = ...
- url: bytes = ...
- content: bytes = ...
- create_timestamp: int = ...
- status: int = ...
- size: int = ...
- video_duration: int = ...
- seq: int = ...
- reward_type_ext: int = ...
-
- def __init__(self,
- *,
- reward_id : Optional[bytes] = ...,
- sender_uin : Optional[int] = ...,
- pic_type : Optional[int] = ...,
- reward_money : Optional[int] = ...,
- url : Optional[bytes] = ...,
- content : Optional[bytes] = ...,
- create_timestamp : Optional[int] = ...,
- status : Optional[int] = ...,
- size : Optional[int] = ...,
- video_duration : Optional[int] = ...,
- seq : Optional[int] = ...,
- reward_type_ext : Optional[int] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal[u"content",b"content",u"create_timestamp",b"create_timestamp",u"pic_type",b"pic_type",u"reward_id",b"reward_id",u"reward_money",b"reward_money",u"reward_type_ext",b"reward_type_ext",u"sender_uin",b"sender_uin",u"seq",b"seq",u"size",b"size",u"status",b"status",u"url",b"url",u"video_duration",b"video_duration"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"content",b"content",u"create_timestamp",b"create_timestamp",u"pic_type",b"pic_type",u"reward_id",b"reward_id",u"reward_money",b"reward_money",u"reward_type_ext",b"reward_type_ext",u"sender_uin",b"sender_uin",u"seq",b"seq",u"size",b"size",u"status",b"status",u"url",b"url",u"video_duration",b"video_duration"]) -> None: ...
+ reward_id: bytes
+ sender_uin: int
+ pic_type: int
+ reward_money: int
+ url: bytes
+ content: bytes
+ create_timestamp: int
+ status: int
+ size: int
+ video_duration: int
+ seq: int
+ reward_type_ext: int
+ def __init__(self,
+ *,
+ reward_id: Optional[bytes] = ...,
+ sender_uin: Optional[int] = ...,
+ pic_type: Optional[int] = ...,
+ reward_money: Optional[int] = ...,
+ url: Optional[bytes] = ...,
+ content: Optional[bytes] = ...,
+ create_timestamp: Optional[int] = ...,
+ status: Optional[int] = ...,
+ size: Optional[int] = ...,
+ video_duration: Optional[int] = ...,
+ seq: Optional[int] = ...,
+ reward_type_ext: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["content",b"content","create_timestamp",b"create_timestamp","pic_type",b"pic_type","reward_id",b"reward_id","reward_money",b"reward_money","reward_type_ext",b"reward_type_ext","sender_uin",b"sender_uin","seq",b"seq","size",b"size","status",b"status","url",b"url","video_duration",b"video_duration"]) -> bool: ...
+ def ClearField(self, field_name: Literal["content",b"content","create_timestamp",b"create_timestamp","pic_type",b"pic_type","reward_id",b"reward_id","reward_money",b"reward_money","reward_type_ext",b"reward_type_ext","sender_uin",b"sender_uin","seq",b"seq","size",b"size","status",b"status","url",b"url","video_duration",b"video_duration"]) -> None: ...
class MsgElemInfo_servtype11(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
RES_ID_FIELD_NUMBER: int
RES_MD5_FIELD_NUMBER: int
RESERVE_INFO1_FIELD_NUMBER: int
@@ -96,61 +95,58 @@ class MsgElemInfo_servtype11(Message):
DOODLE_GIF_ID_FIELD_NUMBER: int
DOODLE_URL_FIELD_NUMBER: int
DOODLE_MD5_FIELD_NUMBER: int
- res_id: bytes = ...
- res_md5: bytes = ...
- reserve_info1: bytes = ...
- reserve_info2: bytes = ...
- doodle_data_offset: int = ...
- doodle_gif_id: int = ...
- doodle_url: bytes = ...
- doodle_md5: bytes = ...
-
- def __init__(self,
- *,
- res_id : Optional[bytes] = ...,
- res_md5 : Optional[bytes] = ...,
- reserve_info1 : Optional[bytes] = ...,
- reserve_info2 : Optional[bytes] = ...,
- doodle_data_offset : Optional[int] = ...,
- doodle_gif_id : Optional[int] = ...,
- doodle_url : Optional[bytes] = ...,
- doodle_md5 : Optional[bytes] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal[u"doodle_data_offset",b"doodle_data_offset",u"doodle_gif_id",b"doodle_gif_id",u"doodle_md5",b"doodle_md5",u"doodle_url",b"doodle_url",u"res_id",b"res_id",u"res_md5",b"res_md5",u"reserve_info1",b"reserve_info1",u"reserve_info2",b"reserve_info2"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"doodle_data_offset",b"doodle_data_offset",u"doodle_gif_id",b"doodle_gif_id",u"doodle_md5",b"doodle_md5",u"doodle_url",b"doodle_url",u"res_id",b"res_id",u"res_md5",b"res_md5",u"reserve_info1",b"reserve_info1",u"reserve_info2",b"reserve_info2"]) -> None: ...
+ res_id: bytes
+ res_md5: bytes
+ reserve_info1: bytes
+ reserve_info2: bytes
+ doodle_data_offset: int
+ doodle_gif_id: int
+ doodle_url: bytes
+ doodle_md5: bytes
+ def __init__(self,
+ *,
+ res_id: Optional[bytes] = ...,
+ res_md5: Optional[bytes] = ...,
+ reserve_info1: Optional[bytes] = ...,
+ reserve_info2: Optional[bytes] = ...,
+ doodle_data_offset: Optional[int] = ...,
+ doodle_gif_id: Optional[int] = ...,
+ doodle_url: Optional[bytes] = ...,
+ doodle_md5: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["doodle_data_offset",b"doodle_data_offset","doodle_gif_id",b"doodle_gif_id","doodle_md5",b"doodle_md5","doodle_url",b"doodle_url","res_id",b"res_id","res_md5",b"res_md5","reserve_info1",b"reserve_info1","reserve_info2",b"reserve_info2"]) -> bool: ...
+ def ClearField(self, field_name: Literal["doodle_data_offset",b"doodle_data_offset","doodle_gif_id",b"doodle_gif_id","doodle_md5",b"doodle_md5","doodle_url",b"doodle_url","res_id",b"res_id","res_md5",b"res_md5","reserve_info1",b"reserve_info1","reserve_info2",b"reserve_info2"]) -> None: ...
class MsgElemInfo_servtype13(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
SYS_HEAD_ID_FIELD_NUMBER: int
HEAD_FLAG_FIELD_NUMBER: int
- sys_head_id: int = ...
- head_flag: int = ...
-
+ sys_head_id: int
+ head_flag: int
def __init__(self,
*,
- sys_head_id : Optional[int] = ...,
- head_flag : Optional[int] = ...,
+ sys_head_id: Optional[int] = ...,
+ head_flag: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"head_flag",b"head_flag",u"sys_head_id",b"sys_head_id"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"head_flag",b"head_flag",u"sys_head_id",b"sys_head_id"]) -> None: ...
+ def HasField(self, field_name: Literal["head_flag",b"head_flag","sys_head_id",b"sys_head_id"]) -> bool: ...
+ def ClearField(self, field_name: Literal["head_flag",b"head_flag","sys_head_id",b"sys_head_id"]) -> None: ...
class MsgElemInfo_servtype14(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
ID_FIELD_NUMBER: int
RESERVE_INFO_FIELD_NUMBER: int
- id: int = ...
- reserve_info: bytes = ...
-
+ id: int
+ reserve_info: bytes
def __init__(self,
*,
- id : Optional[int] = ...,
- reserve_info : Optional[bytes] = ...,
+ id: Optional[int] = ...,
+ reserve_info: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"id",b"id",u"reserve_info",b"reserve_info"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"id",b"id",u"reserve_info",b"reserve_info"]) -> None: ...
+ def HasField(self, field_name: Literal["id",b"id","reserve_info",b"reserve_info"]) -> bool: ...
+ def ClearField(self, field_name: Literal["id",b"id","reserve_info",b"reserve_info"]) -> None: ...
class MsgElemInfo_servtype15(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
VID_FIELD_NUMBER: int
COVER_FIELD_NUMBER: int
TITLE_FIELD_NUMBER: int
@@ -159,31 +155,30 @@ class MsgElemInfo_servtype15(Message):
COMMENT_CONTENT_FIELD_NUMBER: int
AUTHOR_FIELD_NUMBER: int
CTR_VERSION_FIELD_NUMBER: int
- vid: bytes = ...
- cover: bytes = ...
- title: bytes = ...
- summary: bytes = ...
- create_time: int = ...
- comment_content: bytes = ...
- author: int = ...
- ctr_version: int = ...
-
- def __init__(self,
- *,
- vid : Optional[bytes] = ...,
- cover : Optional[bytes] = ...,
- title : Optional[bytes] = ...,
- summary : Optional[bytes] = ...,
- create_time : Optional[int] = ...,
- comment_content : Optional[bytes] = ...,
- author : Optional[int] = ...,
- ctr_version : Optional[int] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal[u"author",b"author",u"comment_content",b"comment_content",u"cover",b"cover",u"create_time",b"create_time",u"ctr_version",b"ctr_version",u"summary",b"summary",u"title",b"title",u"vid",b"vid"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"author",b"author",u"comment_content",b"comment_content",u"cover",b"cover",u"create_time",b"create_time",u"ctr_version",b"ctr_version",u"summary",b"summary",u"title",b"title",u"vid",b"vid"]) -> None: ...
+ vid: bytes
+ cover: bytes
+ title: bytes
+ summary: bytes
+ create_time: int
+ comment_content: bytes
+ author: int
+ ctr_version: int
+ def __init__(self,
+ *,
+ vid: Optional[bytes] = ...,
+ cover: Optional[bytes] = ...,
+ title: Optional[bytes] = ...,
+ summary: Optional[bytes] = ...,
+ create_time: Optional[int] = ...,
+ comment_content: Optional[bytes] = ...,
+ author: Optional[int] = ...,
+ ctr_version: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["author",b"author","comment_content",b"comment_content","cover",b"cover","create_time",b"create_time","ctr_version",b"ctr_version","summary",b"summary","title",b"title","vid",b"vid"]) -> bool: ...
+ def ClearField(self, field_name: Literal["author",b"author","comment_content",b"comment_content","cover",b"cover","create_time",b"create_time","ctr_version",b"ctr_version","summary",b"summary","title",b"title","vid",b"vid"]) -> None: ...
class MsgElemInfo_servtype16(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
UID_FIELD_NUMBER: int
UNION_ID_FIELD_NUMBER: int
STORY_ID_FIELD_NUMBER: int
@@ -196,75 +191,72 @@ class MsgElemInfo_servtype16(Message):
SOURCE_ACTION_TYPE_FIELD_NUMBER: int
SOURCE_ACTION_DATA_FIELD_NUMBER: int
CTR_VERSION_FIELD_NUMBER: int
- uid: int = ...
- union_id: bytes = ...
- story_id: bytes = ...
- md5: bytes = ...
- thumb_url: bytes = ...
- doodle_url: bytes = ...
- video_width: int = ...
- video_height: int = ...
- source_name: bytes = ...
- source_action_type: bytes = ...
- source_action_data: bytes = ...
- ctr_version: int = ...
-
- def __init__(self,
- *,
- uid : Optional[int] = ...,
- union_id : Optional[bytes] = ...,
- story_id : Optional[bytes] = ...,
- md5 : Optional[bytes] = ...,
- thumb_url : Optional[bytes] = ...,
- doodle_url : Optional[bytes] = ...,
- video_width : Optional[int] = ...,
- video_height : Optional[int] = ...,
- source_name : Optional[bytes] = ...,
- source_action_type : Optional[bytes] = ...,
- source_action_data : Optional[bytes] = ...,
- ctr_version : Optional[int] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal[u"ctr_version",b"ctr_version",u"doodle_url",b"doodle_url",u"md5",b"md5",u"source_action_data",b"source_action_data",u"source_action_type",b"source_action_type",u"source_name",b"source_name",u"story_id",b"story_id",u"thumb_url",b"thumb_url",u"uid",b"uid",u"union_id",b"union_id",u"video_height",b"video_height",u"video_width",b"video_width"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"ctr_version",b"ctr_version",u"doodle_url",b"doodle_url",u"md5",b"md5",u"source_action_data",b"source_action_data",u"source_action_type",b"source_action_type",u"source_name",b"source_name",u"story_id",b"story_id",u"thumb_url",b"thumb_url",u"uid",b"uid",u"union_id",b"union_id",u"video_height",b"video_height",u"video_width",b"video_width"]) -> None: ...
+ uid: int
+ union_id: bytes
+ story_id: bytes
+ md5: bytes
+ thumb_url: bytes
+ doodle_url: bytes
+ video_width: int
+ video_height: int
+ source_name: bytes
+ source_action_type: bytes
+ source_action_data: bytes
+ ctr_version: int
+ def __init__(self,
+ *,
+ uid: Optional[int] = ...,
+ union_id: Optional[bytes] = ...,
+ story_id: Optional[bytes] = ...,
+ md5: Optional[bytes] = ...,
+ thumb_url: Optional[bytes] = ...,
+ doodle_url: Optional[bytes] = ...,
+ video_width: Optional[int] = ...,
+ video_height: Optional[int] = ...,
+ source_name: Optional[bytes] = ...,
+ source_action_type: Optional[bytes] = ...,
+ source_action_data: Optional[bytes] = ...,
+ ctr_version: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["ctr_version",b"ctr_version","doodle_url",b"doodle_url","md5",b"md5","source_action_data",b"source_action_data","source_action_type",b"source_action_type","source_name",b"source_name","story_id",b"story_id","thumb_url",b"thumb_url","uid",b"uid","union_id",b"union_id","video_height",b"video_height","video_width",b"video_width"]) -> bool: ...
+ def ClearField(self, field_name: Literal["ctr_version",b"ctr_version","doodle_url",b"doodle_url","md5",b"md5","source_action_data",b"source_action_data","source_action_type",b"source_action_type","source_name",b"source_name","story_id",b"story_id","thumb_url",b"thumb_url","uid",b"uid","union_id",b"union_id","video_height",b"video_height","video_width",b"video_width"]) -> None: ...
class MsgElemInfo_servtype18(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
CURRENT_AMOUNT_FIELD_NUMBER: int
TOTAL_AMOUNT_FIELD_NUMBER: int
LISTID_FIELD_NUMBER: int
AUTH_KEY_FIELD_NUMBER: int
NUMBER_FIELD_NUMBER: int
- current_amount: int = ...
- total_amount: int = ...
- listid: bytes = ...
- auth_key: bytes = ...
- number: int = ...
-
+ current_amount: int
+ total_amount: int
+ listid: bytes
+ auth_key: bytes
+ number: int
def __init__(self,
*,
- current_amount : Optional[int] = ...,
- total_amount : Optional[int] = ...,
- listid : Optional[bytes] = ...,
- auth_key : Optional[bytes] = ...,
- number : Optional[int] = ...,
+ current_amount: Optional[int] = ...,
+ total_amount: Optional[int] = ...,
+ listid: Optional[bytes] = ...,
+ auth_key: Optional[bytes] = ...,
+ number: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"auth_key",b"auth_key",u"current_amount",b"current_amount",u"listid",b"listid",u"number",b"number",u"total_amount",b"total_amount"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"auth_key",b"auth_key",u"current_amount",b"current_amount",u"listid",b"listid",u"number",b"number",u"total_amount",b"total_amount"]) -> None: ...
+ def HasField(self, field_name: Literal["auth_key",b"auth_key","current_amount",b"current_amount","listid",b"listid","number",b"number","total_amount",b"total_amount"]) -> bool: ...
+ def ClearField(self, field_name: Literal["auth_key",b"auth_key","current_amount",b"current_amount","listid",b"listid","number",b"number","total_amount",b"total_amount"]) -> None: ...
class MsgElemInfo_servtype19(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
DATA_FIELD_NUMBER: int
- data: bytes = ...
-
+ data: bytes
def __init__(self,
*,
- data : Optional[bytes] = ...,
+ data: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"data",b"data"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"data",b"data"]) -> None: ...
+ def HasField(self, field_name: Literal["data",b"data"]) -> bool: ...
+ def ClearField(self, field_name: Literal["data",b"data"]) -> None: ...
class MsgElemInfo_servtype2(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
POKE_TYPE_FIELD_NUMBER: int
POKE_SUMMARY_FIELD_NUMBER: int
DOUBLE_HIT_FIELD_NUMBER: int
@@ -275,47 +267,45 @@ class MsgElemInfo_servtype2(Message):
MSG_TYPE_FIELD_NUMBER: int
FACE_BUBBLE_COUNT_FIELD_NUMBER: int
POKE_FLAG_FIELD_NUMBER: int
- poke_type: int = ...
- poke_summary: bytes = ...
- double_hit: int = ...
- vaspoke_id: int = ...
- vaspoke_name: bytes = ...
- vaspoke_minver: bytes = ...
- poke_strength: int = ...
- msg_type: int = ...
- face_bubble_count: int = ...
- poke_flag: int = ...
-
- def __init__(self,
- *,
- poke_type : Optional[int] = ...,
- poke_summary : Optional[bytes] = ...,
- double_hit : Optional[int] = ...,
- vaspoke_id : Optional[int] = ...,
- vaspoke_name : Optional[bytes] = ...,
- vaspoke_minver : Optional[bytes] = ...,
- poke_strength : Optional[int] = ...,
- msg_type : Optional[int] = ...,
- face_bubble_count : Optional[int] = ...,
- poke_flag : Optional[int] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal[u"double_hit",b"double_hit",u"face_bubble_count",b"face_bubble_count",u"msg_type",b"msg_type",u"poke_flag",b"poke_flag",u"poke_strength",b"poke_strength",u"poke_summary",b"poke_summary",u"poke_type",b"poke_type",u"vaspoke_id",b"vaspoke_id",u"vaspoke_minver",b"vaspoke_minver",u"vaspoke_name",b"vaspoke_name"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"double_hit",b"double_hit",u"face_bubble_count",b"face_bubble_count",u"msg_type",b"msg_type",u"poke_flag",b"poke_flag",u"poke_strength",b"poke_strength",u"poke_summary",b"poke_summary",u"poke_type",b"poke_type",u"vaspoke_id",b"vaspoke_id",u"vaspoke_minver",b"vaspoke_minver",u"vaspoke_name",b"vaspoke_name"]) -> None: ...
+ poke_type: int
+ poke_summary: bytes
+ double_hit: int
+ vaspoke_id: int
+ vaspoke_name: bytes
+ vaspoke_minver: bytes
+ poke_strength: int
+ msg_type: int
+ face_bubble_count: int
+ poke_flag: int
+ def __init__(self,
+ *,
+ poke_type: Optional[int] = ...,
+ poke_summary: Optional[bytes] = ...,
+ double_hit: Optional[int] = ...,
+ vaspoke_id: Optional[int] = ...,
+ vaspoke_name: Optional[bytes] = ...,
+ vaspoke_minver: Optional[bytes] = ...,
+ poke_strength: Optional[int] = ...,
+ msg_type: Optional[int] = ...,
+ face_bubble_count: Optional[int] = ...,
+ poke_flag: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["double_hit",b"double_hit","face_bubble_count",b"face_bubble_count","msg_type",b"msg_type","poke_flag",b"poke_flag","poke_strength",b"poke_strength","poke_summary",b"poke_summary","poke_type",b"poke_type","vaspoke_id",b"vaspoke_id","vaspoke_minver",b"vaspoke_minver","vaspoke_name",b"vaspoke_name"]) -> bool: ...
+ def ClearField(self, field_name: Literal["double_hit",b"double_hit","face_bubble_count",b"face_bubble_count","msg_type",b"msg_type","poke_flag",b"poke_flag","poke_strength",b"poke_strength","poke_summary",b"poke_summary","poke_type",b"poke_type","vaspoke_id",b"vaspoke_id","vaspoke_minver",b"vaspoke_minver","vaspoke_name",b"vaspoke_name"]) -> None: ...
class MsgElemInfo_servtype20(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
DATA_FIELD_NUMBER: int
- data: bytes = ...
-
+ data: bytes
def __init__(self,
*,
- data : Optional[bytes] = ...,
+ data: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"data",b"data"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"data",b"data"]) -> None: ...
+ def HasField(self, field_name: Literal["data",b"data"]) -> bool: ...
+ def ClearField(self, field_name: Literal["data",b"data"]) -> None: ...
class MsgElemInfo_servtype21(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
TOPIC_ID_FIELD_NUMBER: int
CONFESSOR_UIN_FIELD_NUMBER: int
CONFESSOR_NICK_FIELD_NUMBER: int
@@ -326,41 +316,37 @@ class MsgElemInfo_servtype21(Message):
CONFESS_TIME_FIELD_NUMBER: int
GROUP_CONFESS_MSG_FIELD_NUMBER: int
GROUP_CONFESS_CTX_FIELD_NUMBER: int
- topic_id: int = ...
- confessor_uin: int = ...
- confessor_nick: bytes = ...
- confessor_sex: int = ...
- sysmsg_flag: int = ...
- topic: bytes = ...
- confess_time: int = ...
-
+ topic_id: int
+ confessor_uin: int
+ confessor_nick: bytes
+ confessor_sex: int
+ sysmsg_flag: int
@property
def c2_c_confess_ctx(self) -> C2CConfessContext: ...
-
+ topic: bytes
+ confess_time: int
@property
def group_confess_msg(self) -> GroupConfessMsg: ...
-
@property
def group_confess_ctx(self) -> GroupConfessContext: ...
-
def __init__(self,
*,
- topic_id : Optional[int] = ...,
- confessor_uin : Optional[int] = ...,
- confessor_nick : Optional[bytes] = ...,
- confessor_sex : Optional[int] = ...,
- sysmsg_flag : Optional[int] = ...,
- c2_c_confess_ctx : Optional[C2CConfessContext] = ...,
- topic : Optional[bytes] = ...,
- confess_time : Optional[int] = ...,
- group_confess_msg : Optional[GroupConfessMsg] = ...,
- group_confess_ctx : Optional[GroupConfessContext] = ...,
+ topic_id: Optional[int] = ...,
+ confessor_uin: Optional[int] = ...,
+ confessor_nick: Optional[bytes] = ...,
+ confessor_sex: Optional[int] = ...,
+ sysmsg_flag: Optional[int] = ...,
+ c2_c_confess_ctx: Optional[C2CConfessContext] = ...,
+ topic: Optional[bytes] = ...,
+ confess_time: Optional[int] = ...,
+ group_confess_msg: Optional[GroupConfessMsg] = ...,
+ group_confess_ctx: Optional[GroupConfessContext] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"c2_c_confess_ctx",b"c2_c_confess_ctx",u"confess_time",b"confess_time",u"confessor_nick",b"confessor_nick",u"confessor_sex",b"confessor_sex",u"confessor_uin",b"confessor_uin",u"group_confess_ctx",b"group_confess_ctx",u"group_confess_msg",b"group_confess_msg",u"sysmsg_flag",b"sysmsg_flag",u"topic",b"topic",u"topic_id",b"topic_id"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"c2_c_confess_ctx",b"c2_c_confess_ctx",u"confess_time",b"confess_time",u"confessor_nick",b"confessor_nick",u"confessor_sex",b"confessor_sex",u"confessor_uin",b"confessor_uin",u"group_confess_ctx",b"group_confess_ctx",u"group_confess_msg",b"group_confess_msg",u"sysmsg_flag",b"sysmsg_flag",u"topic",b"topic",u"topic_id",b"topic_id"]) -> None: ...
+ def HasField(self, field_name: Literal["c2_c_confess_ctx",b"c2_c_confess_ctx","confess_time",b"confess_time","confessor_nick",b"confessor_nick","confessor_sex",b"confessor_sex","confessor_uin",b"confessor_uin","group_confess_ctx",b"group_confess_ctx","group_confess_msg",b"group_confess_msg","sysmsg_flag",b"sysmsg_flag","topic",b"topic","topic_id",b"topic_id"]) -> bool: ...
+ def ClearField(self, field_name: Literal["c2_c_confess_ctx",b"c2_c_confess_ctx","confess_time",b"confess_time","confessor_nick",b"confessor_nick","confessor_sex",b"confessor_sex","confessor_uin",b"confessor_uin","group_confess_ctx",b"group_confess_ctx","group_confess_msg",b"group_confess_msg","sysmsg_flag",b"sysmsg_flag","topic",b"topic","topic_id",b"topic_id"]) -> None: ...
class C2CConfessContext(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
CONFESSOR_UIN_FIELD_NUMBER: int
CONFESS_TO_UIN_FIELD_NUMBER: int
SEND_UIN_FIELD_NUMBER: int
@@ -373,39 +359,38 @@ class C2CConfessContext(Message):
BIZ_TYPE_FIELD_NUMBER: int
CONFESS_NUM_FIELD_NUMBER: int
CONFESS_TO_SEX_FIELD_NUMBER: int
- confessor_uin: int = ...
- confess_to_uin: int = ...
- send_uin: int = ...
- confessor_nick: bytes = ...
- confess: bytes = ...
- bg_type: int = ...
- topic_id: int = ...
- confess_time: int = ...
- confessor_sex: int = ...
- biz_type: int = ...
- confess_num: int = ...
- confess_to_sex: int = ...
-
- def __init__(self,
- *,
- confessor_uin : Optional[int] = ...,
- confess_to_uin : Optional[int] = ...,
- send_uin : Optional[int] = ...,
- confessor_nick : Optional[bytes] = ...,
- confess : Optional[bytes] = ...,
- bg_type : Optional[int] = ...,
- topic_id : Optional[int] = ...,
- confess_time : Optional[int] = ...,
- confessor_sex : Optional[int] = ...,
- biz_type : Optional[int] = ...,
- confess_num : Optional[int] = ...,
- confess_to_sex : Optional[int] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal[u"bg_type",b"bg_type",u"biz_type",b"biz_type",u"confess",b"confess",u"confess_num",b"confess_num",u"confess_time",b"confess_time",u"confess_to_sex",b"confess_to_sex",u"confess_to_uin",b"confess_to_uin",u"confessor_nick",b"confessor_nick",u"confessor_sex",b"confessor_sex",u"confessor_uin",b"confessor_uin",u"send_uin",b"send_uin",u"topic_id",b"topic_id"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"bg_type",b"bg_type",u"biz_type",b"biz_type",u"confess",b"confess",u"confess_num",b"confess_num",u"confess_time",b"confess_time",u"confess_to_sex",b"confess_to_sex",u"confess_to_uin",b"confess_to_uin",u"confessor_nick",b"confessor_nick",u"confessor_sex",b"confessor_sex",u"confessor_uin",b"confessor_uin",u"send_uin",b"send_uin",u"topic_id",b"topic_id"]) -> None: ...
+ confessor_uin: int
+ confess_to_uin: int
+ send_uin: int
+ confessor_nick: bytes
+ confess: bytes
+ bg_type: int
+ topic_id: int
+ confess_time: int
+ confessor_sex: int
+ biz_type: int
+ confess_num: int
+ confess_to_sex: int
+ def __init__(self,
+ *,
+ confessor_uin: Optional[int] = ...,
+ confess_to_uin: Optional[int] = ...,
+ send_uin: Optional[int] = ...,
+ confessor_nick: Optional[bytes] = ...,
+ confess: Optional[bytes] = ...,
+ bg_type: Optional[int] = ...,
+ topic_id: Optional[int] = ...,
+ confess_time: Optional[int] = ...,
+ confessor_sex: Optional[int] = ...,
+ biz_type: Optional[int] = ...,
+ confess_num: Optional[int] = ...,
+ confess_to_sex: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["bg_type",b"bg_type","biz_type",b"biz_type","confess",b"confess","confess_num",b"confess_num","confess_time",b"confess_time","confess_to_sex",b"confess_to_sex","confess_to_uin",b"confess_to_uin","confessor_nick",b"confessor_nick","confessor_sex",b"confessor_sex","confessor_uin",b"confessor_uin","send_uin",b"send_uin","topic_id",b"topic_id"]) -> bool: ...
+ def ClearField(self, field_name: Literal["bg_type",b"bg_type","biz_type",b"biz_type","confess",b"confess","confess_num",b"confess_num","confess_time",b"confess_time","confess_to_sex",b"confess_to_sex","confess_to_uin",b"confess_to_uin","confessor_nick",b"confessor_nick","confessor_sex",b"confessor_sex","confessor_uin",b"confessor_uin","send_uin",b"send_uin","topic_id",b"topic_id"]) -> None: ...
class GroupConfessContext(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
CONFESSOR_UIN_FIELD_NUMBER: int
CONFESS_TO_UIN_FIELD_NUMBER: int
SEND_UIN_FIELD_NUMBER: int
@@ -416,136 +401,127 @@ class GroupConfessContext(Message):
CONFESS_TIME_FIELD_NUMBER: int
CONFESS_TO_NICK_TYPE_FIELD_NUMBER: int
CONFESSOR_NICK_FIELD_NUMBER: int
- confessor_uin: int = ...
- confess_to_uin: int = ...
- send_uin: int = ...
- confessor_sex: int = ...
- confess_to_nick: bytes = ...
- topic: bytes = ...
- topic_id: int = ...
- confess_time: int = ...
- confess_to_nick_type: int = ...
- confessor_nick: bytes = ...
-
- def __init__(self,
- *,
- confessor_uin : Optional[int] = ...,
- confess_to_uin : Optional[int] = ...,
- send_uin : Optional[int] = ...,
- confessor_sex : Optional[int] = ...,
- confess_to_nick : Optional[bytes] = ...,
- topic : Optional[bytes] = ...,
- topic_id : Optional[int] = ...,
- confess_time : Optional[int] = ...,
- confess_to_nick_type : Optional[int] = ...,
- confessor_nick : Optional[bytes] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal[u"confess_time",b"confess_time",u"confess_to_nick",b"confess_to_nick",u"confess_to_nick_type",b"confess_to_nick_type",u"confess_to_uin",b"confess_to_uin",u"confessor_nick",b"confessor_nick",u"confessor_sex",b"confessor_sex",u"confessor_uin",b"confessor_uin",u"send_uin",b"send_uin",u"topic",b"topic",u"topic_id",b"topic_id"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"confess_time",b"confess_time",u"confess_to_nick",b"confess_to_nick",u"confess_to_nick_type",b"confess_to_nick_type",u"confess_to_uin",b"confess_to_uin",u"confessor_nick",b"confessor_nick",u"confessor_sex",b"confessor_sex",u"confessor_uin",b"confessor_uin",u"send_uin",b"send_uin",u"topic",b"topic",u"topic_id",b"topic_id"]) -> None: ...
+ confessor_uin: int
+ confess_to_uin: int
+ send_uin: int
+ confessor_sex: int
+ confess_to_nick: bytes
+ topic: bytes
+ topic_id: int
+ confess_time: int
+ confess_to_nick_type: int
+ confessor_nick: bytes
+ def __init__(self,
+ *,
+ confessor_uin: Optional[int] = ...,
+ confess_to_uin: Optional[int] = ...,
+ send_uin: Optional[int] = ...,
+ confessor_sex: Optional[int] = ...,
+ confess_to_nick: Optional[bytes] = ...,
+ topic: Optional[bytes] = ...,
+ topic_id: Optional[int] = ...,
+ confess_time: Optional[int] = ...,
+ confess_to_nick_type: Optional[int] = ...,
+ confessor_nick: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["confess_time",b"confess_time","confess_to_nick",b"confess_to_nick","confess_to_nick_type",b"confess_to_nick_type","confess_to_uin",b"confess_to_uin","confessor_nick",b"confessor_nick","confessor_sex",b"confessor_sex","confessor_uin",b"confessor_uin","send_uin",b"send_uin","topic",b"topic","topic_id",b"topic_id"]) -> bool: ...
+ def ClearField(self, field_name: Literal["confess_time",b"confess_time","confess_to_nick",b"confess_to_nick","confess_to_nick_type",b"confess_to_nick_type","confess_to_uin",b"confess_to_uin","confessor_nick",b"confessor_nick","confessor_sex",b"confessor_sex","confessor_uin",b"confessor_uin","send_uin",b"send_uin","topic",b"topic","topic_id",b"topic_id"]) -> None: ...
class GroupConfessItem(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
TOPIC_ID_FIELD_NUMBER: int
CONFESS_TO_UIN_FIELD_NUMBER: int
CONFESS_TO_NICK_FIELD_NUMBER: int
TOPIC_FIELD_NUMBER: int
CONFESS_TO_NICK_TYPE_FIELD_NUMBER: int
- topic_id: int = ...
- confess_to_uin: int = ...
- confess_to_nick: bytes = ...
- topic: bytes = ...
- confess_to_nick_type: int = ...
-
+ topic_id: int
+ confess_to_uin: int
+ confess_to_nick: bytes
+ topic: bytes
+ confess_to_nick_type: int
def __init__(self,
*,
- topic_id : Optional[int] = ...,
- confess_to_uin : Optional[int] = ...,
- confess_to_nick : Optional[bytes] = ...,
- topic : Optional[bytes] = ...,
- confess_to_nick_type : Optional[int] = ...,
+ topic_id: Optional[int] = ...,
+ confess_to_uin: Optional[int] = ...,
+ confess_to_nick: Optional[bytes] = ...,
+ topic: Optional[bytes] = ...,
+ confess_to_nick_type: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"confess_to_nick",b"confess_to_nick",u"confess_to_nick_type",b"confess_to_nick_type",u"confess_to_uin",b"confess_to_uin",u"topic",b"topic",u"topic_id",b"topic_id"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"confess_to_nick",b"confess_to_nick",u"confess_to_nick_type",b"confess_to_nick_type",u"confess_to_uin",b"confess_to_uin",u"topic",b"topic",u"topic_id",b"topic_id"]) -> None: ...
+ def HasField(self, field_name: Literal["confess_to_nick",b"confess_to_nick","confess_to_nick_type",b"confess_to_nick_type","confess_to_uin",b"confess_to_uin","topic",b"topic","topic_id",b"topic_id"]) -> bool: ...
+ def ClearField(self, field_name: Literal["confess_to_nick",b"confess_to_nick","confess_to_nick_type",b"confess_to_nick_type","confess_to_uin",b"confess_to_uin","topic",b"topic","topic_id",b"topic_id"]) -> None: ...
class GroupConfessMsg(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
CONFESS_TIME_FIELD_NUMBER: int
CONFESSOR_UIN_FIELD_NUMBER: int
CONFESSOR_SEX_FIELD_NUMBER: int
SYSMSG_FLAG_FIELD_NUMBER: int
CONFESS_ITEMS_FIELD_NUMBER: int
TOTAL_TOPIC_COUNT_FIELD_NUMBER: int
- confess_time: int = ...
- confessor_uin: int = ...
- confessor_sex: int = ...
- sysmsg_flag: int = ...
- total_topic_count: int = ...
-
+ confess_time: int
+ confessor_uin: int
+ confessor_sex: int
+ sysmsg_flag: int
@property
def confess_items(self) -> RepeatedCompositeFieldContainer[GroupConfessItem]: ...
-
+ total_topic_count: int
def __init__(self,
*,
- confess_time : Optional[int] = ...,
- confessor_uin : Optional[int] = ...,
- confessor_sex : Optional[int] = ...,
- sysmsg_flag : Optional[int] = ...,
- confess_items : Optional[Iterable[GroupConfessItem]] = ...,
- total_topic_count : Optional[int] = ...,
+ confess_time: Optional[int] = ...,
+ confessor_uin: Optional[int] = ...,
+ confessor_sex: Optional[int] = ...,
+ sysmsg_flag: Optional[int] = ...,
+ confess_items: Optional[Iterable[GroupConfessItem]] = ...,
+ total_topic_count: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"confess_time",b"confess_time",u"confessor_sex",b"confessor_sex",u"confessor_uin",b"confessor_uin",u"sysmsg_flag",b"sysmsg_flag",u"total_topic_count",b"total_topic_count"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"confess_items",b"confess_items",u"confess_time",b"confess_time",u"confessor_sex",b"confessor_sex",u"confessor_uin",b"confessor_uin",u"sysmsg_flag",b"sysmsg_flag",u"total_topic_count",b"total_topic_count"]) -> None: ...
+ def HasField(self, field_name: Literal["confess_time",b"confess_time","confessor_sex",b"confessor_sex","confessor_uin",b"confessor_uin","sysmsg_flag",b"sysmsg_flag","total_topic_count",b"total_topic_count"]) -> bool: ...
+ def ClearField(self, field_name: Literal["confess_items",b"confess_items","confess_time",b"confess_time","confessor_sex",b"confessor_sex","confessor_uin",b"confessor_uin","sysmsg_flag",b"sysmsg_flag","total_topic_count",b"total_topic_count"]) -> None: ...
class MsgElemInfo_servtype23(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
FACE_TYPE_FIELD_NUMBER: int
FACE_BUBBLE_COUNT_FIELD_NUMBER: int
FACE_SUMMARY_FIELD_NUMBER: int
FLAG_FIELD_NUMBER: int
OTHERS_FIELD_NUMBER: int
YELLOW_FACE_FIELD_NUMBER: int
- face_type: int = ...
- face_bubble_count: int = ...
- face_summary: bytes = ...
- flag: int = ...
- others: bytes = ...
-
+ face_type: int
+ face_bubble_count: int
+ face_summary: bytes
+ flag: int
+ others: bytes
@property
def yellow_face(self) -> MsgElemInfo_servtype33: ...
-
def __init__(self,
*,
- face_type : Optional[int] = ...,
- face_bubble_count : Optional[int] = ...,
- face_summary : Optional[bytes] = ...,
- flag : Optional[int] = ...,
- others : Optional[bytes] = ...,
- yellow_face : Optional[MsgElemInfo_servtype33] = ...,
+ face_type: Optional[int] = ...,
+ face_bubble_count: Optional[int] = ...,
+ face_summary: Optional[bytes] = ...,
+ flag: Optional[int] = ...,
+ others: Optional[bytes] = ...,
+ yellow_face: Optional[MsgElemInfo_servtype33] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"face_bubble_count",b"face_bubble_count",u"face_summary",b"face_summary",u"face_type",b"face_type",u"flag",b"flag",u"others",b"others",u"yellow_face",b"yellow_face"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"face_bubble_count",b"face_bubble_count",u"face_summary",b"face_summary",u"face_type",b"face_type",u"flag",b"flag",u"others",b"others",u"yellow_face",b"yellow_face"]) -> None: ...
+ def HasField(self, field_name: Literal["face_bubble_count",b"face_bubble_count","face_summary",b"face_summary","face_type",b"face_type","flag",b"flag","others",b"others","yellow_face",b"yellow_face"]) -> bool: ...
+ def ClearField(self, field_name: Literal["face_bubble_count",b"face_bubble_count","face_summary",b"face_summary","face_type",b"face_type","flag",b"flag","others",b"others","yellow_face",b"yellow_face"]) -> None: ...
class MsgElemInfo_servtype24(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
LIMIT_CHAT_ENTER_FIELD_NUMBER: int
LIMIT_CHAT_EXIT_FIELD_NUMBER: int
-
@property
def limit_chat_enter(self) -> LimitChatEnter: ...
-
@property
def limit_chat_exit(self) -> LimitChatExit: ...
-
def __init__(self,
*,
- limit_chat_enter : Optional[LimitChatEnter] = ...,
- limit_chat_exit : Optional[LimitChatExit] = ...,
+ limit_chat_enter: Optional[LimitChatEnter] = ...,
+ limit_chat_exit: Optional[LimitChatExit] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"limit_chat_enter",b"limit_chat_enter",u"limit_chat_exit",b"limit_chat_exit"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"limit_chat_enter",b"limit_chat_enter",u"limit_chat_exit",b"limit_chat_exit"]) -> None: ...
+ def HasField(self, field_name: Literal["limit_chat_enter",b"limit_chat_enter","limit_chat_exit",b"limit_chat_exit"]) -> bool: ...
+ def ClearField(self, field_name: Literal["limit_chat_enter",b"limit_chat_enter","limit_chat_exit",b"limit_chat_exit"]) -> None: ...
class LimitChatEnter(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
TIPS_WORDING_FIELD_NUMBER: int
LEFT_CHAT_TIME_FIELD_NUMBER: int
MATCH_TS_FIELD_NUMBER: int
@@ -553,148 +529,136 @@ class LimitChatEnter(Message):
C2_C_EXPIRED_TIME_FIELD_NUMBER: int
READY_TS_FIELD_NUMBER: int
MATCH_NICK_FIELD_NUMBER: int
- tips_wording: bytes = ...
- left_chat_time: int = ...
- match_ts: int = ...
- match_expired_time: int = ...
- c2_c_expired_time: int = ...
- ready_ts: int = ...
- match_nick: bytes = ...
-
- def __init__(self,
- *,
- tips_wording : Optional[bytes] = ...,
- left_chat_time : Optional[int] = ...,
- match_ts : Optional[int] = ...,
- match_expired_time : Optional[int] = ...,
- c2_c_expired_time : Optional[int] = ...,
- ready_ts : Optional[int] = ...,
- match_nick : Optional[bytes] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal[u"c2_c_expired_time",b"c2_c_expired_time",u"left_chat_time",b"left_chat_time",u"match_expired_time",b"match_expired_time",u"match_nick",b"match_nick",u"match_ts",b"match_ts",u"ready_ts",b"ready_ts",u"tips_wording",b"tips_wording"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"c2_c_expired_time",b"c2_c_expired_time",u"left_chat_time",b"left_chat_time",u"match_expired_time",b"match_expired_time",u"match_nick",b"match_nick",u"match_ts",b"match_ts",u"ready_ts",b"ready_ts",u"tips_wording",b"tips_wording"]) -> None: ...
+ tips_wording: bytes
+ left_chat_time: int
+ match_ts: int
+ match_expired_time: int
+ c2_c_expired_time: int
+ ready_ts: int
+ match_nick: bytes
+ def __init__(self,
+ *,
+ tips_wording: Optional[bytes] = ...,
+ left_chat_time: Optional[int] = ...,
+ match_ts: Optional[int] = ...,
+ match_expired_time: Optional[int] = ...,
+ c2_c_expired_time: Optional[int] = ...,
+ ready_ts: Optional[int] = ...,
+ match_nick: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["c2_c_expired_time",b"c2_c_expired_time","left_chat_time",b"left_chat_time","match_expired_time",b"match_expired_time","match_nick",b"match_nick","match_ts",b"match_ts","ready_ts",b"ready_ts","tips_wording",b"tips_wording"]) -> bool: ...
+ def ClearField(self, field_name: Literal["c2_c_expired_time",b"c2_c_expired_time","left_chat_time",b"left_chat_time","match_expired_time",b"match_expired_time","match_nick",b"match_nick","match_ts",b"match_ts","ready_ts",b"ready_ts","tips_wording",b"tips_wording"]) -> None: ...
class LimitChatExit(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
EXIT_METHOD_FIELD_NUMBER: int
MATCH_TS_FIELD_NUMBER: int
- exit_method: int = ...
- match_ts: int = ...
-
+ exit_method: int
+ match_ts: int
def __init__(self,
*,
- exit_method : Optional[int] = ...,
- match_ts : Optional[int] = ...,
+ exit_method: Optional[int] = ...,
+ match_ts: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"exit_method",b"exit_method",u"match_ts",b"match_ts"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"exit_method",b"exit_method",u"match_ts",b"match_ts"]) -> None: ...
+ def HasField(self, field_name: Literal["exit_method",b"exit_method","match_ts",b"match_ts"]) -> bool: ...
+ def ClearField(self, field_name: Literal["exit_method",b"exit_method","match_ts",b"match_ts"]) -> None: ...
class MsgElemInfo_servtype27(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
VIDEO_FILE_FIELD_NUMBER: int
-
@property
def video_file(self) -> VideoFile: ...
-
def __init__(self,
*,
- video_file : Optional[VideoFile] = ...,
+ video_file: Optional[VideoFile] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"video_file",b"video_file"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"video_file",b"video_file"]) -> None: ...
+ def HasField(self, field_name: Literal["video_file",b"video_file"]) -> bool: ...
+ def ClearField(self, field_name: Literal["video_file",b"video_file"]) -> None: ...
class MsgElemInfo_servtype29(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
LUCKYBAG_MSG_FIELD_NUMBER: int
- luckybag_msg: bytes = ...
-
+ luckybag_msg: bytes
def __init__(self,
*,
- luckybag_msg : Optional[bytes] = ...,
+ luckybag_msg: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"luckybag_msg",b"luckybag_msg"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"luckybag_msg",b"luckybag_msg"]) -> None: ...
+ def HasField(self, field_name: Literal["luckybag_msg",b"luckybag_msg"]) -> bool: ...
+ def ClearField(self, field_name: Literal["luckybag_msg",b"luckybag_msg"]) -> None: ...
class MsgElemInfo_servtype3(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
FLASH_TROOP_PIC_FIELD_NUMBER: int
FLASH_C2_C_PIC_FIELD_NUMBER: int
-
@property
def flash_troop_pic(self) -> CustomFace: ...
-
@property
def flash_c2_c_pic(self) -> NotOnlineImage: ...
-
def __init__(self,
*,
- flash_troop_pic : Optional[CustomFace] = ...,
- flash_c2_c_pic : Optional[NotOnlineImage] = ...,
+ flash_troop_pic: Optional[CustomFace] = ...,
+ flash_c2_c_pic: Optional[NotOnlineImage] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"flash_c2_c_pic",b"flash_c2_c_pic",u"flash_troop_pic",b"flash_troop_pic"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"flash_c2_c_pic",b"flash_c2_c_pic",u"flash_troop_pic",b"flash_troop_pic"]) -> None: ...
+ def HasField(self, field_name: Literal["flash_c2_c_pic",b"flash_c2_c_pic","flash_troop_pic",b"flash_troop_pic"]) -> bool: ...
+ def ClearField(self, field_name: Literal["flash_c2_c_pic",b"flash_c2_c_pic","flash_troop_pic",b"flash_troop_pic"]) -> None: ...
class MsgElemInfo_servtype31(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
TEXT_FIELD_NUMBER: int
EXT_FIELD_NUMBER: int
- text: bytes = ...
- ext: bytes = ...
-
+ text: bytes
+ ext: bytes
def __init__(self,
*,
- text : Optional[bytes] = ...,
- ext : Optional[bytes] = ...,
+ text: Optional[bytes] = ...,
+ ext: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"ext",b"ext",u"text",b"text"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"ext",b"ext",u"text",b"text"]) -> None: ...
+ def HasField(self, field_name: Literal["ext",b"ext","text",b"text"]) -> bool: ...
+ def ClearField(self, field_name: Literal["ext",b"ext","text",b"text"]) -> None: ...
class MsgElemInfo_servtype33(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
INDEX_FIELD_NUMBER: int
TEXT_FIELD_NUMBER: int
COMPAT_FIELD_NUMBER: int
BUF_FIELD_NUMBER: int
- index: int = ...
- text: bytes = ...
- compat: bytes = ...
- buf: bytes = ...
-
+ index: int
+ text: bytes
+ compat: bytes
+ buf: bytes
def __init__(self,
*,
- index : Optional[int] = ...,
- text : Optional[bytes] = ...,
- compat : Optional[bytes] = ...,
- buf : Optional[bytes] = ...,
+ index: Optional[int] = ...,
+ text: Optional[bytes] = ...,
+ compat: Optional[bytes] = ...,
+ buf: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"buf",b"buf",u"compat",b"compat",u"index",b"index",u"text",b"text"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"buf",b"buf",u"compat",b"compat",u"index",b"index",u"text",b"text"]) -> None: ...
+ def HasField(self, field_name: Literal["buf",b"buf","compat",b"compat","index",b"index","text",b"text"]) -> bool: ...
+ def ClearField(self, field_name: Literal["buf",b"buf","compat",b"compat","index",b"index","text",b"text"]) -> None: ...
class MsgElemInfo_servtype34(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
FROM_NICKNAME_FIELD_NUMBER: int
PUSH_WINDOW_FLAG_FIELD_NUMBER: int
GAME_SESSION_FIELD_NUMBER: int
EXT_FIELD_NUMBER: int
- from_nickname: bytes = ...
- push_window_flag: int = ...
- ext: bytes = ...
-
+ from_nickname: bytes
+ push_window_flag: int
@property
def game_session(self) -> GameSession: ...
-
+ ext: bytes
def __init__(self,
*,
- from_nickname : Optional[bytes] = ...,
- push_window_flag : Optional[int] = ...,
- game_session : Optional[GameSession] = ...,
- ext : Optional[bytes] = ...,
+ from_nickname: Optional[bytes] = ...,
+ push_window_flag: Optional[int] = ...,
+ game_session: Optional[GameSession] = ...,
+ ext: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"ext",b"ext",u"from_nickname",b"from_nickname",u"game_session",b"game_session",u"push_window_flag",b"push_window_flag"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"ext",b"ext",u"from_nickname",b"from_nickname",u"game_session",b"game_session",u"push_window_flag",b"push_window_flag"]) -> None: ...
+ def HasField(self, field_name: Literal["ext",b"ext","from_nickname",b"from_nickname","game_session",b"game_session","push_window_flag",b"push_window_flag"]) -> bool: ...
+ def ClearField(self, field_name: Literal["ext",b"ext","from_nickname",b"from_nickname","game_session",b"game_session","push_window_flag",b"push_window_flag"]) -> None: ...
class GameSession(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
FROM_ROLE_ID_FIELD_NUMBER: int
FROM_OPEN_ID_FIELD_NUMBER: int
TO_ROLE_ID_FIELD_NUMBER: int
@@ -702,67 +666,63 @@ class GameSession(Message):
GAME_APPID_FIELD_NUMBER: int
FROM_TINY_ID_FIELD_NUMBER: int
TO_TINY_ID_FIELD_NUMBER: int
- from_role_id: bytes = ...
- from_open_id: bytes = ...
- to_role_id: bytes = ...
- to_open_id: bytes = ...
- game_appid: int = ...
- from_tiny_id: int = ...
- to_tiny_id: int = ...
-
- def __init__(self,
- *,
- from_role_id : Optional[bytes] = ...,
- from_open_id : Optional[bytes] = ...,
- to_role_id : Optional[bytes] = ...,
- to_open_id : Optional[bytes] = ...,
- game_appid : Optional[int] = ...,
- from_tiny_id : Optional[int] = ...,
- to_tiny_id : Optional[int] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal[u"from_open_id",b"from_open_id",u"from_role_id",b"from_role_id",u"from_tiny_id",b"from_tiny_id",u"game_appid",b"game_appid",u"to_open_id",b"to_open_id",u"to_role_id",b"to_role_id",u"to_tiny_id",b"to_tiny_id"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"from_open_id",b"from_open_id",u"from_role_id",b"from_role_id",u"from_tiny_id",b"from_tiny_id",u"game_appid",b"game_appid",u"to_open_id",b"to_open_id",u"to_role_id",b"to_role_id",u"to_tiny_id",b"to_tiny_id"]) -> None: ...
+ from_role_id: bytes
+ from_open_id: bytes
+ to_role_id: bytes
+ to_open_id: bytes
+ game_appid: int
+ from_tiny_id: int
+ to_tiny_id: int
+ def __init__(self,
+ *,
+ from_role_id: Optional[bytes] = ...,
+ from_open_id: Optional[bytes] = ...,
+ to_role_id: Optional[bytes] = ...,
+ to_open_id: Optional[bytes] = ...,
+ game_appid: Optional[int] = ...,
+ from_tiny_id: Optional[int] = ...,
+ to_tiny_id: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["from_open_id",b"from_open_id","from_role_id",b"from_role_id","from_tiny_id",b"from_tiny_id","game_appid",b"game_appid","to_open_id",b"to_open_id","to_role_id",b"to_role_id","to_tiny_id",b"to_tiny_id"]) -> bool: ...
+ def ClearField(self, field_name: Literal["from_open_id",b"from_open_id","from_role_id",b"from_role_id","from_tiny_id",b"from_tiny_id","game_appid",b"game_appid","to_open_id",b"to_open_id","to_role_id",b"to_role_id","to_tiny_id",b"to_tiny_id"]) -> None: ...
class MsgElemInfo_servtype35(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
TOKEN_FIELD_NUMBER: int
GLOBAL_PADID_FIELD_NUMBER: int
GET_REV_FIELD_NUMBER: int
HIS_EDIT_UIN_NUM_FIELD_NUMBER: int
- token: bytes = ...
- global_padid: bytes = ...
- get_rev: int = ...
- his_edit_uin_num: int = ...
-
+ token: bytes
+ global_padid: bytes
+ get_rev: int
+ his_edit_uin_num: int
def __init__(self,
*,
- token : Optional[bytes] = ...,
- global_padid : Optional[bytes] = ...,
- get_rev : Optional[int] = ...,
- his_edit_uin_num : Optional[int] = ...,
+ token: Optional[bytes] = ...,
+ global_padid: Optional[bytes] = ...,
+ get_rev: Optional[int] = ...,
+ his_edit_uin_num: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"get_rev",b"get_rev",u"global_padid",b"global_padid",u"his_edit_uin_num",b"his_edit_uin_num",u"token",b"token"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"get_rev",b"get_rev",u"global_padid",b"global_padid",u"his_edit_uin_num",b"his_edit_uin_num",u"token",b"token"]) -> None: ...
+ def HasField(self, field_name: Literal["get_rev",b"get_rev","global_padid",b"global_padid","his_edit_uin_num",b"his_edit_uin_num","token",b"token"]) -> bool: ...
+ def ClearField(self, field_name: Literal["get_rev",b"get_rev","global_padid",b"global_padid","his_edit_uin_num",b"his_edit_uin_num","token",b"token"]) -> None: ...
class MsgElemInfo_servtype4(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
IMSG_TYPE_FIELD_NUMBER: int
ST_STORY_AIO_OBJ_MSG_FIELD_NUMBER: int
- imsg_type: int = ...
-
+ imsg_type: int
@property
def st_story_aio_obj_msg(self) -> StoryAioObjMsg: ...
-
def __init__(self,
*,
- imsg_type : Optional[int] = ...,
- st_story_aio_obj_msg : Optional[StoryAioObjMsg] = ...,
+ imsg_type: Optional[int] = ...,
+ st_story_aio_obj_msg: Optional[StoryAioObjMsg] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"imsg_type",b"imsg_type",u"st_story_aio_obj_msg",b"st_story_aio_obj_msg"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"imsg_type",b"imsg_type",u"st_story_aio_obj_msg",b"st_story_aio_obj_msg"]) -> None: ...
+ def HasField(self, field_name: Literal["imsg_type",b"imsg_type","st_story_aio_obj_msg",b"st_story_aio_obj_msg"]) -> bool: ...
+ def ClearField(self, field_name: Literal["imsg_type",b"imsg_type","st_story_aio_obj_msg",b"st_story_aio_obj_msg"]) -> None: ...
class MsgElemInfo_servtype5(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
VID_FIELD_NUMBER: int
COVER_FIELD_NUMBER: int
TITLE_FIELD_NUMBER: int
@@ -770,76 +730,71 @@ class MsgElemInfo_servtype5(Message):
CREATE_TIME_FIELD_NUMBER: int
COMMENT_CONTENT_FIELD_NUMBER: int
AUTHOR_FIELD_NUMBER: int
- vid: bytes = ...
- cover: bytes = ...
- title: bytes = ...
- summary: bytes = ...
- create_time: int = ...
- comment_content: bytes = ...
- author: int = ...
-
- def __init__(self,
- *,
- vid : Optional[bytes] = ...,
- cover : Optional[bytes] = ...,
- title : Optional[bytes] = ...,
- summary : Optional[bytes] = ...,
- create_time : Optional[int] = ...,
- comment_content : Optional[bytes] = ...,
- author : Optional[int] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal[u"author",b"author",u"comment_content",b"comment_content",u"cover",b"cover",u"create_time",b"create_time",u"summary",b"summary",u"title",b"title",u"vid",b"vid"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"author",b"author",u"comment_content",b"comment_content",u"cover",b"cover",u"create_time",b"create_time",u"summary",b"summary",u"title",b"title",u"vid",b"vid"]) -> None: ...
+ vid: bytes
+ cover: bytes
+ title: bytes
+ summary: bytes
+ create_time: int
+ comment_content: bytes
+ author: int
+ def __init__(self,
+ *,
+ vid: Optional[bytes] = ...,
+ cover: Optional[bytes] = ...,
+ title: Optional[bytes] = ...,
+ summary: Optional[bytes] = ...,
+ create_time: Optional[int] = ...,
+ comment_content: Optional[bytes] = ...,
+ author: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["author",b"author","comment_content",b"comment_content","cover",b"cover","create_time",b"create_time","summary",b"summary","title",b"title","vid",b"vid"]) -> bool: ...
+ def ClearField(self, field_name: Literal["author",b"author","comment_content",b"comment_content","cover",b"cover","create_time",b"create_time","summary",b"summary","title",b"title","vid",b"vid"]) -> None: ...
class MsgElemInfo_servtype8(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
WIFI_DELIVER_GIFT_MSG_FIELD_NUMBER: int
-
@property
def wifi_deliver_gift_msg(self) -> DeliverGiftMsg: ...
-
def __init__(self,
*,
- wifi_deliver_gift_msg : Optional[DeliverGiftMsg] = ...,
+ wifi_deliver_gift_msg: Optional[DeliverGiftMsg] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"wifi_deliver_gift_msg",b"wifi_deliver_gift_msg"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"wifi_deliver_gift_msg",b"wifi_deliver_gift_msg"]) -> None: ...
+ def HasField(self, field_name: Literal["wifi_deliver_gift_msg",b"wifi_deliver_gift_msg"]) -> bool: ...
+ def ClearField(self, field_name: Literal["wifi_deliver_gift_msg",b"wifi_deliver_gift_msg"]) -> None: ...
class MsgElemInfo_servtype9(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
ANCHOR_STATUS_FIELD_NUMBER: int
JUMP_SCHEMA_FIELD_NUMBER: int
ANCHOR_NICKNAME_FIELD_NUMBER: int
ANCHOR_HEAD_URL_FIELD_NUMBER: int
LIVE_TITLE_FIELD_NUMBER: int
- anchor_status: int = ...
- jump_schema: bytes = ...
- anchor_nickname: Text = ...
- anchor_head_url: bytes = ...
- live_title: Text = ...
-
+ anchor_status: int
+ jump_schema: bytes
+ anchor_nickname: Text
+ anchor_head_url: bytes
+ live_title: Text
def __init__(self,
*,
- anchor_status : Optional[int] = ...,
- jump_schema : Optional[bytes] = ...,
- anchor_nickname : Optional[Text] = ...,
- anchor_head_url : Optional[bytes] = ...,
- live_title : Optional[Text] = ...,
+ anchor_status: Optional[int] = ...,
+ jump_schema: Optional[bytes] = ...,
+ anchor_nickname: Optional[Text] = ...,
+ anchor_head_url: Optional[bytes] = ...,
+ live_title: Optional[Text] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"anchor_head_url",b"anchor_head_url",u"anchor_nickname",b"anchor_nickname",u"anchor_status",b"anchor_status",u"jump_schema",b"jump_schema",u"live_title",b"live_title"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"anchor_head_url",b"anchor_head_url",u"anchor_nickname",b"anchor_nickname",u"anchor_status",b"anchor_status",u"jump_schema",b"jump_schema",u"live_title",b"live_title"]) -> None: ...
+ def HasField(self, field_name: Literal["anchor_head_url",b"anchor_head_url","anchor_nickname",b"anchor_nickname","anchor_status",b"anchor_status","jump_schema",b"jump_schema","live_title",b"live_title"]) -> bool: ...
+ def ClearField(self, field_name: Literal["anchor_head_url",b"anchor_head_url","anchor_nickname",b"anchor_nickname","anchor_status",b"anchor_status","jump_schema",b"jump_schema","live_title",b"live_title"]) -> None: ...
class StoryAioObjMsg(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
UI_URL_FIELD_NUMBER: int
JMP_URL_FIELD_NUMBER: int
- ui_url: Text = ...
- jmp_url: Text = ...
-
+ ui_url: Text
+ jmp_url: Text
def __init__(self,
*,
- ui_url : Optional[Text] = ...,
- jmp_url : Optional[Text] = ...,
+ ui_url: Optional[Text] = ...,
+ jmp_url: Optional[Text] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"jmp_url",b"jmp_url",u"ui_url",b"ui_url"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"jmp_url",b"jmp_url",u"ui_url",b"ui_url"]) -> None: ...
+ def HasField(self, field_name: Literal["jmp_url",b"jmp_url","ui_url",b"ui_url"]) -> bool: ...
+ def ClearField(self, field_name: Literal["jmp_url",b"jmp_url","ui_url",b"ui_url"]) -> None: ...
diff --git a/cai/pb/im/oidb/cmd0x388/__init__.py b/cai/pb/im/oidb/cmd0x388/__init__.py
deleted file mode 100644
index e69de29b..00000000
diff --git a/cai/pb/im/oidb/cmd0x388/cmd0x388.proto b/cai/pb/im/oidb/cmd0x388/cmd0x388.proto
deleted file mode 100644
index f5cef756..00000000
--- a/cai/pb/im/oidb/cmd0x388/cmd0x388.proto
+++ /dev/null
@@ -1,255 +0,0 @@
-syntax = "proto2";
-
-option go_package = "github.com/Mrs4s/MiraiGo/client/pb/cmd0x388";
-
- message DelImgReq {
- optional uint64 srcUin = 1;
- optional uint64 dstUin = 2;
- optional uint32 reqTerm = 3;
- optional uint32 reqPlatformType = 4;
- optional uint32 buType = 5;
- optional bytes buildVer = 6;
- optional bytes fileResid = 7;
- optional uint32 picWidth = 8;
- optional uint32 picHeight = 9;
- }
-
- message DelImgRsp {
- optional uint32 result = 1;
- optional bytes failMsg = 2;
- optional bytes fileResid = 3;
- }
-
- message ExpRoamExtendInfo {
- optional bytes resid = 1;
- }
-
- message ExpRoamPicInfo {
- optional uint32 shopFlag = 1;
- optional uint32 pkgId = 2;
- optional bytes picId = 3;
- }
-
- message ExtensionCommPicTryUp {
- repeated bytes extinfo = 1;
- }
-
- message ExtensionExpRoamTryUp {
- repeated ExpRoamPicInfo exproamPicInfo = 1;
- }
-
- message GetImgUrlReq {
- optional uint64 groupCode = 1;
- optional uint64 dstUin = 2;
- optional uint64 fileid = 3;
- optional bytes fileMd5 = 4;
- optional uint32 urlFlag = 5;
- optional uint32 urlType = 6;
- optional uint32 reqTerm = 7;
- optional uint32 reqPlatformType = 8;
- optional uint32 innerIp = 9;
- optional uint32 buType = 10;
- optional bytes buildVer = 11;
- optional uint64 fileId = 12;
- optional uint64 fileSize = 13;
- optional uint32 originalPic = 14;
- optional uint32 retryReq = 15;
- optional uint32 fileHeight = 16;
- optional uint32 fileWidth = 17;
- optional uint32 picType = 18;
- optional uint32 picUpTimestamp = 19;
- optional uint32 reqTransferType = 20;
- optional uint64 qqmeetGuildId = 21;
- optional uint64 qqmeetChannelId = 22;
- optional bytes downloadIndex = 23;
- }
-
- message GetImgUrlRsp {
- optional uint64 fileid = 1;
- optional bytes fileMd5 = 2;
- optional uint32 result = 3;
- optional bytes failMsg = 4;
- optional ImgInfo imgInfo = 5;
- repeated bytes thumbDownUrl = 6;
- repeated bytes originalDownUrl = 7;
- repeated bytes bigDownUrl = 8;
- repeated uint32 downIp = 9;
- repeated uint32 downPort = 10;
- optional bytes downDomain = 11;
- optional bytes thumbDownPara = 12;
- optional bytes originalDownPara = 13;
- optional bytes bigDownPara = 14;
- optional uint64 fileId = 15;
- optional uint32 autoDownType = 16;
- repeated uint32 orderDownType = 17;
- optional bytes bigThumbDownPara = 19;
- optional uint32 httpsUrlFlag = 20;
- repeated IPv6Info downIp6 = 26;
- optional bytes clientIp6 = 27;
- }
-
- message GetPttUrlReq {
- optional uint64 groupCode = 1;
- optional uint64 dstUin = 2;
- optional uint64 fileid = 3;
- optional bytes fileMd5 = 4;
- optional uint32 reqTerm = 5;
- optional uint32 reqPlatformType = 6;
- optional uint32 innerIp = 7;
- optional uint32 buType = 8;
- optional bytes buildVer = 9;
- optional uint64 fileId = 10;
- optional bytes fileKey = 11;
- optional uint32 codec = 12;
- optional uint32 buId = 13;
- optional uint32 reqTransferType = 14;
- optional uint32 isAuto = 15;
- }
-
- message GetPttUrlRsp {
- optional uint64 fileid = 1;
- optional bytes fileMd5 = 2;
- optional uint32 result = 3;
- optional bytes failMsg = 4;
- repeated bytes downUrl = 5;
- repeated uint32 downIp = 6;
- repeated uint32 downPort = 7;
- optional bytes downDomain = 8;
- optional bytes downPara = 9;
- optional uint64 fileId = 10;
- optional uint32 transferType = 11;
- optional uint32 allowRetry = 12;
- repeated IPv6Info downIp6 = 26;
- optional bytes clientIp6 = 27;
- optional string domain = 28;
- }
-
- message IPv6Info {
- optional bytes ip6 = 1;
- optional uint32 port = 2;
- }
-
- message ImgInfo {
- optional bytes fileMd5 = 1;
- optional uint32 fileType = 2;
- optional uint64 fileSize = 3;
- optional uint32 fileWidth = 4;
- optional uint32 fileHeight = 5;
- }
-
- message PicSize {
- optional uint32 original = 1;
- optional uint32 thumb = 2;
- optional uint32 high = 3;
- }
-
- message D388ReqBody {
- optional uint32 netType = 1;
- optional uint32 subcmd = 2;
- repeated TryUpImgReq tryupImgReq = 3;
- repeated GetImgUrlReq getimgUrlReq = 4;
- repeated TryUpPttReq tryupPttReq = 5;
- repeated GetPttUrlReq getpttUrlReq = 6;
- optional uint32 commandId = 7;
- repeated DelImgReq delImgReq = 8;
- optional bytes extension = 1001;
- }
-
- message D388RspBody {
- optional uint32 clientIp = 1;
- optional uint32 subcmd = 2;
- repeated D388TryUpImgRsp tryupImgRsp = 3;
- repeated GetImgUrlRsp getimgUrlRsp = 4;
- repeated TryUpPttRsp tryupPttRsp = 5;
- repeated GetPttUrlRsp getpttUrlRsp = 6;
- repeated DelImgRsp delImgRsp = 7;
- }
-
- message TryUpImgReq {
- optional uint64 groupCode = 1;
- optional uint64 srcUin = 2;
- optional uint64 fileId = 3;
- optional bytes fileMd5 = 4;
- optional uint64 fileSize = 5;
- optional bytes fileName = 6;
- optional uint32 srcTerm = 7;
- optional uint32 platformType = 8;
- optional uint32 buType = 9;
- optional uint32 picWidth = 10;
- optional uint32 picHeight = 11;
- optional uint32 picType = 12;
- optional bytes buildVer = 13;
- optional uint32 innerIp = 14;
- optional uint32 appPicType = 15;
- optional uint32 originalPic = 16;
- optional bytes fileIndex = 17;
- optional uint64 dstUin = 18;
- optional uint32 srvUpload = 19;
- optional bytes transferUrl = 20;
- optional uint64 qqmeetGuildId = 21;
- optional uint64 qqmeetChannelId = 22;
- }
-
- message D388TryUpImgRsp {
- optional uint64 fileId = 1;
- optional uint32 result = 2;
- optional bytes failMsg = 3;
- optional bool fileExit = 4;
- optional ImgInfo imgInfo = 5;
- repeated uint32 upIp = 6;
- repeated uint32 upPort = 7;
- optional bytes upUkey = 8;
- optional uint64 fileid = 9;
- optional uint64 upOffset = 10;
- optional uint64 blockSize = 11;
- optional bool newBigChan = 12;
- repeated IPv6Info upIp6 = 26;
- optional bytes clientIp6 = 27;
- optional bytes downloadIndex = 28;
- optional TryUpInfo4Busi info4Busi = 1001;
- }
-
- message TryUpInfo4Busi {
- optional bytes downDomain = 1;
- optional bytes thumbDownUrl = 2;
- optional bytes originalDownUrl = 3;
- optional bytes bigDownUrl = 4;
- optional bytes fileResid = 5;
- }
-
- message TryUpPttReq {
- optional uint64 groupCode = 1;
- optional uint64 srcUin = 2;
- optional uint64 fileId = 3;
- optional bytes fileMd5 = 4;
- optional uint64 fileSize = 5;
- optional bytes fileName = 6;
- optional uint32 srcTerm = 7;
- optional uint32 platformType = 8;
- optional uint32 buType = 9;
- optional bytes buildVer = 10;
- optional uint32 innerIp = 11;
- optional uint32 voiceLength = 12;
- optional bool newUpChan = 13;
- optional uint32 codec = 14;
- optional uint32 voiceType = 15;
- optional uint32 buId = 16;
- }
-
- message TryUpPttRsp {
- optional uint64 fileId = 1;
- optional uint32 result = 2;
- optional bytes failMsg = 3;
- optional bool fileExit = 4;
- repeated uint32 upIp = 5;
- repeated uint32 upPort = 6;
- optional bytes upUkey = 7;
- optional uint64 fileid = 8;
- optional uint64 upOffset = 9;
- optional uint64 blockSize = 10;
- optional bytes fileKey = 11;
- optional uint32 channelType = 12;
- repeated IPv6Info upIp6 = 26;
- optional bytes clientIp6 = 27;
- }
-
diff --git a/cai/pb/im/oidb/cmd0x388/cmd0x388_pb2.py b/cai/pb/im/oidb/cmd0x388/cmd0x388_pb2.py
deleted file mode 100644
index 4f02ceba..00000000
--- a/cai/pb/im/oidb/cmd0x388/cmd0x388_pb2.py
+++ /dev/null
@@ -1,225 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by the protocol buffer compiler. DO NOT EDIT!
-# source: cmd0x388.proto
-"""Generated protocol buffer code."""
-from google.protobuf import descriptor as _descriptor
-from google.protobuf import descriptor_pool as _descriptor_pool
-from google.protobuf import message as _message
-from google.protobuf import reflection as _reflection
-from google.protobuf import symbol_database as _symbol_database
-# @@protoc_insertion_point(imports)
-
-_sym_db = _symbol_database.Default()
-
-
-
-
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0e\x63md0x388.proto\"\xaf\x01\n\tDelImgReq\x12\x0e\n\x06srcUin\x18\x01 \x01(\x04\x12\x0e\n\x06\x64stUin\x18\x02 \x01(\x04\x12\x0f\n\x07reqTerm\x18\x03 \x01(\r\x12\x17\n\x0freqPlatformType\x18\x04 \x01(\r\x12\x0e\n\x06\x62uType\x18\x05 \x01(\r\x12\x10\n\x08\x62uildVer\x18\x06 \x01(\x0c\x12\x11\n\tfileResid\x18\x07 \x01(\x0c\x12\x10\n\x08picWidth\x18\x08 \x01(\r\x12\x11\n\tpicHeight\x18\t \x01(\r\"?\n\tDelImgRsp\x12\x0e\n\x06result\x18\x01 \x01(\r\x12\x0f\n\x07\x66\x61ilMsg\x18\x02 \x01(\x0c\x12\x11\n\tfileResid\x18\x03 \x01(\x0c\"\"\n\x11\x45xpRoamExtendInfo\x12\r\n\x05resid\x18\x01 \x01(\x0c\"@\n\x0e\x45xpRoamPicInfo\x12\x10\n\x08shopFlag\x18\x01 \x01(\r\x12\r\n\x05pkgId\x18\x02 \x01(\r\x12\r\n\x05picId\x18\x03 \x01(\x0c\"(\n\x15\x45xtensionCommPicTryUp\x12\x0f\n\x07\x65xtinfo\x18\x01 \x03(\x0c\"@\n\x15\x45xtensionExpRoamTryUp\x12\'\n\x0e\x65xproamPicInfo\x18\x01 \x03(\x0b\x32\x0f.ExpRoamPicInfo\"\xca\x03\n\x0cGetImgUrlReq\x12\x11\n\tgroupCode\x18\x01 \x01(\x04\x12\x0e\n\x06\x64stUin\x18\x02 \x01(\x04\x12\x0e\n\x06\x66ileid\x18\x03 \x01(\x04\x12\x0f\n\x07\x66ileMd5\x18\x04 \x01(\x0c\x12\x0f\n\x07urlFlag\x18\x05 \x01(\r\x12\x0f\n\x07urlType\x18\x06 \x01(\r\x12\x0f\n\x07reqTerm\x18\x07 \x01(\r\x12\x17\n\x0freqPlatformType\x18\x08 \x01(\r\x12\x0f\n\x07innerIp\x18\t \x01(\r\x12\x0e\n\x06\x62uType\x18\n \x01(\r\x12\x10\n\x08\x62uildVer\x18\x0b \x01(\x0c\x12\x0e\n\x06\x66ileId\x18\x0c \x01(\x04\x12\x10\n\x08\x66ileSize\x18\r \x01(\x04\x12\x13\n\x0boriginalPic\x18\x0e \x01(\r\x12\x10\n\x08retryReq\x18\x0f \x01(\r\x12\x12\n\nfileHeight\x18\x10 \x01(\r\x12\x11\n\tfileWidth\x18\x11 \x01(\r\x12\x0f\n\x07picType\x18\x12 \x01(\r\x12\x16\n\x0epicUpTimestamp\x18\x13 \x01(\r\x12\x17\n\x0freqTransferType\x18\x14 \x01(\r\x12\x15\n\rqqmeetGuildId\x18\x15 \x01(\x04\x12\x17\n\x0fqqmeetChannelId\x18\x16 \x01(\x04\x12\x15\n\rdownloadIndex\x18\x17 \x01(\x0c\"\xc6\x03\n\x0cGetImgUrlRsp\x12\x0e\n\x06\x66ileid\x18\x01 \x01(\x04\x12\x0f\n\x07\x66ileMd5\x18\x02 \x01(\x0c\x12\x0e\n\x06result\x18\x03 \x01(\r\x12\x0f\n\x07\x66\x61ilMsg\x18\x04 \x01(\x0c\x12\x19\n\x07imgInfo\x18\x05 \x01(\x0b\x32\x08.ImgInfo\x12\x14\n\x0cthumbDownUrl\x18\x06 \x03(\x0c\x12\x17\n\x0foriginalDownUrl\x18\x07 \x03(\x0c\x12\x12\n\nbigDownUrl\x18\x08 \x03(\x0c\x12\x0e\n\x06\x64ownIp\x18\t \x03(\r\x12\x10\n\x08\x64ownPort\x18\n \x03(\r\x12\x12\n\ndownDomain\x18\x0b \x01(\x0c\x12\x15\n\rthumbDownPara\x18\x0c \x01(\x0c\x12\x18\n\x10originalDownPara\x18\r \x01(\x0c\x12\x13\n\x0b\x62igDownPara\x18\x0e \x01(\x0c\x12\x0e\n\x06\x66ileId\x18\x0f \x01(\x04\x12\x14\n\x0c\x61utoDownType\x18\x10 \x01(\r\x12\x15\n\rorderDownType\x18\x11 \x03(\r\x12\x18\n\x10\x62igThumbDownPara\x18\x13 \x01(\x0c\x12\x14\n\x0chttpsUrlFlag\x18\x14 \x01(\r\x12\x1a\n\x07\x64ownIp6\x18\x1a \x03(\x0b\x32\t.IPv6Info\x12\x11\n\tclientIp6\x18\x1b \x01(\x0c\"\x96\x02\n\x0cGetPttUrlReq\x12\x11\n\tgroupCode\x18\x01 \x01(\x04\x12\x0e\n\x06\x64stUin\x18\x02 \x01(\x04\x12\x0e\n\x06\x66ileid\x18\x03 \x01(\x04\x12\x0f\n\x07\x66ileMd5\x18\x04 \x01(\x0c\x12\x0f\n\x07reqTerm\x18\x05 \x01(\r\x12\x17\n\x0freqPlatformType\x18\x06 \x01(\r\x12\x0f\n\x07innerIp\x18\x07 \x01(\r\x12\x0e\n\x06\x62uType\x18\x08 \x01(\r\x12\x10\n\x08\x62uildVer\x18\t \x01(\x0c\x12\x0e\n\x06\x66ileId\x18\n \x01(\x04\x12\x0f\n\x07\x66ileKey\x18\x0b \x01(\x0c\x12\r\n\x05\x63odec\x18\x0c \x01(\r\x12\x0c\n\x04\x62uId\x18\r \x01(\r\x12\x17\n\x0freqTransferType\x18\x0e \x01(\r\x12\x0e\n\x06isAuto\x18\x0f \x01(\r\"\xa2\x02\n\x0cGetPttUrlRsp\x12\x0e\n\x06\x66ileid\x18\x01 \x01(\x04\x12\x0f\n\x07\x66ileMd5\x18\x02 \x01(\x0c\x12\x0e\n\x06result\x18\x03 \x01(\r\x12\x0f\n\x07\x66\x61ilMsg\x18\x04 \x01(\x0c\x12\x0f\n\x07\x64ownUrl\x18\x05 \x03(\x0c\x12\x0e\n\x06\x64ownIp\x18\x06 \x03(\r\x12\x10\n\x08\x64ownPort\x18\x07 \x03(\r\x12\x12\n\ndownDomain\x18\x08 \x01(\x0c\x12\x10\n\x08\x64ownPara\x18\t \x01(\x0c\x12\x0e\n\x06\x66ileId\x18\n \x01(\x04\x12\x14\n\x0ctransferType\x18\x0b \x01(\r\x12\x12\n\nallowRetry\x18\x0c \x01(\r\x12\x1a\n\x07\x64ownIp6\x18\x1a \x03(\x0b\x32\t.IPv6Info\x12\x11\n\tclientIp6\x18\x1b \x01(\x0c\x12\x0e\n\x06\x64omain\x18\x1c \x01(\t\"%\n\x08IPv6Info\x12\x0b\n\x03ip6\x18\x01 \x01(\x0c\x12\x0c\n\x04port\x18\x02 \x01(\r\"e\n\x07ImgInfo\x12\x0f\n\x07\x66ileMd5\x18\x01 \x01(\x0c\x12\x10\n\x08\x66ileType\x18\x02 \x01(\r\x12\x10\n\x08\x66ileSize\x18\x03 \x01(\x04\x12\x11\n\tfileWidth\x18\x04 \x01(\r\x12\x12\n\nfileHeight\x18\x05 \x01(\r\"8\n\x07PicSize\x12\x10\n\x08original\x18\x01 \x01(\r\x12\r\n\x05thumb\x18\x02 \x01(\r\x12\x0c\n\x04high\x18\x03 \x01(\r\"\x84\x02\n\x0b\x44\x33\x38\x38ReqBody\x12\x0f\n\x07netType\x18\x01 \x01(\r\x12\x0e\n\x06subcmd\x18\x02 \x01(\r\x12!\n\x0btryupImgReq\x18\x03 \x03(\x0b\x32\x0c.TryUpImgReq\x12#\n\x0cgetimgUrlReq\x18\x04 \x03(\x0b\x32\r.GetImgUrlReq\x12!\n\x0btryupPttReq\x18\x05 \x03(\x0b\x32\x0c.TryUpPttReq\x12#\n\x0cgetpttUrlReq\x18\x06 \x03(\x0b\x32\r.GetPttUrlReq\x12\x11\n\tcommandId\x18\x07 \x01(\r\x12\x1d\n\tdelImgReq\x18\x08 \x03(\x0b\x32\n.DelImgReq\x12\x12\n\textension\x18\xe9\x07 \x01(\x0c\"\xe2\x01\n\x0b\x44\x33\x38\x38RspBody\x12\x10\n\x08\x63lientIp\x18\x01 \x01(\r\x12\x0e\n\x06subcmd\x18\x02 \x01(\r\x12%\n\x0btryupImgRsp\x18\x03 \x03(\x0b\x32\x10.D388TryUpImgRsp\x12#\n\x0cgetimgUrlRsp\x18\x04 \x03(\x0b\x32\r.GetImgUrlRsp\x12!\n\x0btryupPttRsp\x18\x05 \x03(\x0b\x32\x0c.TryUpPttRsp\x12#\n\x0cgetpttUrlRsp\x18\x06 \x03(\x0b\x32\r.GetPttUrlRsp\x12\x1d\n\tdelImgRsp\x18\x07 \x03(\x0b\x32\n.DelImgRsp\"\xa9\x03\n\x0bTryUpImgReq\x12\x11\n\tgroupCode\x18\x01 \x01(\x04\x12\x0e\n\x06srcUin\x18\x02 \x01(\x04\x12\x0e\n\x06\x66ileId\x18\x03 \x01(\x04\x12\x0f\n\x07\x66ileMd5\x18\x04 \x01(\x0c\x12\x10\n\x08\x66ileSize\x18\x05 \x01(\x04\x12\x10\n\x08\x66ileName\x18\x06 \x01(\x0c\x12\x0f\n\x07srcTerm\x18\x07 \x01(\r\x12\x14\n\x0cplatformType\x18\x08 \x01(\r\x12\x0e\n\x06\x62uType\x18\t \x01(\r\x12\x10\n\x08picWidth\x18\n \x01(\r\x12\x11\n\tpicHeight\x18\x0b \x01(\r\x12\x0f\n\x07picType\x18\x0c \x01(\r\x12\x10\n\x08\x62uildVer\x18\r \x01(\x0c\x12\x0f\n\x07innerIp\x18\x0e \x01(\r\x12\x12\n\nappPicType\x18\x0f \x01(\r\x12\x13\n\x0boriginalPic\x18\x10 \x01(\r\x12\x11\n\tfileIndex\x18\x11 \x01(\x0c\x12\x0e\n\x06\x64stUin\x18\x12 \x01(\x04\x12\x11\n\tsrvUpload\x18\x13 \x01(\r\x12\x13\n\x0btransferUrl\x18\x14 \x01(\x0c\x12\x15\n\rqqmeetGuildId\x18\x15 \x01(\x04\x12\x17\n\x0fqqmeetChannelId\x18\x16 \x01(\x04\"\xcf\x02\n\x0f\x44\x33\x38\x38TryUpImgRsp\x12\x0e\n\x06\x66ileId\x18\x01 \x01(\x04\x12\x0e\n\x06result\x18\x02 \x01(\r\x12\x0f\n\x07\x66\x61ilMsg\x18\x03 \x01(\x0c\x12\x10\n\x08\x66ileExit\x18\x04 \x01(\x08\x12\x19\n\x07imgInfo\x18\x05 \x01(\x0b\x32\x08.ImgInfo\x12\x0c\n\x04upIp\x18\x06 \x03(\r\x12\x0e\n\x06upPort\x18\x07 \x03(\r\x12\x0e\n\x06upUkey\x18\x08 \x01(\x0c\x12\x0e\n\x06\x66ileid\x18\t \x01(\x04\x12\x10\n\x08upOffset\x18\n \x01(\x04\x12\x11\n\tblockSize\x18\x0b \x01(\x04\x12\x12\n\nnewBigChan\x18\x0c \x01(\x08\x12\x18\n\x05upIp6\x18\x1a \x03(\x0b\x32\t.IPv6Info\x12\x11\n\tclientIp6\x18\x1b \x01(\x0c\x12\x15\n\rdownloadIndex\x18\x1c \x01(\x0c\x12#\n\tinfo4Busi\x18\xe9\x07 \x01(\x0b\x32\x0f.TryUpInfo4Busi\"z\n\x0eTryUpInfo4Busi\x12\x12\n\ndownDomain\x18\x01 \x01(\x0c\x12\x14\n\x0cthumbDownUrl\x18\x02 \x01(\x0c\x12\x17\n\x0foriginalDownUrl\x18\x03 \x01(\x0c\x12\x12\n\nbigDownUrl\x18\x04 \x01(\x0c\x12\x11\n\tfileResid\x18\x05 \x01(\x0c\"\xa7\x02\n\x0bTryUpPttReq\x12\x11\n\tgroupCode\x18\x01 \x01(\x04\x12\x0e\n\x06srcUin\x18\x02 \x01(\x04\x12\x0e\n\x06\x66ileId\x18\x03 \x01(\x04\x12\x0f\n\x07\x66ileMd5\x18\x04 \x01(\x0c\x12\x10\n\x08\x66ileSize\x18\x05 \x01(\x04\x12\x10\n\x08\x66ileName\x18\x06 \x01(\x0c\x12\x0f\n\x07srcTerm\x18\x07 \x01(\r\x12\x14\n\x0cplatformType\x18\x08 \x01(\r\x12\x0e\n\x06\x62uType\x18\t \x01(\r\x12\x10\n\x08\x62uildVer\x18\n \x01(\x0c\x12\x0f\n\x07innerIp\x18\x0b \x01(\r\x12\x13\n\x0bvoiceLength\x18\x0c \x01(\r\x12\x11\n\tnewUpChan\x18\r \x01(\x08\x12\r\n\x05\x63odec\x18\x0e \x01(\r\x12\x11\n\tvoiceType\x18\x0f \x01(\r\x12\x0c\n\x04\x62uId\x18\x10 \x01(\r\"\x86\x02\n\x0bTryUpPttRsp\x12\x0e\n\x06\x66ileId\x18\x01 \x01(\x04\x12\x0e\n\x06result\x18\x02 \x01(\r\x12\x0f\n\x07\x66\x61ilMsg\x18\x03 \x01(\x0c\x12\x10\n\x08\x66ileExit\x18\x04 \x01(\x08\x12\x0c\n\x04upIp\x18\x05 \x03(\r\x12\x0e\n\x06upPort\x18\x06 \x03(\r\x12\x0e\n\x06upUkey\x18\x07 \x01(\x0c\x12\x0e\n\x06\x66ileid\x18\x08 \x01(\x04\x12\x10\n\x08upOffset\x18\t \x01(\x04\x12\x11\n\tblockSize\x18\n \x01(\x04\x12\x0f\n\x07\x66ileKey\x18\x0b \x01(\x0c\x12\x13\n\x0b\x63hannelType\x18\x0c \x01(\r\x12\x18\n\x05upIp6\x18\x1a \x03(\x0b\x32\t.IPv6Info\x12\x11\n\tclientIp6\x18\x1b \x01(\x0c\x42-Z+github.com/Mrs4s/MiraiGo/client/pb/cmd0x388')
-
-
-
-_DELIMGREQ = DESCRIPTOR.message_types_by_name['DelImgReq']
-_DELIMGRSP = DESCRIPTOR.message_types_by_name['DelImgRsp']
-_EXPROAMEXTENDINFO = DESCRIPTOR.message_types_by_name['ExpRoamExtendInfo']
-_EXPROAMPICINFO = DESCRIPTOR.message_types_by_name['ExpRoamPicInfo']
-_EXTENSIONCOMMPICTRYUP = DESCRIPTOR.message_types_by_name['ExtensionCommPicTryUp']
-_EXTENSIONEXPROAMTRYUP = DESCRIPTOR.message_types_by_name['ExtensionExpRoamTryUp']
-_GETIMGURLREQ = DESCRIPTOR.message_types_by_name['GetImgUrlReq']
-_GETIMGURLRSP = DESCRIPTOR.message_types_by_name['GetImgUrlRsp']
-_GETPTTURLREQ = DESCRIPTOR.message_types_by_name['GetPttUrlReq']
-_GETPTTURLRSP = DESCRIPTOR.message_types_by_name['GetPttUrlRsp']
-_IPV6INFO = DESCRIPTOR.message_types_by_name['IPv6Info']
-_IMGINFO = DESCRIPTOR.message_types_by_name['ImgInfo']
-_PICSIZE = DESCRIPTOR.message_types_by_name['PicSize']
-_D388REQBODY = DESCRIPTOR.message_types_by_name['D388ReqBody']
-_D388RSPBODY = DESCRIPTOR.message_types_by_name['D388RspBody']
-_TRYUPIMGREQ = DESCRIPTOR.message_types_by_name['TryUpImgReq']
-_D388TRYUPIMGRSP = DESCRIPTOR.message_types_by_name['D388TryUpImgRsp']
-_TRYUPINFO4BUSI = DESCRIPTOR.message_types_by_name['TryUpInfo4Busi']
-_TRYUPPTTREQ = DESCRIPTOR.message_types_by_name['TryUpPttReq']
-_TRYUPPTTRSP = DESCRIPTOR.message_types_by_name['TryUpPttRsp']
-DelImgReq = _reflection.GeneratedProtocolMessageType('DelImgReq', (_message.Message,), {
- 'DESCRIPTOR' : _DELIMGREQ,
- '__module__' : 'cmd0x388_pb2'
- # @@protoc_insertion_point(class_scope:DelImgReq)
- })
-_sym_db.RegisterMessage(DelImgReq)
-
-DelImgRsp = _reflection.GeneratedProtocolMessageType('DelImgRsp', (_message.Message,), {
- 'DESCRIPTOR' : _DELIMGRSP,
- '__module__' : 'cmd0x388_pb2'
- # @@protoc_insertion_point(class_scope:DelImgRsp)
- })
-_sym_db.RegisterMessage(DelImgRsp)
-
-ExpRoamExtendInfo = _reflection.GeneratedProtocolMessageType('ExpRoamExtendInfo', (_message.Message,), {
- 'DESCRIPTOR' : _EXPROAMEXTENDINFO,
- '__module__' : 'cmd0x388_pb2'
- # @@protoc_insertion_point(class_scope:ExpRoamExtendInfo)
- })
-_sym_db.RegisterMessage(ExpRoamExtendInfo)
-
-ExpRoamPicInfo = _reflection.GeneratedProtocolMessageType('ExpRoamPicInfo', (_message.Message,), {
- 'DESCRIPTOR' : _EXPROAMPICINFO,
- '__module__' : 'cmd0x388_pb2'
- # @@protoc_insertion_point(class_scope:ExpRoamPicInfo)
- })
-_sym_db.RegisterMessage(ExpRoamPicInfo)
-
-ExtensionCommPicTryUp = _reflection.GeneratedProtocolMessageType('ExtensionCommPicTryUp', (_message.Message,), {
- 'DESCRIPTOR' : _EXTENSIONCOMMPICTRYUP,
- '__module__' : 'cmd0x388_pb2'
- # @@protoc_insertion_point(class_scope:ExtensionCommPicTryUp)
- })
-_sym_db.RegisterMessage(ExtensionCommPicTryUp)
-
-ExtensionExpRoamTryUp = _reflection.GeneratedProtocolMessageType('ExtensionExpRoamTryUp', (_message.Message,), {
- 'DESCRIPTOR' : _EXTENSIONEXPROAMTRYUP,
- '__module__' : 'cmd0x388_pb2'
- # @@protoc_insertion_point(class_scope:ExtensionExpRoamTryUp)
- })
-_sym_db.RegisterMessage(ExtensionExpRoamTryUp)
-
-GetImgUrlReq = _reflection.GeneratedProtocolMessageType('GetImgUrlReq', (_message.Message,), {
- 'DESCRIPTOR' : _GETIMGURLREQ,
- '__module__' : 'cmd0x388_pb2'
- # @@protoc_insertion_point(class_scope:GetImgUrlReq)
- })
-_sym_db.RegisterMessage(GetImgUrlReq)
-
-GetImgUrlRsp = _reflection.GeneratedProtocolMessageType('GetImgUrlRsp', (_message.Message,), {
- 'DESCRIPTOR' : _GETIMGURLRSP,
- '__module__' : 'cmd0x388_pb2'
- # @@protoc_insertion_point(class_scope:GetImgUrlRsp)
- })
-_sym_db.RegisterMessage(GetImgUrlRsp)
-
-GetPttUrlReq = _reflection.GeneratedProtocolMessageType('GetPttUrlReq', (_message.Message,), {
- 'DESCRIPTOR' : _GETPTTURLREQ,
- '__module__' : 'cmd0x388_pb2'
- # @@protoc_insertion_point(class_scope:GetPttUrlReq)
- })
-_sym_db.RegisterMessage(GetPttUrlReq)
-
-GetPttUrlRsp = _reflection.GeneratedProtocolMessageType('GetPttUrlRsp', (_message.Message,), {
- 'DESCRIPTOR' : _GETPTTURLRSP,
- '__module__' : 'cmd0x388_pb2'
- # @@protoc_insertion_point(class_scope:GetPttUrlRsp)
- })
-_sym_db.RegisterMessage(GetPttUrlRsp)
-
-IPv6Info = _reflection.GeneratedProtocolMessageType('IPv6Info', (_message.Message,), {
- 'DESCRIPTOR' : _IPV6INFO,
- '__module__' : 'cmd0x388_pb2'
- # @@protoc_insertion_point(class_scope:IPv6Info)
- })
-_sym_db.RegisterMessage(IPv6Info)
-
-ImgInfo = _reflection.GeneratedProtocolMessageType('ImgInfo', (_message.Message,), {
- 'DESCRIPTOR' : _IMGINFO,
- '__module__' : 'cmd0x388_pb2'
- # @@protoc_insertion_point(class_scope:ImgInfo)
- })
-_sym_db.RegisterMessage(ImgInfo)
-
-PicSize = _reflection.GeneratedProtocolMessageType('PicSize', (_message.Message,), {
- 'DESCRIPTOR' : _PICSIZE,
- '__module__' : 'cmd0x388_pb2'
- # @@protoc_insertion_point(class_scope:PicSize)
- })
-_sym_db.RegisterMessage(PicSize)
-
-D388ReqBody = _reflection.GeneratedProtocolMessageType('D388ReqBody', (_message.Message,), {
- 'DESCRIPTOR' : _D388REQBODY,
- '__module__' : 'cmd0x388_pb2'
- # @@protoc_insertion_point(class_scope:D388ReqBody)
- })
-_sym_db.RegisterMessage(D388ReqBody)
-
-D388RspBody = _reflection.GeneratedProtocolMessageType('D388RspBody', (_message.Message,), {
- 'DESCRIPTOR' : _D388RSPBODY,
- '__module__' : 'cmd0x388_pb2'
- # @@protoc_insertion_point(class_scope:D388RspBody)
- })
-_sym_db.RegisterMessage(D388RspBody)
-
-TryUpImgReq = _reflection.GeneratedProtocolMessageType('TryUpImgReq', (_message.Message,), {
- 'DESCRIPTOR' : _TRYUPIMGREQ,
- '__module__' : 'cmd0x388_pb2'
- # @@protoc_insertion_point(class_scope:TryUpImgReq)
- })
-_sym_db.RegisterMessage(TryUpImgReq)
-
-D388TryUpImgRsp = _reflection.GeneratedProtocolMessageType('D388TryUpImgRsp', (_message.Message,), {
- 'DESCRIPTOR' : _D388TRYUPIMGRSP,
- '__module__' : 'cmd0x388_pb2'
- # @@protoc_insertion_point(class_scope:D388TryUpImgRsp)
- })
-_sym_db.RegisterMessage(D388TryUpImgRsp)
-
-TryUpInfo4Busi = _reflection.GeneratedProtocolMessageType('TryUpInfo4Busi', (_message.Message,), {
- 'DESCRIPTOR' : _TRYUPINFO4BUSI,
- '__module__' : 'cmd0x388_pb2'
- # @@protoc_insertion_point(class_scope:TryUpInfo4Busi)
- })
-_sym_db.RegisterMessage(TryUpInfo4Busi)
-
-TryUpPttReq = _reflection.GeneratedProtocolMessageType('TryUpPttReq', (_message.Message,), {
- 'DESCRIPTOR' : _TRYUPPTTREQ,
- '__module__' : 'cmd0x388_pb2'
- # @@protoc_insertion_point(class_scope:TryUpPttReq)
- })
-_sym_db.RegisterMessage(TryUpPttReq)
-
-TryUpPttRsp = _reflection.GeneratedProtocolMessageType('TryUpPttRsp', (_message.Message,), {
- 'DESCRIPTOR' : _TRYUPPTTRSP,
- '__module__' : 'cmd0x388_pb2'
- # @@protoc_insertion_point(class_scope:TryUpPttRsp)
- })
-_sym_db.RegisterMessage(TryUpPttRsp)
-
-if _descriptor._USE_C_DESCRIPTORS == False:
-
- DESCRIPTOR._options = None
- DESCRIPTOR._serialized_options = b'Z+github.com/Mrs4s/MiraiGo/client/pb/cmd0x388'
- _DELIMGREQ._serialized_start=19
- _DELIMGREQ._serialized_end=194
- _DELIMGRSP._serialized_start=196
- _DELIMGRSP._serialized_end=259
- _EXPROAMEXTENDINFO._serialized_start=261
- _EXPROAMEXTENDINFO._serialized_end=295
- _EXPROAMPICINFO._serialized_start=297
- _EXPROAMPICINFO._serialized_end=361
- _EXTENSIONCOMMPICTRYUP._serialized_start=363
- _EXTENSIONCOMMPICTRYUP._serialized_end=403
- _EXTENSIONEXPROAMTRYUP._serialized_start=405
- _EXTENSIONEXPROAMTRYUP._serialized_end=469
- _GETIMGURLREQ._serialized_start=472
- _GETIMGURLREQ._serialized_end=930
- _GETIMGURLRSP._serialized_start=933
- _GETIMGURLRSP._serialized_end=1387
- _GETPTTURLREQ._serialized_start=1390
- _GETPTTURLREQ._serialized_end=1668
- _GETPTTURLRSP._serialized_start=1671
- _GETPTTURLRSP._serialized_end=1961
- _IPV6INFO._serialized_start=1963
- _IPV6INFO._serialized_end=2000
- _IMGINFO._serialized_start=2002
- _IMGINFO._serialized_end=2103
- _PICSIZE._serialized_start=2105
- _PICSIZE._serialized_end=2161
- _D388REQBODY._serialized_start=2164
- _D388REQBODY._serialized_end=2424
- _D388RSPBODY._serialized_start=2427
- _D388RSPBODY._serialized_end=2653
- _TRYUPIMGREQ._serialized_start=2656
- _TRYUPIMGREQ._serialized_end=3081
- _D388TRYUPIMGRSP._serialized_start=3084
- _D388TRYUPIMGRSP._serialized_end=3419
- _TRYUPINFO4BUSI._serialized_start=3421
- _TRYUPINFO4BUSI._serialized_end=3543
- _TRYUPPTTREQ._serialized_start=3546
- _TRYUPPTTREQ._serialized_end=3841
- _TRYUPPTTRSP._serialized_start=3844
- _TRYUPPTTRSP._serialized_end=4106
-# @@protoc_insertion_point(module_scope)
diff --git a/cai/pb/im/oidb/cmd0x388/cmd0x388_pb2.pyi b/cai/pb/im/oidb/cmd0x388/cmd0x388_pb2.pyi
deleted file mode 100644
index 49ccf026..00000000
--- a/cai/pb/im/oidb/cmd0x388/cmd0x388_pb2.pyi
+++ /dev/null
@@ -1,799 +0,0 @@
-"""
-@generated by mypy-protobuf. Do not edit manually!
-isort:skip_file
-"""
-from builtins import (
- bool,
- bytes,
- int,
-)
-
-from google.protobuf.descriptor import (
- Descriptor,
- FileDescriptor,
-)
-
-from google.protobuf.internal.containers import (
- RepeatedCompositeFieldContainer,
- RepeatedScalarFieldContainer,
-)
-
-from google.protobuf.message import (
- Message,
-)
-
-from typing import (
- Iterable,
- Optional,
- Text,
-)
-
-from typing_extensions import (
- Literal,
-)
-
-
-DESCRIPTOR: FileDescriptor
-
-class DelImgReq(Message):
- DESCRIPTOR: Descriptor
- SRCUIN_FIELD_NUMBER: int
- DSTUIN_FIELD_NUMBER: int
- REQTERM_FIELD_NUMBER: int
- REQPLATFORMTYPE_FIELD_NUMBER: int
- BUTYPE_FIELD_NUMBER: int
- BUILDVER_FIELD_NUMBER: int
- FILERESID_FIELD_NUMBER: int
- PICWIDTH_FIELD_NUMBER: int
- PICHEIGHT_FIELD_NUMBER: int
- srcUin: int
- dstUin: int
- reqTerm: int
- reqPlatformType: int
- buType: int
- buildVer: bytes
- fileResid: bytes
- picWidth: int
- picHeight: int
- def __init__(self,
- *,
- srcUin: Optional[int] = ...,
- dstUin: Optional[int] = ...,
- reqTerm: Optional[int] = ...,
- reqPlatformType: Optional[int] = ...,
- buType: Optional[int] = ...,
- buildVer: Optional[bytes] = ...,
- fileResid: Optional[bytes] = ...,
- picWidth: Optional[int] = ...,
- picHeight: Optional[int] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal["buType",b"buType","buildVer",b"buildVer","dstUin",b"dstUin","fileResid",b"fileResid","picHeight",b"picHeight","picWidth",b"picWidth","reqPlatformType",b"reqPlatformType","reqTerm",b"reqTerm","srcUin",b"srcUin"]) -> bool: ...
- def ClearField(self, field_name: Literal["buType",b"buType","buildVer",b"buildVer","dstUin",b"dstUin","fileResid",b"fileResid","picHeight",b"picHeight","picWidth",b"picWidth","reqPlatformType",b"reqPlatformType","reqTerm",b"reqTerm","srcUin",b"srcUin"]) -> None: ...
-
-class DelImgRsp(Message):
- DESCRIPTOR: Descriptor
- RESULT_FIELD_NUMBER: int
- FAILMSG_FIELD_NUMBER: int
- FILERESID_FIELD_NUMBER: int
- result: int
- failMsg: bytes
- fileResid: bytes
- def __init__(self,
- *,
- result: Optional[int] = ...,
- failMsg: Optional[bytes] = ...,
- fileResid: Optional[bytes] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal["failMsg",b"failMsg","fileResid",b"fileResid","result",b"result"]) -> bool: ...
- def ClearField(self, field_name: Literal["failMsg",b"failMsg","fileResid",b"fileResid","result",b"result"]) -> None: ...
-
-class ExpRoamExtendInfo(Message):
- DESCRIPTOR: Descriptor
- RESID_FIELD_NUMBER: int
- resid: bytes
- def __init__(self,
- *,
- resid: Optional[bytes] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal["resid",b"resid"]) -> bool: ...
- def ClearField(self, field_name: Literal["resid",b"resid"]) -> None: ...
-
-class ExpRoamPicInfo(Message):
- DESCRIPTOR: Descriptor
- SHOPFLAG_FIELD_NUMBER: int
- PKGID_FIELD_NUMBER: int
- PICID_FIELD_NUMBER: int
- shopFlag: int
- pkgId: int
- picId: bytes
- def __init__(self,
- *,
- shopFlag: Optional[int] = ...,
- pkgId: Optional[int] = ...,
- picId: Optional[bytes] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal["picId",b"picId","pkgId",b"pkgId","shopFlag",b"shopFlag"]) -> bool: ...
- def ClearField(self, field_name: Literal["picId",b"picId","pkgId",b"pkgId","shopFlag",b"shopFlag"]) -> None: ...
-
-class ExtensionCommPicTryUp(Message):
- DESCRIPTOR: Descriptor
- EXTINFO_FIELD_NUMBER: int
- @property
- def extinfo(self) -> RepeatedScalarFieldContainer[bytes]: ...
- def __init__(self,
- *,
- extinfo: Optional[Iterable[bytes]] = ...,
- ) -> None: ...
- def ClearField(self, field_name: Literal["extinfo",b"extinfo"]) -> None: ...
-
-class ExtensionExpRoamTryUp(Message):
- DESCRIPTOR: Descriptor
- EXPROAMPICINFO_FIELD_NUMBER: int
- @property
- def exproamPicInfo(self) -> RepeatedCompositeFieldContainer[ExpRoamPicInfo]: ...
- def __init__(self,
- *,
- exproamPicInfo: Optional[Iterable[ExpRoamPicInfo]] = ...,
- ) -> None: ...
- def ClearField(self, field_name: Literal["exproamPicInfo",b"exproamPicInfo"]) -> None: ...
-
-class GetImgUrlReq(Message):
- DESCRIPTOR: Descriptor
- GROUPCODE_FIELD_NUMBER: int
- DSTUIN_FIELD_NUMBER: int
- FILEID_FIELD_NUMBER: int
- FILEMD5_FIELD_NUMBER: int
- URLFLAG_FIELD_NUMBER: int
- URLTYPE_FIELD_NUMBER: int
- REQTERM_FIELD_NUMBER: int
- REQPLATFORMTYPE_FIELD_NUMBER: int
- INNERIP_FIELD_NUMBER: int
- BUTYPE_FIELD_NUMBER: int
- BUILDVER_FIELD_NUMBER: int
- FILEID_FIELD_NUMBER: int
- FILESIZE_FIELD_NUMBER: int
- ORIGINALPIC_FIELD_NUMBER: int
- RETRYREQ_FIELD_NUMBER: int
- FILEHEIGHT_FIELD_NUMBER: int
- FILEWIDTH_FIELD_NUMBER: int
- PICTYPE_FIELD_NUMBER: int
- PICUPTIMESTAMP_FIELD_NUMBER: int
- REQTRANSFERTYPE_FIELD_NUMBER: int
- QQMEETGUILDID_FIELD_NUMBER: int
- QQMEETCHANNELID_FIELD_NUMBER: int
- DOWNLOADINDEX_FIELD_NUMBER: int
- groupCode: int
- dstUin: int
- fileid: int
- fileMd5: bytes
- urlFlag: int
- urlType: int
- reqTerm: int
- reqPlatformType: int
- innerIp: int
- buType: int
- buildVer: bytes
- fileId: int
- fileSize: int
- originalPic: int
- retryReq: int
- fileHeight: int
- fileWidth: int
- picType: int
- picUpTimestamp: int
- reqTransferType: int
- qqmeetGuildId: int
- qqmeetChannelId: int
- downloadIndex: bytes
- def __init__(self,
- *,
- groupCode: Optional[int] = ...,
- dstUin: Optional[int] = ...,
- fileid: Optional[int] = ...,
- fileMd5: Optional[bytes] = ...,
- urlFlag: Optional[int] = ...,
- urlType: Optional[int] = ...,
- reqTerm: Optional[int] = ...,
- reqPlatformType: Optional[int] = ...,
- innerIp: Optional[int] = ...,
- buType: Optional[int] = ...,
- buildVer: Optional[bytes] = ...,
- fileId: Optional[int] = ...,
- fileSize: Optional[int] = ...,
- originalPic: Optional[int] = ...,
- retryReq: Optional[int] = ...,
- fileHeight: Optional[int] = ...,
- fileWidth: Optional[int] = ...,
- picType: Optional[int] = ...,
- picUpTimestamp: Optional[int] = ...,
- reqTransferType: Optional[int] = ...,
- qqmeetGuildId: Optional[int] = ...,
- qqmeetChannelId: Optional[int] = ...,
- downloadIndex: Optional[bytes] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal["buType",b"buType","buildVer",b"buildVer","downloadIndex",b"downloadIndex","dstUin",b"dstUin","fileHeight",b"fileHeight","fileId",b"fileId","fileMd5",b"fileMd5","fileSize",b"fileSize","fileWidth",b"fileWidth","fileid",b"fileid","groupCode",b"groupCode","innerIp",b"innerIp","originalPic",b"originalPic","picType",b"picType","picUpTimestamp",b"picUpTimestamp","qqmeetChannelId",b"qqmeetChannelId","qqmeetGuildId",b"qqmeetGuildId","reqPlatformType",b"reqPlatformType","reqTerm",b"reqTerm","reqTransferType",b"reqTransferType","retryReq",b"retryReq","urlFlag",b"urlFlag","urlType",b"urlType"]) -> bool: ...
- def ClearField(self, field_name: Literal["buType",b"buType","buildVer",b"buildVer","downloadIndex",b"downloadIndex","dstUin",b"dstUin","fileHeight",b"fileHeight","fileId",b"fileId","fileMd5",b"fileMd5","fileSize",b"fileSize","fileWidth",b"fileWidth","fileid",b"fileid","groupCode",b"groupCode","innerIp",b"innerIp","originalPic",b"originalPic","picType",b"picType","picUpTimestamp",b"picUpTimestamp","qqmeetChannelId",b"qqmeetChannelId","qqmeetGuildId",b"qqmeetGuildId","reqPlatformType",b"reqPlatformType","reqTerm",b"reqTerm","reqTransferType",b"reqTransferType","retryReq",b"retryReq","urlFlag",b"urlFlag","urlType",b"urlType"]) -> None: ...
-
-class GetImgUrlRsp(Message):
- DESCRIPTOR: Descriptor
- FILEID_FIELD_NUMBER: int
- FILEMD5_FIELD_NUMBER: int
- RESULT_FIELD_NUMBER: int
- FAILMSG_FIELD_NUMBER: int
- IMGINFO_FIELD_NUMBER: int
- THUMBDOWNURL_FIELD_NUMBER: int
- ORIGINALDOWNURL_FIELD_NUMBER: int
- BIGDOWNURL_FIELD_NUMBER: int
- DOWNIP_FIELD_NUMBER: int
- DOWNPORT_FIELD_NUMBER: int
- DOWNDOMAIN_FIELD_NUMBER: int
- THUMBDOWNPARA_FIELD_NUMBER: int
- ORIGINALDOWNPARA_FIELD_NUMBER: int
- BIGDOWNPARA_FIELD_NUMBER: int
- FILEID_FIELD_NUMBER: int
- AUTODOWNTYPE_FIELD_NUMBER: int
- ORDERDOWNTYPE_FIELD_NUMBER: int
- BIGTHUMBDOWNPARA_FIELD_NUMBER: int
- HTTPSURLFLAG_FIELD_NUMBER: int
- DOWNIP6_FIELD_NUMBER: int
- CLIENTIP6_FIELD_NUMBER: int
- fileid: int
- fileMd5: bytes
- result: int
- failMsg: bytes
- @property
- def imgInfo(self) -> ImgInfo: ...
- @property
- def thumbDownUrl(self) -> RepeatedScalarFieldContainer[bytes]: ...
- @property
- def originalDownUrl(self) -> RepeatedScalarFieldContainer[bytes]: ...
- @property
- def bigDownUrl(self) -> RepeatedScalarFieldContainer[bytes]: ...
- @property
- def downIp(self) -> RepeatedScalarFieldContainer[int]: ...
- @property
- def downPort(self) -> RepeatedScalarFieldContainer[int]: ...
- downDomain: bytes
- thumbDownPara: bytes
- originalDownPara: bytes
- bigDownPara: bytes
- fileId: int
- autoDownType: int
- @property
- def orderDownType(self) -> RepeatedScalarFieldContainer[int]: ...
- bigThumbDownPara: bytes
- httpsUrlFlag: int
- @property
- def downIp6(self) -> RepeatedCompositeFieldContainer[IPv6Info]: ...
- clientIp6: bytes
- def __init__(self,
- *,
- fileid: Optional[int] = ...,
- fileMd5: Optional[bytes] = ...,
- result: Optional[int] = ...,
- failMsg: Optional[bytes] = ...,
- imgInfo: Optional[ImgInfo] = ...,
- thumbDownUrl: Optional[Iterable[bytes]] = ...,
- originalDownUrl: Optional[Iterable[bytes]] = ...,
- bigDownUrl: Optional[Iterable[bytes]] = ...,
- downIp: Optional[Iterable[int]] = ...,
- downPort: Optional[Iterable[int]] = ...,
- downDomain: Optional[bytes] = ...,
- thumbDownPara: Optional[bytes] = ...,
- originalDownPara: Optional[bytes] = ...,
- bigDownPara: Optional[bytes] = ...,
- fileId: Optional[int] = ...,
- autoDownType: Optional[int] = ...,
- orderDownType: Optional[Iterable[int]] = ...,
- bigThumbDownPara: Optional[bytes] = ...,
- httpsUrlFlag: Optional[int] = ...,
- downIp6: Optional[Iterable[IPv6Info]] = ...,
- clientIp6: Optional[bytes] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal["autoDownType",b"autoDownType","bigDownPara",b"bigDownPara","bigThumbDownPara",b"bigThumbDownPara","clientIp6",b"clientIp6","downDomain",b"downDomain","failMsg",b"failMsg","fileId",b"fileId","fileMd5",b"fileMd5","fileid",b"fileid","httpsUrlFlag",b"httpsUrlFlag","imgInfo",b"imgInfo","originalDownPara",b"originalDownPara","result",b"result","thumbDownPara",b"thumbDownPara"]) -> bool: ...
- def ClearField(self, field_name: Literal["autoDownType",b"autoDownType","bigDownPara",b"bigDownPara","bigDownUrl",b"bigDownUrl","bigThumbDownPara",b"bigThumbDownPara","clientIp6",b"clientIp6","downDomain",b"downDomain","downIp",b"downIp","downIp6",b"downIp6","downPort",b"downPort","failMsg",b"failMsg","fileId",b"fileId","fileMd5",b"fileMd5","fileid",b"fileid","httpsUrlFlag",b"httpsUrlFlag","imgInfo",b"imgInfo","orderDownType",b"orderDownType","originalDownPara",b"originalDownPara","originalDownUrl",b"originalDownUrl","result",b"result","thumbDownPara",b"thumbDownPara","thumbDownUrl",b"thumbDownUrl"]) -> None: ...
-
-class GetPttUrlReq(Message):
- DESCRIPTOR: Descriptor
- GROUPCODE_FIELD_NUMBER: int
- DSTUIN_FIELD_NUMBER: int
- FILEID_FIELD_NUMBER: int
- FILEMD5_FIELD_NUMBER: int
- REQTERM_FIELD_NUMBER: int
- REQPLATFORMTYPE_FIELD_NUMBER: int
- INNERIP_FIELD_NUMBER: int
- BUTYPE_FIELD_NUMBER: int
- BUILDVER_FIELD_NUMBER: int
- FILEID_FIELD_NUMBER: int
- FILEKEY_FIELD_NUMBER: int
- CODEC_FIELD_NUMBER: int
- BUID_FIELD_NUMBER: int
- REQTRANSFERTYPE_FIELD_NUMBER: int
- ISAUTO_FIELD_NUMBER: int
- groupCode: int
- dstUin: int
- fileid: int
- fileMd5: bytes
- reqTerm: int
- reqPlatformType: int
- innerIp: int
- buType: int
- buildVer: bytes
- fileId: int
- fileKey: bytes
- codec: int
- buId: int
- reqTransferType: int
- isAuto: int
- def __init__(self,
- *,
- groupCode: Optional[int] = ...,
- dstUin: Optional[int] = ...,
- fileid: Optional[int] = ...,
- fileMd5: Optional[bytes] = ...,
- reqTerm: Optional[int] = ...,
- reqPlatformType: Optional[int] = ...,
- innerIp: Optional[int] = ...,
- buType: Optional[int] = ...,
- buildVer: Optional[bytes] = ...,
- fileId: Optional[int] = ...,
- fileKey: Optional[bytes] = ...,
- codec: Optional[int] = ...,
- buId: Optional[int] = ...,
- reqTransferType: Optional[int] = ...,
- isAuto: Optional[int] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal["buId",b"buId","buType",b"buType","buildVer",b"buildVer","codec",b"codec","dstUin",b"dstUin","fileId",b"fileId","fileKey",b"fileKey","fileMd5",b"fileMd5","fileid",b"fileid","groupCode",b"groupCode","innerIp",b"innerIp","isAuto",b"isAuto","reqPlatformType",b"reqPlatformType","reqTerm",b"reqTerm","reqTransferType",b"reqTransferType"]) -> bool: ...
- def ClearField(self, field_name: Literal["buId",b"buId","buType",b"buType","buildVer",b"buildVer","codec",b"codec","dstUin",b"dstUin","fileId",b"fileId","fileKey",b"fileKey","fileMd5",b"fileMd5","fileid",b"fileid","groupCode",b"groupCode","innerIp",b"innerIp","isAuto",b"isAuto","reqPlatformType",b"reqPlatformType","reqTerm",b"reqTerm","reqTransferType",b"reqTransferType"]) -> None: ...
-
-class GetPttUrlRsp(Message):
- DESCRIPTOR: Descriptor
- FILEID_FIELD_NUMBER: int
- FILEMD5_FIELD_NUMBER: int
- RESULT_FIELD_NUMBER: int
- FAILMSG_FIELD_NUMBER: int
- DOWNURL_FIELD_NUMBER: int
- DOWNIP_FIELD_NUMBER: int
- DOWNPORT_FIELD_NUMBER: int
- DOWNDOMAIN_FIELD_NUMBER: int
- DOWNPARA_FIELD_NUMBER: int
- FILEID_FIELD_NUMBER: int
- TRANSFERTYPE_FIELD_NUMBER: int
- ALLOWRETRY_FIELD_NUMBER: int
- DOWNIP6_FIELD_NUMBER: int
- CLIENTIP6_FIELD_NUMBER: int
- DOMAIN_FIELD_NUMBER: int
- fileid: int
- fileMd5: bytes
- result: int
- failMsg: bytes
- @property
- def downUrl(self) -> RepeatedScalarFieldContainer[bytes]: ...
- @property
- def downIp(self) -> RepeatedScalarFieldContainer[int]: ...
- @property
- def downPort(self) -> RepeatedScalarFieldContainer[int]: ...
- downDomain: bytes
- downPara: bytes
- fileId: int
- transferType: int
- allowRetry: int
- @property
- def downIp6(self) -> RepeatedCompositeFieldContainer[IPv6Info]: ...
- clientIp6: bytes
- domain: Text
- def __init__(self,
- *,
- fileid: Optional[int] = ...,
- fileMd5: Optional[bytes] = ...,
- result: Optional[int] = ...,
- failMsg: Optional[bytes] = ...,
- downUrl: Optional[Iterable[bytes]] = ...,
- downIp: Optional[Iterable[int]] = ...,
- downPort: Optional[Iterable[int]] = ...,
- downDomain: Optional[bytes] = ...,
- downPara: Optional[bytes] = ...,
- fileId: Optional[int] = ...,
- transferType: Optional[int] = ...,
- allowRetry: Optional[int] = ...,
- downIp6: Optional[Iterable[IPv6Info]] = ...,
- clientIp6: Optional[bytes] = ...,
- domain: Optional[Text] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal["allowRetry",b"allowRetry","clientIp6",b"clientIp6","domain",b"domain","downDomain",b"downDomain","downPara",b"downPara","failMsg",b"failMsg","fileId",b"fileId","fileMd5",b"fileMd5","fileid",b"fileid","result",b"result","transferType",b"transferType"]) -> bool: ...
- def ClearField(self, field_name: Literal["allowRetry",b"allowRetry","clientIp6",b"clientIp6","domain",b"domain","downDomain",b"downDomain","downIp",b"downIp","downIp6",b"downIp6","downPara",b"downPara","downPort",b"downPort","downUrl",b"downUrl","failMsg",b"failMsg","fileId",b"fileId","fileMd5",b"fileMd5","fileid",b"fileid","result",b"result","transferType",b"transferType"]) -> None: ...
-
-class IPv6Info(Message):
- DESCRIPTOR: Descriptor
- IP6_FIELD_NUMBER: int
- PORT_FIELD_NUMBER: int
- ip6: bytes
- port: int
- def __init__(self,
- *,
- ip6: Optional[bytes] = ...,
- port: Optional[int] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal["ip6",b"ip6","port",b"port"]) -> bool: ...
- def ClearField(self, field_name: Literal["ip6",b"ip6","port",b"port"]) -> None: ...
-
-class ImgInfo(Message):
- DESCRIPTOR: Descriptor
- FILEMD5_FIELD_NUMBER: int
- FILETYPE_FIELD_NUMBER: int
- FILESIZE_FIELD_NUMBER: int
- FILEWIDTH_FIELD_NUMBER: int
- FILEHEIGHT_FIELD_NUMBER: int
- fileMd5: bytes
- fileType: int
- fileSize: int
- fileWidth: int
- fileHeight: int
- def __init__(self,
- *,
- fileMd5: Optional[bytes] = ...,
- fileType: Optional[int] = ...,
- fileSize: Optional[int] = ...,
- fileWidth: Optional[int] = ...,
- fileHeight: Optional[int] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal["fileHeight",b"fileHeight","fileMd5",b"fileMd5","fileSize",b"fileSize","fileType",b"fileType","fileWidth",b"fileWidth"]) -> bool: ...
- def ClearField(self, field_name: Literal["fileHeight",b"fileHeight","fileMd5",b"fileMd5","fileSize",b"fileSize","fileType",b"fileType","fileWidth",b"fileWidth"]) -> None: ...
-
-class PicSize(Message):
- DESCRIPTOR: Descriptor
- ORIGINAL_FIELD_NUMBER: int
- THUMB_FIELD_NUMBER: int
- HIGH_FIELD_NUMBER: int
- original: int
- thumb: int
- high: int
- def __init__(self,
- *,
- original: Optional[int] = ...,
- thumb: Optional[int] = ...,
- high: Optional[int] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal["high",b"high","original",b"original","thumb",b"thumb"]) -> bool: ...
- def ClearField(self, field_name: Literal["high",b"high","original",b"original","thumb",b"thumb"]) -> None: ...
-
-class D388ReqBody(Message):
- DESCRIPTOR: Descriptor
- NETTYPE_FIELD_NUMBER: int
- SUBCMD_FIELD_NUMBER: int
- TRYUPIMGREQ_FIELD_NUMBER: int
- GETIMGURLREQ_FIELD_NUMBER: int
- TRYUPPTTREQ_FIELD_NUMBER: int
- GETPTTURLREQ_FIELD_NUMBER: int
- COMMANDID_FIELD_NUMBER: int
- DELIMGREQ_FIELD_NUMBER: int
- EXTENSION_FIELD_NUMBER: int
- netType: int
- subcmd: int
- @property
- def tryupImgReq(self) -> RepeatedCompositeFieldContainer[TryUpImgReq]: ...
- @property
- def getimgUrlReq(self) -> RepeatedCompositeFieldContainer[GetImgUrlReq]: ...
- @property
- def tryupPttReq(self) -> RepeatedCompositeFieldContainer[TryUpPttReq]: ...
- @property
- def getpttUrlReq(self) -> RepeatedCompositeFieldContainer[GetPttUrlReq]: ...
- commandId: int
- @property
- def delImgReq(self) -> RepeatedCompositeFieldContainer[DelImgReq]: ...
- extension: bytes
- def __init__(self,
- *,
- netType: Optional[int] = ...,
- subcmd: Optional[int] = ...,
- tryupImgReq: Optional[Iterable[TryUpImgReq]] = ...,
- getimgUrlReq: Optional[Iterable[GetImgUrlReq]] = ...,
- tryupPttReq: Optional[Iterable[TryUpPttReq]] = ...,
- getpttUrlReq: Optional[Iterable[GetPttUrlReq]] = ...,
- commandId: Optional[int] = ...,
- delImgReq: Optional[Iterable[DelImgReq]] = ...,
- extension: Optional[bytes] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal["commandId",b"commandId","extension",b"extension","netType",b"netType","subcmd",b"subcmd"]) -> bool: ...
- def ClearField(self, field_name: Literal["commandId",b"commandId","delImgReq",b"delImgReq","extension",b"extension","getimgUrlReq",b"getimgUrlReq","getpttUrlReq",b"getpttUrlReq","netType",b"netType","subcmd",b"subcmd","tryupImgReq",b"tryupImgReq","tryupPttReq",b"tryupPttReq"]) -> None: ...
-
-class D388RspBody(Message):
- DESCRIPTOR: Descriptor
- CLIENTIP_FIELD_NUMBER: int
- SUBCMD_FIELD_NUMBER: int
- TRYUPIMGRSP_FIELD_NUMBER: int
- GETIMGURLRSP_FIELD_NUMBER: int
- TRYUPPTTRSP_FIELD_NUMBER: int
- GETPTTURLRSP_FIELD_NUMBER: int
- DELIMGRSP_FIELD_NUMBER: int
- clientIp: int
- subcmd: int
- @property
- def tryupImgRsp(self) -> RepeatedCompositeFieldContainer[D388TryUpImgRsp]: ...
- @property
- def getimgUrlRsp(self) -> RepeatedCompositeFieldContainer[GetImgUrlRsp]: ...
- @property
- def tryupPttRsp(self) -> RepeatedCompositeFieldContainer[TryUpPttRsp]: ...
- @property
- def getpttUrlRsp(self) -> RepeatedCompositeFieldContainer[GetPttUrlRsp]: ...
- @property
- def delImgRsp(self) -> RepeatedCompositeFieldContainer[DelImgRsp]: ...
- def __init__(self,
- *,
- clientIp: Optional[int] = ...,
- subcmd: Optional[int] = ...,
- tryupImgRsp: Optional[Iterable[D388TryUpImgRsp]] = ...,
- getimgUrlRsp: Optional[Iterable[GetImgUrlRsp]] = ...,
- tryupPttRsp: Optional[Iterable[TryUpPttRsp]] = ...,
- getpttUrlRsp: Optional[Iterable[GetPttUrlRsp]] = ...,
- delImgRsp: Optional[Iterable[DelImgRsp]] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal["clientIp",b"clientIp","subcmd",b"subcmd"]) -> bool: ...
- def ClearField(self, field_name: Literal["clientIp",b"clientIp","delImgRsp",b"delImgRsp","getimgUrlRsp",b"getimgUrlRsp","getpttUrlRsp",b"getpttUrlRsp","subcmd",b"subcmd","tryupImgRsp",b"tryupImgRsp","tryupPttRsp",b"tryupPttRsp"]) -> None: ...
-
-class TryUpImgReq(Message):
- DESCRIPTOR: Descriptor
- GROUPCODE_FIELD_NUMBER: int
- SRCUIN_FIELD_NUMBER: int
- FILEID_FIELD_NUMBER: int
- FILEMD5_FIELD_NUMBER: int
- FILESIZE_FIELD_NUMBER: int
- FILENAME_FIELD_NUMBER: int
- SRCTERM_FIELD_NUMBER: int
- PLATFORMTYPE_FIELD_NUMBER: int
- BUTYPE_FIELD_NUMBER: int
- PICWIDTH_FIELD_NUMBER: int
- PICHEIGHT_FIELD_NUMBER: int
- PICTYPE_FIELD_NUMBER: int
- BUILDVER_FIELD_NUMBER: int
- INNERIP_FIELD_NUMBER: int
- APPPICTYPE_FIELD_NUMBER: int
- ORIGINALPIC_FIELD_NUMBER: int
- FILEINDEX_FIELD_NUMBER: int
- DSTUIN_FIELD_NUMBER: int
- SRVUPLOAD_FIELD_NUMBER: int
- TRANSFERURL_FIELD_NUMBER: int
- QQMEETGUILDID_FIELD_NUMBER: int
- QQMEETCHANNELID_FIELD_NUMBER: int
- groupCode: int
- srcUin: int
- fileId: int
- fileMd5: bytes
- fileSize: int
- fileName: bytes
- srcTerm: int
- platformType: int
- buType: int
- picWidth: int
- picHeight: int
- picType: int
- buildVer: bytes
- innerIp: int
- appPicType: int
- originalPic: int
- fileIndex: bytes
- dstUin: int
- srvUpload: int
- transferUrl: bytes
- qqmeetGuildId: int
- qqmeetChannelId: int
- def __init__(self,
- *,
- groupCode: Optional[int] = ...,
- srcUin: Optional[int] = ...,
- fileId: Optional[int] = ...,
- fileMd5: Optional[bytes] = ...,
- fileSize: Optional[int] = ...,
- fileName: Optional[bytes] = ...,
- srcTerm: Optional[int] = ...,
- platformType: Optional[int] = ...,
- buType: Optional[int] = ...,
- picWidth: Optional[int] = ...,
- picHeight: Optional[int] = ...,
- picType: Optional[int] = ...,
- buildVer: Optional[bytes] = ...,
- innerIp: Optional[int] = ...,
- appPicType: Optional[int] = ...,
- originalPic: Optional[int] = ...,
- fileIndex: Optional[bytes] = ...,
- dstUin: Optional[int] = ...,
- srvUpload: Optional[int] = ...,
- transferUrl: Optional[bytes] = ...,
- qqmeetGuildId: Optional[int] = ...,
- qqmeetChannelId: Optional[int] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal["appPicType",b"appPicType","buType",b"buType","buildVer",b"buildVer","dstUin",b"dstUin","fileId",b"fileId","fileIndex",b"fileIndex","fileMd5",b"fileMd5","fileName",b"fileName","fileSize",b"fileSize","groupCode",b"groupCode","innerIp",b"innerIp","originalPic",b"originalPic","picHeight",b"picHeight","picType",b"picType","picWidth",b"picWidth","platformType",b"platformType","qqmeetChannelId",b"qqmeetChannelId","qqmeetGuildId",b"qqmeetGuildId","srcTerm",b"srcTerm","srcUin",b"srcUin","srvUpload",b"srvUpload","transferUrl",b"transferUrl"]) -> bool: ...
- def ClearField(self, field_name: Literal["appPicType",b"appPicType","buType",b"buType","buildVer",b"buildVer","dstUin",b"dstUin","fileId",b"fileId","fileIndex",b"fileIndex","fileMd5",b"fileMd5","fileName",b"fileName","fileSize",b"fileSize","groupCode",b"groupCode","innerIp",b"innerIp","originalPic",b"originalPic","picHeight",b"picHeight","picType",b"picType","picWidth",b"picWidth","platformType",b"platformType","qqmeetChannelId",b"qqmeetChannelId","qqmeetGuildId",b"qqmeetGuildId","srcTerm",b"srcTerm","srcUin",b"srcUin","srvUpload",b"srvUpload","transferUrl",b"transferUrl"]) -> None: ...
-
-class D388TryUpImgRsp(Message):
- DESCRIPTOR: Descriptor
- FILEID_FIELD_NUMBER: int
- RESULT_FIELD_NUMBER: int
- FAILMSG_FIELD_NUMBER: int
- FILEEXIT_FIELD_NUMBER: int
- IMGINFO_FIELD_NUMBER: int
- UPIP_FIELD_NUMBER: int
- UPPORT_FIELD_NUMBER: int
- UPUKEY_FIELD_NUMBER: int
- FILEID_FIELD_NUMBER: int
- UPOFFSET_FIELD_NUMBER: int
- BLOCKSIZE_FIELD_NUMBER: int
- NEWBIGCHAN_FIELD_NUMBER: int
- UPIP6_FIELD_NUMBER: int
- CLIENTIP6_FIELD_NUMBER: int
- DOWNLOADINDEX_FIELD_NUMBER: int
- INFO4BUSI_FIELD_NUMBER: int
- fileId: int
- result: int
- failMsg: bytes
- fileExit: bool
- @property
- def imgInfo(self) -> ImgInfo: ...
- @property
- def upIp(self) -> RepeatedScalarFieldContainer[int]: ...
- @property
- def upPort(self) -> RepeatedScalarFieldContainer[int]: ...
- upUkey: bytes
- fileid: int
- upOffset: int
- blockSize: int
- newBigChan: bool
- @property
- def upIp6(self) -> RepeatedCompositeFieldContainer[IPv6Info]: ...
- clientIp6: bytes
- downloadIndex: bytes
- @property
- def info4Busi(self) -> TryUpInfo4Busi: ...
- def __init__(self,
- *,
- fileId: Optional[int] = ...,
- result: Optional[int] = ...,
- failMsg: Optional[bytes] = ...,
- fileExit: Optional[bool] = ...,
- imgInfo: Optional[ImgInfo] = ...,
- upIp: Optional[Iterable[int]] = ...,
- upPort: Optional[Iterable[int]] = ...,
- upUkey: Optional[bytes] = ...,
- fileid: Optional[int] = ...,
- upOffset: Optional[int] = ...,
- blockSize: Optional[int] = ...,
- newBigChan: Optional[bool] = ...,
- upIp6: Optional[Iterable[IPv6Info]] = ...,
- clientIp6: Optional[bytes] = ...,
- downloadIndex: Optional[bytes] = ...,
- info4Busi: Optional[TryUpInfo4Busi] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal["blockSize",b"blockSize","clientIp6",b"clientIp6","downloadIndex",b"downloadIndex","failMsg",b"failMsg","fileExit",b"fileExit","fileId",b"fileId","fileid",b"fileid","imgInfo",b"imgInfo","info4Busi",b"info4Busi","newBigChan",b"newBigChan","result",b"result","upOffset",b"upOffset","upUkey",b"upUkey"]) -> bool: ...
- def ClearField(self, field_name: Literal["blockSize",b"blockSize","clientIp6",b"clientIp6","downloadIndex",b"downloadIndex","failMsg",b"failMsg","fileExit",b"fileExit","fileId",b"fileId","fileid",b"fileid","imgInfo",b"imgInfo","info4Busi",b"info4Busi","newBigChan",b"newBigChan","result",b"result","upIp",b"upIp","upIp6",b"upIp6","upOffset",b"upOffset","upPort",b"upPort","upUkey",b"upUkey"]) -> None: ...
-
-class TryUpInfo4Busi(Message):
- DESCRIPTOR: Descriptor
- DOWNDOMAIN_FIELD_NUMBER: int
- THUMBDOWNURL_FIELD_NUMBER: int
- ORIGINALDOWNURL_FIELD_NUMBER: int
- BIGDOWNURL_FIELD_NUMBER: int
- FILERESID_FIELD_NUMBER: int
- downDomain: bytes
- thumbDownUrl: bytes
- originalDownUrl: bytes
- bigDownUrl: bytes
- fileResid: bytes
- def __init__(self,
- *,
- downDomain: Optional[bytes] = ...,
- thumbDownUrl: Optional[bytes] = ...,
- originalDownUrl: Optional[bytes] = ...,
- bigDownUrl: Optional[bytes] = ...,
- fileResid: Optional[bytes] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal["bigDownUrl",b"bigDownUrl","downDomain",b"downDomain","fileResid",b"fileResid","originalDownUrl",b"originalDownUrl","thumbDownUrl",b"thumbDownUrl"]) -> bool: ...
- def ClearField(self, field_name: Literal["bigDownUrl",b"bigDownUrl","downDomain",b"downDomain","fileResid",b"fileResid","originalDownUrl",b"originalDownUrl","thumbDownUrl",b"thumbDownUrl"]) -> None: ...
-
-class TryUpPttReq(Message):
- DESCRIPTOR: Descriptor
- GROUPCODE_FIELD_NUMBER: int
- SRCUIN_FIELD_NUMBER: int
- FILEID_FIELD_NUMBER: int
- FILEMD5_FIELD_NUMBER: int
- FILESIZE_FIELD_NUMBER: int
- FILENAME_FIELD_NUMBER: int
- SRCTERM_FIELD_NUMBER: int
- PLATFORMTYPE_FIELD_NUMBER: int
- BUTYPE_FIELD_NUMBER: int
- BUILDVER_FIELD_NUMBER: int
- INNERIP_FIELD_NUMBER: int
- VOICELENGTH_FIELD_NUMBER: int
- NEWUPCHAN_FIELD_NUMBER: int
- CODEC_FIELD_NUMBER: int
- VOICETYPE_FIELD_NUMBER: int
- BUID_FIELD_NUMBER: int
- groupCode: int
- srcUin: int
- fileId: int
- fileMd5: bytes
- fileSize: int
- fileName: bytes
- srcTerm: int
- platformType: int
- buType: int
- buildVer: bytes
- innerIp: int
- voiceLength: int
- newUpChan: bool
- codec: int
- voiceType: int
- buId: int
- def __init__(self,
- *,
- groupCode: Optional[int] = ...,
- srcUin: Optional[int] = ...,
- fileId: Optional[int] = ...,
- fileMd5: Optional[bytes] = ...,
- fileSize: Optional[int] = ...,
- fileName: Optional[bytes] = ...,
- srcTerm: Optional[int] = ...,
- platformType: Optional[int] = ...,
- buType: Optional[int] = ...,
- buildVer: Optional[bytes] = ...,
- innerIp: Optional[int] = ...,
- voiceLength: Optional[int] = ...,
- newUpChan: Optional[bool] = ...,
- codec: Optional[int] = ...,
- voiceType: Optional[int] = ...,
- buId: Optional[int] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal["buId",b"buId","buType",b"buType","buildVer",b"buildVer","codec",b"codec","fileId",b"fileId","fileMd5",b"fileMd5","fileName",b"fileName","fileSize",b"fileSize","groupCode",b"groupCode","innerIp",b"innerIp","newUpChan",b"newUpChan","platformType",b"platformType","srcTerm",b"srcTerm","srcUin",b"srcUin","voiceLength",b"voiceLength","voiceType",b"voiceType"]) -> bool: ...
- def ClearField(self, field_name: Literal["buId",b"buId","buType",b"buType","buildVer",b"buildVer","codec",b"codec","fileId",b"fileId","fileMd5",b"fileMd5","fileName",b"fileName","fileSize",b"fileSize","groupCode",b"groupCode","innerIp",b"innerIp","newUpChan",b"newUpChan","platformType",b"platformType","srcTerm",b"srcTerm","srcUin",b"srcUin","voiceLength",b"voiceLength","voiceType",b"voiceType"]) -> None: ...
-
-class TryUpPttRsp(Message):
- DESCRIPTOR: Descriptor
- FILEID_FIELD_NUMBER: int
- RESULT_FIELD_NUMBER: int
- FAILMSG_FIELD_NUMBER: int
- FILEEXIT_FIELD_NUMBER: int
- UPIP_FIELD_NUMBER: int
- UPPORT_FIELD_NUMBER: int
- UPUKEY_FIELD_NUMBER: int
- FILEID_FIELD_NUMBER: int
- UPOFFSET_FIELD_NUMBER: int
- BLOCKSIZE_FIELD_NUMBER: int
- FILEKEY_FIELD_NUMBER: int
- CHANNELTYPE_FIELD_NUMBER: int
- UPIP6_FIELD_NUMBER: int
- CLIENTIP6_FIELD_NUMBER: int
- fileId: int
- result: int
- failMsg: bytes
- fileExit: bool
- @property
- def upIp(self) -> RepeatedScalarFieldContainer[int]: ...
- @property
- def upPort(self) -> RepeatedScalarFieldContainer[int]: ...
- upUkey: bytes
- fileid: int
- upOffset: int
- blockSize: int
- fileKey: bytes
- channelType: int
- @property
- def upIp6(self) -> RepeatedCompositeFieldContainer[IPv6Info]: ...
- clientIp6: bytes
- def __init__(self,
- *,
- fileId: Optional[int] = ...,
- result: Optional[int] = ...,
- failMsg: Optional[bytes] = ...,
- fileExit: Optional[bool] = ...,
- upIp: Optional[Iterable[int]] = ...,
- upPort: Optional[Iterable[int]] = ...,
- upUkey: Optional[bytes] = ...,
- fileid: Optional[int] = ...,
- upOffset: Optional[int] = ...,
- blockSize: Optional[int] = ...,
- fileKey: Optional[bytes] = ...,
- channelType: Optional[int] = ...,
- upIp6: Optional[Iterable[IPv6Info]] = ...,
- clientIp6: Optional[bytes] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal["blockSize",b"blockSize","channelType",b"channelType","clientIp6",b"clientIp6","failMsg",b"failMsg","fileExit",b"fileExit","fileId",b"fileId","fileKey",b"fileKey","fileid",b"fileid","result",b"result","upOffset",b"upOffset","upUkey",b"upUkey"]) -> bool: ...
- def ClearField(self, field_name: Literal["blockSize",b"blockSize","channelType",b"channelType","clientIp6",b"clientIp6","failMsg",b"failMsg","fileExit",b"fileExit","fileId",b"fileId","fileKey",b"fileKey","fileid",b"fileid","result",b"result","upIp",b"upIp","upIp6",b"upIp6","upOffset",b"upOffset","upPort",b"upPort","upUkey",b"upUkey"]) -> None: ...
diff --git a/cai/pb/im/oidb/cmd0x769/cmd0x769.proto b/cai/pb/im/oidb/cmd0x769/cmd0x769.proto
index 56ee4b68..d82dd2ba 100644
--- a/cai/pb/im/oidb/cmd0x769/cmd0x769.proto
+++ b/cai/pb/im/oidb/cmd0x769/cmd0x769.proto
@@ -1,7 +1,7 @@
syntax = "proto2";
package im.oidb.cmd0x769;
-// tencent/im/oidb/cmd0xd50/Oidb_0x769.java
+// tencent/im/oidb/cmd0x769/Oidb_0x769.java
message CPU {
optional string model = 1;
diff --git a/cai/pb/im/oidb/cmd0x769/cmd0x769_pb2.py b/cai/pb/im/oidb/cmd0x769/cmd0x769_pb2.py
index 85a6ed59..0d9a89e7 100644
--- a/cai/pb/im/oidb/cmd0x769/cmd0x769_pb2.py
+++ b/cai/pb/im/oidb/cmd0x769/cmd0x769_pb2.py
@@ -3,6 +3,7 @@
# source: cai/pb/im/oidb/cmd0x769/cmd0x769.proto
"""Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
@@ -13,835 +14,25 @@
-DESCRIPTOR = _descriptor.FileDescriptor(
- name='cai/pb/im/oidb/cmd0x769/cmd0x769.proto',
- package='im.oidb.cmd0x769',
- syntax='proto2',
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- serialized_pb=b'\n&cai/pb/im/oidb/cmd0x769/cmd0x769.proto\x12\x10im.oidb.cmd0x769\"6\n\x03\x43PU\x12\r\n\x05model\x18\x01 \x01(\t\x12\r\n\x05\x63ores\x18\x02 \x01(\r\x12\x11\n\tfrequency\x18\x03 \x01(\r\";\n\x06\x43\x61mera\x12\x0f\n\x07primary\x18\x01 \x01(\x04\x12\x11\n\tsecondary\x18\x02 \x01(\x04\x12\r\n\x05\x66lash\x18\x03 \x01(\x08\"\x85\x01\n\x06\x43onfig\x12\x0c\n\x04type\x18\x01 \x01(\r\x12\x0f\n\x07version\x18\x02 \x01(\r\x12\x14\n\x0c\x63ontent_list\x18\x03 \x03(\t\x12\x11\n\tdebug_msg\x18\x04 \x01(\t\x12\x33\n\x10msg_content_list\x18\x05 \x03(\x0b\x32\x19.im.oidb.cmd0x769.Content\"*\n\tConfigSeq\x12\x0c\n\x04type\x18\x01 \x01(\r\x12\x0f\n\x07version\x18\x02 \x01(\r\"=\n\x07\x43ontent\x12\x0f\n\x07task_id\x18\x01 \x01(\r\x12\x10\n\x08\x63ompress\x18\x02 \x01(\r\x12\x0f\n\x07\x63ontent\x18\n \x01(\x0c\"\x9a\x02\n\nDeviceInfo\x12\r\n\x05\x62rand\x18\x01 \x01(\t\x12\r\n\x05model\x18\x02 \x01(\t\x12 \n\x02os\x18\x03 \x01(\x0b\x32\x14.im.oidb.cmd0x769.OS\x12\"\n\x03\x63pu\x18\x04 \x01(\x0b\x32\x15.im.oidb.cmd0x769.CPU\x12(\n\x06memory\x18\x05 \x01(\x0b\x32\x18.im.oidb.cmd0x769.Memory\x12*\n\x07storage\x18\x06 \x01(\x0b\x32\x19.im.oidb.cmd0x769.Storage\x12(\n\x06screen\x18\x07 \x01(\x0b\x32\x18.im.oidb.cmd0x769.Screen\x12(\n\x06\x63\x61mera\x18\x08 \x01(\x0b\x32\x18.im.oidb.cmd0x769.Camera\"(\n\x06Memory\x12\r\n\x05total\x18\x01 \x01(\x04\x12\x0f\n\x07process\x18\x02 \x01(\x04\"M\n\x02OS\x12\x0c\n\x04type\x18\x01 \x01(\r\x12\x0f\n\x07version\x18\x02 \x01(\t\x12\x0b\n\x03sdk\x18\x03 \x01(\t\x12\x0e\n\x06kernel\x18\x04 \x01(\t\x12\x0b\n\x03rom\x18\x05 \x01(\t\">\n\x17QueryUinPackageUsageReq\x12\x0c\n\x04type\x18\x01 \x01(\r\x12\x15\n\ruin_file_size\x18\x02 \x01(\x04\"\xad\x01\n\x17QueryUinPackageUsageRsp\x12\x0e\n\x06status\x18\x01 \x01(\r\x12\x14\n\x0cleft_uin_num\x18\x02 \x01(\x04\x12\x13\n\x0bmax_uin_num\x18\x03 \x01(\x04\x12\x12\n\nproportion\x18\x04 \x01(\r\x12\x43\n\x15uin_package_used_list\x18\n \x03(\x0b\x32$.im.oidb.cmd0x769.UinPackageUsedInfo\"\x83\x02\n\x07ReqBody\x12\x30\n\x0b\x63onfig_list\x18\x01 \x03(\x0b\x32\x1b.im.oidb.cmd0x769.ConfigSeq\x12\x31\n\x0b\x64\x65vice_info\x18\x02 \x01(\x0b\x32\x1c.im.oidb.cmd0x769.DeviceInfo\x12\x0c\n\x04info\x18\x03 \x01(\t\x12\x10\n\x08province\x18\x04 \x01(\t\x12\x0c\n\x04\x63ity\x18\x05 \x01(\t\x12\x15\n\rreq_debug_msg\x18\x06 \x01(\x05\x12N\n\x1bquery_uin_package_usage_req\x18\x65 \x01(\x0b\x32).im.oidb.cmd0x769.QueryUinPackageUsageReq\"\x98\x01\n\x07RspBody\x12\x0e\n\x06result\x18\x01 \x01(\r\x12-\n\x0b\x63onfig_list\x18\x02 \x03(\x0b\x32\x18.im.oidb.cmd0x769.Config\x12N\n\x1bquery_uin_package_usage_rsp\x18\x65 \x01(\x0b\x32).im.oidb.cmd0x769.QueryUinPackageUsageRsp\"X\n\x06Screen\x12\r\n\x05model\x18\x01 \x01(\t\x12\r\n\x05width\x18\x02 \x01(\r\x12\x0e\n\x06height\x18\x03 \x01(\r\x12\x0b\n\x03\x64pi\x18\x04 \x01(\r\x12\x13\n\x0bmulti_touch\x18\x05 \x01(\x08\",\n\x07Storage\x12\x0f\n\x07\x62uiltin\x18\x01 \x01(\x04\x12\x10\n\x08\x65xternal\x18\x02 \x01(\x04\"S\n\x12UinPackageUsedInfo\x12\x0f\n\x07rule_id\x18\x01 \x01(\r\x12\x0e\n\x06\x61uthor\x18\x02 \x01(\t\x12\x0b\n\x03url\x18\x03 \x01(\t\x12\x0f\n\x07uin_num\x18\x04 \x01(\x04'
-)
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n&cai/pb/im/oidb/cmd0x769/cmd0x769.proto\x12\x10im.oidb.cmd0x769\"6\n\x03\x43PU\x12\r\n\x05model\x18\x01 \x01(\t\x12\r\n\x05\x63ores\x18\x02 \x01(\r\x12\x11\n\tfrequency\x18\x03 \x01(\r\";\n\x06\x43\x61mera\x12\x0f\n\x07primary\x18\x01 \x01(\x04\x12\x11\n\tsecondary\x18\x02 \x01(\x04\x12\r\n\x05\x66lash\x18\x03 \x01(\x08\"\x85\x01\n\x06\x43onfig\x12\x0c\n\x04type\x18\x01 \x01(\r\x12\x0f\n\x07version\x18\x02 \x01(\r\x12\x14\n\x0c\x63ontent_list\x18\x03 \x03(\t\x12\x11\n\tdebug_msg\x18\x04 \x01(\t\x12\x33\n\x10msg_content_list\x18\x05 \x03(\x0b\x32\x19.im.oidb.cmd0x769.Content\"*\n\tConfigSeq\x12\x0c\n\x04type\x18\x01 \x01(\r\x12\x0f\n\x07version\x18\x02 \x01(\r\"=\n\x07\x43ontent\x12\x0f\n\x07task_id\x18\x01 \x01(\r\x12\x10\n\x08\x63ompress\x18\x02 \x01(\r\x12\x0f\n\x07\x63ontent\x18\n \x01(\x0c\"\x9a\x02\n\nDeviceInfo\x12\r\n\x05\x62rand\x18\x01 \x01(\t\x12\r\n\x05model\x18\x02 \x01(\t\x12 \n\x02os\x18\x03 \x01(\x0b\x32\x14.im.oidb.cmd0x769.OS\x12\"\n\x03\x63pu\x18\x04 \x01(\x0b\x32\x15.im.oidb.cmd0x769.CPU\x12(\n\x06memory\x18\x05 \x01(\x0b\x32\x18.im.oidb.cmd0x769.Memory\x12*\n\x07storage\x18\x06 \x01(\x0b\x32\x19.im.oidb.cmd0x769.Storage\x12(\n\x06screen\x18\x07 \x01(\x0b\x32\x18.im.oidb.cmd0x769.Screen\x12(\n\x06\x63\x61mera\x18\x08 \x01(\x0b\x32\x18.im.oidb.cmd0x769.Camera\"(\n\x06Memory\x12\r\n\x05total\x18\x01 \x01(\x04\x12\x0f\n\x07process\x18\x02 \x01(\x04\"M\n\x02OS\x12\x0c\n\x04type\x18\x01 \x01(\r\x12\x0f\n\x07version\x18\x02 \x01(\t\x12\x0b\n\x03sdk\x18\x03 \x01(\t\x12\x0e\n\x06kernel\x18\x04 \x01(\t\x12\x0b\n\x03rom\x18\x05 \x01(\t\">\n\x17QueryUinPackageUsageReq\x12\x0c\n\x04type\x18\x01 \x01(\r\x12\x15\n\ruin_file_size\x18\x02 \x01(\x04\"\xad\x01\n\x17QueryUinPackageUsageRsp\x12\x0e\n\x06status\x18\x01 \x01(\r\x12\x14\n\x0cleft_uin_num\x18\x02 \x01(\x04\x12\x13\n\x0bmax_uin_num\x18\x03 \x01(\x04\x12\x12\n\nproportion\x18\x04 \x01(\r\x12\x43\n\x15uin_package_used_list\x18\n \x03(\x0b\x32$.im.oidb.cmd0x769.UinPackageUsedInfo\"\x83\x02\n\x07ReqBody\x12\x30\n\x0b\x63onfig_list\x18\x01 \x03(\x0b\x32\x1b.im.oidb.cmd0x769.ConfigSeq\x12\x31\n\x0b\x64\x65vice_info\x18\x02 \x01(\x0b\x32\x1c.im.oidb.cmd0x769.DeviceInfo\x12\x0c\n\x04info\x18\x03 \x01(\t\x12\x10\n\x08province\x18\x04 \x01(\t\x12\x0c\n\x04\x63ity\x18\x05 \x01(\t\x12\x15\n\rreq_debug_msg\x18\x06 \x01(\x05\x12N\n\x1bquery_uin_package_usage_req\x18\x65 \x01(\x0b\x32).im.oidb.cmd0x769.QueryUinPackageUsageReq\"\x98\x01\n\x07RspBody\x12\x0e\n\x06result\x18\x01 \x01(\r\x12-\n\x0b\x63onfig_list\x18\x02 \x03(\x0b\x32\x18.im.oidb.cmd0x769.Config\x12N\n\x1bquery_uin_package_usage_rsp\x18\x65 \x01(\x0b\x32).im.oidb.cmd0x769.QueryUinPackageUsageRsp\"X\n\x06Screen\x12\r\n\x05model\x18\x01 \x01(\t\x12\r\n\x05width\x18\x02 \x01(\r\x12\x0e\n\x06height\x18\x03 \x01(\r\x12\x0b\n\x03\x64pi\x18\x04 \x01(\r\x12\x13\n\x0bmulti_touch\x18\x05 \x01(\x08\",\n\x07Storage\x12\x0f\n\x07\x62uiltin\x18\x01 \x01(\x04\x12\x10\n\x08\x65xternal\x18\x02 \x01(\x04\"S\n\x12UinPackageUsedInfo\x12\x0f\n\x07rule_id\x18\x01 \x01(\r\x12\x0e\n\x06\x61uthor\x18\x02 \x01(\t\x12\x0b\n\x03url\x18\x03 \x01(\t\x12\x0f\n\x07uin_num\x18\x04 \x01(\x04')
-
-_CPU = _descriptor.Descriptor(
- name='CPU',
- full_name='im.oidb.cmd0x769.CPU',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='model', full_name='im.oidb.cmd0x769.CPU.model', index=0,
- number=1, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='cores', full_name='im.oidb.cmd0x769.CPU.cores', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='frequency', full_name='im.oidb.cmd0x769.CPU.frequency', index=2,
- number=3, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=60,
- serialized_end=114,
-)
-
-
-_CAMERA = _descriptor.Descriptor(
- name='Camera',
- full_name='im.oidb.cmd0x769.Camera',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='primary', full_name='im.oidb.cmd0x769.Camera.primary', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='secondary', full_name='im.oidb.cmd0x769.Camera.secondary', index=1,
- number=2, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='flash', full_name='im.oidb.cmd0x769.Camera.flash', index=2,
- number=3, type=8, cpp_type=7, label=1,
- has_default_value=False, default_value=False,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=116,
- serialized_end=175,
-)
-
-
-_CONFIG = _descriptor.Descriptor(
- name='Config',
- full_name='im.oidb.cmd0x769.Config',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='type', full_name='im.oidb.cmd0x769.Config.type', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='version', full_name='im.oidb.cmd0x769.Config.version', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='content_list', full_name='im.oidb.cmd0x769.Config.content_list', index=2,
- number=3, type=9, cpp_type=9, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='debug_msg', full_name='im.oidb.cmd0x769.Config.debug_msg', index=3,
- number=4, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='msg_content_list', full_name='im.oidb.cmd0x769.Config.msg_content_list', index=4,
- number=5, type=11, cpp_type=10, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=178,
- serialized_end=311,
-)
-
-
-_CONFIGSEQ = _descriptor.Descriptor(
- name='ConfigSeq',
- full_name='im.oidb.cmd0x769.ConfigSeq',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='type', full_name='im.oidb.cmd0x769.ConfigSeq.type', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='version', full_name='im.oidb.cmd0x769.ConfigSeq.version', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=313,
- serialized_end=355,
-)
-
-
-_CONTENT = _descriptor.Descriptor(
- name='Content',
- full_name='im.oidb.cmd0x769.Content',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='task_id', full_name='im.oidb.cmd0x769.Content.task_id', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='compress', full_name='im.oidb.cmd0x769.Content.compress', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='content', full_name='im.oidb.cmd0x769.Content.content', index=2,
- number=10, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=357,
- serialized_end=418,
-)
-
-
-_DEVICEINFO = _descriptor.Descriptor(
- name='DeviceInfo',
- full_name='im.oidb.cmd0x769.DeviceInfo',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='brand', full_name='im.oidb.cmd0x769.DeviceInfo.brand', index=0,
- number=1, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='model', full_name='im.oidb.cmd0x769.DeviceInfo.model', index=1,
- number=2, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='os', full_name='im.oidb.cmd0x769.DeviceInfo.os', index=2,
- number=3, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='cpu', full_name='im.oidb.cmd0x769.DeviceInfo.cpu', index=3,
- number=4, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='memory', full_name='im.oidb.cmd0x769.DeviceInfo.memory', index=4,
- number=5, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='storage', full_name='im.oidb.cmd0x769.DeviceInfo.storage', index=5,
- number=6, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='screen', full_name='im.oidb.cmd0x769.DeviceInfo.screen', index=6,
- number=7, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='camera', full_name='im.oidb.cmd0x769.DeviceInfo.camera', index=7,
- number=8, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=421,
- serialized_end=703,
-)
-
-
-_MEMORY = _descriptor.Descriptor(
- name='Memory',
- full_name='im.oidb.cmd0x769.Memory',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='total', full_name='im.oidb.cmd0x769.Memory.total', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='process', full_name='im.oidb.cmd0x769.Memory.process', index=1,
- number=2, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=705,
- serialized_end=745,
-)
-
-
-_OS = _descriptor.Descriptor(
- name='OS',
- full_name='im.oidb.cmd0x769.OS',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='type', full_name='im.oidb.cmd0x769.OS.type', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='version', full_name='im.oidb.cmd0x769.OS.version', index=1,
- number=2, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='sdk', full_name='im.oidb.cmd0x769.OS.sdk', index=2,
- number=3, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='kernel', full_name='im.oidb.cmd0x769.OS.kernel', index=3,
- number=4, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='rom', full_name='im.oidb.cmd0x769.OS.rom', index=4,
- number=5, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=747,
- serialized_end=824,
-)
-
-
-_QUERYUINPACKAGEUSAGEREQ = _descriptor.Descriptor(
- name='QueryUinPackageUsageReq',
- full_name='im.oidb.cmd0x769.QueryUinPackageUsageReq',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='type', full_name='im.oidb.cmd0x769.QueryUinPackageUsageReq.type', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='uin_file_size', full_name='im.oidb.cmd0x769.QueryUinPackageUsageReq.uin_file_size', index=1,
- number=2, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=826,
- serialized_end=888,
-)
-
-
-_QUERYUINPACKAGEUSAGERSP = _descriptor.Descriptor(
- name='QueryUinPackageUsageRsp',
- full_name='im.oidb.cmd0x769.QueryUinPackageUsageRsp',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='status', full_name='im.oidb.cmd0x769.QueryUinPackageUsageRsp.status', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='left_uin_num', full_name='im.oidb.cmd0x769.QueryUinPackageUsageRsp.left_uin_num', index=1,
- number=2, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='max_uin_num', full_name='im.oidb.cmd0x769.QueryUinPackageUsageRsp.max_uin_num', index=2,
- number=3, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='proportion', full_name='im.oidb.cmd0x769.QueryUinPackageUsageRsp.proportion', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='uin_package_used_list', full_name='im.oidb.cmd0x769.QueryUinPackageUsageRsp.uin_package_used_list', index=4,
- number=10, type=11, cpp_type=10, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=891,
- serialized_end=1064,
-)
-
-
-_REQBODY = _descriptor.Descriptor(
- name='ReqBody',
- full_name='im.oidb.cmd0x769.ReqBody',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='config_list', full_name='im.oidb.cmd0x769.ReqBody.config_list', index=0,
- number=1, type=11, cpp_type=10, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='device_info', full_name='im.oidb.cmd0x769.ReqBody.device_info', index=1,
- number=2, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='info', full_name='im.oidb.cmd0x769.ReqBody.info', index=2,
- number=3, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='province', full_name='im.oidb.cmd0x769.ReqBody.province', index=3,
- number=4, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='city', full_name='im.oidb.cmd0x769.ReqBody.city', index=4,
- number=5, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='req_debug_msg', full_name='im.oidb.cmd0x769.ReqBody.req_debug_msg', index=5,
- number=6, type=5, cpp_type=1, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='query_uin_package_usage_req', full_name='im.oidb.cmd0x769.ReqBody.query_uin_package_usage_req', index=6,
- number=101, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=1067,
- serialized_end=1326,
-)
-
-
-_RSPBODY = _descriptor.Descriptor(
- name='RspBody',
- full_name='im.oidb.cmd0x769.RspBody',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='result', full_name='im.oidb.cmd0x769.RspBody.result', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='config_list', full_name='im.oidb.cmd0x769.RspBody.config_list', index=1,
- number=2, type=11, cpp_type=10, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='query_uin_package_usage_rsp', full_name='im.oidb.cmd0x769.RspBody.query_uin_package_usage_rsp', index=2,
- number=101, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=1329,
- serialized_end=1481,
-)
-
-
-_SCREEN = _descriptor.Descriptor(
- name='Screen',
- full_name='im.oidb.cmd0x769.Screen',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='model', full_name='im.oidb.cmd0x769.Screen.model', index=0,
- number=1, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='width', full_name='im.oidb.cmd0x769.Screen.width', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='height', full_name='im.oidb.cmd0x769.Screen.height', index=2,
- number=3, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='dpi', full_name='im.oidb.cmd0x769.Screen.dpi', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='multi_touch', full_name='im.oidb.cmd0x769.Screen.multi_touch', index=4,
- number=5, type=8, cpp_type=7, label=1,
- has_default_value=False, default_value=False,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=1483,
- serialized_end=1571,
-)
-
-
-_STORAGE = _descriptor.Descriptor(
- name='Storage',
- full_name='im.oidb.cmd0x769.Storage',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='builtin', full_name='im.oidb.cmd0x769.Storage.builtin', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='external', full_name='im.oidb.cmd0x769.Storage.external', index=1,
- number=2, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=1573,
- serialized_end=1617,
-)
-
-
-_UINPACKAGEUSEDINFO = _descriptor.Descriptor(
- name='UinPackageUsedInfo',
- full_name='im.oidb.cmd0x769.UinPackageUsedInfo',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='rule_id', full_name='im.oidb.cmd0x769.UinPackageUsedInfo.rule_id', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='author', full_name='im.oidb.cmd0x769.UinPackageUsedInfo.author', index=1,
- number=2, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='url', full_name='im.oidb.cmd0x769.UinPackageUsedInfo.url', index=2,
- number=3, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='uin_num', full_name='im.oidb.cmd0x769.UinPackageUsedInfo.uin_num', index=3,
- number=4, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=1619,
- serialized_end=1702,
-)
-
-_CONFIG.fields_by_name['msg_content_list'].message_type = _CONTENT
-_DEVICEINFO.fields_by_name['os'].message_type = _OS
-_DEVICEINFO.fields_by_name['cpu'].message_type = _CPU
-_DEVICEINFO.fields_by_name['memory'].message_type = _MEMORY
-_DEVICEINFO.fields_by_name['storage'].message_type = _STORAGE
-_DEVICEINFO.fields_by_name['screen'].message_type = _SCREEN
-_DEVICEINFO.fields_by_name['camera'].message_type = _CAMERA
-_QUERYUINPACKAGEUSAGERSP.fields_by_name['uin_package_used_list'].message_type = _UINPACKAGEUSEDINFO
-_REQBODY.fields_by_name['config_list'].message_type = _CONFIGSEQ
-_REQBODY.fields_by_name['device_info'].message_type = _DEVICEINFO
-_REQBODY.fields_by_name['query_uin_package_usage_req'].message_type = _QUERYUINPACKAGEUSAGEREQ
-_RSPBODY.fields_by_name['config_list'].message_type = _CONFIG
-_RSPBODY.fields_by_name['query_uin_package_usage_rsp'].message_type = _QUERYUINPACKAGEUSAGERSP
-DESCRIPTOR.message_types_by_name['CPU'] = _CPU
-DESCRIPTOR.message_types_by_name['Camera'] = _CAMERA
-DESCRIPTOR.message_types_by_name['Config'] = _CONFIG
-DESCRIPTOR.message_types_by_name['ConfigSeq'] = _CONFIGSEQ
-DESCRIPTOR.message_types_by_name['Content'] = _CONTENT
-DESCRIPTOR.message_types_by_name['DeviceInfo'] = _DEVICEINFO
-DESCRIPTOR.message_types_by_name['Memory'] = _MEMORY
-DESCRIPTOR.message_types_by_name['OS'] = _OS
-DESCRIPTOR.message_types_by_name['QueryUinPackageUsageReq'] = _QUERYUINPACKAGEUSAGEREQ
-DESCRIPTOR.message_types_by_name['QueryUinPackageUsageRsp'] = _QUERYUINPACKAGEUSAGERSP
-DESCRIPTOR.message_types_by_name['ReqBody'] = _REQBODY
-DESCRIPTOR.message_types_by_name['RspBody'] = _RSPBODY
-DESCRIPTOR.message_types_by_name['Screen'] = _SCREEN
-DESCRIPTOR.message_types_by_name['Storage'] = _STORAGE
-DESCRIPTOR.message_types_by_name['UinPackageUsedInfo'] = _UINPACKAGEUSEDINFO
-_sym_db.RegisterFileDescriptor(DESCRIPTOR)
-
+_CPU = DESCRIPTOR.message_types_by_name['CPU']
+_CAMERA = DESCRIPTOR.message_types_by_name['Camera']
+_CONFIG = DESCRIPTOR.message_types_by_name['Config']
+_CONFIGSEQ = DESCRIPTOR.message_types_by_name['ConfigSeq']
+_CONTENT = DESCRIPTOR.message_types_by_name['Content']
+_DEVICEINFO = DESCRIPTOR.message_types_by_name['DeviceInfo']
+_MEMORY = DESCRIPTOR.message_types_by_name['Memory']
+_OS = DESCRIPTOR.message_types_by_name['OS']
+_QUERYUINPACKAGEUSAGEREQ = DESCRIPTOR.message_types_by_name['QueryUinPackageUsageReq']
+_QUERYUINPACKAGEUSAGERSP = DESCRIPTOR.message_types_by_name['QueryUinPackageUsageRsp']
+_REQBODY = DESCRIPTOR.message_types_by_name['ReqBody']
+_RSPBODY = DESCRIPTOR.message_types_by_name['RspBody']
+_SCREEN = DESCRIPTOR.message_types_by_name['Screen']
+_STORAGE = DESCRIPTOR.message_types_by_name['Storage']
+_UINPACKAGEUSEDINFO = DESCRIPTOR.message_types_by_name['UinPackageUsedInfo']
CPU = _reflection.GeneratedProtocolMessageType('CPU', (_message.Message,), {
'DESCRIPTOR' : _CPU,
'__module__' : 'cai.pb.im.oidb.cmd0x769.cmd0x769_pb2'
@@ -947,5 +138,37 @@
})
_sym_db.RegisterMessage(UinPackageUsedInfo)
-
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ _CPU._serialized_start=60
+ _CPU._serialized_end=114
+ _CAMERA._serialized_start=116
+ _CAMERA._serialized_end=175
+ _CONFIG._serialized_start=178
+ _CONFIG._serialized_end=311
+ _CONFIGSEQ._serialized_start=313
+ _CONFIGSEQ._serialized_end=355
+ _CONTENT._serialized_start=357
+ _CONTENT._serialized_end=418
+ _DEVICEINFO._serialized_start=421
+ _DEVICEINFO._serialized_end=703
+ _MEMORY._serialized_start=705
+ _MEMORY._serialized_end=745
+ _OS._serialized_start=747
+ _OS._serialized_end=824
+ _QUERYUINPACKAGEUSAGEREQ._serialized_start=826
+ _QUERYUINPACKAGEUSAGEREQ._serialized_end=888
+ _QUERYUINPACKAGEUSAGERSP._serialized_start=891
+ _QUERYUINPACKAGEUSAGERSP._serialized_end=1064
+ _REQBODY._serialized_start=1067
+ _REQBODY._serialized_end=1326
+ _RSPBODY._serialized_start=1329
+ _RSPBODY._serialized_end=1481
+ _SCREEN._serialized_start=1483
+ _SCREEN._serialized_end=1571
+ _STORAGE._serialized_start=1573
+ _STORAGE._serialized_end=1617
+ _UINPACKAGEUSEDINFO._serialized_start=1619
+ _UINPACKAGEUSEDINFO._serialized_end=1702
# @@protoc_insertion_point(module_scope)
diff --git a/cai/pb/im/oidb/cmd0x769/cmd0x769_pb2.pyi b/cai/pb/im/oidb/cmd0x769/cmd0x769_pb2.pyi
index 55f2a335..307d9ea0 100644
--- a/cai/pb/im/oidb/cmd0x769/cmd0x769_pb2.pyi
+++ b/cai/pb/im/oidb/cmd0x769/cmd0x769_pb2.pyi
@@ -33,105 +33,103 @@ from typing_extensions import (
)
-DESCRIPTOR: FileDescriptor = ...
+DESCRIPTOR: FileDescriptor
class CPU(Message):
- DESCRIPTOR: Descriptor = ...
+ """tencent/im/oidb/cmd0x769/Oidb_0x769.java
+
+ """
+ DESCRIPTOR: Descriptor
MODEL_FIELD_NUMBER: int
CORES_FIELD_NUMBER: int
FREQUENCY_FIELD_NUMBER: int
- model: Text = ...
- cores: int = ...
- frequency: int = ...
-
+ model: Text
+ cores: int
+ frequency: int
def __init__(self,
*,
- model : Optional[Text] = ...,
- cores : Optional[int] = ...,
- frequency : Optional[int] = ...,
+ model: Optional[Text] = ...,
+ cores: Optional[int] = ...,
+ frequency: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"cores",b"cores",u"frequency",b"frequency",u"model",b"model"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"cores",b"cores",u"frequency",b"frequency",u"model",b"model"]) -> None: ...
+ def HasField(self, field_name: Literal["cores",b"cores","frequency",b"frequency","model",b"model"]) -> bool: ...
+ def ClearField(self, field_name: Literal["cores",b"cores","frequency",b"frequency","model",b"model"]) -> None: ...
class Camera(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
PRIMARY_FIELD_NUMBER: int
SECONDARY_FIELD_NUMBER: int
FLASH_FIELD_NUMBER: int
- primary: int = ...
- secondary: int = ...
- flash: bool = ...
-
+ primary: int
+ secondary: int
+ flash: bool
def __init__(self,
*,
- primary : Optional[int] = ...,
- secondary : Optional[int] = ...,
- flash : Optional[bool] = ...,
+ primary: Optional[int] = ...,
+ secondary: Optional[int] = ...,
+ flash: Optional[bool] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"flash",b"flash",u"primary",b"primary",u"secondary",b"secondary"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"flash",b"flash",u"primary",b"primary",u"secondary",b"secondary"]) -> None: ...
+ def HasField(self, field_name: Literal["flash",b"flash","primary",b"primary","secondary",b"secondary"]) -> bool: ...
+ def ClearField(self, field_name: Literal["flash",b"flash","primary",b"primary","secondary",b"secondary"]) -> None: ...
class Config(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
TYPE_FIELD_NUMBER: int
VERSION_FIELD_NUMBER: int
CONTENT_LIST_FIELD_NUMBER: int
DEBUG_MSG_FIELD_NUMBER: int
MSG_CONTENT_LIST_FIELD_NUMBER: int
- type: int = ...
- version: int = ...
- content_list: RepeatedScalarFieldContainer[Text] = ...
- debug_msg: Text = ...
-
+ type: int
+ version: int
+ @property
+ def content_list(self) -> RepeatedScalarFieldContainer[Text]: ...
+ debug_msg: Text
@property
def msg_content_list(self) -> RepeatedCompositeFieldContainer[Content]: ...
-
def __init__(self,
*,
- type : Optional[int] = ...,
- version : Optional[int] = ...,
- content_list : Optional[Iterable[Text]] = ...,
- debug_msg : Optional[Text] = ...,
- msg_content_list : Optional[Iterable[Content]] = ...,
+ type: Optional[int] = ...,
+ version: Optional[int] = ...,
+ content_list: Optional[Iterable[Text]] = ...,
+ debug_msg: Optional[Text] = ...,
+ msg_content_list: Optional[Iterable[Content]] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"debug_msg",b"debug_msg",u"type",b"type",u"version",b"version"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"content_list",b"content_list",u"debug_msg",b"debug_msg",u"msg_content_list",b"msg_content_list",u"type",b"type",u"version",b"version"]) -> None: ...
+ def HasField(self, field_name: Literal["debug_msg",b"debug_msg","type",b"type","version",b"version"]) -> bool: ...
+ def ClearField(self, field_name: Literal["content_list",b"content_list","debug_msg",b"debug_msg","msg_content_list",b"msg_content_list","type",b"type","version",b"version"]) -> None: ...
class ConfigSeq(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
TYPE_FIELD_NUMBER: int
VERSION_FIELD_NUMBER: int
- type: int = ...
- version: int = ...
-
+ type: int
+ version: int
def __init__(self,
*,
- type : Optional[int] = ...,
- version : Optional[int] = ...,
+ type: Optional[int] = ...,
+ version: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"type",b"type",u"version",b"version"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"type",b"type",u"version",b"version"]) -> None: ...
+ def HasField(self, field_name: Literal["type",b"type","version",b"version"]) -> bool: ...
+ def ClearField(self, field_name: Literal["type",b"type","version",b"version"]) -> None: ...
class Content(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
TASK_ID_FIELD_NUMBER: int
COMPRESS_FIELD_NUMBER: int
CONTENT_FIELD_NUMBER: int
- task_id: int = ...
- compress: int = ...
- content: bytes = ...
-
+ task_id: int
+ compress: int
+ content: bytes
def __init__(self,
*,
- task_id : Optional[int] = ...,
- compress : Optional[int] = ...,
- content : Optional[bytes] = ...,
+ task_id: Optional[int] = ...,
+ compress: Optional[int] = ...,
+ content: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"compress",b"compress",u"content",b"content",u"task_id",b"task_id"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"compress",b"compress",u"content",b"content",u"task_id",b"task_id"]) -> None: ...
+ def HasField(self, field_name: Literal["compress",b"compress","content",b"content","task_id",b"task_id"]) -> bool: ...
+ def ClearField(self, field_name: Literal["compress",b"compress","content",b"content","task_id",b"task_id"]) -> None: ...
class DeviceInfo(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
BRAND_FIELD_NUMBER: int
MODEL_FIELD_NUMBER: int
OS_FIELD_NUMBER: int
@@ -140,123 +138,111 @@ class DeviceInfo(Message):
STORAGE_FIELD_NUMBER: int
SCREEN_FIELD_NUMBER: int
CAMERA_FIELD_NUMBER: int
- brand: Text = ...
- model: Text = ...
-
+ brand: Text
+ model: Text
@property
def os(self) -> OS: ...
-
@property
def cpu(self) -> CPU: ...
-
@property
def memory(self) -> Memory: ...
-
@property
def storage(self) -> Storage: ...
-
@property
def screen(self) -> Screen: ...
-
@property
def camera(self) -> Camera: ...
-
def __init__(self,
*,
- brand : Optional[Text] = ...,
- model : Optional[Text] = ...,
- os : Optional[OS] = ...,
- cpu : Optional[CPU] = ...,
- memory : Optional[Memory] = ...,
- storage : Optional[Storage] = ...,
- screen : Optional[Screen] = ...,
- camera : Optional[Camera] = ...,
+ brand: Optional[Text] = ...,
+ model: Optional[Text] = ...,
+ os: Optional[OS] = ...,
+ cpu: Optional[CPU] = ...,
+ memory: Optional[Memory] = ...,
+ storage: Optional[Storage] = ...,
+ screen: Optional[Screen] = ...,
+ camera: Optional[Camera] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"brand",b"brand",u"camera",b"camera",u"cpu",b"cpu",u"memory",b"memory",u"model",b"model",u"os",b"os",u"screen",b"screen",u"storage",b"storage"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"brand",b"brand",u"camera",b"camera",u"cpu",b"cpu",u"memory",b"memory",u"model",b"model",u"os",b"os",u"screen",b"screen",u"storage",b"storage"]) -> None: ...
+ def HasField(self, field_name: Literal["brand",b"brand","camera",b"camera","cpu",b"cpu","memory",b"memory","model",b"model","os",b"os","screen",b"screen","storage",b"storage"]) -> bool: ...
+ def ClearField(self, field_name: Literal["brand",b"brand","camera",b"camera","cpu",b"cpu","memory",b"memory","model",b"model","os",b"os","screen",b"screen","storage",b"storage"]) -> None: ...
class Memory(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
TOTAL_FIELD_NUMBER: int
PROCESS_FIELD_NUMBER: int
- total: int = ...
- process: int = ...
-
+ total: int
+ process: int
def __init__(self,
*,
- total : Optional[int] = ...,
- process : Optional[int] = ...,
+ total: Optional[int] = ...,
+ process: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"process",b"process",u"total",b"total"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"process",b"process",u"total",b"total"]) -> None: ...
+ def HasField(self, field_name: Literal["process",b"process","total",b"total"]) -> bool: ...
+ def ClearField(self, field_name: Literal["process",b"process","total",b"total"]) -> None: ...
class OS(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
TYPE_FIELD_NUMBER: int
VERSION_FIELD_NUMBER: int
SDK_FIELD_NUMBER: int
KERNEL_FIELD_NUMBER: int
ROM_FIELD_NUMBER: int
- type: int = ...
- version: Text = ...
- sdk: Text = ...
- kernel: Text = ...
- rom: Text = ...
-
+ type: int
+ version: Text
+ sdk: Text
+ kernel: Text
+ rom: Text
def __init__(self,
*,
- type : Optional[int] = ...,
- version : Optional[Text] = ...,
- sdk : Optional[Text] = ...,
- kernel : Optional[Text] = ...,
- rom : Optional[Text] = ...,
+ type: Optional[int] = ...,
+ version: Optional[Text] = ...,
+ sdk: Optional[Text] = ...,
+ kernel: Optional[Text] = ...,
+ rom: Optional[Text] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"kernel",b"kernel",u"rom",b"rom",u"sdk",b"sdk",u"type",b"type",u"version",b"version"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"kernel",b"kernel",u"rom",b"rom",u"sdk",b"sdk",u"type",b"type",u"version",b"version"]) -> None: ...
+ def HasField(self, field_name: Literal["kernel",b"kernel","rom",b"rom","sdk",b"sdk","type",b"type","version",b"version"]) -> bool: ...
+ def ClearField(self, field_name: Literal["kernel",b"kernel","rom",b"rom","sdk",b"sdk","type",b"type","version",b"version"]) -> None: ...
class QueryUinPackageUsageReq(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
TYPE_FIELD_NUMBER: int
UIN_FILE_SIZE_FIELD_NUMBER: int
- type: int = ...
- uin_file_size: int = ...
-
+ type: int
+ uin_file_size: int
def __init__(self,
*,
- type : Optional[int] = ...,
- uin_file_size : Optional[int] = ...,
+ type: Optional[int] = ...,
+ uin_file_size: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"type",b"type",u"uin_file_size",b"uin_file_size"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"type",b"type",u"uin_file_size",b"uin_file_size"]) -> None: ...
+ def HasField(self, field_name: Literal["type",b"type","uin_file_size",b"uin_file_size"]) -> bool: ...
+ def ClearField(self, field_name: Literal["type",b"type","uin_file_size",b"uin_file_size"]) -> None: ...
class QueryUinPackageUsageRsp(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
STATUS_FIELD_NUMBER: int
LEFT_UIN_NUM_FIELD_NUMBER: int
MAX_UIN_NUM_FIELD_NUMBER: int
PROPORTION_FIELD_NUMBER: int
UIN_PACKAGE_USED_LIST_FIELD_NUMBER: int
- status: int = ...
- left_uin_num: int = ...
- max_uin_num: int = ...
- proportion: int = ...
-
+ status: int
+ left_uin_num: int
+ max_uin_num: int
+ proportion: int
@property
def uin_package_used_list(self) -> RepeatedCompositeFieldContainer[UinPackageUsedInfo]: ...
-
def __init__(self,
*,
- status : Optional[int] = ...,
- left_uin_num : Optional[int] = ...,
- max_uin_num : Optional[int] = ...,
- proportion : Optional[int] = ...,
- uin_package_used_list : Optional[Iterable[UinPackageUsedInfo]] = ...,
+ status: Optional[int] = ...,
+ left_uin_num: Optional[int] = ...,
+ max_uin_num: Optional[int] = ...,
+ proportion: Optional[int] = ...,
+ uin_package_used_list: Optional[Iterable[UinPackageUsedInfo]] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"left_uin_num",b"left_uin_num",u"max_uin_num",b"max_uin_num",u"proportion",b"proportion",u"status",b"status"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"left_uin_num",b"left_uin_num",u"max_uin_num",b"max_uin_num",u"proportion",b"proportion",u"status",b"status",u"uin_package_used_list",b"uin_package_used_list"]) -> None: ...
+ def HasField(self, field_name: Literal["left_uin_num",b"left_uin_num","max_uin_num",b"max_uin_num","proportion",b"proportion","status",b"status"]) -> bool: ...
+ def ClearField(self, field_name: Literal["left_uin_num",b"left_uin_num","max_uin_num",b"max_uin_num","proportion",b"proportion","status",b"status","uin_package_used_list",b"uin_package_used_list"]) -> None: ...
class ReqBody(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
CONFIG_LIST_FIELD_NUMBER: int
DEVICE_INFO_FIELD_NUMBER: int
INFO_FIELD_NUMBER: int
@@ -264,111 +250,101 @@ class ReqBody(Message):
CITY_FIELD_NUMBER: int
REQ_DEBUG_MSG_FIELD_NUMBER: int
QUERY_UIN_PACKAGE_USAGE_REQ_FIELD_NUMBER: int
- info: Text = ...
- province: Text = ...
- city: Text = ...
- req_debug_msg: int = ...
-
@property
def config_list(self) -> RepeatedCompositeFieldContainer[ConfigSeq]: ...
-
@property
def device_info(self) -> DeviceInfo: ...
-
+ info: Text
+ province: Text
+ city: Text
+ req_debug_msg: int
@property
def query_uin_package_usage_req(self) -> QueryUinPackageUsageReq: ...
-
def __init__(self,
*,
- config_list : Optional[Iterable[ConfigSeq]] = ...,
- device_info : Optional[DeviceInfo] = ...,
- info : Optional[Text] = ...,
- province : Optional[Text] = ...,
- city : Optional[Text] = ...,
- req_debug_msg : Optional[int] = ...,
- query_uin_package_usage_req : Optional[QueryUinPackageUsageReq] = ...,
+ config_list: Optional[Iterable[ConfigSeq]] = ...,
+ device_info: Optional[DeviceInfo] = ...,
+ info: Optional[Text] = ...,
+ province: Optional[Text] = ...,
+ city: Optional[Text] = ...,
+ req_debug_msg: Optional[int] = ...,
+ query_uin_package_usage_req: Optional[QueryUinPackageUsageReq] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"city",b"city",u"device_info",b"device_info",u"info",b"info",u"province",b"province",u"query_uin_package_usage_req",b"query_uin_package_usage_req",u"req_debug_msg",b"req_debug_msg"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"city",b"city",u"config_list",b"config_list",u"device_info",b"device_info",u"info",b"info",u"province",b"province",u"query_uin_package_usage_req",b"query_uin_package_usage_req",u"req_debug_msg",b"req_debug_msg"]) -> None: ...
+ def HasField(self, field_name: Literal["city",b"city","device_info",b"device_info","info",b"info","province",b"province","query_uin_package_usage_req",b"query_uin_package_usage_req","req_debug_msg",b"req_debug_msg"]) -> bool: ...
+ def ClearField(self, field_name: Literal["city",b"city","config_list",b"config_list","device_info",b"device_info","info",b"info","province",b"province","query_uin_package_usage_req",b"query_uin_package_usage_req","req_debug_msg",b"req_debug_msg"]) -> None: ...
class RspBody(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
RESULT_FIELD_NUMBER: int
CONFIG_LIST_FIELD_NUMBER: int
QUERY_UIN_PACKAGE_USAGE_RSP_FIELD_NUMBER: int
- result: int = ...
-
+ result: int
@property
def config_list(self) -> RepeatedCompositeFieldContainer[Config]: ...
-
@property
def query_uin_package_usage_rsp(self) -> QueryUinPackageUsageRsp: ...
-
def __init__(self,
*,
- result : Optional[int] = ...,
- config_list : Optional[Iterable[Config]] = ...,
- query_uin_package_usage_rsp : Optional[QueryUinPackageUsageRsp] = ...,
+ result: Optional[int] = ...,
+ config_list: Optional[Iterable[Config]] = ...,
+ query_uin_package_usage_rsp: Optional[QueryUinPackageUsageRsp] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"query_uin_package_usage_rsp",b"query_uin_package_usage_rsp",u"result",b"result"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"config_list",b"config_list",u"query_uin_package_usage_rsp",b"query_uin_package_usage_rsp",u"result",b"result"]) -> None: ...
+ def HasField(self, field_name: Literal["query_uin_package_usage_rsp",b"query_uin_package_usage_rsp","result",b"result"]) -> bool: ...
+ def ClearField(self, field_name: Literal["config_list",b"config_list","query_uin_package_usage_rsp",b"query_uin_package_usage_rsp","result",b"result"]) -> None: ...
class Screen(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
MODEL_FIELD_NUMBER: int
WIDTH_FIELD_NUMBER: int
HEIGHT_FIELD_NUMBER: int
DPI_FIELD_NUMBER: int
MULTI_TOUCH_FIELD_NUMBER: int
- model: Text = ...
- width: int = ...
- height: int = ...
- dpi: int = ...
- multi_touch: bool = ...
-
+ model: Text
+ width: int
+ height: int
+ dpi: int
+ multi_touch: bool
def __init__(self,
*,
- model : Optional[Text] = ...,
- width : Optional[int] = ...,
- height : Optional[int] = ...,
- dpi : Optional[int] = ...,
- multi_touch : Optional[bool] = ...,
+ model: Optional[Text] = ...,
+ width: Optional[int] = ...,
+ height: Optional[int] = ...,
+ dpi: Optional[int] = ...,
+ multi_touch: Optional[bool] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"dpi",b"dpi",u"height",b"height",u"model",b"model",u"multi_touch",b"multi_touch",u"width",b"width"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"dpi",b"dpi",u"height",b"height",u"model",b"model",u"multi_touch",b"multi_touch",u"width",b"width"]) -> None: ...
+ def HasField(self, field_name: Literal["dpi",b"dpi","height",b"height","model",b"model","multi_touch",b"multi_touch","width",b"width"]) -> bool: ...
+ def ClearField(self, field_name: Literal["dpi",b"dpi","height",b"height","model",b"model","multi_touch",b"multi_touch","width",b"width"]) -> None: ...
class Storage(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
BUILTIN_FIELD_NUMBER: int
EXTERNAL_FIELD_NUMBER: int
- builtin: int = ...
- external: int = ...
-
+ builtin: int
+ external: int
def __init__(self,
*,
- builtin : Optional[int] = ...,
- external : Optional[int] = ...,
+ builtin: Optional[int] = ...,
+ external: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"builtin",b"builtin",u"external",b"external"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"builtin",b"builtin",u"external",b"external"]) -> None: ...
+ def HasField(self, field_name: Literal["builtin",b"builtin","external",b"external"]) -> bool: ...
+ def ClearField(self, field_name: Literal["builtin",b"builtin","external",b"external"]) -> None: ...
class UinPackageUsedInfo(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
RULE_ID_FIELD_NUMBER: int
AUTHOR_FIELD_NUMBER: int
URL_FIELD_NUMBER: int
UIN_NUM_FIELD_NUMBER: int
- rule_id: int = ...
- author: Text = ...
- url: Text = ...
- uin_num: int = ...
-
+ rule_id: int
+ author: Text
+ url: Text
+ uin_num: int
def __init__(self,
*,
- rule_id : Optional[int] = ...,
- author : Optional[Text] = ...,
- url : Optional[Text] = ...,
- uin_num : Optional[int] = ...,
+ rule_id: Optional[int] = ...,
+ author: Optional[Text] = ...,
+ url: Optional[Text] = ...,
+ uin_num: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"author",b"author",u"rule_id",b"rule_id",u"uin_num",b"uin_num",u"url",b"url"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"author",b"author",u"rule_id",b"rule_id",u"uin_num",b"uin_num",u"url",b"url"]) -> None: ...
+ def HasField(self, field_name: Literal["author",b"author","rule_id",b"rule_id","uin_num",b"uin_num","url",b"url"]) -> bool: ...
+ def ClearField(self, field_name: Literal["author",b"author","rule_id",b"rule_id","uin_num",b"uin_num","url",b"url"]) -> None: ...
diff --git a/cai/pb/im/oidb/cmd0xd50/cmd0xd50_pb2.py b/cai/pb/im/oidb/cmd0xd50/cmd0xd50_pb2.py
index e4a6fb27..51251c5c 100644
--- a/cai/pb/im/oidb/cmd0xd50/cmd0xd50_pb2.py
+++ b/cai/pb/im/oidb/cmd0xd50/cmd0xd50_pb2.py
@@ -3,6 +3,7 @@
# source: cai/pb/im/oidb/cmd0xd50/cmd0xd50.proto
"""Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
@@ -13,544 +14,14 @@
-DESCRIPTOR = _descriptor.FileDescriptor(
- name='cai/pb/im/oidb/cmd0xd50/cmd0xd50.proto',
- package='im.oidb.cmd0xd50',
- syntax='proto2',
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- serialized_pb=b'\n&cai/pb/im/oidb/cmd0xd50/cmd0xd50.proto\x12\x10im.oidb.cmd0xd50\"\xe8\x04\n\rExtSnsFrdData\x12\x0f\n\x07\x66rd_uin\x18\x01 \x01(\x04\x12\x0f\n\x06lovers\x18\xfaU \x01(\x0c\x12\x14\n\nconfidante\x18\x8a\xa4\x01 \x01(\x0c\x12\x0f\n\x05\x62uddy\x18\x9a\xf2\x01 \x01(\x0c\x12\x12\n\x08\x66rd_tree\x18\xa9\xc0\x02 \x01(\x0c\x12\x0e\n\x04\x63hat\x18\xb9\x8e\x03 \x01(\x0c\x12\x10\n\x06praise\x18\xc9\xdc\x03 \x01(\x0c\x12\x14\n\nqzone_love\x18\xd9\xaa\x04 \x01(\x0c\x12\x15\n\x0bqzone_house\x18\xe9\xf8\x04 \x01(\x0c\x12\x16\n\x0cmusic_switch\x18\xf9\xc6\x05 \x01(\x0c\x12\x1f\n\x15mutualmark_alienation\x18\x89\x95\x06 \x01(\x0c\x12\x18\n\x0eunread_message\x18\x99\xe3\x06 \x01(\x0c\x12\x0e\n\x04\x62oat\x18\xa9\xb1\x07 \x01(\x0c\x12\x13\n\tclose_frd\x18\xb9\xff\x07 \x01(\x0c\x12\x1a\n\x10mutualmark_score\x18\xc9\xcd\x08 \x01(\x0c\x12\x16\n\x0cksing_switch\x18\xd9\x9b\t \x01(\x0c\x12\x13\n\tlbs_share\x18\x89\x86\x0b \x01(\x0c\x12\x18\n\x0e\x64ont_forget_me\x18\xb9\xf0\x0c \x01(\x0c\x12)\n\x1fmy_online_status_visible_to_frd\x18\xc9\xbe\r \x01(\x0c\x12)\n\x1f\x66rd_online_status_visible_to_me\x18\xca\xbe\r \x01(\x0c\x12\x18\n\x0evisitor_record\x18\xd9\x8c\x0e \x01(\x0c\x12\x1a\n\x10\x66rd_steal_record\x18\xda\x8c\x0e \x01(\x0c\x12\x19\n\x0fmy_steal_record\x18\xdb\x8c\x0e \x01(\x0c\x12\x10\n\x06\x61vgame\x18\xe9\xda\x0e \x01(\x0c\x12\x17\n\raio_quick_app\x18\xf9\xa8\x0f \x01(\x0c\"!\n\x11KSingRelationInfo\x12\x0c\n\x04\x66lag\x18\x01 \x01(\r\"\xac\x06\n\x07ReqBody\x12\r\n\x05\x61ppid\x18\x01 \x01(\x04\x12\x14\n\x0cmax_pkg_size\x18\x02 \x01(\r\x12\x12\n\nstart_time\x18\x03 \x01(\r\x12\x13\n\x0bstart_index\x18\x04 \x01(\r\x12\x0f\n\x07req_num\x18\x05 \x01(\r\x12\x10\n\x08uin_list\x18\x06 \x03(\x04\x12\x13\n\nreq_lovers\x18\xfaU \x01(\r\x12\x18\n\x0ereq_confidante\x18\x8a\xa4\x01 \x01(\r\x12\x13\n\treq_buddy\x18\x9a\xf2\x01 \x01(\r\x12\x16\n\x0creq_frd_tree\x18\xa9\xc0\x02 \x01(\r\x12\x12\n\x08req_chat\x18\xb9\x8e\x03 \x01(\r\x12\x14\n\nreq_praise\x18\xc9\xdc\x03 \x01(\r\x12\x18\n\x0ereq_qzone_love\x18\xd9\xaa\x04 \x01(\r\x12\x19\n\x0freq_qzone_house\x18\xe9\xf8\x04 \x01(\r\x12\x1a\n\x10req_music_switch\x18\xf9\xc6\x05 \x01(\r\x12#\n\x19req_mutualmark_alienation\x18\x89\x95\x06 \x01(\r\x12\x1c\n\x12req_unread_message\x18\x99\xe3\x06 \x01(\r\x12\x12\n\x08req_boat\x18\xa9\xb1\x07 \x01(\r\x12\x17\n\rreq_close_frd\x18\xb9\xff\x07 \x01(\r\x12\x1e\n\x14req_mutualmark_score\x18\xc9\xcd\x08 \x01(\r\x12\x1a\n\x10req_ksing_switch\x18\xd9\x9b\t \x01(\r\x12!\n\x17req_mutualmark_lbsshare\x18\x89\x86\x0b \x01(\r\x12\x1c\n\x12req_dont_forget_me\x18\xb9\xf0\x0c \x01(\r\x12-\n#req_my_online_status_visible_to_frd\x18\xc9\xbe\r \x01(\r\x12-\n#req_frd_online_status_visible_to_me\x18\xca\xbe\r \x01(\r\x12\x1c\n\x12req_visitor_record\x18\xd9\x8c\x0e \x01(\r\x12\x1e\n\x14req_frd_steal_record\x18\xda\x8c\x0e \x01(\r\x12\x1d\n\x13req_my_steal_record\x18\xdb\x8c\x0e \x01(\r\x12\x14\n\nreq_avgame\x18\xe9\xda\x0e \x01(\r\x12\x1b\n\x11req_aio_quick_app\x18\xf9\xa8\x0f \x01(\r\"z\n\x07RspBody\x12\x34\n\x0bupdate_data\x18\x01 \x03(\x0b\x32\x1f.im.oidb.cmd0xd50.ExtSnsFrdData\x12\x0c\n\x04over\x18\x0b \x01(\r\x12\x12\n\nnext_start\x18\x0c \x01(\r\x12\x17\n\x0funfinished_uins\x18\r \x03(\x04'
-)
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n&cai/pb/im/oidb/cmd0xd50/cmd0xd50.proto\x12\x10im.oidb.cmd0xd50\"\xe8\x04\n\rExtSnsFrdData\x12\x0f\n\x07\x66rd_uin\x18\x01 \x01(\x04\x12\x0f\n\x06lovers\x18\xfaU \x01(\x0c\x12\x14\n\nconfidante\x18\x8a\xa4\x01 \x01(\x0c\x12\x0f\n\x05\x62uddy\x18\x9a\xf2\x01 \x01(\x0c\x12\x12\n\x08\x66rd_tree\x18\xa9\xc0\x02 \x01(\x0c\x12\x0e\n\x04\x63hat\x18\xb9\x8e\x03 \x01(\x0c\x12\x10\n\x06praise\x18\xc9\xdc\x03 \x01(\x0c\x12\x14\n\nqzone_love\x18\xd9\xaa\x04 \x01(\x0c\x12\x15\n\x0bqzone_house\x18\xe9\xf8\x04 \x01(\x0c\x12\x16\n\x0cmusic_switch\x18\xf9\xc6\x05 \x01(\x0c\x12\x1f\n\x15mutualmark_alienation\x18\x89\x95\x06 \x01(\x0c\x12\x18\n\x0eunread_message\x18\x99\xe3\x06 \x01(\x0c\x12\x0e\n\x04\x62oat\x18\xa9\xb1\x07 \x01(\x0c\x12\x13\n\tclose_frd\x18\xb9\xff\x07 \x01(\x0c\x12\x1a\n\x10mutualmark_score\x18\xc9\xcd\x08 \x01(\x0c\x12\x16\n\x0cksing_switch\x18\xd9\x9b\t \x01(\x0c\x12\x13\n\tlbs_share\x18\x89\x86\x0b \x01(\x0c\x12\x18\n\x0e\x64ont_forget_me\x18\xb9\xf0\x0c \x01(\x0c\x12)\n\x1fmy_online_status_visible_to_frd\x18\xc9\xbe\r \x01(\x0c\x12)\n\x1f\x66rd_online_status_visible_to_me\x18\xca\xbe\r \x01(\x0c\x12\x18\n\x0evisitor_record\x18\xd9\x8c\x0e \x01(\x0c\x12\x1a\n\x10\x66rd_steal_record\x18\xda\x8c\x0e \x01(\x0c\x12\x19\n\x0fmy_steal_record\x18\xdb\x8c\x0e \x01(\x0c\x12\x10\n\x06\x61vgame\x18\xe9\xda\x0e \x01(\x0c\x12\x17\n\raio_quick_app\x18\xf9\xa8\x0f \x01(\x0c\"!\n\x11KSingRelationInfo\x12\x0c\n\x04\x66lag\x18\x01 \x01(\r\"\xac\x06\n\x07ReqBody\x12\r\n\x05\x61ppid\x18\x01 \x01(\x04\x12\x14\n\x0cmax_pkg_size\x18\x02 \x01(\r\x12\x12\n\nstart_time\x18\x03 \x01(\r\x12\x13\n\x0bstart_index\x18\x04 \x01(\r\x12\x0f\n\x07req_num\x18\x05 \x01(\r\x12\x10\n\x08uin_list\x18\x06 \x03(\x04\x12\x13\n\nreq_lovers\x18\xfaU \x01(\r\x12\x18\n\x0ereq_confidante\x18\x8a\xa4\x01 \x01(\r\x12\x13\n\treq_buddy\x18\x9a\xf2\x01 \x01(\r\x12\x16\n\x0creq_frd_tree\x18\xa9\xc0\x02 \x01(\r\x12\x12\n\x08req_chat\x18\xb9\x8e\x03 \x01(\r\x12\x14\n\nreq_praise\x18\xc9\xdc\x03 \x01(\r\x12\x18\n\x0ereq_qzone_love\x18\xd9\xaa\x04 \x01(\r\x12\x19\n\x0freq_qzone_house\x18\xe9\xf8\x04 \x01(\r\x12\x1a\n\x10req_music_switch\x18\xf9\xc6\x05 \x01(\r\x12#\n\x19req_mutualmark_alienation\x18\x89\x95\x06 \x01(\r\x12\x1c\n\x12req_unread_message\x18\x99\xe3\x06 \x01(\r\x12\x12\n\x08req_boat\x18\xa9\xb1\x07 \x01(\r\x12\x17\n\rreq_close_frd\x18\xb9\xff\x07 \x01(\r\x12\x1e\n\x14req_mutualmark_score\x18\xc9\xcd\x08 \x01(\r\x12\x1a\n\x10req_ksing_switch\x18\xd9\x9b\t \x01(\r\x12!\n\x17req_mutualmark_lbsshare\x18\x89\x86\x0b \x01(\r\x12\x1c\n\x12req_dont_forget_me\x18\xb9\xf0\x0c \x01(\r\x12-\n#req_my_online_status_visible_to_frd\x18\xc9\xbe\r \x01(\r\x12-\n#req_frd_online_status_visible_to_me\x18\xca\xbe\r \x01(\r\x12\x1c\n\x12req_visitor_record\x18\xd9\x8c\x0e \x01(\r\x12\x1e\n\x14req_frd_steal_record\x18\xda\x8c\x0e \x01(\r\x12\x1d\n\x13req_my_steal_record\x18\xdb\x8c\x0e \x01(\r\x12\x14\n\nreq_avgame\x18\xe9\xda\x0e \x01(\r\x12\x1b\n\x11req_aio_quick_app\x18\xf9\xa8\x0f \x01(\r\"z\n\x07RspBody\x12\x34\n\x0bupdate_data\x18\x01 \x03(\x0b\x32\x1f.im.oidb.cmd0xd50.ExtSnsFrdData\x12\x0c\n\x04over\x18\x0b \x01(\r\x12\x12\n\nnext_start\x18\x0c \x01(\r\x12\x17\n\x0funfinished_uins\x18\r \x03(\x04')
-
-_EXTSNSFRDDATA = _descriptor.Descriptor(
- name='ExtSnsFrdData',
- full_name='im.oidb.cmd0xd50.ExtSnsFrdData',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='frd_uin', full_name='im.oidb.cmd0xd50.ExtSnsFrdData.frd_uin', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='lovers', full_name='im.oidb.cmd0xd50.ExtSnsFrdData.lovers', index=1,
- number=11002, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='confidante', full_name='im.oidb.cmd0xd50.ExtSnsFrdData.confidante', index=2,
- number=21002, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='buddy', full_name='im.oidb.cmd0xd50.ExtSnsFrdData.buddy', index=3,
- number=31002, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='frd_tree', full_name='im.oidb.cmd0xd50.ExtSnsFrdData.frd_tree', index=4,
- number=41001, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='chat', full_name='im.oidb.cmd0xd50.ExtSnsFrdData.chat', index=5,
- number=51001, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='praise', full_name='im.oidb.cmd0xd50.ExtSnsFrdData.praise', index=6,
- number=61001, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='qzone_love', full_name='im.oidb.cmd0xd50.ExtSnsFrdData.qzone_love', index=7,
- number=71001, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='qzone_house', full_name='im.oidb.cmd0xd50.ExtSnsFrdData.qzone_house', index=8,
- number=81001, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='music_switch', full_name='im.oidb.cmd0xd50.ExtSnsFrdData.music_switch', index=9,
- number=91001, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='mutualmark_alienation', full_name='im.oidb.cmd0xd50.ExtSnsFrdData.mutualmark_alienation', index=10,
- number=101001, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='unread_message', full_name='im.oidb.cmd0xd50.ExtSnsFrdData.unread_message', index=11,
- number=111001, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='boat', full_name='im.oidb.cmd0xd50.ExtSnsFrdData.boat', index=12,
- number=121001, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='close_frd', full_name='im.oidb.cmd0xd50.ExtSnsFrdData.close_frd', index=13,
- number=131001, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='mutualmark_score', full_name='im.oidb.cmd0xd50.ExtSnsFrdData.mutualmark_score', index=14,
- number=141001, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='ksing_switch', full_name='im.oidb.cmd0xd50.ExtSnsFrdData.ksing_switch', index=15,
- number=151001, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='lbs_share', full_name='im.oidb.cmd0xd50.ExtSnsFrdData.lbs_share', index=16,
- number=181001, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='dont_forget_me', full_name='im.oidb.cmd0xd50.ExtSnsFrdData.dont_forget_me', index=17,
- number=211001, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='my_online_status_visible_to_frd', full_name='im.oidb.cmd0xd50.ExtSnsFrdData.my_online_status_visible_to_frd', index=18,
- number=221001, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='frd_online_status_visible_to_me', full_name='im.oidb.cmd0xd50.ExtSnsFrdData.frd_online_status_visible_to_me', index=19,
- number=221002, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='visitor_record', full_name='im.oidb.cmd0xd50.ExtSnsFrdData.visitor_record', index=20,
- number=231001, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='frd_steal_record', full_name='im.oidb.cmd0xd50.ExtSnsFrdData.frd_steal_record', index=21,
- number=231002, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='my_steal_record', full_name='im.oidb.cmd0xd50.ExtSnsFrdData.my_steal_record', index=22,
- number=231003, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='avgame', full_name='im.oidb.cmd0xd50.ExtSnsFrdData.avgame', index=23,
- number=241001, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='aio_quick_app', full_name='im.oidb.cmd0xd50.ExtSnsFrdData.aio_quick_app', index=24,
- number=251001, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=61,
- serialized_end=677,
-)
-
-
-_KSINGRELATIONINFO = _descriptor.Descriptor(
- name='KSingRelationInfo',
- full_name='im.oidb.cmd0xd50.KSingRelationInfo',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='flag', full_name='im.oidb.cmd0xd50.KSingRelationInfo.flag', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=679,
- serialized_end=712,
-)
-
-
-_REQBODY = _descriptor.Descriptor(
- name='ReqBody',
- full_name='im.oidb.cmd0xd50.ReqBody',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='appid', full_name='im.oidb.cmd0xd50.ReqBody.appid', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='max_pkg_size', full_name='im.oidb.cmd0xd50.ReqBody.max_pkg_size', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='start_time', full_name='im.oidb.cmd0xd50.ReqBody.start_time', index=2,
- number=3, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='start_index', full_name='im.oidb.cmd0xd50.ReqBody.start_index', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='req_num', full_name='im.oidb.cmd0xd50.ReqBody.req_num', index=4,
- number=5, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='uin_list', full_name='im.oidb.cmd0xd50.ReqBody.uin_list', index=5,
- number=6, type=4, cpp_type=4, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='req_lovers', full_name='im.oidb.cmd0xd50.ReqBody.req_lovers', index=6,
- number=11002, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='req_confidante', full_name='im.oidb.cmd0xd50.ReqBody.req_confidante', index=7,
- number=21002, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='req_buddy', full_name='im.oidb.cmd0xd50.ReqBody.req_buddy', index=8,
- number=31002, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='req_frd_tree', full_name='im.oidb.cmd0xd50.ReqBody.req_frd_tree', index=9,
- number=41001, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='req_chat', full_name='im.oidb.cmd0xd50.ReqBody.req_chat', index=10,
- number=51001, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='req_praise', full_name='im.oidb.cmd0xd50.ReqBody.req_praise', index=11,
- number=61001, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='req_qzone_love', full_name='im.oidb.cmd0xd50.ReqBody.req_qzone_love', index=12,
- number=71001, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='req_qzone_house', full_name='im.oidb.cmd0xd50.ReqBody.req_qzone_house', index=13,
- number=81001, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='req_music_switch', full_name='im.oidb.cmd0xd50.ReqBody.req_music_switch', index=14,
- number=91001, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='req_mutualmark_alienation', full_name='im.oidb.cmd0xd50.ReqBody.req_mutualmark_alienation', index=15,
- number=101001, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='req_unread_message', full_name='im.oidb.cmd0xd50.ReqBody.req_unread_message', index=16,
- number=111001, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='req_boat', full_name='im.oidb.cmd0xd50.ReqBody.req_boat', index=17,
- number=121001, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='req_close_frd', full_name='im.oidb.cmd0xd50.ReqBody.req_close_frd', index=18,
- number=131001, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='req_mutualmark_score', full_name='im.oidb.cmd0xd50.ReqBody.req_mutualmark_score', index=19,
- number=141001, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='req_ksing_switch', full_name='im.oidb.cmd0xd50.ReqBody.req_ksing_switch', index=20,
- number=151001, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='req_mutualmark_lbsshare', full_name='im.oidb.cmd0xd50.ReqBody.req_mutualmark_lbsshare', index=21,
- number=181001, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='req_dont_forget_me', full_name='im.oidb.cmd0xd50.ReqBody.req_dont_forget_me', index=22,
- number=211001, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='req_my_online_status_visible_to_frd', full_name='im.oidb.cmd0xd50.ReqBody.req_my_online_status_visible_to_frd', index=23,
- number=221001, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='req_frd_online_status_visible_to_me', full_name='im.oidb.cmd0xd50.ReqBody.req_frd_online_status_visible_to_me', index=24,
- number=221002, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='req_visitor_record', full_name='im.oidb.cmd0xd50.ReqBody.req_visitor_record', index=25,
- number=231001, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='req_frd_steal_record', full_name='im.oidb.cmd0xd50.ReqBody.req_frd_steal_record', index=26,
- number=231002, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='req_my_steal_record', full_name='im.oidb.cmd0xd50.ReqBody.req_my_steal_record', index=27,
- number=231003, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='req_avgame', full_name='im.oidb.cmd0xd50.ReqBody.req_avgame', index=28,
- number=241001, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='req_aio_quick_app', full_name='im.oidb.cmd0xd50.ReqBody.req_aio_quick_app', index=29,
- number=251001, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=715,
- serialized_end=1527,
-)
-
-
-_RSPBODY = _descriptor.Descriptor(
- name='RspBody',
- full_name='im.oidb.cmd0xd50.RspBody',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='update_data', full_name='im.oidb.cmd0xd50.RspBody.update_data', index=0,
- number=1, type=11, cpp_type=10, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='over', full_name='im.oidb.cmd0xd50.RspBody.over', index=1,
- number=11, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='next_start', full_name='im.oidb.cmd0xd50.RspBody.next_start', index=2,
- number=12, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='unfinished_uins', full_name='im.oidb.cmd0xd50.RspBody.unfinished_uins', index=3,
- number=13, type=4, cpp_type=4, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=1529,
- serialized_end=1651,
-)
-
-_RSPBODY.fields_by_name['update_data'].message_type = _EXTSNSFRDDATA
-DESCRIPTOR.message_types_by_name['ExtSnsFrdData'] = _EXTSNSFRDDATA
-DESCRIPTOR.message_types_by_name['KSingRelationInfo'] = _KSINGRELATIONINFO
-DESCRIPTOR.message_types_by_name['ReqBody'] = _REQBODY
-DESCRIPTOR.message_types_by_name['RspBody'] = _RSPBODY
-_sym_db.RegisterFileDescriptor(DESCRIPTOR)
-
+_EXTSNSFRDDATA = DESCRIPTOR.message_types_by_name['ExtSnsFrdData']
+_KSINGRELATIONINFO = DESCRIPTOR.message_types_by_name['KSingRelationInfo']
+_REQBODY = DESCRIPTOR.message_types_by_name['ReqBody']
+_RSPBODY = DESCRIPTOR.message_types_by_name['RspBody']
ExtSnsFrdData = _reflection.GeneratedProtocolMessageType('ExtSnsFrdData', (_message.Message,), {
'DESCRIPTOR' : _EXTSNSFRDDATA,
'__module__' : 'cai.pb.im.oidb.cmd0xd50.cmd0xd50_pb2'
@@ -579,5 +50,15 @@
})
_sym_db.RegisterMessage(RspBody)
-
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ _EXTSNSFRDDATA._serialized_start=61
+ _EXTSNSFRDDATA._serialized_end=677
+ _KSINGRELATIONINFO._serialized_start=679
+ _KSINGRELATIONINFO._serialized_end=712
+ _REQBODY._serialized_start=715
+ _REQBODY._serialized_end=1527
+ _RSPBODY._serialized_start=1529
+ _RSPBODY._serialized_end=1651
# @@protoc_insertion_point(module_scope)
diff --git a/cai/pb/im/oidb/cmd0xd50/cmd0xd50_pb2.pyi b/cai/pb/im/oidb/cmd0xd50/cmd0xd50_pb2.pyi
index 96eca976..57f1bdb8 100644
--- a/cai/pb/im/oidb/cmd0xd50/cmd0xd50_pb2.pyi
+++ b/cai/pb/im/oidb/cmd0xd50/cmd0xd50_pb2.pyi
@@ -32,10 +32,13 @@ from typing_extensions import (
)
-DESCRIPTOR: FileDescriptor = ...
+DESCRIPTOR: FileDescriptor
class ExtSnsFrdData(Message):
- DESCRIPTOR: Descriptor = ...
+ """tencent/im/oidb/cmd0xd50/Oidb_0xd50.java
+
+ """
+ DESCRIPTOR: Descriptor
FRD_UIN_FIELD_NUMBER: int
LOVERS_FIELD_NUMBER: int
CONFIDANTE_FIELD_NUMBER: int
@@ -61,77 +64,75 @@ class ExtSnsFrdData(Message):
MY_STEAL_RECORD_FIELD_NUMBER: int
AVGAME_FIELD_NUMBER: int
AIO_QUICK_APP_FIELD_NUMBER: int
- frd_uin: int = ...
- lovers: bytes = ...
- confidante: bytes = ...
- buddy: bytes = ...
- frd_tree: bytes = ...
- chat: bytes = ...
- praise: bytes = ...
- qzone_love: bytes = ...
- qzone_house: bytes = ...
- music_switch: bytes = ...
- mutualmark_alienation: bytes = ...
- unread_message: bytes = ...
- boat: bytes = ...
- close_frd: bytes = ...
- mutualmark_score: bytes = ...
- ksing_switch: bytes = ...
- lbs_share: bytes = ...
- dont_forget_me: bytes = ...
- my_online_status_visible_to_frd: bytes = ...
- frd_online_status_visible_to_me: bytes = ...
- visitor_record: bytes = ...
- frd_steal_record: bytes = ...
- my_steal_record: bytes = ...
- avgame: bytes = ...
- aio_quick_app: bytes = ...
-
+ frd_uin: int
+ lovers: bytes
+ confidante: bytes
+ buddy: bytes
+ frd_tree: bytes
+ chat: bytes
+ praise: bytes
+ qzone_love: bytes
+ qzone_house: bytes
+ music_switch: bytes
+ mutualmark_alienation: bytes
+ unread_message: bytes
+ boat: bytes
+ close_frd: bytes
+ mutualmark_score: bytes
+ ksing_switch: bytes
+ lbs_share: bytes
+ dont_forget_me: bytes
+ my_online_status_visible_to_frd: bytes
+ frd_online_status_visible_to_me: bytes
+ visitor_record: bytes
+ frd_steal_record: bytes
+ my_steal_record: bytes
+ avgame: bytes
+ aio_quick_app: bytes
def __init__(self,
*,
- frd_uin : Optional[int] = ...,
- lovers : Optional[bytes] = ...,
- confidante : Optional[bytes] = ...,
- buddy : Optional[bytes] = ...,
- frd_tree : Optional[bytes] = ...,
- chat : Optional[bytes] = ...,
- praise : Optional[bytes] = ...,
- qzone_love : Optional[bytes] = ...,
- qzone_house : Optional[bytes] = ...,
- music_switch : Optional[bytes] = ...,
- mutualmark_alienation : Optional[bytes] = ...,
- unread_message : Optional[bytes] = ...,
- boat : Optional[bytes] = ...,
- close_frd : Optional[bytes] = ...,
- mutualmark_score : Optional[bytes] = ...,
- ksing_switch : Optional[bytes] = ...,
- lbs_share : Optional[bytes] = ...,
- dont_forget_me : Optional[bytes] = ...,
- my_online_status_visible_to_frd : Optional[bytes] = ...,
- frd_online_status_visible_to_me : Optional[bytes] = ...,
- visitor_record : Optional[bytes] = ...,
- frd_steal_record : Optional[bytes] = ...,
- my_steal_record : Optional[bytes] = ...,
- avgame : Optional[bytes] = ...,
- aio_quick_app : Optional[bytes] = ...,
+ frd_uin: Optional[int] = ...,
+ lovers: Optional[bytes] = ...,
+ confidante: Optional[bytes] = ...,
+ buddy: Optional[bytes] = ...,
+ frd_tree: Optional[bytes] = ...,
+ chat: Optional[bytes] = ...,
+ praise: Optional[bytes] = ...,
+ qzone_love: Optional[bytes] = ...,
+ qzone_house: Optional[bytes] = ...,
+ music_switch: Optional[bytes] = ...,
+ mutualmark_alienation: Optional[bytes] = ...,
+ unread_message: Optional[bytes] = ...,
+ boat: Optional[bytes] = ...,
+ close_frd: Optional[bytes] = ...,
+ mutualmark_score: Optional[bytes] = ...,
+ ksing_switch: Optional[bytes] = ...,
+ lbs_share: Optional[bytes] = ...,
+ dont_forget_me: Optional[bytes] = ...,
+ my_online_status_visible_to_frd: Optional[bytes] = ...,
+ frd_online_status_visible_to_me: Optional[bytes] = ...,
+ visitor_record: Optional[bytes] = ...,
+ frd_steal_record: Optional[bytes] = ...,
+ my_steal_record: Optional[bytes] = ...,
+ avgame: Optional[bytes] = ...,
+ aio_quick_app: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"aio_quick_app",b"aio_quick_app",u"avgame",b"avgame",u"boat",b"boat",u"buddy",b"buddy",u"chat",b"chat",u"close_frd",b"close_frd",u"confidante",b"confidante",u"dont_forget_me",b"dont_forget_me",u"frd_online_status_visible_to_me",b"frd_online_status_visible_to_me",u"frd_steal_record",b"frd_steal_record",u"frd_tree",b"frd_tree",u"frd_uin",b"frd_uin",u"ksing_switch",b"ksing_switch",u"lbs_share",b"lbs_share",u"lovers",b"lovers",u"music_switch",b"music_switch",u"mutualmark_alienation",b"mutualmark_alienation",u"mutualmark_score",b"mutualmark_score",u"my_online_status_visible_to_frd",b"my_online_status_visible_to_frd",u"my_steal_record",b"my_steal_record",u"praise",b"praise",u"qzone_house",b"qzone_house",u"qzone_love",b"qzone_love",u"unread_message",b"unread_message",u"visitor_record",b"visitor_record"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"aio_quick_app",b"aio_quick_app",u"avgame",b"avgame",u"boat",b"boat",u"buddy",b"buddy",u"chat",b"chat",u"close_frd",b"close_frd",u"confidante",b"confidante",u"dont_forget_me",b"dont_forget_me",u"frd_online_status_visible_to_me",b"frd_online_status_visible_to_me",u"frd_steal_record",b"frd_steal_record",u"frd_tree",b"frd_tree",u"frd_uin",b"frd_uin",u"ksing_switch",b"ksing_switch",u"lbs_share",b"lbs_share",u"lovers",b"lovers",u"music_switch",b"music_switch",u"mutualmark_alienation",b"mutualmark_alienation",u"mutualmark_score",b"mutualmark_score",u"my_online_status_visible_to_frd",b"my_online_status_visible_to_frd",u"my_steal_record",b"my_steal_record",u"praise",b"praise",u"qzone_house",b"qzone_house",u"qzone_love",b"qzone_love",u"unread_message",b"unread_message",u"visitor_record",b"visitor_record"]) -> None: ...
+ def HasField(self, field_name: Literal["aio_quick_app",b"aio_quick_app","avgame",b"avgame","boat",b"boat","buddy",b"buddy","chat",b"chat","close_frd",b"close_frd","confidante",b"confidante","dont_forget_me",b"dont_forget_me","frd_online_status_visible_to_me",b"frd_online_status_visible_to_me","frd_steal_record",b"frd_steal_record","frd_tree",b"frd_tree","frd_uin",b"frd_uin","ksing_switch",b"ksing_switch","lbs_share",b"lbs_share","lovers",b"lovers","music_switch",b"music_switch","mutualmark_alienation",b"mutualmark_alienation","mutualmark_score",b"mutualmark_score","my_online_status_visible_to_frd",b"my_online_status_visible_to_frd","my_steal_record",b"my_steal_record","praise",b"praise","qzone_house",b"qzone_house","qzone_love",b"qzone_love","unread_message",b"unread_message","visitor_record",b"visitor_record"]) -> bool: ...
+ def ClearField(self, field_name: Literal["aio_quick_app",b"aio_quick_app","avgame",b"avgame","boat",b"boat","buddy",b"buddy","chat",b"chat","close_frd",b"close_frd","confidante",b"confidante","dont_forget_me",b"dont_forget_me","frd_online_status_visible_to_me",b"frd_online_status_visible_to_me","frd_steal_record",b"frd_steal_record","frd_tree",b"frd_tree","frd_uin",b"frd_uin","ksing_switch",b"ksing_switch","lbs_share",b"lbs_share","lovers",b"lovers","music_switch",b"music_switch","mutualmark_alienation",b"mutualmark_alienation","mutualmark_score",b"mutualmark_score","my_online_status_visible_to_frd",b"my_online_status_visible_to_frd","my_steal_record",b"my_steal_record","praise",b"praise","qzone_house",b"qzone_house","qzone_love",b"qzone_love","unread_message",b"unread_message","visitor_record",b"visitor_record"]) -> None: ...
class KSingRelationInfo(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
FLAG_FIELD_NUMBER: int
- flag: int = ...
-
+ flag: int
def __init__(self,
*,
- flag : Optional[int] = ...,
+ flag: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"flag",b"flag"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"flag",b"flag"]) -> None: ...
+ def HasField(self, field_name: Literal["flag",b"flag"]) -> bool: ...
+ def ClearField(self, field_name: Literal["flag",b"flag"]) -> None: ...
class ReqBody(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
APPID_FIELD_NUMBER: int
MAX_PKG_SIZE_FIELD_NUMBER: int
START_TIME_FIELD_NUMBER: int
@@ -162,92 +163,91 @@ class ReqBody(Message):
REQ_MY_STEAL_RECORD_FIELD_NUMBER: int
REQ_AVGAME_FIELD_NUMBER: int
REQ_AIO_QUICK_APP_FIELD_NUMBER: int
- appid: int = ...
- max_pkg_size: int = ...
- start_time: int = ...
- start_index: int = ...
- req_num: int = ...
- uin_list: RepeatedScalarFieldContainer[int] = ...
- req_lovers: int = ...
- req_confidante: int = ...
- req_buddy: int = ...
- req_frd_tree: int = ...
- req_chat: int = ...
- req_praise: int = ...
- req_qzone_love: int = ...
- req_qzone_house: int = ...
- req_music_switch: int = ...
- req_mutualmark_alienation: int = ...
- req_unread_message: int = ...
- req_boat: int = ...
- req_close_frd: int = ...
- req_mutualmark_score: int = ...
- req_ksing_switch: int = ...
- req_mutualmark_lbsshare: int = ...
- req_dont_forget_me: int = ...
- req_my_online_status_visible_to_frd: int = ...
- req_frd_online_status_visible_to_me: int = ...
- req_visitor_record: int = ...
- req_frd_steal_record: int = ...
- req_my_steal_record: int = ...
- req_avgame: int = ...
- req_aio_quick_app: int = ...
-
+ appid: int
+ max_pkg_size: int
+ start_time: int
+ start_index: int
+ req_num: int
+ @property
+ def uin_list(self) -> RepeatedScalarFieldContainer[int]: ...
+ req_lovers: int
+ req_confidante: int
+ req_buddy: int
+ req_frd_tree: int
+ req_chat: int
+ req_praise: int
+ req_qzone_love: int
+ req_qzone_house: int
+ req_music_switch: int
+ req_mutualmark_alienation: int
+ req_unread_message: int
+ req_boat: int
+ req_close_frd: int
+ req_mutualmark_score: int
+ req_ksing_switch: int
+ req_mutualmark_lbsshare: int
+ req_dont_forget_me: int
+ req_my_online_status_visible_to_frd: int
+ req_frd_online_status_visible_to_me: int
+ req_visitor_record: int
+ req_frd_steal_record: int
+ req_my_steal_record: int
+ req_avgame: int
+ req_aio_quick_app: int
def __init__(self,
*,
- appid : Optional[int] = ...,
- max_pkg_size : Optional[int] = ...,
- start_time : Optional[int] = ...,
- start_index : Optional[int] = ...,
- req_num : Optional[int] = ...,
- uin_list : Optional[Iterable[int]] = ...,
- req_lovers : Optional[int] = ...,
- req_confidante : Optional[int] = ...,
- req_buddy : Optional[int] = ...,
- req_frd_tree : Optional[int] = ...,
- req_chat : Optional[int] = ...,
- req_praise : Optional[int] = ...,
- req_qzone_love : Optional[int] = ...,
- req_qzone_house : Optional[int] = ...,
- req_music_switch : Optional[int] = ...,
- req_mutualmark_alienation : Optional[int] = ...,
- req_unread_message : Optional[int] = ...,
- req_boat : Optional[int] = ...,
- req_close_frd : Optional[int] = ...,
- req_mutualmark_score : Optional[int] = ...,
- req_ksing_switch : Optional[int] = ...,
- req_mutualmark_lbsshare : Optional[int] = ...,
- req_dont_forget_me : Optional[int] = ...,
- req_my_online_status_visible_to_frd : Optional[int] = ...,
- req_frd_online_status_visible_to_me : Optional[int] = ...,
- req_visitor_record : Optional[int] = ...,
- req_frd_steal_record : Optional[int] = ...,
- req_my_steal_record : Optional[int] = ...,
- req_avgame : Optional[int] = ...,
- req_aio_quick_app : Optional[int] = ...,
+ appid: Optional[int] = ...,
+ max_pkg_size: Optional[int] = ...,
+ start_time: Optional[int] = ...,
+ start_index: Optional[int] = ...,
+ req_num: Optional[int] = ...,
+ uin_list: Optional[Iterable[int]] = ...,
+ req_lovers: Optional[int] = ...,
+ req_confidante: Optional[int] = ...,
+ req_buddy: Optional[int] = ...,
+ req_frd_tree: Optional[int] = ...,
+ req_chat: Optional[int] = ...,
+ req_praise: Optional[int] = ...,
+ req_qzone_love: Optional[int] = ...,
+ req_qzone_house: Optional[int] = ...,
+ req_music_switch: Optional[int] = ...,
+ req_mutualmark_alienation: Optional[int] = ...,
+ req_unread_message: Optional[int] = ...,
+ req_boat: Optional[int] = ...,
+ req_close_frd: Optional[int] = ...,
+ req_mutualmark_score: Optional[int] = ...,
+ req_ksing_switch: Optional[int] = ...,
+ req_mutualmark_lbsshare: Optional[int] = ...,
+ req_dont_forget_me: Optional[int] = ...,
+ req_my_online_status_visible_to_frd: Optional[int] = ...,
+ req_frd_online_status_visible_to_me: Optional[int] = ...,
+ req_visitor_record: Optional[int] = ...,
+ req_frd_steal_record: Optional[int] = ...,
+ req_my_steal_record: Optional[int] = ...,
+ req_avgame: Optional[int] = ...,
+ req_aio_quick_app: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"appid",b"appid",u"max_pkg_size",b"max_pkg_size",u"req_aio_quick_app",b"req_aio_quick_app",u"req_avgame",b"req_avgame",u"req_boat",b"req_boat",u"req_buddy",b"req_buddy",u"req_chat",b"req_chat",u"req_close_frd",b"req_close_frd",u"req_confidante",b"req_confidante",u"req_dont_forget_me",b"req_dont_forget_me",u"req_frd_online_status_visible_to_me",b"req_frd_online_status_visible_to_me",u"req_frd_steal_record",b"req_frd_steal_record",u"req_frd_tree",b"req_frd_tree",u"req_ksing_switch",b"req_ksing_switch",u"req_lovers",b"req_lovers",u"req_music_switch",b"req_music_switch",u"req_mutualmark_alienation",b"req_mutualmark_alienation",u"req_mutualmark_lbsshare",b"req_mutualmark_lbsshare",u"req_mutualmark_score",b"req_mutualmark_score",u"req_my_online_status_visible_to_frd",b"req_my_online_status_visible_to_frd",u"req_my_steal_record",b"req_my_steal_record",u"req_num",b"req_num",u"req_praise",b"req_praise",u"req_qzone_house",b"req_qzone_house",u"req_qzone_love",b"req_qzone_love",u"req_unread_message",b"req_unread_message",u"req_visitor_record",b"req_visitor_record",u"start_index",b"start_index",u"start_time",b"start_time"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"appid",b"appid",u"max_pkg_size",b"max_pkg_size",u"req_aio_quick_app",b"req_aio_quick_app",u"req_avgame",b"req_avgame",u"req_boat",b"req_boat",u"req_buddy",b"req_buddy",u"req_chat",b"req_chat",u"req_close_frd",b"req_close_frd",u"req_confidante",b"req_confidante",u"req_dont_forget_me",b"req_dont_forget_me",u"req_frd_online_status_visible_to_me",b"req_frd_online_status_visible_to_me",u"req_frd_steal_record",b"req_frd_steal_record",u"req_frd_tree",b"req_frd_tree",u"req_ksing_switch",b"req_ksing_switch",u"req_lovers",b"req_lovers",u"req_music_switch",b"req_music_switch",u"req_mutualmark_alienation",b"req_mutualmark_alienation",u"req_mutualmark_lbsshare",b"req_mutualmark_lbsshare",u"req_mutualmark_score",b"req_mutualmark_score",u"req_my_online_status_visible_to_frd",b"req_my_online_status_visible_to_frd",u"req_my_steal_record",b"req_my_steal_record",u"req_num",b"req_num",u"req_praise",b"req_praise",u"req_qzone_house",b"req_qzone_house",u"req_qzone_love",b"req_qzone_love",u"req_unread_message",b"req_unread_message",u"req_visitor_record",b"req_visitor_record",u"start_index",b"start_index",u"start_time",b"start_time",u"uin_list",b"uin_list"]) -> None: ...
+ def HasField(self, field_name: Literal["appid",b"appid","max_pkg_size",b"max_pkg_size","req_aio_quick_app",b"req_aio_quick_app","req_avgame",b"req_avgame","req_boat",b"req_boat","req_buddy",b"req_buddy","req_chat",b"req_chat","req_close_frd",b"req_close_frd","req_confidante",b"req_confidante","req_dont_forget_me",b"req_dont_forget_me","req_frd_online_status_visible_to_me",b"req_frd_online_status_visible_to_me","req_frd_steal_record",b"req_frd_steal_record","req_frd_tree",b"req_frd_tree","req_ksing_switch",b"req_ksing_switch","req_lovers",b"req_lovers","req_music_switch",b"req_music_switch","req_mutualmark_alienation",b"req_mutualmark_alienation","req_mutualmark_lbsshare",b"req_mutualmark_lbsshare","req_mutualmark_score",b"req_mutualmark_score","req_my_online_status_visible_to_frd",b"req_my_online_status_visible_to_frd","req_my_steal_record",b"req_my_steal_record","req_num",b"req_num","req_praise",b"req_praise","req_qzone_house",b"req_qzone_house","req_qzone_love",b"req_qzone_love","req_unread_message",b"req_unread_message","req_visitor_record",b"req_visitor_record","start_index",b"start_index","start_time",b"start_time"]) -> bool: ...
+ def ClearField(self, field_name: Literal["appid",b"appid","max_pkg_size",b"max_pkg_size","req_aio_quick_app",b"req_aio_quick_app","req_avgame",b"req_avgame","req_boat",b"req_boat","req_buddy",b"req_buddy","req_chat",b"req_chat","req_close_frd",b"req_close_frd","req_confidante",b"req_confidante","req_dont_forget_me",b"req_dont_forget_me","req_frd_online_status_visible_to_me",b"req_frd_online_status_visible_to_me","req_frd_steal_record",b"req_frd_steal_record","req_frd_tree",b"req_frd_tree","req_ksing_switch",b"req_ksing_switch","req_lovers",b"req_lovers","req_music_switch",b"req_music_switch","req_mutualmark_alienation",b"req_mutualmark_alienation","req_mutualmark_lbsshare",b"req_mutualmark_lbsshare","req_mutualmark_score",b"req_mutualmark_score","req_my_online_status_visible_to_frd",b"req_my_online_status_visible_to_frd","req_my_steal_record",b"req_my_steal_record","req_num",b"req_num","req_praise",b"req_praise","req_qzone_house",b"req_qzone_house","req_qzone_love",b"req_qzone_love","req_unread_message",b"req_unread_message","req_visitor_record",b"req_visitor_record","start_index",b"start_index","start_time",b"start_time","uin_list",b"uin_list"]) -> None: ...
class RspBody(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
UPDATE_DATA_FIELD_NUMBER: int
OVER_FIELD_NUMBER: int
NEXT_START_FIELD_NUMBER: int
UNFINISHED_UINS_FIELD_NUMBER: int
- over: int = ...
- next_start: int = ...
- unfinished_uins: RepeatedScalarFieldContainer[int] = ...
-
@property
def update_data(self) -> RepeatedCompositeFieldContainer[ExtSnsFrdData]: ...
-
+ over: int
+ next_start: int
+ @property
+ def unfinished_uins(self) -> RepeatedScalarFieldContainer[int]: ...
def __init__(self,
*,
- update_data : Optional[Iterable[ExtSnsFrdData]] = ...,
- over : Optional[int] = ...,
- next_start : Optional[int] = ...,
- unfinished_uins : Optional[Iterable[int]] = ...,
+ update_data: Optional[Iterable[ExtSnsFrdData]] = ...,
+ over: Optional[int] = ...,
+ next_start: Optional[int] = ...,
+ unfinished_uins: Optional[Iterable[int]] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"next_start",b"next_start",u"over",b"over"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"next_start",b"next_start",u"over",b"over",u"unfinished_uins",b"unfinished_uins",u"update_data",b"update_data"]) -> None: ...
+ def HasField(self, field_name: Literal["next_start",b"next_start","over",b"over"]) -> bool: ...
+ def ClearField(self, field_name: Literal["next_start",b"next_start","over",b"over","unfinished_uins",b"unfinished_uins","update_data",b"update_data"]) -> None: ...
diff --git a/cai/pb/im/oidb/group0x857/group0x857_pb2.py b/cai/pb/im/oidb/group0x857/group0x857_pb2.py
index ef7632b0..7bee7469 100644
--- a/cai/pb/im/oidb/group0x857/group0x857_pb2.py
+++ b/cai/pb/im/oidb/group0x857/group0x857_pb2.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler. DO NOT EDIT!
-# source: group0x857.proto
+# source: cai/pb/im/oidb/group0x857/group0x857.proto
"""Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor
from google.protobuf import descriptor_pool as _descriptor_pool
@@ -14,7 +14,7 @@
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x10group0x857.proto\"\x82\x02\n\rNotifyMsgBody\x12(\n\x0eoptMsgGrayTips\x18\x05 \x01(\x0b\x32\x10.AIOGrayTipsInfo\x12\'\n\roptMsgRedTips\x18\t \x01(\x0b\x32\x10.RedGrayTipsInfo\x12,\n\x0coptMsgRecall\x18\x0b \x01(\x0b\x32\x16.MessageRecallReminder\x12.\n\x11optGeneralGrayTip\x18\x1a \x01(\x0b\x32\x13.GeneralGrayTipInfo\x12+\n\x10qqGroupDigestMsg\x18! \x01(\x0b\x32\x11.QQGroupDigestMsg\x12\x13\n\x0bserviceType\x18\r \x01(\x05\"\x82\x01\n\x0f\x41IOGrayTipsInfo\x12\x12\n\nshowLatest\x18\x01 \x01(\r\x12\x0f\n\x07\x63ontent\x18\x02 \x01(\x0c\x12\x0e\n\x06remind\x18\x03 \x01(\r\x12\r\n\x05\x62rief\x18\x04 \x01(\x0c\x12\x13\n\x0breceiverUin\x18\x05 \x01(\x04\x12\x16\n\x0ereliaoAdminOpt\x18\x06 \x01(\r\"\xb4\x01\n\x12GeneralGrayTipInfo\x12\x10\n\x08\x62usiType\x18\x01 \x01(\x04\x12\x0e\n\x06\x62usiId\x18\x02 \x01(\x04\x12\x10\n\x08\x63trlFlag\x18\x03 \x01(\r\x12\x0f\n\x07\x63\x32\x63Type\x18\x04 \x01(\r\x12\x13\n\x0bserviceType\x18\x05 \x01(\r\x12\x0f\n\x07templId\x18\x06 \x01(\x04\x12\"\n\rmsgTemplParam\x18\x07 \x03(\x0b\x32\x0b.TemplParam\x12\x0f\n\x07\x63ontent\x18\x08 \x01(\t\")\n\nTemplParam\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"\xb2\x01\n\x15MessageRecallReminder\x12\x0b\n\x03uin\x18\x01 \x01(\x03\x12\x10\n\x08nickname\x18\x02 \x01(\x0c\x12-\n\x0frecalledMsgList\x18\x03 \x03(\x0b\x32\x14.RecalledMessageMeta\x12\x17\n\x0freminderContent\x18\x04 \x01(\x0c\x12\x0f\n\x07userdef\x18\x05 \x01(\x0c\x12\x11\n\tgroupType\x18\x06 \x01(\x05\x12\x0e\n\x06opType\x18\x07 \x01(\x05\"x\n\x13RecalledMessageMeta\x12\x0b\n\x03seq\x18\x01 \x01(\x05\x12\x0c\n\x04time\x18\x02 \x01(\x05\x12\x11\n\tmsgRandom\x18\x03 \x01(\x05\x12\x0f\n\x07msgType\x18\x04 \x01(\x05\x12\x0f\n\x07msgFlag\x18\x05 \x01(\x05\x12\x11\n\tauthorUin\x18\x06 \x01(\x03\"\xde\x01\n\x0fRedGrayTipsInfo\x12\x12\n\nshowLatest\x18\x01 \x01(\r\x12\x11\n\tsenderUin\x18\x02 \x01(\x04\x12\x13\n\x0breceiverUin\x18\x03 \x01(\x04\x12\x19\n\x11senderRichContent\x18\x04 \x01(\t\x12\x1b\n\x13receiverRichContent\x18\x05 \x01(\t\x12\x0f\n\x07\x61uthKey\x18\x06 \x01(\x0c\x12\x0f\n\x07msgType\x18\x07 \x01(\x11\x12\x11\n\tluckyFlag\x18\x08 \x01(\r\x12\x10\n\x08hideFlag\x18\t \x01(\r\x12\x10\n\x08luckyUin\x18\x0c \x01(\x04\"\xd4\x01\n\x10QQGroupDigestMsg\x12\x11\n\tgroupCode\x18\x01 \x01(\x04\x12\x0b\n\x03seq\x18\x02 \x01(\r\x12\x0e\n\x06random\x18\x03 \x01(\r\x12\x0e\n\x06opType\x18\x04 \x01(\x05\x12\x0e\n\x06sender\x18\x05 \x01(\x04\x12\x12\n\ndigestOper\x18\x06 \x01(\x04\x12\x0e\n\x06opTime\x18\x07 \x01(\r\x12\x15\n\rlastestMsgSeq\x18\x08 \x01(\r\x12\x10\n\x08operNick\x18\t \x01(\x0c\x12\x12\n\nsenderNick\x18\n \x01(\x0c\x12\x0f\n\x07\x65xtInfo\x18\x0b \x01(\x05\x42+Z)github.com/Mrs4s/MiraiGo/client/pb/notifyb\x06proto3')
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n*cai/pb/im/oidb/group0x857/group0x857.proto\"\x82\x02\n\rNotifyMsgBody\x12(\n\x0eoptMsgGrayTips\x18\x05 \x01(\x0b\x32\x10.AIOGrayTipsInfo\x12\'\n\roptMsgRedTips\x18\t \x01(\x0b\x32\x10.RedGrayTipsInfo\x12,\n\x0coptMsgRecall\x18\x0b \x01(\x0b\x32\x16.MessageRecallReminder\x12.\n\x11optGeneralGrayTip\x18\x1a \x01(\x0b\x32\x13.GeneralGrayTipInfo\x12+\n\x10qqGroupDigestMsg\x18! \x01(\x0b\x32\x11.QQGroupDigestMsg\x12\x13\n\x0bserviceType\x18\r \x01(\x05\"\x82\x01\n\x0f\x41IOGrayTipsInfo\x12\x12\n\nshowLatest\x18\x01 \x01(\r\x12\x0f\n\x07\x63ontent\x18\x02 \x01(\x0c\x12\x0e\n\x06remind\x18\x03 \x01(\r\x12\r\n\x05\x62rief\x18\x04 \x01(\x0c\x12\x13\n\x0breceiverUin\x18\x05 \x01(\x04\x12\x16\n\x0ereliaoAdminOpt\x18\x06 \x01(\r\"\xb4\x01\n\x12GeneralGrayTipInfo\x12\x10\n\x08\x62usiType\x18\x01 \x01(\x04\x12\x0e\n\x06\x62usiId\x18\x02 \x01(\x04\x12\x10\n\x08\x63trlFlag\x18\x03 \x01(\r\x12\x0f\n\x07\x63\x32\x63Type\x18\x04 \x01(\r\x12\x13\n\x0bserviceType\x18\x05 \x01(\r\x12\x0f\n\x07templId\x18\x06 \x01(\x04\x12\"\n\rmsgTemplParam\x18\x07 \x03(\x0b\x32\x0b.TemplParam\x12\x0f\n\x07\x63ontent\x18\x08 \x01(\t\")\n\nTemplParam\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"\xb2\x01\n\x15MessageRecallReminder\x12\x0b\n\x03uin\x18\x01 \x01(\x03\x12\x10\n\x08nickname\x18\x02 \x01(\x0c\x12-\n\x0frecalledMsgList\x18\x03 \x03(\x0b\x32\x14.RecalledMessageMeta\x12\x17\n\x0freminderContent\x18\x04 \x01(\x0c\x12\x0f\n\x07userdef\x18\x05 \x01(\x0c\x12\x11\n\tgroupType\x18\x06 \x01(\x05\x12\x0e\n\x06opType\x18\x07 \x01(\x05\"x\n\x13RecalledMessageMeta\x12\x0b\n\x03seq\x18\x01 \x01(\x05\x12\x0c\n\x04time\x18\x02 \x01(\x05\x12\x11\n\tmsgRandom\x18\x03 \x01(\x05\x12\x0f\n\x07msgType\x18\x04 \x01(\x05\x12\x0f\n\x07msgFlag\x18\x05 \x01(\x05\x12\x11\n\tauthorUin\x18\x06 \x01(\x03\"\xde\x01\n\x0fRedGrayTipsInfo\x12\x12\n\nshowLatest\x18\x01 \x01(\r\x12\x11\n\tsenderUin\x18\x02 \x01(\x04\x12\x13\n\x0breceiverUin\x18\x03 \x01(\x04\x12\x19\n\x11senderRichContent\x18\x04 \x01(\t\x12\x1b\n\x13receiverRichContent\x18\x05 \x01(\t\x12\x0f\n\x07\x61uthKey\x18\x06 \x01(\x0c\x12\x0f\n\x07msgType\x18\x07 \x01(\x11\x12\x11\n\tluckyFlag\x18\x08 \x01(\r\x12\x10\n\x08hideFlag\x18\t \x01(\r\x12\x10\n\x08luckyUin\x18\x0c \x01(\x04\"\xd4\x01\n\x10QQGroupDigestMsg\x12\x11\n\tgroupCode\x18\x01 \x01(\x04\x12\x0b\n\x03seq\x18\x02 \x01(\r\x12\x0e\n\x06random\x18\x03 \x01(\r\x12\x0e\n\x06opType\x18\x04 \x01(\x05\x12\x0e\n\x06sender\x18\x05 \x01(\x04\x12\x12\n\ndigestOper\x18\x06 \x01(\x04\x12\x0e\n\x06opTime\x18\x07 \x01(\r\x12\x15\n\rlastestMsgSeq\x18\x08 \x01(\r\x12\x10\n\x08operNick\x18\t \x01(\x0c\x12\x12\n\nsenderNick\x18\n \x01(\x0c\x12\x0f\n\x07\x65xtInfo\x18\x0b \x01(\x05\x42+Z)github.com/Mrs4s/MiraiGo/client/pb/notifyb\x06proto3')
@@ -28,56 +28,56 @@
_QQGROUPDIGESTMSG = DESCRIPTOR.message_types_by_name['QQGroupDigestMsg']
NotifyMsgBody = _reflection.GeneratedProtocolMessageType('NotifyMsgBody', (_message.Message,), {
'DESCRIPTOR' : _NOTIFYMSGBODY,
- '__module__' : 'group0x857_pb2'
+ '__module__' : 'cai.pb.im.oidb.group0x857.group0x857_pb2'
# @@protoc_insertion_point(class_scope:NotifyMsgBody)
})
_sym_db.RegisterMessage(NotifyMsgBody)
AIOGrayTipsInfo = _reflection.GeneratedProtocolMessageType('AIOGrayTipsInfo', (_message.Message,), {
'DESCRIPTOR' : _AIOGRAYTIPSINFO,
- '__module__' : 'group0x857_pb2'
+ '__module__' : 'cai.pb.im.oidb.group0x857.group0x857_pb2'
# @@protoc_insertion_point(class_scope:AIOGrayTipsInfo)
})
_sym_db.RegisterMessage(AIOGrayTipsInfo)
GeneralGrayTipInfo = _reflection.GeneratedProtocolMessageType('GeneralGrayTipInfo', (_message.Message,), {
'DESCRIPTOR' : _GENERALGRAYTIPINFO,
- '__module__' : 'group0x857_pb2'
+ '__module__' : 'cai.pb.im.oidb.group0x857.group0x857_pb2'
# @@protoc_insertion_point(class_scope:GeneralGrayTipInfo)
})
_sym_db.RegisterMessage(GeneralGrayTipInfo)
TemplParam = _reflection.GeneratedProtocolMessageType('TemplParam', (_message.Message,), {
'DESCRIPTOR' : _TEMPLPARAM,
- '__module__' : 'group0x857_pb2'
+ '__module__' : 'cai.pb.im.oidb.group0x857.group0x857_pb2'
# @@protoc_insertion_point(class_scope:TemplParam)
})
_sym_db.RegisterMessage(TemplParam)
MessageRecallReminder = _reflection.GeneratedProtocolMessageType('MessageRecallReminder', (_message.Message,), {
'DESCRIPTOR' : _MESSAGERECALLREMINDER,
- '__module__' : 'group0x857_pb2'
+ '__module__' : 'cai.pb.im.oidb.group0x857.group0x857_pb2'
# @@protoc_insertion_point(class_scope:MessageRecallReminder)
})
_sym_db.RegisterMessage(MessageRecallReminder)
RecalledMessageMeta = _reflection.GeneratedProtocolMessageType('RecalledMessageMeta', (_message.Message,), {
'DESCRIPTOR' : _RECALLEDMESSAGEMETA,
- '__module__' : 'group0x857_pb2'
+ '__module__' : 'cai.pb.im.oidb.group0x857.group0x857_pb2'
# @@protoc_insertion_point(class_scope:RecalledMessageMeta)
})
_sym_db.RegisterMessage(RecalledMessageMeta)
RedGrayTipsInfo = _reflection.GeneratedProtocolMessageType('RedGrayTipsInfo', (_message.Message,), {
'DESCRIPTOR' : _REDGRAYTIPSINFO,
- '__module__' : 'group0x857_pb2'
+ '__module__' : 'cai.pb.im.oidb.group0x857.group0x857_pb2'
# @@protoc_insertion_point(class_scope:RedGrayTipsInfo)
})
_sym_db.RegisterMessage(RedGrayTipsInfo)
QQGroupDigestMsg = _reflection.GeneratedProtocolMessageType('QQGroupDigestMsg', (_message.Message,), {
'DESCRIPTOR' : _QQGROUPDIGESTMSG,
- '__module__' : 'group0x857_pb2'
+ '__module__' : 'cai.pb.im.oidb.group0x857.group0x857_pb2'
# @@protoc_insertion_point(class_scope:QQGroupDigestMsg)
})
_sym_db.RegisterMessage(QQGroupDigestMsg)
@@ -86,20 +86,20 @@
DESCRIPTOR._options = None
DESCRIPTOR._serialized_options = b'Z)github.com/Mrs4s/MiraiGo/client/pb/notify'
- _NOTIFYMSGBODY._serialized_start=21
- _NOTIFYMSGBODY._serialized_end=279
- _AIOGRAYTIPSINFO._serialized_start=282
- _AIOGRAYTIPSINFO._serialized_end=412
- _GENERALGRAYTIPINFO._serialized_start=415
- _GENERALGRAYTIPINFO._serialized_end=595
- _TEMPLPARAM._serialized_start=597
- _TEMPLPARAM._serialized_end=638
- _MESSAGERECALLREMINDER._serialized_start=641
- _MESSAGERECALLREMINDER._serialized_end=819
- _RECALLEDMESSAGEMETA._serialized_start=821
- _RECALLEDMESSAGEMETA._serialized_end=941
- _REDGRAYTIPSINFO._serialized_start=944
- _REDGRAYTIPSINFO._serialized_end=1166
- _QQGROUPDIGESTMSG._serialized_start=1169
- _QQGROUPDIGESTMSG._serialized_end=1381
+ _NOTIFYMSGBODY._serialized_start=47
+ _NOTIFYMSGBODY._serialized_end=305
+ _AIOGRAYTIPSINFO._serialized_start=308
+ _AIOGRAYTIPSINFO._serialized_end=438
+ _GENERALGRAYTIPINFO._serialized_start=441
+ _GENERALGRAYTIPINFO._serialized_end=621
+ _TEMPLPARAM._serialized_start=623
+ _TEMPLPARAM._serialized_end=664
+ _MESSAGERECALLREMINDER._serialized_start=667
+ _MESSAGERECALLREMINDER._serialized_end=845
+ _RECALLEDMESSAGEMETA._serialized_start=847
+ _RECALLEDMESSAGEMETA._serialized_end=967
+ _REDGRAYTIPSINFO._serialized_start=970
+ _REDGRAYTIPSINFO._serialized_end=1192
+ _QQGROUPDIGESTMSG._serialized_start=1195
+ _QQGROUPDIGESTMSG._serialized_end=1407
# @@protoc_insertion_point(module_scope)
diff --git a/cai/pb/msf/msg/comm/comm_pb2.py b/cai/pb/msf/msg/comm/comm_pb2.py
index a109fce3..c6762eea 100644
--- a/cai/pb/msf/msg/comm/comm_pb2.py
+++ b/cai/pb/msf/msg/comm/comm_pb2.py
@@ -3,6 +3,7 @@
# source: cai/pb/msf/msg/comm/comm.proto
"""Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
@@ -15,1035 +16,23 @@
from cai.pb.im.msg.msg_head import msg_head_pb2 as cai_dot_pb_dot_im_dot_msg_dot_msg__head_dot_msg__head__pb2
-DESCRIPTOR = _descriptor.FileDescriptor(
- name='cai/pb/msf/msg/comm/comm.proto',
- package='msf.msg.comm',
- syntax='proto2',
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- serialized_pb=b'\n\x1e\x63\x61i/pb/msf/msg/comm/comm.proto\x12\x0cmsf.msg.comm\x1a%cai/pb/im/msg/msg_body/msg_body.proto\x1a%cai/pb/im/msg/msg_head/msg_head.proto\"q\n\x0c\x41ppShareInfo\x12\x13\n\x0b\x61ppshare_id\x18\x01 \x01(\r\x12\x17\n\x0f\x61ppshare_cookie\x18\x02 \x01(\x0c\x12\x33\n\x11\x61ppshare_resource\x18\x03 \x01(\x0b\x32\x18.msf.msg.comm.PluginInfo\"\x98\x02\n\rC2CTmpMsgHead\x12\x10\n\x08\x63\x32\x63_type\x18\x01 \x01(\r\x12\x14\n\x0cservice_type\x18\x02 \x01(\r\x12\x11\n\tgroup_uin\x18\x03 \x01(\x04\x12\x12\n\ngroup_code\x18\x04 \x01(\x04\x12\x0b\n\x03sig\x18\x05 \x01(\x0c\x12\x10\n\x08sig_type\x18\x06 \x01(\r\x12\x12\n\nfrom_phone\x18\x07 \x01(\t\x12\x10\n\x08to_phone\x18\x08 \x01(\t\x12\x14\n\x0clock_display\x18\t \x01(\r\x12\x16\n\x0e\x64irection_flag\x18\n \x01(\r\x12\x10\n\x08reserved\x18\x0b \x01(\x0c\x12\x15\n\rbusiness_name\x18\x0e \x01(\x0c\x12\x1c\n\x14\x62usiness_sub_content\x18\x0f \x01(\x0c\"V\n\x0b\x43ontentHead\x12\x0f\n\x07pkg_num\x18\x01 \x01(\r\x12\x11\n\tpkg_index\x18\x02 \x01(\r\x12\x0f\n\x07\x64iv_seq\x18\x03 \x01(\r\x12\x12\n\nauto_reply\x18\x04 \x01(\r\"\x80\x01\n\x0b\x44iscussInfo\x12\x13\n\x0b\x64iscuss_uin\x18\x01 \x01(\x04\x12\x14\n\x0c\x64iscuss_type\x18\x02 \x01(\r\x12\x18\n\x10\x64iscuss_info_seq\x18\x03 \x01(\x04\x12\x16\n\x0e\x64iscuss_remark\x18\x04 \x01(\x0c\x12\x14\n\x0c\x64iscuss_name\x18\x05 \x01(\x0c\"l\n\x0f\x45xtGroupKeyInfo\x12\x13\n\x0b\x63ur_max_seq\x18\x01 \x01(\r\x12\x10\n\x08\x63ur_time\x18\x02 \x01(\x04\x12\x1a\n\x12operate_by_parents\x18\x03 \x01(\r\x12\x16\n\x0e\x65xt_group_info\x18\x04 \x01(\x0c\"\xb5\x01\n\tGroupInfo\x12\x12\n\ngroup_code\x18\x01 \x01(\x04\x12\x12\n\ngroup_type\x18\x02 \x01(\r\x12\x16\n\x0egroup_info_seq\x18\x03 \x01(\x04\x12\x12\n\ngroup_card\x18\x04 \x01(\x0c\x12\x12\n\ngroup_rank\x18\x05 \x01(\x0c\x12\x13\n\x0bgroup_level\x18\x06 \x01(\r\x12\x17\n\x0fgroup_card_type\x18\x07 \x01(\r\x12\x12\n\ngroup_name\x18\x08 \x01(\x0c\"\xb6\x01\n\x03Msg\x12#\n\x04head\x18\x01 \x01(\x0b\x32\x15.msf.msg.comm.MsgHead\x12/\n\x0c\x63ontent_head\x18\x02 \x01(\x0b\x32\x19.msf.msg.comm.ContentHead\x12&\n\x04\x62ody\x18\x03 \x01(\x0b\x32\x18.im.msg.msg_body.MsgBody\x12\x31\n\rappshare_info\x18\x04 \x01(\x0b\x32\x1a.msf.msg.comm.AppShareInfo\"\xec\x05\n\x07MsgHead\x12\x10\n\x08\x66rom_uin\x18\x01 \x01(\x04\x12\x0e\n\x06to_uin\x18\x02 \x01(\x04\x12\x0c\n\x04type\x18\x03 \x01(\r\x12\x0f\n\x07\x63\x32\x63_cmd\x18\x04 \x01(\r\x12\x0b\n\x03seq\x18\x05 \x01(\r\x12\x0c\n\x04time\x18\x06 \x01(\r\x12\x0b\n\x03uid\x18\x07 \x01(\x04\x12\x35\n\x10\x63\x32\x63_tmp_msg_head\x18\x08 \x01(\x0b\x32\x1b.msf.msg.comm.C2CTmpMsgHead\x12+\n\ngroup_info\x18\t \x01(\x0b\x32\x17.msf.msg.comm.GroupInfo\x12\x12\n\nfrom_appid\x18\n \x01(\r\x12\x13\n\x0b\x66rom_instid\x18\x0b \x01(\r\x12\x13\n\x0buser_active\x18\x0c \x01(\r\x12/\n\x0c\x64iscuss_info\x18\r \x01(\x0b\x32\x19.msf.msg.comm.DiscussInfo\x12\x11\n\tfrom_nick\x18\x0e \x01(\t\x12\x10\n\x08\x61uth_uin\x18\x0f \x01(\x04\x12\x11\n\tauth_nick\x18\x10 \x01(\t\x12\x0c\n\x04\x66lag\x18\x11 \x01(\r\x12\x13\n\x0b\x61uth_remark\x18\x12 \x01(\t\x12\x12\n\ngroup_name\x18\x13 \x01(\t\x12\x35\n\x0fmutiltrans_head\x18\x14 \x01(\x0b\x32\x1c.msf.msg.comm.MutilTransHead\x12,\n\tinst_ctrl\x18\x15 \x01(\x0b\x32\x19.im.msg.msg_head.InstCtrl\x12&\n\x1epublic_account_group_send_flag\x18\x16 \x01(\r\x12\x1b\n\x13wseq_in_c2c_msghead\x18\x17 \x01(\r\x12\x0c\n\x04\x63pid\x18\x18 \x01(\x04\x12\x39\n\x12\x65xt_group_key_info\x18\x19 \x01(\x0b\x32\x1d.msf.msg.comm.ExtGroupKeyInfo\x12\x1d\n\x15multi_compatible_text\x18\x1a \x01(\t\x12\x10\n\x08\x61uth_sex\x18\x1b \x01(\r\x12\x12\n\nis_src_msg\x18\x1c \x01(\x08\"5\n\x0cMsgType0x210\x12\x14\n\x0csub_msg_type\x18\x01 \x01(\r\x12\x0f\n\x07\x63ontent\x18\x02 \x01(\x0c\"0\n\x0eMutilTransHead\x12\x0e\n\x06status\x18\x01 \x01(\r\x12\x0e\n\x06msg_id\x18\x02 \x01(\r\"\xd7\x01\n\nPluginInfo\x12\x0e\n\x06res_id\x18\x01 \x01(\r\x12\x10\n\x08pkg_name\x18\x02 \x01(\t\x12\x0f\n\x07new_ver\x18\x03 \x01(\r\x12\x10\n\x08res_type\x18\x04 \x01(\r\x12\x10\n\x08lan_type\x18\x05 \x01(\r\x12\x10\n\x08priority\x18\x06 \x01(\r\x12\x10\n\x08res_name\x18\x07 \x01(\t\x12\x10\n\x08res_desc\x18\x08 \x01(\t\x12\x13\n\x0bres_url_big\x18\t \x01(\t\x12\x15\n\rres_url_small\x18\n \x01(\t\x12\x10\n\x08res_conf\x18\x0b \x01(\t\"%\n\x08Uin2Nick\x12\x0b\n\x03uin\x18\x01 \x01(\x04\x12\x0c\n\x04nick\x18\x02 \x01(\t\"\xd1\x01\n\nUinPairMsg\x12\x16\n\x0elast_read_time\x18\x01 \x01(\r\x12\x10\n\x08peer_uin\x18\x02 \x01(\x04\x12\x11\n\tcompleted\x18\x03 \x01(\r\x12\x1e\n\x03msg\x18\x04 \x03(\x0b\x32\x11.msf.msg.comm.Msg\x12\x16\n\x0eunread_msg_num\x18\x05 \x01(\r\x12\x10\n\x08\x63\x32\x63_type\x18\x08 \x01(\r\x12\x14\n\x0cservice_type\x18\t \x01(\r\x12\x12\n\npb_reserve\x18\n \x01(\x0c\x12\x12\n\nto_tiny_id\x18\x0b \x01(\x04'
- ,
- dependencies=[cai_dot_pb_dot_im_dot_msg_dot_msg__body_dot_msg__body__pb2.DESCRIPTOR,cai_dot_pb_dot_im_dot_msg_dot_msg__head_dot_msg__head__pb2.DESCRIPTOR,])
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1e\x63\x61i/pb/msf/msg/comm/comm.proto\x12\x0cmsf.msg.comm\x1a%cai/pb/im/msg/msg_body/msg_body.proto\x1a%cai/pb/im/msg/msg_head/msg_head.proto\"q\n\x0c\x41ppShareInfo\x12\x13\n\x0b\x61ppshare_id\x18\x01 \x01(\r\x12\x17\n\x0f\x61ppshare_cookie\x18\x02 \x01(\x0c\x12\x33\n\x11\x61ppshare_resource\x18\x03 \x01(\x0b\x32\x18.msf.msg.comm.PluginInfo\"\x98\x02\n\rC2CTmpMsgHead\x12\x10\n\x08\x63\x32\x63_type\x18\x01 \x01(\r\x12\x14\n\x0cservice_type\x18\x02 \x01(\r\x12\x11\n\tgroup_uin\x18\x03 \x01(\x04\x12\x12\n\ngroup_code\x18\x04 \x01(\x04\x12\x0b\n\x03sig\x18\x05 \x01(\x0c\x12\x10\n\x08sig_type\x18\x06 \x01(\r\x12\x12\n\nfrom_phone\x18\x07 \x01(\t\x12\x10\n\x08to_phone\x18\x08 \x01(\t\x12\x14\n\x0clock_display\x18\t \x01(\r\x12\x16\n\x0e\x64irection_flag\x18\n \x01(\r\x12\x10\n\x08reserved\x18\x0b \x01(\x0c\x12\x15\n\rbusiness_name\x18\x0e \x01(\x0c\x12\x1c\n\x14\x62usiness_sub_content\x18\x0f \x01(\x0c\"V\n\x0b\x43ontentHead\x12\x0f\n\x07pkg_num\x18\x01 \x01(\r\x12\x11\n\tpkg_index\x18\x02 \x01(\r\x12\x0f\n\x07\x64iv_seq\x18\x03 \x01(\r\x12\x12\n\nauto_reply\x18\x04 \x01(\r\"\x80\x01\n\x0b\x44iscussInfo\x12\x13\n\x0b\x64iscuss_uin\x18\x01 \x01(\x04\x12\x14\n\x0c\x64iscuss_type\x18\x02 \x01(\r\x12\x18\n\x10\x64iscuss_info_seq\x18\x03 \x01(\x04\x12\x16\n\x0e\x64iscuss_remark\x18\x04 \x01(\x0c\x12\x14\n\x0c\x64iscuss_name\x18\x05 \x01(\x0c\"l\n\x0f\x45xtGroupKeyInfo\x12\x13\n\x0b\x63ur_max_seq\x18\x01 \x01(\r\x12\x10\n\x08\x63ur_time\x18\x02 \x01(\x04\x12\x1a\n\x12operate_by_parents\x18\x03 \x01(\r\x12\x16\n\x0e\x65xt_group_info\x18\x04 \x01(\x0c\"\xb5\x01\n\tGroupInfo\x12\x12\n\ngroup_code\x18\x01 \x01(\x04\x12\x12\n\ngroup_type\x18\x02 \x01(\r\x12\x16\n\x0egroup_info_seq\x18\x03 \x01(\x04\x12\x12\n\ngroup_card\x18\x04 \x01(\x0c\x12\x12\n\ngroup_rank\x18\x05 \x01(\x0c\x12\x13\n\x0bgroup_level\x18\x06 \x01(\r\x12\x17\n\x0fgroup_card_type\x18\x07 \x01(\r\x12\x12\n\ngroup_name\x18\x08 \x01(\x0c\"\xb6\x01\n\x03Msg\x12#\n\x04head\x18\x01 \x01(\x0b\x32\x15.msf.msg.comm.MsgHead\x12/\n\x0c\x63ontent_head\x18\x02 \x01(\x0b\x32\x19.msf.msg.comm.ContentHead\x12&\n\x04\x62ody\x18\x03 \x01(\x0b\x32\x18.im.msg.msg_body.MsgBody\x12\x31\n\rappshare_info\x18\x04 \x01(\x0b\x32\x1a.msf.msg.comm.AppShareInfo\"\xec\x05\n\x07MsgHead\x12\x10\n\x08\x66rom_uin\x18\x01 \x01(\x04\x12\x0e\n\x06to_uin\x18\x02 \x01(\x04\x12\x0c\n\x04type\x18\x03 \x01(\r\x12\x0f\n\x07\x63\x32\x63_cmd\x18\x04 \x01(\r\x12\x0b\n\x03seq\x18\x05 \x01(\r\x12\x0c\n\x04time\x18\x06 \x01(\r\x12\x0b\n\x03uid\x18\x07 \x01(\x04\x12\x35\n\x10\x63\x32\x63_tmp_msg_head\x18\x08 \x01(\x0b\x32\x1b.msf.msg.comm.C2CTmpMsgHead\x12+\n\ngroup_info\x18\t \x01(\x0b\x32\x17.msf.msg.comm.GroupInfo\x12\x12\n\nfrom_appid\x18\n \x01(\r\x12\x13\n\x0b\x66rom_instid\x18\x0b \x01(\r\x12\x13\n\x0buser_active\x18\x0c \x01(\r\x12/\n\x0c\x64iscuss_info\x18\r \x01(\x0b\x32\x19.msf.msg.comm.DiscussInfo\x12\x11\n\tfrom_nick\x18\x0e \x01(\t\x12\x10\n\x08\x61uth_uin\x18\x0f \x01(\x04\x12\x11\n\tauth_nick\x18\x10 \x01(\t\x12\x0c\n\x04\x66lag\x18\x11 \x01(\r\x12\x13\n\x0b\x61uth_remark\x18\x12 \x01(\t\x12\x12\n\ngroup_name\x18\x13 \x01(\t\x12\x35\n\x0fmutiltrans_head\x18\x14 \x01(\x0b\x32\x1c.msf.msg.comm.MutilTransHead\x12,\n\tinst_ctrl\x18\x15 \x01(\x0b\x32\x19.im.msg.msg_head.InstCtrl\x12&\n\x1epublic_account_group_send_flag\x18\x16 \x01(\r\x12\x1b\n\x13wseq_in_c2c_msghead\x18\x17 \x01(\r\x12\x0c\n\x04\x63pid\x18\x18 \x01(\x04\x12\x39\n\x12\x65xt_group_key_info\x18\x19 \x01(\x0b\x32\x1d.msf.msg.comm.ExtGroupKeyInfo\x12\x1d\n\x15multi_compatible_text\x18\x1a \x01(\t\x12\x10\n\x08\x61uth_sex\x18\x1b \x01(\r\x12\x12\n\nis_src_msg\x18\x1c \x01(\x08\"5\n\x0cMsgType0x210\x12\x14\n\x0csub_msg_type\x18\x01 \x01(\r\x12\x0f\n\x07\x63ontent\x18\x02 \x01(\x0c\"0\n\x0eMutilTransHead\x12\x0e\n\x06status\x18\x01 \x01(\r\x12\x0e\n\x06msg_id\x18\x02 \x01(\r\"\xd7\x01\n\nPluginInfo\x12\x0e\n\x06res_id\x18\x01 \x01(\r\x12\x10\n\x08pkg_name\x18\x02 \x01(\t\x12\x0f\n\x07new_ver\x18\x03 \x01(\r\x12\x10\n\x08res_type\x18\x04 \x01(\r\x12\x10\n\x08lan_type\x18\x05 \x01(\r\x12\x10\n\x08priority\x18\x06 \x01(\r\x12\x10\n\x08res_name\x18\x07 \x01(\t\x12\x10\n\x08res_desc\x18\x08 \x01(\t\x12\x13\n\x0bres_url_big\x18\t \x01(\t\x12\x15\n\rres_url_small\x18\n \x01(\t\x12\x10\n\x08res_conf\x18\x0b \x01(\t\"%\n\x08Uin2Nick\x12\x0b\n\x03uin\x18\x01 \x01(\x04\x12\x0c\n\x04nick\x18\x02 \x01(\t\"\xd1\x01\n\nUinPairMsg\x12\x16\n\x0elast_read_time\x18\x01 \x01(\r\x12\x10\n\x08peer_uin\x18\x02 \x01(\x04\x12\x11\n\tcompleted\x18\x03 \x01(\r\x12\x1e\n\x03msg\x18\x04 \x03(\x0b\x32\x11.msf.msg.comm.Msg\x12\x16\n\x0eunread_msg_num\x18\x05 \x01(\r\x12\x10\n\x08\x63\x32\x63_type\x18\x08 \x01(\r\x12\x14\n\x0cservice_type\x18\t \x01(\r\x12\x12\n\npb_reserve\x18\n \x01(\x0c\x12\x12\n\nto_tiny_id\x18\x0b \x01(\x04')
-
-_APPSHAREINFO = _descriptor.Descriptor(
- name='AppShareInfo',
- full_name='msf.msg.comm.AppShareInfo',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='appshare_id', full_name='msf.msg.comm.AppShareInfo.appshare_id', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='appshare_cookie', full_name='msf.msg.comm.AppShareInfo.appshare_cookie', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='appshare_resource', full_name='msf.msg.comm.AppShareInfo.appshare_resource', index=2,
- number=3, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=126,
- serialized_end=239,
-)
-
-
-_C2CTMPMSGHEAD = _descriptor.Descriptor(
- name='C2CTmpMsgHead',
- full_name='msf.msg.comm.C2CTmpMsgHead',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='c2c_type', full_name='msf.msg.comm.C2CTmpMsgHead.c2c_type', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='service_type', full_name='msf.msg.comm.C2CTmpMsgHead.service_type', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='group_uin', full_name='msf.msg.comm.C2CTmpMsgHead.group_uin', index=2,
- number=3, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='group_code', full_name='msf.msg.comm.C2CTmpMsgHead.group_code', index=3,
- number=4, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='sig', full_name='msf.msg.comm.C2CTmpMsgHead.sig', index=4,
- number=5, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='sig_type', full_name='msf.msg.comm.C2CTmpMsgHead.sig_type', index=5,
- number=6, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='from_phone', full_name='msf.msg.comm.C2CTmpMsgHead.from_phone', index=6,
- number=7, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='to_phone', full_name='msf.msg.comm.C2CTmpMsgHead.to_phone', index=7,
- number=8, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='lock_display', full_name='msf.msg.comm.C2CTmpMsgHead.lock_display', index=8,
- number=9, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='direction_flag', full_name='msf.msg.comm.C2CTmpMsgHead.direction_flag', index=9,
- number=10, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='reserved', full_name='msf.msg.comm.C2CTmpMsgHead.reserved', index=10,
- number=11, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='business_name', full_name='msf.msg.comm.C2CTmpMsgHead.business_name', index=11,
- number=14, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='business_sub_content', full_name='msf.msg.comm.C2CTmpMsgHead.business_sub_content', index=12,
- number=15, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=242,
- serialized_end=522,
-)
-
-
-_CONTENTHEAD = _descriptor.Descriptor(
- name='ContentHead',
- full_name='msf.msg.comm.ContentHead',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='pkg_num', full_name='msf.msg.comm.ContentHead.pkg_num', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='pkg_index', full_name='msf.msg.comm.ContentHead.pkg_index', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='div_seq', full_name='msf.msg.comm.ContentHead.div_seq', index=2,
- number=3, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='auto_reply', full_name='msf.msg.comm.ContentHead.auto_reply', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=524,
- serialized_end=610,
-)
-
-
-_DISCUSSINFO = _descriptor.Descriptor(
- name='DiscussInfo',
- full_name='msf.msg.comm.DiscussInfo',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='discuss_uin', full_name='msf.msg.comm.DiscussInfo.discuss_uin', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='discuss_type', full_name='msf.msg.comm.DiscussInfo.discuss_type', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='discuss_info_seq', full_name='msf.msg.comm.DiscussInfo.discuss_info_seq', index=2,
- number=3, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='discuss_remark', full_name='msf.msg.comm.DiscussInfo.discuss_remark', index=3,
- number=4, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='discuss_name', full_name='msf.msg.comm.DiscussInfo.discuss_name', index=4,
- number=5, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=613,
- serialized_end=741,
-)
-
-
-_EXTGROUPKEYINFO = _descriptor.Descriptor(
- name='ExtGroupKeyInfo',
- full_name='msf.msg.comm.ExtGroupKeyInfo',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='cur_max_seq', full_name='msf.msg.comm.ExtGroupKeyInfo.cur_max_seq', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='cur_time', full_name='msf.msg.comm.ExtGroupKeyInfo.cur_time', index=1,
- number=2, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='operate_by_parents', full_name='msf.msg.comm.ExtGroupKeyInfo.operate_by_parents', index=2,
- number=3, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='ext_group_info', full_name='msf.msg.comm.ExtGroupKeyInfo.ext_group_info', index=3,
- number=4, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=743,
- serialized_end=851,
-)
-
-
-_GROUPINFO = _descriptor.Descriptor(
- name='GroupInfo',
- full_name='msf.msg.comm.GroupInfo',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='group_code', full_name='msf.msg.comm.GroupInfo.group_code', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='group_type', full_name='msf.msg.comm.GroupInfo.group_type', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='group_info_seq', full_name='msf.msg.comm.GroupInfo.group_info_seq', index=2,
- number=3, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='group_card', full_name='msf.msg.comm.GroupInfo.group_card', index=3,
- number=4, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='group_rank', full_name='msf.msg.comm.GroupInfo.group_rank', index=4,
- number=5, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='group_level', full_name='msf.msg.comm.GroupInfo.group_level', index=5,
- number=6, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='group_card_type', full_name='msf.msg.comm.GroupInfo.group_card_type', index=6,
- number=7, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='group_name', full_name='msf.msg.comm.GroupInfo.group_name', index=7,
- number=8, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=854,
- serialized_end=1035,
-)
-
-
-_MSG = _descriptor.Descriptor(
- name='Msg',
- full_name='msf.msg.comm.Msg',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='head', full_name='msf.msg.comm.Msg.head', index=0,
- number=1, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='content_head', full_name='msf.msg.comm.Msg.content_head', index=1,
- number=2, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='body', full_name='msf.msg.comm.Msg.body', index=2,
- number=3, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='appshare_info', full_name='msf.msg.comm.Msg.appshare_info', index=3,
- number=4, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=1038,
- serialized_end=1220,
-)
-
-
-_MSGHEAD = _descriptor.Descriptor(
- name='MsgHead',
- full_name='msf.msg.comm.MsgHead',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='from_uin', full_name='msf.msg.comm.MsgHead.from_uin', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='to_uin', full_name='msf.msg.comm.MsgHead.to_uin', index=1,
- number=2, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='type', full_name='msf.msg.comm.MsgHead.type', index=2,
- number=3, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='c2c_cmd', full_name='msf.msg.comm.MsgHead.c2c_cmd', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='seq', full_name='msf.msg.comm.MsgHead.seq', index=4,
- number=5, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='time', full_name='msf.msg.comm.MsgHead.time', index=5,
- number=6, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='uid', full_name='msf.msg.comm.MsgHead.uid', index=6,
- number=7, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='c2c_tmp_msg_head', full_name='msf.msg.comm.MsgHead.c2c_tmp_msg_head', index=7,
- number=8, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='group_info', full_name='msf.msg.comm.MsgHead.group_info', index=8,
- number=9, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='from_appid', full_name='msf.msg.comm.MsgHead.from_appid', index=9,
- number=10, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='from_instid', full_name='msf.msg.comm.MsgHead.from_instid', index=10,
- number=11, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='user_active', full_name='msf.msg.comm.MsgHead.user_active', index=11,
- number=12, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='discuss_info', full_name='msf.msg.comm.MsgHead.discuss_info', index=12,
- number=13, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='from_nick', full_name='msf.msg.comm.MsgHead.from_nick', index=13,
- number=14, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='auth_uin', full_name='msf.msg.comm.MsgHead.auth_uin', index=14,
- number=15, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='auth_nick', full_name='msf.msg.comm.MsgHead.auth_nick', index=15,
- number=16, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='flag', full_name='msf.msg.comm.MsgHead.flag', index=16,
- number=17, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='auth_remark', full_name='msf.msg.comm.MsgHead.auth_remark', index=17,
- number=18, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='group_name', full_name='msf.msg.comm.MsgHead.group_name', index=18,
- number=19, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='mutiltrans_head', full_name='msf.msg.comm.MsgHead.mutiltrans_head', index=19,
- number=20, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='inst_ctrl', full_name='msf.msg.comm.MsgHead.inst_ctrl', index=20,
- number=21, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='public_account_group_send_flag', full_name='msf.msg.comm.MsgHead.public_account_group_send_flag', index=21,
- number=22, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='wseq_in_c2c_msghead', full_name='msf.msg.comm.MsgHead.wseq_in_c2c_msghead', index=22,
- number=23, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='cpid', full_name='msf.msg.comm.MsgHead.cpid', index=23,
- number=24, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='ext_group_key_info', full_name='msf.msg.comm.MsgHead.ext_group_key_info', index=24,
- number=25, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='multi_compatible_text', full_name='msf.msg.comm.MsgHead.multi_compatible_text', index=25,
- number=26, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='auth_sex', full_name='msf.msg.comm.MsgHead.auth_sex', index=26,
- number=27, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='is_src_msg', full_name='msf.msg.comm.MsgHead.is_src_msg', index=27,
- number=28, type=8, cpp_type=7, label=1,
- has_default_value=False, default_value=False,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=1223,
- serialized_end=1971,
-)
-
-
-_MSGTYPE0X210 = _descriptor.Descriptor(
- name='MsgType0x210',
- full_name='msf.msg.comm.MsgType0x210',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='sub_msg_type', full_name='msf.msg.comm.MsgType0x210.sub_msg_type', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='content', full_name='msf.msg.comm.MsgType0x210.content', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=1973,
- serialized_end=2026,
-)
-
-
-_MUTILTRANSHEAD = _descriptor.Descriptor(
- name='MutilTransHead',
- full_name='msf.msg.comm.MutilTransHead',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='status', full_name='msf.msg.comm.MutilTransHead.status', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='msg_id', full_name='msf.msg.comm.MutilTransHead.msg_id', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=2028,
- serialized_end=2076,
-)
-
-
-_PLUGININFO = _descriptor.Descriptor(
- name='PluginInfo',
- full_name='msf.msg.comm.PluginInfo',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='res_id', full_name='msf.msg.comm.PluginInfo.res_id', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='pkg_name', full_name='msf.msg.comm.PluginInfo.pkg_name', index=1,
- number=2, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='new_ver', full_name='msf.msg.comm.PluginInfo.new_ver', index=2,
- number=3, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='res_type', full_name='msf.msg.comm.PluginInfo.res_type', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='lan_type', full_name='msf.msg.comm.PluginInfo.lan_type', index=4,
- number=5, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='priority', full_name='msf.msg.comm.PluginInfo.priority', index=5,
- number=6, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='res_name', full_name='msf.msg.comm.PluginInfo.res_name', index=6,
- number=7, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='res_desc', full_name='msf.msg.comm.PluginInfo.res_desc', index=7,
- number=8, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='res_url_big', full_name='msf.msg.comm.PluginInfo.res_url_big', index=8,
- number=9, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='res_url_small', full_name='msf.msg.comm.PluginInfo.res_url_small', index=9,
- number=10, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='res_conf', full_name='msf.msg.comm.PluginInfo.res_conf', index=10,
- number=11, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=2079,
- serialized_end=2294,
-)
-
-
-_UIN2NICK = _descriptor.Descriptor(
- name='Uin2Nick',
- full_name='msf.msg.comm.Uin2Nick',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='uin', full_name='msf.msg.comm.Uin2Nick.uin', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='nick', full_name='msf.msg.comm.Uin2Nick.nick', index=1,
- number=2, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=2296,
- serialized_end=2333,
-)
-
-
-_UINPAIRMSG = _descriptor.Descriptor(
- name='UinPairMsg',
- full_name='msf.msg.comm.UinPairMsg',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='last_read_time', full_name='msf.msg.comm.UinPairMsg.last_read_time', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='peer_uin', full_name='msf.msg.comm.UinPairMsg.peer_uin', index=1,
- number=2, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='completed', full_name='msf.msg.comm.UinPairMsg.completed', index=2,
- number=3, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='msg', full_name='msf.msg.comm.UinPairMsg.msg', index=3,
- number=4, type=11, cpp_type=10, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='unread_msg_num', full_name='msf.msg.comm.UinPairMsg.unread_msg_num', index=4,
- number=5, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='c2c_type', full_name='msf.msg.comm.UinPairMsg.c2c_type', index=5,
- number=8, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='service_type', full_name='msf.msg.comm.UinPairMsg.service_type', index=6,
- number=9, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='pb_reserve', full_name='msf.msg.comm.UinPairMsg.pb_reserve', index=7,
- number=10, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='to_tiny_id', full_name='msf.msg.comm.UinPairMsg.to_tiny_id', index=8,
- number=11, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=2336,
- serialized_end=2545,
-)
-
-_APPSHAREINFO.fields_by_name['appshare_resource'].message_type = _PLUGININFO
-_MSG.fields_by_name['head'].message_type = _MSGHEAD
-_MSG.fields_by_name['content_head'].message_type = _CONTENTHEAD
-_MSG.fields_by_name['body'].message_type = cai_dot_pb_dot_im_dot_msg_dot_msg__body_dot_msg__body__pb2._MSGBODY
-_MSG.fields_by_name['appshare_info'].message_type = _APPSHAREINFO
-_MSGHEAD.fields_by_name['c2c_tmp_msg_head'].message_type = _C2CTMPMSGHEAD
-_MSGHEAD.fields_by_name['group_info'].message_type = _GROUPINFO
-_MSGHEAD.fields_by_name['discuss_info'].message_type = _DISCUSSINFO
-_MSGHEAD.fields_by_name['mutiltrans_head'].message_type = _MUTILTRANSHEAD
-_MSGHEAD.fields_by_name['inst_ctrl'].message_type = cai_dot_pb_dot_im_dot_msg_dot_msg__head_dot_msg__head__pb2._INSTCTRL
-_MSGHEAD.fields_by_name['ext_group_key_info'].message_type = _EXTGROUPKEYINFO
-_UINPAIRMSG.fields_by_name['msg'].message_type = _MSG
-DESCRIPTOR.message_types_by_name['AppShareInfo'] = _APPSHAREINFO
-DESCRIPTOR.message_types_by_name['C2CTmpMsgHead'] = _C2CTMPMSGHEAD
-DESCRIPTOR.message_types_by_name['ContentHead'] = _CONTENTHEAD
-DESCRIPTOR.message_types_by_name['DiscussInfo'] = _DISCUSSINFO
-DESCRIPTOR.message_types_by_name['ExtGroupKeyInfo'] = _EXTGROUPKEYINFO
-DESCRIPTOR.message_types_by_name['GroupInfo'] = _GROUPINFO
-DESCRIPTOR.message_types_by_name['Msg'] = _MSG
-DESCRIPTOR.message_types_by_name['MsgHead'] = _MSGHEAD
-DESCRIPTOR.message_types_by_name['MsgType0x210'] = _MSGTYPE0X210
-DESCRIPTOR.message_types_by_name['MutilTransHead'] = _MUTILTRANSHEAD
-DESCRIPTOR.message_types_by_name['PluginInfo'] = _PLUGININFO
-DESCRIPTOR.message_types_by_name['Uin2Nick'] = _UIN2NICK
-DESCRIPTOR.message_types_by_name['UinPairMsg'] = _UINPAIRMSG
-_sym_db.RegisterFileDescriptor(DESCRIPTOR)
-
+_APPSHAREINFO = DESCRIPTOR.message_types_by_name['AppShareInfo']
+_C2CTMPMSGHEAD = DESCRIPTOR.message_types_by_name['C2CTmpMsgHead']
+_CONTENTHEAD = DESCRIPTOR.message_types_by_name['ContentHead']
+_DISCUSSINFO = DESCRIPTOR.message_types_by_name['DiscussInfo']
+_EXTGROUPKEYINFO = DESCRIPTOR.message_types_by_name['ExtGroupKeyInfo']
+_GROUPINFO = DESCRIPTOR.message_types_by_name['GroupInfo']
+_MSG = DESCRIPTOR.message_types_by_name['Msg']
+_MSGHEAD = DESCRIPTOR.message_types_by_name['MsgHead']
+_MSGTYPE0X210 = DESCRIPTOR.message_types_by_name['MsgType0x210']
+_MUTILTRANSHEAD = DESCRIPTOR.message_types_by_name['MutilTransHead']
+_PLUGININFO = DESCRIPTOR.message_types_by_name['PluginInfo']
+_UIN2NICK = DESCRIPTOR.message_types_by_name['Uin2Nick']
+_UINPAIRMSG = DESCRIPTOR.message_types_by_name['UinPairMsg']
AppShareInfo = _reflection.GeneratedProtocolMessageType('AppShareInfo', (_message.Message,), {
'DESCRIPTOR' : _APPSHAREINFO,
'__module__' : 'cai.pb.msf.msg.comm.comm_pb2'
@@ -1135,5 +124,33 @@
})
_sym_db.RegisterMessage(UinPairMsg)
-
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ _APPSHAREINFO._serialized_start=126
+ _APPSHAREINFO._serialized_end=239
+ _C2CTMPMSGHEAD._serialized_start=242
+ _C2CTMPMSGHEAD._serialized_end=522
+ _CONTENTHEAD._serialized_start=524
+ _CONTENTHEAD._serialized_end=610
+ _DISCUSSINFO._serialized_start=613
+ _DISCUSSINFO._serialized_end=741
+ _EXTGROUPKEYINFO._serialized_start=743
+ _EXTGROUPKEYINFO._serialized_end=851
+ _GROUPINFO._serialized_start=854
+ _GROUPINFO._serialized_end=1035
+ _MSG._serialized_start=1038
+ _MSG._serialized_end=1220
+ _MSGHEAD._serialized_start=1223
+ _MSGHEAD._serialized_end=1971
+ _MSGTYPE0X210._serialized_start=1973
+ _MSGTYPE0X210._serialized_end=2026
+ _MUTILTRANSHEAD._serialized_start=2028
+ _MUTILTRANSHEAD._serialized_end=2076
+ _PLUGININFO._serialized_start=2079
+ _PLUGININFO._serialized_end=2294
+ _UIN2NICK._serialized_start=2296
+ _UIN2NICK._serialized_end=2333
+ _UINPAIRMSG._serialized_start=2336
+ _UINPAIRMSG._serialized_end=2545
# @@protoc_insertion_point(module_scope)
diff --git a/cai/pb/msf/msg/comm/comm_pb2.pyi b/cai/pb/msf/msg/comm/comm_pb2.pyi
index c5c1d143..8e7eec06 100644
--- a/cai/pb/msf/msg/comm/comm_pb2.pyi
+++ b/cai/pb/msf/msg/comm/comm_pb2.pyi
@@ -40,30 +40,28 @@ from typing_extensions import (
)
-DESCRIPTOR: FileDescriptor = ...
+DESCRIPTOR: FileDescriptor
class AppShareInfo(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
APPSHARE_ID_FIELD_NUMBER: int
APPSHARE_COOKIE_FIELD_NUMBER: int
APPSHARE_RESOURCE_FIELD_NUMBER: int
- appshare_id: int = ...
- appshare_cookie: bytes = ...
-
+ appshare_id: int
+ appshare_cookie: bytes
@property
def appshare_resource(self) -> PluginInfo: ...
-
def __init__(self,
*,
- appshare_id : Optional[int] = ...,
- appshare_cookie : Optional[bytes] = ...,
- appshare_resource : Optional[PluginInfo] = ...,
+ appshare_id: Optional[int] = ...,
+ appshare_cookie: Optional[bytes] = ...,
+ appshare_resource: Optional[PluginInfo] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"appshare_cookie",b"appshare_cookie",u"appshare_id",b"appshare_id",u"appshare_resource",b"appshare_resource"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"appshare_cookie",b"appshare_cookie",u"appshare_id",b"appshare_id",u"appshare_resource",b"appshare_resource"]) -> None: ...
+ def HasField(self, field_name: Literal["appshare_cookie",b"appshare_cookie","appshare_id",b"appshare_id","appshare_resource",b"appshare_resource"]) -> bool: ...
+ def ClearField(self, field_name: Literal["appshare_cookie",b"appshare_cookie","appshare_id",b"appshare_id","appshare_resource",b"appshare_resource"]) -> None: ...
class C2CTmpMsgHead(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
C2C_TYPE_FIELD_NUMBER: int
SERVICE_TYPE_FIELD_NUMBER: int
GROUP_UIN_FIELD_NUMBER: int
@@ -77,107 +75,103 @@ class C2CTmpMsgHead(Message):
RESERVED_FIELD_NUMBER: int
BUSINESS_NAME_FIELD_NUMBER: int
BUSINESS_SUB_CONTENT_FIELD_NUMBER: int
- c2c_type: int = ...
- service_type: int = ...
- group_uin: int = ...
- group_code: int = ...
- sig: bytes = ...
- sig_type: int = ...
- from_phone: Text = ...
- to_phone: Text = ...
- lock_display: int = ...
- direction_flag: int = ...
- reserved: bytes = ...
- business_name: bytes = ...
- business_sub_content: bytes = ...
-
+ c2c_type: int
+ service_type: int
+ group_uin: int
+ group_code: int
+ sig: bytes
+ sig_type: int
+ from_phone: Text
+ to_phone: Text
+ lock_display: int
+ direction_flag: int
+ reserved: bytes
+ business_name: bytes
+ business_sub_content: bytes
def __init__(self,
*,
- c2c_type : Optional[int] = ...,
- service_type : Optional[int] = ...,
- group_uin : Optional[int] = ...,
- group_code : Optional[int] = ...,
- sig : Optional[bytes] = ...,
- sig_type : Optional[int] = ...,
- from_phone : Optional[Text] = ...,
- to_phone : Optional[Text] = ...,
- lock_display : Optional[int] = ...,
- direction_flag : Optional[int] = ...,
- reserved : Optional[bytes] = ...,
- business_name : Optional[bytes] = ...,
- business_sub_content : Optional[bytes] = ...,
+ c2c_type: Optional[int] = ...,
+ service_type: Optional[int] = ...,
+ group_uin: Optional[int] = ...,
+ group_code: Optional[int] = ...,
+ sig: Optional[bytes] = ...,
+ sig_type: Optional[int] = ...,
+ from_phone: Optional[Text] = ...,
+ to_phone: Optional[Text] = ...,
+ lock_display: Optional[int] = ...,
+ direction_flag: Optional[int] = ...,
+ reserved: Optional[bytes] = ...,
+ business_name: Optional[bytes] = ...,
+ business_sub_content: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"business_name",b"business_name",u"business_sub_content",b"business_sub_content",u"c2c_type",b"c2c_type",u"direction_flag",b"direction_flag",u"from_phone",b"from_phone",u"group_code",b"group_code",u"group_uin",b"group_uin",u"lock_display",b"lock_display",u"reserved",b"reserved",u"service_type",b"service_type",u"sig",b"sig",u"sig_type",b"sig_type",u"to_phone",b"to_phone"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"business_name",b"business_name",u"business_sub_content",b"business_sub_content",u"c2c_type",b"c2c_type",u"direction_flag",b"direction_flag",u"from_phone",b"from_phone",u"group_code",b"group_code",u"group_uin",b"group_uin",u"lock_display",b"lock_display",u"reserved",b"reserved",u"service_type",b"service_type",u"sig",b"sig",u"sig_type",b"sig_type",u"to_phone",b"to_phone"]) -> None: ...
+ def HasField(self, field_name: Literal["business_name",b"business_name","business_sub_content",b"business_sub_content","c2c_type",b"c2c_type","direction_flag",b"direction_flag","from_phone",b"from_phone","group_code",b"group_code","group_uin",b"group_uin","lock_display",b"lock_display","reserved",b"reserved","service_type",b"service_type","sig",b"sig","sig_type",b"sig_type","to_phone",b"to_phone"]) -> bool: ...
+ def ClearField(self, field_name: Literal["business_name",b"business_name","business_sub_content",b"business_sub_content","c2c_type",b"c2c_type","direction_flag",b"direction_flag","from_phone",b"from_phone","group_code",b"group_code","group_uin",b"group_uin","lock_display",b"lock_display","reserved",b"reserved","service_type",b"service_type","sig",b"sig","sig_type",b"sig_type","to_phone",b"to_phone"]) -> None: ...
class ContentHead(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
PKG_NUM_FIELD_NUMBER: int
PKG_INDEX_FIELD_NUMBER: int
DIV_SEQ_FIELD_NUMBER: int
AUTO_REPLY_FIELD_NUMBER: int
- pkg_num: int = ...
- pkg_index: int = ...
- div_seq: int = ...
- auto_reply: int = ...
-
+ pkg_num: int
+ pkg_index: int
+ div_seq: int
+ auto_reply: int
def __init__(self,
*,
- pkg_num : Optional[int] = ...,
- pkg_index : Optional[int] = ...,
- div_seq : Optional[int] = ...,
- auto_reply : Optional[int] = ...,
+ pkg_num: Optional[int] = ...,
+ pkg_index: Optional[int] = ...,
+ div_seq: Optional[int] = ...,
+ auto_reply: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"auto_reply",b"auto_reply",u"div_seq",b"div_seq",u"pkg_index",b"pkg_index",u"pkg_num",b"pkg_num"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"auto_reply",b"auto_reply",u"div_seq",b"div_seq",u"pkg_index",b"pkg_index",u"pkg_num",b"pkg_num"]) -> None: ...
+ def HasField(self, field_name: Literal["auto_reply",b"auto_reply","div_seq",b"div_seq","pkg_index",b"pkg_index","pkg_num",b"pkg_num"]) -> bool: ...
+ def ClearField(self, field_name: Literal["auto_reply",b"auto_reply","div_seq",b"div_seq","pkg_index",b"pkg_index","pkg_num",b"pkg_num"]) -> None: ...
class DiscussInfo(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
DISCUSS_UIN_FIELD_NUMBER: int
DISCUSS_TYPE_FIELD_NUMBER: int
DISCUSS_INFO_SEQ_FIELD_NUMBER: int
DISCUSS_REMARK_FIELD_NUMBER: int
DISCUSS_NAME_FIELD_NUMBER: int
- discuss_uin: int = ...
- discuss_type: int = ...
- discuss_info_seq: int = ...
- discuss_remark: bytes = ...
- discuss_name: bytes = ...
-
+ discuss_uin: int
+ discuss_type: int
+ discuss_info_seq: int
+ discuss_remark: bytes
+ discuss_name: bytes
def __init__(self,
*,
- discuss_uin : Optional[int] = ...,
- discuss_type : Optional[int] = ...,
- discuss_info_seq : Optional[int] = ...,
- discuss_remark : Optional[bytes] = ...,
- discuss_name : Optional[bytes] = ...,
+ discuss_uin: Optional[int] = ...,
+ discuss_type: Optional[int] = ...,
+ discuss_info_seq: Optional[int] = ...,
+ discuss_remark: Optional[bytes] = ...,
+ discuss_name: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"discuss_info_seq",b"discuss_info_seq",u"discuss_name",b"discuss_name",u"discuss_remark",b"discuss_remark",u"discuss_type",b"discuss_type",u"discuss_uin",b"discuss_uin"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"discuss_info_seq",b"discuss_info_seq",u"discuss_name",b"discuss_name",u"discuss_remark",b"discuss_remark",u"discuss_type",b"discuss_type",u"discuss_uin",b"discuss_uin"]) -> None: ...
+ def HasField(self, field_name: Literal["discuss_info_seq",b"discuss_info_seq","discuss_name",b"discuss_name","discuss_remark",b"discuss_remark","discuss_type",b"discuss_type","discuss_uin",b"discuss_uin"]) -> bool: ...
+ def ClearField(self, field_name: Literal["discuss_info_seq",b"discuss_info_seq","discuss_name",b"discuss_name","discuss_remark",b"discuss_remark","discuss_type",b"discuss_type","discuss_uin",b"discuss_uin"]) -> None: ...
class ExtGroupKeyInfo(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
CUR_MAX_SEQ_FIELD_NUMBER: int
CUR_TIME_FIELD_NUMBER: int
OPERATE_BY_PARENTS_FIELD_NUMBER: int
EXT_GROUP_INFO_FIELD_NUMBER: int
- cur_max_seq: int = ...
- cur_time: int = ...
- operate_by_parents: int = ...
- ext_group_info: bytes = ...
-
+ cur_max_seq: int
+ cur_time: int
+ operate_by_parents: int
+ ext_group_info: bytes
def __init__(self,
*,
- cur_max_seq : Optional[int] = ...,
- cur_time : Optional[int] = ...,
- operate_by_parents : Optional[int] = ...,
- ext_group_info : Optional[bytes] = ...,
+ cur_max_seq: Optional[int] = ...,
+ cur_time: Optional[int] = ...,
+ operate_by_parents: Optional[int] = ...,
+ ext_group_info: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"cur_max_seq",b"cur_max_seq",u"cur_time",b"cur_time",u"ext_group_info",b"ext_group_info",u"operate_by_parents",b"operate_by_parents"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"cur_max_seq",b"cur_max_seq",u"cur_time",b"cur_time",u"ext_group_info",b"ext_group_info",u"operate_by_parents",b"operate_by_parents"]) -> None: ...
+ def HasField(self, field_name: Literal["cur_max_seq",b"cur_max_seq","cur_time",b"cur_time","ext_group_info",b"ext_group_info","operate_by_parents",b"operate_by_parents"]) -> bool: ...
+ def ClearField(self, field_name: Literal["cur_max_seq",b"cur_max_seq","cur_time",b"cur_time","ext_group_info",b"ext_group_info","operate_by_parents",b"operate_by_parents"]) -> None: ...
class GroupInfo(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
GROUP_CODE_FIELD_NUMBER: int
GROUP_TYPE_FIELD_NUMBER: int
GROUP_INFO_SEQ_FIELD_NUMBER: int
@@ -186,60 +180,54 @@ class GroupInfo(Message):
GROUP_LEVEL_FIELD_NUMBER: int
GROUP_CARD_TYPE_FIELD_NUMBER: int
GROUP_NAME_FIELD_NUMBER: int
- group_code: int = ...
- group_type: int = ...
- group_info_seq: int = ...
- group_card: bytes = ...
- group_rank: bytes = ...
- group_level: int = ...
- group_card_type: int = ...
- group_name: bytes = ...
-
+ group_code: int
+ group_type: int
+ group_info_seq: int
+ group_card: bytes
+ group_rank: bytes
+ group_level: int
+ group_card_type: int
+ group_name: bytes
def __init__(self,
*,
- group_code : Optional[int] = ...,
- group_type : Optional[int] = ...,
- group_info_seq : Optional[int] = ...,
- group_card : Optional[bytes] = ...,
- group_rank : Optional[bytes] = ...,
- group_level : Optional[int] = ...,
- group_card_type : Optional[int] = ...,
- group_name : Optional[bytes] = ...,
+ group_code: Optional[int] = ...,
+ group_type: Optional[int] = ...,
+ group_info_seq: Optional[int] = ...,
+ group_card: Optional[bytes] = ...,
+ group_rank: Optional[bytes] = ...,
+ group_level: Optional[int] = ...,
+ group_card_type: Optional[int] = ...,
+ group_name: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"group_card",b"group_card",u"group_card_type",b"group_card_type",u"group_code",b"group_code",u"group_info_seq",b"group_info_seq",u"group_level",b"group_level",u"group_name",b"group_name",u"group_rank",b"group_rank",u"group_type",b"group_type"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"group_card",b"group_card",u"group_card_type",b"group_card_type",u"group_code",b"group_code",u"group_info_seq",b"group_info_seq",u"group_level",b"group_level",u"group_name",b"group_name",u"group_rank",b"group_rank",u"group_type",b"group_type"]) -> None: ...
+ def HasField(self, field_name: Literal["group_card",b"group_card","group_card_type",b"group_card_type","group_code",b"group_code","group_info_seq",b"group_info_seq","group_level",b"group_level","group_name",b"group_name","group_rank",b"group_rank","group_type",b"group_type"]) -> bool: ...
+ def ClearField(self, field_name: Literal["group_card",b"group_card","group_card_type",b"group_card_type","group_code",b"group_code","group_info_seq",b"group_info_seq","group_level",b"group_level","group_name",b"group_name","group_rank",b"group_rank","group_type",b"group_type"]) -> None: ...
class Msg(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
HEAD_FIELD_NUMBER: int
CONTENT_HEAD_FIELD_NUMBER: int
BODY_FIELD_NUMBER: int
APPSHARE_INFO_FIELD_NUMBER: int
-
@property
def head(self) -> MsgHead: ...
-
@property
def content_head(self) -> ContentHead: ...
-
@property
def body(self) -> MsgBody: ...
-
@property
def appshare_info(self) -> AppShareInfo: ...
-
def __init__(self,
*,
- head : Optional[MsgHead] = ...,
- content_head : Optional[ContentHead] = ...,
- body : Optional[MsgBody] = ...,
- appshare_info : Optional[AppShareInfo] = ...,
+ head: Optional[MsgHead] = ...,
+ content_head: Optional[ContentHead] = ...,
+ body: Optional[MsgBody] = ...,
+ appshare_info: Optional[AppShareInfo] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"appshare_info",b"appshare_info",u"body",b"body",u"content_head",b"content_head",u"head",b"head"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"appshare_info",b"appshare_info",u"body",b"body",u"content_head",b"content_head",u"head",b"head"]) -> None: ...
+ def HasField(self, field_name: Literal["appshare_info",b"appshare_info","body",b"body","content_head",b"content_head","head",b"head"]) -> bool: ...
+ def ClearField(self, field_name: Literal["appshare_info",b"appshare_info","body",b"body","content_head",b"content_head","head",b"head"]) -> None: ...
class MsgHead(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
FROM_UIN_FIELD_NUMBER: int
TO_UIN_FIELD_NUMBER: int
TYPE_FIELD_NUMBER: int
@@ -268,113 +256,104 @@ class MsgHead(Message):
MULTI_COMPATIBLE_TEXT_FIELD_NUMBER: int
AUTH_SEX_FIELD_NUMBER: int
IS_SRC_MSG_FIELD_NUMBER: int
- from_uin: int = ...
- to_uin: int = ...
- type: int = ...
- c2c_cmd: int = ...
- seq: int = ...
- time: int = ...
- uid: int = ...
- from_appid: int = ...
- from_instid: int = ...
- user_active: int = ...
- from_nick: Text = ...
- auth_uin: int = ...
- auth_nick: Text = ...
- flag: int = ...
- auth_remark: Text = ...
- group_name: Text = ...
- public_account_group_send_flag: int = ...
- wseq_in_c2c_msghead: int = ...
- cpid: int = ...
- multi_compatible_text: Text = ...
- auth_sex: int = ...
- is_src_msg: bool = ...
-
+ from_uin: int
+ to_uin: int
+ type: int
+ c2c_cmd: int
+ seq: int
+ time: int
+ uid: int
@property
def c2c_tmp_msg_head(self) -> C2CTmpMsgHead: ...
-
@property
def group_info(self) -> GroupInfo: ...
-
+ from_appid: int
+ from_instid: int
+ user_active: int
@property
def discuss_info(self) -> DiscussInfo: ...
-
+ from_nick: Text
+ auth_uin: int
+ auth_nick: Text
+ flag: int
+ auth_remark: Text
+ group_name: Text
@property
def mutiltrans_head(self) -> MutilTransHead: ...
-
@property
def inst_ctrl(self) -> InstCtrl: ...
-
+ public_account_group_send_flag: int
+ wseq_in_c2c_msghead: int
+ cpid: int
@property
def ext_group_key_info(self) -> ExtGroupKeyInfo: ...
-
+ multi_compatible_text: Text
+ auth_sex: int
+ is_src_msg: bool
def __init__(self,
*,
- from_uin : Optional[int] = ...,
- to_uin : Optional[int] = ...,
- type : Optional[int] = ...,
- c2c_cmd : Optional[int] = ...,
- seq : Optional[int] = ...,
- time : Optional[int] = ...,
- uid : Optional[int] = ...,
- c2c_tmp_msg_head : Optional[C2CTmpMsgHead] = ...,
- group_info : Optional[GroupInfo] = ...,
- from_appid : Optional[int] = ...,
- from_instid : Optional[int] = ...,
- user_active : Optional[int] = ...,
- discuss_info : Optional[DiscussInfo] = ...,
- from_nick : Optional[Text] = ...,
- auth_uin : Optional[int] = ...,
- auth_nick : Optional[Text] = ...,
- flag : Optional[int] = ...,
- auth_remark : Optional[Text] = ...,
- group_name : Optional[Text] = ...,
- mutiltrans_head : Optional[MutilTransHead] = ...,
- inst_ctrl : Optional[InstCtrl] = ...,
- public_account_group_send_flag : Optional[int] = ...,
- wseq_in_c2c_msghead : Optional[int] = ...,
- cpid : Optional[int] = ...,
- ext_group_key_info : Optional[ExtGroupKeyInfo] = ...,
- multi_compatible_text : Optional[Text] = ...,
- auth_sex : Optional[int] = ...,
- is_src_msg : Optional[bool] = ...,
+ from_uin: Optional[int] = ...,
+ to_uin: Optional[int] = ...,
+ type: Optional[int] = ...,
+ c2c_cmd: Optional[int] = ...,
+ seq: Optional[int] = ...,
+ time: Optional[int] = ...,
+ uid: Optional[int] = ...,
+ c2c_tmp_msg_head: Optional[C2CTmpMsgHead] = ...,
+ group_info: Optional[GroupInfo] = ...,
+ from_appid: Optional[int] = ...,
+ from_instid: Optional[int] = ...,
+ user_active: Optional[int] = ...,
+ discuss_info: Optional[DiscussInfo] = ...,
+ from_nick: Optional[Text] = ...,
+ auth_uin: Optional[int] = ...,
+ auth_nick: Optional[Text] = ...,
+ flag: Optional[int] = ...,
+ auth_remark: Optional[Text] = ...,
+ group_name: Optional[Text] = ...,
+ mutiltrans_head: Optional[MutilTransHead] = ...,
+ inst_ctrl: Optional[InstCtrl] = ...,
+ public_account_group_send_flag: Optional[int] = ...,
+ wseq_in_c2c_msghead: Optional[int] = ...,
+ cpid: Optional[int] = ...,
+ ext_group_key_info: Optional[ExtGroupKeyInfo] = ...,
+ multi_compatible_text: Optional[Text] = ...,
+ auth_sex: Optional[int] = ...,
+ is_src_msg: Optional[bool] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"auth_nick",b"auth_nick",u"auth_remark",b"auth_remark",u"auth_sex",b"auth_sex",u"auth_uin",b"auth_uin",u"c2c_cmd",b"c2c_cmd",u"c2c_tmp_msg_head",b"c2c_tmp_msg_head",u"cpid",b"cpid",u"discuss_info",b"discuss_info",u"ext_group_key_info",b"ext_group_key_info",u"flag",b"flag",u"from_appid",b"from_appid",u"from_instid",b"from_instid",u"from_nick",b"from_nick",u"from_uin",b"from_uin",u"group_info",b"group_info",u"group_name",b"group_name",u"inst_ctrl",b"inst_ctrl",u"is_src_msg",b"is_src_msg",u"multi_compatible_text",b"multi_compatible_text",u"mutiltrans_head",b"mutiltrans_head",u"public_account_group_send_flag",b"public_account_group_send_flag",u"seq",b"seq",u"time",b"time",u"to_uin",b"to_uin",u"type",b"type",u"uid",b"uid",u"user_active",b"user_active",u"wseq_in_c2c_msghead",b"wseq_in_c2c_msghead"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"auth_nick",b"auth_nick",u"auth_remark",b"auth_remark",u"auth_sex",b"auth_sex",u"auth_uin",b"auth_uin",u"c2c_cmd",b"c2c_cmd",u"c2c_tmp_msg_head",b"c2c_tmp_msg_head",u"cpid",b"cpid",u"discuss_info",b"discuss_info",u"ext_group_key_info",b"ext_group_key_info",u"flag",b"flag",u"from_appid",b"from_appid",u"from_instid",b"from_instid",u"from_nick",b"from_nick",u"from_uin",b"from_uin",u"group_info",b"group_info",u"group_name",b"group_name",u"inst_ctrl",b"inst_ctrl",u"is_src_msg",b"is_src_msg",u"multi_compatible_text",b"multi_compatible_text",u"mutiltrans_head",b"mutiltrans_head",u"public_account_group_send_flag",b"public_account_group_send_flag",u"seq",b"seq",u"time",b"time",u"to_uin",b"to_uin",u"type",b"type",u"uid",b"uid",u"user_active",b"user_active",u"wseq_in_c2c_msghead",b"wseq_in_c2c_msghead"]) -> None: ...
+ def HasField(self, field_name: Literal["auth_nick",b"auth_nick","auth_remark",b"auth_remark","auth_sex",b"auth_sex","auth_uin",b"auth_uin","c2c_cmd",b"c2c_cmd","c2c_tmp_msg_head",b"c2c_tmp_msg_head","cpid",b"cpid","discuss_info",b"discuss_info","ext_group_key_info",b"ext_group_key_info","flag",b"flag","from_appid",b"from_appid","from_instid",b"from_instid","from_nick",b"from_nick","from_uin",b"from_uin","group_info",b"group_info","group_name",b"group_name","inst_ctrl",b"inst_ctrl","is_src_msg",b"is_src_msg","multi_compatible_text",b"multi_compatible_text","mutiltrans_head",b"mutiltrans_head","public_account_group_send_flag",b"public_account_group_send_flag","seq",b"seq","time",b"time","to_uin",b"to_uin","type",b"type","uid",b"uid","user_active",b"user_active","wseq_in_c2c_msghead",b"wseq_in_c2c_msghead"]) -> bool: ...
+ def ClearField(self, field_name: Literal["auth_nick",b"auth_nick","auth_remark",b"auth_remark","auth_sex",b"auth_sex","auth_uin",b"auth_uin","c2c_cmd",b"c2c_cmd","c2c_tmp_msg_head",b"c2c_tmp_msg_head","cpid",b"cpid","discuss_info",b"discuss_info","ext_group_key_info",b"ext_group_key_info","flag",b"flag","from_appid",b"from_appid","from_instid",b"from_instid","from_nick",b"from_nick","from_uin",b"from_uin","group_info",b"group_info","group_name",b"group_name","inst_ctrl",b"inst_ctrl","is_src_msg",b"is_src_msg","multi_compatible_text",b"multi_compatible_text","mutiltrans_head",b"mutiltrans_head","public_account_group_send_flag",b"public_account_group_send_flag","seq",b"seq","time",b"time","to_uin",b"to_uin","type",b"type","uid",b"uid","user_active",b"user_active","wseq_in_c2c_msghead",b"wseq_in_c2c_msghead"]) -> None: ...
class MsgType0x210(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
SUB_MSG_TYPE_FIELD_NUMBER: int
CONTENT_FIELD_NUMBER: int
- sub_msg_type: int = ...
- content: bytes = ...
-
+ sub_msg_type: int
+ content: bytes
def __init__(self,
*,
- sub_msg_type : Optional[int] = ...,
- content : Optional[bytes] = ...,
+ sub_msg_type: Optional[int] = ...,
+ content: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"content",b"content",u"sub_msg_type",b"sub_msg_type"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"content",b"content",u"sub_msg_type",b"sub_msg_type"]) -> None: ...
+ def HasField(self, field_name: Literal["content",b"content","sub_msg_type",b"sub_msg_type"]) -> bool: ...
+ def ClearField(self, field_name: Literal["content",b"content","sub_msg_type",b"sub_msg_type"]) -> None: ...
class MutilTransHead(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
STATUS_FIELD_NUMBER: int
MSG_ID_FIELD_NUMBER: int
- status: int = ...
- msg_id: int = ...
-
+ status: int
+ msg_id: int
def __init__(self,
*,
- status : Optional[int] = ...,
- msg_id : Optional[int] = ...,
+ status: Optional[int] = ...,
+ msg_id: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"msg_id",b"msg_id",u"status",b"status"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"msg_id",b"msg_id",u"status",b"status"]) -> None: ...
+ def HasField(self, field_name: Literal["msg_id",b"msg_id","status",b"status"]) -> bool: ...
+ def ClearField(self, field_name: Literal["msg_id",b"msg_id","status",b"status"]) -> None: ...
class PluginInfo(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
RES_ID_FIELD_NUMBER: int
PKG_NAME_FIELD_NUMBER: int
NEW_VER_FIELD_NUMBER: int
@@ -386,52 +365,50 @@ class PluginInfo(Message):
RES_URL_BIG_FIELD_NUMBER: int
RES_URL_SMALL_FIELD_NUMBER: int
RES_CONF_FIELD_NUMBER: int
- res_id: int = ...
- pkg_name: Text = ...
- new_ver: int = ...
- res_type: int = ...
- lan_type: int = ...
- priority: int = ...
- res_name: Text = ...
- res_desc: Text = ...
- res_url_big: Text = ...
- res_url_small: Text = ...
- res_conf: Text = ...
-
+ res_id: int
+ pkg_name: Text
+ new_ver: int
+ res_type: int
+ lan_type: int
+ priority: int
+ res_name: Text
+ res_desc: Text
+ res_url_big: Text
+ res_url_small: Text
+ res_conf: Text
def __init__(self,
*,
- res_id : Optional[int] = ...,
- pkg_name : Optional[Text] = ...,
- new_ver : Optional[int] = ...,
- res_type : Optional[int] = ...,
- lan_type : Optional[int] = ...,
- priority : Optional[int] = ...,
- res_name : Optional[Text] = ...,
- res_desc : Optional[Text] = ...,
- res_url_big : Optional[Text] = ...,
- res_url_small : Optional[Text] = ...,
- res_conf : Optional[Text] = ...,
+ res_id: Optional[int] = ...,
+ pkg_name: Optional[Text] = ...,
+ new_ver: Optional[int] = ...,
+ res_type: Optional[int] = ...,
+ lan_type: Optional[int] = ...,
+ priority: Optional[int] = ...,
+ res_name: Optional[Text] = ...,
+ res_desc: Optional[Text] = ...,
+ res_url_big: Optional[Text] = ...,
+ res_url_small: Optional[Text] = ...,
+ res_conf: Optional[Text] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"lan_type",b"lan_type",u"new_ver",b"new_ver",u"pkg_name",b"pkg_name",u"priority",b"priority",u"res_conf",b"res_conf",u"res_desc",b"res_desc",u"res_id",b"res_id",u"res_name",b"res_name",u"res_type",b"res_type",u"res_url_big",b"res_url_big",u"res_url_small",b"res_url_small"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"lan_type",b"lan_type",u"new_ver",b"new_ver",u"pkg_name",b"pkg_name",u"priority",b"priority",u"res_conf",b"res_conf",u"res_desc",b"res_desc",u"res_id",b"res_id",u"res_name",b"res_name",u"res_type",b"res_type",u"res_url_big",b"res_url_big",u"res_url_small",b"res_url_small"]) -> None: ...
+ def HasField(self, field_name: Literal["lan_type",b"lan_type","new_ver",b"new_ver","pkg_name",b"pkg_name","priority",b"priority","res_conf",b"res_conf","res_desc",b"res_desc","res_id",b"res_id","res_name",b"res_name","res_type",b"res_type","res_url_big",b"res_url_big","res_url_small",b"res_url_small"]) -> bool: ...
+ def ClearField(self, field_name: Literal["lan_type",b"lan_type","new_ver",b"new_ver","pkg_name",b"pkg_name","priority",b"priority","res_conf",b"res_conf","res_desc",b"res_desc","res_id",b"res_id","res_name",b"res_name","res_type",b"res_type","res_url_big",b"res_url_big","res_url_small",b"res_url_small"]) -> None: ...
class Uin2Nick(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
UIN_FIELD_NUMBER: int
NICK_FIELD_NUMBER: int
- uin: int = ...
- nick: Text = ...
-
+ uin: int
+ nick: Text
def __init__(self,
*,
- uin : Optional[int] = ...,
- nick : Optional[Text] = ...,
+ uin: Optional[int] = ...,
+ nick: Optional[Text] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"nick",b"nick",u"uin",b"uin"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"nick",b"nick",u"uin",b"uin"]) -> None: ...
+ def HasField(self, field_name: Literal["nick",b"nick","uin",b"uin"]) -> bool: ...
+ def ClearField(self, field_name: Literal["nick",b"nick","uin",b"uin"]) -> None: ...
class UinPairMsg(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
LAST_READ_TIME_FIELD_NUMBER: int
PEER_UIN_FIELD_NUMBER: int
COMPLETED_FIELD_NUMBER: int
@@ -441,29 +418,27 @@ class UinPairMsg(Message):
SERVICE_TYPE_FIELD_NUMBER: int
PB_RESERVE_FIELD_NUMBER: int
TO_TINY_ID_FIELD_NUMBER: int
- last_read_time: int = ...
- peer_uin: int = ...
- completed: int = ...
- unread_msg_num: int = ...
- c2c_type: int = ...
- service_type: int = ...
- pb_reserve: bytes = ...
- to_tiny_id: int = ...
-
+ last_read_time: int
+ peer_uin: int
+ completed: int
@property
def msg(self) -> RepeatedCompositeFieldContainer[Msg]: ...
-
+ unread_msg_num: int
+ c2c_type: int
+ service_type: int
+ pb_reserve: bytes
+ to_tiny_id: int
def __init__(self,
*,
- last_read_time : Optional[int] = ...,
- peer_uin : Optional[int] = ...,
- completed : Optional[int] = ...,
- msg : Optional[Iterable[Msg]] = ...,
- unread_msg_num : Optional[int] = ...,
- c2c_type : Optional[int] = ...,
- service_type : Optional[int] = ...,
- pb_reserve : Optional[bytes] = ...,
- to_tiny_id : Optional[int] = ...,
+ last_read_time: Optional[int] = ...,
+ peer_uin: Optional[int] = ...,
+ completed: Optional[int] = ...,
+ msg: Optional[Iterable[Msg]] = ...,
+ unread_msg_num: Optional[int] = ...,
+ c2c_type: Optional[int] = ...,
+ service_type: Optional[int] = ...,
+ pb_reserve: Optional[bytes] = ...,
+ to_tiny_id: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"c2c_type",b"c2c_type",u"completed",b"completed",u"last_read_time",b"last_read_time",u"pb_reserve",b"pb_reserve",u"peer_uin",b"peer_uin",u"service_type",b"service_type",u"to_tiny_id",b"to_tiny_id",u"unread_msg_num",b"unread_msg_num"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"c2c_type",b"c2c_type",u"completed",b"completed",u"last_read_time",b"last_read_time",u"msg",b"msg",u"pb_reserve",b"pb_reserve",u"peer_uin",b"peer_uin",u"service_type",b"service_type",u"to_tiny_id",b"to_tiny_id",u"unread_msg_num",b"unread_msg_num"]) -> None: ...
+ def HasField(self, field_name: Literal["c2c_type",b"c2c_type","completed",b"completed","last_read_time",b"last_read_time","pb_reserve",b"pb_reserve","peer_uin",b"peer_uin","service_type",b"service_type","to_tiny_id",b"to_tiny_id","unread_msg_num",b"unread_msg_num"]) -> bool: ...
+ def ClearField(self, field_name: Literal["c2c_type",b"c2c_type","completed",b"completed","last_read_time",b"last_read_time","msg",b"msg","pb_reserve",b"pb_reserve","peer_uin",b"peer_uin","service_type",b"service_type","to_tiny_id",b"to_tiny_id","unread_msg_num",b"unread_msg_num"]) -> None: ...
diff --git a/cai/pb/msf/msg/ctrl/ctrl_pb2.py b/cai/pb/msf/msg/ctrl/ctrl_pb2.py
index 8dca50f0..0cd7045d 100644
--- a/cai/pb/msf/msg/ctrl/ctrl_pb2.py
+++ b/cai/pb/msf/msg/ctrl/ctrl_pb2.py
@@ -3,6 +3,7 @@
# source: cai/pb/msf/msg/ctrl/ctrl.proto
"""Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
@@ -13,142 +14,12 @@
-DESCRIPTOR = _descriptor.FileDescriptor(
- name='cai/pb/msf/msg/ctrl/ctrl.proto',
- package='msf.msg.ctrl',
- syntax='proto2',
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- serialized_pb=b'\n\x1e\x63\x61i/pb/msf/msg/ctrl/ctrl.proto\x12\x0cmsf.msg.ctrl\"K\n\x07MsgCtrl\x12\x0c\n\x04\x66lag\x18\x01 \x01(\r\x12\x32\n\x0eresv_resv_info\x18\x02 \x01(\x0b\x32\x1a.msf.msg.ctrl.ResvResvInfo\"\x9e\x01\n\x0cResvResvInfo\x12\x0c\n\x04\x66lag\x18\x01 \x01(\r\x12\x0f\n\x07reserv1\x18\x02 \x01(\x0c\x12\x0f\n\x07reserv2\x18\x03 \x01(\x04\x12\x0f\n\x07reserv3\x18\x04 \x01(\x04\x12\x13\n\x0b\x63reate_time\x18\x05 \x01(\r\x12\x12\n\npic_height\x18\x06 \x01(\r\x12\x11\n\tpic_width\x18\x07 \x01(\r\x12\x11\n\tresv_flag\x18\x08 \x01(\r'
-)
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1e\x63\x61i/pb/msf/msg/ctrl/ctrl.proto\x12\x0cmsf.msg.ctrl\"K\n\x07MsgCtrl\x12\x0c\n\x04\x66lag\x18\x01 \x01(\r\x12\x32\n\x0eresv_resv_info\x18\x02 \x01(\x0b\x32\x1a.msf.msg.ctrl.ResvResvInfo\"\x9e\x01\n\x0cResvResvInfo\x12\x0c\n\x04\x66lag\x18\x01 \x01(\r\x12\x0f\n\x07reserv1\x18\x02 \x01(\x0c\x12\x0f\n\x07reserv2\x18\x03 \x01(\x04\x12\x0f\n\x07reserv3\x18\x04 \x01(\x04\x12\x13\n\x0b\x63reate_time\x18\x05 \x01(\r\x12\x12\n\npic_height\x18\x06 \x01(\r\x12\x11\n\tpic_width\x18\x07 \x01(\r\x12\x11\n\tresv_flag\x18\x08 \x01(\r')
-
-_MSGCTRL = _descriptor.Descriptor(
- name='MsgCtrl',
- full_name='msf.msg.ctrl.MsgCtrl',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='flag', full_name='msf.msg.ctrl.MsgCtrl.flag', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='resv_resv_info', full_name='msf.msg.ctrl.MsgCtrl.resv_resv_info', index=1,
- number=2, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=48,
- serialized_end=123,
-)
-
-
-_RESVRESVINFO = _descriptor.Descriptor(
- name='ResvResvInfo',
- full_name='msf.msg.ctrl.ResvResvInfo',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='flag', full_name='msf.msg.ctrl.ResvResvInfo.flag', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='reserv1', full_name='msf.msg.ctrl.ResvResvInfo.reserv1', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='reserv2', full_name='msf.msg.ctrl.ResvResvInfo.reserv2', index=2,
- number=3, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='reserv3', full_name='msf.msg.ctrl.ResvResvInfo.reserv3', index=3,
- number=4, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='create_time', full_name='msf.msg.ctrl.ResvResvInfo.create_time', index=4,
- number=5, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='pic_height', full_name='msf.msg.ctrl.ResvResvInfo.pic_height', index=5,
- number=6, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='pic_width', full_name='msf.msg.ctrl.ResvResvInfo.pic_width', index=6,
- number=7, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='resv_flag', full_name='msf.msg.ctrl.ResvResvInfo.resv_flag', index=7,
- number=8, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=126,
- serialized_end=284,
-)
-
-_MSGCTRL.fields_by_name['resv_resv_info'].message_type = _RESVRESVINFO
-DESCRIPTOR.message_types_by_name['MsgCtrl'] = _MSGCTRL
-DESCRIPTOR.message_types_by_name['ResvResvInfo'] = _RESVRESVINFO
-_sym_db.RegisterFileDescriptor(DESCRIPTOR)
-
+_MSGCTRL = DESCRIPTOR.message_types_by_name['MsgCtrl']
+_RESVRESVINFO = DESCRIPTOR.message_types_by_name['ResvResvInfo']
MsgCtrl = _reflection.GeneratedProtocolMessageType('MsgCtrl', (_message.Message,), {
'DESCRIPTOR' : _MSGCTRL,
'__module__' : 'cai.pb.msf.msg.ctrl.ctrl_pb2'
@@ -163,5 +34,11 @@
})
_sym_db.RegisterMessage(ResvResvInfo)
+if _descriptor._USE_C_DESCRIPTORS == False:
+ DESCRIPTOR._options = None
+ _MSGCTRL._serialized_start=48
+ _MSGCTRL._serialized_end=123
+ _RESVRESVINFO._serialized_start=126
+ _RESVRESVINFO._serialized_end=284
# @@protoc_insertion_point(module_scope)
diff --git a/cai/pb/msf/msg/ctrl/ctrl_pb2.pyi b/cai/pb/msf/msg/ctrl/ctrl_pb2.pyi
index e29fba87..3ef3d865 100644
--- a/cai/pb/msf/msg/ctrl/ctrl_pb2.pyi
+++ b/cai/pb/msf/msg/ctrl/ctrl_pb2.pyi
@@ -26,27 +26,28 @@ from typing_extensions import (
)
-DESCRIPTOR: FileDescriptor = ...
+DESCRIPTOR: FileDescriptor
class MsgCtrl(Message):
- DESCRIPTOR: Descriptor = ...
+ """msf/msgsvc/msg_ctrl.java
+
+ """
+ DESCRIPTOR: Descriptor
FLAG_FIELD_NUMBER: int
RESV_RESV_INFO_FIELD_NUMBER: int
- flag: int = ...
-
+ flag: int
@property
def resv_resv_info(self) -> ResvResvInfo: ...
-
def __init__(self,
*,
- flag : Optional[int] = ...,
- resv_resv_info : Optional[ResvResvInfo] = ...,
+ flag: Optional[int] = ...,
+ resv_resv_info: Optional[ResvResvInfo] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"flag",b"flag",u"resv_resv_info",b"resv_resv_info"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"flag",b"flag",u"resv_resv_info",b"resv_resv_info"]) -> None: ...
+ def HasField(self, field_name: Literal["flag",b"flag","resv_resv_info",b"resv_resv_info"]) -> bool: ...
+ def ClearField(self, field_name: Literal["flag",b"flag","resv_resv_info",b"resv_resv_info"]) -> None: ...
class ResvResvInfo(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
FLAG_FIELD_NUMBER: int
RESERV1_FIELD_NUMBER: int
RESERV2_FIELD_NUMBER: int
@@ -55,25 +56,24 @@ class ResvResvInfo(Message):
PIC_HEIGHT_FIELD_NUMBER: int
PIC_WIDTH_FIELD_NUMBER: int
RESV_FLAG_FIELD_NUMBER: int
- flag: int = ...
- reserv1: bytes = ...
- reserv2: int = ...
- reserv3: int = ...
- create_time: int = ...
- pic_height: int = ...
- pic_width: int = ...
- resv_flag: int = ...
-
+ flag: int
+ reserv1: bytes
+ reserv2: int
+ reserv3: int
+ create_time: int
+ pic_height: int
+ pic_width: int
+ resv_flag: int
def __init__(self,
*,
- flag : Optional[int] = ...,
- reserv1 : Optional[bytes] = ...,
- reserv2 : Optional[int] = ...,
- reserv3 : Optional[int] = ...,
- create_time : Optional[int] = ...,
- pic_height : Optional[int] = ...,
- pic_width : Optional[int] = ...,
- resv_flag : Optional[int] = ...,
+ flag: Optional[int] = ...,
+ reserv1: Optional[bytes] = ...,
+ reserv2: Optional[int] = ...,
+ reserv3: Optional[int] = ...,
+ create_time: Optional[int] = ...,
+ pic_height: Optional[int] = ...,
+ pic_width: Optional[int] = ...,
+ resv_flag: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"create_time",b"create_time",u"flag",b"flag",u"pic_height",b"pic_height",u"pic_width",b"pic_width",u"reserv1",b"reserv1",u"reserv2",b"reserv2",u"reserv3",b"reserv3",u"resv_flag",b"resv_flag"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"create_time",b"create_time",u"flag",b"flag",u"pic_height",b"pic_height",u"pic_width",b"pic_width",u"reserv1",b"reserv1",u"reserv2",b"reserv2",u"reserv3",b"reserv3",u"resv_flag",b"resv_flag"]) -> None: ...
+ def HasField(self, field_name: Literal["create_time",b"create_time","flag",b"flag","pic_height",b"pic_height","pic_width",b"pic_width","reserv1",b"reserv1","reserv2",b"reserv2","reserv3",b"reserv3","resv_flag",b"resv_flag"]) -> bool: ...
+ def ClearField(self, field_name: Literal["create_time",b"create_time","flag",b"flag","pic_height",b"pic_height","pic_width",b"pic_width","reserv1",b"reserv1","reserv2",b"reserv2","reserv3",b"reserv3","resv_flag",b"resv_flag"]) -> None: ...
diff --git a/cai/pb/msf/msg/onlinepush/onlinepush_pb2.py b/cai/pb/msf/msg/onlinepush/onlinepush_pb2.py
index fa1d8919..c72913fa 100644
--- a/cai/pb/msf/msg/onlinepush/onlinepush_pb2.py
+++ b/cai/pb/msf/msg/onlinepush/onlinepush_pb2.py
@@ -3,6 +3,7 @@
# source: cai/pb/msf/msg/onlinepush/onlinepush.proto
"""Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
@@ -14,89 +15,11 @@
from cai.pb.msf.msg.comm import comm_pb2 as cai_dot_pb_dot_msf_dot_msg_dot_comm_dot_comm__pb2
-DESCRIPTOR = _descriptor.FileDescriptor(
- name='cai/pb/msf/msg/onlinepush/onlinepush.proto',
- package='msf.msg.onlinepush',
- syntax='proto2',
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- serialized_pb=b'\n*cai/pb/msf/msg/onlinepush/onlinepush.proto\x12\x12msf.msg.onlinepush\x1a\x1e\x63\x61i/pb/msf/msg/comm/comm.proto\"\x89\x01\n\tPbPushMsg\x12\x1e\n\x03msg\x18\x01 \x01(\x0b\x32\x11.msf.msg.comm.Msg\x12\r\n\x05svrip\x18\x02 \x01(\x05\x12\x12\n\npush_token\x18\x03 \x01(\x0c\x12\x11\n\tping_flag\x18\x04 \x01(\r\x12\x14\n\x0cgeneral_flag\x18\t \x01(\r\x12\x10\n\x08\x62ind_uin\x18\n \x01(\x04'
- ,
- dependencies=[cai_dot_pb_dot_msf_dot_msg_dot_comm_dot_comm__pb2.DESCRIPTOR,])
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n*cai/pb/msf/msg/onlinepush/onlinepush.proto\x12\x12msf.msg.onlinepush\x1a\x1e\x63\x61i/pb/msf/msg/comm/comm.proto\"\x89\x01\n\tPbPushMsg\x12\x1e\n\x03msg\x18\x01 \x01(\x0b\x32\x11.msf.msg.comm.Msg\x12\r\n\x05svrip\x18\x02 \x01(\x05\x12\x12\n\npush_token\x18\x03 \x01(\x0c\x12\x11\n\tping_flag\x18\x04 \x01(\r\x12\x14\n\x0cgeneral_flag\x18\t \x01(\r\x12\x10\n\x08\x62ind_uin\x18\n \x01(\x04')
-
-_PBPUSHMSG = _descriptor.Descriptor(
- name='PbPushMsg',
- full_name='msf.msg.onlinepush.PbPushMsg',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='msg', full_name='msf.msg.onlinepush.PbPushMsg.msg', index=0,
- number=1, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='svrip', full_name='msf.msg.onlinepush.PbPushMsg.svrip', index=1,
- number=2, type=5, cpp_type=1, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='push_token', full_name='msf.msg.onlinepush.PbPushMsg.push_token', index=2,
- number=3, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='ping_flag', full_name='msf.msg.onlinepush.PbPushMsg.ping_flag', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='general_flag', full_name='msf.msg.onlinepush.PbPushMsg.general_flag', index=4,
- number=9, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='bind_uin', full_name='msf.msg.onlinepush.PbPushMsg.bind_uin', index=5,
- number=10, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=99,
- serialized_end=236,
-)
-
-_PBPUSHMSG.fields_by_name['msg'].message_type = cai_dot_pb_dot_msf_dot_msg_dot_comm_dot_comm__pb2._MSG
-DESCRIPTOR.message_types_by_name['PbPushMsg'] = _PBPUSHMSG
-_sym_db.RegisterFileDescriptor(DESCRIPTOR)
-
+_PBPUSHMSG = DESCRIPTOR.message_types_by_name['PbPushMsg']
PbPushMsg = _reflection.GeneratedProtocolMessageType('PbPushMsg', (_message.Message,), {
'DESCRIPTOR' : _PBPUSHMSG,
'__module__' : 'cai.pb.msf.msg.onlinepush.onlinepush_pb2'
@@ -104,5 +27,9 @@
})
_sym_db.RegisterMessage(PbPushMsg)
+if _descriptor._USE_C_DESCRIPTORS == False:
+ DESCRIPTOR._options = None
+ _PBPUSHMSG._serialized_start=99
+ _PBPUSHMSG._serialized_end=236
# @@protoc_insertion_point(module_scope)
diff --git a/cai/pb/msf/msg/onlinepush/onlinepush_pb2.pyi b/cai/pb/msf/msg/onlinepush/onlinepush_pb2.pyi
index 76bcd87c..f3ed6766 100644
--- a/cai/pb/msf/msg/onlinepush/onlinepush_pb2.pyi
+++ b/cai/pb/msf/msg/onlinepush/onlinepush_pb2.pyi
@@ -30,33 +30,31 @@ from typing_extensions import (
)
-DESCRIPTOR: FileDescriptor = ...
+DESCRIPTOR: FileDescriptor
class PbPushMsg(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
MSG_FIELD_NUMBER: int
SVRIP_FIELD_NUMBER: int
PUSH_TOKEN_FIELD_NUMBER: int
PING_FLAG_FIELD_NUMBER: int
GENERAL_FLAG_FIELD_NUMBER: int
BIND_UIN_FIELD_NUMBER: int
- svrip: int = ...
- push_token: bytes = ...
- ping_flag: int = ...
- general_flag: int = ...
- bind_uin: int = ...
-
@property
def msg(self) -> Msg: ...
-
+ svrip: int
+ push_token: bytes
+ ping_flag: int
+ general_flag: int
+ bind_uin: int
def __init__(self,
*,
- msg : Optional[Msg] = ...,
- svrip : Optional[int] = ...,
- push_token : Optional[bytes] = ...,
- ping_flag : Optional[int] = ...,
- general_flag : Optional[int] = ...,
- bind_uin : Optional[int] = ...,
+ msg: Optional[Msg] = ...,
+ svrip: Optional[int] = ...,
+ push_token: Optional[bytes] = ...,
+ ping_flag: Optional[int] = ...,
+ general_flag: Optional[int] = ...,
+ bind_uin: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"bind_uin",b"bind_uin",u"general_flag",b"general_flag",u"msg",b"msg",u"ping_flag",b"ping_flag",u"push_token",b"push_token",u"svrip",b"svrip"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"bind_uin",b"bind_uin",u"general_flag",b"general_flag",u"msg",b"msg",u"ping_flag",b"ping_flag",u"push_token",b"push_token",u"svrip",b"svrip"]) -> None: ...
+ def HasField(self, field_name: Literal["bind_uin",b"bind_uin","general_flag",b"general_flag","msg",b"msg","ping_flag",b"ping_flag","push_token",b"push_token","svrip",b"svrip"]) -> bool: ...
+ def ClearField(self, field_name: Literal["bind_uin",b"bind_uin","general_flag",b"general_flag","msg",b"msg","ping_flag",b"ping_flag","push_token",b"push_token","svrip",b"svrip"]) -> None: ...
diff --git a/cai/pb/msf/msg/svc/svc_pb2.py b/cai/pb/msf/msg/svc/svc_pb2.py
index ea92fc15..c4a4d01b 100644
--- a/cai/pb/msf/msg/svc/svc_pb2.py
+++ b/cai/pb/msf/msg/svc/svc_pb2.py
@@ -3,6 +3,7 @@
# source: cai/pb/msf/msg/svc/svc.proto
"""Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
@@ -18,5125 +19,101 @@
from cai.pb.im.msg.receipt import receipt_pb2 as cai_dot_pb_dot_im_dot_msg_dot_receipt_dot_receipt__pb2
-DESCRIPTOR = _descriptor.FileDescriptor(
- name='cai/pb/msf/msg/svc/svc.proto',
- package='msf.msg.svc',
- syntax='proto2',
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- serialized_pb=b'\n\x1c\x63\x61i/pb/msf/msg/svc/svc.proto\x12\x0bmsf.msg.svc\x1a\x1e\x63\x61i/pb/msf/msg/comm/comm.proto\x1a\x1e\x63\x61i/pb/msf/msg/ctrl/ctrl.proto\x1a%cai/pb/im/msg/msg_body/msg_body.proto\x1a%cai/pb/im/msg/msg_head/msg_head.proto\x1a#cai/pb/im/msg/receipt/receipt.proto\"7\n\tAccostTmp\x12\x0e\n\x06to_uin\x18\x01 \x01(\x04\x12\x0b\n\x03sig\x18\x02 \x01(\x0c\x12\r\n\x05reply\x18\x03 \x01(\x08\"n\n\x0e\x41\x64\x64ressListTmp\x12\x12\n\nfrom_phone\x18\x01 \x01(\t\x12\x10\n\x08to_phone\x18\x02 \x01(\t\x12\x0e\n\x06to_uin\x18\x03 \x01(\x04\x12\x0b\n\x03sig\x18\x04 \x01(\x0c\x12\x19\n\x11\x66rom_contact_size\x18\x05 \x01(\r\"&\n\x07\x41uthTmp\x12\x0e\n\x06to_uin\x18\x01 \x01(\x04\x12\x0b\n\x03sig\x18\x02 \x01(\x0c\"&\n\x07\x42snsTmp\x12\x0e\n\x06to_uin\x18\x01 \x01(\x04\x12\x0b\n\x03sig\x18\x02 \x01(\x0c\";\n\x0e\x42usinessWPATmp\x12\x0e\n\x06to_uin\x18\x01 \x01(\x04\x12\x0b\n\x03sig\x18\x02 \x01(\x0c\x12\x0c\n\x04sigt\x18\x03 \x01(\x0c\"\x15\n\x03\x43\x32\x43\x12\x0e\n\x06to_uin\x18\x01 \x01(\x04\"\\\n\x07\x43ommTmp\x12\x0e\n\x06to_uin\x18\x01 \x01(\x04\x12\x10\n\x08\x63\x32\x63_type\x18\x02 \x01(\r\x12\x10\n\x08svr_type\x18\x03 \x01(\r\x12\x0b\n\x03sig\x18\x04 \x01(\x0c\x12\x10\n\x08reserved\x18\x05 \x01(\x0c\"\x16\n\x03\x44is\x12\x0f\n\x07\x64is_uin\x18\x01 \x01(\x04\")\n\x06\x44isTmp\x12\x0f\n\x07\x64is_uin\x18\x01 \x01(\x04\x12\x0e\n\x06to_uin\x18\x02 \x01(\x04\"\x19\n\x03Grp\x12\x12\n\ngroup_code\x18\x01 \x01(\x04\"+\n\x06GrpTmp\x12\x11\n\tgroup_uin\x18\x01 \x01(\x04\x12\x0e\n\x06to_uin\x18\x02 \x01(\x04\"\x1f\n\x0bMsgSendInfo\x12\x10\n\x08receiver\x18\x01 \x01(\r\"\xc7\x01\n\x0eMultiMsgAssist\x12\x32\n\x10repeated_routing\x18\x01 \x03(\x0b\x32\x18.msf.msg.svc.RoutingHead\x12\x0b\n\x03use\x18\x02 \x01(\r\x12\x0f\n\x07temp_id\x18\x03 \x01(\x04\x12\x11\n\tvedio_len\x18\x04 \x01(\x04\x12\x11\n\tredbag_id\x18\x05 \x01(\x0c\x12\x15\n\rredbag_amount\x18\x06 \x01(\x04\x12\x13\n\x0bhas_readbag\x18\x07 \x01(\r\x12\x11\n\thas_vedio\x18\x08 \x01(\r\"@\n\x12NearByAssistantTmp\x12\x0e\n\x06to_uin\x18\x01 \x01(\x04\x12\x0b\n\x03sig\x18\x02 \x01(\x0c\x12\r\n\x05reply\x18\x03 \x01(\x08\"=\n\x0fNearByDatingTmp\x12\x0e\n\x06to_uin\x18\x01 \x01(\x04\x12\x0b\n\x03sig\x18\x02 \x01(\x0c\x12\r\n\x05reply\x18\x03 \x01(\x08\"d\n\x12PbBindUinGetMsgReq\x12\x10\n\x08\x62ind_uin\x18\x01 \x01(\x04\x12\x14\n\x0c\x62ind_uin_sig\x18\x02 \x01(\x0c\x12\x11\n\tsync_flag\x18\x03 \x01(\r\x12\x13\n\x0bsync_cookie\x18\x04 \x01(\x0c\"E\n\x1cPbBindUinMsgReadedConfirmReq\x12\x13\n\x0bsync_cookie\x18\x01 \x01(\x0c\x12\x10\n\x08\x62ind_uin\x18\x02 \x01(\x04\"f\n\x1dPbBindUinMsgReadedConfirmResp\x12\x0e\n\x06result\x18\x01 \x01(\r\x12\x0e\n\x06\x65rrmsg\x18\x02 \x01(\t\x12\x13\n\x0bsync_cookie\x18\x03 \x01(\x0c\x12\x10\n\x08\x62ind_uin\x18\x04 \x01(\x04\"A\n\x18PbBindUinUnReadMsgNumReq\x12\x10\n\x08\x62ind_uin\x18\x01 \x01(\x04\x12\x13\n\x0bsync_cookie\x18\x02 \x01(\x0c\"Z\n\x19PbBindUinUnReadMsgNumResp\x12\x0e\n\x06result\x18\x01 \x01(\r\x12\x0e\n\x06\x65rrmsg\x18\x02 \x01(\t\x12\x10\n\x08\x62ind_uin\x18\x03 \x01(\x04\x12\x0b\n\x03num\x18\x04 \x01(\r\"\xf8\x02\n\x13PbC2CMsgWithDrawReq\x12\x36\n\x04info\x18\x01 \x03(\x0b\x32(.msf.msg.svc.PbC2CMsgWithDrawReq.MsgInfo\x12\x19\n\x11long_message_flag\x18\x02 \x01(\r\x12\x10\n\x08reserved\x18\x03 \x01(\x0c\x12\x0f\n\x07sub_cmd\x18\x04 \x01(\r\x1a\xea\x01\n\x07MsgInfo\x12\x10\n\x08\x66rom_uin\x18\x01 \x01(\x04\x12\x0e\n\x06to_uin\x18\x02 \x01(\x04\x12\x0f\n\x07msg_seq\x18\x03 \x01(\r\x12\x0f\n\x07msg_uid\x18\x04 \x01(\x04\x12\x10\n\x08msg_time\x18\x05 \x01(\x04\x12\x12\n\nmsg_random\x18\x06 \x01(\r\x12\x0f\n\x07pkg_num\x18\x07 \x01(\r\x12\x11\n\tpkg_index\x18\x08 \x01(\r\x12\x0f\n\x07\x64iv_seq\x18\t \x01(\r\x12\x10\n\x08msg_type\x18\n \x01(\r\x12.\n\x0crouting_head\x18\x14 \x01(\x0b\x32\x18.msf.msg.svc.RoutingHead\"\xa7\x01\n\x14PbC2CMsgWithDrawResp\x12\x0e\n\x06result\x18\x01 \x01(\r\x12\x0e\n\x06\x65rrmsg\x18\x02 \x01(\t\x12&\n\x06status\x18\x03 \x03(\x0b\x32\x16.msf.msg.svc.MsgStatus\x12\x0f\n\x07sub_cmd\x18\x04 \x01(\r\x12\x36\n\x0cwording_info\x18\x05 \x01(\x0b\x32 .msf.msg.svc.WithDrawWordingInfo\"S\n\tMsgStatus\x12\x36\n\x04info\x18\x01 \x01(\x0b\x32(.msf.msg.svc.PbC2CMsgWithDrawReq.MsgInfo\x12\x0e\n\x06status\x18\x02 \x01(\r\"\\\n\x14PbC2CReadedReportReq\x12\x13\n\x0bsync_cookie\x18\x01 \x01(\x0c\x12/\n\tpair_info\x18\x02 \x03(\x0b\x32\x1c.msf.msg.svc.UinPairReadInfo\"\xa6\x01\n\x0fUinPairReadInfo\x12\x10\n\x08peer_uin\x18\x01 \x01(\x04\x12\x16\n\x0elast_read_time\x18\x02 \x01(\r\x12\x0f\n\x07\x63rm_sig\x18\x03 \x01(\x0c\x12\x11\n\tpeer_type\x18\x04 \x01(\r\x12\x11\n\tchat_type\x18\x05 \x01(\r\x12\x0c\n\x04\x63pid\x18\x06 \x01(\x04\x12\x10\n\x08\x61io_type\x18\x07 \x01(\r\x12\x12\n\nto_tiny_id\x18\t \x01(\x04\"L\n\x15PbC2CReadedReportResp\x12\x0e\n\x06result\x18\x01 \x01(\r\x12\x0e\n\x06\x65rrmsg\x18\x02 \x01(\t\x12\x13\n\x0bsync_cookie\x18\x03 \x01(\x0c\"\x16\n\x14PbC2CUnReadMsgNumReq\"D\n\x15PbC2CUnReadMsgNumResp\x12\x0e\n\x06result\x18\x01 \x01(\r\x12\x0e\n\x06\x65rrmsg\x18\x02 \x01(\t\x12\x0b\n\x03num\x18\x03 \x01(\r\"\x83\x01\n\x0fPbDelRoamMsgReq\x12$\n\x07\x63\x32\x63_msg\x18\x01 \x01(\x0b\x32\x13.msf.msg.svc.C2CMsg\x12$\n\x07grp_msg\x18\x02 \x01(\x0b\x32\x13.msf.msg.svc.GrpMsg\x12$\n\x07\x64is_msg\x18\x03 \x01(\x0b\x32\x13.msf.msg.svc.DisMsg\"W\n\x06\x43\x32\x43Msg\x12\x10\n\x08\x66rom_uin\x18\x01 \x01(\x04\x12\x10\n\x08peer_uin\x18\x02 \x01(\x04\x12\x0c\n\x04time\x18\x03 \x01(\r\x12\x0e\n\x06random\x18\x04 \x01(\r\x12\x0b\n\x03seq\x18\x05 \x01(\r\"*\n\x06\x44isMsg\x12\x13\n\x0b\x64iscuss_uin\x18\x01 \x01(\x04\x12\x0b\n\x03seq\x18\x02 \x01(\x04\"<\n\x06GrpMsg\x12\x12\n\ngroup_code\x18\x01 \x01(\x04\x12\x0b\n\x03seq\x18\x02 \x01(\x04\x12\x11\n\tresv_flag\x18\x03 \x01(\r\"2\n\x10PbDelRoamMsgResp\x12\x0e\n\x06result\x18\x01 \x01(\r\x12\x0e\n\x06\x65rrmsg\x18\x02 \x01(\t\"\xaa\x01\n\x0ePbDeleteMsgReq\x12\x36\n\tmsg_items\x18\x01 \x03(\x0b\x32#.msf.msg.svc.PbDeleteMsgReq.MsgItem\x1a`\n\x07MsgItem\x12\x10\n\x08\x66rom_uin\x18\x01 \x01(\x04\x12\x0e\n\x06to_uin\x18\x02 \x01(\x04\x12\x0c\n\x04type\x18\x03 \x01(\r\x12\x0b\n\x03seq\x18\x04 \x01(\r\x12\x0b\n\x03uid\x18\x05 \x01(\x04\x12\x0b\n\x03sig\x18\x07 \x01(\x0c\"1\n\x0fPbDeleteMsgResp\x12\x0e\n\x06result\x18\x01 \x01(\r\x12\x0e\n\x06\x65rrmsg\x18\x02 \x01(\t\"C\n\x18PbDiscussReadedReportReq\x12\x10\n\x08\x63onf_uin\x18\x01 \x01(\x04\x12\x15\n\rlast_read_seq\x18\x02 \x01(\x04\"s\n\x19PbDiscussReadedReportResp\x12\x0e\n\x06result\x18\x01 \x01(\r\x12\x0e\n\x06\x65rrmsg\x18\x02 \x01(\t\x12\x10\n\x08\x63onf_uin\x18\x03 \x01(\x04\x12\x12\n\nmember_seq\x18\x04 \x01(\x04\x12\x10\n\x08\x63onf_seq\x18\x05 \x01(\x04\"\xa2\x01\n\x12PbGetDiscussMsgReq\x12\x13\n\x0b\x64iscuss_uin\x18\x01 \x01(\x04\x12\x0f\n\x07\x65nd_seq\x18\x02 \x01(\x04\x12\x11\n\tbegin_seq\x18\x03 \x01(\x04\x12\x15\n\rlast_get_time\x18\x04 \x01(\x04\x12\x18\n\x10\x64iscuss_info_seq\x18\x05 \x01(\x04\x12\x0e\n\x06\x66ilter\x18\x06 \x01(\r\x12\x12\n\nmember_seq\x18\x07 \x01(\x04\"\xcd\x01\n\x13PbGetDiscussMsgResp\x12\x0e\n\x06result\x18\x01 \x01(\r\x12\x0e\n\x06\x65rrmsg\x18\x02 \x01(\t\x12\x13\n\x0b\x64iscuss_uin\x18\x03 \x01(\x04\x12\x16\n\x0ereturn_end_seq\x18\x04 \x01(\x04\x12\x18\n\x10return_begin_seq\x18\x05 \x01(\x04\x12\x1e\n\x03msg\x18\x06 \x03(\x0b\x32\x11.msf.msg.comm.Msg\x12\x15\n\rlast_get_time\x18\x07 \x01(\x04\x12\x18\n\x10\x64iscuss_info_seq\x18\x08 \x01(\x04\"\xb4\x01\n\x10PbGetGroupMsgReq\x12\x12\n\ngroup_code\x18\x01 \x01(\x04\x12\x11\n\tbegin_seq\x18\x02 \x01(\x04\x12\x0f\n\x07\x65nd_seq\x18\x03 \x01(\x04\x12\x0e\n\x06\x66ilter\x18\x04 \x01(\r\x12\x12\n\nmember_seq\x18\x05 \x01(\x04\x12\x14\n\x0cpublic_group\x18\x06 \x01(\x08\x12\x13\n\x0bshield_flag\x18\x07 \x01(\r\x12\x19\n\x11save_traffic_flag\x18\x08 \x01(\r\"\x99\x01\n\x11PbGetGroupMsgResp\x12\x0e\n\x06result\x18\x01 \x01(\r\x12\x0e\n\x06\x65rrmsg\x18\x02 \x01(\t\x12\x12\n\ngroup_code\x18\x03 \x01(\x04\x12\x18\n\x10return_begin_seq\x18\x04 \x01(\x04\x12\x16\n\x0ereturn_end_seq\x18\x05 \x01(\x04\x12\x1e\n\x03msg\x18\x06 \x03(\x0b\x32\x11.msf.msg.comm.Msg\"\xa4\x02\n\x0bPbGetMsgReq\x12\x11\n\tsync_flag\x18\x01 \x01(\r\x12\x13\n\x0bsync_cookie\x18\x02 \x01(\x0c\x12\x13\n\x0bramble_flag\x18\x03 \x01(\r\x12\x1c\n\x14latest_ramble_number\x18\x04 \x01(\r\x12\x1b\n\x13other_ramble_number\x18\x05 \x01(\r\x12\x18\n\x10online_sync_flag\x18\x06 \x01(\r\x12\x14\n\x0c\x63ontext_flag\x18\x07 \x01(\r\x12\x1a\n\x12whisper_session_id\x18\x08 \x01(\r\x12\x10\n\x08req_type\x18\t \x01(\r\x12\x19\n\x11pubaccount_cookie\x18\n \x01(\x0c\x12\x10\n\x08\x63trl_buf\x18\x0b \x01(\x0c\x12\x12\n\nserver_buf\x18\x0c \x01(\x0c\"\xf1\x01\n\x0cPbGetMsgResp\x12\x0e\n\x06result\x18\x01 \x01(\r\x12\x0e\n\x06\x65rrmsg\x18\x02 \x01(\t\x12\x13\n\x0bsync_cookie\x18\x03 \x01(\x0c\x12\x11\n\tsync_flag\x18\x04 \x01(\r\x12/\n\ruin_pair_msgs\x18\x05 \x03(\x0b\x32\x18.msf.msg.comm.UinPairMsg\x12\x10\n\x08\x62ind_uin\x18\x06 \x01(\x04\x12\x10\n\x08rsp_type\x18\x07 \x01(\r\x12\x19\n\x11pubaccount_cookie\x18\x08 \x01(\x0c\x12\x17\n\x0fis_partial_sync\x18\t \x01(\x08\x12\x10\n\x08\x63trl_buf\x18\n \x01(\x0c\"a\n\x15PbGetOneDayRoamMsgReq\x12\x10\n\x08peer_uin\x18\x01 \x01(\x04\x12\x14\n\x0clast_msgtime\x18\x02 \x01(\x04\x12\x0e\n\x06random\x18\x03 \x01(\x04\x12\x10\n\x08read_cnt\x18\x04 \x01(\r\"\xa4\x01\n\x16PbGetOneDayRoamMsgResp\x12\x0e\n\x06result\x18\x01 \x01(\r\x12\x0e\n\x06\x65rrmsg\x18\x02 \x01(\t\x12\x10\n\x08peer_uin\x18\x03 \x01(\x04\x12\x14\n\x0clast_msgtime\x18\x04 \x01(\x04\x12\x0e\n\x06random\x18\x05 \x01(\x04\x12\x1e\n\x03msg\x18\x06 \x03(\x0b\x32\x11.msf.msg.comm.Msg\x12\x12\n\niscomplete\x18\x07 \x01(\r\"\xc1\x01\n\x0fPbGetRoamMsgReq\x12\x10\n\x08peer_uin\x18\x01 \x01(\x04\x12\x14\n\x0clast_msgtime\x18\x02 \x01(\x04\x12\x0e\n\x06random\x18\x03 \x01(\x04\x12\x10\n\x08read_cnt\x18\x04 \x01(\r\x12\x11\n\tcheck_pwd\x18\x05 \x01(\r\x12\x0b\n\x03sig\x18\x06 \x01(\x0c\x12\x0b\n\x03pwd\x18\x07 \x01(\x0c\x12\x0e\n\x06subcmd\x18\x08 \x01(\r\x12\x15\n\rbegin_msgtime\x18\t \x01(\x04\x12\x10\n\x08req_type\x18\n \x01(\r\"\x97\x01\n\x10PbGetRoamMsgResp\x12\x0e\n\x06result\x18\x01 \x01(\r\x12\x0e\n\x06\x65rrmsg\x18\x02 \x01(\t\x12\x10\n\x08peer_uin\x18\x03 \x01(\x04\x12\x14\n\x0clast_msgtime\x18\x04 \x01(\x04\x12\x0e\n\x06random\x18\x05 \x01(\x04\x12\x1e\n\x03msg\x18\x06 \x03(\x0b\x32\x11.msf.msg.comm.Msg\x12\x0b\n\x03sig\x18\x07 \x01(\x0c\"\x89\x01\n\x15PbGroupMsgWithDrawReq\x12\x0f\n\x07sub_cmd\x18\x01 \x01(\r\x12\x12\n\ngroup_type\x18\x02 \x01(\r\x12\x12\n\ngroup_code\x18\x03 \x01(\x04\x12&\n\x04list\x18\x04 \x03(\x0b\x32\x18.msf.msg.svc.MessageInfo\x12\x0f\n\x07userdef\x18\x05 \x01(\x0c\"W\n\x0bMessageInfo\x12\x0f\n\x07msg_seq\x18\x01 \x01(\r\x12\x12\n\nmsg_random\x18\x02 \x01(\r\x12\x10\n\x08msg_type\x18\x03 \x01(\r\x12\x11\n\tresv_flag\x18\x04 \x01(\r\"\xef\x01\n\x16PbGroupMsgWithDrawResp\x12\x0e\n\x06result\x18\x01 \x01(\r\x12\x0e\n\x06\x65rrmsg\x18\x02 \x01(\t\x12\x0f\n\x07sub_cmd\x18\x03 \x01(\r\x12\x12\n\ngroup_type\x18\x04 \x01(\r\x12\x12\n\ngroup_code\x18\x05 \x01(\x04\x12\x33\n\x0f\x66\x61iled_msg_list\x18\x06 \x03(\x0b\x32\x1a.msf.msg.svc.MessageResult\x12\x0f\n\x07userdef\x18\x07 \x01(\x0c\x12\x36\n\x0cwording_info\x18\x08 \x01(\x0b\x32 .msf.msg.svc.WithDrawWordingInfo\"y\n\rMessageResult\x12\x0e\n\x06result\x18\x01 \x01(\r\x12\x0f\n\x07msg_seq\x18\x02 \x01(\r\x12\x10\n\x08msg_time\x18\x03 \x01(\r\x12\x12\n\nmsg_random\x18\x04 \x01(\r\x12\x0f\n\x07\x65rr_msg\x18\x05 \x01(\x0c\x12\x10\n\x08msg_type\x18\x06 \x01(\r\"C\n\x16PbGroupReadedReportReq\x12\x12\n\ngroup_code\x18\x01 \x01(\x04\x12\x15\n\rlast_read_seq\x18\x02 \x01(\x04\"x\n\x17PbGroupReadedReportResp\x12\x0e\n\x06result\x18\x01 \x01(\r\x12\x0e\n\x06\x65rrmsg\x18\x02 \x01(\t\x12\x12\n\ngroup_code\x18\x03 \x01(\x04\x12\x12\n\nmember_seq\x18\x04 \x01(\x04\x12\x15\n\rgroup_msg_seq\x18\x05 \x01(\x04\"s\n\x11PbInputNotifyInfo\x12\x0e\n\x06to_uin\x18\x01 \x01(\x04\x12\x0b\n\x03ime\x18\x02 \x01(\r\x12\x13\n\x0bnotify_flag\x18\x03 \x01(\r\x12\x12\n\npb_reserve\x18\x04 \x01(\x0c\x12\x18\n\x10ios_push_wording\x18\x05 \x01(\x0c\"\x99\x02\n\x14PbMsgReadedReportReq\x12<\n\x0fgrp_read_report\x18\x01 \x03(\x0b\x32#.msf.msg.svc.PbGroupReadedReportReq\x12>\n\x0f\x64is_read_report\x18\x02 \x03(\x0b\x32%.msf.msg.svc.PbDiscussReadedReportReq\x12:\n\x0f\x63\x32\x63_read_report\x18\x03 \x01(\x0b\x32!.msf.msg.svc.PbC2CReadedReportReq\x12G\n\x14\x62ind_uin_read_report\x18\x04 \x01(\x0b\x32).msf.msg.svc.PbBindUinMsgReadedConfirmReq\"\x9e\x02\n\x15PbMsgReadedReportResp\x12=\n\x0fgrp_read_report\x18\x01 \x03(\x0b\x32$.msf.msg.svc.PbGroupReadedReportResp\x12?\n\x0f\x64is_read_report\x18\x02 \x03(\x0b\x32&.msf.msg.svc.PbDiscussReadedReportResp\x12;\n\x0f\x63\x32\x63_read_report\x18\x03 \x01(\x0b\x32\".msf.msg.svc.PbC2CReadedReportResp\x12H\n\x14\x62ind_uin_read_report\x18\x04 \x01(\x0b\x32*.msf.msg.svc.PbBindUinMsgReadedConfirmResp\"\x88\x01\n\x10PbMsgWithDrawReq\x12\x37\n\rc2c_with_draw\x18\x01 \x03(\x0b\x32 .msf.msg.svc.PbC2CMsgWithDrawReq\x12;\n\x0fgroup_with_draw\x18\x02 \x03(\x0b\x32\".msf.msg.svc.PbGroupMsgWithDrawReq\"\x8b\x01\n\x11PbMsgWithDrawResp\x12\x38\n\rc2c_with_draw\x18\x01 \x03(\x0b\x32!.msf.msg.svc.PbC2CMsgWithDrawResp\x12<\n\x0fgroup_with_draw\x18\x02 \x03(\x0b\x32#.msf.msg.svc.PbGroupMsgWithDrawResp\"O\n\x16PbPullDiscussMsgSeqReq\x12\x35\n\x10\x64iscuss_info_req\x18\x01 \x03(\x0b\x32\x1b.msf.msg.svc.DiscussInfoReq\"4\n\x0e\x44iscussInfoReq\x12\x10\n\x08\x63onf_uin\x18\x01 \x01(\x04\x12\x10\n\x08last_seq\x18\x02 \x01(\x04\"r\n\x17PbPullDiscussMsgSeqResp\x12\x0e\n\x06result\x18\x01 \x01(\r\x12\x0e\n\x06\x65rrmsg\x18\x02 \x01(\t\x12\x37\n\x11\x64iscuss_info_resp\x18\x03 \x03(\x0b\x32\x1c.msf.msg.svc.DiscussInfoResp\"I\n\x0f\x44iscussInfoResp\x12\x10\n\x08\x63onf_uin\x18\x01 \x01(\x04\x12\x12\n\nmember_seq\x18\x02 \x01(\x04\x12\x10\n\x08\x63onf_seq\x18\x03 \x01(\x04\"I\n\x14PbPullGroupMsgSeqReq\x12\x31\n\x0egroup_info_req\x18\x01 \x03(\x0b\x32\x19.msf.msg.svc.GroupInfoReq\"4\n\x0cGroupInfoReq\x12\x12\n\ngroup_code\x18\x01 \x01(\x04\x12\x10\n\x08last_seq\x18\x02 \x01(\x04\"l\n\x15PbPullGroupMsgSeqResp\x12\x0e\n\x06result\x18\x01 \x01(\r\x12\x0e\n\x06\x65rrmsg\x18\x02 \x01(\t\x12\x33\n\x0fgroup_info_resp\x18\x03 \x03(\x0b\x32\x1a.msf.msg.svc.GroupInfoResp\"J\n\rGroupInfoResp\x12\x12\n\ngroup_code\x18\x01 \x01(\x04\x12\x12\n\nmember_seq\x18\x02 \x01(\x04\x12\x11\n\tgroup_seq\x18\x03 \x01(\x04\"6\n\x19PbSearchRoamMsgInCloudReq\x12\x19\n\x11serialize_reqbody\x18\x01 \x01(\x0c\"W\n\x1aPbSearchRoamMsgInCloudResp\x12\x1e\n\x03msg\x18\x01 \x03(\x0b\x32\x11.msf.msg.comm.Msg\x12\x19\n\x11serialize_rspbody\x18\x02 \x01(\x0c\"\xf9\x03\n\x0cPbSendMsgReq\x12.\n\x0crouting_head\x18\x01 \x01(\x0b\x32\x18.msf.msg.svc.RoutingHead\x12/\n\x0c\x63ontent_head\x18\x02 \x01(\x0b\x32\x19.msf.msg.comm.ContentHead\x12&\n\x04\x62ody\x18\x03 \x01(\x0b\x32\x18.im.msg.msg_body.MsgBody\x12\x0b\n\x03seq\x18\x04 \x01(\r\x12\x0c\n\x04rand\x18\x05 \x01(\r\x12\x13\n\x0bsync_cookie\x18\x06 \x01(\x0c\x12-\n\tapp_share\x18\x07 \x01(\x0b\x32\x1a.msf.msg.comm.AppShareInfo\x12\x0b\n\x03via\x18\x08 \x01(\r\x12\x14\n\x0c\x64\x61ta_statist\x18\t \x01(\r\x12\x35\n\x10multi_msg_assist\x18\n \x01(\x0b\x32\x1b.msf.msg.svc.MultiMsgAssist\x12\x39\n\x11input_notify_info\x18\x0b \x01(\x0b\x32\x1e.msf.msg.svc.PbInputNotifyInfo\x12#\n\x04\x63trl\x18\x0c \x01(\x0b\x32\x15.msf.msg.ctrl.MsgCtrl\x12/\n\x0breceipt_req\x18\r \x01(\x0b\x32\x1a.im.msg.receipt.ReceiptReq\x12\x16\n\x0emulti_send_seq\x18\x0e \x01(\r\"\xb6\x02\n\rPbSendMsgResp\x12\x0e\n\x06result\x18\x01 \x01(\r\x12\x0e\n\x06\x65rrmsg\x18\x02 \x01(\t\x12\x11\n\tsend_time\x18\x03 \x01(\r\x12\x19\n\x11svrbusy_wait_time\x18\x04 \x01(\r\x12+\n\tsend_info\x18\x05 \x01(\x0b\x32\x18.msf.msg.svc.MsgSendInfo\x12\x0f\n\x07\x65rrtype\x18\x06 \x01(\r\x12\x31\n\x0etrans_svr_info\x18\x07 \x01(\x0b\x32\x19.msf.msg.svc.TransSvrInfo\x12\x31\n\x0creceipt_resp\x18\x08 \x01(\x0b\x32\x1b.im.msg.receipt.ReceiptResp\x12\x1c\n\x14text_analysis_result\x18\t \x01(\r\x12\x15\n\rmsg_info_flag\x18\n \x01(\r\"a\n\x18PbThirdQQUnReadMsgNumReq\x12\x35\n\x10thirdqq_req_info\x18\x01 \x03(\x0b\x32\x1b.msf.msg.svc.ThirdQQReqInfo\x12\x0e\n\x06source\x18\x02 \x01(\r\"T\n\x0eThirdQQReqInfo\x12\x11\n\tthird_uin\x18\x01 \x01(\x04\x12\x15\n\rthird_uin_sig\x18\x02 \x01(\x0c\x12\x18\n\x10third_uin_cookie\x18\x03 \x01(\x0c\"\x86\x01\n\x19PbThirdQQUnReadMsgNumResp\x12\x0e\n\x06result\x18\x01 \x01(\r\x12\x0e\n\x06\x65rrmsg\x18\x02 \x01(\t\x12\x37\n\x11thirdqq_resp_info\x18\x03 \x03(\x0b\x32\x1c.msf.msg.svc.ThirdQQRespInfo\x12\x10\n\x08interval\x18\x04 \x01(\r\"\x95\x01\n\x0fThirdQQRespInfo\x12\x11\n\tthird_uin\x18\x01 \x01(\x04\x12\x18\n\x10third_uin_cookie\x18\x02 \x01(\x0c\x12\x0b\n\x03num\x18\x03 \x01(\r\x12\x0c\n\x04\x66lag\x18\x04 \x01(\r\x12\x13\n\x0bredbag_time\x18\x05 \x01(\r\x12\x0e\n\x06status\x18\x06 \x01(\r\x12\x15\n\rlast_msg_time\x18\x07 \x01(\r\"\xd7\x02\n\x11PbUnReadMsgSeqReq\x12:\n\x0f\x63\x32\x63_unread_info\x18\x01 \x01(\x0b\x32!.msf.msg.svc.PbC2CUnReadMsgNumReq\x12\x42\n\x13\x62induin_unread_info\x18\x02 \x03(\x0b\x32%.msf.msg.svc.PbBindUinUnReadMsgNumReq\x12<\n\x11group_unread_info\x18\x03 \x01(\x0b\x32!.msf.msg.svc.PbPullGroupMsgSeqReq\x12@\n\x13\x64iscuss_unread_info\x18\x04 \x01(\x0b\x32#.msf.msg.svc.PbPullDiscussMsgSeqReq\x12\x42\n\x13thirdqq_unread_info\x18\x05 \x01(\x0b\x32%.msf.msg.svc.PbThirdQQUnReadMsgNumReq\"\xdd\x02\n\x12PbUnReadMsgSeqResp\x12;\n\x0f\x63\x32\x63_unread_info\x18\x01 \x01(\x0b\x32\".msf.msg.svc.PbC2CUnReadMsgNumResp\x12\x43\n\x13\x62induin_unread_info\x18\x02 \x03(\x0b\x32&.msf.msg.svc.PbBindUinUnReadMsgNumResp\x12=\n\x11group_unread_info\x18\x03 \x01(\x0b\x32\".msf.msg.svc.PbPullGroupMsgSeqResp\x12\x41\n\x13\x64iscuss_unread_info\x18\x04 \x01(\x0b\x32$.msf.msg.svc.PbPullDiscussMsgSeqResp\x12\x43\n\x13thirdqq_unread_info\x18\x05 \x01(\x0b\x32&.msf.msg.svc.PbThirdQQUnReadMsgNumResp\"=\n\x0bPubGroupTmp\x12\x0e\n\x06to_uin\x18\x01 \x01(\x04\x12\x0b\n\x03sig\x18\x02 \x01(\x0c\x12\x11\n\tgroup_uin\x18\x03 \x01(\x04\")\n\nPublicPlat\x12\x0e\n\x06to_uin\x18\x01 \x01(\x04\x12\x0b\n\x03sig\x18\x02 \x01(\x0c\"1\n\x12QQQueryBusinessTmp\x12\x0e\n\x06to_uin\x18\x01 \x01(\x04\x12\x0b\n\x03sig\x18\x02 \x01(\x0c\",\n\rRichStatusTmp\x12\x0e\n\x06to_uin\x18\x01 \x01(\x04\x12\x0b\n\x03sig\x18\x02 \x01(\x0c\"\xb8\x07\n\x0bRoutingHead\x12\x1d\n\x03\x63\x32\x63\x18\x01 \x01(\x0b\x32\x10.msf.msg.svc.C2C\x12\x1d\n\x03grp\x18\x02 \x01(\x0b\x32\x10.msf.msg.svc.Grp\x12$\n\x07grp_tmp\x18\x03 \x01(\x0b\x32\x13.msf.msg.svc.GrpTmp\x12\x1d\n\x03\x64is\x18\x04 \x01(\x0b\x32\x10.msf.msg.svc.Dis\x12$\n\x07\x64is_tmp\x18\x05 \x01(\x0b\x32\x13.msf.msg.svc.DisTmp\x12$\n\x07wpa_tmp\x18\x06 \x01(\x0b\x32\x13.msf.msg.svc.WPATmp\x12,\n\x0bpublic_plat\x18\x08 \x01(\x0b\x32\x17.msf.msg.svc.PublicPlat\x12(\n\ttrans_msg\x18\t \x01(\x0b\x32\x15.msf.msg.svc.TransMsg\x12\x31\n\x0c\x61\x64\x64ress_list\x18\n \x01(\x0b\x32\x1b.msf.msg.svc.AddressListTmp\x12\x33\n\x0frich_status_tmp\x18\x0b \x01(\x0b\x32\x1a.msf.msg.svc.RichStatusTmp\x12(\n\ttrans_cmd\x18\x0c \x01(\x0b\x32\x15.msf.msg.svc.TransCmd\x12*\n\naccost_tmp\x18\r \x01(\x0b\x32\x16.msf.msg.svc.AccostTmp\x12/\n\rpub_group_tmp\x18\x0e \x01(\x0b\x32\x18.msf.msg.svc.PubGroupTmp\x12-\n\x0ctrans_0_x211\x18\x0f \x01(\x0b\x32\x17.msf.msg.svc.Trans0x211\x12\x35\n\x10\x62usiness_wpa_tmp\x18\x10 \x01(\x0b\x32\x1b.msf.msg.svc.BusinessWPATmp\x12&\n\x08\x61uth_tmp\x18\x11 \x01(\x0b\x32\x14.msf.msg.svc.AuthTmp\x12&\n\x08\x62sns_tmp\x18\x12 \x01(\x0b\x32\x14.msf.msg.svc.BsnsTmp\x12=\n\x14qq_querybusiness_tmp\x18\x13 \x01(\x0b\x32\x1f.msf.msg.svc.QQQueryBusinessTmp\x12\x37\n\x11nearby_dating_tmp\x18\x14 \x01(\x0b\x32\x1c.msf.msg.svc.NearByDatingTmp\x12=\n\x14nearby_assistant_tmp\x18\x15 \x01(\x0b\x32\x1f.msf.msg.svc.NearByAssistantTmp\x12&\n\x08\x63omm_tmp\x18\x16 \x01(\x0b\x32\x14.msf.msg.svc.CommTmp\"\xa6\x01\n\nTrans0x211\x12\x0e\n\x06to_uin\x18\x01 \x01(\x04\x12\x0e\n\x06\x63\x63_cmd\x18\x02 \x01(\r\x12,\n\tinst_ctrl\x18\x03 \x01(\x0b\x32\x19.im.msg.msg_head.InstCtrl\x12\x0b\n\x03sig\x18\x04 \x01(\x0c\x12\x10\n\x08\x63\x32\x63_type\x18\x05 \x01(\r\x12\x14\n\x0cservice_type\x18\x06 \x01(\r\x12\x15\n\rdataline_flag\x18\x07 \x01(\r\"(\n\x08TransCmd\x12\x0e\n\x06to_uin\x18\x01 \x01(\x04\x12\x0c\n\x04type\x18\x02 \x01(\r\"+\n\x08TransMsg\x12\x0e\n\x06to_uin\x18\x01 \x01(\x04\x12\x0f\n\x07\x63\x32\x63_cmd\x18\x02 \x01(\r\">\n\x08TransReq\x12\x0f\n\x07\x63ommand\x18\x01 \x01(\x05\x12\x0f\n\x07req_tag\x18\x02 \x01(\r\x12\x10\n\x08req_buff\x18\x03 \x01(\x0c\"P\n\tTransResp\x12\x0e\n\x06result\x18\x01 \x01(\r\x12\x0e\n\x06\x65rrmsg\x18\x02 \x01(\t\x12\x10\n\x08resp_tag\x18\x03 \x01(\r\x12\x11\n\tresp_buff\x18\x04 \x01(\x0c\"W\n\x0cTransSvrInfo\x12\x10\n\x08sub_type\x18\x01 \x01(\r\x12\x10\n\x08ret_code\x18\x02 \x01(\x05\x12\x0f\n\x07\x65rr_msg\x18\x03 \x01(\x0c\x12\x12\n\ntrans_info\x18\x04 \x01(\x0c\"%\n\x06WPATmp\x12\x0e\n\x06to_uin\x18\x01 \x01(\x04\x12\x0b\n\x03sig\x18\x02 \x01(\x0c\"9\n\x13WithDrawWordingInfo\x12\x0f\n\x07item_id\x18\x01 \x01(\x05\x12\x11\n\titem_name\x18\x02 \x01(\t'
- ,
- dependencies=[cai_dot_pb_dot_msf_dot_msg_dot_comm_dot_comm__pb2.DESCRIPTOR,cai_dot_pb_dot_msf_dot_msg_dot_ctrl_dot_ctrl__pb2.DESCRIPTOR,cai_dot_pb_dot_im_dot_msg_dot_msg__body_dot_msg__body__pb2.DESCRIPTOR,cai_dot_pb_dot_im_dot_msg_dot_msg__head_dot_msg__head__pb2.DESCRIPTOR,cai_dot_pb_dot_im_dot_msg_dot_receipt_dot_receipt__pb2.DESCRIPTOR,])
-
-
-
-
-_ACCOSTTMP = _descriptor.Descriptor(
- name='AccostTmp',
- full_name='msf.msg.svc.AccostTmp',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='to_uin', full_name='msf.msg.svc.AccostTmp.to_uin', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='sig', full_name='msf.msg.svc.AccostTmp.sig', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='reply', full_name='msf.msg.svc.AccostTmp.reply', index=2,
- number=3, type=8, cpp_type=7, label=1,
- has_default_value=False, default_value=False,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=224,
- serialized_end=279,
-)
-
-
-_ADDRESSLISTTMP = _descriptor.Descriptor(
- name='AddressListTmp',
- full_name='msf.msg.svc.AddressListTmp',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='from_phone', full_name='msf.msg.svc.AddressListTmp.from_phone', index=0,
- number=1, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='to_phone', full_name='msf.msg.svc.AddressListTmp.to_phone', index=1,
- number=2, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='to_uin', full_name='msf.msg.svc.AddressListTmp.to_uin', index=2,
- number=3, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='sig', full_name='msf.msg.svc.AddressListTmp.sig', index=3,
- number=4, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='from_contact_size', full_name='msf.msg.svc.AddressListTmp.from_contact_size', index=4,
- number=5, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=281,
- serialized_end=391,
-)
-
-
-_AUTHTMP = _descriptor.Descriptor(
- name='AuthTmp',
- full_name='msf.msg.svc.AuthTmp',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='to_uin', full_name='msf.msg.svc.AuthTmp.to_uin', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='sig', full_name='msf.msg.svc.AuthTmp.sig', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=393,
- serialized_end=431,
-)
-
-
-_BSNSTMP = _descriptor.Descriptor(
- name='BsnsTmp',
- full_name='msf.msg.svc.BsnsTmp',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='to_uin', full_name='msf.msg.svc.BsnsTmp.to_uin', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='sig', full_name='msf.msg.svc.BsnsTmp.sig', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=433,
- serialized_end=471,
-)
-
-
-_BUSINESSWPATMP = _descriptor.Descriptor(
- name='BusinessWPATmp',
- full_name='msf.msg.svc.BusinessWPATmp',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='to_uin', full_name='msf.msg.svc.BusinessWPATmp.to_uin', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='sig', full_name='msf.msg.svc.BusinessWPATmp.sig', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='sigt', full_name='msf.msg.svc.BusinessWPATmp.sigt', index=2,
- number=3, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=473,
- serialized_end=532,
-)
-
-
-_C2C = _descriptor.Descriptor(
- name='C2C',
- full_name='msf.msg.svc.C2C',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='to_uin', full_name='msf.msg.svc.C2C.to_uin', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=534,
- serialized_end=555,
-)
-
-
-_COMMTMP = _descriptor.Descriptor(
- name='CommTmp',
- full_name='msf.msg.svc.CommTmp',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='to_uin', full_name='msf.msg.svc.CommTmp.to_uin', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='c2c_type', full_name='msf.msg.svc.CommTmp.c2c_type', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='svr_type', full_name='msf.msg.svc.CommTmp.svr_type', index=2,
- number=3, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='sig', full_name='msf.msg.svc.CommTmp.sig', index=3,
- number=4, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='reserved', full_name='msf.msg.svc.CommTmp.reserved', index=4,
- number=5, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=557,
- serialized_end=649,
-)
-
-
-_DIS = _descriptor.Descriptor(
- name='Dis',
- full_name='msf.msg.svc.Dis',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='dis_uin', full_name='msf.msg.svc.Dis.dis_uin', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=651,
- serialized_end=673,
-)
-
-
-_DISTMP = _descriptor.Descriptor(
- name='DisTmp',
- full_name='msf.msg.svc.DisTmp',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='dis_uin', full_name='msf.msg.svc.DisTmp.dis_uin', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='to_uin', full_name='msf.msg.svc.DisTmp.to_uin', index=1,
- number=2, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=675,
- serialized_end=716,
-)
-
-
-_GRP = _descriptor.Descriptor(
- name='Grp',
- full_name='msf.msg.svc.Grp',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='group_code', full_name='msf.msg.svc.Grp.group_code', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=718,
- serialized_end=743,
-)
-
-
-_GRPTMP = _descriptor.Descriptor(
- name='GrpTmp',
- full_name='msf.msg.svc.GrpTmp',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='group_uin', full_name='msf.msg.svc.GrpTmp.group_uin', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='to_uin', full_name='msf.msg.svc.GrpTmp.to_uin', index=1,
- number=2, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=745,
- serialized_end=788,
-)
-
-
-_MSGSENDINFO = _descriptor.Descriptor(
- name='MsgSendInfo',
- full_name='msf.msg.svc.MsgSendInfo',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='receiver', full_name='msf.msg.svc.MsgSendInfo.receiver', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=790,
- serialized_end=821,
-)
-
-
-_MULTIMSGASSIST = _descriptor.Descriptor(
- name='MultiMsgAssist',
- full_name='msf.msg.svc.MultiMsgAssist',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='repeated_routing', full_name='msf.msg.svc.MultiMsgAssist.repeated_routing', index=0,
- number=1, type=11, cpp_type=10, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='use', full_name='msf.msg.svc.MultiMsgAssist.use', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='temp_id', full_name='msf.msg.svc.MultiMsgAssist.temp_id', index=2,
- number=3, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='vedio_len', full_name='msf.msg.svc.MultiMsgAssist.vedio_len', index=3,
- number=4, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='redbag_id', full_name='msf.msg.svc.MultiMsgAssist.redbag_id', index=4,
- number=5, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='redbag_amount', full_name='msf.msg.svc.MultiMsgAssist.redbag_amount', index=5,
- number=6, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='has_readbag', full_name='msf.msg.svc.MultiMsgAssist.has_readbag', index=6,
- number=7, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='has_vedio', full_name='msf.msg.svc.MultiMsgAssist.has_vedio', index=7,
- number=8, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=824,
- serialized_end=1023,
-)
-
-
-_NEARBYASSISTANTTMP = _descriptor.Descriptor(
- name='NearByAssistantTmp',
- full_name='msf.msg.svc.NearByAssistantTmp',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='to_uin', full_name='msf.msg.svc.NearByAssistantTmp.to_uin', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='sig', full_name='msf.msg.svc.NearByAssistantTmp.sig', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='reply', full_name='msf.msg.svc.NearByAssistantTmp.reply', index=2,
- number=3, type=8, cpp_type=7, label=1,
- has_default_value=False, default_value=False,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=1025,
- serialized_end=1089,
-)
-
-
-_NEARBYDATINGTMP = _descriptor.Descriptor(
- name='NearByDatingTmp',
- full_name='msf.msg.svc.NearByDatingTmp',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='to_uin', full_name='msf.msg.svc.NearByDatingTmp.to_uin', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='sig', full_name='msf.msg.svc.NearByDatingTmp.sig', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='reply', full_name='msf.msg.svc.NearByDatingTmp.reply', index=2,
- number=3, type=8, cpp_type=7, label=1,
- has_default_value=False, default_value=False,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=1091,
- serialized_end=1152,
-)
-
-
-_PBBINDUINGETMSGREQ = _descriptor.Descriptor(
- name='PbBindUinGetMsgReq',
- full_name='msf.msg.svc.PbBindUinGetMsgReq',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='bind_uin', full_name='msf.msg.svc.PbBindUinGetMsgReq.bind_uin', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='bind_uin_sig', full_name='msf.msg.svc.PbBindUinGetMsgReq.bind_uin_sig', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='sync_flag', full_name='msf.msg.svc.PbBindUinGetMsgReq.sync_flag', index=2,
- number=3, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='sync_cookie', full_name='msf.msg.svc.PbBindUinGetMsgReq.sync_cookie', index=3,
- number=4, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=1154,
- serialized_end=1254,
-)
-
-
-_PBBINDUINMSGREADEDCONFIRMREQ = _descriptor.Descriptor(
- name='PbBindUinMsgReadedConfirmReq',
- full_name='msf.msg.svc.PbBindUinMsgReadedConfirmReq',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='sync_cookie', full_name='msf.msg.svc.PbBindUinMsgReadedConfirmReq.sync_cookie', index=0,
- number=1, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='bind_uin', full_name='msf.msg.svc.PbBindUinMsgReadedConfirmReq.bind_uin', index=1,
- number=2, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=1256,
- serialized_end=1325,
-)
-
-
-_PBBINDUINMSGREADEDCONFIRMRESP = _descriptor.Descriptor(
- name='PbBindUinMsgReadedConfirmResp',
- full_name='msf.msg.svc.PbBindUinMsgReadedConfirmResp',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='result', full_name='msf.msg.svc.PbBindUinMsgReadedConfirmResp.result', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='errmsg', full_name='msf.msg.svc.PbBindUinMsgReadedConfirmResp.errmsg', index=1,
- number=2, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='sync_cookie', full_name='msf.msg.svc.PbBindUinMsgReadedConfirmResp.sync_cookie', index=2,
- number=3, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='bind_uin', full_name='msf.msg.svc.PbBindUinMsgReadedConfirmResp.bind_uin', index=3,
- number=4, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=1327,
- serialized_end=1429,
-)
-
-
-_PBBINDUINUNREADMSGNUMREQ = _descriptor.Descriptor(
- name='PbBindUinUnReadMsgNumReq',
- full_name='msf.msg.svc.PbBindUinUnReadMsgNumReq',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='bind_uin', full_name='msf.msg.svc.PbBindUinUnReadMsgNumReq.bind_uin', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='sync_cookie', full_name='msf.msg.svc.PbBindUinUnReadMsgNumReq.sync_cookie', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=1431,
- serialized_end=1496,
-)
-
-
-_PBBINDUINUNREADMSGNUMRESP = _descriptor.Descriptor(
- name='PbBindUinUnReadMsgNumResp',
- full_name='msf.msg.svc.PbBindUinUnReadMsgNumResp',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='result', full_name='msf.msg.svc.PbBindUinUnReadMsgNumResp.result', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='errmsg', full_name='msf.msg.svc.PbBindUinUnReadMsgNumResp.errmsg', index=1,
- number=2, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='bind_uin', full_name='msf.msg.svc.PbBindUinUnReadMsgNumResp.bind_uin', index=2,
- number=3, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='num', full_name='msf.msg.svc.PbBindUinUnReadMsgNumResp.num', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=1498,
- serialized_end=1588,
-)
-
-
-_PBC2CMSGWITHDRAWREQ_MSGINFO = _descriptor.Descriptor(
- name='MsgInfo',
- full_name='msf.msg.svc.PbC2CMsgWithDrawReq.MsgInfo',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='from_uin', full_name='msf.msg.svc.PbC2CMsgWithDrawReq.MsgInfo.from_uin', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='to_uin', full_name='msf.msg.svc.PbC2CMsgWithDrawReq.MsgInfo.to_uin', index=1,
- number=2, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='msg_seq', full_name='msf.msg.svc.PbC2CMsgWithDrawReq.MsgInfo.msg_seq', index=2,
- number=3, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='msg_uid', full_name='msf.msg.svc.PbC2CMsgWithDrawReq.MsgInfo.msg_uid', index=3,
- number=4, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='msg_time', full_name='msf.msg.svc.PbC2CMsgWithDrawReq.MsgInfo.msg_time', index=4,
- number=5, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='msg_random', full_name='msf.msg.svc.PbC2CMsgWithDrawReq.MsgInfo.msg_random', index=5,
- number=6, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='pkg_num', full_name='msf.msg.svc.PbC2CMsgWithDrawReq.MsgInfo.pkg_num', index=6,
- number=7, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='pkg_index', full_name='msf.msg.svc.PbC2CMsgWithDrawReq.MsgInfo.pkg_index', index=7,
- number=8, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='div_seq', full_name='msf.msg.svc.PbC2CMsgWithDrawReq.MsgInfo.div_seq', index=8,
- number=9, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='msg_type', full_name='msf.msg.svc.PbC2CMsgWithDrawReq.MsgInfo.msg_type', index=9,
- number=10, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='routing_head', full_name='msf.msg.svc.PbC2CMsgWithDrawReq.MsgInfo.routing_head', index=10,
- number=20, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=1733,
- serialized_end=1967,
-)
-
-_PBC2CMSGWITHDRAWREQ = _descriptor.Descriptor(
- name='PbC2CMsgWithDrawReq',
- full_name='msf.msg.svc.PbC2CMsgWithDrawReq',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='info', full_name='msf.msg.svc.PbC2CMsgWithDrawReq.info', index=0,
- number=1, type=11, cpp_type=10, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='long_message_flag', full_name='msf.msg.svc.PbC2CMsgWithDrawReq.long_message_flag', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='reserved', full_name='msf.msg.svc.PbC2CMsgWithDrawReq.reserved', index=2,
- number=3, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='sub_cmd', full_name='msf.msg.svc.PbC2CMsgWithDrawReq.sub_cmd', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[_PBC2CMSGWITHDRAWREQ_MSGINFO, ],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=1591,
- serialized_end=1967,
-)
-
-
-_PBC2CMSGWITHDRAWRESP = _descriptor.Descriptor(
- name='PbC2CMsgWithDrawResp',
- full_name='msf.msg.svc.PbC2CMsgWithDrawResp',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='result', full_name='msf.msg.svc.PbC2CMsgWithDrawResp.result', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='errmsg', full_name='msf.msg.svc.PbC2CMsgWithDrawResp.errmsg', index=1,
- number=2, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='status', full_name='msf.msg.svc.PbC2CMsgWithDrawResp.status', index=2,
- number=3, type=11, cpp_type=10, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='sub_cmd', full_name='msf.msg.svc.PbC2CMsgWithDrawResp.sub_cmd', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='wording_info', full_name='msf.msg.svc.PbC2CMsgWithDrawResp.wording_info', index=4,
- number=5, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=1970,
- serialized_end=2137,
-)
-
-
-_MSGSTATUS = _descriptor.Descriptor(
- name='MsgStatus',
- full_name='msf.msg.svc.MsgStatus',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='info', full_name='msf.msg.svc.MsgStatus.info', index=0,
- number=1, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='status', full_name='msf.msg.svc.MsgStatus.status', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=2139,
- serialized_end=2222,
-)
-
-
-_PBC2CREADEDREPORTREQ = _descriptor.Descriptor(
- name='PbC2CReadedReportReq',
- full_name='msf.msg.svc.PbC2CReadedReportReq',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='sync_cookie', full_name='msf.msg.svc.PbC2CReadedReportReq.sync_cookie', index=0,
- number=1, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='pair_info', full_name='msf.msg.svc.PbC2CReadedReportReq.pair_info', index=1,
- number=2, type=11, cpp_type=10, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=2224,
- serialized_end=2316,
-)
-
-
-_UINPAIRREADINFO = _descriptor.Descriptor(
- name='UinPairReadInfo',
- full_name='msf.msg.svc.UinPairReadInfo',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='peer_uin', full_name='msf.msg.svc.UinPairReadInfo.peer_uin', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='last_read_time', full_name='msf.msg.svc.UinPairReadInfo.last_read_time', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='crm_sig', full_name='msf.msg.svc.UinPairReadInfo.crm_sig', index=2,
- number=3, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='peer_type', full_name='msf.msg.svc.UinPairReadInfo.peer_type', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='chat_type', full_name='msf.msg.svc.UinPairReadInfo.chat_type', index=4,
- number=5, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='cpid', full_name='msf.msg.svc.UinPairReadInfo.cpid', index=5,
- number=6, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='aio_type', full_name='msf.msg.svc.UinPairReadInfo.aio_type', index=6,
- number=7, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='to_tiny_id', full_name='msf.msg.svc.UinPairReadInfo.to_tiny_id', index=7,
- number=9, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=2319,
- serialized_end=2485,
-)
-
-
-_PBC2CREADEDREPORTRESP = _descriptor.Descriptor(
- name='PbC2CReadedReportResp',
- full_name='msf.msg.svc.PbC2CReadedReportResp',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='result', full_name='msf.msg.svc.PbC2CReadedReportResp.result', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='errmsg', full_name='msf.msg.svc.PbC2CReadedReportResp.errmsg', index=1,
- number=2, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='sync_cookie', full_name='msf.msg.svc.PbC2CReadedReportResp.sync_cookie', index=2,
- number=3, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=2487,
- serialized_end=2563,
-)
-
-
-_PBC2CUNREADMSGNUMREQ = _descriptor.Descriptor(
- name='PbC2CUnReadMsgNumReq',
- full_name='msf.msg.svc.PbC2CUnReadMsgNumReq',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=2565,
- serialized_end=2587,
-)
-
-
-_PBC2CUNREADMSGNUMRESP = _descriptor.Descriptor(
- name='PbC2CUnReadMsgNumResp',
- full_name='msf.msg.svc.PbC2CUnReadMsgNumResp',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='result', full_name='msf.msg.svc.PbC2CUnReadMsgNumResp.result', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='errmsg', full_name='msf.msg.svc.PbC2CUnReadMsgNumResp.errmsg', index=1,
- number=2, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='num', full_name='msf.msg.svc.PbC2CUnReadMsgNumResp.num', index=2,
- number=3, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=2589,
- serialized_end=2657,
-)
-
-
-_PBDELROAMMSGREQ = _descriptor.Descriptor(
- name='PbDelRoamMsgReq',
- full_name='msf.msg.svc.PbDelRoamMsgReq',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='c2c_msg', full_name='msf.msg.svc.PbDelRoamMsgReq.c2c_msg', index=0,
- number=1, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='grp_msg', full_name='msf.msg.svc.PbDelRoamMsgReq.grp_msg', index=1,
- number=2, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='dis_msg', full_name='msf.msg.svc.PbDelRoamMsgReq.dis_msg', index=2,
- number=3, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=2660,
- serialized_end=2791,
-)
-
-
-_C2CMSG = _descriptor.Descriptor(
- name='C2CMsg',
- full_name='msf.msg.svc.C2CMsg',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='from_uin', full_name='msf.msg.svc.C2CMsg.from_uin', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='peer_uin', full_name='msf.msg.svc.C2CMsg.peer_uin', index=1,
- number=2, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='time', full_name='msf.msg.svc.C2CMsg.time', index=2,
- number=3, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='random', full_name='msf.msg.svc.C2CMsg.random', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='seq', full_name='msf.msg.svc.C2CMsg.seq', index=4,
- number=5, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=2793,
- serialized_end=2880,
-)
-
-
-_DISMSG = _descriptor.Descriptor(
- name='DisMsg',
- full_name='msf.msg.svc.DisMsg',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='discuss_uin', full_name='msf.msg.svc.DisMsg.discuss_uin', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='seq', full_name='msf.msg.svc.DisMsg.seq', index=1,
- number=2, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=2882,
- serialized_end=2924,
-)
-
-
-_GRPMSG = _descriptor.Descriptor(
- name='GrpMsg',
- full_name='msf.msg.svc.GrpMsg',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='group_code', full_name='msf.msg.svc.GrpMsg.group_code', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='seq', full_name='msf.msg.svc.GrpMsg.seq', index=1,
- number=2, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='resv_flag', full_name='msf.msg.svc.GrpMsg.resv_flag', index=2,
- number=3, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=2926,
- serialized_end=2986,
-)
-
-
-_PBDELROAMMSGRESP = _descriptor.Descriptor(
- name='PbDelRoamMsgResp',
- full_name='msf.msg.svc.PbDelRoamMsgResp',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='result', full_name='msf.msg.svc.PbDelRoamMsgResp.result', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='errmsg', full_name='msf.msg.svc.PbDelRoamMsgResp.errmsg', index=1,
- number=2, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=2988,
- serialized_end=3038,
-)
-
-
-_PBDELETEMSGREQ_MSGITEM = _descriptor.Descriptor(
- name='MsgItem',
- full_name='msf.msg.svc.PbDeleteMsgReq.MsgItem',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='from_uin', full_name='msf.msg.svc.PbDeleteMsgReq.MsgItem.from_uin', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='to_uin', full_name='msf.msg.svc.PbDeleteMsgReq.MsgItem.to_uin', index=1,
- number=2, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='type', full_name='msf.msg.svc.PbDeleteMsgReq.MsgItem.type', index=2,
- number=3, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='seq', full_name='msf.msg.svc.PbDeleteMsgReq.MsgItem.seq', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='uid', full_name='msf.msg.svc.PbDeleteMsgReq.MsgItem.uid', index=4,
- number=5, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='sig', full_name='msf.msg.svc.PbDeleteMsgReq.MsgItem.sig', index=5,
- number=7, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=3115,
- serialized_end=3211,
-)
-
-_PBDELETEMSGREQ = _descriptor.Descriptor(
- name='PbDeleteMsgReq',
- full_name='msf.msg.svc.PbDeleteMsgReq',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='msg_items', full_name='msf.msg.svc.PbDeleteMsgReq.msg_items', index=0,
- number=1, type=11, cpp_type=10, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[_PBDELETEMSGREQ_MSGITEM, ],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=3041,
- serialized_end=3211,
-)
-
-
-_PBDELETEMSGRESP = _descriptor.Descriptor(
- name='PbDeleteMsgResp',
- full_name='msf.msg.svc.PbDeleteMsgResp',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='result', full_name='msf.msg.svc.PbDeleteMsgResp.result', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='errmsg', full_name='msf.msg.svc.PbDeleteMsgResp.errmsg', index=1,
- number=2, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=3213,
- serialized_end=3262,
-)
-
-
-_PBDISCUSSREADEDREPORTREQ = _descriptor.Descriptor(
- name='PbDiscussReadedReportReq',
- full_name='msf.msg.svc.PbDiscussReadedReportReq',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='conf_uin', full_name='msf.msg.svc.PbDiscussReadedReportReq.conf_uin', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='last_read_seq', full_name='msf.msg.svc.PbDiscussReadedReportReq.last_read_seq', index=1,
- number=2, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=3264,
- serialized_end=3331,
-)
-
-
-_PBDISCUSSREADEDREPORTRESP = _descriptor.Descriptor(
- name='PbDiscussReadedReportResp',
- full_name='msf.msg.svc.PbDiscussReadedReportResp',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='result', full_name='msf.msg.svc.PbDiscussReadedReportResp.result', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='errmsg', full_name='msf.msg.svc.PbDiscussReadedReportResp.errmsg', index=1,
- number=2, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='conf_uin', full_name='msf.msg.svc.PbDiscussReadedReportResp.conf_uin', index=2,
- number=3, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='member_seq', full_name='msf.msg.svc.PbDiscussReadedReportResp.member_seq', index=3,
- number=4, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='conf_seq', full_name='msf.msg.svc.PbDiscussReadedReportResp.conf_seq', index=4,
- number=5, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=3333,
- serialized_end=3448,
-)
-
-
-_PBGETDISCUSSMSGREQ = _descriptor.Descriptor(
- name='PbGetDiscussMsgReq',
- full_name='msf.msg.svc.PbGetDiscussMsgReq',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='discuss_uin', full_name='msf.msg.svc.PbGetDiscussMsgReq.discuss_uin', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='end_seq', full_name='msf.msg.svc.PbGetDiscussMsgReq.end_seq', index=1,
- number=2, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='begin_seq', full_name='msf.msg.svc.PbGetDiscussMsgReq.begin_seq', index=2,
- number=3, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='last_get_time', full_name='msf.msg.svc.PbGetDiscussMsgReq.last_get_time', index=3,
- number=4, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='discuss_info_seq', full_name='msf.msg.svc.PbGetDiscussMsgReq.discuss_info_seq', index=4,
- number=5, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='filter', full_name='msf.msg.svc.PbGetDiscussMsgReq.filter', index=5,
- number=6, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='member_seq', full_name='msf.msg.svc.PbGetDiscussMsgReq.member_seq', index=6,
- number=7, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=3451,
- serialized_end=3613,
-)
-
-
-_PBGETDISCUSSMSGRESP = _descriptor.Descriptor(
- name='PbGetDiscussMsgResp',
- full_name='msf.msg.svc.PbGetDiscussMsgResp',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='result', full_name='msf.msg.svc.PbGetDiscussMsgResp.result', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='errmsg', full_name='msf.msg.svc.PbGetDiscussMsgResp.errmsg', index=1,
- number=2, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='discuss_uin', full_name='msf.msg.svc.PbGetDiscussMsgResp.discuss_uin', index=2,
- number=3, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='return_end_seq', full_name='msf.msg.svc.PbGetDiscussMsgResp.return_end_seq', index=3,
- number=4, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='return_begin_seq', full_name='msf.msg.svc.PbGetDiscussMsgResp.return_begin_seq', index=4,
- number=5, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='msg', full_name='msf.msg.svc.PbGetDiscussMsgResp.msg', index=5,
- number=6, type=11, cpp_type=10, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='last_get_time', full_name='msf.msg.svc.PbGetDiscussMsgResp.last_get_time', index=6,
- number=7, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='discuss_info_seq', full_name='msf.msg.svc.PbGetDiscussMsgResp.discuss_info_seq', index=7,
- number=8, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=3616,
- serialized_end=3821,
-)
-
-
-_PBGETGROUPMSGREQ = _descriptor.Descriptor(
- name='PbGetGroupMsgReq',
- full_name='msf.msg.svc.PbGetGroupMsgReq',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='group_code', full_name='msf.msg.svc.PbGetGroupMsgReq.group_code', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='begin_seq', full_name='msf.msg.svc.PbGetGroupMsgReq.begin_seq', index=1,
- number=2, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='end_seq', full_name='msf.msg.svc.PbGetGroupMsgReq.end_seq', index=2,
- number=3, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='filter', full_name='msf.msg.svc.PbGetGroupMsgReq.filter', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='member_seq', full_name='msf.msg.svc.PbGetGroupMsgReq.member_seq', index=4,
- number=5, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='public_group', full_name='msf.msg.svc.PbGetGroupMsgReq.public_group', index=5,
- number=6, type=8, cpp_type=7, label=1,
- has_default_value=False, default_value=False,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='shield_flag', full_name='msf.msg.svc.PbGetGroupMsgReq.shield_flag', index=6,
- number=7, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='save_traffic_flag', full_name='msf.msg.svc.PbGetGroupMsgReq.save_traffic_flag', index=7,
- number=8, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=3824,
- serialized_end=4004,
-)
-
-
-_PBGETGROUPMSGRESP = _descriptor.Descriptor(
- name='PbGetGroupMsgResp',
- full_name='msf.msg.svc.PbGetGroupMsgResp',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='result', full_name='msf.msg.svc.PbGetGroupMsgResp.result', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='errmsg', full_name='msf.msg.svc.PbGetGroupMsgResp.errmsg', index=1,
- number=2, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='group_code', full_name='msf.msg.svc.PbGetGroupMsgResp.group_code', index=2,
- number=3, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='return_begin_seq', full_name='msf.msg.svc.PbGetGroupMsgResp.return_begin_seq', index=3,
- number=4, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='return_end_seq', full_name='msf.msg.svc.PbGetGroupMsgResp.return_end_seq', index=4,
- number=5, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='msg', full_name='msf.msg.svc.PbGetGroupMsgResp.msg', index=5,
- number=6, type=11, cpp_type=10, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=4007,
- serialized_end=4160,
-)
-
-
-_PBGETMSGREQ = _descriptor.Descriptor(
- name='PbGetMsgReq',
- full_name='msf.msg.svc.PbGetMsgReq',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='sync_flag', full_name='msf.msg.svc.PbGetMsgReq.sync_flag', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='sync_cookie', full_name='msf.msg.svc.PbGetMsgReq.sync_cookie', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='ramble_flag', full_name='msf.msg.svc.PbGetMsgReq.ramble_flag', index=2,
- number=3, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='latest_ramble_number', full_name='msf.msg.svc.PbGetMsgReq.latest_ramble_number', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='other_ramble_number', full_name='msf.msg.svc.PbGetMsgReq.other_ramble_number', index=4,
- number=5, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='online_sync_flag', full_name='msf.msg.svc.PbGetMsgReq.online_sync_flag', index=5,
- number=6, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='context_flag', full_name='msf.msg.svc.PbGetMsgReq.context_flag', index=6,
- number=7, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='whisper_session_id', full_name='msf.msg.svc.PbGetMsgReq.whisper_session_id', index=7,
- number=8, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='req_type', full_name='msf.msg.svc.PbGetMsgReq.req_type', index=8,
- number=9, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='pubaccount_cookie', full_name='msf.msg.svc.PbGetMsgReq.pubaccount_cookie', index=9,
- number=10, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='ctrl_buf', full_name='msf.msg.svc.PbGetMsgReq.ctrl_buf', index=10,
- number=11, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='server_buf', full_name='msf.msg.svc.PbGetMsgReq.server_buf', index=11,
- number=12, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=4163,
- serialized_end=4455,
-)
-
-
-_PBGETMSGRESP = _descriptor.Descriptor(
- name='PbGetMsgResp',
- full_name='msf.msg.svc.PbGetMsgResp',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='result', full_name='msf.msg.svc.PbGetMsgResp.result', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='errmsg', full_name='msf.msg.svc.PbGetMsgResp.errmsg', index=1,
- number=2, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='sync_cookie', full_name='msf.msg.svc.PbGetMsgResp.sync_cookie', index=2,
- number=3, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='sync_flag', full_name='msf.msg.svc.PbGetMsgResp.sync_flag', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='uin_pair_msgs', full_name='msf.msg.svc.PbGetMsgResp.uin_pair_msgs', index=4,
- number=5, type=11, cpp_type=10, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='bind_uin', full_name='msf.msg.svc.PbGetMsgResp.bind_uin', index=5,
- number=6, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='rsp_type', full_name='msf.msg.svc.PbGetMsgResp.rsp_type', index=6,
- number=7, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='pubaccount_cookie', full_name='msf.msg.svc.PbGetMsgResp.pubaccount_cookie', index=7,
- number=8, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='is_partial_sync', full_name='msf.msg.svc.PbGetMsgResp.is_partial_sync', index=8,
- number=9, type=8, cpp_type=7, label=1,
- has_default_value=False, default_value=False,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='ctrl_buf', full_name='msf.msg.svc.PbGetMsgResp.ctrl_buf', index=9,
- number=10, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=4458,
- serialized_end=4699,
-)
-
-
-_PBGETONEDAYROAMMSGREQ = _descriptor.Descriptor(
- name='PbGetOneDayRoamMsgReq',
- full_name='msf.msg.svc.PbGetOneDayRoamMsgReq',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='peer_uin', full_name='msf.msg.svc.PbGetOneDayRoamMsgReq.peer_uin', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='last_msgtime', full_name='msf.msg.svc.PbGetOneDayRoamMsgReq.last_msgtime', index=1,
- number=2, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='random', full_name='msf.msg.svc.PbGetOneDayRoamMsgReq.random', index=2,
- number=3, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='read_cnt', full_name='msf.msg.svc.PbGetOneDayRoamMsgReq.read_cnt', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=4701,
- serialized_end=4798,
-)
-
-
-_PBGETONEDAYROAMMSGRESP = _descriptor.Descriptor(
- name='PbGetOneDayRoamMsgResp',
- full_name='msf.msg.svc.PbGetOneDayRoamMsgResp',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='result', full_name='msf.msg.svc.PbGetOneDayRoamMsgResp.result', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='errmsg', full_name='msf.msg.svc.PbGetOneDayRoamMsgResp.errmsg', index=1,
- number=2, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='peer_uin', full_name='msf.msg.svc.PbGetOneDayRoamMsgResp.peer_uin', index=2,
- number=3, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='last_msgtime', full_name='msf.msg.svc.PbGetOneDayRoamMsgResp.last_msgtime', index=3,
- number=4, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='random', full_name='msf.msg.svc.PbGetOneDayRoamMsgResp.random', index=4,
- number=5, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='msg', full_name='msf.msg.svc.PbGetOneDayRoamMsgResp.msg', index=5,
- number=6, type=11, cpp_type=10, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='iscomplete', full_name='msf.msg.svc.PbGetOneDayRoamMsgResp.iscomplete', index=6,
- number=7, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=4801,
- serialized_end=4965,
-)
-
-
-_PBGETROAMMSGREQ = _descriptor.Descriptor(
- name='PbGetRoamMsgReq',
- full_name='msf.msg.svc.PbGetRoamMsgReq',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='peer_uin', full_name='msf.msg.svc.PbGetRoamMsgReq.peer_uin', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='last_msgtime', full_name='msf.msg.svc.PbGetRoamMsgReq.last_msgtime', index=1,
- number=2, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='random', full_name='msf.msg.svc.PbGetRoamMsgReq.random', index=2,
- number=3, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='read_cnt', full_name='msf.msg.svc.PbGetRoamMsgReq.read_cnt', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='check_pwd', full_name='msf.msg.svc.PbGetRoamMsgReq.check_pwd', index=4,
- number=5, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='sig', full_name='msf.msg.svc.PbGetRoamMsgReq.sig', index=5,
- number=6, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='pwd', full_name='msf.msg.svc.PbGetRoamMsgReq.pwd', index=6,
- number=7, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='subcmd', full_name='msf.msg.svc.PbGetRoamMsgReq.subcmd', index=7,
- number=8, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='begin_msgtime', full_name='msf.msg.svc.PbGetRoamMsgReq.begin_msgtime', index=8,
- number=9, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='req_type', full_name='msf.msg.svc.PbGetRoamMsgReq.req_type', index=9,
- number=10, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=4968,
- serialized_end=5161,
-)
-
-
-_PBGETROAMMSGRESP = _descriptor.Descriptor(
- name='PbGetRoamMsgResp',
- full_name='msf.msg.svc.PbGetRoamMsgResp',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='result', full_name='msf.msg.svc.PbGetRoamMsgResp.result', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='errmsg', full_name='msf.msg.svc.PbGetRoamMsgResp.errmsg', index=1,
- number=2, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='peer_uin', full_name='msf.msg.svc.PbGetRoamMsgResp.peer_uin', index=2,
- number=3, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='last_msgtime', full_name='msf.msg.svc.PbGetRoamMsgResp.last_msgtime', index=3,
- number=4, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='random', full_name='msf.msg.svc.PbGetRoamMsgResp.random', index=4,
- number=5, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='msg', full_name='msf.msg.svc.PbGetRoamMsgResp.msg', index=5,
- number=6, type=11, cpp_type=10, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='sig', full_name='msf.msg.svc.PbGetRoamMsgResp.sig', index=6,
- number=7, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=5164,
- serialized_end=5315,
-)
-
-
-_PBGROUPMSGWITHDRAWREQ = _descriptor.Descriptor(
- name='PbGroupMsgWithDrawReq',
- full_name='msf.msg.svc.PbGroupMsgWithDrawReq',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='sub_cmd', full_name='msf.msg.svc.PbGroupMsgWithDrawReq.sub_cmd', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='group_type', full_name='msf.msg.svc.PbGroupMsgWithDrawReq.group_type', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='group_code', full_name='msf.msg.svc.PbGroupMsgWithDrawReq.group_code', index=2,
- number=3, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='list', full_name='msf.msg.svc.PbGroupMsgWithDrawReq.list', index=3,
- number=4, type=11, cpp_type=10, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='userdef', full_name='msf.msg.svc.PbGroupMsgWithDrawReq.userdef', index=4,
- number=5, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=5318,
- serialized_end=5455,
-)
-
-
-_MESSAGEINFO = _descriptor.Descriptor(
- name='MessageInfo',
- full_name='msf.msg.svc.MessageInfo',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='msg_seq', full_name='msf.msg.svc.MessageInfo.msg_seq', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='msg_random', full_name='msf.msg.svc.MessageInfo.msg_random', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='msg_type', full_name='msf.msg.svc.MessageInfo.msg_type', index=2,
- number=3, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='resv_flag', full_name='msf.msg.svc.MessageInfo.resv_flag', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=5457,
- serialized_end=5544,
-)
-
-
-_PBGROUPMSGWITHDRAWRESP = _descriptor.Descriptor(
- name='PbGroupMsgWithDrawResp',
- full_name='msf.msg.svc.PbGroupMsgWithDrawResp',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='result', full_name='msf.msg.svc.PbGroupMsgWithDrawResp.result', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='errmsg', full_name='msf.msg.svc.PbGroupMsgWithDrawResp.errmsg', index=1,
- number=2, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='sub_cmd', full_name='msf.msg.svc.PbGroupMsgWithDrawResp.sub_cmd', index=2,
- number=3, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='group_type', full_name='msf.msg.svc.PbGroupMsgWithDrawResp.group_type', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='group_code', full_name='msf.msg.svc.PbGroupMsgWithDrawResp.group_code', index=4,
- number=5, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='failed_msg_list', full_name='msf.msg.svc.PbGroupMsgWithDrawResp.failed_msg_list', index=5,
- number=6, type=11, cpp_type=10, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='userdef', full_name='msf.msg.svc.PbGroupMsgWithDrawResp.userdef', index=6,
- number=7, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='wording_info', full_name='msf.msg.svc.PbGroupMsgWithDrawResp.wording_info', index=7,
- number=8, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=5547,
- serialized_end=5786,
-)
-
-
-_MESSAGERESULT = _descriptor.Descriptor(
- name='MessageResult',
- full_name='msf.msg.svc.MessageResult',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='result', full_name='msf.msg.svc.MessageResult.result', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='msg_seq', full_name='msf.msg.svc.MessageResult.msg_seq', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='msg_time', full_name='msf.msg.svc.MessageResult.msg_time', index=2,
- number=3, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='msg_random', full_name='msf.msg.svc.MessageResult.msg_random', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='err_msg', full_name='msf.msg.svc.MessageResult.err_msg', index=4,
- number=5, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='msg_type', full_name='msf.msg.svc.MessageResult.msg_type', index=5,
- number=6, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=5788,
- serialized_end=5909,
-)
-
-
-_PBGROUPREADEDREPORTREQ = _descriptor.Descriptor(
- name='PbGroupReadedReportReq',
- full_name='msf.msg.svc.PbGroupReadedReportReq',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='group_code', full_name='msf.msg.svc.PbGroupReadedReportReq.group_code', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='last_read_seq', full_name='msf.msg.svc.PbGroupReadedReportReq.last_read_seq', index=1,
- number=2, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=5911,
- serialized_end=5978,
-)
-
-
-_PBGROUPREADEDREPORTRESP = _descriptor.Descriptor(
- name='PbGroupReadedReportResp',
- full_name='msf.msg.svc.PbGroupReadedReportResp',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='result', full_name='msf.msg.svc.PbGroupReadedReportResp.result', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='errmsg', full_name='msf.msg.svc.PbGroupReadedReportResp.errmsg', index=1,
- number=2, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='group_code', full_name='msf.msg.svc.PbGroupReadedReportResp.group_code', index=2,
- number=3, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='member_seq', full_name='msf.msg.svc.PbGroupReadedReportResp.member_seq', index=3,
- number=4, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='group_msg_seq', full_name='msf.msg.svc.PbGroupReadedReportResp.group_msg_seq', index=4,
- number=5, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=5980,
- serialized_end=6100,
-)
-
-
-_PBINPUTNOTIFYINFO = _descriptor.Descriptor(
- name='PbInputNotifyInfo',
- full_name='msf.msg.svc.PbInputNotifyInfo',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='to_uin', full_name='msf.msg.svc.PbInputNotifyInfo.to_uin', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='ime', full_name='msf.msg.svc.PbInputNotifyInfo.ime', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='notify_flag', full_name='msf.msg.svc.PbInputNotifyInfo.notify_flag', index=2,
- number=3, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='pb_reserve', full_name='msf.msg.svc.PbInputNotifyInfo.pb_reserve', index=3,
- number=4, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='ios_push_wording', full_name='msf.msg.svc.PbInputNotifyInfo.ios_push_wording', index=4,
- number=5, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=6102,
- serialized_end=6217,
-)
-
-
-_PBMSGREADEDREPORTREQ = _descriptor.Descriptor(
- name='PbMsgReadedReportReq',
- full_name='msf.msg.svc.PbMsgReadedReportReq',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='grp_read_report', full_name='msf.msg.svc.PbMsgReadedReportReq.grp_read_report', index=0,
- number=1, type=11, cpp_type=10, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='dis_read_report', full_name='msf.msg.svc.PbMsgReadedReportReq.dis_read_report', index=1,
- number=2, type=11, cpp_type=10, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='c2c_read_report', full_name='msf.msg.svc.PbMsgReadedReportReq.c2c_read_report', index=2,
- number=3, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='bind_uin_read_report', full_name='msf.msg.svc.PbMsgReadedReportReq.bind_uin_read_report', index=3,
- number=4, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=6220,
- serialized_end=6501,
-)
-
-
-_PBMSGREADEDREPORTRESP = _descriptor.Descriptor(
- name='PbMsgReadedReportResp',
- full_name='msf.msg.svc.PbMsgReadedReportResp',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='grp_read_report', full_name='msf.msg.svc.PbMsgReadedReportResp.grp_read_report', index=0,
- number=1, type=11, cpp_type=10, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='dis_read_report', full_name='msf.msg.svc.PbMsgReadedReportResp.dis_read_report', index=1,
- number=2, type=11, cpp_type=10, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='c2c_read_report', full_name='msf.msg.svc.PbMsgReadedReportResp.c2c_read_report', index=2,
- number=3, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='bind_uin_read_report', full_name='msf.msg.svc.PbMsgReadedReportResp.bind_uin_read_report', index=3,
- number=4, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=6504,
- serialized_end=6790,
-)
-
-
-_PBMSGWITHDRAWREQ = _descriptor.Descriptor(
- name='PbMsgWithDrawReq',
- full_name='msf.msg.svc.PbMsgWithDrawReq',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='c2c_with_draw', full_name='msf.msg.svc.PbMsgWithDrawReq.c2c_with_draw', index=0,
- number=1, type=11, cpp_type=10, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='group_with_draw', full_name='msf.msg.svc.PbMsgWithDrawReq.group_with_draw', index=1,
- number=2, type=11, cpp_type=10, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=6793,
- serialized_end=6929,
-)
-
-
-_PBMSGWITHDRAWRESP = _descriptor.Descriptor(
- name='PbMsgWithDrawResp',
- full_name='msf.msg.svc.PbMsgWithDrawResp',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='c2c_with_draw', full_name='msf.msg.svc.PbMsgWithDrawResp.c2c_with_draw', index=0,
- number=1, type=11, cpp_type=10, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='group_with_draw', full_name='msf.msg.svc.PbMsgWithDrawResp.group_with_draw', index=1,
- number=2, type=11, cpp_type=10, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=6932,
- serialized_end=7071,
-)
-
-
-_PBPULLDISCUSSMSGSEQREQ = _descriptor.Descriptor(
- name='PbPullDiscussMsgSeqReq',
- full_name='msf.msg.svc.PbPullDiscussMsgSeqReq',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='discuss_info_req', full_name='msf.msg.svc.PbPullDiscussMsgSeqReq.discuss_info_req', index=0,
- number=1, type=11, cpp_type=10, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=7073,
- serialized_end=7152,
-)
-
-
-_DISCUSSINFOREQ = _descriptor.Descriptor(
- name='DiscussInfoReq',
- full_name='msf.msg.svc.DiscussInfoReq',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='conf_uin', full_name='msf.msg.svc.DiscussInfoReq.conf_uin', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='last_seq', full_name='msf.msg.svc.DiscussInfoReq.last_seq', index=1,
- number=2, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=7154,
- serialized_end=7206,
-)
-
-
-_PBPULLDISCUSSMSGSEQRESP = _descriptor.Descriptor(
- name='PbPullDiscussMsgSeqResp',
- full_name='msf.msg.svc.PbPullDiscussMsgSeqResp',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='result', full_name='msf.msg.svc.PbPullDiscussMsgSeqResp.result', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='errmsg', full_name='msf.msg.svc.PbPullDiscussMsgSeqResp.errmsg', index=1,
- number=2, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='discuss_info_resp', full_name='msf.msg.svc.PbPullDiscussMsgSeqResp.discuss_info_resp', index=2,
- number=3, type=11, cpp_type=10, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=7208,
- serialized_end=7322,
-)
-
-
-_DISCUSSINFORESP = _descriptor.Descriptor(
- name='DiscussInfoResp',
- full_name='msf.msg.svc.DiscussInfoResp',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='conf_uin', full_name='msf.msg.svc.DiscussInfoResp.conf_uin', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='member_seq', full_name='msf.msg.svc.DiscussInfoResp.member_seq', index=1,
- number=2, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='conf_seq', full_name='msf.msg.svc.DiscussInfoResp.conf_seq', index=2,
- number=3, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=7324,
- serialized_end=7397,
-)
-
-
-_PBPULLGROUPMSGSEQREQ = _descriptor.Descriptor(
- name='PbPullGroupMsgSeqReq',
- full_name='msf.msg.svc.PbPullGroupMsgSeqReq',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='group_info_req', full_name='msf.msg.svc.PbPullGroupMsgSeqReq.group_info_req', index=0,
- number=1, type=11, cpp_type=10, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=7399,
- serialized_end=7472,
-)
-
-
-_GROUPINFOREQ = _descriptor.Descriptor(
- name='GroupInfoReq',
- full_name='msf.msg.svc.GroupInfoReq',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='group_code', full_name='msf.msg.svc.GroupInfoReq.group_code', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='last_seq', full_name='msf.msg.svc.GroupInfoReq.last_seq', index=1,
- number=2, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=7474,
- serialized_end=7526,
-)
-
-
-_PBPULLGROUPMSGSEQRESP = _descriptor.Descriptor(
- name='PbPullGroupMsgSeqResp',
- full_name='msf.msg.svc.PbPullGroupMsgSeqResp',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='result', full_name='msf.msg.svc.PbPullGroupMsgSeqResp.result', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='errmsg', full_name='msf.msg.svc.PbPullGroupMsgSeqResp.errmsg', index=1,
- number=2, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='group_info_resp', full_name='msf.msg.svc.PbPullGroupMsgSeqResp.group_info_resp', index=2,
- number=3, type=11, cpp_type=10, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=7528,
- serialized_end=7636,
-)
-
-
-_GROUPINFORESP = _descriptor.Descriptor(
- name='GroupInfoResp',
- full_name='msf.msg.svc.GroupInfoResp',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='group_code', full_name='msf.msg.svc.GroupInfoResp.group_code', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='member_seq', full_name='msf.msg.svc.GroupInfoResp.member_seq', index=1,
- number=2, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='group_seq', full_name='msf.msg.svc.GroupInfoResp.group_seq', index=2,
- number=3, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=7638,
- serialized_end=7712,
-)
-
-
-_PBSEARCHROAMMSGINCLOUDREQ = _descriptor.Descriptor(
- name='PbSearchRoamMsgInCloudReq',
- full_name='msf.msg.svc.PbSearchRoamMsgInCloudReq',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='serialize_reqbody', full_name='msf.msg.svc.PbSearchRoamMsgInCloudReq.serialize_reqbody', index=0,
- number=1, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=7714,
- serialized_end=7768,
-)
-
-
-_PBSEARCHROAMMSGINCLOUDRESP = _descriptor.Descriptor(
- name='PbSearchRoamMsgInCloudResp',
- full_name='msf.msg.svc.PbSearchRoamMsgInCloudResp',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='msg', full_name='msf.msg.svc.PbSearchRoamMsgInCloudResp.msg', index=0,
- number=1, type=11, cpp_type=10, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='serialize_rspbody', full_name='msf.msg.svc.PbSearchRoamMsgInCloudResp.serialize_rspbody', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=7770,
- serialized_end=7857,
-)
-
-
-_PBSENDMSGREQ = _descriptor.Descriptor(
- name='PbSendMsgReq',
- full_name='msf.msg.svc.PbSendMsgReq',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='routing_head', full_name='msf.msg.svc.PbSendMsgReq.routing_head', index=0,
- number=1, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='content_head', full_name='msf.msg.svc.PbSendMsgReq.content_head', index=1,
- number=2, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='body', full_name='msf.msg.svc.PbSendMsgReq.body', index=2,
- number=3, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='seq', full_name='msf.msg.svc.PbSendMsgReq.seq', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='rand', full_name='msf.msg.svc.PbSendMsgReq.rand', index=4,
- number=5, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='sync_cookie', full_name='msf.msg.svc.PbSendMsgReq.sync_cookie', index=5,
- number=6, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='app_share', full_name='msf.msg.svc.PbSendMsgReq.app_share', index=6,
- number=7, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='via', full_name='msf.msg.svc.PbSendMsgReq.via', index=7,
- number=8, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='data_statist', full_name='msf.msg.svc.PbSendMsgReq.data_statist', index=8,
- number=9, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='multi_msg_assist', full_name='msf.msg.svc.PbSendMsgReq.multi_msg_assist', index=9,
- number=10, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='input_notify_info', full_name='msf.msg.svc.PbSendMsgReq.input_notify_info', index=10,
- number=11, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='ctrl', full_name='msf.msg.svc.PbSendMsgReq.ctrl', index=11,
- number=12, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='receipt_req', full_name='msf.msg.svc.PbSendMsgReq.receipt_req', index=12,
- number=13, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='multi_send_seq', full_name='msf.msg.svc.PbSendMsgReq.multi_send_seq', index=13,
- number=14, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=7860,
- serialized_end=8365,
-)
-
-
-_PBSENDMSGRESP = _descriptor.Descriptor(
- name='PbSendMsgResp',
- full_name='msf.msg.svc.PbSendMsgResp',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='result', full_name='msf.msg.svc.PbSendMsgResp.result', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='errmsg', full_name='msf.msg.svc.PbSendMsgResp.errmsg', index=1,
- number=2, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='send_time', full_name='msf.msg.svc.PbSendMsgResp.send_time', index=2,
- number=3, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='svrbusy_wait_time', full_name='msf.msg.svc.PbSendMsgResp.svrbusy_wait_time', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='send_info', full_name='msf.msg.svc.PbSendMsgResp.send_info', index=4,
- number=5, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='errtype', full_name='msf.msg.svc.PbSendMsgResp.errtype', index=5,
- number=6, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='trans_svr_info', full_name='msf.msg.svc.PbSendMsgResp.trans_svr_info', index=6,
- number=7, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='receipt_resp', full_name='msf.msg.svc.PbSendMsgResp.receipt_resp', index=7,
- number=8, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='text_analysis_result', full_name='msf.msg.svc.PbSendMsgResp.text_analysis_result', index=8,
- number=9, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='msg_info_flag', full_name='msf.msg.svc.PbSendMsgResp.msg_info_flag', index=9,
- number=10, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=8368,
- serialized_end=8678,
-)
-
-
-_PBTHIRDQQUNREADMSGNUMREQ = _descriptor.Descriptor(
- name='PbThirdQQUnReadMsgNumReq',
- full_name='msf.msg.svc.PbThirdQQUnReadMsgNumReq',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='thirdqq_req_info', full_name='msf.msg.svc.PbThirdQQUnReadMsgNumReq.thirdqq_req_info', index=0,
- number=1, type=11, cpp_type=10, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='source', full_name='msf.msg.svc.PbThirdQQUnReadMsgNumReq.source', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=8680,
- serialized_end=8777,
-)
-
-
-_THIRDQQREQINFO = _descriptor.Descriptor(
- name='ThirdQQReqInfo',
- full_name='msf.msg.svc.ThirdQQReqInfo',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='third_uin', full_name='msf.msg.svc.ThirdQQReqInfo.third_uin', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='third_uin_sig', full_name='msf.msg.svc.ThirdQQReqInfo.third_uin_sig', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='third_uin_cookie', full_name='msf.msg.svc.ThirdQQReqInfo.third_uin_cookie', index=2,
- number=3, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=8779,
- serialized_end=8863,
-)
-
-
-_PBTHIRDQQUNREADMSGNUMRESP = _descriptor.Descriptor(
- name='PbThirdQQUnReadMsgNumResp',
- full_name='msf.msg.svc.PbThirdQQUnReadMsgNumResp',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='result', full_name='msf.msg.svc.PbThirdQQUnReadMsgNumResp.result', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='errmsg', full_name='msf.msg.svc.PbThirdQQUnReadMsgNumResp.errmsg', index=1,
- number=2, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='thirdqq_resp_info', full_name='msf.msg.svc.PbThirdQQUnReadMsgNumResp.thirdqq_resp_info', index=2,
- number=3, type=11, cpp_type=10, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='interval', full_name='msf.msg.svc.PbThirdQQUnReadMsgNumResp.interval', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=8866,
- serialized_end=9000,
-)
-
-
-_THIRDQQRESPINFO = _descriptor.Descriptor(
- name='ThirdQQRespInfo',
- full_name='msf.msg.svc.ThirdQQRespInfo',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='third_uin', full_name='msf.msg.svc.ThirdQQRespInfo.third_uin', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='third_uin_cookie', full_name='msf.msg.svc.ThirdQQRespInfo.third_uin_cookie', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='num', full_name='msf.msg.svc.ThirdQQRespInfo.num', index=2,
- number=3, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='flag', full_name='msf.msg.svc.ThirdQQRespInfo.flag', index=3,
- number=4, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='redbag_time', full_name='msf.msg.svc.ThirdQQRespInfo.redbag_time', index=4,
- number=5, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='status', full_name='msf.msg.svc.ThirdQQRespInfo.status', index=5,
- number=6, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='last_msg_time', full_name='msf.msg.svc.ThirdQQRespInfo.last_msg_time', index=6,
- number=7, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=9003,
- serialized_end=9152,
-)
-
-
-_PBUNREADMSGSEQREQ = _descriptor.Descriptor(
- name='PbUnReadMsgSeqReq',
- full_name='msf.msg.svc.PbUnReadMsgSeqReq',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='c2c_unread_info', full_name='msf.msg.svc.PbUnReadMsgSeqReq.c2c_unread_info', index=0,
- number=1, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='binduin_unread_info', full_name='msf.msg.svc.PbUnReadMsgSeqReq.binduin_unread_info', index=1,
- number=2, type=11, cpp_type=10, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='group_unread_info', full_name='msf.msg.svc.PbUnReadMsgSeqReq.group_unread_info', index=2,
- number=3, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='discuss_unread_info', full_name='msf.msg.svc.PbUnReadMsgSeqReq.discuss_unread_info', index=3,
- number=4, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='thirdqq_unread_info', full_name='msf.msg.svc.PbUnReadMsgSeqReq.thirdqq_unread_info', index=4,
- number=5, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=9155,
- serialized_end=9498,
-)
-
-
-_PBUNREADMSGSEQRESP = _descriptor.Descriptor(
- name='PbUnReadMsgSeqResp',
- full_name='msf.msg.svc.PbUnReadMsgSeqResp',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='c2c_unread_info', full_name='msf.msg.svc.PbUnReadMsgSeqResp.c2c_unread_info', index=0,
- number=1, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='binduin_unread_info', full_name='msf.msg.svc.PbUnReadMsgSeqResp.binduin_unread_info', index=1,
- number=2, type=11, cpp_type=10, label=3,
- has_default_value=False, default_value=[],
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='group_unread_info', full_name='msf.msg.svc.PbUnReadMsgSeqResp.group_unread_info', index=2,
- number=3, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='discuss_unread_info', full_name='msf.msg.svc.PbUnReadMsgSeqResp.discuss_unread_info', index=3,
- number=4, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='thirdqq_unread_info', full_name='msf.msg.svc.PbUnReadMsgSeqResp.thirdqq_unread_info', index=4,
- number=5, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=9501,
- serialized_end=9850,
-)
-
-
-_PUBGROUPTMP = _descriptor.Descriptor(
- name='PubGroupTmp',
- full_name='msf.msg.svc.PubGroupTmp',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='to_uin', full_name='msf.msg.svc.PubGroupTmp.to_uin', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='sig', full_name='msf.msg.svc.PubGroupTmp.sig', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='group_uin', full_name='msf.msg.svc.PubGroupTmp.group_uin', index=2,
- number=3, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=9852,
- serialized_end=9913,
-)
-
-
-_PUBLICPLAT = _descriptor.Descriptor(
- name='PublicPlat',
- full_name='msf.msg.svc.PublicPlat',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='to_uin', full_name='msf.msg.svc.PublicPlat.to_uin', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='sig', full_name='msf.msg.svc.PublicPlat.sig', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=9915,
- serialized_end=9956,
-)
-
-
-_QQQUERYBUSINESSTMP = _descriptor.Descriptor(
- name='QQQueryBusinessTmp',
- full_name='msf.msg.svc.QQQueryBusinessTmp',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='to_uin', full_name='msf.msg.svc.QQQueryBusinessTmp.to_uin', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='sig', full_name='msf.msg.svc.QQQueryBusinessTmp.sig', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=9958,
- serialized_end=10007,
-)
-
-
-_RICHSTATUSTMP = _descriptor.Descriptor(
- name='RichStatusTmp',
- full_name='msf.msg.svc.RichStatusTmp',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='to_uin', full_name='msf.msg.svc.RichStatusTmp.to_uin', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='sig', full_name='msf.msg.svc.RichStatusTmp.sig', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=10009,
- serialized_end=10053,
-)
-
-
-_ROUTINGHEAD = _descriptor.Descriptor(
- name='RoutingHead',
- full_name='msf.msg.svc.RoutingHead',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='c2c', full_name='msf.msg.svc.RoutingHead.c2c', index=0,
- number=1, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='grp', full_name='msf.msg.svc.RoutingHead.grp', index=1,
- number=2, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='grp_tmp', full_name='msf.msg.svc.RoutingHead.grp_tmp', index=2,
- number=3, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='dis', full_name='msf.msg.svc.RoutingHead.dis', index=3,
- number=4, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='dis_tmp', full_name='msf.msg.svc.RoutingHead.dis_tmp', index=4,
- number=5, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='wpa_tmp', full_name='msf.msg.svc.RoutingHead.wpa_tmp', index=5,
- number=6, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='public_plat', full_name='msf.msg.svc.RoutingHead.public_plat', index=6,
- number=8, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='trans_msg', full_name='msf.msg.svc.RoutingHead.trans_msg', index=7,
- number=9, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='address_list', full_name='msf.msg.svc.RoutingHead.address_list', index=8,
- number=10, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='rich_status_tmp', full_name='msf.msg.svc.RoutingHead.rich_status_tmp', index=9,
- number=11, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='trans_cmd', full_name='msf.msg.svc.RoutingHead.trans_cmd', index=10,
- number=12, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='accost_tmp', full_name='msf.msg.svc.RoutingHead.accost_tmp', index=11,
- number=13, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='pub_group_tmp', full_name='msf.msg.svc.RoutingHead.pub_group_tmp', index=12,
- number=14, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='trans_0_x211', full_name='msf.msg.svc.RoutingHead.trans_0_x211', index=13,
- number=15, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='business_wpa_tmp', full_name='msf.msg.svc.RoutingHead.business_wpa_tmp', index=14,
- number=16, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='auth_tmp', full_name='msf.msg.svc.RoutingHead.auth_tmp', index=15,
- number=17, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='bsns_tmp', full_name='msf.msg.svc.RoutingHead.bsns_tmp', index=16,
- number=18, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='qq_querybusiness_tmp', full_name='msf.msg.svc.RoutingHead.qq_querybusiness_tmp', index=17,
- number=19, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='nearby_dating_tmp', full_name='msf.msg.svc.RoutingHead.nearby_dating_tmp', index=18,
- number=20, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='nearby_assistant_tmp', full_name='msf.msg.svc.RoutingHead.nearby_assistant_tmp', index=19,
- number=21, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='comm_tmp', full_name='msf.msg.svc.RoutingHead.comm_tmp', index=20,
- number=22, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=10056,
- serialized_end=11008,
-)
-
-
-_TRANS0X211 = _descriptor.Descriptor(
- name='Trans0x211',
- full_name='msf.msg.svc.Trans0x211',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='to_uin', full_name='msf.msg.svc.Trans0x211.to_uin', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='cc_cmd', full_name='msf.msg.svc.Trans0x211.cc_cmd', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='inst_ctrl', full_name='msf.msg.svc.Trans0x211.inst_ctrl', index=2,
- number=3, type=11, cpp_type=10, label=1,
- has_default_value=False, default_value=None,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='sig', full_name='msf.msg.svc.Trans0x211.sig', index=3,
- number=4, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='c2c_type', full_name='msf.msg.svc.Trans0x211.c2c_type', index=4,
- number=5, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='service_type', full_name='msf.msg.svc.Trans0x211.service_type', index=5,
- number=6, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='dataline_flag', full_name='msf.msg.svc.Trans0x211.dataline_flag', index=6,
- number=7, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=11011,
- serialized_end=11177,
-)
-
-
-_TRANSCMD = _descriptor.Descriptor(
- name='TransCmd',
- full_name='msf.msg.svc.TransCmd',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='to_uin', full_name='msf.msg.svc.TransCmd.to_uin', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='type', full_name='msf.msg.svc.TransCmd.type', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=11179,
- serialized_end=11219,
-)
-
-
-_TRANSMSG = _descriptor.Descriptor(
- name='TransMsg',
- full_name='msf.msg.svc.TransMsg',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='to_uin', full_name='msf.msg.svc.TransMsg.to_uin', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='c2c_cmd', full_name='msf.msg.svc.TransMsg.c2c_cmd', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=11221,
- serialized_end=11264,
-)
-
-
-_TRANSREQ = _descriptor.Descriptor(
- name='TransReq',
- full_name='msf.msg.svc.TransReq',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='command', full_name='msf.msg.svc.TransReq.command', index=0,
- number=1, type=5, cpp_type=1, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='req_tag', full_name='msf.msg.svc.TransReq.req_tag', index=1,
- number=2, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='req_buff', full_name='msf.msg.svc.TransReq.req_buff', index=2,
- number=3, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=11266,
- serialized_end=11328,
-)
-
-
-_TRANSRESP = _descriptor.Descriptor(
- name='TransResp',
- full_name='msf.msg.svc.TransResp',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='result', full_name='msf.msg.svc.TransResp.result', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='errmsg', full_name='msf.msg.svc.TransResp.errmsg', index=1,
- number=2, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='resp_tag', full_name='msf.msg.svc.TransResp.resp_tag', index=2,
- number=3, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='resp_buff', full_name='msf.msg.svc.TransResp.resp_buff', index=3,
- number=4, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=11330,
- serialized_end=11410,
-)
-
-
-_TRANSSVRINFO = _descriptor.Descriptor(
- name='TransSvrInfo',
- full_name='msf.msg.svc.TransSvrInfo',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='sub_type', full_name='msf.msg.svc.TransSvrInfo.sub_type', index=0,
- number=1, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='ret_code', full_name='msf.msg.svc.TransSvrInfo.ret_code', index=1,
- number=2, type=5, cpp_type=1, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='err_msg', full_name='msf.msg.svc.TransSvrInfo.err_msg', index=2,
- number=3, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='trans_info', full_name='msf.msg.svc.TransSvrInfo.trans_info', index=3,
- number=4, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=11412,
- serialized_end=11499,
-)
-
-
-_WPATMP = _descriptor.Descriptor(
- name='WPATmp',
- full_name='msf.msg.svc.WPATmp',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='to_uin', full_name='msf.msg.svc.WPATmp.to_uin', index=0,
- number=1, type=4, cpp_type=4, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='sig', full_name='msf.msg.svc.WPATmp.sig', index=1,
- number=2, type=12, cpp_type=9, label=1,
- has_default_value=False, default_value=b"",
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=11501,
- serialized_end=11538,
-)
-
-
-_WITHDRAWWORDINGINFO = _descriptor.Descriptor(
- name='WithDrawWordingInfo',
- full_name='msf.msg.svc.WithDrawWordingInfo',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='item_id', full_name='msf.msg.svc.WithDrawWordingInfo.item_id', index=0,
- number=1, type=5, cpp_type=1, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='item_name', full_name='msf.msg.svc.WithDrawWordingInfo.item_name', index=1,
- number=2, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=11540,
- serialized_end=11597,
-)
-
-_MULTIMSGASSIST.fields_by_name['repeated_routing'].message_type = _ROUTINGHEAD
-_PBC2CMSGWITHDRAWREQ_MSGINFO.fields_by_name['routing_head'].message_type = _ROUTINGHEAD
-_PBC2CMSGWITHDRAWREQ_MSGINFO.containing_type = _PBC2CMSGWITHDRAWREQ
-_PBC2CMSGWITHDRAWREQ.fields_by_name['info'].message_type = _PBC2CMSGWITHDRAWREQ_MSGINFO
-_PBC2CMSGWITHDRAWRESP.fields_by_name['status'].message_type = _MSGSTATUS
-_PBC2CMSGWITHDRAWRESP.fields_by_name['wording_info'].message_type = _WITHDRAWWORDINGINFO
-_MSGSTATUS.fields_by_name['info'].message_type = _PBC2CMSGWITHDRAWREQ_MSGINFO
-_PBC2CREADEDREPORTREQ.fields_by_name['pair_info'].message_type = _UINPAIRREADINFO
-_PBDELROAMMSGREQ.fields_by_name['c2c_msg'].message_type = _C2CMSG
-_PBDELROAMMSGREQ.fields_by_name['grp_msg'].message_type = _GRPMSG
-_PBDELROAMMSGREQ.fields_by_name['dis_msg'].message_type = _DISMSG
-_PBDELETEMSGREQ_MSGITEM.containing_type = _PBDELETEMSGREQ
-_PBDELETEMSGREQ.fields_by_name['msg_items'].message_type = _PBDELETEMSGREQ_MSGITEM
-_PBGETDISCUSSMSGRESP.fields_by_name['msg'].message_type = cai_dot_pb_dot_msf_dot_msg_dot_comm_dot_comm__pb2._MSG
-_PBGETGROUPMSGRESP.fields_by_name['msg'].message_type = cai_dot_pb_dot_msf_dot_msg_dot_comm_dot_comm__pb2._MSG
-_PBGETMSGRESP.fields_by_name['uin_pair_msgs'].message_type = cai_dot_pb_dot_msf_dot_msg_dot_comm_dot_comm__pb2._UINPAIRMSG
-_PBGETONEDAYROAMMSGRESP.fields_by_name['msg'].message_type = cai_dot_pb_dot_msf_dot_msg_dot_comm_dot_comm__pb2._MSG
-_PBGETROAMMSGRESP.fields_by_name['msg'].message_type = cai_dot_pb_dot_msf_dot_msg_dot_comm_dot_comm__pb2._MSG
-_PBGROUPMSGWITHDRAWREQ.fields_by_name['list'].message_type = _MESSAGEINFO
-_PBGROUPMSGWITHDRAWRESP.fields_by_name['failed_msg_list'].message_type = _MESSAGERESULT
-_PBGROUPMSGWITHDRAWRESP.fields_by_name['wording_info'].message_type = _WITHDRAWWORDINGINFO
-_PBMSGREADEDREPORTREQ.fields_by_name['grp_read_report'].message_type = _PBGROUPREADEDREPORTREQ
-_PBMSGREADEDREPORTREQ.fields_by_name['dis_read_report'].message_type = _PBDISCUSSREADEDREPORTREQ
-_PBMSGREADEDREPORTREQ.fields_by_name['c2c_read_report'].message_type = _PBC2CREADEDREPORTREQ
-_PBMSGREADEDREPORTREQ.fields_by_name['bind_uin_read_report'].message_type = _PBBINDUINMSGREADEDCONFIRMREQ
-_PBMSGREADEDREPORTRESP.fields_by_name['grp_read_report'].message_type = _PBGROUPREADEDREPORTRESP
-_PBMSGREADEDREPORTRESP.fields_by_name['dis_read_report'].message_type = _PBDISCUSSREADEDREPORTRESP
-_PBMSGREADEDREPORTRESP.fields_by_name['c2c_read_report'].message_type = _PBC2CREADEDREPORTRESP
-_PBMSGREADEDREPORTRESP.fields_by_name['bind_uin_read_report'].message_type = _PBBINDUINMSGREADEDCONFIRMRESP
-_PBMSGWITHDRAWREQ.fields_by_name['c2c_with_draw'].message_type = _PBC2CMSGWITHDRAWREQ
-_PBMSGWITHDRAWREQ.fields_by_name['group_with_draw'].message_type = _PBGROUPMSGWITHDRAWREQ
-_PBMSGWITHDRAWRESP.fields_by_name['c2c_with_draw'].message_type = _PBC2CMSGWITHDRAWRESP
-_PBMSGWITHDRAWRESP.fields_by_name['group_with_draw'].message_type = _PBGROUPMSGWITHDRAWRESP
-_PBPULLDISCUSSMSGSEQREQ.fields_by_name['discuss_info_req'].message_type = _DISCUSSINFOREQ
-_PBPULLDISCUSSMSGSEQRESP.fields_by_name['discuss_info_resp'].message_type = _DISCUSSINFORESP
-_PBPULLGROUPMSGSEQREQ.fields_by_name['group_info_req'].message_type = _GROUPINFOREQ
-_PBPULLGROUPMSGSEQRESP.fields_by_name['group_info_resp'].message_type = _GROUPINFORESP
-_PBSEARCHROAMMSGINCLOUDRESP.fields_by_name['msg'].message_type = cai_dot_pb_dot_msf_dot_msg_dot_comm_dot_comm__pb2._MSG
-_PBSENDMSGREQ.fields_by_name['routing_head'].message_type = _ROUTINGHEAD
-_PBSENDMSGREQ.fields_by_name['content_head'].message_type = cai_dot_pb_dot_msf_dot_msg_dot_comm_dot_comm__pb2._CONTENTHEAD
-_PBSENDMSGREQ.fields_by_name['body'].message_type = cai_dot_pb_dot_im_dot_msg_dot_msg__body_dot_msg__body__pb2._MSGBODY
-_PBSENDMSGREQ.fields_by_name['app_share'].message_type = cai_dot_pb_dot_msf_dot_msg_dot_comm_dot_comm__pb2._APPSHAREINFO
-_PBSENDMSGREQ.fields_by_name['multi_msg_assist'].message_type = _MULTIMSGASSIST
-_PBSENDMSGREQ.fields_by_name['input_notify_info'].message_type = _PBINPUTNOTIFYINFO
-_PBSENDMSGREQ.fields_by_name['ctrl'].message_type = cai_dot_pb_dot_msf_dot_msg_dot_ctrl_dot_ctrl__pb2._MSGCTRL
-_PBSENDMSGREQ.fields_by_name['receipt_req'].message_type = cai_dot_pb_dot_im_dot_msg_dot_receipt_dot_receipt__pb2._RECEIPTREQ
-_PBSENDMSGRESP.fields_by_name['send_info'].message_type = _MSGSENDINFO
-_PBSENDMSGRESP.fields_by_name['trans_svr_info'].message_type = _TRANSSVRINFO
-_PBSENDMSGRESP.fields_by_name['receipt_resp'].message_type = cai_dot_pb_dot_im_dot_msg_dot_receipt_dot_receipt__pb2._RECEIPTRESP
-_PBTHIRDQQUNREADMSGNUMREQ.fields_by_name['thirdqq_req_info'].message_type = _THIRDQQREQINFO
-_PBTHIRDQQUNREADMSGNUMRESP.fields_by_name['thirdqq_resp_info'].message_type = _THIRDQQRESPINFO
-_PBUNREADMSGSEQREQ.fields_by_name['c2c_unread_info'].message_type = _PBC2CUNREADMSGNUMREQ
-_PBUNREADMSGSEQREQ.fields_by_name['binduin_unread_info'].message_type = _PBBINDUINUNREADMSGNUMREQ
-_PBUNREADMSGSEQREQ.fields_by_name['group_unread_info'].message_type = _PBPULLGROUPMSGSEQREQ
-_PBUNREADMSGSEQREQ.fields_by_name['discuss_unread_info'].message_type = _PBPULLDISCUSSMSGSEQREQ
-_PBUNREADMSGSEQREQ.fields_by_name['thirdqq_unread_info'].message_type = _PBTHIRDQQUNREADMSGNUMREQ
-_PBUNREADMSGSEQRESP.fields_by_name['c2c_unread_info'].message_type = _PBC2CUNREADMSGNUMRESP
-_PBUNREADMSGSEQRESP.fields_by_name['binduin_unread_info'].message_type = _PBBINDUINUNREADMSGNUMRESP
-_PBUNREADMSGSEQRESP.fields_by_name['group_unread_info'].message_type = _PBPULLGROUPMSGSEQRESP
-_PBUNREADMSGSEQRESP.fields_by_name['discuss_unread_info'].message_type = _PBPULLDISCUSSMSGSEQRESP
-_PBUNREADMSGSEQRESP.fields_by_name['thirdqq_unread_info'].message_type = _PBTHIRDQQUNREADMSGNUMRESP
-_ROUTINGHEAD.fields_by_name['c2c'].message_type = _C2C
-_ROUTINGHEAD.fields_by_name['grp'].message_type = _GRP
-_ROUTINGHEAD.fields_by_name['grp_tmp'].message_type = _GRPTMP
-_ROUTINGHEAD.fields_by_name['dis'].message_type = _DIS
-_ROUTINGHEAD.fields_by_name['dis_tmp'].message_type = _DISTMP
-_ROUTINGHEAD.fields_by_name['wpa_tmp'].message_type = _WPATMP
-_ROUTINGHEAD.fields_by_name['public_plat'].message_type = _PUBLICPLAT
-_ROUTINGHEAD.fields_by_name['trans_msg'].message_type = _TRANSMSG
-_ROUTINGHEAD.fields_by_name['address_list'].message_type = _ADDRESSLISTTMP
-_ROUTINGHEAD.fields_by_name['rich_status_tmp'].message_type = _RICHSTATUSTMP
-_ROUTINGHEAD.fields_by_name['trans_cmd'].message_type = _TRANSCMD
-_ROUTINGHEAD.fields_by_name['accost_tmp'].message_type = _ACCOSTTMP
-_ROUTINGHEAD.fields_by_name['pub_group_tmp'].message_type = _PUBGROUPTMP
-_ROUTINGHEAD.fields_by_name['trans_0_x211'].message_type = _TRANS0X211
-_ROUTINGHEAD.fields_by_name['business_wpa_tmp'].message_type = _BUSINESSWPATMP
-_ROUTINGHEAD.fields_by_name['auth_tmp'].message_type = _AUTHTMP
-_ROUTINGHEAD.fields_by_name['bsns_tmp'].message_type = _BSNSTMP
-_ROUTINGHEAD.fields_by_name['qq_querybusiness_tmp'].message_type = _QQQUERYBUSINESSTMP
-_ROUTINGHEAD.fields_by_name['nearby_dating_tmp'].message_type = _NEARBYDATINGTMP
-_ROUTINGHEAD.fields_by_name['nearby_assistant_tmp'].message_type = _NEARBYASSISTANTTMP
-_ROUTINGHEAD.fields_by_name['comm_tmp'].message_type = _COMMTMP
-_TRANS0X211.fields_by_name['inst_ctrl'].message_type = cai_dot_pb_dot_im_dot_msg_dot_msg__head_dot_msg__head__pb2._INSTCTRL
-DESCRIPTOR.message_types_by_name['AccostTmp'] = _ACCOSTTMP
-DESCRIPTOR.message_types_by_name['AddressListTmp'] = _ADDRESSLISTTMP
-DESCRIPTOR.message_types_by_name['AuthTmp'] = _AUTHTMP
-DESCRIPTOR.message_types_by_name['BsnsTmp'] = _BSNSTMP
-DESCRIPTOR.message_types_by_name['BusinessWPATmp'] = _BUSINESSWPATMP
-DESCRIPTOR.message_types_by_name['C2C'] = _C2C
-DESCRIPTOR.message_types_by_name['CommTmp'] = _COMMTMP
-DESCRIPTOR.message_types_by_name['Dis'] = _DIS
-DESCRIPTOR.message_types_by_name['DisTmp'] = _DISTMP
-DESCRIPTOR.message_types_by_name['Grp'] = _GRP
-DESCRIPTOR.message_types_by_name['GrpTmp'] = _GRPTMP
-DESCRIPTOR.message_types_by_name['MsgSendInfo'] = _MSGSENDINFO
-DESCRIPTOR.message_types_by_name['MultiMsgAssist'] = _MULTIMSGASSIST
-DESCRIPTOR.message_types_by_name['NearByAssistantTmp'] = _NEARBYASSISTANTTMP
-DESCRIPTOR.message_types_by_name['NearByDatingTmp'] = _NEARBYDATINGTMP
-DESCRIPTOR.message_types_by_name['PbBindUinGetMsgReq'] = _PBBINDUINGETMSGREQ
-DESCRIPTOR.message_types_by_name['PbBindUinMsgReadedConfirmReq'] = _PBBINDUINMSGREADEDCONFIRMREQ
-DESCRIPTOR.message_types_by_name['PbBindUinMsgReadedConfirmResp'] = _PBBINDUINMSGREADEDCONFIRMRESP
-DESCRIPTOR.message_types_by_name['PbBindUinUnReadMsgNumReq'] = _PBBINDUINUNREADMSGNUMREQ
-DESCRIPTOR.message_types_by_name['PbBindUinUnReadMsgNumResp'] = _PBBINDUINUNREADMSGNUMRESP
-DESCRIPTOR.message_types_by_name['PbC2CMsgWithDrawReq'] = _PBC2CMSGWITHDRAWREQ
-DESCRIPTOR.message_types_by_name['PbC2CMsgWithDrawResp'] = _PBC2CMSGWITHDRAWRESP
-DESCRIPTOR.message_types_by_name['MsgStatus'] = _MSGSTATUS
-DESCRIPTOR.message_types_by_name['PbC2CReadedReportReq'] = _PBC2CREADEDREPORTREQ
-DESCRIPTOR.message_types_by_name['UinPairReadInfo'] = _UINPAIRREADINFO
-DESCRIPTOR.message_types_by_name['PbC2CReadedReportResp'] = _PBC2CREADEDREPORTRESP
-DESCRIPTOR.message_types_by_name['PbC2CUnReadMsgNumReq'] = _PBC2CUNREADMSGNUMREQ
-DESCRIPTOR.message_types_by_name['PbC2CUnReadMsgNumResp'] = _PBC2CUNREADMSGNUMRESP
-DESCRIPTOR.message_types_by_name['PbDelRoamMsgReq'] = _PBDELROAMMSGREQ
-DESCRIPTOR.message_types_by_name['C2CMsg'] = _C2CMSG
-DESCRIPTOR.message_types_by_name['DisMsg'] = _DISMSG
-DESCRIPTOR.message_types_by_name['GrpMsg'] = _GRPMSG
-DESCRIPTOR.message_types_by_name['PbDelRoamMsgResp'] = _PBDELROAMMSGRESP
-DESCRIPTOR.message_types_by_name['PbDeleteMsgReq'] = _PBDELETEMSGREQ
-DESCRIPTOR.message_types_by_name['PbDeleteMsgResp'] = _PBDELETEMSGRESP
-DESCRIPTOR.message_types_by_name['PbDiscussReadedReportReq'] = _PBDISCUSSREADEDREPORTREQ
-DESCRIPTOR.message_types_by_name['PbDiscussReadedReportResp'] = _PBDISCUSSREADEDREPORTRESP
-DESCRIPTOR.message_types_by_name['PbGetDiscussMsgReq'] = _PBGETDISCUSSMSGREQ
-DESCRIPTOR.message_types_by_name['PbGetDiscussMsgResp'] = _PBGETDISCUSSMSGRESP
-DESCRIPTOR.message_types_by_name['PbGetGroupMsgReq'] = _PBGETGROUPMSGREQ
-DESCRIPTOR.message_types_by_name['PbGetGroupMsgResp'] = _PBGETGROUPMSGRESP
-DESCRIPTOR.message_types_by_name['PbGetMsgReq'] = _PBGETMSGREQ
-DESCRIPTOR.message_types_by_name['PbGetMsgResp'] = _PBGETMSGRESP
-DESCRIPTOR.message_types_by_name['PbGetOneDayRoamMsgReq'] = _PBGETONEDAYROAMMSGREQ
-DESCRIPTOR.message_types_by_name['PbGetOneDayRoamMsgResp'] = _PBGETONEDAYROAMMSGRESP
-DESCRIPTOR.message_types_by_name['PbGetRoamMsgReq'] = _PBGETROAMMSGREQ
-DESCRIPTOR.message_types_by_name['PbGetRoamMsgResp'] = _PBGETROAMMSGRESP
-DESCRIPTOR.message_types_by_name['PbGroupMsgWithDrawReq'] = _PBGROUPMSGWITHDRAWREQ
-DESCRIPTOR.message_types_by_name['MessageInfo'] = _MESSAGEINFO
-DESCRIPTOR.message_types_by_name['PbGroupMsgWithDrawResp'] = _PBGROUPMSGWITHDRAWRESP
-DESCRIPTOR.message_types_by_name['MessageResult'] = _MESSAGERESULT
-DESCRIPTOR.message_types_by_name['PbGroupReadedReportReq'] = _PBGROUPREADEDREPORTREQ
-DESCRIPTOR.message_types_by_name['PbGroupReadedReportResp'] = _PBGROUPREADEDREPORTRESP
-DESCRIPTOR.message_types_by_name['PbInputNotifyInfo'] = _PBINPUTNOTIFYINFO
-DESCRIPTOR.message_types_by_name['PbMsgReadedReportReq'] = _PBMSGREADEDREPORTREQ
-DESCRIPTOR.message_types_by_name['PbMsgReadedReportResp'] = _PBMSGREADEDREPORTRESP
-DESCRIPTOR.message_types_by_name['PbMsgWithDrawReq'] = _PBMSGWITHDRAWREQ
-DESCRIPTOR.message_types_by_name['PbMsgWithDrawResp'] = _PBMSGWITHDRAWRESP
-DESCRIPTOR.message_types_by_name['PbPullDiscussMsgSeqReq'] = _PBPULLDISCUSSMSGSEQREQ
-DESCRIPTOR.message_types_by_name['DiscussInfoReq'] = _DISCUSSINFOREQ
-DESCRIPTOR.message_types_by_name['PbPullDiscussMsgSeqResp'] = _PBPULLDISCUSSMSGSEQRESP
-DESCRIPTOR.message_types_by_name['DiscussInfoResp'] = _DISCUSSINFORESP
-DESCRIPTOR.message_types_by_name['PbPullGroupMsgSeqReq'] = _PBPULLGROUPMSGSEQREQ
-DESCRIPTOR.message_types_by_name['GroupInfoReq'] = _GROUPINFOREQ
-DESCRIPTOR.message_types_by_name['PbPullGroupMsgSeqResp'] = _PBPULLGROUPMSGSEQRESP
-DESCRIPTOR.message_types_by_name['GroupInfoResp'] = _GROUPINFORESP
-DESCRIPTOR.message_types_by_name['PbSearchRoamMsgInCloudReq'] = _PBSEARCHROAMMSGINCLOUDREQ
-DESCRIPTOR.message_types_by_name['PbSearchRoamMsgInCloudResp'] = _PBSEARCHROAMMSGINCLOUDRESP
-DESCRIPTOR.message_types_by_name['PbSendMsgReq'] = _PBSENDMSGREQ
-DESCRIPTOR.message_types_by_name['PbSendMsgResp'] = _PBSENDMSGRESP
-DESCRIPTOR.message_types_by_name['PbThirdQQUnReadMsgNumReq'] = _PBTHIRDQQUNREADMSGNUMREQ
-DESCRIPTOR.message_types_by_name['ThirdQQReqInfo'] = _THIRDQQREQINFO
-DESCRIPTOR.message_types_by_name['PbThirdQQUnReadMsgNumResp'] = _PBTHIRDQQUNREADMSGNUMRESP
-DESCRIPTOR.message_types_by_name['ThirdQQRespInfo'] = _THIRDQQRESPINFO
-DESCRIPTOR.message_types_by_name['PbUnReadMsgSeqReq'] = _PBUNREADMSGSEQREQ
-DESCRIPTOR.message_types_by_name['PbUnReadMsgSeqResp'] = _PBUNREADMSGSEQRESP
-DESCRIPTOR.message_types_by_name['PubGroupTmp'] = _PUBGROUPTMP
-DESCRIPTOR.message_types_by_name['PublicPlat'] = _PUBLICPLAT
-DESCRIPTOR.message_types_by_name['QQQueryBusinessTmp'] = _QQQUERYBUSINESSTMP
-DESCRIPTOR.message_types_by_name['RichStatusTmp'] = _RICHSTATUSTMP
-DESCRIPTOR.message_types_by_name['RoutingHead'] = _ROUTINGHEAD
-DESCRIPTOR.message_types_by_name['Trans0x211'] = _TRANS0X211
-DESCRIPTOR.message_types_by_name['TransCmd'] = _TRANSCMD
-DESCRIPTOR.message_types_by_name['TransMsg'] = _TRANSMSG
-DESCRIPTOR.message_types_by_name['TransReq'] = _TRANSREQ
-DESCRIPTOR.message_types_by_name['TransResp'] = _TRANSRESP
-DESCRIPTOR.message_types_by_name['TransSvrInfo'] = _TRANSSVRINFO
-DESCRIPTOR.message_types_by_name['WPATmp'] = _WPATMP
-DESCRIPTOR.message_types_by_name['WithDrawWordingInfo'] = _WITHDRAWWORDINGINFO
-_sym_db.RegisterFileDescriptor(DESCRIPTOR)
-
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x63\x61i/pb/msf/msg/svc/svc.proto\x12\x0bmsf.msg.svc\x1a\x1e\x63\x61i/pb/msf/msg/comm/comm.proto\x1a\x1e\x63\x61i/pb/msf/msg/ctrl/ctrl.proto\x1a%cai/pb/im/msg/msg_body/msg_body.proto\x1a%cai/pb/im/msg/msg_head/msg_head.proto\x1a#cai/pb/im/msg/receipt/receipt.proto\"7\n\tAccostTmp\x12\x0e\n\x06to_uin\x18\x01 \x01(\x04\x12\x0b\n\x03sig\x18\x02 \x01(\x0c\x12\r\n\x05reply\x18\x03 \x01(\x08\"n\n\x0e\x41\x64\x64ressListTmp\x12\x12\n\nfrom_phone\x18\x01 \x01(\t\x12\x10\n\x08to_phone\x18\x02 \x01(\t\x12\x0e\n\x06to_uin\x18\x03 \x01(\x04\x12\x0b\n\x03sig\x18\x04 \x01(\x0c\x12\x19\n\x11\x66rom_contact_size\x18\x05 \x01(\r\"&\n\x07\x41uthTmp\x12\x0e\n\x06to_uin\x18\x01 \x01(\x04\x12\x0b\n\x03sig\x18\x02 \x01(\x0c\"&\n\x07\x42snsTmp\x12\x0e\n\x06to_uin\x18\x01 \x01(\x04\x12\x0b\n\x03sig\x18\x02 \x01(\x0c\";\n\x0e\x42usinessWPATmp\x12\x0e\n\x06to_uin\x18\x01 \x01(\x04\x12\x0b\n\x03sig\x18\x02 \x01(\x0c\x12\x0c\n\x04sigt\x18\x03 \x01(\x0c\"\x15\n\x03\x43\x32\x43\x12\x0e\n\x06to_uin\x18\x01 \x01(\x04\"\\\n\x07\x43ommTmp\x12\x0e\n\x06to_uin\x18\x01 \x01(\x04\x12\x10\n\x08\x63\x32\x63_type\x18\x02 \x01(\r\x12\x10\n\x08svr_type\x18\x03 \x01(\r\x12\x0b\n\x03sig\x18\x04 \x01(\x0c\x12\x10\n\x08reserved\x18\x05 \x01(\x0c\"\x16\n\x03\x44is\x12\x0f\n\x07\x64is_uin\x18\x01 \x01(\x04\")\n\x06\x44isTmp\x12\x0f\n\x07\x64is_uin\x18\x01 \x01(\x04\x12\x0e\n\x06to_uin\x18\x02 \x01(\x04\"\x19\n\x03Grp\x12\x12\n\ngroup_code\x18\x01 \x01(\x04\"+\n\x06GrpTmp\x12\x11\n\tgroup_uin\x18\x01 \x01(\x04\x12\x0e\n\x06to_uin\x18\x02 \x01(\x04\"\x1f\n\x0bMsgSendInfo\x12\x10\n\x08receiver\x18\x01 \x01(\r\"\xc7\x01\n\x0eMultiMsgAssist\x12\x32\n\x10repeated_routing\x18\x01 \x03(\x0b\x32\x18.msf.msg.svc.RoutingHead\x12\x0b\n\x03use\x18\x02 \x01(\r\x12\x0f\n\x07temp_id\x18\x03 \x01(\x04\x12\x11\n\tvedio_len\x18\x04 \x01(\x04\x12\x11\n\tredbag_id\x18\x05 \x01(\x0c\x12\x15\n\rredbag_amount\x18\x06 \x01(\x04\x12\x13\n\x0bhas_readbag\x18\x07 \x01(\r\x12\x11\n\thas_vedio\x18\x08 \x01(\r\"@\n\x12NearByAssistantTmp\x12\x0e\n\x06to_uin\x18\x01 \x01(\x04\x12\x0b\n\x03sig\x18\x02 \x01(\x0c\x12\r\n\x05reply\x18\x03 \x01(\x08\"=\n\x0fNearByDatingTmp\x12\x0e\n\x06to_uin\x18\x01 \x01(\x04\x12\x0b\n\x03sig\x18\x02 \x01(\x0c\x12\r\n\x05reply\x18\x03 \x01(\x08\"d\n\x12PbBindUinGetMsgReq\x12\x10\n\x08\x62ind_uin\x18\x01 \x01(\x04\x12\x14\n\x0c\x62ind_uin_sig\x18\x02 \x01(\x0c\x12\x11\n\tsync_flag\x18\x03 \x01(\r\x12\x13\n\x0bsync_cookie\x18\x04 \x01(\x0c\"E\n\x1cPbBindUinMsgReadedConfirmReq\x12\x13\n\x0bsync_cookie\x18\x01 \x01(\x0c\x12\x10\n\x08\x62ind_uin\x18\x02 \x01(\x04\"f\n\x1dPbBindUinMsgReadedConfirmResp\x12\x0e\n\x06result\x18\x01 \x01(\r\x12\x0e\n\x06\x65rrmsg\x18\x02 \x01(\t\x12\x13\n\x0bsync_cookie\x18\x03 \x01(\x0c\x12\x10\n\x08\x62ind_uin\x18\x04 \x01(\x04\"A\n\x18PbBindUinUnReadMsgNumReq\x12\x10\n\x08\x62ind_uin\x18\x01 \x01(\x04\x12\x13\n\x0bsync_cookie\x18\x02 \x01(\x0c\"Z\n\x19PbBindUinUnReadMsgNumResp\x12\x0e\n\x06result\x18\x01 \x01(\r\x12\x0e\n\x06\x65rrmsg\x18\x02 \x01(\t\x12\x10\n\x08\x62ind_uin\x18\x03 \x01(\x04\x12\x0b\n\x03num\x18\x04 \x01(\r\"\xf8\x02\n\x13PbC2CMsgWithDrawReq\x12\x36\n\x04info\x18\x01 \x03(\x0b\x32(.msf.msg.svc.PbC2CMsgWithDrawReq.MsgInfo\x12\x19\n\x11long_message_flag\x18\x02 \x01(\r\x12\x10\n\x08reserved\x18\x03 \x01(\x0c\x12\x0f\n\x07sub_cmd\x18\x04 \x01(\r\x1a\xea\x01\n\x07MsgInfo\x12\x10\n\x08\x66rom_uin\x18\x01 \x01(\x04\x12\x0e\n\x06to_uin\x18\x02 \x01(\x04\x12\x0f\n\x07msg_seq\x18\x03 \x01(\r\x12\x0f\n\x07msg_uid\x18\x04 \x01(\x04\x12\x10\n\x08msg_time\x18\x05 \x01(\x04\x12\x12\n\nmsg_random\x18\x06 \x01(\r\x12\x0f\n\x07pkg_num\x18\x07 \x01(\r\x12\x11\n\tpkg_index\x18\x08 \x01(\r\x12\x0f\n\x07\x64iv_seq\x18\t \x01(\r\x12\x10\n\x08msg_type\x18\n \x01(\r\x12.\n\x0crouting_head\x18\x14 \x01(\x0b\x32\x18.msf.msg.svc.RoutingHead\"\xa7\x01\n\x14PbC2CMsgWithDrawResp\x12\x0e\n\x06result\x18\x01 \x01(\r\x12\x0e\n\x06\x65rrmsg\x18\x02 \x01(\t\x12&\n\x06status\x18\x03 \x03(\x0b\x32\x16.msf.msg.svc.MsgStatus\x12\x0f\n\x07sub_cmd\x18\x04 \x01(\r\x12\x36\n\x0cwording_info\x18\x05 \x01(\x0b\x32 .msf.msg.svc.WithDrawWordingInfo\"S\n\tMsgStatus\x12\x36\n\x04info\x18\x01 \x01(\x0b\x32(.msf.msg.svc.PbC2CMsgWithDrawReq.MsgInfo\x12\x0e\n\x06status\x18\x02 \x01(\r\"\\\n\x14PbC2CReadedReportReq\x12\x13\n\x0bsync_cookie\x18\x01 \x01(\x0c\x12/\n\tpair_info\x18\x02 \x03(\x0b\x32\x1c.msf.msg.svc.UinPairReadInfo\"\xa6\x01\n\x0fUinPairReadInfo\x12\x10\n\x08peer_uin\x18\x01 \x01(\x04\x12\x16\n\x0elast_read_time\x18\x02 \x01(\r\x12\x0f\n\x07\x63rm_sig\x18\x03 \x01(\x0c\x12\x11\n\tpeer_type\x18\x04 \x01(\r\x12\x11\n\tchat_type\x18\x05 \x01(\r\x12\x0c\n\x04\x63pid\x18\x06 \x01(\x04\x12\x10\n\x08\x61io_type\x18\x07 \x01(\r\x12\x12\n\nto_tiny_id\x18\t \x01(\x04\"L\n\x15PbC2CReadedReportResp\x12\x0e\n\x06result\x18\x01 \x01(\r\x12\x0e\n\x06\x65rrmsg\x18\x02 \x01(\t\x12\x13\n\x0bsync_cookie\x18\x03 \x01(\x0c\"\x16\n\x14PbC2CUnReadMsgNumReq\"D\n\x15PbC2CUnReadMsgNumResp\x12\x0e\n\x06result\x18\x01 \x01(\r\x12\x0e\n\x06\x65rrmsg\x18\x02 \x01(\t\x12\x0b\n\x03num\x18\x03 \x01(\r\"\x83\x01\n\x0fPbDelRoamMsgReq\x12$\n\x07\x63\x32\x63_msg\x18\x01 \x01(\x0b\x32\x13.msf.msg.svc.C2CMsg\x12$\n\x07grp_msg\x18\x02 \x01(\x0b\x32\x13.msf.msg.svc.GrpMsg\x12$\n\x07\x64is_msg\x18\x03 \x01(\x0b\x32\x13.msf.msg.svc.DisMsg\"W\n\x06\x43\x32\x43Msg\x12\x10\n\x08\x66rom_uin\x18\x01 \x01(\x04\x12\x10\n\x08peer_uin\x18\x02 \x01(\x04\x12\x0c\n\x04time\x18\x03 \x01(\r\x12\x0e\n\x06random\x18\x04 \x01(\r\x12\x0b\n\x03seq\x18\x05 \x01(\r\"*\n\x06\x44isMsg\x12\x13\n\x0b\x64iscuss_uin\x18\x01 \x01(\x04\x12\x0b\n\x03seq\x18\x02 \x01(\x04\"<\n\x06GrpMsg\x12\x12\n\ngroup_code\x18\x01 \x01(\x04\x12\x0b\n\x03seq\x18\x02 \x01(\x04\x12\x11\n\tresv_flag\x18\x03 \x01(\r\"2\n\x10PbDelRoamMsgResp\x12\x0e\n\x06result\x18\x01 \x01(\r\x12\x0e\n\x06\x65rrmsg\x18\x02 \x01(\t\"\xaa\x01\n\x0ePbDeleteMsgReq\x12\x36\n\tmsg_items\x18\x01 \x03(\x0b\x32#.msf.msg.svc.PbDeleteMsgReq.MsgItem\x1a`\n\x07MsgItem\x12\x10\n\x08\x66rom_uin\x18\x01 \x01(\x04\x12\x0e\n\x06to_uin\x18\x02 \x01(\x04\x12\x0c\n\x04type\x18\x03 \x01(\r\x12\x0b\n\x03seq\x18\x04 \x01(\r\x12\x0b\n\x03uid\x18\x05 \x01(\x04\x12\x0b\n\x03sig\x18\x07 \x01(\x0c\"1\n\x0fPbDeleteMsgResp\x12\x0e\n\x06result\x18\x01 \x01(\r\x12\x0e\n\x06\x65rrmsg\x18\x02 \x01(\t\"C\n\x18PbDiscussReadedReportReq\x12\x10\n\x08\x63onf_uin\x18\x01 \x01(\x04\x12\x15\n\rlast_read_seq\x18\x02 \x01(\x04\"s\n\x19PbDiscussReadedReportResp\x12\x0e\n\x06result\x18\x01 \x01(\r\x12\x0e\n\x06\x65rrmsg\x18\x02 \x01(\t\x12\x10\n\x08\x63onf_uin\x18\x03 \x01(\x04\x12\x12\n\nmember_seq\x18\x04 \x01(\x04\x12\x10\n\x08\x63onf_seq\x18\x05 \x01(\x04\"\xa2\x01\n\x12PbGetDiscussMsgReq\x12\x13\n\x0b\x64iscuss_uin\x18\x01 \x01(\x04\x12\x0f\n\x07\x65nd_seq\x18\x02 \x01(\x04\x12\x11\n\tbegin_seq\x18\x03 \x01(\x04\x12\x15\n\rlast_get_time\x18\x04 \x01(\x04\x12\x18\n\x10\x64iscuss_info_seq\x18\x05 \x01(\x04\x12\x0e\n\x06\x66ilter\x18\x06 \x01(\r\x12\x12\n\nmember_seq\x18\x07 \x01(\x04\"\xcd\x01\n\x13PbGetDiscussMsgResp\x12\x0e\n\x06result\x18\x01 \x01(\r\x12\x0e\n\x06\x65rrmsg\x18\x02 \x01(\t\x12\x13\n\x0b\x64iscuss_uin\x18\x03 \x01(\x04\x12\x16\n\x0ereturn_end_seq\x18\x04 \x01(\x04\x12\x18\n\x10return_begin_seq\x18\x05 \x01(\x04\x12\x1e\n\x03msg\x18\x06 \x03(\x0b\x32\x11.msf.msg.comm.Msg\x12\x15\n\rlast_get_time\x18\x07 \x01(\x04\x12\x18\n\x10\x64iscuss_info_seq\x18\x08 \x01(\x04\"\xb4\x01\n\x10PbGetGroupMsgReq\x12\x12\n\ngroup_code\x18\x01 \x01(\x04\x12\x11\n\tbegin_seq\x18\x02 \x01(\x04\x12\x0f\n\x07\x65nd_seq\x18\x03 \x01(\x04\x12\x0e\n\x06\x66ilter\x18\x04 \x01(\r\x12\x12\n\nmember_seq\x18\x05 \x01(\x04\x12\x14\n\x0cpublic_group\x18\x06 \x01(\x08\x12\x13\n\x0bshield_flag\x18\x07 \x01(\r\x12\x19\n\x11save_traffic_flag\x18\x08 \x01(\r\"\x99\x01\n\x11PbGetGroupMsgResp\x12\x0e\n\x06result\x18\x01 \x01(\r\x12\x0e\n\x06\x65rrmsg\x18\x02 \x01(\t\x12\x12\n\ngroup_code\x18\x03 \x01(\x04\x12\x18\n\x10return_begin_seq\x18\x04 \x01(\x04\x12\x16\n\x0ereturn_end_seq\x18\x05 \x01(\x04\x12\x1e\n\x03msg\x18\x06 \x03(\x0b\x32\x11.msf.msg.comm.Msg\"\xa4\x02\n\x0bPbGetMsgReq\x12\x11\n\tsync_flag\x18\x01 \x01(\r\x12\x13\n\x0bsync_cookie\x18\x02 \x01(\x0c\x12\x13\n\x0bramble_flag\x18\x03 \x01(\r\x12\x1c\n\x14latest_ramble_number\x18\x04 \x01(\r\x12\x1b\n\x13other_ramble_number\x18\x05 \x01(\r\x12\x18\n\x10online_sync_flag\x18\x06 \x01(\r\x12\x14\n\x0c\x63ontext_flag\x18\x07 \x01(\r\x12\x1a\n\x12whisper_session_id\x18\x08 \x01(\r\x12\x10\n\x08req_type\x18\t \x01(\r\x12\x19\n\x11pubaccount_cookie\x18\n \x01(\x0c\x12\x10\n\x08\x63trl_buf\x18\x0b \x01(\x0c\x12\x12\n\nserver_buf\x18\x0c \x01(\x0c\"\xf1\x01\n\x0cPbGetMsgResp\x12\x0e\n\x06result\x18\x01 \x01(\r\x12\x0e\n\x06\x65rrmsg\x18\x02 \x01(\t\x12\x13\n\x0bsync_cookie\x18\x03 \x01(\x0c\x12\x11\n\tsync_flag\x18\x04 \x01(\r\x12/\n\ruin_pair_msgs\x18\x05 \x03(\x0b\x32\x18.msf.msg.comm.UinPairMsg\x12\x10\n\x08\x62ind_uin\x18\x06 \x01(\x04\x12\x10\n\x08rsp_type\x18\x07 \x01(\r\x12\x19\n\x11pubaccount_cookie\x18\x08 \x01(\x0c\x12\x17\n\x0fis_partial_sync\x18\t \x01(\x08\x12\x10\n\x08\x63trl_buf\x18\n \x01(\x0c\"a\n\x15PbGetOneDayRoamMsgReq\x12\x10\n\x08peer_uin\x18\x01 \x01(\x04\x12\x14\n\x0clast_msgtime\x18\x02 \x01(\x04\x12\x0e\n\x06random\x18\x03 \x01(\x04\x12\x10\n\x08read_cnt\x18\x04 \x01(\r\"\xa4\x01\n\x16PbGetOneDayRoamMsgResp\x12\x0e\n\x06result\x18\x01 \x01(\r\x12\x0e\n\x06\x65rrmsg\x18\x02 \x01(\t\x12\x10\n\x08peer_uin\x18\x03 \x01(\x04\x12\x14\n\x0clast_msgtime\x18\x04 \x01(\x04\x12\x0e\n\x06random\x18\x05 \x01(\x04\x12\x1e\n\x03msg\x18\x06 \x03(\x0b\x32\x11.msf.msg.comm.Msg\x12\x12\n\niscomplete\x18\x07 \x01(\r\"\xc1\x01\n\x0fPbGetRoamMsgReq\x12\x10\n\x08peer_uin\x18\x01 \x01(\x04\x12\x14\n\x0clast_msgtime\x18\x02 \x01(\x04\x12\x0e\n\x06random\x18\x03 \x01(\x04\x12\x10\n\x08read_cnt\x18\x04 \x01(\r\x12\x11\n\tcheck_pwd\x18\x05 \x01(\r\x12\x0b\n\x03sig\x18\x06 \x01(\x0c\x12\x0b\n\x03pwd\x18\x07 \x01(\x0c\x12\x0e\n\x06subcmd\x18\x08 \x01(\r\x12\x15\n\rbegin_msgtime\x18\t \x01(\x04\x12\x10\n\x08req_type\x18\n \x01(\r\"\x97\x01\n\x10PbGetRoamMsgResp\x12\x0e\n\x06result\x18\x01 \x01(\r\x12\x0e\n\x06\x65rrmsg\x18\x02 \x01(\t\x12\x10\n\x08peer_uin\x18\x03 \x01(\x04\x12\x14\n\x0clast_msgtime\x18\x04 \x01(\x04\x12\x0e\n\x06random\x18\x05 \x01(\x04\x12\x1e\n\x03msg\x18\x06 \x03(\x0b\x32\x11.msf.msg.comm.Msg\x12\x0b\n\x03sig\x18\x07 \x01(\x0c\"\x89\x01\n\x15PbGroupMsgWithDrawReq\x12\x0f\n\x07sub_cmd\x18\x01 \x01(\r\x12\x12\n\ngroup_type\x18\x02 \x01(\r\x12\x12\n\ngroup_code\x18\x03 \x01(\x04\x12&\n\x04list\x18\x04 \x03(\x0b\x32\x18.msf.msg.svc.MessageInfo\x12\x0f\n\x07userdef\x18\x05 \x01(\x0c\"W\n\x0bMessageInfo\x12\x0f\n\x07msg_seq\x18\x01 \x01(\r\x12\x12\n\nmsg_random\x18\x02 \x01(\r\x12\x10\n\x08msg_type\x18\x03 \x01(\r\x12\x11\n\tresv_flag\x18\x04 \x01(\r\"\xef\x01\n\x16PbGroupMsgWithDrawResp\x12\x0e\n\x06result\x18\x01 \x01(\r\x12\x0e\n\x06\x65rrmsg\x18\x02 \x01(\t\x12\x0f\n\x07sub_cmd\x18\x03 \x01(\r\x12\x12\n\ngroup_type\x18\x04 \x01(\r\x12\x12\n\ngroup_code\x18\x05 \x01(\x04\x12\x33\n\x0f\x66\x61iled_msg_list\x18\x06 \x03(\x0b\x32\x1a.msf.msg.svc.MessageResult\x12\x0f\n\x07userdef\x18\x07 \x01(\x0c\x12\x36\n\x0cwording_info\x18\x08 \x01(\x0b\x32 .msf.msg.svc.WithDrawWordingInfo\"y\n\rMessageResult\x12\x0e\n\x06result\x18\x01 \x01(\r\x12\x0f\n\x07msg_seq\x18\x02 \x01(\r\x12\x10\n\x08msg_time\x18\x03 \x01(\r\x12\x12\n\nmsg_random\x18\x04 \x01(\r\x12\x0f\n\x07\x65rr_msg\x18\x05 \x01(\x0c\x12\x10\n\x08msg_type\x18\x06 \x01(\r\"C\n\x16PbGroupReadedReportReq\x12\x12\n\ngroup_code\x18\x01 \x01(\x04\x12\x15\n\rlast_read_seq\x18\x02 \x01(\x04\"x\n\x17PbGroupReadedReportResp\x12\x0e\n\x06result\x18\x01 \x01(\r\x12\x0e\n\x06\x65rrmsg\x18\x02 \x01(\t\x12\x12\n\ngroup_code\x18\x03 \x01(\x04\x12\x12\n\nmember_seq\x18\x04 \x01(\x04\x12\x15\n\rgroup_msg_seq\x18\x05 \x01(\x04\"s\n\x11PbInputNotifyInfo\x12\x0e\n\x06to_uin\x18\x01 \x01(\x04\x12\x0b\n\x03ime\x18\x02 \x01(\r\x12\x13\n\x0bnotify_flag\x18\x03 \x01(\r\x12\x12\n\npb_reserve\x18\x04 \x01(\x0c\x12\x18\n\x10ios_push_wording\x18\x05 \x01(\x0c\"\x99\x02\n\x14PbMsgReadedReportReq\x12<\n\x0fgrp_read_report\x18\x01 \x03(\x0b\x32#.msf.msg.svc.PbGroupReadedReportReq\x12>\n\x0f\x64is_read_report\x18\x02 \x03(\x0b\x32%.msf.msg.svc.PbDiscussReadedReportReq\x12:\n\x0f\x63\x32\x63_read_report\x18\x03 \x01(\x0b\x32!.msf.msg.svc.PbC2CReadedReportReq\x12G\n\x14\x62ind_uin_read_report\x18\x04 \x01(\x0b\x32).msf.msg.svc.PbBindUinMsgReadedConfirmReq\"\x9e\x02\n\x15PbMsgReadedReportResp\x12=\n\x0fgrp_read_report\x18\x01 \x03(\x0b\x32$.msf.msg.svc.PbGroupReadedReportResp\x12?\n\x0f\x64is_read_report\x18\x02 \x03(\x0b\x32&.msf.msg.svc.PbDiscussReadedReportResp\x12;\n\x0f\x63\x32\x63_read_report\x18\x03 \x01(\x0b\x32\".msf.msg.svc.PbC2CReadedReportResp\x12H\n\x14\x62ind_uin_read_report\x18\x04 \x01(\x0b\x32*.msf.msg.svc.PbBindUinMsgReadedConfirmResp\"\x88\x01\n\x10PbMsgWithDrawReq\x12\x37\n\rc2c_with_draw\x18\x01 \x03(\x0b\x32 .msf.msg.svc.PbC2CMsgWithDrawReq\x12;\n\x0fgroup_with_draw\x18\x02 \x03(\x0b\x32\".msf.msg.svc.PbGroupMsgWithDrawReq\"\x8b\x01\n\x11PbMsgWithDrawResp\x12\x38\n\rc2c_with_draw\x18\x01 \x03(\x0b\x32!.msf.msg.svc.PbC2CMsgWithDrawResp\x12<\n\x0fgroup_with_draw\x18\x02 \x03(\x0b\x32#.msf.msg.svc.PbGroupMsgWithDrawResp\"O\n\x16PbPullDiscussMsgSeqReq\x12\x35\n\x10\x64iscuss_info_req\x18\x01 \x03(\x0b\x32\x1b.msf.msg.svc.DiscussInfoReq\"4\n\x0e\x44iscussInfoReq\x12\x10\n\x08\x63onf_uin\x18\x01 \x01(\x04\x12\x10\n\x08last_seq\x18\x02 \x01(\x04\"r\n\x17PbPullDiscussMsgSeqResp\x12\x0e\n\x06result\x18\x01 \x01(\r\x12\x0e\n\x06\x65rrmsg\x18\x02 \x01(\t\x12\x37\n\x11\x64iscuss_info_resp\x18\x03 \x03(\x0b\x32\x1c.msf.msg.svc.DiscussInfoResp\"I\n\x0f\x44iscussInfoResp\x12\x10\n\x08\x63onf_uin\x18\x01 \x01(\x04\x12\x12\n\nmember_seq\x18\x02 \x01(\x04\x12\x10\n\x08\x63onf_seq\x18\x03 \x01(\x04\"I\n\x14PbPullGroupMsgSeqReq\x12\x31\n\x0egroup_info_req\x18\x01 \x03(\x0b\x32\x19.msf.msg.svc.GroupInfoReq\"4\n\x0cGroupInfoReq\x12\x12\n\ngroup_code\x18\x01 \x01(\x04\x12\x10\n\x08last_seq\x18\x02 \x01(\x04\"l\n\x15PbPullGroupMsgSeqResp\x12\x0e\n\x06result\x18\x01 \x01(\r\x12\x0e\n\x06\x65rrmsg\x18\x02 \x01(\t\x12\x33\n\x0fgroup_info_resp\x18\x03 \x03(\x0b\x32\x1a.msf.msg.svc.GroupInfoResp\"J\n\rGroupInfoResp\x12\x12\n\ngroup_code\x18\x01 \x01(\x04\x12\x12\n\nmember_seq\x18\x02 \x01(\x04\x12\x11\n\tgroup_seq\x18\x03 \x01(\x04\"6\n\x19PbSearchRoamMsgInCloudReq\x12\x19\n\x11serialize_reqbody\x18\x01 \x01(\x0c\"W\n\x1aPbSearchRoamMsgInCloudResp\x12\x1e\n\x03msg\x18\x01 \x03(\x0b\x32\x11.msf.msg.comm.Msg\x12\x19\n\x11serialize_rspbody\x18\x02 \x01(\x0c\"\xf9\x03\n\x0cPbSendMsgReq\x12.\n\x0crouting_head\x18\x01 \x01(\x0b\x32\x18.msf.msg.svc.RoutingHead\x12/\n\x0c\x63ontent_head\x18\x02 \x01(\x0b\x32\x19.msf.msg.comm.ContentHead\x12&\n\x04\x62ody\x18\x03 \x01(\x0b\x32\x18.im.msg.msg_body.MsgBody\x12\x0b\n\x03seq\x18\x04 \x01(\r\x12\x0c\n\x04rand\x18\x05 \x01(\r\x12\x13\n\x0bsync_cookie\x18\x06 \x01(\x0c\x12-\n\tapp_share\x18\x07 \x01(\x0b\x32\x1a.msf.msg.comm.AppShareInfo\x12\x0b\n\x03via\x18\x08 \x01(\r\x12\x14\n\x0c\x64\x61ta_statist\x18\t \x01(\r\x12\x35\n\x10multi_msg_assist\x18\n \x01(\x0b\x32\x1b.msf.msg.svc.MultiMsgAssist\x12\x39\n\x11input_notify_info\x18\x0b \x01(\x0b\x32\x1e.msf.msg.svc.PbInputNotifyInfo\x12#\n\x04\x63trl\x18\x0c \x01(\x0b\x32\x15.msf.msg.ctrl.MsgCtrl\x12/\n\x0breceipt_req\x18\r \x01(\x0b\x32\x1a.im.msg.receipt.ReceiptReq\x12\x16\n\x0emulti_send_seq\x18\x0e \x01(\r\"\xb6\x02\n\rPbSendMsgResp\x12\x0e\n\x06result\x18\x01 \x01(\r\x12\x0e\n\x06\x65rrmsg\x18\x02 \x01(\t\x12\x11\n\tsend_time\x18\x03 \x01(\r\x12\x19\n\x11svrbusy_wait_time\x18\x04 \x01(\r\x12+\n\tsend_info\x18\x05 \x01(\x0b\x32\x18.msf.msg.svc.MsgSendInfo\x12\x0f\n\x07\x65rrtype\x18\x06 \x01(\r\x12\x31\n\x0etrans_svr_info\x18\x07 \x01(\x0b\x32\x19.msf.msg.svc.TransSvrInfo\x12\x31\n\x0creceipt_resp\x18\x08 \x01(\x0b\x32\x1b.im.msg.receipt.ReceiptResp\x12\x1c\n\x14text_analysis_result\x18\t \x01(\r\x12\x15\n\rmsg_info_flag\x18\n \x01(\r\"a\n\x18PbThirdQQUnReadMsgNumReq\x12\x35\n\x10thirdqq_req_info\x18\x01 \x03(\x0b\x32\x1b.msf.msg.svc.ThirdQQReqInfo\x12\x0e\n\x06source\x18\x02 \x01(\r\"T\n\x0eThirdQQReqInfo\x12\x11\n\tthird_uin\x18\x01 \x01(\x04\x12\x15\n\rthird_uin_sig\x18\x02 \x01(\x0c\x12\x18\n\x10third_uin_cookie\x18\x03 \x01(\x0c\"\x86\x01\n\x19PbThirdQQUnReadMsgNumResp\x12\x0e\n\x06result\x18\x01 \x01(\r\x12\x0e\n\x06\x65rrmsg\x18\x02 \x01(\t\x12\x37\n\x11thirdqq_resp_info\x18\x03 \x03(\x0b\x32\x1c.msf.msg.svc.ThirdQQRespInfo\x12\x10\n\x08interval\x18\x04 \x01(\r\"\x95\x01\n\x0fThirdQQRespInfo\x12\x11\n\tthird_uin\x18\x01 \x01(\x04\x12\x18\n\x10third_uin_cookie\x18\x02 \x01(\x0c\x12\x0b\n\x03num\x18\x03 \x01(\r\x12\x0c\n\x04\x66lag\x18\x04 \x01(\r\x12\x13\n\x0bredbag_time\x18\x05 \x01(\r\x12\x0e\n\x06status\x18\x06 \x01(\r\x12\x15\n\rlast_msg_time\x18\x07 \x01(\r\"\xd7\x02\n\x11PbUnReadMsgSeqReq\x12:\n\x0f\x63\x32\x63_unread_info\x18\x01 \x01(\x0b\x32!.msf.msg.svc.PbC2CUnReadMsgNumReq\x12\x42\n\x13\x62induin_unread_info\x18\x02 \x03(\x0b\x32%.msf.msg.svc.PbBindUinUnReadMsgNumReq\x12<\n\x11group_unread_info\x18\x03 \x01(\x0b\x32!.msf.msg.svc.PbPullGroupMsgSeqReq\x12@\n\x13\x64iscuss_unread_info\x18\x04 \x01(\x0b\x32#.msf.msg.svc.PbPullDiscussMsgSeqReq\x12\x42\n\x13thirdqq_unread_info\x18\x05 \x01(\x0b\x32%.msf.msg.svc.PbThirdQQUnReadMsgNumReq\"\xdd\x02\n\x12PbUnReadMsgSeqResp\x12;\n\x0f\x63\x32\x63_unread_info\x18\x01 \x01(\x0b\x32\".msf.msg.svc.PbC2CUnReadMsgNumResp\x12\x43\n\x13\x62induin_unread_info\x18\x02 \x03(\x0b\x32&.msf.msg.svc.PbBindUinUnReadMsgNumResp\x12=\n\x11group_unread_info\x18\x03 \x01(\x0b\x32\".msf.msg.svc.PbPullGroupMsgSeqResp\x12\x41\n\x13\x64iscuss_unread_info\x18\x04 \x01(\x0b\x32$.msf.msg.svc.PbPullDiscussMsgSeqResp\x12\x43\n\x13thirdqq_unread_info\x18\x05 \x01(\x0b\x32&.msf.msg.svc.PbThirdQQUnReadMsgNumResp\"=\n\x0bPubGroupTmp\x12\x0e\n\x06to_uin\x18\x01 \x01(\x04\x12\x0b\n\x03sig\x18\x02 \x01(\x0c\x12\x11\n\tgroup_uin\x18\x03 \x01(\x04\")\n\nPublicPlat\x12\x0e\n\x06to_uin\x18\x01 \x01(\x04\x12\x0b\n\x03sig\x18\x02 \x01(\x0c\"1\n\x12QQQueryBusinessTmp\x12\x0e\n\x06to_uin\x18\x01 \x01(\x04\x12\x0b\n\x03sig\x18\x02 \x01(\x0c\",\n\rRichStatusTmp\x12\x0e\n\x06to_uin\x18\x01 \x01(\x04\x12\x0b\n\x03sig\x18\x02 \x01(\x0c\"\xb8\x07\n\x0bRoutingHead\x12\x1d\n\x03\x63\x32\x63\x18\x01 \x01(\x0b\x32\x10.msf.msg.svc.C2C\x12\x1d\n\x03grp\x18\x02 \x01(\x0b\x32\x10.msf.msg.svc.Grp\x12$\n\x07grp_tmp\x18\x03 \x01(\x0b\x32\x13.msf.msg.svc.GrpTmp\x12\x1d\n\x03\x64is\x18\x04 \x01(\x0b\x32\x10.msf.msg.svc.Dis\x12$\n\x07\x64is_tmp\x18\x05 \x01(\x0b\x32\x13.msf.msg.svc.DisTmp\x12$\n\x07wpa_tmp\x18\x06 \x01(\x0b\x32\x13.msf.msg.svc.WPATmp\x12,\n\x0bpublic_plat\x18\x08 \x01(\x0b\x32\x17.msf.msg.svc.PublicPlat\x12(\n\ttrans_msg\x18\t \x01(\x0b\x32\x15.msf.msg.svc.TransMsg\x12\x31\n\x0c\x61\x64\x64ress_list\x18\n \x01(\x0b\x32\x1b.msf.msg.svc.AddressListTmp\x12\x33\n\x0frich_status_tmp\x18\x0b \x01(\x0b\x32\x1a.msf.msg.svc.RichStatusTmp\x12(\n\ttrans_cmd\x18\x0c \x01(\x0b\x32\x15.msf.msg.svc.TransCmd\x12*\n\naccost_tmp\x18\r \x01(\x0b\x32\x16.msf.msg.svc.AccostTmp\x12/\n\rpub_group_tmp\x18\x0e \x01(\x0b\x32\x18.msf.msg.svc.PubGroupTmp\x12-\n\x0ctrans_0_x211\x18\x0f \x01(\x0b\x32\x17.msf.msg.svc.Trans0x211\x12\x35\n\x10\x62usiness_wpa_tmp\x18\x10 \x01(\x0b\x32\x1b.msf.msg.svc.BusinessWPATmp\x12&\n\x08\x61uth_tmp\x18\x11 \x01(\x0b\x32\x14.msf.msg.svc.AuthTmp\x12&\n\x08\x62sns_tmp\x18\x12 \x01(\x0b\x32\x14.msf.msg.svc.BsnsTmp\x12=\n\x14qq_querybusiness_tmp\x18\x13 \x01(\x0b\x32\x1f.msf.msg.svc.QQQueryBusinessTmp\x12\x37\n\x11nearby_dating_tmp\x18\x14 \x01(\x0b\x32\x1c.msf.msg.svc.NearByDatingTmp\x12=\n\x14nearby_assistant_tmp\x18\x15 \x01(\x0b\x32\x1f.msf.msg.svc.NearByAssistantTmp\x12&\n\x08\x63omm_tmp\x18\x16 \x01(\x0b\x32\x14.msf.msg.svc.CommTmp\"\xa6\x01\n\nTrans0x211\x12\x0e\n\x06to_uin\x18\x01 \x01(\x04\x12\x0e\n\x06\x63\x63_cmd\x18\x02 \x01(\r\x12,\n\tinst_ctrl\x18\x03 \x01(\x0b\x32\x19.im.msg.msg_head.InstCtrl\x12\x0b\n\x03sig\x18\x04 \x01(\x0c\x12\x10\n\x08\x63\x32\x63_type\x18\x05 \x01(\r\x12\x14\n\x0cservice_type\x18\x06 \x01(\r\x12\x15\n\rdataline_flag\x18\x07 \x01(\r\"(\n\x08TransCmd\x12\x0e\n\x06to_uin\x18\x01 \x01(\x04\x12\x0c\n\x04type\x18\x02 \x01(\r\"+\n\x08TransMsg\x12\x0e\n\x06to_uin\x18\x01 \x01(\x04\x12\x0f\n\x07\x63\x32\x63_cmd\x18\x02 \x01(\r\">\n\x08TransReq\x12\x0f\n\x07\x63ommand\x18\x01 \x01(\x05\x12\x0f\n\x07req_tag\x18\x02 \x01(\r\x12\x10\n\x08req_buff\x18\x03 \x01(\x0c\"P\n\tTransResp\x12\x0e\n\x06result\x18\x01 \x01(\r\x12\x0e\n\x06\x65rrmsg\x18\x02 \x01(\t\x12\x10\n\x08resp_tag\x18\x03 \x01(\r\x12\x11\n\tresp_buff\x18\x04 \x01(\x0c\"W\n\x0cTransSvrInfo\x12\x10\n\x08sub_type\x18\x01 \x01(\r\x12\x10\n\x08ret_code\x18\x02 \x01(\x05\x12\x0f\n\x07\x65rr_msg\x18\x03 \x01(\x0c\x12\x12\n\ntrans_info\x18\x04 \x01(\x0c\"%\n\x06WPATmp\x12\x0e\n\x06to_uin\x18\x01 \x01(\x04\x12\x0b\n\x03sig\x18\x02 \x01(\x0c\"9\n\x13WithDrawWordingInfo\x12\x0f\n\x07item_id\x18\x01 \x01(\x05\x12\x11\n\titem_name\x18\x02 \x01(\t')
+
+
+
+_ACCOSTTMP = DESCRIPTOR.message_types_by_name['AccostTmp']
+_ADDRESSLISTTMP = DESCRIPTOR.message_types_by_name['AddressListTmp']
+_AUTHTMP = DESCRIPTOR.message_types_by_name['AuthTmp']
+_BSNSTMP = DESCRIPTOR.message_types_by_name['BsnsTmp']
+_BUSINESSWPATMP = DESCRIPTOR.message_types_by_name['BusinessWPATmp']
+_C2C = DESCRIPTOR.message_types_by_name['C2C']
+_COMMTMP = DESCRIPTOR.message_types_by_name['CommTmp']
+_DIS = DESCRIPTOR.message_types_by_name['Dis']
+_DISTMP = DESCRIPTOR.message_types_by_name['DisTmp']
+_GRP = DESCRIPTOR.message_types_by_name['Grp']
+_GRPTMP = DESCRIPTOR.message_types_by_name['GrpTmp']
+_MSGSENDINFO = DESCRIPTOR.message_types_by_name['MsgSendInfo']
+_MULTIMSGASSIST = DESCRIPTOR.message_types_by_name['MultiMsgAssist']
+_NEARBYASSISTANTTMP = DESCRIPTOR.message_types_by_name['NearByAssistantTmp']
+_NEARBYDATINGTMP = DESCRIPTOR.message_types_by_name['NearByDatingTmp']
+_PBBINDUINGETMSGREQ = DESCRIPTOR.message_types_by_name['PbBindUinGetMsgReq']
+_PBBINDUINMSGREADEDCONFIRMREQ = DESCRIPTOR.message_types_by_name['PbBindUinMsgReadedConfirmReq']
+_PBBINDUINMSGREADEDCONFIRMRESP = DESCRIPTOR.message_types_by_name['PbBindUinMsgReadedConfirmResp']
+_PBBINDUINUNREADMSGNUMREQ = DESCRIPTOR.message_types_by_name['PbBindUinUnReadMsgNumReq']
+_PBBINDUINUNREADMSGNUMRESP = DESCRIPTOR.message_types_by_name['PbBindUinUnReadMsgNumResp']
+_PBC2CMSGWITHDRAWREQ = DESCRIPTOR.message_types_by_name['PbC2CMsgWithDrawReq']
+_PBC2CMSGWITHDRAWREQ_MSGINFO = _PBC2CMSGWITHDRAWREQ.nested_types_by_name['MsgInfo']
+_PBC2CMSGWITHDRAWRESP = DESCRIPTOR.message_types_by_name['PbC2CMsgWithDrawResp']
+_MSGSTATUS = DESCRIPTOR.message_types_by_name['MsgStatus']
+_PBC2CREADEDREPORTREQ = DESCRIPTOR.message_types_by_name['PbC2CReadedReportReq']
+_UINPAIRREADINFO = DESCRIPTOR.message_types_by_name['UinPairReadInfo']
+_PBC2CREADEDREPORTRESP = DESCRIPTOR.message_types_by_name['PbC2CReadedReportResp']
+_PBC2CUNREADMSGNUMREQ = DESCRIPTOR.message_types_by_name['PbC2CUnReadMsgNumReq']
+_PBC2CUNREADMSGNUMRESP = DESCRIPTOR.message_types_by_name['PbC2CUnReadMsgNumResp']
+_PBDELROAMMSGREQ = DESCRIPTOR.message_types_by_name['PbDelRoamMsgReq']
+_C2CMSG = DESCRIPTOR.message_types_by_name['C2CMsg']
+_DISMSG = DESCRIPTOR.message_types_by_name['DisMsg']
+_GRPMSG = DESCRIPTOR.message_types_by_name['GrpMsg']
+_PBDELROAMMSGRESP = DESCRIPTOR.message_types_by_name['PbDelRoamMsgResp']
+_PBDELETEMSGREQ = DESCRIPTOR.message_types_by_name['PbDeleteMsgReq']
+_PBDELETEMSGREQ_MSGITEM = _PBDELETEMSGREQ.nested_types_by_name['MsgItem']
+_PBDELETEMSGRESP = DESCRIPTOR.message_types_by_name['PbDeleteMsgResp']
+_PBDISCUSSREADEDREPORTREQ = DESCRIPTOR.message_types_by_name['PbDiscussReadedReportReq']
+_PBDISCUSSREADEDREPORTRESP = DESCRIPTOR.message_types_by_name['PbDiscussReadedReportResp']
+_PBGETDISCUSSMSGREQ = DESCRIPTOR.message_types_by_name['PbGetDiscussMsgReq']
+_PBGETDISCUSSMSGRESP = DESCRIPTOR.message_types_by_name['PbGetDiscussMsgResp']
+_PBGETGROUPMSGREQ = DESCRIPTOR.message_types_by_name['PbGetGroupMsgReq']
+_PBGETGROUPMSGRESP = DESCRIPTOR.message_types_by_name['PbGetGroupMsgResp']
+_PBGETMSGREQ = DESCRIPTOR.message_types_by_name['PbGetMsgReq']
+_PBGETMSGRESP = DESCRIPTOR.message_types_by_name['PbGetMsgResp']
+_PBGETONEDAYROAMMSGREQ = DESCRIPTOR.message_types_by_name['PbGetOneDayRoamMsgReq']
+_PBGETONEDAYROAMMSGRESP = DESCRIPTOR.message_types_by_name['PbGetOneDayRoamMsgResp']
+_PBGETROAMMSGREQ = DESCRIPTOR.message_types_by_name['PbGetRoamMsgReq']
+_PBGETROAMMSGRESP = DESCRIPTOR.message_types_by_name['PbGetRoamMsgResp']
+_PBGROUPMSGWITHDRAWREQ = DESCRIPTOR.message_types_by_name['PbGroupMsgWithDrawReq']
+_MESSAGEINFO = DESCRIPTOR.message_types_by_name['MessageInfo']
+_PBGROUPMSGWITHDRAWRESP = DESCRIPTOR.message_types_by_name['PbGroupMsgWithDrawResp']
+_MESSAGERESULT = DESCRIPTOR.message_types_by_name['MessageResult']
+_PBGROUPREADEDREPORTREQ = DESCRIPTOR.message_types_by_name['PbGroupReadedReportReq']
+_PBGROUPREADEDREPORTRESP = DESCRIPTOR.message_types_by_name['PbGroupReadedReportResp']
+_PBINPUTNOTIFYINFO = DESCRIPTOR.message_types_by_name['PbInputNotifyInfo']
+_PBMSGREADEDREPORTREQ = DESCRIPTOR.message_types_by_name['PbMsgReadedReportReq']
+_PBMSGREADEDREPORTRESP = DESCRIPTOR.message_types_by_name['PbMsgReadedReportResp']
+_PBMSGWITHDRAWREQ = DESCRIPTOR.message_types_by_name['PbMsgWithDrawReq']
+_PBMSGWITHDRAWRESP = DESCRIPTOR.message_types_by_name['PbMsgWithDrawResp']
+_PBPULLDISCUSSMSGSEQREQ = DESCRIPTOR.message_types_by_name['PbPullDiscussMsgSeqReq']
+_DISCUSSINFOREQ = DESCRIPTOR.message_types_by_name['DiscussInfoReq']
+_PBPULLDISCUSSMSGSEQRESP = DESCRIPTOR.message_types_by_name['PbPullDiscussMsgSeqResp']
+_DISCUSSINFORESP = DESCRIPTOR.message_types_by_name['DiscussInfoResp']
+_PBPULLGROUPMSGSEQREQ = DESCRIPTOR.message_types_by_name['PbPullGroupMsgSeqReq']
+_GROUPINFOREQ = DESCRIPTOR.message_types_by_name['GroupInfoReq']
+_PBPULLGROUPMSGSEQRESP = DESCRIPTOR.message_types_by_name['PbPullGroupMsgSeqResp']
+_GROUPINFORESP = DESCRIPTOR.message_types_by_name['GroupInfoResp']
+_PBSEARCHROAMMSGINCLOUDREQ = DESCRIPTOR.message_types_by_name['PbSearchRoamMsgInCloudReq']
+_PBSEARCHROAMMSGINCLOUDRESP = DESCRIPTOR.message_types_by_name['PbSearchRoamMsgInCloudResp']
+_PBSENDMSGREQ = DESCRIPTOR.message_types_by_name['PbSendMsgReq']
+_PBSENDMSGRESP = DESCRIPTOR.message_types_by_name['PbSendMsgResp']
+_PBTHIRDQQUNREADMSGNUMREQ = DESCRIPTOR.message_types_by_name['PbThirdQQUnReadMsgNumReq']
+_THIRDQQREQINFO = DESCRIPTOR.message_types_by_name['ThirdQQReqInfo']
+_PBTHIRDQQUNREADMSGNUMRESP = DESCRIPTOR.message_types_by_name['PbThirdQQUnReadMsgNumResp']
+_THIRDQQRESPINFO = DESCRIPTOR.message_types_by_name['ThirdQQRespInfo']
+_PBUNREADMSGSEQREQ = DESCRIPTOR.message_types_by_name['PbUnReadMsgSeqReq']
+_PBUNREADMSGSEQRESP = DESCRIPTOR.message_types_by_name['PbUnReadMsgSeqResp']
+_PUBGROUPTMP = DESCRIPTOR.message_types_by_name['PubGroupTmp']
+_PUBLICPLAT = DESCRIPTOR.message_types_by_name['PublicPlat']
+_QQQUERYBUSINESSTMP = DESCRIPTOR.message_types_by_name['QQQueryBusinessTmp']
+_RICHSTATUSTMP = DESCRIPTOR.message_types_by_name['RichStatusTmp']
+_ROUTINGHEAD = DESCRIPTOR.message_types_by_name['RoutingHead']
+_TRANS0X211 = DESCRIPTOR.message_types_by_name['Trans0x211']
+_TRANSCMD = DESCRIPTOR.message_types_by_name['TransCmd']
+_TRANSMSG = DESCRIPTOR.message_types_by_name['TransMsg']
+_TRANSREQ = DESCRIPTOR.message_types_by_name['TransReq']
+_TRANSRESP = DESCRIPTOR.message_types_by_name['TransResp']
+_TRANSSVRINFO = DESCRIPTOR.message_types_by_name['TransSvrInfo']
+_WPATMP = DESCRIPTOR.message_types_by_name['WPATmp']
+_WITHDRAWWORDINGINFO = DESCRIPTOR.message_types_by_name['WithDrawWordingInfo']
AccostTmp = _reflection.GeneratedProtocolMessageType('AccostTmp', (_message.Message,), {
'DESCRIPTOR' : _ACCOSTTMP,
'__module__' : 'cai.pb.msf.msg.svc.svc_pb2'
@@ -5776,5 +753,189 @@
})
_sym_db.RegisterMessage(WithDrawWordingInfo)
-
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ _ACCOSTTMP._serialized_start=224
+ _ACCOSTTMP._serialized_end=279
+ _ADDRESSLISTTMP._serialized_start=281
+ _ADDRESSLISTTMP._serialized_end=391
+ _AUTHTMP._serialized_start=393
+ _AUTHTMP._serialized_end=431
+ _BSNSTMP._serialized_start=433
+ _BSNSTMP._serialized_end=471
+ _BUSINESSWPATMP._serialized_start=473
+ _BUSINESSWPATMP._serialized_end=532
+ _C2C._serialized_start=534
+ _C2C._serialized_end=555
+ _COMMTMP._serialized_start=557
+ _COMMTMP._serialized_end=649
+ _DIS._serialized_start=651
+ _DIS._serialized_end=673
+ _DISTMP._serialized_start=675
+ _DISTMP._serialized_end=716
+ _GRP._serialized_start=718
+ _GRP._serialized_end=743
+ _GRPTMP._serialized_start=745
+ _GRPTMP._serialized_end=788
+ _MSGSENDINFO._serialized_start=790
+ _MSGSENDINFO._serialized_end=821
+ _MULTIMSGASSIST._serialized_start=824
+ _MULTIMSGASSIST._serialized_end=1023
+ _NEARBYASSISTANTTMP._serialized_start=1025
+ _NEARBYASSISTANTTMP._serialized_end=1089
+ _NEARBYDATINGTMP._serialized_start=1091
+ _NEARBYDATINGTMP._serialized_end=1152
+ _PBBINDUINGETMSGREQ._serialized_start=1154
+ _PBBINDUINGETMSGREQ._serialized_end=1254
+ _PBBINDUINMSGREADEDCONFIRMREQ._serialized_start=1256
+ _PBBINDUINMSGREADEDCONFIRMREQ._serialized_end=1325
+ _PBBINDUINMSGREADEDCONFIRMRESP._serialized_start=1327
+ _PBBINDUINMSGREADEDCONFIRMRESP._serialized_end=1429
+ _PBBINDUINUNREADMSGNUMREQ._serialized_start=1431
+ _PBBINDUINUNREADMSGNUMREQ._serialized_end=1496
+ _PBBINDUINUNREADMSGNUMRESP._serialized_start=1498
+ _PBBINDUINUNREADMSGNUMRESP._serialized_end=1588
+ _PBC2CMSGWITHDRAWREQ._serialized_start=1591
+ _PBC2CMSGWITHDRAWREQ._serialized_end=1967
+ _PBC2CMSGWITHDRAWREQ_MSGINFO._serialized_start=1733
+ _PBC2CMSGWITHDRAWREQ_MSGINFO._serialized_end=1967
+ _PBC2CMSGWITHDRAWRESP._serialized_start=1970
+ _PBC2CMSGWITHDRAWRESP._serialized_end=2137
+ _MSGSTATUS._serialized_start=2139
+ _MSGSTATUS._serialized_end=2222
+ _PBC2CREADEDREPORTREQ._serialized_start=2224
+ _PBC2CREADEDREPORTREQ._serialized_end=2316
+ _UINPAIRREADINFO._serialized_start=2319
+ _UINPAIRREADINFO._serialized_end=2485
+ _PBC2CREADEDREPORTRESP._serialized_start=2487
+ _PBC2CREADEDREPORTRESP._serialized_end=2563
+ _PBC2CUNREADMSGNUMREQ._serialized_start=2565
+ _PBC2CUNREADMSGNUMREQ._serialized_end=2587
+ _PBC2CUNREADMSGNUMRESP._serialized_start=2589
+ _PBC2CUNREADMSGNUMRESP._serialized_end=2657
+ _PBDELROAMMSGREQ._serialized_start=2660
+ _PBDELROAMMSGREQ._serialized_end=2791
+ _C2CMSG._serialized_start=2793
+ _C2CMSG._serialized_end=2880
+ _DISMSG._serialized_start=2882
+ _DISMSG._serialized_end=2924
+ _GRPMSG._serialized_start=2926
+ _GRPMSG._serialized_end=2986
+ _PBDELROAMMSGRESP._serialized_start=2988
+ _PBDELROAMMSGRESP._serialized_end=3038
+ _PBDELETEMSGREQ._serialized_start=3041
+ _PBDELETEMSGREQ._serialized_end=3211
+ _PBDELETEMSGREQ_MSGITEM._serialized_start=3115
+ _PBDELETEMSGREQ_MSGITEM._serialized_end=3211
+ _PBDELETEMSGRESP._serialized_start=3213
+ _PBDELETEMSGRESP._serialized_end=3262
+ _PBDISCUSSREADEDREPORTREQ._serialized_start=3264
+ _PBDISCUSSREADEDREPORTREQ._serialized_end=3331
+ _PBDISCUSSREADEDREPORTRESP._serialized_start=3333
+ _PBDISCUSSREADEDREPORTRESP._serialized_end=3448
+ _PBGETDISCUSSMSGREQ._serialized_start=3451
+ _PBGETDISCUSSMSGREQ._serialized_end=3613
+ _PBGETDISCUSSMSGRESP._serialized_start=3616
+ _PBGETDISCUSSMSGRESP._serialized_end=3821
+ _PBGETGROUPMSGREQ._serialized_start=3824
+ _PBGETGROUPMSGREQ._serialized_end=4004
+ _PBGETGROUPMSGRESP._serialized_start=4007
+ _PBGETGROUPMSGRESP._serialized_end=4160
+ _PBGETMSGREQ._serialized_start=4163
+ _PBGETMSGREQ._serialized_end=4455
+ _PBGETMSGRESP._serialized_start=4458
+ _PBGETMSGRESP._serialized_end=4699
+ _PBGETONEDAYROAMMSGREQ._serialized_start=4701
+ _PBGETONEDAYROAMMSGREQ._serialized_end=4798
+ _PBGETONEDAYROAMMSGRESP._serialized_start=4801
+ _PBGETONEDAYROAMMSGRESP._serialized_end=4965
+ _PBGETROAMMSGREQ._serialized_start=4968
+ _PBGETROAMMSGREQ._serialized_end=5161
+ _PBGETROAMMSGRESP._serialized_start=5164
+ _PBGETROAMMSGRESP._serialized_end=5315
+ _PBGROUPMSGWITHDRAWREQ._serialized_start=5318
+ _PBGROUPMSGWITHDRAWREQ._serialized_end=5455
+ _MESSAGEINFO._serialized_start=5457
+ _MESSAGEINFO._serialized_end=5544
+ _PBGROUPMSGWITHDRAWRESP._serialized_start=5547
+ _PBGROUPMSGWITHDRAWRESP._serialized_end=5786
+ _MESSAGERESULT._serialized_start=5788
+ _MESSAGERESULT._serialized_end=5909
+ _PBGROUPREADEDREPORTREQ._serialized_start=5911
+ _PBGROUPREADEDREPORTREQ._serialized_end=5978
+ _PBGROUPREADEDREPORTRESP._serialized_start=5980
+ _PBGROUPREADEDREPORTRESP._serialized_end=6100
+ _PBINPUTNOTIFYINFO._serialized_start=6102
+ _PBINPUTNOTIFYINFO._serialized_end=6217
+ _PBMSGREADEDREPORTREQ._serialized_start=6220
+ _PBMSGREADEDREPORTREQ._serialized_end=6501
+ _PBMSGREADEDREPORTRESP._serialized_start=6504
+ _PBMSGREADEDREPORTRESP._serialized_end=6790
+ _PBMSGWITHDRAWREQ._serialized_start=6793
+ _PBMSGWITHDRAWREQ._serialized_end=6929
+ _PBMSGWITHDRAWRESP._serialized_start=6932
+ _PBMSGWITHDRAWRESP._serialized_end=7071
+ _PBPULLDISCUSSMSGSEQREQ._serialized_start=7073
+ _PBPULLDISCUSSMSGSEQREQ._serialized_end=7152
+ _DISCUSSINFOREQ._serialized_start=7154
+ _DISCUSSINFOREQ._serialized_end=7206
+ _PBPULLDISCUSSMSGSEQRESP._serialized_start=7208
+ _PBPULLDISCUSSMSGSEQRESP._serialized_end=7322
+ _DISCUSSINFORESP._serialized_start=7324
+ _DISCUSSINFORESP._serialized_end=7397
+ _PBPULLGROUPMSGSEQREQ._serialized_start=7399
+ _PBPULLGROUPMSGSEQREQ._serialized_end=7472
+ _GROUPINFOREQ._serialized_start=7474
+ _GROUPINFOREQ._serialized_end=7526
+ _PBPULLGROUPMSGSEQRESP._serialized_start=7528
+ _PBPULLGROUPMSGSEQRESP._serialized_end=7636
+ _GROUPINFORESP._serialized_start=7638
+ _GROUPINFORESP._serialized_end=7712
+ _PBSEARCHROAMMSGINCLOUDREQ._serialized_start=7714
+ _PBSEARCHROAMMSGINCLOUDREQ._serialized_end=7768
+ _PBSEARCHROAMMSGINCLOUDRESP._serialized_start=7770
+ _PBSEARCHROAMMSGINCLOUDRESP._serialized_end=7857
+ _PBSENDMSGREQ._serialized_start=7860
+ _PBSENDMSGREQ._serialized_end=8365
+ _PBSENDMSGRESP._serialized_start=8368
+ _PBSENDMSGRESP._serialized_end=8678
+ _PBTHIRDQQUNREADMSGNUMREQ._serialized_start=8680
+ _PBTHIRDQQUNREADMSGNUMREQ._serialized_end=8777
+ _THIRDQQREQINFO._serialized_start=8779
+ _THIRDQQREQINFO._serialized_end=8863
+ _PBTHIRDQQUNREADMSGNUMRESP._serialized_start=8866
+ _PBTHIRDQQUNREADMSGNUMRESP._serialized_end=9000
+ _THIRDQQRESPINFO._serialized_start=9003
+ _THIRDQQRESPINFO._serialized_end=9152
+ _PBUNREADMSGSEQREQ._serialized_start=9155
+ _PBUNREADMSGSEQREQ._serialized_end=9498
+ _PBUNREADMSGSEQRESP._serialized_start=9501
+ _PBUNREADMSGSEQRESP._serialized_end=9850
+ _PUBGROUPTMP._serialized_start=9852
+ _PUBGROUPTMP._serialized_end=9913
+ _PUBLICPLAT._serialized_start=9915
+ _PUBLICPLAT._serialized_end=9956
+ _QQQUERYBUSINESSTMP._serialized_start=9958
+ _QQQUERYBUSINESSTMP._serialized_end=10007
+ _RICHSTATUSTMP._serialized_start=10009
+ _RICHSTATUSTMP._serialized_end=10053
+ _ROUTINGHEAD._serialized_start=10056
+ _ROUTINGHEAD._serialized_end=11008
+ _TRANS0X211._serialized_start=11011
+ _TRANS0X211._serialized_end=11177
+ _TRANSCMD._serialized_start=11179
+ _TRANSCMD._serialized_end=11219
+ _TRANSMSG._serialized_start=11221
+ _TRANSMSG._serialized_end=11264
+ _TRANSREQ._serialized_start=11266
+ _TRANSREQ._serialized_end=11328
+ _TRANSRESP._serialized_start=11330
+ _TRANSRESP._serialized_end=11410
+ _TRANSSVRINFO._serialized_start=11412
+ _TRANSSVRINFO._serialized_end=11499
+ _WPATMP._serialized_start=11501
+ _WPATMP._serialized_end=11538
+ _WITHDRAWWORDINGINFO._serialized_start=11540
+ _WITHDRAWWORDINGINFO._serialized_end=11597
# @@protoc_insertion_point(module_scope)
diff --git a/cai/pb/msf/msg/svc/svc_pb2.pyi b/cai/pb/msf/msg/svc/svc_pb2.pyi
index 601adfbe..a2685239 100644
--- a/cai/pb/msf/msg/svc/svc_pb2.pyi
+++ b/cai/pb/msf/msg/svc/svc_pb2.pyi
@@ -56,202 +56,190 @@ from typing_extensions import (
)
-DESCRIPTOR: FileDescriptor = ...
+DESCRIPTOR: FileDescriptor
class AccostTmp(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
TO_UIN_FIELD_NUMBER: int
SIG_FIELD_NUMBER: int
REPLY_FIELD_NUMBER: int
- to_uin: int = ...
- sig: bytes = ...
- reply: bool = ...
-
+ to_uin: int
+ sig: bytes
+ reply: bool
def __init__(self,
*,
- to_uin : Optional[int] = ...,
- sig : Optional[bytes] = ...,
- reply : Optional[bool] = ...,
+ to_uin: Optional[int] = ...,
+ sig: Optional[bytes] = ...,
+ reply: Optional[bool] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"reply",b"reply",u"sig",b"sig",u"to_uin",b"to_uin"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"reply",b"reply",u"sig",b"sig",u"to_uin",b"to_uin"]) -> None: ...
+ def HasField(self, field_name: Literal["reply",b"reply","sig",b"sig","to_uin",b"to_uin"]) -> bool: ...
+ def ClearField(self, field_name: Literal["reply",b"reply","sig",b"sig","to_uin",b"to_uin"]) -> None: ...
class AddressListTmp(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
FROM_PHONE_FIELD_NUMBER: int
TO_PHONE_FIELD_NUMBER: int
TO_UIN_FIELD_NUMBER: int
SIG_FIELD_NUMBER: int
FROM_CONTACT_SIZE_FIELD_NUMBER: int
- from_phone: Text = ...
- to_phone: Text = ...
- to_uin: int = ...
- sig: bytes = ...
- from_contact_size: int = ...
-
+ from_phone: Text
+ to_phone: Text
+ to_uin: int
+ sig: bytes
+ from_contact_size: int
def __init__(self,
*,
- from_phone : Optional[Text] = ...,
- to_phone : Optional[Text] = ...,
- to_uin : Optional[int] = ...,
- sig : Optional[bytes] = ...,
- from_contact_size : Optional[int] = ...,
+ from_phone: Optional[Text] = ...,
+ to_phone: Optional[Text] = ...,
+ to_uin: Optional[int] = ...,
+ sig: Optional[bytes] = ...,
+ from_contact_size: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"from_contact_size",b"from_contact_size",u"from_phone",b"from_phone",u"sig",b"sig",u"to_phone",b"to_phone",u"to_uin",b"to_uin"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"from_contact_size",b"from_contact_size",u"from_phone",b"from_phone",u"sig",b"sig",u"to_phone",b"to_phone",u"to_uin",b"to_uin"]) -> None: ...
+ def HasField(self, field_name: Literal["from_contact_size",b"from_contact_size","from_phone",b"from_phone","sig",b"sig","to_phone",b"to_phone","to_uin",b"to_uin"]) -> bool: ...
+ def ClearField(self, field_name: Literal["from_contact_size",b"from_contact_size","from_phone",b"from_phone","sig",b"sig","to_phone",b"to_phone","to_uin",b"to_uin"]) -> None: ...
class AuthTmp(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
TO_UIN_FIELD_NUMBER: int
SIG_FIELD_NUMBER: int
- to_uin: int = ...
- sig: bytes = ...
-
+ to_uin: int
+ sig: bytes
def __init__(self,
*,
- to_uin : Optional[int] = ...,
- sig : Optional[bytes] = ...,
+ to_uin: Optional[int] = ...,
+ sig: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"sig",b"sig",u"to_uin",b"to_uin"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"sig",b"sig",u"to_uin",b"to_uin"]) -> None: ...
+ def HasField(self, field_name: Literal["sig",b"sig","to_uin",b"to_uin"]) -> bool: ...
+ def ClearField(self, field_name: Literal["sig",b"sig","to_uin",b"to_uin"]) -> None: ...
class BsnsTmp(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
TO_UIN_FIELD_NUMBER: int
SIG_FIELD_NUMBER: int
- to_uin: int = ...
- sig: bytes = ...
-
+ to_uin: int
+ sig: bytes
def __init__(self,
*,
- to_uin : Optional[int] = ...,
- sig : Optional[bytes] = ...,
+ to_uin: Optional[int] = ...,
+ sig: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"sig",b"sig",u"to_uin",b"to_uin"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"sig",b"sig",u"to_uin",b"to_uin"]) -> None: ...
+ def HasField(self, field_name: Literal["sig",b"sig","to_uin",b"to_uin"]) -> bool: ...
+ def ClearField(self, field_name: Literal["sig",b"sig","to_uin",b"to_uin"]) -> None: ...
class BusinessWPATmp(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
TO_UIN_FIELD_NUMBER: int
SIG_FIELD_NUMBER: int
SIGT_FIELD_NUMBER: int
- to_uin: int = ...
- sig: bytes = ...
- sigt: bytes = ...
-
+ to_uin: int
+ sig: bytes
+ sigt: bytes
def __init__(self,
*,
- to_uin : Optional[int] = ...,
- sig : Optional[bytes] = ...,
- sigt : Optional[bytes] = ...,
+ to_uin: Optional[int] = ...,
+ sig: Optional[bytes] = ...,
+ sigt: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"sig",b"sig",u"sigt",b"sigt",u"to_uin",b"to_uin"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"sig",b"sig",u"sigt",b"sigt",u"to_uin",b"to_uin"]) -> None: ...
+ def HasField(self, field_name: Literal["sig",b"sig","sigt",b"sigt","to_uin",b"to_uin"]) -> bool: ...
+ def ClearField(self, field_name: Literal["sig",b"sig","sigt",b"sigt","to_uin",b"to_uin"]) -> None: ...
class C2C(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
TO_UIN_FIELD_NUMBER: int
- to_uin: int = ...
-
+ to_uin: int
def __init__(self,
*,
- to_uin : Optional[int] = ...,
+ to_uin: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"to_uin",b"to_uin"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"to_uin",b"to_uin"]) -> None: ...
+ def HasField(self, field_name: Literal["to_uin",b"to_uin"]) -> bool: ...
+ def ClearField(self, field_name: Literal["to_uin",b"to_uin"]) -> None: ...
class CommTmp(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
TO_UIN_FIELD_NUMBER: int
C2C_TYPE_FIELD_NUMBER: int
SVR_TYPE_FIELD_NUMBER: int
SIG_FIELD_NUMBER: int
RESERVED_FIELD_NUMBER: int
- to_uin: int = ...
- c2c_type: int = ...
- svr_type: int = ...
- sig: bytes = ...
- reserved: bytes = ...
-
+ to_uin: int
+ c2c_type: int
+ svr_type: int
+ sig: bytes
+ reserved: bytes
def __init__(self,
*,
- to_uin : Optional[int] = ...,
- c2c_type : Optional[int] = ...,
- svr_type : Optional[int] = ...,
- sig : Optional[bytes] = ...,
- reserved : Optional[bytes] = ...,
+ to_uin: Optional[int] = ...,
+ c2c_type: Optional[int] = ...,
+ svr_type: Optional[int] = ...,
+ sig: Optional[bytes] = ...,
+ reserved: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"c2c_type",b"c2c_type",u"reserved",b"reserved",u"sig",b"sig",u"svr_type",b"svr_type",u"to_uin",b"to_uin"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"c2c_type",b"c2c_type",u"reserved",b"reserved",u"sig",b"sig",u"svr_type",b"svr_type",u"to_uin",b"to_uin"]) -> None: ...
+ def HasField(self, field_name: Literal["c2c_type",b"c2c_type","reserved",b"reserved","sig",b"sig","svr_type",b"svr_type","to_uin",b"to_uin"]) -> bool: ...
+ def ClearField(self, field_name: Literal["c2c_type",b"c2c_type","reserved",b"reserved","sig",b"sig","svr_type",b"svr_type","to_uin",b"to_uin"]) -> None: ...
class Dis(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
DIS_UIN_FIELD_NUMBER: int
- dis_uin: int = ...
-
+ dis_uin: int
def __init__(self,
*,
- dis_uin : Optional[int] = ...,
+ dis_uin: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"dis_uin",b"dis_uin"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"dis_uin",b"dis_uin"]) -> None: ...
+ def HasField(self, field_name: Literal["dis_uin",b"dis_uin"]) -> bool: ...
+ def ClearField(self, field_name: Literal["dis_uin",b"dis_uin"]) -> None: ...
class DisTmp(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
DIS_UIN_FIELD_NUMBER: int
TO_UIN_FIELD_NUMBER: int
- dis_uin: int = ...
- to_uin: int = ...
-
+ dis_uin: int
+ to_uin: int
def __init__(self,
*,
- dis_uin : Optional[int] = ...,
- to_uin : Optional[int] = ...,
+ dis_uin: Optional[int] = ...,
+ to_uin: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"dis_uin",b"dis_uin",u"to_uin",b"to_uin"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"dis_uin",b"dis_uin",u"to_uin",b"to_uin"]) -> None: ...
+ def HasField(self, field_name: Literal["dis_uin",b"dis_uin","to_uin",b"to_uin"]) -> bool: ...
+ def ClearField(self, field_name: Literal["dis_uin",b"dis_uin","to_uin",b"to_uin"]) -> None: ...
class Grp(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
GROUP_CODE_FIELD_NUMBER: int
- group_code: int = ...
-
+ group_code: int
def __init__(self,
*,
- group_code : Optional[int] = ...,
+ group_code: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"group_code",b"group_code"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"group_code",b"group_code"]) -> None: ...
+ def HasField(self, field_name: Literal["group_code",b"group_code"]) -> bool: ...
+ def ClearField(self, field_name: Literal["group_code",b"group_code"]) -> None: ...
class GrpTmp(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
GROUP_UIN_FIELD_NUMBER: int
TO_UIN_FIELD_NUMBER: int
- group_uin: int = ...
- to_uin: int = ...
-
+ group_uin: int
+ to_uin: int
def __init__(self,
*,
- group_uin : Optional[int] = ...,
- to_uin : Optional[int] = ...,
+ group_uin: Optional[int] = ...,
+ to_uin: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"group_uin",b"group_uin",u"to_uin",b"to_uin"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"group_uin",b"group_uin",u"to_uin",b"to_uin"]) -> None: ...
+ def HasField(self, field_name: Literal["group_uin",b"group_uin","to_uin",b"to_uin"]) -> bool: ...
+ def ClearField(self, field_name: Literal["group_uin",b"group_uin","to_uin",b"to_uin"]) -> None: ...
class MsgSendInfo(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
RECEIVER_FIELD_NUMBER: int
- receiver: int = ...
-
+ receiver: int
def __init__(self,
*,
- receiver : Optional[int] = ...,
+ receiver: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"receiver",b"receiver"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"receiver",b"receiver"]) -> None: ...
+ def HasField(self, field_name: Literal["receiver",b"receiver"]) -> bool: ...
+ def ClearField(self, field_name: Literal["receiver",b"receiver"]) -> None: ...
class MultiMsgAssist(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
REPEATED_ROUTING_FIELD_NUMBER: int
USE_FIELD_NUMBER: int
TEMP_ID_FIELD_NUMBER: int
@@ -260,164 +248,155 @@ class MultiMsgAssist(Message):
REDBAG_AMOUNT_FIELD_NUMBER: int
HAS_READBAG_FIELD_NUMBER: int
HAS_VEDIO_FIELD_NUMBER: int
- use: int = ...
- temp_id: int = ...
- vedio_len: int = ...
- redbag_id: bytes = ...
- redbag_amount: int = ...
- has_readbag: int = ...
- has_vedio: int = ...
-
@property
def repeated_routing(self) -> RepeatedCompositeFieldContainer[RoutingHead]: ...
-
- def __init__(self,
- *,
- repeated_routing : Optional[Iterable[RoutingHead]] = ...,
- use : Optional[int] = ...,
- temp_id : Optional[int] = ...,
- vedio_len : Optional[int] = ...,
- redbag_id : Optional[bytes] = ...,
- redbag_amount : Optional[int] = ...,
- has_readbag : Optional[int] = ...,
- has_vedio : Optional[int] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal[u"has_readbag",b"has_readbag",u"has_vedio",b"has_vedio",u"redbag_amount",b"redbag_amount",u"redbag_id",b"redbag_id",u"temp_id",b"temp_id",u"use",b"use",u"vedio_len",b"vedio_len"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"has_readbag",b"has_readbag",u"has_vedio",b"has_vedio",u"redbag_amount",b"redbag_amount",u"redbag_id",b"redbag_id",u"repeated_routing",b"repeated_routing",u"temp_id",b"temp_id",u"use",b"use",u"vedio_len",b"vedio_len"]) -> None: ...
+ use: int
+ temp_id: int
+ vedio_len: int
+ redbag_id: bytes
+ redbag_amount: int
+ has_readbag: int
+ has_vedio: int
+ def __init__(self,
+ *,
+ repeated_routing: Optional[Iterable[RoutingHead]] = ...,
+ use: Optional[int] = ...,
+ temp_id: Optional[int] = ...,
+ vedio_len: Optional[int] = ...,
+ redbag_id: Optional[bytes] = ...,
+ redbag_amount: Optional[int] = ...,
+ has_readbag: Optional[int] = ...,
+ has_vedio: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["has_readbag",b"has_readbag","has_vedio",b"has_vedio","redbag_amount",b"redbag_amount","redbag_id",b"redbag_id","temp_id",b"temp_id","use",b"use","vedio_len",b"vedio_len"]) -> bool: ...
+ def ClearField(self, field_name: Literal["has_readbag",b"has_readbag","has_vedio",b"has_vedio","redbag_amount",b"redbag_amount","redbag_id",b"redbag_id","repeated_routing",b"repeated_routing","temp_id",b"temp_id","use",b"use","vedio_len",b"vedio_len"]) -> None: ...
class NearByAssistantTmp(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
TO_UIN_FIELD_NUMBER: int
SIG_FIELD_NUMBER: int
REPLY_FIELD_NUMBER: int
- to_uin: int = ...
- sig: bytes = ...
- reply: bool = ...
-
+ to_uin: int
+ sig: bytes
+ reply: bool
def __init__(self,
*,
- to_uin : Optional[int] = ...,
- sig : Optional[bytes] = ...,
- reply : Optional[bool] = ...,
+ to_uin: Optional[int] = ...,
+ sig: Optional[bytes] = ...,
+ reply: Optional[bool] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"reply",b"reply",u"sig",b"sig",u"to_uin",b"to_uin"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"reply",b"reply",u"sig",b"sig",u"to_uin",b"to_uin"]) -> None: ...
+ def HasField(self, field_name: Literal["reply",b"reply","sig",b"sig","to_uin",b"to_uin"]) -> bool: ...
+ def ClearField(self, field_name: Literal["reply",b"reply","sig",b"sig","to_uin",b"to_uin"]) -> None: ...
class NearByDatingTmp(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
TO_UIN_FIELD_NUMBER: int
SIG_FIELD_NUMBER: int
REPLY_FIELD_NUMBER: int
- to_uin: int = ...
- sig: bytes = ...
- reply: bool = ...
-
+ to_uin: int
+ sig: bytes
+ reply: bool
def __init__(self,
*,
- to_uin : Optional[int] = ...,
- sig : Optional[bytes] = ...,
- reply : Optional[bool] = ...,
+ to_uin: Optional[int] = ...,
+ sig: Optional[bytes] = ...,
+ reply: Optional[bool] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"reply",b"reply",u"sig",b"sig",u"to_uin",b"to_uin"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"reply",b"reply",u"sig",b"sig",u"to_uin",b"to_uin"]) -> None: ...
+ def HasField(self, field_name: Literal["reply",b"reply","sig",b"sig","to_uin",b"to_uin"]) -> bool: ...
+ def ClearField(self, field_name: Literal["reply",b"reply","sig",b"sig","to_uin",b"to_uin"]) -> None: ...
class PbBindUinGetMsgReq(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
BIND_UIN_FIELD_NUMBER: int
BIND_UIN_SIG_FIELD_NUMBER: int
SYNC_FLAG_FIELD_NUMBER: int
SYNC_COOKIE_FIELD_NUMBER: int
- bind_uin: int = ...
- bind_uin_sig: bytes = ...
- sync_flag: int = ...
- sync_cookie: bytes = ...
-
+ bind_uin: int
+ bind_uin_sig: bytes
+ sync_flag: int
+ sync_cookie: bytes
def __init__(self,
*,
- bind_uin : Optional[int] = ...,
- bind_uin_sig : Optional[bytes] = ...,
- sync_flag : Optional[int] = ...,
- sync_cookie : Optional[bytes] = ...,
+ bind_uin: Optional[int] = ...,
+ bind_uin_sig: Optional[bytes] = ...,
+ sync_flag: Optional[int] = ...,
+ sync_cookie: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"bind_uin",b"bind_uin",u"bind_uin_sig",b"bind_uin_sig",u"sync_cookie",b"sync_cookie",u"sync_flag",b"sync_flag"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"bind_uin",b"bind_uin",u"bind_uin_sig",b"bind_uin_sig",u"sync_cookie",b"sync_cookie",u"sync_flag",b"sync_flag"]) -> None: ...
+ def HasField(self, field_name: Literal["bind_uin",b"bind_uin","bind_uin_sig",b"bind_uin_sig","sync_cookie",b"sync_cookie","sync_flag",b"sync_flag"]) -> bool: ...
+ def ClearField(self, field_name: Literal["bind_uin",b"bind_uin","bind_uin_sig",b"bind_uin_sig","sync_cookie",b"sync_cookie","sync_flag",b"sync_flag"]) -> None: ...
class PbBindUinMsgReadedConfirmReq(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
SYNC_COOKIE_FIELD_NUMBER: int
BIND_UIN_FIELD_NUMBER: int
- sync_cookie: bytes = ...
- bind_uin: int = ...
-
+ sync_cookie: bytes
+ bind_uin: int
def __init__(self,
*,
- sync_cookie : Optional[bytes] = ...,
- bind_uin : Optional[int] = ...,
+ sync_cookie: Optional[bytes] = ...,
+ bind_uin: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"bind_uin",b"bind_uin",u"sync_cookie",b"sync_cookie"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"bind_uin",b"bind_uin",u"sync_cookie",b"sync_cookie"]) -> None: ...
+ def HasField(self, field_name: Literal["bind_uin",b"bind_uin","sync_cookie",b"sync_cookie"]) -> bool: ...
+ def ClearField(self, field_name: Literal["bind_uin",b"bind_uin","sync_cookie",b"sync_cookie"]) -> None: ...
class PbBindUinMsgReadedConfirmResp(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
RESULT_FIELD_NUMBER: int
ERRMSG_FIELD_NUMBER: int
SYNC_COOKIE_FIELD_NUMBER: int
BIND_UIN_FIELD_NUMBER: int
- result: int = ...
- errmsg: Text = ...
- sync_cookie: bytes = ...
- bind_uin: int = ...
-
+ result: int
+ errmsg: Text
+ sync_cookie: bytes
+ bind_uin: int
def __init__(self,
*,
- result : Optional[int] = ...,
- errmsg : Optional[Text] = ...,
- sync_cookie : Optional[bytes] = ...,
- bind_uin : Optional[int] = ...,
+ result: Optional[int] = ...,
+ errmsg: Optional[Text] = ...,
+ sync_cookie: Optional[bytes] = ...,
+ bind_uin: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"bind_uin",b"bind_uin",u"errmsg",b"errmsg",u"result",b"result",u"sync_cookie",b"sync_cookie"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"bind_uin",b"bind_uin",u"errmsg",b"errmsg",u"result",b"result",u"sync_cookie",b"sync_cookie"]) -> None: ...
+ def HasField(self, field_name: Literal["bind_uin",b"bind_uin","errmsg",b"errmsg","result",b"result","sync_cookie",b"sync_cookie"]) -> bool: ...
+ def ClearField(self, field_name: Literal["bind_uin",b"bind_uin","errmsg",b"errmsg","result",b"result","sync_cookie",b"sync_cookie"]) -> None: ...
class PbBindUinUnReadMsgNumReq(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
BIND_UIN_FIELD_NUMBER: int
SYNC_COOKIE_FIELD_NUMBER: int
- bind_uin: int = ...
- sync_cookie: bytes = ...
-
+ bind_uin: int
+ sync_cookie: bytes
def __init__(self,
*,
- bind_uin : Optional[int] = ...,
- sync_cookie : Optional[bytes] = ...,
+ bind_uin: Optional[int] = ...,
+ sync_cookie: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"bind_uin",b"bind_uin",u"sync_cookie",b"sync_cookie"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"bind_uin",b"bind_uin",u"sync_cookie",b"sync_cookie"]) -> None: ...
+ def HasField(self, field_name: Literal["bind_uin",b"bind_uin","sync_cookie",b"sync_cookie"]) -> bool: ...
+ def ClearField(self, field_name: Literal["bind_uin",b"bind_uin","sync_cookie",b"sync_cookie"]) -> None: ...
class PbBindUinUnReadMsgNumResp(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
RESULT_FIELD_NUMBER: int
ERRMSG_FIELD_NUMBER: int
BIND_UIN_FIELD_NUMBER: int
NUM_FIELD_NUMBER: int
- result: int = ...
- errmsg: Text = ...
- bind_uin: int = ...
- num: int = ...
-
+ result: int
+ errmsg: Text
+ bind_uin: int
+ num: int
def __init__(self,
*,
- result : Optional[int] = ...,
- errmsg : Optional[Text] = ...,
- bind_uin : Optional[int] = ...,
- num : Optional[int] = ...,
+ result: Optional[int] = ...,
+ errmsg: Optional[Text] = ...,
+ bind_uin: Optional[int] = ...,
+ num: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"bind_uin",b"bind_uin",u"errmsg",b"errmsg",u"num",b"num",u"result",b"result"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"bind_uin",b"bind_uin",u"errmsg",b"errmsg",u"num",b"num",u"result",b"result"]) -> None: ...
+ def HasField(self, field_name: Literal["bind_uin",b"bind_uin","errmsg",b"errmsg","num",b"num","result",b"result"]) -> bool: ...
+ def ClearField(self, field_name: Literal["bind_uin",b"bind_uin","errmsg",b"errmsg","num",b"num","result",b"result"]) -> None: ...
class PbC2CMsgWithDrawReq(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
class MsgInfo(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
FROM_UIN_FIELD_NUMBER: int
TO_UIN_FIELD_NUMBER: int
MSG_SEQ_FIELD_NUMBER: int
@@ -429,122 +408,111 @@ class PbC2CMsgWithDrawReq(Message):
DIV_SEQ_FIELD_NUMBER: int
MSG_TYPE_FIELD_NUMBER: int
ROUTING_HEAD_FIELD_NUMBER: int
- from_uin: int = ...
- to_uin: int = ...
- msg_seq: int = ...
- msg_uid: int = ...
- msg_time: int = ...
- msg_random: int = ...
- pkg_num: int = ...
- pkg_index: int = ...
- div_seq: int = ...
- msg_type: int = ...
-
+ from_uin: int
+ to_uin: int
+ msg_seq: int
+ msg_uid: int
+ msg_time: int
+ msg_random: int
+ pkg_num: int
+ pkg_index: int
+ div_seq: int
+ msg_type: int
@property
def routing_head(self) -> RoutingHead: ...
-
def __init__(self,
*,
- from_uin : Optional[int] = ...,
- to_uin : Optional[int] = ...,
- msg_seq : Optional[int] = ...,
- msg_uid : Optional[int] = ...,
- msg_time : Optional[int] = ...,
- msg_random : Optional[int] = ...,
- pkg_num : Optional[int] = ...,
- pkg_index : Optional[int] = ...,
- div_seq : Optional[int] = ...,
- msg_type : Optional[int] = ...,
- routing_head : Optional[RoutingHead] = ...,
+ from_uin: Optional[int] = ...,
+ to_uin: Optional[int] = ...,
+ msg_seq: Optional[int] = ...,
+ msg_uid: Optional[int] = ...,
+ msg_time: Optional[int] = ...,
+ msg_random: Optional[int] = ...,
+ pkg_num: Optional[int] = ...,
+ pkg_index: Optional[int] = ...,
+ div_seq: Optional[int] = ...,
+ msg_type: Optional[int] = ...,
+ routing_head: Optional[RoutingHead] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"div_seq",b"div_seq",u"from_uin",b"from_uin",u"msg_random",b"msg_random",u"msg_seq",b"msg_seq",u"msg_time",b"msg_time",u"msg_type",b"msg_type",u"msg_uid",b"msg_uid",u"pkg_index",b"pkg_index",u"pkg_num",b"pkg_num",u"routing_head",b"routing_head",u"to_uin",b"to_uin"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"div_seq",b"div_seq",u"from_uin",b"from_uin",u"msg_random",b"msg_random",u"msg_seq",b"msg_seq",u"msg_time",b"msg_time",u"msg_type",b"msg_type",u"msg_uid",b"msg_uid",u"pkg_index",b"pkg_index",u"pkg_num",b"pkg_num",u"routing_head",b"routing_head",u"to_uin",b"to_uin"]) -> None: ...
+ def HasField(self, field_name: Literal["div_seq",b"div_seq","from_uin",b"from_uin","msg_random",b"msg_random","msg_seq",b"msg_seq","msg_time",b"msg_time","msg_type",b"msg_type","msg_uid",b"msg_uid","pkg_index",b"pkg_index","pkg_num",b"pkg_num","routing_head",b"routing_head","to_uin",b"to_uin"]) -> bool: ...
+ def ClearField(self, field_name: Literal["div_seq",b"div_seq","from_uin",b"from_uin","msg_random",b"msg_random","msg_seq",b"msg_seq","msg_time",b"msg_time","msg_type",b"msg_type","msg_uid",b"msg_uid","pkg_index",b"pkg_index","pkg_num",b"pkg_num","routing_head",b"routing_head","to_uin",b"to_uin"]) -> None: ...
INFO_FIELD_NUMBER: int
LONG_MESSAGE_FLAG_FIELD_NUMBER: int
RESERVED_FIELD_NUMBER: int
SUB_CMD_FIELD_NUMBER: int
- long_message_flag: int = ...
- reserved: bytes = ...
- sub_cmd: int = ...
-
@property
def info(self) -> RepeatedCompositeFieldContainer[PbC2CMsgWithDrawReq.MsgInfo]: ...
-
+ long_message_flag: int
+ reserved: bytes
+ sub_cmd: int
def __init__(self,
*,
- info : Optional[Iterable[PbC2CMsgWithDrawReq.MsgInfo]] = ...,
- long_message_flag : Optional[int] = ...,
- reserved : Optional[bytes] = ...,
- sub_cmd : Optional[int] = ...,
+ info: Optional[Iterable[PbC2CMsgWithDrawReq.MsgInfo]] = ...,
+ long_message_flag: Optional[int] = ...,
+ reserved: Optional[bytes] = ...,
+ sub_cmd: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"long_message_flag",b"long_message_flag",u"reserved",b"reserved",u"sub_cmd",b"sub_cmd"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"info",b"info",u"long_message_flag",b"long_message_flag",u"reserved",b"reserved",u"sub_cmd",b"sub_cmd"]) -> None: ...
+ def HasField(self, field_name: Literal["long_message_flag",b"long_message_flag","reserved",b"reserved","sub_cmd",b"sub_cmd"]) -> bool: ...
+ def ClearField(self, field_name: Literal["info",b"info","long_message_flag",b"long_message_flag","reserved",b"reserved","sub_cmd",b"sub_cmd"]) -> None: ...
class PbC2CMsgWithDrawResp(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
RESULT_FIELD_NUMBER: int
ERRMSG_FIELD_NUMBER: int
STATUS_FIELD_NUMBER: int
SUB_CMD_FIELD_NUMBER: int
WORDING_INFO_FIELD_NUMBER: int
- result: int = ...
- errmsg: Text = ...
- sub_cmd: int = ...
-
+ result: int
+ errmsg: Text
@property
def status(self) -> RepeatedCompositeFieldContainer[MsgStatus]: ...
-
+ sub_cmd: int
@property
def wording_info(self) -> WithDrawWordingInfo: ...
-
def __init__(self,
*,
- result : Optional[int] = ...,
- errmsg : Optional[Text] = ...,
- status : Optional[Iterable[MsgStatus]] = ...,
- sub_cmd : Optional[int] = ...,
- wording_info : Optional[WithDrawWordingInfo] = ...,
+ result: Optional[int] = ...,
+ errmsg: Optional[Text] = ...,
+ status: Optional[Iterable[MsgStatus]] = ...,
+ sub_cmd: Optional[int] = ...,
+ wording_info: Optional[WithDrawWordingInfo] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"errmsg",b"errmsg",u"result",b"result",u"sub_cmd",b"sub_cmd",u"wording_info",b"wording_info"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"errmsg",b"errmsg",u"result",b"result",u"status",b"status",u"sub_cmd",b"sub_cmd",u"wording_info",b"wording_info"]) -> None: ...
+ def HasField(self, field_name: Literal["errmsg",b"errmsg","result",b"result","sub_cmd",b"sub_cmd","wording_info",b"wording_info"]) -> bool: ...
+ def ClearField(self, field_name: Literal["errmsg",b"errmsg","result",b"result","status",b"status","sub_cmd",b"sub_cmd","wording_info",b"wording_info"]) -> None: ...
class MsgStatus(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
INFO_FIELD_NUMBER: int
STATUS_FIELD_NUMBER: int
- status: int = ...
-
@property
def info(self) -> PbC2CMsgWithDrawReq.MsgInfo: ...
-
+ status: int
def __init__(self,
*,
- info : Optional[PbC2CMsgWithDrawReq.MsgInfo] = ...,
- status : Optional[int] = ...,
+ info: Optional[PbC2CMsgWithDrawReq.MsgInfo] = ...,
+ status: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"info",b"info",u"status",b"status"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"info",b"info",u"status",b"status"]) -> None: ...
+ def HasField(self, field_name: Literal["info",b"info","status",b"status"]) -> bool: ...
+ def ClearField(self, field_name: Literal["info",b"info","status",b"status"]) -> None: ...
class PbC2CReadedReportReq(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
SYNC_COOKIE_FIELD_NUMBER: int
PAIR_INFO_FIELD_NUMBER: int
- sync_cookie: bytes = ...
-
+ sync_cookie: bytes
@property
def pair_info(self) -> RepeatedCompositeFieldContainer[UinPairReadInfo]: ...
-
def __init__(self,
*,
- sync_cookie : Optional[bytes] = ...,
- pair_info : Optional[Iterable[UinPairReadInfo]] = ...,
+ sync_cookie: Optional[bytes] = ...,
+ pair_info: Optional[Iterable[UinPairReadInfo]] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"sync_cookie",b"sync_cookie"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"pair_info",b"pair_info",u"sync_cookie",b"sync_cookie"]) -> None: ...
+ def HasField(self, field_name: Literal["sync_cookie",b"sync_cookie"]) -> bool: ...
+ def ClearField(self, field_name: Literal["pair_info",b"pair_info","sync_cookie",b"sync_cookie"]) -> None: ...
class UinPairReadInfo(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
PEER_UIN_FIELD_NUMBER: int
LAST_READ_TIME_FIELD_NUMBER: int
CRM_SIG_FIELD_NUMBER: int
@@ -553,263 +521,245 @@ class UinPairReadInfo(Message):
CPID_FIELD_NUMBER: int
AIO_TYPE_FIELD_NUMBER: int
TO_TINY_ID_FIELD_NUMBER: int
- peer_uin: int = ...
- last_read_time: int = ...
- crm_sig: bytes = ...
- peer_type: int = ...
- chat_type: int = ...
- cpid: int = ...
- aio_type: int = ...
- to_tiny_id: int = ...
-
- def __init__(self,
- *,
- peer_uin : Optional[int] = ...,
- last_read_time : Optional[int] = ...,
- crm_sig : Optional[bytes] = ...,
- peer_type : Optional[int] = ...,
- chat_type : Optional[int] = ...,
- cpid : Optional[int] = ...,
- aio_type : Optional[int] = ...,
- to_tiny_id : Optional[int] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal[u"aio_type",b"aio_type",u"chat_type",b"chat_type",u"cpid",b"cpid",u"crm_sig",b"crm_sig",u"last_read_time",b"last_read_time",u"peer_type",b"peer_type",u"peer_uin",b"peer_uin",u"to_tiny_id",b"to_tiny_id"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"aio_type",b"aio_type",u"chat_type",b"chat_type",u"cpid",b"cpid",u"crm_sig",b"crm_sig",u"last_read_time",b"last_read_time",u"peer_type",b"peer_type",u"peer_uin",b"peer_uin",u"to_tiny_id",b"to_tiny_id"]) -> None: ...
+ peer_uin: int
+ last_read_time: int
+ crm_sig: bytes
+ peer_type: int
+ chat_type: int
+ cpid: int
+ aio_type: int
+ to_tiny_id: int
+ def __init__(self,
+ *,
+ peer_uin: Optional[int] = ...,
+ last_read_time: Optional[int] = ...,
+ crm_sig: Optional[bytes] = ...,
+ peer_type: Optional[int] = ...,
+ chat_type: Optional[int] = ...,
+ cpid: Optional[int] = ...,
+ aio_type: Optional[int] = ...,
+ to_tiny_id: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["aio_type",b"aio_type","chat_type",b"chat_type","cpid",b"cpid","crm_sig",b"crm_sig","last_read_time",b"last_read_time","peer_type",b"peer_type","peer_uin",b"peer_uin","to_tiny_id",b"to_tiny_id"]) -> bool: ...
+ def ClearField(self, field_name: Literal["aio_type",b"aio_type","chat_type",b"chat_type","cpid",b"cpid","crm_sig",b"crm_sig","last_read_time",b"last_read_time","peer_type",b"peer_type","peer_uin",b"peer_uin","to_tiny_id",b"to_tiny_id"]) -> None: ...
class PbC2CReadedReportResp(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
RESULT_FIELD_NUMBER: int
ERRMSG_FIELD_NUMBER: int
SYNC_COOKIE_FIELD_NUMBER: int
- result: int = ...
- errmsg: Text = ...
- sync_cookie: bytes = ...
-
+ result: int
+ errmsg: Text
+ sync_cookie: bytes
def __init__(self,
*,
- result : Optional[int] = ...,
- errmsg : Optional[Text] = ...,
- sync_cookie : Optional[bytes] = ...,
+ result: Optional[int] = ...,
+ errmsg: Optional[Text] = ...,
+ sync_cookie: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"errmsg",b"errmsg",u"result",b"result",u"sync_cookie",b"sync_cookie"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"errmsg",b"errmsg",u"result",b"result",u"sync_cookie",b"sync_cookie"]) -> None: ...
+ def HasField(self, field_name: Literal["errmsg",b"errmsg","result",b"result","sync_cookie",b"sync_cookie"]) -> bool: ...
+ def ClearField(self, field_name: Literal["errmsg",b"errmsg","result",b"result","sync_cookie",b"sync_cookie"]) -> None: ...
class PbC2CUnReadMsgNumReq(Message):
- DESCRIPTOR: Descriptor = ...
-
+ DESCRIPTOR: Descriptor
def __init__(self,
) -> None: ...
class PbC2CUnReadMsgNumResp(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
RESULT_FIELD_NUMBER: int
ERRMSG_FIELD_NUMBER: int
NUM_FIELD_NUMBER: int
- result: int = ...
- errmsg: Text = ...
- num: int = ...
-
+ result: int
+ errmsg: Text
+ num: int
def __init__(self,
*,
- result : Optional[int] = ...,
- errmsg : Optional[Text] = ...,
- num : Optional[int] = ...,
+ result: Optional[int] = ...,
+ errmsg: Optional[Text] = ...,
+ num: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"errmsg",b"errmsg",u"num",b"num",u"result",b"result"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"errmsg",b"errmsg",u"num",b"num",u"result",b"result"]) -> None: ...
+ def HasField(self, field_name: Literal["errmsg",b"errmsg","num",b"num","result",b"result"]) -> bool: ...
+ def ClearField(self, field_name: Literal["errmsg",b"errmsg","num",b"num","result",b"result"]) -> None: ...
class PbDelRoamMsgReq(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
C2C_MSG_FIELD_NUMBER: int
GRP_MSG_FIELD_NUMBER: int
DIS_MSG_FIELD_NUMBER: int
-
@property
def c2c_msg(self) -> C2CMsg: ...
-
@property
def grp_msg(self) -> GrpMsg: ...
-
@property
def dis_msg(self) -> DisMsg: ...
-
def __init__(self,
*,
- c2c_msg : Optional[C2CMsg] = ...,
- grp_msg : Optional[GrpMsg] = ...,
- dis_msg : Optional[DisMsg] = ...,
+ c2c_msg: Optional[C2CMsg] = ...,
+ grp_msg: Optional[GrpMsg] = ...,
+ dis_msg: Optional[DisMsg] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"c2c_msg",b"c2c_msg",u"dis_msg",b"dis_msg",u"grp_msg",b"grp_msg"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"c2c_msg",b"c2c_msg",u"dis_msg",b"dis_msg",u"grp_msg",b"grp_msg"]) -> None: ...
+ def HasField(self, field_name: Literal["c2c_msg",b"c2c_msg","dis_msg",b"dis_msg","grp_msg",b"grp_msg"]) -> bool: ...
+ def ClearField(self, field_name: Literal["c2c_msg",b"c2c_msg","dis_msg",b"dis_msg","grp_msg",b"grp_msg"]) -> None: ...
class C2CMsg(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
FROM_UIN_FIELD_NUMBER: int
PEER_UIN_FIELD_NUMBER: int
TIME_FIELD_NUMBER: int
RANDOM_FIELD_NUMBER: int
SEQ_FIELD_NUMBER: int
- from_uin: int = ...
- peer_uin: int = ...
- time: int = ...
- random: int = ...
- seq: int = ...
-
+ from_uin: int
+ peer_uin: int
+ time: int
+ random: int
+ seq: int
def __init__(self,
*,
- from_uin : Optional[int] = ...,
- peer_uin : Optional[int] = ...,
- time : Optional[int] = ...,
- random : Optional[int] = ...,
- seq : Optional[int] = ...,
+ from_uin: Optional[int] = ...,
+ peer_uin: Optional[int] = ...,
+ time: Optional[int] = ...,
+ random: Optional[int] = ...,
+ seq: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"from_uin",b"from_uin",u"peer_uin",b"peer_uin",u"random",b"random",u"seq",b"seq",u"time",b"time"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"from_uin",b"from_uin",u"peer_uin",b"peer_uin",u"random",b"random",u"seq",b"seq",u"time",b"time"]) -> None: ...
+ def HasField(self, field_name: Literal["from_uin",b"from_uin","peer_uin",b"peer_uin","random",b"random","seq",b"seq","time",b"time"]) -> bool: ...
+ def ClearField(self, field_name: Literal["from_uin",b"from_uin","peer_uin",b"peer_uin","random",b"random","seq",b"seq","time",b"time"]) -> None: ...
class DisMsg(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
DISCUSS_UIN_FIELD_NUMBER: int
SEQ_FIELD_NUMBER: int
- discuss_uin: int = ...
- seq: int = ...
-
+ discuss_uin: int
+ seq: int
def __init__(self,
*,
- discuss_uin : Optional[int] = ...,
- seq : Optional[int] = ...,
+ discuss_uin: Optional[int] = ...,
+ seq: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"discuss_uin",b"discuss_uin",u"seq",b"seq"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"discuss_uin",b"discuss_uin",u"seq",b"seq"]) -> None: ...
+ def HasField(self, field_name: Literal["discuss_uin",b"discuss_uin","seq",b"seq"]) -> bool: ...
+ def ClearField(self, field_name: Literal["discuss_uin",b"discuss_uin","seq",b"seq"]) -> None: ...
class GrpMsg(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
GROUP_CODE_FIELD_NUMBER: int
SEQ_FIELD_NUMBER: int
RESV_FLAG_FIELD_NUMBER: int
- group_code: int = ...
- seq: int = ...
- resv_flag: int = ...
-
+ group_code: int
+ seq: int
+ resv_flag: int
def __init__(self,
*,
- group_code : Optional[int] = ...,
- seq : Optional[int] = ...,
- resv_flag : Optional[int] = ...,
+ group_code: Optional[int] = ...,
+ seq: Optional[int] = ...,
+ resv_flag: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"group_code",b"group_code",u"resv_flag",b"resv_flag",u"seq",b"seq"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"group_code",b"group_code",u"resv_flag",b"resv_flag",u"seq",b"seq"]) -> None: ...
+ def HasField(self, field_name: Literal["group_code",b"group_code","resv_flag",b"resv_flag","seq",b"seq"]) -> bool: ...
+ def ClearField(self, field_name: Literal["group_code",b"group_code","resv_flag",b"resv_flag","seq",b"seq"]) -> None: ...
class PbDelRoamMsgResp(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
RESULT_FIELD_NUMBER: int
ERRMSG_FIELD_NUMBER: int
- result: int = ...
- errmsg: Text = ...
-
+ result: int
+ errmsg: Text
def __init__(self,
*,
- result : Optional[int] = ...,
- errmsg : Optional[Text] = ...,
+ result: Optional[int] = ...,
+ errmsg: Optional[Text] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"errmsg",b"errmsg",u"result",b"result"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"errmsg",b"errmsg",u"result",b"result"]) -> None: ...
+ def HasField(self, field_name: Literal["errmsg",b"errmsg","result",b"result"]) -> bool: ...
+ def ClearField(self, field_name: Literal["errmsg",b"errmsg","result",b"result"]) -> None: ...
class PbDeleteMsgReq(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
class MsgItem(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
FROM_UIN_FIELD_NUMBER: int
TO_UIN_FIELD_NUMBER: int
TYPE_FIELD_NUMBER: int
SEQ_FIELD_NUMBER: int
UID_FIELD_NUMBER: int
SIG_FIELD_NUMBER: int
- from_uin: int = ...
- to_uin: int = ...
- type: int = ...
- seq: int = ...
- uid: int = ...
- sig: bytes = ...
-
+ from_uin: int
+ to_uin: int
+ type: int
+ seq: int
+ uid: int
+ sig: bytes
def __init__(self,
*,
- from_uin : Optional[int] = ...,
- to_uin : Optional[int] = ...,
- type : Optional[int] = ...,
- seq : Optional[int] = ...,
- uid : Optional[int] = ...,
- sig : Optional[bytes] = ...,
+ from_uin: Optional[int] = ...,
+ to_uin: Optional[int] = ...,
+ type: Optional[int] = ...,
+ seq: Optional[int] = ...,
+ uid: Optional[int] = ...,
+ sig: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"from_uin",b"from_uin",u"seq",b"seq",u"sig",b"sig",u"to_uin",b"to_uin",u"type",b"type",u"uid",b"uid"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"from_uin",b"from_uin",u"seq",b"seq",u"sig",b"sig",u"to_uin",b"to_uin",u"type",b"type",u"uid",b"uid"]) -> None: ...
+ def HasField(self, field_name: Literal["from_uin",b"from_uin","seq",b"seq","sig",b"sig","to_uin",b"to_uin","type",b"type","uid",b"uid"]) -> bool: ...
+ def ClearField(self, field_name: Literal["from_uin",b"from_uin","seq",b"seq","sig",b"sig","to_uin",b"to_uin","type",b"type","uid",b"uid"]) -> None: ...
MSG_ITEMS_FIELD_NUMBER: int
-
@property
def msg_items(self) -> RepeatedCompositeFieldContainer[PbDeleteMsgReq.MsgItem]: ...
-
def __init__(self,
*,
- msg_items : Optional[Iterable[PbDeleteMsgReq.MsgItem]] = ...,
+ msg_items: Optional[Iterable[PbDeleteMsgReq.MsgItem]] = ...,
) -> None: ...
- def ClearField(self, field_name: Literal[u"msg_items",b"msg_items"]) -> None: ...
+ def ClearField(self, field_name: Literal["msg_items",b"msg_items"]) -> None: ...
class PbDeleteMsgResp(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
RESULT_FIELD_NUMBER: int
ERRMSG_FIELD_NUMBER: int
- result: int = ...
- errmsg: Text = ...
-
+ result: int
+ errmsg: Text
def __init__(self,
*,
- result : Optional[int] = ...,
- errmsg : Optional[Text] = ...,
+ result: Optional[int] = ...,
+ errmsg: Optional[Text] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"errmsg",b"errmsg",u"result",b"result"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"errmsg",b"errmsg",u"result",b"result"]) -> None: ...
+ def HasField(self, field_name: Literal["errmsg",b"errmsg","result",b"result"]) -> bool: ...
+ def ClearField(self, field_name: Literal["errmsg",b"errmsg","result",b"result"]) -> None: ...
class PbDiscussReadedReportReq(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
CONF_UIN_FIELD_NUMBER: int
LAST_READ_SEQ_FIELD_NUMBER: int
- conf_uin: int = ...
- last_read_seq: int = ...
-
+ conf_uin: int
+ last_read_seq: int
def __init__(self,
*,
- conf_uin : Optional[int] = ...,
- last_read_seq : Optional[int] = ...,
+ conf_uin: Optional[int] = ...,
+ last_read_seq: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"conf_uin",b"conf_uin",u"last_read_seq",b"last_read_seq"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"conf_uin",b"conf_uin",u"last_read_seq",b"last_read_seq"]) -> None: ...
+ def HasField(self, field_name: Literal["conf_uin",b"conf_uin","last_read_seq",b"last_read_seq"]) -> bool: ...
+ def ClearField(self, field_name: Literal["conf_uin",b"conf_uin","last_read_seq",b"last_read_seq"]) -> None: ...
class PbDiscussReadedReportResp(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
RESULT_FIELD_NUMBER: int
ERRMSG_FIELD_NUMBER: int
CONF_UIN_FIELD_NUMBER: int
MEMBER_SEQ_FIELD_NUMBER: int
CONF_SEQ_FIELD_NUMBER: int
- result: int = ...
- errmsg: Text = ...
- conf_uin: int = ...
- member_seq: int = ...
- conf_seq: int = ...
-
+ result: int
+ errmsg: Text
+ conf_uin: int
+ member_seq: int
+ conf_seq: int
def __init__(self,
*,
- result : Optional[int] = ...,
- errmsg : Optional[Text] = ...,
- conf_uin : Optional[int] = ...,
- member_seq : Optional[int] = ...,
- conf_seq : Optional[int] = ...,
+ result: Optional[int] = ...,
+ errmsg: Optional[Text] = ...,
+ conf_uin: Optional[int] = ...,
+ member_seq: Optional[int] = ...,
+ conf_seq: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"conf_seq",b"conf_seq",u"conf_uin",b"conf_uin",u"errmsg",b"errmsg",u"member_seq",b"member_seq",u"result",b"result"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"conf_seq",b"conf_seq",u"conf_uin",b"conf_uin",u"errmsg",b"errmsg",u"member_seq",b"member_seq",u"result",b"result"]) -> None: ...
+ def HasField(self, field_name: Literal["conf_seq",b"conf_seq","conf_uin",b"conf_uin","errmsg",b"errmsg","member_seq",b"member_seq","result",b"result"]) -> bool: ...
+ def ClearField(self, field_name: Literal["conf_seq",b"conf_seq","conf_uin",b"conf_uin","errmsg",b"errmsg","member_seq",b"member_seq","result",b"result"]) -> None: ...
class PbGetDiscussMsgReq(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
DISCUSS_UIN_FIELD_NUMBER: int
END_SEQ_FIELD_NUMBER: int
BEGIN_SEQ_FIELD_NUMBER: int
@@ -817,29 +767,28 @@ class PbGetDiscussMsgReq(Message):
DISCUSS_INFO_SEQ_FIELD_NUMBER: int
FILTER_FIELD_NUMBER: int
MEMBER_SEQ_FIELD_NUMBER: int
- discuss_uin: int = ...
- end_seq: int = ...
- begin_seq: int = ...
- last_get_time: int = ...
- discuss_info_seq: int = ...
- filter: int = ...
- member_seq: int = ...
-
- def __init__(self,
- *,
- discuss_uin : Optional[int] = ...,
- end_seq : Optional[int] = ...,
- begin_seq : Optional[int] = ...,
- last_get_time : Optional[int] = ...,
- discuss_info_seq : Optional[int] = ...,
- filter : Optional[int] = ...,
- member_seq : Optional[int] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal[u"begin_seq",b"begin_seq",u"discuss_info_seq",b"discuss_info_seq",u"discuss_uin",b"discuss_uin",u"end_seq",b"end_seq",u"filter",b"filter",u"last_get_time",b"last_get_time",u"member_seq",b"member_seq"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"begin_seq",b"begin_seq",u"discuss_info_seq",b"discuss_info_seq",u"discuss_uin",b"discuss_uin",u"end_seq",b"end_seq",u"filter",b"filter",u"last_get_time",b"last_get_time",u"member_seq",b"member_seq"]) -> None: ...
+ discuss_uin: int
+ end_seq: int
+ begin_seq: int
+ last_get_time: int
+ discuss_info_seq: int
+ filter: int
+ member_seq: int
+ def __init__(self,
+ *,
+ discuss_uin: Optional[int] = ...,
+ end_seq: Optional[int] = ...,
+ begin_seq: Optional[int] = ...,
+ last_get_time: Optional[int] = ...,
+ discuss_info_seq: Optional[int] = ...,
+ filter: Optional[int] = ...,
+ member_seq: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["begin_seq",b"begin_seq","discuss_info_seq",b"discuss_info_seq","discuss_uin",b"discuss_uin","end_seq",b"end_seq","filter",b"filter","last_get_time",b"last_get_time","member_seq",b"member_seq"]) -> bool: ...
+ def ClearField(self, field_name: Literal["begin_seq",b"begin_seq","discuss_info_seq",b"discuss_info_seq","discuss_uin",b"discuss_uin","end_seq",b"end_seq","filter",b"filter","last_get_time",b"last_get_time","member_seq",b"member_seq"]) -> None: ...
class PbGetDiscussMsgResp(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
RESULT_FIELD_NUMBER: int
ERRMSG_FIELD_NUMBER: int
DISCUSS_UIN_FIELD_NUMBER: int
@@ -848,33 +797,31 @@ class PbGetDiscussMsgResp(Message):
MSG_FIELD_NUMBER: int
LAST_GET_TIME_FIELD_NUMBER: int
DISCUSS_INFO_SEQ_FIELD_NUMBER: int
- result: int = ...
- errmsg: Text = ...
- discuss_uin: int = ...
- return_end_seq: int = ...
- return_begin_seq: int = ...
- last_get_time: int = ...
- discuss_info_seq: int = ...
-
+ result: int
+ errmsg: Text
+ discuss_uin: int
+ return_end_seq: int
+ return_begin_seq: int
@property
def msg(self) -> RepeatedCompositeFieldContainer[Msg]: ...
-
+ last_get_time: int
+ discuss_info_seq: int
def __init__(self,
*,
- result : Optional[int] = ...,
- errmsg : Optional[Text] = ...,
- discuss_uin : Optional[int] = ...,
- return_end_seq : Optional[int] = ...,
- return_begin_seq : Optional[int] = ...,
- msg : Optional[Iterable[Msg]] = ...,
- last_get_time : Optional[int] = ...,
- discuss_info_seq : Optional[int] = ...,
+ result: Optional[int] = ...,
+ errmsg: Optional[Text] = ...,
+ discuss_uin: Optional[int] = ...,
+ return_end_seq: Optional[int] = ...,
+ return_begin_seq: Optional[int] = ...,
+ msg: Optional[Iterable[Msg]] = ...,
+ last_get_time: Optional[int] = ...,
+ discuss_info_seq: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"discuss_info_seq",b"discuss_info_seq",u"discuss_uin",b"discuss_uin",u"errmsg",b"errmsg",u"last_get_time",b"last_get_time",u"result",b"result",u"return_begin_seq",b"return_begin_seq",u"return_end_seq",b"return_end_seq"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"discuss_info_seq",b"discuss_info_seq",u"discuss_uin",b"discuss_uin",u"errmsg",b"errmsg",u"last_get_time",b"last_get_time",u"msg",b"msg",u"result",b"result",u"return_begin_seq",b"return_begin_seq",u"return_end_seq",b"return_end_seq"]) -> None: ...
+ def HasField(self, field_name: Literal["discuss_info_seq",b"discuss_info_seq","discuss_uin",b"discuss_uin","errmsg",b"errmsg","last_get_time",b"last_get_time","result",b"result","return_begin_seq",b"return_begin_seq","return_end_seq",b"return_end_seq"]) -> bool: ...
+ def ClearField(self, field_name: Literal["discuss_info_seq",b"discuss_info_seq","discuss_uin",b"discuss_uin","errmsg",b"errmsg","last_get_time",b"last_get_time","msg",b"msg","result",b"result","return_begin_seq",b"return_begin_seq","return_end_seq",b"return_end_seq"]) -> None: ...
class PbGetGroupMsgReq(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
GROUP_CODE_FIELD_NUMBER: int
BEGIN_SEQ_FIELD_NUMBER: int
END_SEQ_FIELD_NUMBER: int
@@ -883,60 +830,57 @@ class PbGetGroupMsgReq(Message):
PUBLIC_GROUP_FIELD_NUMBER: int
SHIELD_FLAG_FIELD_NUMBER: int
SAVE_TRAFFIC_FLAG_FIELD_NUMBER: int
- group_code: int = ...
- begin_seq: int = ...
- end_seq: int = ...
- filter: int = ...
- member_seq: int = ...
- public_group: bool = ...
- shield_flag: int = ...
- save_traffic_flag: int = ...
-
- def __init__(self,
- *,
- group_code : Optional[int] = ...,
- begin_seq : Optional[int] = ...,
- end_seq : Optional[int] = ...,
- filter : Optional[int] = ...,
- member_seq : Optional[int] = ...,
- public_group : Optional[bool] = ...,
- shield_flag : Optional[int] = ...,
- save_traffic_flag : Optional[int] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal[u"begin_seq",b"begin_seq",u"end_seq",b"end_seq",u"filter",b"filter",u"group_code",b"group_code",u"member_seq",b"member_seq",u"public_group",b"public_group",u"save_traffic_flag",b"save_traffic_flag",u"shield_flag",b"shield_flag"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"begin_seq",b"begin_seq",u"end_seq",b"end_seq",u"filter",b"filter",u"group_code",b"group_code",u"member_seq",b"member_seq",u"public_group",b"public_group",u"save_traffic_flag",b"save_traffic_flag",u"shield_flag",b"shield_flag"]) -> None: ...
+ group_code: int
+ begin_seq: int
+ end_seq: int
+ filter: int
+ member_seq: int
+ public_group: bool
+ shield_flag: int
+ save_traffic_flag: int
+ def __init__(self,
+ *,
+ group_code: Optional[int] = ...,
+ begin_seq: Optional[int] = ...,
+ end_seq: Optional[int] = ...,
+ filter: Optional[int] = ...,
+ member_seq: Optional[int] = ...,
+ public_group: Optional[bool] = ...,
+ shield_flag: Optional[int] = ...,
+ save_traffic_flag: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["begin_seq",b"begin_seq","end_seq",b"end_seq","filter",b"filter","group_code",b"group_code","member_seq",b"member_seq","public_group",b"public_group","save_traffic_flag",b"save_traffic_flag","shield_flag",b"shield_flag"]) -> bool: ...
+ def ClearField(self, field_name: Literal["begin_seq",b"begin_seq","end_seq",b"end_seq","filter",b"filter","group_code",b"group_code","member_seq",b"member_seq","public_group",b"public_group","save_traffic_flag",b"save_traffic_flag","shield_flag",b"shield_flag"]) -> None: ...
class PbGetGroupMsgResp(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
RESULT_FIELD_NUMBER: int
ERRMSG_FIELD_NUMBER: int
GROUP_CODE_FIELD_NUMBER: int
RETURN_BEGIN_SEQ_FIELD_NUMBER: int
RETURN_END_SEQ_FIELD_NUMBER: int
MSG_FIELD_NUMBER: int
- result: int = ...
- errmsg: Text = ...
- group_code: int = ...
- return_begin_seq: int = ...
- return_end_seq: int = ...
-
+ result: int
+ errmsg: Text
+ group_code: int
+ return_begin_seq: int
+ return_end_seq: int
@property
def msg(self) -> RepeatedCompositeFieldContainer[Msg]: ...
-
def __init__(self,
*,
- result : Optional[int] = ...,
- errmsg : Optional[Text] = ...,
- group_code : Optional[int] = ...,
- return_begin_seq : Optional[int] = ...,
- return_end_seq : Optional[int] = ...,
- msg : Optional[Iterable[Msg]] = ...,
+ result: Optional[int] = ...,
+ errmsg: Optional[Text] = ...,
+ group_code: Optional[int] = ...,
+ return_begin_seq: Optional[int] = ...,
+ return_end_seq: Optional[int] = ...,
+ msg: Optional[Iterable[Msg]] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"errmsg",b"errmsg",u"group_code",b"group_code",u"result",b"result",u"return_begin_seq",b"return_begin_seq",u"return_end_seq",b"return_end_seq"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"errmsg",b"errmsg",u"group_code",b"group_code",u"msg",b"msg",u"result",b"result",u"return_begin_seq",b"return_begin_seq",u"return_end_seq",b"return_end_seq"]) -> None: ...
+ def HasField(self, field_name: Literal["errmsg",b"errmsg","group_code",b"group_code","result",b"result","return_begin_seq",b"return_begin_seq","return_end_seq",b"return_end_seq"]) -> bool: ...
+ def ClearField(self, field_name: Literal["errmsg",b"errmsg","group_code",b"group_code","msg",b"msg","result",b"result","return_begin_seq",b"return_begin_seq","return_end_seq",b"return_end_seq"]) -> None: ...
class PbGetMsgReq(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
SYNC_FLAG_FIELD_NUMBER: int
SYNC_COOKIE_FIELD_NUMBER: int
RAMBLE_FLAG_FIELD_NUMBER: int
@@ -949,39 +893,38 @@ class PbGetMsgReq(Message):
PUBACCOUNT_COOKIE_FIELD_NUMBER: int
CTRL_BUF_FIELD_NUMBER: int
SERVER_BUF_FIELD_NUMBER: int
- sync_flag: int = ...
- sync_cookie: bytes = ...
- ramble_flag: int = ...
- latest_ramble_number: int = ...
- other_ramble_number: int = ...
- online_sync_flag: int = ...
- context_flag: int = ...
- whisper_session_id: int = ...
- req_type: int = ...
- pubaccount_cookie: bytes = ...
- ctrl_buf: bytes = ...
- server_buf: bytes = ...
-
- def __init__(self,
- *,
- sync_flag : Optional[int] = ...,
- sync_cookie : Optional[bytes] = ...,
- ramble_flag : Optional[int] = ...,
- latest_ramble_number : Optional[int] = ...,
- other_ramble_number : Optional[int] = ...,
- online_sync_flag : Optional[int] = ...,
- context_flag : Optional[int] = ...,
- whisper_session_id : Optional[int] = ...,
- req_type : Optional[int] = ...,
- pubaccount_cookie : Optional[bytes] = ...,
- ctrl_buf : Optional[bytes] = ...,
- server_buf : Optional[bytes] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal[u"context_flag",b"context_flag",u"ctrl_buf",b"ctrl_buf",u"latest_ramble_number",b"latest_ramble_number",u"online_sync_flag",b"online_sync_flag",u"other_ramble_number",b"other_ramble_number",u"pubaccount_cookie",b"pubaccount_cookie",u"ramble_flag",b"ramble_flag",u"req_type",b"req_type",u"server_buf",b"server_buf",u"sync_cookie",b"sync_cookie",u"sync_flag",b"sync_flag",u"whisper_session_id",b"whisper_session_id"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"context_flag",b"context_flag",u"ctrl_buf",b"ctrl_buf",u"latest_ramble_number",b"latest_ramble_number",u"online_sync_flag",b"online_sync_flag",u"other_ramble_number",b"other_ramble_number",u"pubaccount_cookie",b"pubaccount_cookie",u"ramble_flag",b"ramble_flag",u"req_type",b"req_type",u"server_buf",b"server_buf",u"sync_cookie",b"sync_cookie",u"sync_flag",b"sync_flag",u"whisper_session_id",b"whisper_session_id"]) -> None: ...
+ sync_flag: int
+ sync_cookie: bytes
+ ramble_flag: int
+ latest_ramble_number: int
+ other_ramble_number: int
+ online_sync_flag: int
+ context_flag: int
+ whisper_session_id: int
+ req_type: int
+ pubaccount_cookie: bytes
+ ctrl_buf: bytes
+ server_buf: bytes
+ def __init__(self,
+ *,
+ sync_flag: Optional[int] = ...,
+ sync_cookie: Optional[bytes] = ...,
+ ramble_flag: Optional[int] = ...,
+ latest_ramble_number: Optional[int] = ...,
+ other_ramble_number: Optional[int] = ...,
+ online_sync_flag: Optional[int] = ...,
+ context_flag: Optional[int] = ...,
+ whisper_session_id: Optional[int] = ...,
+ req_type: Optional[int] = ...,
+ pubaccount_cookie: Optional[bytes] = ...,
+ ctrl_buf: Optional[bytes] = ...,
+ server_buf: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["context_flag",b"context_flag","ctrl_buf",b"ctrl_buf","latest_ramble_number",b"latest_ramble_number","online_sync_flag",b"online_sync_flag","other_ramble_number",b"other_ramble_number","pubaccount_cookie",b"pubaccount_cookie","ramble_flag",b"ramble_flag","req_type",b"req_type","server_buf",b"server_buf","sync_cookie",b"sync_cookie","sync_flag",b"sync_flag","whisper_session_id",b"whisper_session_id"]) -> bool: ...
+ def ClearField(self, field_name: Literal["context_flag",b"context_flag","ctrl_buf",b"ctrl_buf","latest_ramble_number",b"latest_ramble_number","online_sync_flag",b"online_sync_flag","other_ramble_number",b"other_ramble_number","pubaccount_cookie",b"pubaccount_cookie","ramble_flag",b"ramble_flag","req_type",b"req_type","server_buf",b"server_buf","sync_cookie",b"sync_cookie","sync_flag",b"sync_flag","whisper_session_id",b"whisper_session_id"]) -> None: ...
class PbGetMsgResp(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
RESULT_FIELD_NUMBER: int
ERRMSG_FIELD_NUMBER: int
SYNC_COOKIE_FIELD_NUMBER: int
@@ -992,58 +935,55 @@ class PbGetMsgResp(Message):
PUBACCOUNT_COOKIE_FIELD_NUMBER: int
IS_PARTIAL_SYNC_FIELD_NUMBER: int
CTRL_BUF_FIELD_NUMBER: int
- result: int = ...
- errmsg: Text = ...
- sync_cookie: bytes = ...
- sync_flag: int = ...
- bind_uin: int = ...
- rsp_type: int = ...
- pubaccount_cookie: bytes = ...
- is_partial_sync: bool = ...
- ctrl_buf: bytes = ...
-
+ result: int
+ errmsg: Text
+ sync_cookie: bytes
+ sync_flag: int
@property
def uin_pair_msgs(self) -> RepeatedCompositeFieldContainer[UinPairMsg]: ...
-
- def __init__(self,
- *,
- result : Optional[int] = ...,
- errmsg : Optional[Text] = ...,
- sync_cookie : Optional[bytes] = ...,
- sync_flag : Optional[int] = ...,
- uin_pair_msgs : Optional[Iterable[UinPairMsg]] = ...,
- bind_uin : Optional[int] = ...,
- rsp_type : Optional[int] = ...,
- pubaccount_cookie : Optional[bytes] = ...,
- is_partial_sync : Optional[bool] = ...,
- ctrl_buf : Optional[bytes] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal[u"bind_uin",b"bind_uin",u"ctrl_buf",b"ctrl_buf",u"errmsg",b"errmsg",u"is_partial_sync",b"is_partial_sync",u"pubaccount_cookie",b"pubaccount_cookie",u"result",b"result",u"rsp_type",b"rsp_type",u"sync_cookie",b"sync_cookie",u"sync_flag",b"sync_flag"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"bind_uin",b"bind_uin",u"ctrl_buf",b"ctrl_buf",u"errmsg",b"errmsg",u"is_partial_sync",b"is_partial_sync",u"pubaccount_cookie",b"pubaccount_cookie",u"result",b"result",u"rsp_type",b"rsp_type",u"sync_cookie",b"sync_cookie",u"sync_flag",b"sync_flag",u"uin_pair_msgs",b"uin_pair_msgs"]) -> None: ...
+ bind_uin: int
+ rsp_type: int
+ pubaccount_cookie: bytes
+ is_partial_sync: bool
+ ctrl_buf: bytes
+ def __init__(self,
+ *,
+ result: Optional[int] = ...,
+ errmsg: Optional[Text] = ...,
+ sync_cookie: Optional[bytes] = ...,
+ sync_flag: Optional[int] = ...,
+ uin_pair_msgs: Optional[Iterable[UinPairMsg]] = ...,
+ bind_uin: Optional[int] = ...,
+ rsp_type: Optional[int] = ...,
+ pubaccount_cookie: Optional[bytes] = ...,
+ is_partial_sync: Optional[bool] = ...,
+ ctrl_buf: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["bind_uin",b"bind_uin","ctrl_buf",b"ctrl_buf","errmsg",b"errmsg","is_partial_sync",b"is_partial_sync","pubaccount_cookie",b"pubaccount_cookie","result",b"result","rsp_type",b"rsp_type","sync_cookie",b"sync_cookie","sync_flag",b"sync_flag"]) -> bool: ...
+ def ClearField(self, field_name: Literal["bind_uin",b"bind_uin","ctrl_buf",b"ctrl_buf","errmsg",b"errmsg","is_partial_sync",b"is_partial_sync","pubaccount_cookie",b"pubaccount_cookie","result",b"result","rsp_type",b"rsp_type","sync_cookie",b"sync_cookie","sync_flag",b"sync_flag","uin_pair_msgs",b"uin_pair_msgs"]) -> None: ...
class PbGetOneDayRoamMsgReq(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
PEER_UIN_FIELD_NUMBER: int
LAST_MSGTIME_FIELD_NUMBER: int
RANDOM_FIELD_NUMBER: int
READ_CNT_FIELD_NUMBER: int
- peer_uin: int = ...
- last_msgtime: int = ...
- random: int = ...
- read_cnt: int = ...
-
+ peer_uin: int
+ last_msgtime: int
+ random: int
+ read_cnt: int
def __init__(self,
*,
- peer_uin : Optional[int] = ...,
- last_msgtime : Optional[int] = ...,
- random : Optional[int] = ...,
- read_cnt : Optional[int] = ...,
+ peer_uin: Optional[int] = ...,
+ last_msgtime: Optional[int] = ...,
+ random: Optional[int] = ...,
+ read_cnt: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"last_msgtime",b"last_msgtime",u"peer_uin",b"peer_uin",u"random",b"random",u"read_cnt",b"read_cnt"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"last_msgtime",b"last_msgtime",u"peer_uin",b"peer_uin",u"random",b"random",u"read_cnt",b"read_cnt"]) -> None: ...
+ def HasField(self, field_name: Literal["last_msgtime",b"last_msgtime","peer_uin",b"peer_uin","random",b"random","read_cnt",b"read_cnt"]) -> bool: ...
+ def ClearField(self, field_name: Literal["last_msgtime",b"last_msgtime","peer_uin",b"peer_uin","random",b"random","read_cnt",b"read_cnt"]) -> None: ...
class PbGetOneDayRoamMsgResp(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
RESULT_FIELD_NUMBER: int
ERRMSG_FIELD_NUMBER: int
PEER_UIN_FIELD_NUMBER: int
@@ -1051,31 +991,29 @@ class PbGetOneDayRoamMsgResp(Message):
RANDOM_FIELD_NUMBER: int
MSG_FIELD_NUMBER: int
ISCOMPLETE_FIELD_NUMBER: int
- result: int = ...
- errmsg: Text = ...
- peer_uin: int = ...
- last_msgtime: int = ...
- random: int = ...
- iscomplete: int = ...
-
+ result: int
+ errmsg: Text
+ peer_uin: int
+ last_msgtime: int
+ random: int
@property
def msg(self) -> RepeatedCompositeFieldContainer[Msg]: ...
-
+ iscomplete: int
def __init__(self,
*,
- result : Optional[int] = ...,
- errmsg : Optional[Text] = ...,
- peer_uin : Optional[int] = ...,
- last_msgtime : Optional[int] = ...,
- random : Optional[int] = ...,
- msg : Optional[Iterable[Msg]] = ...,
- iscomplete : Optional[int] = ...,
+ result: Optional[int] = ...,
+ errmsg: Optional[Text] = ...,
+ peer_uin: Optional[int] = ...,
+ last_msgtime: Optional[int] = ...,
+ random: Optional[int] = ...,
+ msg: Optional[Iterable[Msg]] = ...,
+ iscomplete: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"errmsg",b"errmsg",u"iscomplete",b"iscomplete",u"last_msgtime",b"last_msgtime",u"peer_uin",b"peer_uin",u"random",b"random",u"result",b"result"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"errmsg",b"errmsg",u"iscomplete",b"iscomplete",u"last_msgtime",b"last_msgtime",u"msg",b"msg",u"peer_uin",b"peer_uin",u"random",b"random",u"result",b"result"]) -> None: ...
+ def HasField(self, field_name: Literal["errmsg",b"errmsg","iscomplete",b"iscomplete","last_msgtime",b"last_msgtime","peer_uin",b"peer_uin","random",b"random","result",b"result"]) -> bool: ...
+ def ClearField(self, field_name: Literal["errmsg",b"errmsg","iscomplete",b"iscomplete","last_msgtime",b"last_msgtime","msg",b"msg","peer_uin",b"peer_uin","random",b"random","result",b"result"]) -> None: ...
class PbGetRoamMsgReq(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
PEER_UIN_FIELD_NUMBER: int
LAST_MSGTIME_FIELD_NUMBER: int
RANDOM_FIELD_NUMBER: int
@@ -1086,35 +1024,34 @@ class PbGetRoamMsgReq(Message):
SUBCMD_FIELD_NUMBER: int
BEGIN_MSGTIME_FIELD_NUMBER: int
REQ_TYPE_FIELD_NUMBER: int
- peer_uin: int = ...
- last_msgtime: int = ...
- random: int = ...
- read_cnt: int = ...
- check_pwd: int = ...
- sig: bytes = ...
- pwd: bytes = ...
- subcmd: int = ...
- begin_msgtime: int = ...
- req_type: int = ...
-
- def __init__(self,
- *,
- peer_uin : Optional[int] = ...,
- last_msgtime : Optional[int] = ...,
- random : Optional[int] = ...,
- read_cnt : Optional[int] = ...,
- check_pwd : Optional[int] = ...,
- sig : Optional[bytes] = ...,
- pwd : Optional[bytes] = ...,
- subcmd : Optional[int] = ...,
- begin_msgtime : Optional[int] = ...,
- req_type : Optional[int] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal[u"begin_msgtime",b"begin_msgtime",u"check_pwd",b"check_pwd",u"last_msgtime",b"last_msgtime",u"peer_uin",b"peer_uin",u"pwd",b"pwd",u"random",b"random",u"read_cnt",b"read_cnt",u"req_type",b"req_type",u"sig",b"sig",u"subcmd",b"subcmd"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"begin_msgtime",b"begin_msgtime",u"check_pwd",b"check_pwd",u"last_msgtime",b"last_msgtime",u"peer_uin",b"peer_uin",u"pwd",b"pwd",u"random",b"random",u"read_cnt",b"read_cnt",u"req_type",b"req_type",u"sig",b"sig",u"subcmd",b"subcmd"]) -> None: ...
+ peer_uin: int
+ last_msgtime: int
+ random: int
+ read_cnt: int
+ check_pwd: int
+ sig: bytes
+ pwd: bytes
+ subcmd: int
+ begin_msgtime: int
+ req_type: int
+ def __init__(self,
+ *,
+ peer_uin: Optional[int] = ...,
+ last_msgtime: Optional[int] = ...,
+ random: Optional[int] = ...,
+ read_cnt: Optional[int] = ...,
+ check_pwd: Optional[int] = ...,
+ sig: Optional[bytes] = ...,
+ pwd: Optional[bytes] = ...,
+ subcmd: Optional[int] = ...,
+ begin_msgtime: Optional[int] = ...,
+ req_type: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["begin_msgtime",b"begin_msgtime","check_pwd",b"check_pwd","last_msgtime",b"last_msgtime","peer_uin",b"peer_uin","pwd",b"pwd","random",b"random","read_cnt",b"read_cnt","req_type",b"req_type","sig",b"sig","subcmd",b"subcmd"]) -> bool: ...
+ def ClearField(self, field_name: Literal["begin_msgtime",b"begin_msgtime","check_pwd",b"check_pwd","last_msgtime",b"last_msgtime","peer_uin",b"peer_uin","pwd",b"pwd","random",b"random","read_cnt",b"read_cnt","req_type",b"req_type","sig",b"sig","subcmd",b"subcmd"]) -> None: ...
class PbGetRoamMsgResp(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
RESULT_FIELD_NUMBER: int
ERRMSG_FIELD_NUMBER: int
PEER_UIN_FIELD_NUMBER: int
@@ -1122,78 +1059,73 @@ class PbGetRoamMsgResp(Message):
RANDOM_FIELD_NUMBER: int
MSG_FIELD_NUMBER: int
SIG_FIELD_NUMBER: int
- result: int = ...
- errmsg: Text = ...
- peer_uin: int = ...
- last_msgtime: int = ...
- random: int = ...
- sig: bytes = ...
-
+ result: int
+ errmsg: Text
+ peer_uin: int
+ last_msgtime: int
+ random: int
@property
def msg(self) -> RepeatedCompositeFieldContainer[Msg]: ...
-
+ sig: bytes
def __init__(self,
*,
- result : Optional[int] = ...,
- errmsg : Optional[Text] = ...,
- peer_uin : Optional[int] = ...,
- last_msgtime : Optional[int] = ...,
- random : Optional[int] = ...,
- msg : Optional[Iterable[Msg]] = ...,
- sig : Optional[bytes] = ...,
+ result: Optional[int] = ...,
+ errmsg: Optional[Text] = ...,
+ peer_uin: Optional[int] = ...,
+ last_msgtime: Optional[int] = ...,
+ random: Optional[int] = ...,
+ msg: Optional[Iterable[Msg]] = ...,
+ sig: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"errmsg",b"errmsg",u"last_msgtime",b"last_msgtime",u"peer_uin",b"peer_uin",u"random",b"random",u"result",b"result",u"sig",b"sig"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"errmsg",b"errmsg",u"last_msgtime",b"last_msgtime",u"msg",b"msg",u"peer_uin",b"peer_uin",u"random",b"random",u"result",b"result",u"sig",b"sig"]) -> None: ...
+ def HasField(self, field_name: Literal["errmsg",b"errmsg","last_msgtime",b"last_msgtime","peer_uin",b"peer_uin","random",b"random","result",b"result","sig",b"sig"]) -> bool: ...
+ def ClearField(self, field_name: Literal["errmsg",b"errmsg","last_msgtime",b"last_msgtime","msg",b"msg","peer_uin",b"peer_uin","random",b"random","result",b"result","sig",b"sig"]) -> None: ...
class PbGroupMsgWithDrawReq(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
SUB_CMD_FIELD_NUMBER: int
GROUP_TYPE_FIELD_NUMBER: int
GROUP_CODE_FIELD_NUMBER: int
LIST_FIELD_NUMBER: int
USERDEF_FIELD_NUMBER: int
- sub_cmd: int = ...
- group_type: int = ...
- group_code: int = ...
- userdef: bytes = ...
-
+ sub_cmd: int
+ group_type: int
+ group_code: int
@property
def list(self) -> RepeatedCompositeFieldContainer[MessageInfo]: ...
-
+ userdef: bytes
def __init__(self,
*,
- sub_cmd : Optional[int] = ...,
- group_type : Optional[int] = ...,
- group_code : Optional[int] = ...,
- list : Optional[Iterable[MessageInfo]] = ...,
- userdef : Optional[bytes] = ...,
+ sub_cmd: Optional[int] = ...,
+ group_type: Optional[int] = ...,
+ group_code: Optional[int] = ...,
+ list: Optional[Iterable[MessageInfo]] = ...,
+ userdef: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"group_code",b"group_code",u"group_type",b"group_type",u"sub_cmd",b"sub_cmd",u"userdef",b"userdef"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"group_code",b"group_code",u"group_type",b"group_type",u"list",b"list",u"sub_cmd",b"sub_cmd",u"userdef",b"userdef"]) -> None: ...
+ def HasField(self, field_name: Literal["group_code",b"group_code","group_type",b"group_type","sub_cmd",b"sub_cmd","userdef",b"userdef"]) -> bool: ...
+ def ClearField(self, field_name: Literal["group_code",b"group_code","group_type",b"group_type","list",b"list","sub_cmd",b"sub_cmd","userdef",b"userdef"]) -> None: ...
class MessageInfo(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
MSG_SEQ_FIELD_NUMBER: int
MSG_RANDOM_FIELD_NUMBER: int
MSG_TYPE_FIELD_NUMBER: int
RESV_FLAG_FIELD_NUMBER: int
- msg_seq: int = ...
- msg_random: int = ...
- msg_type: int = ...
- resv_flag: int = ...
-
+ msg_seq: int
+ msg_random: int
+ msg_type: int
+ resv_flag: int
def __init__(self,
*,
- msg_seq : Optional[int] = ...,
- msg_random : Optional[int] = ...,
- msg_type : Optional[int] = ...,
- resv_flag : Optional[int] = ...,
+ msg_seq: Optional[int] = ...,
+ msg_random: Optional[int] = ...,
+ msg_type: Optional[int] = ...,
+ resv_flag: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"msg_random",b"msg_random",u"msg_seq",b"msg_seq",u"msg_type",b"msg_type",u"resv_flag",b"resv_flag"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"msg_random",b"msg_random",u"msg_seq",b"msg_seq",u"msg_type",b"msg_type",u"resv_flag",b"resv_flag"]) -> None: ...
+ def HasField(self, field_name: Literal["msg_random",b"msg_random","msg_seq",b"msg_seq","msg_type",b"msg_type","resv_flag",b"resv_flag"]) -> bool: ...
+ def ClearField(self, field_name: Literal["msg_random",b"msg_random","msg_seq",b"msg_seq","msg_type",b"msg_type","resv_flag",b"resv_flag"]) -> None: ...
class PbGroupMsgWithDrawResp(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
RESULT_FIELD_NUMBER: int
ERRMSG_FIELD_NUMBER: int
SUB_CMD_FIELD_NUMBER: int
@@ -1202,380 +1134,342 @@ class PbGroupMsgWithDrawResp(Message):
FAILED_MSG_LIST_FIELD_NUMBER: int
USERDEF_FIELD_NUMBER: int
WORDING_INFO_FIELD_NUMBER: int
- result: int = ...
- errmsg: Text = ...
- sub_cmd: int = ...
- group_type: int = ...
- group_code: int = ...
- userdef: bytes = ...
-
+ result: int
+ errmsg: Text
+ sub_cmd: int
+ group_type: int
+ group_code: int
@property
def failed_msg_list(self) -> RepeatedCompositeFieldContainer[MessageResult]: ...
-
+ userdef: bytes
@property
def wording_info(self) -> WithDrawWordingInfo: ...
-
def __init__(self,
*,
- result : Optional[int] = ...,
- errmsg : Optional[Text] = ...,
- sub_cmd : Optional[int] = ...,
- group_type : Optional[int] = ...,
- group_code : Optional[int] = ...,
- failed_msg_list : Optional[Iterable[MessageResult]] = ...,
- userdef : Optional[bytes] = ...,
- wording_info : Optional[WithDrawWordingInfo] = ...,
+ result: Optional[int] = ...,
+ errmsg: Optional[Text] = ...,
+ sub_cmd: Optional[int] = ...,
+ group_type: Optional[int] = ...,
+ group_code: Optional[int] = ...,
+ failed_msg_list: Optional[Iterable[MessageResult]] = ...,
+ userdef: Optional[bytes] = ...,
+ wording_info: Optional[WithDrawWordingInfo] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"errmsg",b"errmsg",u"group_code",b"group_code",u"group_type",b"group_type",u"result",b"result",u"sub_cmd",b"sub_cmd",u"userdef",b"userdef",u"wording_info",b"wording_info"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"errmsg",b"errmsg",u"failed_msg_list",b"failed_msg_list",u"group_code",b"group_code",u"group_type",b"group_type",u"result",b"result",u"sub_cmd",b"sub_cmd",u"userdef",b"userdef",u"wording_info",b"wording_info"]) -> None: ...
+ def HasField(self, field_name: Literal["errmsg",b"errmsg","group_code",b"group_code","group_type",b"group_type","result",b"result","sub_cmd",b"sub_cmd","userdef",b"userdef","wording_info",b"wording_info"]) -> bool: ...
+ def ClearField(self, field_name: Literal["errmsg",b"errmsg","failed_msg_list",b"failed_msg_list","group_code",b"group_code","group_type",b"group_type","result",b"result","sub_cmd",b"sub_cmd","userdef",b"userdef","wording_info",b"wording_info"]) -> None: ...
class MessageResult(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
RESULT_FIELD_NUMBER: int
MSG_SEQ_FIELD_NUMBER: int
MSG_TIME_FIELD_NUMBER: int
MSG_RANDOM_FIELD_NUMBER: int
ERR_MSG_FIELD_NUMBER: int
MSG_TYPE_FIELD_NUMBER: int
- result: int = ...
- msg_seq: int = ...
- msg_time: int = ...
- msg_random: int = ...
- err_msg: bytes = ...
- msg_type: int = ...
-
+ result: int
+ msg_seq: int
+ msg_time: int
+ msg_random: int
+ err_msg: bytes
+ msg_type: int
def __init__(self,
*,
- result : Optional[int] = ...,
- msg_seq : Optional[int] = ...,
- msg_time : Optional[int] = ...,
- msg_random : Optional[int] = ...,
- err_msg : Optional[bytes] = ...,
- msg_type : Optional[int] = ...,
+ result: Optional[int] = ...,
+ msg_seq: Optional[int] = ...,
+ msg_time: Optional[int] = ...,
+ msg_random: Optional[int] = ...,
+ err_msg: Optional[bytes] = ...,
+ msg_type: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"err_msg",b"err_msg",u"msg_random",b"msg_random",u"msg_seq",b"msg_seq",u"msg_time",b"msg_time",u"msg_type",b"msg_type",u"result",b"result"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"err_msg",b"err_msg",u"msg_random",b"msg_random",u"msg_seq",b"msg_seq",u"msg_time",b"msg_time",u"msg_type",b"msg_type",u"result",b"result"]) -> None: ...
+ def HasField(self, field_name: Literal["err_msg",b"err_msg","msg_random",b"msg_random","msg_seq",b"msg_seq","msg_time",b"msg_time","msg_type",b"msg_type","result",b"result"]) -> bool: ...
+ def ClearField(self, field_name: Literal["err_msg",b"err_msg","msg_random",b"msg_random","msg_seq",b"msg_seq","msg_time",b"msg_time","msg_type",b"msg_type","result",b"result"]) -> None: ...
class PbGroupReadedReportReq(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
GROUP_CODE_FIELD_NUMBER: int
LAST_READ_SEQ_FIELD_NUMBER: int
- group_code: int = ...
- last_read_seq: int = ...
-
+ group_code: int
+ last_read_seq: int
def __init__(self,
*,
- group_code : Optional[int] = ...,
- last_read_seq : Optional[int] = ...,
+ group_code: Optional[int] = ...,
+ last_read_seq: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"group_code",b"group_code",u"last_read_seq",b"last_read_seq"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"group_code",b"group_code",u"last_read_seq",b"last_read_seq"]) -> None: ...
+ def HasField(self, field_name: Literal["group_code",b"group_code","last_read_seq",b"last_read_seq"]) -> bool: ...
+ def ClearField(self, field_name: Literal["group_code",b"group_code","last_read_seq",b"last_read_seq"]) -> None: ...
class PbGroupReadedReportResp(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
RESULT_FIELD_NUMBER: int
ERRMSG_FIELD_NUMBER: int
GROUP_CODE_FIELD_NUMBER: int
MEMBER_SEQ_FIELD_NUMBER: int
GROUP_MSG_SEQ_FIELD_NUMBER: int
- result: int = ...
- errmsg: Text = ...
- group_code: int = ...
- member_seq: int = ...
- group_msg_seq: int = ...
-
+ result: int
+ errmsg: Text
+ group_code: int
+ member_seq: int
+ group_msg_seq: int
def __init__(self,
*,
- result : Optional[int] = ...,
- errmsg : Optional[Text] = ...,
- group_code : Optional[int] = ...,
- member_seq : Optional[int] = ...,
- group_msg_seq : Optional[int] = ...,
+ result: Optional[int] = ...,
+ errmsg: Optional[Text] = ...,
+ group_code: Optional[int] = ...,
+ member_seq: Optional[int] = ...,
+ group_msg_seq: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"errmsg",b"errmsg",u"group_code",b"group_code",u"group_msg_seq",b"group_msg_seq",u"member_seq",b"member_seq",u"result",b"result"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"errmsg",b"errmsg",u"group_code",b"group_code",u"group_msg_seq",b"group_msg_seq",u"member_seq",b"member_seq",u"result",b"result"]) -> None: ...
+ def HasField(self, field_name: Literal["errmsg",b"errmsg","group_code",b"group_code","group_msg_seq",b"group_msg_seq","member_seq",b"member_seq","result",b"result"]) -> bool: ...
+ def ClearField(self, field_name: Literal["errmsg",b"errmsg","group_code",b"group_code","group_msg_seq",b"group_msg_seq","member_seq",b"member_seq","result",b"result"]) -> None: ...
class PbInputNotifyInfo(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
TO_UIN_FIELD_NUMBER: int
IME_FIELD_NUMBER: int
NOTIFY_FLAG_FIELD_NUMBER: int
PB_RESERVE_FIELD_NUMBER: int
IOS_PUSH_WORDING_FIELD_NUMBER: int
- to_uin: int = ...
- ime: int = ...
- notify_flag: int = ...
- pb_reserve: bytes = ...
- ios_push_wording: bytes = ...
-
+ to_uin: int
+ ime: int
+ notify_flag: int
+ pb_reserve: bytes
+ ios_push_wording: bytes
def __init__(self,
*,
- to_uin : Optional[int] = ...,
- ime : Optional[int] = ...,
- notify_flag : Optional[int] = ...,
- pb_reserve : Optional[bytes] = ...,
- ios_push_wording : Optional[bytes] = ...,
+ to_uin: Optional[int] = ...,
+ ime: Optional[int] = ...,
+ notify_flag: Optional[int] = ...,
+ pb_reserve: Optional[bytes] = ...,
+ ios_push_wording: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"ime",b"ime",u"ios_push_wording",b"ios_push_wording",u"notify_flag",b"notify_flag",u"pb_reserve",b"pb_reserve",u"to_uin",b"to_uin"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"ime",b"ime",u"ios_push_wording",b"ios_push_wording",u"notify_flag",b"notify_flag",u"pb_reserve",b"pb_reserve",u"to_uin",b"to_uin"]) -> None: ...
+ def HasField(self, field_name: Literal["ime",b"ime","ios_push_wording",b"ios_push_wording","notify_flag",b"notify_flag","pb_reserve",b"pb_reserve","to_uin",b"to_uin"]) -> bool: ...
+ def ClearField(self, field_name: Literal["ime",b"ime","ios_push_wording",b"ios_push_wording","notify_flag",b"notify_flag","pb_reserve",b"pb_reserve","to_uin",b"to_uin"]) -> None: ...
class PbMsgReadedReportReq(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
GRP_READ_REPORT_FIELD_NUMBER: int
DIS_READ_REPORT_FIELD_NUMBER: int
C2C_READ_REPORT_FIELD_NUMBER: int
BIND_UIN_READ_REPORT_FIELD_NUMBER: int
-
@property
def grp_read_report(self) -> RepeatedCompositeFieldContainer[PbGroupReadedReportReq]: ...
-
@property
def dis_read_report(self) -> RepeatedCompositeFieldContainer[PbDiscussReadedReportReq]: ...
-
@property
def c2c_read_report(self) -> PbC2CReadedReportReq: ...
-
@property
def bind_uin_read_report(self) -> PbBindUinMsgReadedConfirmReq: ...
-
def __init__(self,
*,
- grp_read_report : Optional[Iterable[PbGroupReadedReportReq]] = ...,
- dis_read_report : Optional[Iterable[PbDiscussReadedReportReq]] = ...,
- c2c_read_report : Optional[PbC2CReadedReportReq] = ...,
- bind_uin_read_report : Optional[PbBindUinMsgReadedConfirmReq] = ...,
+ grp_read_report: Optional[Iterable[PbGroupReadedReportReq]] = ...,
+ dis_read_report: Optional[Iterable[PbDiscussReadedReportReq]] = ...,
+ c2c_read_report: Optional[PbC2CReadedReportReq] = ...,
+ bind_uin_read_report: Optional[PbBindUinMsgReadedConfirmReq] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"bind_uin_read_report",b"bind_uin_read_report",u"c2c_read_report",b"c2c_read_report"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"bind_uin_read_report",b"bind_uin_read_report",u"c2c_read_report",b"c2c_read_report",u"dis_read_report",b"dis_read_report",u"grp_read_report",b"grp_read_report"]) -> None: ...
+ def HasField(self, field_name: Literal["bind_uin_read_report",b"bind_uin_read_report","c2c_read_report",b"c2c_read_report"]) -> bool: ...
+ def ClearField(self, field_name: Literal["bind_uin_read_report",b"bind_uin_read_report","c2c_read_report",b"c2c_read_report","dis_read_report",b"dis_read_report","grp_read_report",b"grp_read_report"]) -> None: ...
class PbMsgReadedReportResp(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
GRP_READ_REPORT_FIELD_NUMBER: int
DIS_READ_REPORT_FIELD_NUMBER: int
C2C_READ_REPORT_FIELD_NUMBER: int
BIND_UIN_READ_REPORT_FIELD_NUMBER: int
-
@property
def grp_read_report(self) -> RepeatedCompositeFieldContainer[PbGroupReadedReportResp]: ...
-
@property
def dis_read_report(self) -> RepeatedCompositeFieldContainer[PbDiscussReadedReportResp]: ...
-
@property
def c2c_read_report(self) -> PbC2CReadedReportResp: ...
-
@property
def bind_uin_read_report(self) -> PbBindUinMsgReadedConfirmResp: ...
-
def __init__(self,
*,
- grp_read_report : Optional[Iterable[PbGroupReadedReportResp]] = ...,
- dis_read_report : Optional[Iterable[PbDiscussReadedReportResp]] = ...,
- c2c_read_report : Optional[PbC2CReadedReportResp] = ...,
- bind_uin_read_report : Optional[PbBindUinMsgReadedConfirmResp] = ...,
+ grp_read_report: Optional[Iterable[PbGroupReadedReportResp]] = ...,
+ dis_read_report: Optional[Iterable[PbDiscussReadedReportResp]] = ...,
+ c2c_read_report: Optional[PbC2CReadedReportResp] = ...,
+ bind_uin_read_report: Optional[PbBindUinMsgReadedConfirmResp] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"bind_uin_read_report",b"bind_uin_read_report",u"c2c_read_report",b"c2c_read_report"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"bind_uin_read_report",b"bind_uin_read_report",u"c2c_read_report",b"c2c_read_report",u"dis_read_report",b"dis_read_report",u"grp_read_report",b"grp_read_report"]) -> None: ...
+ def HasField(self, field_name: Literal["bind_uin_read_report",b"bind_uin_read_report","c2c_read_report",b"c2c_read_report"]) -> bool: ...
+ def ClearField(self, field_name: Literal["bind_uin_read_report",b"bind_uin_read_report","c2c_read_report",b"c2c_read_report","dis_read_report",b"dis_read_report","grp_read_report",b"grp_read_report"]) -> None: ...
class PbMsgWithDrawReq(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
C2C_WITH_DRAW_FIELD_NUMBER: int
GROUP_WITH_DRAW_FIELD_NUMBER: int
-
@property
def c2c_with_draw(self) -> RepeatedCompositeFieldContainer[PbC2CMsgWithDrawReq]: ...
-
@property
def group_with_draw(self) -> RepeatedCompositeFieldContainer[PbGroupMsgWithDrawReq]: ...
-
def __init__(self,
*,
- c2c_with_draw : Optional[Iterable[PbC2CMsgWithDrawReq]] = ...,
- group_with_draw : Optional[Iterable[PbGroupMsgWithDrawReq]] = ...,
+ c2c_with_draw: Optional[Iterable[PbC2CMsgWithDrawReq]] = ...,
+ group_with_draw: Optional[Iterable[PbGroupMsgWithDrawReq]] = ...,
) -> None: ...
- def ClearField(self, field_name: Literal[u"c2c_with_draw",b"c2c_with_draw",u"group_with_draw",b"group_with_draw"]) -> None: ...
+ def ClearField(self, field_name: Literal["c2c_with_draw",b"c2c_with_draw","group_with_draw",b"group_with_draw"]) -> None: ...
class PbMsgWithDrawResp(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
C2C_WITH_DRAW_FIELD_NUMBER: int
GROUP_WITH_DRAW_FIELD_NUMBER: int
-
@property
def c2c_with_draw(self) -> RepeatedCompositeFieldContainer[PbC2CMsgWithDrawResp]: ...
-
@property
def group_with_draw(self) -> RepeatedCompositeFieldContainer[PbGroupMsgWithDrawResp]: ...
-
def __init__(self,
*,
- c2c_with_draw : Optional[Iterable[PbC2CMsgWithDrawResp]] = ...,
- group_with_draw : Optional[Iterable[PbGroupMsgWithDrawResp]] = ...,
+ c2c_with_draw: Optional[Iterable[PbC2CMsgWithDrawResp]] = ...,
+ group_with_draw: Optional[Iterable[PbGroupMsgWithDrawResp]] = ...,
) -> None: ...
- def ClearField(self, field_name: Literal[u"c2c_with_draw",b"c2c_with_draw",u"group_with_draw",b"group_with_draw"]) -> None: ...
+ def ClearField(self, field_name: Literal["c2c_with_draw",b"c2c_with_draw","group_with_draw",b"group_with_draw"]) -> None: ...
class PbPullDiscussMsgSeqReq(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
DISCUSS_INFO_REQ_FIELD_NUMBER: int
-
@property
def discuss_info_req(self) -> RepeatedCompositeFieldContainer[DiscussInfoReq]: ...
-
def __init__(self,
*,
- discuss_info_req : Optional[Iterable[DiscussInfoReq]] = ...,
+ discuss_info_req: Optional[Iterable[DiscussInfoReq]] = ...,
) -> None: ...
- def ClearField(self, field_name: Literal[u"discuss_info_req",b"discuss_info_req"]) -> None: ...
+ def ClearField(self, field_name: Literal["discuss_info_req",b"discuss_info_req"]) -> None: ...
class DiscussInfoReq(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
CONF_UIN_FIELD_NUMBER: int
LAST_SEQ_FIELD_NUMBER: int
- conf_uin: int = ...
- last_seq: int = ...
-
+ conf_uin: int
+ last_seq: int
def __init__(self,
*,
- conf_uin : Optional[int] = ...,
- last_seq : Optional[int] = ...,
+ conf_uin: Optional[int] = ...,
+ last_seq: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"conf_uin",b"conf_uin",u"last_seq",b"last_seq"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"conf_uin",b"conf_uin",u"last_seq",b"last_seq"]) -> None: ...
+ def HasField(self, field_name: Literal["conf_uin",b"conf_uin","last_seq",b"last_seq"]) -> bool: ...
+ def ClearField(self, field_name: Literal["conf_uin",b"conf_uin","last_seq",b"last_seq"]) -> None: ...
class PbPullDiscussMsgSeqResp(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
RESULT_FIELD_NUMBER: int
ERRMSG_FIELD_NUMBER: int
DISCUSS_INFO_RESP_FIELD_NUMBER: int
- result: int = ...
- errmsg: Text = ...
-
+ result: int
+ errmsg: Text
@property
def discuss_info_resp(self) -> RepeatedCompositeFieldContainer[DiscussInfoResp]: ...
-
def __init__(self,
*,
- result : Optional[int] = ...,
- errmsg : Optional[Text] = ...,
- discuss_info_resp : Optional[Iterable[DiscussInfoResp]] = ...,
+ result: Optional[int] = ...,
+ errmsg: Optional[Text] = ...,
+ discuss_info_resp: Optional[Iterable[DiscussInfoResp]] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"errmsg",b"errmsg",u"result",b"result"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"discuss_info_resp",b"discuss_info_resp",u"errmsg",b"errmsg",u"result",b"result"]) -> None: ...
+ def HasField(self, field_name: Literal["errmsg",b"errmsg","result",b"result"]) -> bool: ...
+ def ClearField(self, field_name: Literal["discuss_info_resp",b"discuss_info_resp","errmsg",b"errmsg","result",b"result"]) -> None: ...
class DiscussInfoResp(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
CONF_UIN_FIELD_NUMBER: int
MEMBER_SEQ_FIELD_NUMBER: int
CONF_SEQ_FIELD_NUMBER: int
- conf_uin: int = ...
- member_seq: int = ...
- conf_seq: int = ...
-
+ conf_uin: int
+ member_seq: int
+ conf_seq: int
def __init__(self,
*,
- conf_uin : Optional[int] = ...,
- member_seq : Optional[int] = ...,
- conf_seq : Optional[int] = ...,
+ conf_uin: Optional[int] = ...,
+ member_seq: Optional[int] = ...,
+ conf_seq: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"conf_seq",b"conf_seq",u"conf_uin",b"conf_uin",u"member_seq",b"member_seq"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"conf_seq",b"conf_seq",u"conf_uin",b"conf_uin",u"member_seq",b"member_seq"]) -> None: ...
+ def HasField(self, field_name: Literal["conf_seq",b"conf_seq","conf_uin",b"conf_uin","member_seq",b"member_seq"]) -> bool: ...
+ def ClearField(self, field_name: Literal["conf_seq",b"conf_seq","conf_uin",b"conf_uin","member_seq",b"member_seq"]) -> None: ...
class PbPullGroupMsgSeqReq(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
GROUP_INFO_REQ_FIELD_NUMBER: int
-
@property
def group_info_req(self) -> RepeatedCompositeFieldContainer[GroupInfoReq]: ...
-
def __init__(self,
*,
- group_info_req : Optional[Iterable[GroupInfoReq]] = ...,
+ group_info_req: Optional[Iterable[GroupInfoReq]] = ...,
) -> None: ...
- def ClearField(self, field_name: Literal[u"group_info_req",b"group_info_req"]) -> None: ...
+ def ClearField(self, field_name: Literal["group_info_req",b"group_info_req"]) -> None: ...
class GroupInfoReq(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
GROUP_CODE_FIELD_NUMBER: int
LAST_SEQ_FIELD_NUMBER: int
- group_code: int = ...
- last_seq: int = ...
-
+ group_code: int
+ last_seq: int
def __init__(self,
*,
- group_code : Optional[int] = ...,
- last_seq : Optional[int] = ...,
+ group_code: Optional[int] = ...,
+ last_seq: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"group_code",b"group_code",u"last_seq",b"last_seq"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"group_code",b"group_code",u"last_seq",b"last_seq"]) -> None: ...
+ def HasField(self, field_name: Literal["group_code",b"group_code","last_seq",b"last_seq"]) -> bool: ...
+ def ClearField(self, field_name: Literal["group_code",b"group_code","last_seq",b"last_seq"]) -> None: ...
class PbPullGroupMsgSeqResp(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
RESULT_FIELD_NUMBER: int
ERRMSG_FIELD_NUMBER: int
GROUP_INFO_RESP_FIELD_NUMBER: int
- result: int = ...
- errmsg: Text = ...
-
+ result: int
+ errmsg: Text
@property
def group_info_resp(self) -> RepeatedCompositeFieldContainer[GroupInfoResp]: ...
-
def __init__(self,
*,
- result : Optional[int] = ...,
- errmsg : Optional[Text] = ...,
- group_info_resp : Optional[Iterable[GroupInfoResp]] = ...,
+ result: Optional[int] = ...,
+ errmsg: Optional[Text] = ...,
+ group_info_resp: Optional[Iterable[GroupInfoResp]] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"errmsg",b"errmsg",u"result",b"result"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"errmsg",b"errmsg",u"group_info_resp",b"group_info_resp",u"result",b"result"]) -> None: ...
+ def HasField(self, field_name: Literal["errmsg",b"errmsg","result",b"result"]) -> bool: ...
+ def ClearField(self, field_name: Literal["errmsg",b"errmsg","group_info_resp",b"group_info_resp","result",b"result"]) -> None: ...
class GroupInfoResp(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
GROUP_CODE_FIELD_NUMBER: int
MEMBER_SEQ_FIELD_NUMBER: int
GROUP_SEQ_FIELD_NUMBER: int
- group_code: int = ...
- member_seq: int = ...
- group_seq: int = ...
-
+ group_code: int
+ member_seq: int
+ group_seq: int
def __init__(self,
*,
- group_code : Optional[int] = ...,
- member_seq : Optional[int] = ...,
- group_seq : Optional[int] = ...,
+ group_code: Optional[int] = ...,
+ member_seq: Optional[int] = ...,
+ group_seq: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"group_code",b"group_code",u"group_seq",b"group_seq",u"member_seq",b"member_seq"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"group_code",b"group_code",u"group_seq",b"group_seq",u"member_seq",b"member_seq"]) -> None: ...
+ def HasField(self, field_name: Literal["group_code",b"group_code","group_seq",b"group_seq","member_seq",b"member_seq"]) -> bool: ...
+ def ClearField(self, field_name: Literal["group_code",b"group_code","group_seq",b"group_seq","member_seq",b"member_seq"]) -> None: ...
class PbSearchRoamMsgInCloudReq(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
SERIALIZE_REQBODY_FIELD_NUMBER: int
- serialize_reqbody: bytes = ...
-
+ serialize_reqbody: bytes
def __init__(self,
*,
- serialize_reqbody : Optional[bytes] = ...,
+ serialize_reqbody: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"serialize_reqbody",b"serialize_reqbody"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"serialize_reqbody",b"serialize_reqbody"]) -> None: ...
+ def HasField(self, field_name: Literal["serialize_reqbody",b"serialize_reqbody"]) -> bool: ...
+ def ClearField(self, field_name: Literal["serialize_reqbody",b"serialize_reqbody"]) -> None: ...
class PbSearchRoamMsgInCloudResp(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
MSG_FIELD_NUMBER: int
SERIALIZE_RSPBODY_FIELD_NUMBER: int
- serialize_rspbody: bytes = ...
-
@property
def msg(self) -> RepeatedCompositeFieldContainer[Msg]: ...
-
+ serialize_rspbody: bytes
def __init__(self,
*,
- msg : Optional[Iterable[Msg]] = ...,
- serialize_rspbody : Optional[bytes] = ...,
+ msg: Optional[Iterable[Msg]] = ...,
+ serialize_rspbody: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"serialize_rspbody",b"serialize_rspbody"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"msg",b"msg",u"serialize_rspbody",b"serialize_rspbody"]) -> None: ...
+ def HasField(self, field_name: Literal["serialize_rspbody",b"serialize_rspbody"]) -> bool: ...
+ def ClearField(self, field_name: Literal["msg",b"msg","serialize_rspbody",b"serialize_rspbody"]) -> None: ...
class PbSendMsgReq(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
ROUTING_HEAD_FIELD_NUMBER: int
CONTENT_HEAD_FIELD_NUMBER: int
BODY_FIELD_NUMBER: int
@@ -1590,59 +1484,50 @@ class PbSendMsgReq(Message):
CTRL_FIELD_NUMBER: int
RECEIPT_REQ_FIELD_NUMBER: int
MULTI_SEND_SEQ_FIELD_NUMBER: int
- seq: int = ...
- rand: int = ...
- sync_cookie: bytes = ...
- via: int = ...
- data_statist: int = ...
- multi_send_seq: int = ...
-
@property
def routing_head(self) -> RoutingHead: ...
-
@property
def content_head(self) -> ContentHead: ...
-
@property
def body(self) -> MsgBody: ...
-
+ seq: int
+ rand: int
+ sync_cookie: bytes
@property
def app_share(self) -> AppShareInfo: ...
-
+ via: int
+ data_statist: int
@property
def multi_msg_assist(self) -> MultiMsgAssist: ...
-
@property
def input_notify_info(self) -> PbInputNotifyInfo: ...
-
@property
def ctrl(self) -> MsgCtrl: ...
-
@property
def receipt_req(self) -> ReceiptReq: ...
-
- def __init__(self,
- *,
- routing_head : Optional[RoutingHead] = ...,
- content_head : Optional[ContentHead] = ...,
- body : Optional[MsgBody] = ...,
- seq : Optional[int] = ...,
- rand : Optional[int] = ...,
- sync_cookie : Optional[bytes] = ...,
- app_share : Optional[AppShareInfo] = ...,
- via : Optional[int] = ...,
- data_statist : Optional[int] = ...,
- multi_msg_assist : Optional[MultiMsgAssist] = ...,
- input_notify_info : Optional[PbInputNotifyInfo] = ...,
- ctrl : Optional[MsgCtrl] = ...,
- receipt_req : Optional[ReceiptReq] = ...,
- multi_send_seq : Optional[int] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal[u"app_share",b"app_share",u"body",b"body",u"content_head",b"content_head",u"ctrl",b"ctrl",u"data_statist",b"data_statist",u"input_notify_info",b"input_notify_info",u"multi_msg_assist",b"multi_msg_assist",u"multi_send_seq",b"multi_send_seq",u"rand",b"rand",u"receipt_req",b"receipt_req",u"routing_head",b"routing_head",u"seq",b"seq",u"sync_cookie",b"sync_cookie",u"via",b"via"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"app_share",b"app_share",u"body",b"body",u"content_head",b"content_head",u"ctrl",b"ctrl",u"data_statist",b"data_statist",u"input_notify_info",b"input_notify_info",u"multi_msg_assist",b"multi_msg_assist",u"multi_send_seq",b"multi_send_seq",u"rand",b"rand",u"receipt_req",b"receipt_req",u"routing_head",b"routing_head",u"seq",b"seq",u"sync_cookie",b"sync_cookie",u"via",b"via"]) -> None: ...
+ multi_send_seq: int
+ def __init__(self,
+ *,
+ routing_head: Optional[RoutingHead] = ...,
+ content_head: Optional[ContentHead] = ...,
+ body: Optional[MsgBody] = ...,
+ seq: Optional[int] = ...,
+ rand: Optional[int] = ...,
+ sync_cookie: Optional[bytes] = ...,
+ app_share: Optional[AppShareInfo] = ...,
+ via: Optional[int] = ...,
+ data_statist: Optional[int] = ...,
+ multi_msg_assist: Optional[MultiMsgAssist] = ...,
+ input_notify_info: Optional[PbInputNotifyInfo] = ...,
+ ctrl: Optional[MsgCtrl] = ...,
+ receipt_req: Optional[ReceiptReq] = ...,
+ multi_send_seq: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["app_share",b"app_share","body",b"body","content_head",b"content_head","ctrl",b"ctrl","data_statist",b"data_statist","input_notify_info",b"input_notify_info","multi_msg_assist",b"multi_msg_assist","multi_send_seq",b"multi_send_seq","rand",b"rand","receipt_req",b"receipt_req","routing_head",b"routing_head","seq",b"seq","sync_cookie",b"sync_cookie","via",b"via"]) -> bool: ...
+ def ClearField(self, field_name: Literal["app_share",b"app_share","body",b"body","content_head",b"content_head","ctrl",b"ctrl","data_statist",b"data_statist","input_notify_info",b"input_notify_info","multi_msg_assist",b"multi_msg_assist","multi_send_seq",b"multi_send_seq","rand",b"rand","receipt_req",b"receipt_req","routing_head",b"routing_head","seq",b"seq","sync_cookie",b"sync_cookie","via",b"via"]) -> None: ...
class PbSendMsgResp(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
RESULT_FIELD_NUMBER: int
ERRMSG_FIELD_NUMBER: int
SEND_TIME_FIELD_NUMBER: int
@@ -1653,99 +1538,90 @@ class PbSendMsgResp(Message):
RECEIPT_RESP_FIELD_NUMBER: int
TEXT_ANALYSIS_RESULT_FIELD_NUMBER: int
MSG_INFO_FLAG_FIELD_NUMBER: int
- result: int = ...
- errmsg: Text = ...
- send_time: int = ...
- svrbusy_wait_time: int = ...
- errtype: int = ...
- text_analysis_result: int = ...
- msg_info_flag: int = ...
-
+ result: int
+ errmsg: Text
+ send_time: int
+ svrbusy_wait_time: int
@property
def send_info(self) -> MsgSendInfo: ...
-
+ errtype: int
@property
def trans_svr_info(self) -> TransSvrInfo: ...
-
@property
def receipt_resp(self) -> ReceiptResp: ...
-
+ text_analysis_result: int
+ msg_info_flag: int
def __init__(self,
*,
- result : Optional[int] = ...,
- errmsg : Optional[Text] = ...,
- send_time : Optional[int] = ...,
- svrbusy_wait_time : Optional[int] = ...,
- send_info : Optional[MsgSendInfo] = ...,
- errtype : Optional[int] = ...,
- trans_svr_info : Optional[TransSvrInfo] = ...,
- receipt_resp : Optional[ReceiptResp] = ...,
- text_analysis_result : Optional[int] = ...,
- msg_info_flag : Optional[int] = ...,
+ result: Optional[int] = ...,
+ errmsg: Optional[Text] = ...,
+ send_time: Optional[int] = ...,
+ svrbusy_wait_time: Optional[int] = ...,
+ send_info: Optional[MsgSendInfo] = ...,
+ errtype: Optional[int] = ...,
+ trans_svr_info: Optional[TransSvrInfo] = ...,
+ receipt_resp: Optional[ReceiptResp] = ...,
+ text_analysis_result: Optional[int] = ...,
+ msg_info_flag: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"errmsg",b"errmsg",u"errtype",b"errtype",u"msg_info_flag",b"msg_info_flag",u"receipt_resp",b"receipt_resp",u"result",b"result",u"send_info",b"send_info",u"send_time",b"send_time",u"svrbusy_wait_time",b"svrbusy_wait_time",u"text_analysis_result",b"text_analysis_result",u"trans_svr_info",b"trans_svr_info"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"errmsg",b"errmsg",u"errtype",b"errtype",u"msg_info_flag",b"msg_info_flag",u"receipt_resp",b"receipt_resp",u"result",b"result",u"send_info",b"send_info",u"send_time",b"send_time",u"svrbusy_wait_time",b"svrbusy_wait_time",u"text_analysis_result",b"text_analysis_result",u"trans_svr_info",b"trans_svr_info"]) -> None: ...
+ def HasField(self, field_name: Literal["errmsg",b"errmsg","errtype",b"errtype","msg_info_flag",b"msg_info_flag","receipt_resp",b"receipt_resp","result",b"result","send_info",b"send_info","send_time",b"send_time","svrbusy_wait_time",b"svrbusy_wait_time","text_analysis_result",b"text_analysis_result","trans_svr_info",b"trans_svr_info"]) -> bool: ...
+ def ClearField(self, field_name: Literal["errmsg",b"errmsg","errtype",b"errtype","msg_info_flag",b"msg_info_flag","receipt_resp",b"receipt_resp","result",b"result","send_info",b"send_info","send_time",b"send_time","svrbusy_wait_time",b"svrbusy_wait_time","text_analysis_result",b"text_analysis_result","trans_svr_info",b"trans_svr_info"]) -> None: ...
class PbThirdQQUnReadMsgNumReq(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
THIRDQQ_REQ_INFO_FIELD_NUMBER: int
SOURCE_FIELD_NUMBER: int
- source: int = ...
-
@property
def thirdqq_req_info(self) -> RepeatedCompositeFieldContainer[ThirdQQReqInfo]: ...
-
+ source: int
def __init__(self,
*,
- thirdqq_req_info : Optional[Iterable[ThirdQQReqInfo]] = ...,
- source : Optional[int] = ...,
+ thirdqq_req_info: Optional[Iterable[ThirdQQReqInfo]] = ...,
+ source: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"source",b"source"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"source",b"source",u"thirdqq_req_info",b"thirdqq_req_info"]) -> None: ...
+ def HasField(self, field_name: Literal["source",b"source"]) -> bool: ...
+ def ClearField(self, field_name: Literal["source",b"source","thirdqq_req_info",b"thirdqq_req_info"]) -> None: ...
class ThirdQQReqInfo(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
THIRD_UIN_FIELD_NUMBER: int
THIRD_UIN_SIG_FIELD_NUMBER: int
THIRD_UIN_COOKIE_FIELD_NUMBER: int
- third_uin: int = ...
- third_uin_sig: bytes = ...
- third_uin_cookie: bytes = ...
-
+ third_uin: int
+ third_uin_sig: bytes
+ third_uin_cookie: bytes
def __init__(self,
*,
- third_uin : Optional[int] = ...,
- third_uin_sig : Optional[bytes] = ...,
- third_uin_cookie : Optional[bytes] = ...,
+ third_uin: Optional[int] = ...,
+ third_uin_sig: Optional[bytes] = ...,
+ third_uin_cookie: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"third_uin",b"third_uin",u"third_uin_cookie",b"third_uin_cookie",u"third_uin_sig",b"third_uin_sig"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"third_uin",b"third_uin",u"third_uin_cookie",b"third_uin_cookie",u"third_uin_sig",b"third_uin_sig"]) -> None: ...
+ def HasField(self, field_name: Literal["third_uin",b"third_uin","third_uin_cookie",b"third_uin_cookie","third_uin_sig",b"third_uin_sig"]) -> bool: ...
+ def ClearField(self, field_name: Literal["third_uin",b"third_uin","third_uin_cookie",b"third_uin_cookie","third_uin_sig",b"third_uin_sig"]) -> None: ...
class PbThirdQQUnReadMsgNumResp(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
RESULT_FIELD_NUMBER: int
ERRMSG_FIELD_NUMBER: int
THIRDQQ_RESP_INFO_FIELD_NUMBER: int
INTERVAL_FIELD_NUMBER: int
- result: int = ...
- errmsg: Text = ...
- interval: int = ...
-
+ result: int
+ errmsg: Text
@property
def thirdqq_resp_info(self) -> RepeatedCompositeFieldContainer[ThirdQQRespInfo]: ...
-
+ interval: int
def __init__(self,
*,
- result : Optional[int] = ...,
- errmsg : Optional[Text] = ...,
- thirdqq_resp_info : Optional[Iterable[ThirdQQRespInfo]] = ...,
- interval : Optional[int] = ...,
+ result: Optional[int] = ...,
+ errmsg: Optional[Text] = ...,
+ thirdqq_resp_info: Optional[Iterable[ThirdQQRespInfo]] = ...,
+ interval: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"errmsg",b"errmsg",u"interval",b"interval",u"result",b"result"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"errmsg",b"errmsg",u"interval",b"interval",u"result",b"result",u"thirdqq_resp_info",b"thirdqq_resp_info"]) -> None: ...
+ def HasField(self, field_name: Literal["errmsg",b"errmsg","interval",b"interval","result",b"result"]) -> bool: ...
+ def ClearField(self, field_name: Literal["errmsg",b"errmsg","interval",b"interval","result",b"result","thirdqq_resp_info",b"thirdqq_resp_info"]) -> None: ...
class ThirdQQRespInfo(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
THIRD_UIN_FIELD_NUMBER: int
THIRD_UIN_COOKIE_FIELD_NUMBER: int
NUM_FIELD_NUMBER: int
@@ -1753,160 +1629,143 @@ class ThirdQQRespInfo(Message):
REDBAG_TIME_FIELD_NUMBER: int
STATUS_FIELD_NUMBER: int
LAST_MSG_TIME_FIELD_NUMBER: int
- third_uin: int = ...
- third_uin_cookie: bytes = ...
- num: int = ...
- flag: int = ...
- redbag_time: int = ...
- status: int = ...
- last_msg_time: int = ...
-
- def __init__(self,
- *,
- third_uin : Optional[int] = ...,
- third_uin_cookie : Optional[bytes] = ...,
- num : Optional[int] = ...,
- flag : Optional[int] = ...,
- redbag_time : Optional[int] = ...,
- status : Optional[int] = ...,
- last_msg_time : Optional[int] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal[u"flag",b"flag",u"last_msg_time",b"last_msg_time",u"num",b"num",u"redbag_time",b"redbag_time",u"status",b"status",u"third_uin",b"third_uin",u"third_uin_cookie",b"third_uin_cookie"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"flag",b"flag",u"last_msg_time",b"last_msg_time",u"num",b"num",u"redbag_time",b"redbag_time",u"status",b"status",u"third_uin",b"third_uin",u"third_uin_cookie",b"third_uin_cookie"]) -> None: ...
+ third_uin: int
+ third_uin_cookie: bytes
+ num: int
+ flag: int
+ redbag_time: int
+ status: int
+ last_msg_time: int
+ def __init__(self,
+ *,
+ third_uin: Optional[int] = ...,
+ third_uin_cookie: Optional[bytes] = ...,
+ num: Optional[int] = ...,
+ flag: Optional[int] = ...,
+ redbag_time: Optional[int] = ...,
+ status: Optional[int] = ...,
+ last_msg_time: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["flag",b"flag","last_msg_time",b"last_msg_time","num",b"num","redbag_time",b"redbag_time","status",b"status","third_uin",b"third_uin","third_uin_cookie",b"third_uin_cookie"]) -> bool: ...
+ def ClearField(self, field_name: Literal["flag",b"flag","last_msg_time",b"last_msg_time","num",b"num","redbag_time",b"redbag_time","status",b"status","third_uin",b"third_uin","third_uin_cookie",b"third_uin_cookie"]) -> None: ...
class PbUnReadMsgSeqReq(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
C2C_UNREAD_INFO_FIELD_NUMBER: int
BINDUIN_UNREAD_INFO_FIELD_NUMBER: int
GROUP_UNREAD_INFO_FIELD_NUMBER: int
DISCUSS_UNREAD_INFO_FIELD_NUMBER: int
THIRDQQ_UNREAD_INFO_FIELD_NUMBER: int
-
@property
def c2c_unread_info(self) -> PbC2CUnReadMsgNumReq: ...
-
@property
def binduin_unread_info(self) -> RepeatedCompositeFieldContainer[PbBindUinUnReadMsgNumReq]: ...
-
@property
def group_unread_info(self) -> PbPullGroupMsgSeqReq: ...
-
@property
def discuss_unread_info(self) -> PbPullDiscussMsgSeqReq: ...
-
@property
def thirdqq_unread_info(self) -> PbThirdQQUnReadMsgNumReq: ...
-
def __init__(self,
*,
- c2c_unread_info : Optional[PbC2CUnReadMsgNumReq] = ...,
- binduin_unread_info : Optional[Iterable[PbBindUinUnReadMsgNumReq]] = ...,
- group_unread_info : Optional[PbPullGroupMsgSeqReq] = ...,
- discuss_unread_info : Optional[PbPullDiscussMsgSeqReq] = ...,
- thirdqq_unread_info : Optional[PbThirdQQUnReadMsgNumReq] = ...,
+ c2c_unread_info: Optional[PbC2CUnReadMsgNumReq] = ...,
+ binduin_unread_info: Optional[Iterable[PbBindUinUnReadMsgNumReq]] = ...,
+ group_unread_info: Optional[PbPullGroupMsgSeqReq] = ...,
+ discuss_unread_info: Optional[PbPullDiscussMsgSeqReq] = ...,
+ thirdqq_unread_info: Optional[PbThirdQQUnReadMsgNumReq] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"c2c_unread_info",b"c2c_unread_info",u"discuss_unread_info",b"discuss_unread_info",u"group_unread_info",b"group_unread_info",u"thirdqq_unread_info",b"thirdqq_unread_info"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"binduin_unread_info",b"binduin_unread_info",u"c2c_unread_info",b"c2c_unread_info",u"discuss_unread_info",b"discuss_unread_info",u"group_unread_info",b"group_unread_info",u"thirdqq_unread_info",b"thirdqq_unread_info"]) -> None: ...
+ def HasField(self, field_name: Literal["c2c_unread_info",b"c2c_unread_info","discuss_unread_info",b"discuss_unread_info","group_unread_info",b"group_unread_info","thirdqq_unread_info",b"thirdqq_unread_info"]) -> bool: ...
+ def ClearField(self, field_name: Literal["binduin_unread_info",b"binduin_unread_info","c2c_unread_info",b"c2c_unread_info","discuss_unread_info",b"discuss_unread_info","group_unread_info",b"group_unread_info","thirdqq_unread_info",b"thirdqq_unread_info"]) -> None: ...
class PbUnReadMsgSeqResp(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
C2C_UNREAD_INFO_FIELD_NUMBER: int
BINDUIN_UNREAD_INFO_FIELD_NUMBER: int
GROUP_UNREAD_INFO_FIELD_NUMBER: int
DISCUSS_UNREAD_INFO_FIELD_NUMBER: int
THIRDQQ_UNREAD_INFO_FIELD_NUMBER: int
-
@property
def c2c_unread_info(self) -> PbC2CUnReadMsgNumResp: ...
-
@property
def binduin_unread_info(self) -> RepeatedCompositeFieldContainer[PbBindUinUnReadMsgNumResp]: ...
-
@property
def group_unread_info(self) -> PbPullGroupMsgSeqResp: ...
-
@property
def discuss_unread_info(self) -> PbPullDiscussMsgSeqResp: ...
-
@property
def thirdqq_unread_info(self) -> PbThirdQQUnReadMsgNumResp: ...
-
def __init__(self,
*,
- c2c_unread_info : Optional[PbC2CUnReadMsgNumResp] = ...,
- binduin_unread_info : Optional[Iterable[PbBindUinUnReadMsgNumResp]] = ...,
- group_unread_info : Optional[PbPullGroupMsgSeqResp] = ...,
- discuss_unread_info : Optional[PbPullDiscussMsgSeqResp] = ...,
- thirdqq_unread_info : Optional[PbThirdQQUnReadMsgNumResp] = ...,
+ c2c_unread_info: Optional[PbC2CUnReadMsgNumResp] = ...,
+ binduin_unread_info: Optional[Iterable[PbBindUinUnReadMsgNumResp]] = ...,
+ group_unread_info: Optional[PbPullGroupMsgSeqResp] = ...,
+ discuss_unread_info: Optional[PbPullDiscussMsgSeqResp] = ...,
+ thirdqq_unread_info: Optional[PbThirdQQUnReadMsgNumResp] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"c2c_unread_info",b"c2c_unread_info",u"discuss_unread_info",b"discuss_unread_info",u"group_unread_info",b"group_unread_info",u"thirdqq_unread_info",b"thirdqq_unread_info"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"binduin_unread_info",b"binduin_unread_info",u"c2c_unread_info",b"c2c_unread_info",u"discuss_unread_info",b"discuss_unread_info",u"group_unread_info",b"group_unread_info",u"thirdqq_unread_info",b"thirdqq_unread_info"]) -> None: ...
+ def HasField(self, field_name: Literal["c2c_unread_info",b"c2c_unread_info","discuss_unread_info",b"discuss_unread_info","group_unread_info",b"group_unread_info","thirdqq_unread_info",b"thirdqq_unread_info"]) -> bool: ...
+ def ClearField(self, field_name: Literal["binduin_unread_info",b"binduin_unread_info","c2c_unread_info",b"c2c_unread_info","discuss_unread_info",b"discuss_unread_info","group_unread_info",b"group_unread_info","thirdqq_unread_info",b"thirdqq_unread_info"]) -> None: ...
class PubGroupTmp(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
TO_UIN_FIELD_NUMBER: int
SIG_FIELD_NUMBER: int
GROUP_UIN_FIELD_NUMBER: int
- to_uin: int = ...
- sig: bytes = ...
- group_uin: int = ...
-
+ to_uin: int
+ sig: bytes
+ group_uin: int
def __init__(self,
*,
- to_uin : Optional[int] = ...,
- sig : Optional[bytes] = ...,
- group_uin : Optional[int] = ...,
+ to_uin: Optional[int] = ...,
+ sig: Optional[bytes] = ...,
+ group_uin: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"group_uin",b"group_uin",u"sig",b"sig",u"to_uin",b"to_uin"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"group_uin",b"group_uin",u"sig",b"sig",u"to_uin",b"to_uin"]) -> None: ...
+ def HasField(self, field_name: Literal["group_uin",b"group_uin","sig",b"sig","to_uin",b"to_uin"]) -> bool: ...
+ def ClearField(self, field_name: Literal["group_uin",b"group_uin","sig",b"sig","to_uin",b"to_uin"]) -> None: ...
class PublicPlat(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
TO_UIN_FIELD_NUMBER: int
SIG_FIELD_NUMBER: int
- to_uin: int = ...
- sig: bytes = ...
-
+ to_uin: int
+ sig: bytes
def __init__(self,
*,
- to_uin : Optional[int] = ...,
- sig : Optional[bytes] = ...,
+ to_uin: Optional[int] = ...,
+ sig: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"sig",b"sig",u"to_uin",b"to_uin"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"sig",b"sig",u"to_uin",b"to_uin"]) -> None: ...
+ def HasField(self, field_name: Literal["sig",b"sig","to_uin",b"to_uin"]) -> bool: ...
+ def ClearField(self, field_name: Literal["sig",b"sig","to_uin",b"to_uin"]) -> None: ...
class QQQueryBusinessTmp(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
TO_UIN_FIELD_NUMBER: int
SIG_FIELD_NUMBER: int
- to_uin: int = ...
- sig: bytes = ...
-
+ to_uin: int
+ sig: bytes
def __init__(self,
*,
- to_uin : Optional[int] = ...,
- sig : Optional[bytes] = ...,
+ to_uin: Optional[int] = ...,
+ sig: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"sig",b"sig",u"to_uin",b"to_uin"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"sig",b"sig",u"to_uin",b"to_uin"]) -> None: ...
+ def HasField(self, field_name: Literal["sig",b"sig","to_uin",b"to_uin"]) -> bool: ...
+ def ClearField(self, field_name: Literal["sig",b"sig","to_uin",b"to_uin"]) -> None: ...
class RichStatusTmp(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
TO_UIN_FIELD_NUMBER: int
SIG_FIELD_NUMBER: int
- to_uin: int = ...
- sig: bytes = ...
-
+ to_uin: int
+ sig: bytes
def __init__(self,
*,
- to_uin : Optional[int] = ...,
- sig : Optional[bytes] = ...,
+ to_uin: Optional[int] = ...,
+ sig: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"sig",b"sig",u"to_uin",b"to_uin"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"sig",b"sig",u"to_uin",b"to_uin"]) -> None: ...
+ def HasField(self, field_name: Literal["sig",b"sig","to_uin",b"to_uin"]) -> bool: ...
+ def ClearField(self, field_name: Literal["sig",b"sig","to_uin",b"to_uin"]) -> None: ...
class RoutingHead(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
C2C_FIELD_NUMBER: int
GRP_FIELD_NUMBER: int
GRP_TMP_FIELD_NUMBER: int
@@ -1928,99 +1787,85 @@ class RoutingHead(Message):
NEARBY_DATING_TMP_FIELD_NUMBER: int
NEARBY_ASSISTANT_TMP_FIELD_NUMBER: int
COMM_TMP_FIELD_NUMBER: int
-
@property
def c2c(self) -> C2C: ...
-
@property
def grp(self) -> Grp: ...
-
@property
def grp_tmp(self) -> GrpTmp: ...
-
@property
def dis(self) -> Dis: ...
-
@property
def dis_tmp(self) -> DisTmp: ...
-
@property
def wpa_tmp(self) -> WPATmp: ...
-
@property
- def public_plat(self) -> PublicPlat: ...
-
+ def public_plat(self) -> PublicPlat:
+ """optional SecretFileHead secret_file = 7;"""
+ pass
@property
def trans_msg(self) -> TransMsg: ...
-
@property
def address_list(self) -> AddressListTmp: ...
-
@property
def rich_status_tmp(self) -> RichStatusTmp: ...
-
@property
def trans_cmd(self) -> TransCmd: ...
-
@property
def accost_tmp(self) -> AccostTmp: ...
-
@property
def pub_group_tmp(self) -> PubGroupTmp: ...
-
@property
def trans_0_x211(self) -> Trans0x211: ...
-
@property
def business_wpa_tmp(self) -> BusinessWPATmp: ...
-
@property
def auth_tmp(self) -> AuthTmp: ...
-
@property
def bsns_tmp(self) -> BsnsTmp: ...
-
@property
def qq_querybusiness_tmp(self) -> QQQueryBusinessTmp: ...
-
@property
def nearby_dating_tmp(self) -> NearByDatingTmp: ...
-
@property
def nearby_assistant_tmp(self) -> NearByAssistantTmp: ...
-
@property
def comm_tmp(self) -> CommTmp: ...
-
def __init__(self,
*,
- c2c : Optional[C2C] = ...,
- grp : Optional[Grp] = ...,
- grp_tmp : Optional[GrpTmp] = ...,
- dis : Optional[Dis] = ...,
- dis_tmp : Optional[DisTmp] = ...,
- wpa_tmp : Optional[WPATmp] = ...,
- public_plat : Optional[PublicPlat] = ...,
- trans_msg : Optional[TransMsg] = ...,
- address_list : Optional[AddressListTmp] = ...,
- rich_status_tmp : Optional[RichStatusTmp] = ...,
- trans_cmd : Optional[TransCmd] = ...,
- accost_tmp : Optional[AccostTmp] = ...,
- pub_group_tmp : Optional[PubGroupTmp] = ...,
- trans_0_x211 : Optional[Trans0x211] = ...,
- business_wpa_tmp : Optional[BusinessWPATmp] = ...,
- auth_tmp : Optional[AuthTmp] = ...,
- bsns_tmp : Optional[BsnsTmp] = ...,
- qq_querybusiness_tmp : Optional[QQQueryBusinessTmp] = ...,
- nearby_dating_tmp : Optional[NearByDatingTmp] = ...,
- nearby_assistant_tmp : Optional[NearByAssistantTmp] = ...,
- comm_tmp : Optional[CommTmp] = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal[u"accost_tmp",b"accost_tmp",u"address_list",b"address_list",u"auth_tmp",b"auth_tmp",u"bsns_tmp",b"bsns_tmp",u"business_wpa_tmp",b"business_wpa_tmp",u"c2c",b"c2c",u"comm_tmp",b"comm_tmp",u"dis",b"dis",u"dis_tmp",b"dis_tmp",u"grp",b"grp",u"grp_tmp",b"grp_tmp",u"nearby_assistant_tmp",b"nearby_assistant_tmp",u"nearby_dating_tmp",b"nearby_dating_tmp",u"pub_group_tmp",b"pub_group_tmp",u"public_plat",b"public_plat",u"qq_querybusiness_tmp",b"qq_querybusiness_tmp",u"rich_status_tmp",b"rich_status_tmp",u"trans_0_x211",b"trans_0_x211",u"trans_cmd",b"trans_cmd",u"trans_msg",b"trans_msg",u"wpa_tmp",b"wpa_tmp"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"accost_tmp",b"accost_tmp",u"address_list",b"address_list",u"auth_tmp",b"auth_tmp",u"bsns_tmp",b"bsns_tmp",u"business_wpa_tmp",b"business_wpa_tmp",u"c2c",b"c2c",u"comm_tmp",b"comm_tmp",u"dis",b"dis",u"dis_tmp",b"dis_tmp",u"grp",b"grp",u"grp_tmp",b"grp_tmp",u"nearby_assistant_tmp",b"nearby_assistant_tmp",u"nearby_dating_tmp",b"nearby_dating_tmp",u"pub_group_tmp",b"pub_group_tmp",u"public_plat",b"public_plat",u"qq_querybusiness_tmp",b"qq_querybusiness_tmp",u"rich_status_tmp",b"rich_status_tmp",u"trans_0_x211",b"trans_0_x211",u"trans_cmd",b"trans_cmd",u"trans_msg",b"trans_msg",u"wpa_tmp",b"wpa_tmp"]) -> None: ...
+ c2c: Optional[C2C] = ...,
+ grp: Optional[Grp] = ...,
+ grp_tmp: Optional[GrpTmp] = ...,
+ dis: Optional[Dis] = ...,
+ dis_tmp: Optional[DisTmp] = ...,
+ wpa_tmp: Optional[WPATmp] = ...,
+ public_plat: Optional[PublicPlat] = ...,
+ trans_msg: Optional[TransMsg] = ...,
+ address_list: Optional[AddressListTmp] = ...,
+ rich_status_tmp: Optional[RichStatusTmp] = ...,
+ trans_cmd: Optional[TransCmd] = ...,
+ accost_tmp: Optional[AccostTmp] = ...,
+ pub_group_tmp: Optional[PubGroupTmp] = ...,
+ trans_0_x211: Optional[Trans0x211] = ...,
+ business_wpa_tmp: Optional[BusinessWPATmp] = ...,
+ auth_tmp: Optional[AuthTmp] = ...,
+ bsns_tmp: Optional[BsnsTmp] = ...,
+ qq_querybusiness_tmp: Optional[QQQueryBusinessTmp] = ...,
+ nearby_dating_tmp: Optional[NearByDatingTmp] = ...,
+ nearby_assistant_tmp: Optional[NearByAssistantTmp] = ...,
+ comm_tmp: Optional[CommTmp] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["accost_tmp",b"accost_tmp","address_list",b"address_list","auth_tmp",b"auth_tmp","bsns_tmp",b"bsns_tmp","business_wpa_tmp",b"business_wpa_tmp","c2c",b"c2c","comm_tmp",b"comm_tmp","dis",b"dis","dis_tmp",b"dis_tmp","grp",b"grp","grp_tmp",b"grp_tmp","nearby_assistant_tmp",b"nearby_assistant_tmp","nearby_dating_tmp",b"nearby_dating_tmp","pub_group_tmp",b"pub_group_tmp","public_plat",b"public_plat","qq_querybusiness_tmp",b"qq_querybusiness_tmp","rich_status_tmp",b"rich_status_tmp","trans_0_x211",b"trans_0_x211","trans_cmd",b"trans_cmd","trans_msg",b"trans_msg","wpa_tmp",b"wpa_tmp"]) -> bool: ...
+ def ClearField(self, field_name: Literal["accost_tmp",b"accost_tmp","address_list",b"address_list","auth_tmp",b"auth_tmp","bsns_tmp",b"bsns_tmp","business_wpa_tmp",b"business_wpa_tmp","c2c",b"c2c","comm_tmp",b"comm_tmp","dis",b"dis","dis_tmp",b"dis_tmp","grp",b"grp","grp_tmp",b"grp_tmp","nearby_assistant_tmp",b"nearby_assistant_tmp","nearby_dating_tmp",b"nearby_dating_tmp","pub_group_tmp",b"pub_group_tmp","public_plat",b"public_plat","qq_querybusiness_tmp",b"qq_querybusiness_tmp","rich_status_tmp",b"rich_status_tmp","trans_0_x211",b"trans_0_x211","trans_cmd",b"trans_cmd","trans_msg",b"trans_msg","wpa_tmp",b"wpa_tmp"]) -> None: ...
class Trans0x211(Message):
- DESCRIPTOR: Descriptor = ...
+ """message SecretFileHead {
+ optional SubMsgType0xc1.MsgBody secret_file_msg = 1;
+ optional SubMsgType0x1a.MsgBody secret_file_status = 2;
+ }
+
+ """
+ DESCRIPTOR: Descriptor
TO_UIN_FIELD_NUMBER: int
CC_CMD_FIELD_NUMBER: int
INST_CTRL_FIELD_NUMBER: int
@@ -2028,145 +1873,136 @@ class Trans0x211(Message):
C2C_TYPE_FIELD_NUMBER: int
SERVICE_TYPE_FIELD_NUMBER: int
DATALINE_FLAG_FIELD_NUMBER: int
- to_uin: int = ...
- cc_cmd: int = ...
- sig: bytes = ...
- c2c_type: int = ...
- service_type: int = ...
- dataline_flag: int = ...
-
+ to_uin: int
+ cc_cmd: int
@property
def inst_ctrl(self) -> InstCtrl: ...
-
+ sig: bytes
+ c2c_type: int
+ service_type: int
+ dataline_flag: int
def __init__(self,
*,
- to_uin : Optional[int] = ...,
- cc_cmd : Optional[int] = ...,
- inst_ctrl : Optional[InstCtrl] = ...,
- sig : Optional[bytes] = ...,
- c2c_type : Optional[int] = ...,
- service_type : Optional[int] = ...,
- dataline_flag : Optional[int] = ...,
+ to_uin: Optional[int] = ...,
+ cc_cmd: Optional[int] = ...,
+ inst_ctrl: Optional[InstCtrl] = ...,
+ sig: Optional[bytes] = ...,
+ c2c_type: Optional[int] = ...,
+ service_type: Optional[int] = ...,
+ dataline_flag: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"c2c_type",b"c2c_type",u"cc_cmd",b"cc_cmd",u"dataline_flag",b"dataline_flag",u"inst_ctrl",b"inst_ctrl",u"service_type",b"service_type",u"sig",b"sig",u"to_uin",b"to_uin"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"c2c_type",b"c2c_type",u"cc_cmd",b"cc_cmd",u"dataline_flag",b"dataline_flag",u"inst_ctrl",b"inst_ctrl",u"service_type",b"service_type",u"sig",b"sig",u"to_uin",b"to_uin"]) -> None: ...
+ def HasField(self, field_name: Literal["c2c_type",b"c2c_type","cc_cmd",b"cc_cmd","dataline_flag",b"dataline_flag","inst_ctrl",b"inst_ctrl","service_type",b"service_type","sig",b"sig","to_uin",b"to_uin"]) -> bool: ...
+ def ClearField(self, field_name: Literal["c2c_type",b"c2c_type","cc_cmd",b"cc_cmd","dataline_flag",b"dataline_flag","inst_ctrl",b"inst_ctrl","service_type",b"service_type","sig",b"sig","to_uin",b"to_uin"]) -> None: ...
class TransCmd(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
TO_UIN_FIELD_NUMBER: int
TYPE_FIELD_NUMBER: int
- to_uin: int = ...
- type: int = ...
-
+ to_uin: int
+ type: int
def __init__(self,
*,
- to_uin : Optional[int] = ...,
- type : Optional[int] = ...,
+ to_uin: Optional[int] = ...,
+ type: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"to_uin",b"to_uin",u"type",b"type"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"to_uin",b"to_uin",u"type",b"type"]) -> None: ...
+ def HasField(self, field_name: Literal["to_uin",b"to_uin","type",b"type"]) -> bool: ...
+ def ClearField(self, field_name: Literal["to_uin",b"to_uin","type",b"type"]) -> None: ...
class TransMsg(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
TO_UIN_FIELD_NUMBER: int
C2C_CMD_FIELD_NUMBER: int
- to_uin: int = ...
- c2c_cmd: int = ...
-
+ to_uin: int
+ c2c_cmd: int
def __init__(self,
*,
- to_uin : Optional[int] = ...,
- c2c_cmd : Optional[int] = ...,
+ to_uin: Optional[int] = ...,
+ c2c_cmd: Optional[int] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"c2c_cmd",b"c2c_cmd",u"to_uin",b"to_uin"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"c2c_cmd",b"c2c_cmd",u"to_uin",b"to_uin"]) -> None: ...
+ def HasField(self, field_name: Literal["c2c_cmd",b"c2c_cmd","to_uin",b"to_uin"]) -> bool: ...
+ def ClearField(self, field_name: Literal["c2c_cmd",b"c2c_cmd","to_uin",b"to_uin"]) -> None: ...
class TransReq(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
COMMAND_FIELD_NUMBER: int
REQ_TAG_FIELD_NUMBER: int
REQ_BUFF_FIELD_NUMBER: int
- command: int = ...
- req_tag: int = ...
- req_buff: bytes = ...
-
+ command: int
+ req_tag: int
+ req_buff: bytes
def __init__(self,
*,
- command : Optional[int] = ...,
- req_tag : Optional[int] = ...,
- req_buff : Optional[bytes] = ...,
+ command: Optional[int] = ...,
+ req_tag: Optional[int] = ...,
+ req_buff: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"command",b"command",u"req_buff",b"req_buff",u"req_tag",b"req_tag"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"command",b"command",u"req_buff",b"req_buff",u"req_tag",b"req_tag"]) -> None: ...
+ def HasField(self, field_name: Literal["command",b"command","req_buff",b"req_buff","req_tag",b"req_tag"]) -> bool: ...
+ def ClearField(self, field_name: Literal["command",b"command","req_buff",b"req_buff","req_tag",b"req_tag"]) -> None: ...
class TransResp(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
RESULT_FIELD_NUMBER: int
ERRMSG_FIELD_NUMBER: int
RESP_TAG_FIELD_NUMBER: int
RESP_BUFF_FIELD_NUMBER: int
- result: int = ...
- errmsg: Text = ...
- resp_tag: int = ...
- resp_buff: bytes = ...
-
+ result: int
+ errmsg: Text
+ resp_tag: int
+ resp_buff: bytes
def __init__(self,
*,
- result : Optional[int] = ...,
- errmsg : Optional[Text] = ...,
- resp_tag : Optional[int] = ...,
- resp_buff : Optional[bytes] = ...,
+ result: Optional[int] = ...,
+ errmsg: Optional[Text] = ...,
+ resp_tag: Optional[int] = ...,
+ resp_buff: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"errmsg",b"errmsg",u"resp_buff",b"resp_buff",u"resp_tag",b"resp_tag",u"result",b"result"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"errmsg",b"errmsg",u"resp_buff",b"resp_buff",u"resp_tag",b"resp_tag",u"result",b"result"]) -> None: ...
+ def HasField(self, field_name: Literal["errmsg",b"errmsg","resp_buff",b"resp_buff","resp_tag",b"resp_tag","result",b"result"]) -> bool: ...
+ def ClearField(self, field_name: Literal["errmsg",b"errmsg","resp_buff",b"resp_buff","resp_tag",b"resp_tag","result",b"result"]) -> None: ...
class TransSvrInfo(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
SUB_TYPE_FIELD_NUMBER: int
RET_CODE_FIELD_NUMBER: int
ERR_MSG_FIELD_NUMBER: int
TRANS_INFO_FIELD_NUMBER: int
- sub_type: int = ...
- ret_code: int = ...
- err_msg: bytes = ...
- trans_info: bytes = ...
-
+ sub_type: int
+ ret_code: int
+ err_msg: bytes
+ trans_info: bytes
def __init__(self,
*,
- sub_type : Optional[int] = ...,
- ret_code : Optional[int] = ...,
- err_msg : Optional[bytes] = ...,
- trans_info : Optional[bytes] = ...,
+ sub_type: Optional[int] = ...,
+ ret_code: Optional[int] = ...,
+ err_msg: Optional[bytes] = ...,
+ trans_info: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"err_msg",b"err_msg",u"ret_code",b"ret_code",u"sub_type",b"sub_type",u"trans_info",b"trans_info"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"err_msg",b"err_msg",u"ret_code",b"ret_code",u"sub_type",b"sub_type",u"trans_info",b"trans_info"]) -> None: ...
+ def HasField(self, field_name: Literal["err_msg",b"err_msg","ret_code",b"ret_code","sub_type",b"sub_type","trans_info",b"trans_info"]) -> bool: ...
+ def ClearField(self, field_name: Literal["err_msg",b"err_msg","ret_code",b"ret_code","sub_type",b"sub_type","trans_info",b"trans_info"]) -> None: ...
class WPATmp(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
TO_UIN_FIELD_NUMBER: int
SIG_FIELD_NUMBER: int
- to_uin: int = ...
- sig: bytes = ...
-
+ to_uin: int
+ sig: bytes
def __init__(self,
*,
- to_uin : Optional[int] = ...,
- sig : Optional[bytes] = ...,
+ to_uin: Optional[int] = ...,
+ sig: Optional[bytes] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"sig",b"sig",u"to_uin",b"to_uin"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"sig",b"sig",u"to_uin",b"to_uin"]) -> None: ...
+ def HasField(self, field_name: Literal["sig",b"sig","to_uin",b"to_uin"]) -> bool: ...
+ def ClearField(self, field_name: Literal["sig",b"sig","to_uin",b"to_uin"]) -> None: ...
class WithDrawWordingInfo(Message):
- DESCRIPTOR: Descriptor = ...
+ DESCRIPTOR: Descriptor
ITEM_ID_FIELD_NUMBER: int
ITEM_NAME_FIELD_NUMBER: int
- item_id: int = ...
- item_name: Text = ...
-
+ item_id: int
+ item_name: Text
def __init__(self,
*,
- item_id : Optional[int] = ...,
- item_name : Optional[Text] = ...,
+ item_id: Optional[int] = ...,
+ item_name: Optional[Text] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"item_id",b"item_id",u"item_name",b"item_name"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"item_id",b"item_id",u"item_name",b"item_name"]) -> None: ...
+ def HasField(self, field_name: Literal["item_id",b"item_id","item_name",b"item_name"]) -> bool: ...
+ def ClearField(self, field_name: Literal["item_id",b"item_id","item_name",b"item_name"]) -> None: ...
diff --git a/cai/pb/wtlogin/data_pb2.py b/cai/pb/wtlogin/data_pb2.py
index b865a13c..bf938f56 100644
--- a/cai/pb/wtlogin/data_pb2.py
+++ b/cai/pb/wtlogin/data_pb2.py
@@ -3,6 +3,7 @@
# source: cai/pb/wtlogin/data.proto
"""Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
@@ -13,183 +14,12 @@
-DESCRIPTOR = _descriptor.FileDescriptor(
- name='cai/pb/wtlogin/data.proto',
- package='wtlogin',
- syntax='proto2',
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- serialized_pb=b'\n\x19\x63\x61i/pb/wtlogin/data.proto\x12\x07wtlogin\"\xc3\x01\n\x0c\x44\x65viceReport\x12\x12\n\nbootloader\x18\x01 \x01(\t\x12\x14\n\x0cproc_version\x18\x02 \x01(\t\x12\x10\n\x08\x63odename\x18\x03 \x01(\t\x12\x13\n\x0bincremental\x18\x04 \x01(\t\x12\x13\n\x0b\x66ingerprint\x18\x05 \x01(\t\x12\x0f\n\x07\x62oot_id\x18\x06 \x01(\t\x12\x12\n\nandroid_id\x18\x07 \x01(\t\x12\x11\n\tbase_band\x18\x08 \x01(\t\x12\x15\n\rinner_version\x18\t \x01(\t\"\x98\x01\n\x0cSecTransInfo\x12\x13\n\x0bphone_brand\x18\x01 \x01(\t\x12\x12\n\nmodel_type\x18\x02 \x01(\t\x12\x10\n\x08wifi_mac\x18\x03 \x01(\t\x12\r\n\x05\x62ssid\x18\x04 \x01(\t\x12\x13\n\x0bos_language\x18\x05 \x01(\t\x12\x13\n\x0bqq_language\x18\x06 \x01(\r\x12\x14\n\x0cgps_location\x18\x07 \x01(\t'
-)
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x19\x63\x61i/pb/wtlogin/data.proto\x12\x07wtlogin\"\xc3\x01\n\x0c\x44\x65viceReport\x12\x12\n\nbootloader\x18\x01 \x01(\t\x12\x14\n\x0cproc_version\x18\x02 \x01(\t\x12\x10\n\x08\x63odename\x18\x03 \x01(\t\x12\x13\n\x0bincremental\x18\x04 \x01(\t\x12\x13\n\x0b\x66ingerprint\x18\x05 \x01(\t\x12\x0f\n\x07\x62oot_id\x18\x06 \x01(\t\x12\x12\n\nandroid_id\x18\x07 \x01(\t\x12\x11\n\tbase_band\x18\x08 \x01(\t\x12\x15\n\rinner_version\x18\t \x01(\t\"\x98\x01\n\x0cSecTransInfo\x12\x13\n\x0bphone_brand\x18\x01 \x01(\t\x12\x12\n\nmodel_type\x18\x02 \x01(\t\x12\x10\n\x08wifi_mac\x18\x03 \x01(\t\x12\r\n\x05\x62ssid\x18\x04 \x01(\t\x12\x13\n\x0bos_language\x18\x05 \x01(\t\x12\x13\n\x0bqq_language\x18\x06 \x01(\r\x12\x14\n\x0cgps_location\x18\x07 \x01(\t')
-
-_DEVICEREPORT = _descriptor.Descriptor(
- name='DeviceReport',
- full_name='wtlogin.DeviceReport',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='bootloader', full_name='wtlogin.DeviceReport.bootloader', index=0,
- number=1, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='proc_version', full_name='wtlogin.DeviceReport.proc_version', index=1,
- number=2, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='codename', full_name='wtlogin.DeviceReport.codename', index=2,
- number=3, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='incremental', full_name='wtlogin.DeviceReport.incremental', index=3,
- number=4, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='fingerprint', full_name='wtlogin.DeviceReport.fingerprint', index=4,
- number=5, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='boot_id', full_name='wtlogin.DeviceReport.boot_id', index=5,
- number=6, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='android_id', full_name='wtlogin.DeviceReport.android_id', index=6,
- number=7, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='base_band', full_name='wtlogin.DeviceReport.base_band', index=7,
- number=8, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='inner_version', full_name='wtlogin.DeviceReport.inner_version', index=8,
- number=9, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=39,
- serialized_end=234,
-)
-
-
-_SECTRANSINFO = _descriptor.Descriptor(
- name='SecTransInfo',
- full_name='wtlogin.SecTransInfo',
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name='phone_brand', full_name='wtlogin.SecTransInfo.phone_brand', index=0,
- number=1, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='model_type', full_name='wtlogin.SecTransInfo.model_type', index=1,
- number=2, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='wifi_mac', full_name='wtlogin.SecTransInfo.wifi_mac', index=2,
- number=3, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='bssid', full_name='wtlogin.SecTransInfo.bssid', index=3,
- number=4, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='os_language', full_name='wtlogin.SecTransInfo.os_language', index=4,
- number=5, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='qq_language', full_name='wtlogin.SecTransInfo.qq_language', index=5,
- number=6, type=13, cpp_type=3, label=1,
- has_default_value=False, default_value=0,
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- _descriptor.FieldDescriptor(
- name='gps_location', full_name='wtlogin.SecTransInfo.gps_location', index=6,
- number=7, type=9, cpp_type=9, label=1,
- has_default_value=False, default_value=b"".decode('utf-8'),
- message_type=None, enum_type=None, containing_type=None,
- is_extension=False, extension_scope=None,
- serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
- ],
- extensions=[
- ],
- nested_types=[],
- enum_types=[
- ],
- serialized_options=None,
- is_extendable=False,
- syntax='proto2',
- extension_ranges=[],
- oneofs=[
- ],
- serialized_start=237,
- serialized_end=389,
-)
-
-DESCRIPTOR.message_types_by_name['DeviceReport'] = _DEVICEREPORT
-DESCRIPTOR.message_types_by_name['SecTransInfo'] = _SECTRANSINFO
-_sym_db.RegisterFileDescriptor(DESCRIPTOR)
-
+_DEVICEREPORT = DESCRIPTOR.message_types_by_name['DeviceReport']
+_SECTRANSINFO = DESCRIPTOR.message_types_by_name['SecTransInfo']
DeviceReport = _reflection.GeneratedProtocolMessageType('DeviceReport', (_message.Message,), {
'DESCRIPTOR' : _DEVICEREPORT,
'__module__' : 'cai.pb.wtlogin.data_pb2'
@@ -204,5 +34,11 @@
})
_sym_db.RegisterMessage(SecTransInfo)
+if _descriptor._USE_C_DESCRIPTORS == False:
+ DESCRIPTOR._options = None
+ _DEVICEREPORT._serialized_start=39
+ _DEVICEREPORT._serialized_end=234
+ _SECTRANSINFO._serialized_start=237
+ _SECTRANSINFO._serialized_end=389
# @@protoc_insertion_point(module_scope)
diff --git a/cai/pb/wtlogin/data_pb2.pyi b/cai/pb/wtlogin/data_pb2.pyi
index c000f034..2d6b8d36 100644
--- a/cai/pb/wtlogin/data_pb2.pyi
+++ b/cai/pb/wtlogin/data_pb2.pyi
@@ -26,10 +26,11 @@ from typing_extensions import (
)
-DESCRIPTOR: FileDescriptor = ...
+DESCRIPTOR: FileDescriptor
class DeviceReport(Message):
- DESCRIPTOR: Descriptor = ...
+ """oicq/wlogin_sdk/pb/device_report.java"""
+ DESCRIPTOR: Descriptor
BOOTLOADER_FIELD_NUMBER: int
PROC_VERSION_FIELD_NUMBER: int
CODENAME_FIELD_NUMBER: int
@@ -39,33 +40,33 @@ class DeviceReport(Message):
ANDROID_ID_FIELD_NUMBER: int
BASE_BAND_FIELD_NUMBER: int
INNER_VERSION_FIELD_NUMBER: int
- bootloader: Text = ...
- proc_version: Text = ...
- codename: Text = ...
- incremental: Text = ...
- fingerprint: Text = ...
- boot_id: Text = ...
- android_id: Text = ...
- base_band: Text = ...
- inner_version: Text = ...
-
+ bootloader: Text
+ proc_version: Text
+ codename: Text
+ incremental: Text
+ fingerprint: Text
+ boot_id: Text
+ android_id: Text
+ base_band: Text
+ inner_version: Text
def __init__(self,
*,
- bootloader : Optional[Text] = ...,
- proc_version : Optional[Text] = ...,
- codename : Optional[Text] = ...,
- incremental : Optional[Text] = ...,
- fingerprint : Optional[Text] = ...,
- boot_id : Optional[Text] = ...,
- android_id : Optional[Text] = ...,
- base_band : Optional[Text] = ...,
- inner_version : Optional[Text] = ...,
+ bootloader: Optional[Text] = ...,
+ proc_version: Optional[Text] = ...,
+ codename: Optional[Text] = ...,
+ incremental: Optional[Text] = ...,
+ fingerprint: Optional[Text] = ...,
+ boot_id: Optional[Text] = ...,
+ android_id: Optional[Text] = ...,
+ base_band: Optional[Text] = ...,
+ inner_version: Optional[Text] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"android_id",b"android_id",u"base_band",b"base_band",u"boot_id",b"boot_id",u"bootloader",b"bootloader",u"codename",b"codename",u"fingerprint",b"fingerprint",u"incremental",b"incremental",u"inner_version",b"inner_version",u"proc_version",b"proc_version"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"android_id",b"android_id",u"base_band",b"base_band",u"boot_id",b"boot_id",u"bootloader",b"bootloader",u"codename",b"codename",u"fingerprint",b"fingerprint",u"incremental",b"incremental",u"inner_version",b"inner_version",u"proc_version",b"proc_version"]) -> None: ...
+ def HasField(self, field_name: Literal["android_id",b"android_id","base_band",b"base_band","boot_id",b"boot_id","bootloader",b"bootloader","codename",b"codename","fingerprint",b"fingerprint","incremental",b"incremental","inner_version",b"inner_version","proc_version",b"proc_version"]) -> bool: ...
+ def ClearField(self, field_name: Literal["android_id",b"android_id","base_band",b"base_band","boot_id",b"boot_id","bootloader",b"bootloader","codename",b"codename","fingerprint",b"fingerprint","incremental",b"incremental","inner_version",b"inner_version","proc_version",b"proc_version"]) -> None: ...
class SecTransInfo(Message):
- DESCRIPTOR: Descriptor = ...
+ """oicq/wlogin_sdk/pb/sec_trans.java"""
+ DESCRIPTOR: Descriptor
PHONE_BRAND_FIELD_NUMBER: int
MODEL_TYPE_FIELD_NUMBER: int
WIFI_MAC_FIELD_NUMBER: int
@@ -73,23 +74,22 @@ class SecTransInfo(Message):
OS_LANGUAGE_FIELD_NUMBER: int
QQ_LANGUAGE_FIELD_NUMBER: int
GPS_LOCATION_FIELD_NUMBER: int
- phone_brand: Text = ...
- model_type: Text = ...
- wifi_mac: Text = ...
- bssid: Text = ...
- os_language: Text = ...
- qq_language: int = ...
- gps_location: Text = ...
-
+ phone_brand: Text
+ model_type: Text
+ wifi_mac: Text
+ bssid: Text
+ os_language: Text
+ qq_language: int
+ gps_location: Text
def __init__(self,
*,
- phone_brand : Optional[Text] = ...,
- model_type : Optional[Text] = ...,
- wifi_mac : Optional[Text] = ...,
- bssid : Optional[Text] = ...,
- os_language : Optional[Text] = ...,
- qq_language : Optional[int] = ...,
- gps_location : Optional[Text] = ...,
+ phone_brand: Optional[Text] = ...,
+ model_type: Optional[Text] = ...,
+ wifi_mac: Optional[Text] = ...,
+ bssid: Optional[Text] = ...,
+ os_language: Optional[Text] = ...,
+ qq_language: Optional[int] = ...,
+ gps_location: Optional[Text] = ...,
) -> None: ...
- def HasField(self, field_name: Literal[u"bssid",b"bssid",u"gps_location",b"gps_location",u"model_type",b"model_type",u"os_language",b"os_language",u"phone_brand",b"phone_brand",u"qq_language",b"qq_language",u"wifi_mac",b"wifi_mac"]) -> bool: ...
- def ClearField(self, field_name: Literal[u"bssid",b"bssid",u"gps_location",b"gps_location",u"model_type",b"model_type",u"os_language",b"os_language",u"phone_brand",b"phone_brand",u"qq_language",b"qq_language",u"wifi_mac",b"wifi_mac"]) -> None: ...
+ def HasField(self, field_name: Literal["bssid",b"bssid","gps_location",b"gps_location","model_type",b"model_type","os_language",b"os_language","phone_brand",b"phone_brand","qq_language",b"qq_language","wifi_mac",b"wifi_mac"]) -> bool: ...
+ def ClearField(self, field_name: Literal["bssid",b"bssid","gps_location",b"gps_location","model_type",b"model_type","os_language",b"os_language","phone_brand",b"phone_brand","qq_language",b"qq_language","wifi_mac",b"wifi_mac"]) -> None: ...
From cc2c19ba34d58621450c3af0152588f4b979fccb Mon Sep 17 00:00:00 2001
From: yanyongyu <42488585+yanyongyu@users.noreply.github.com>
Date: Fri, 8 Apr 2022 14:21:44 +0800
Subject: [PATCH 071/113] :arrow_up: upgrade oidb proto files
---
cai/client/online_push/__init__.py | 14 +-
.../oidb/{group0x857 => cmd0x857}/__init__.py | 0
.../cmd0x857/group_open_sys_msg/__init__.py | 1 +
.../group_open_sys_msg.proto | 47 +
.../group_open_sys_msg_pb2.py | 74 +
.../group_open_sys_msg_pb2.pyi | 161 +++
.../im/oidb/cmd0x857/troop_tips/__init__.py | 1 +
.../oidb/cmd0x857/troop_tips/troop_tips.proto | 412 ++++++
.../cmd0x857/troop_tips/troop_tips_pb2.py | 439 ++++++
.../cmd0x857/troop_tips/troop_tips_pb2.pyi | 1261 +++++++++++++++++
cai/pb/im/oidb/group0x857/group0x857.proto | 83 --
cai/pb/im/oidb/group0x857/group0x857_pb2.py | 105 --
cai/pb/im/oidb/group0x857/group0x857_pb2.pyi | 267 ----
13 files changed, 2403 insertions(+), 462 deletions(-)
rename cai/pb/im/oidb/{group0x857 => cmd0x857}/__init__.py (100%)
create mode 100644 cai/pb/im/oidb/cmd0x857/group_open_sys_msg/__init__.py
create mode 100644 cai/pb/im/oidb/cmd0x857/group_open_sys_msg/group_open_sys_msg.proto
create mode 100644 cai/pb/im/oidb/cmd0x857/group_open_sys_msg/group_open_sys_msg_pb2.py
create mode 100644 cai/pb/im/oidb/cmd0x857/group_open_sys_msg/group_open_sys_msg_pb2.pyi
create mode 100644 cai/pb/im/oidb/cmd0x857/troop_tips/__init__.py
create mode 100644 cai/pb/im/oidb/cmd0x857/troop_tips/troop_tips.proto
create mode 100644 cai/pb/im/oidb/cmd0x857/troop_tips/troop_tips_pb2.py
create mode 100644 cai/pb/im/oidb/cmd0x857/troop_tips/troop_tips_pb2.pyi
delete mode 100644 cai/pb/im/oidb/group0x857/group0x857.proto
delete mode 100644 cai/pb/im/oidb/group0x857/group0x857_pb2.py
delete mode 100644 cai/pb/im/oidb/group0x857/group0x857_pb2.pyi
diff --git a/cai/client/online_push/__init__.py b/cai/client/online_push/__init__.py
index 785f700a..bccd6f84 100644
--- a/cai/client/online_push/__init__.py
+++ b/cai/client/online_push/__init__.py
@@ -18,7 +18,7 @@
from cai.client.message_service import MESSAGE_DECODERS
from cai.client.packet import UniPacket, IncomingPacket
from cai.utils.jce import RequestPacket, RequestPacketVersion3
-from cai.pb.im.oidb.group0x857.group0x857_pb2 import TemplParam, NotifyMsgBody
+from cai.pb.im.oidb.cmd0x857.troop_tips import TemplParam, NotifyMsgBody
from .jce import DelMsgInfo, DeviceInfo, SvcRespPushMsg
from .command import PushMsg, PushMsgError, PushMsgCommand
@@ -271,19 +271,19 @@ async def handle_req_push(
if stype == 0x14: # nudge
client.dispatch_event(
events.NudgeEvent(
- **_parse_poke(notify.optGeneralGrayTip.msgTemplParam),
+ **_parse_poke(notify.general_gray_tip.templ_param),
group=gid,
)
)
elif stype == 0x11: # recall
- msg = notify.optMsgRecall.recalledMsgList[0]
+ msg = notify.recall.recalled_msg_list[0]
client.dispatch_event(
events.MemberRecallMessageEvent(
gid,
- notify.optMsgRecall.uin,
- notify.optMsgRecall.opType,
- msg.authorUin,
- msg.msgRandom,
+ notify.recall.uin,
+ notify.recall.op_type,
+ msg.author_uin,
+ msg.msg_random,
msg.seq,
msg.time,
)
diff --git a/cai/pb/im/oidb/group0x857/__init__.py b/cai/pb/im/oidb/cmd0x857/__init__.py
similarity index 100%
rename from cai/pb/im/oidb/group0x857/__init__.py
rename to cai/pb/im/oidb/cmd0x857/__init__.py
diff --git a/cai/pb/im/oidb/cmd0x857/group_open_sys_msg/__init__.py b/cai/pb/im/oidb/cmd0x857/group_open_sys_msg/__init__.py
new file mode 100644
index 00000000..c87bd76f
--- /dev/null
+++ b/cai/pb/im/oidb/cmd0x857/group_open_sys_msg/__init__.py
@@ -0,0 +1 @@
+from .group_open_sys_msg_pb2 import *
diff --git a/cai/pb/im/oidb/cmd0x857/group_open_sys_msg/group_open_sys_msg.proto b/cai/pb/im/oidb/cmd0x857/group_open_sys_msg/group_open_sys_msg.proto
new file mode 100644
index 00000000..bd67e595
--- /dev/null
+++ b/cai/pb/im/oidb/cmd0x857/group_open_sys_msg/group_open_sys_msg.proto
@@ -0,0 +1,47 @@
+syntax = "proto2";
+package im.oidb.cmd0x857.group_open_sys_msg;
+
+// im/oidb/cmd0x857/GroupOpenSysMsg.java
+
+message LightApp {
+ optional string app = 1;
+ optional string view = 2;
+ optional string desc = 3;
+ optional string prompt = 4;
+ optional string ver = 5;
+ optional string meta = 6;
+ optional string config = 7;
+ optional Source source = 8;
+}
+
+message RichMsg {
+ optional string title = 1;
+ optional string desc = 2;
+ optional string brief = 3;
+ optional string cover = 4;
+ optional string url = 5;
+ optional Source source = 6;
+}
+
+message Sender {
+ optional uint64 uin = 1;
+ optional string nick = 2;
+ optional string avatar = 3;
+ optional string url = 4;
+}
+
+message Source {
+ optional string name = 1;
+ optional string icon = 2;
+ optional string url = 3;
+}
+
+message SysMsgBody {
+ optional uint64 group_id = 1;
+ optional uint64 appid = 2;
+ optional Sender sender = 3;
+ optional uint32 type = 4;
+ optional string content = 5;
+ optional RichMsg rich_msg = 6;
+ optional LightApp light_app = 7;
+}
diff --git a/cai/pb/im/oidb/cmd0x857/group_open_sys_msg/group_open_sys_msg_pb2.py b/cai/pb/im/oidb/cmd0x857/group_open_sys_msg/group_open_sys_msg_pb2.py
new file mode 100644
index 00000000..968a2131
--- /dev/null
+++ b/cai/pb/im/oidb/cmd0x857/group_open_sys_msg/group_open_sys_msg_pb2.py
@@ -0,0 +1,74 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: cai/pb/im/oidb/cmd0x857/group_open_sys_msg/group_open_sys_msg.proto
+"""Generated protocol buffer code."""
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import message as _message
+from google.protobuf import reflection as _reflection
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\nCcai/pb/im/oidb/cmd0x857/group_open_sys_msg/group_open_sys_msg.proto\x12#im.oidb.cmd0x857.group_open_sys_msg\"\xab\x01\n\x08LightApp\x12\x0b\n\x03\x61pp\x18\x01 \x01(\t\x12\x0c\n\x04view\x18\x02 \x01(\t\x12\x0c\n\x04\x64\x65sc\x18\x03 \x01(\t\x12\x0e\n\x06prompt\x18\x04 \x01(\t\x12\x0b\n\x03ver\x18\x05 \x01(\t\x12\x0c\n\x04meta\x18\x06 \x01(\t\x12\x0e\n\x06\x63onfig\x18\x07 \x01(\t\x12;\n\x06source\x18\x08 \x01(\x0b\x32+.im.oidb.cmd0x857.group_open_sys_msg.Source\"\x8e\x01\n\x07RichMsg\x12\r\n\x05title\x18\x01 \x01(\t\x12\x0c\n\x04\x64\x65sc\x18\x02 \x01(\t\x12\r\n\x05\x62rief\x18\x03 \x01(\t\x12\r\n\x05\x63over\x18\x04 \x01(\t\x12\x0b\n\x03url\x18\x05 \x01(\t\x12;\n\x06source\x18\x06 \x01(\x0b\x32+.im.oidb.cmd0x857.group_open_sys_msg.Source\"@\n\x06Sender\x12\x0b\n\x03uin\x18\x01 \x01(\x04\x12\x0c\n\x04nick\x18\x02 \x01(\t\x12\x0e\n\x06\x61vatar\x18\x03 \x01(\t\x12\x0b\n\x03url\x18\x04 \x01(\t\"1\n\x06Source\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04icon\x18\x02 \x01(\t\x12\x0b\n\x03url\x18\x03 \x01(\t\"\x8b\x02\n\nSysMsgBody\x12\x10\n\x08group_id\x18\x01 \x01(\x04\x12\r\n\x05\x61ppid\x18\x02 \x01(\x04\x12;\n\x06sender\x18\x03 \x01(\x0b\x32+.im.oidb.cmd0x857.group_open_sys_msg.Sender\x12\x0c\n\x04type\x18\x04 \x01(\r\x12\x0f\n\x07\x63ontent\x18\x05 \x01(\t\x12>\n\x08rich_msg\x18\x06 \x01(\x0b\x32,.im.oidb.cmd0x857.group_open_sys_msg.RichMsg\x12@\n\tlight_app\x18\x07 \x01(\x0b\x32-.im.oidb.cmd0x857.group_open_sys_msg.LightApp')
+
+
+
+_LIGHTAPP = DESCRIPTOR.message_types_by_name['LightApp']
+_RICHMSG = DESCRIPTOR.message_types_by_name['RichMsg']
+_SENDER = DESCRIPTOR.message_types_by_name['Sender']
+_SOURCE = DESCRIPTOR.message_types_by_name['Source']
+_SYSMSGBODY = DESCRIPTOR.message_types_by_name['SysMsgBody']
+LightApp = _reflection.GeneratedProtocolMessageType('LightApp', (_message.Message,), {
+ 'DESCRIPTOR' : _LIGHTAPP,
+ '__module__' : 'cai.pb.im.oidb.cmd0x857.group_open_sys_msg.group_open_sys_msg_pb2'
+ # @@protoc_insertion_point(class_scope:im.oidb.cmd0x857.group_open_sys_msg.LightApp)
+ })
+_sym_db.RegisterMessage(LightApp)
+
+RichMsg = _reflection.GeneratedProtocolMessageType('RichMsg', (_message.Message,), {
+ 'DESCRIPTOR' : _RICHMSG,
+ '__module__' : 'cai.pb.im.oidb.cmd0x857.group_open_sys_msg.group_open_sys_msg_pb2'
+ # @@protoc_insertion_point(class_scope:im.oidb.cmd0x857.group_open_sys_msg.RichMsg)
+ })
+_sym_db.RegisterMessage(RichMsg)
+
+Sender = _reflection.GeneratedProtocolMessageType('Sender', (_message.Message,), {
+ 'DESCRIPTOR' : _SENDER,
+ '__module__' : 'cai.pb.im.oidb.cmd0x857.group_open_sys_msg.group_open_sys_msg_pb2'
+ # @@protoc_insertion_point(class_scope:im.oidb.cmd0x857.group_open_sys_msg.Sender)
+ })
+_sym_db.RegisterMessage(Sender)
+
+Source = _reflection.GeneratedProtocolMessageType('Source', (_message.Message,), {
+ 'DESCRIPTOR' : _SOURCE,
+ '__module__' : 'cai.pb.im.oidb.cmd0x857.group_open_sys_msg.group_open_sys_msg_pb2'
+ # @@protoc_insertion_point(class_scope:im.oidb.cmd0x857.group_open_sys_msg.Source)
+ })
+_sym_db.RegisterMessage(Source)
+
+SysMsgBody = _reflection.GeneratedProtocolMessageType('SysMsgBody', (_message.Message,), {
+ 'DESCRIPTOR' : _SYSMSGBODY,
+ '__module__' : 'cai.pb.im.oidb.cmd0x857.group_open_sys_msg.group_open_sys_msg_pb2'
+ # @@protoc_insertion_point(class_scope:im.oidb.cmd0x857.group_open_sys_msg.SysMsgBody)
+ })
+_sym_db.RegisterMessage(SysMsgBody)
+
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ _LIGHTAPP._serialized_start=109
+ _LIGHTAPP._serialized_end=280
+ _RICHMSG._serialized_start=283
+ _RICHMSG._serialized_end=425
+ _SENDER._serialized_start=427
+ _SENDER._serialized_end=491
+ _SOURCE._serialized_start=493
+ _SOURCE._serialized_end=542
+ _SYSMSGBODY._serialized_start=545
+ _SYSMSGBODY._serialized_end=812
+# @@protoc_insertion_point(module_scope)
diff --git a/cai/pb/im/oidb/cmd0x857/group_open_sys_msg/group_open_sys_msg_pb2.pyi b/cai/pb/im/oidb/cmd0x857/group_open_sys_msg/group_open_sys_msg_pb2.pyi
new file mode 100644
index 00000000..03d0da15
--- /dev/null
+++ b/cai/pb/im/oidb/cmd0x857/group_open_sys_msg/group_open_sys_msg_pb2.pyi
@@ -0,0 +1,161 @@
+"""
+@generated by mypy-protobuf. Do not edit manually!
+isort:skip_file
+"""
+from builtins import (
+ bool,
+ int,
+)
+
+from google.protobuf.descriptor import (
+ Descriptor,
+ FileDescriptor,
+)
+
+from google.protobuf.message import (
+ Message,
+)
+
+from typing import (
+ Optional,
+ Text,
+)
+
+from typing_extensions import (
+ Literal,
+)
+
+
+DESCRIPTOR: FileDescriptor
+
+class LightApp(Message):
+ """im/oidb/cmd0x857/GroupOpenSysMsg.java
+
+ """
+ DESCRIPTOR: Descriptor
+ APP_FIELD_NUMBER: int
+ VIEW_FIELD_NUMBER: int
+ DESC_FIELD_NUMBER: int
+ PROMPT_FIELD_NUMBER: int
+ VER_FIELD_NUMBER: int
+ META_FIELD_NUMBER: int
+ CONFIG_FIELD_NUMBER: int
+ SOURCE_FIELD_NUMBER: int
+ app: Text
+ view: Text
+ desc: Text
+ prompt: Text
+ ver: Text
+ meta: Text
+ config: Text
+ @property
+ def source(self) -> Source: ...
+ def __init__(self,
+ *,
+ app: Optional[Text] = ...,
+ view: Optional[Text] = ...,
+ desc: Optional[Text] = ...,
+ prompt: Optional[Text] = ...,
+ ver: Optional[Text] = ...,
+ meta: Optional[Text] = ...,
+ config: Optional[Text] = ...,
+ source: Optional[Source] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["app",b"app","config",b"config","desc",b"desc","meta",b"meta","prompt",b"prompt","source",b"source","ver",b"ver","view",b"view"]) -> bool: ...
+ def ClearField(self, field_name: Literal["app",b"app","config",b"config","desc",b"desc","meta",b"meta","prompt",b"prompt","source",b"source","ver",b"ver","view",b"view"]) -> None: ...
+
+class RichMsg(Message):
+ DESCRIPTOR: Descriptor
+ TITLE_FIELD_NUMBER: int
+ DESC_FIELD_NUMBER: int
+ BRIEF_FIELD_NUMBER: int
+ COVER_FIELD_NUMBER: int
+ URL_FIELD_NUMBER: int
+ SOURCE_FIELD_NUMBER: int
+ title: Text
+ desc: Text
+ brief: Text
+ cover: Text
+ url: Text
+ @property
+ def source(self) -> Source: ...
+ def __init__(self,
+ *,
+ title: Optional[Text] = ...,
+ desc: Optional[Text] = ...,
+ brief: Optional[Text] = ...,
+ cover: Optional[Text] = ...,
+ url: Optional[Text] = ...,
+ source: Optional[Source] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["brief",b"brief","cover",b"cover","desc",b"desc","source",b"source","title",b"title","url",b"url"]) -> bool: ...
+ def ClearField(self, field_name: Literal["brief",b"brief","cover",b"cover","desc",b"desc","source",b"source","title",b"title","url",b"url"]) -> None: ...
+
+class Sender(Message):
+ DESCRIPTOR: Descriptor
+ UIN_FIELD_NUMBER: int
+ NICK_FIELD_NUMBER: int
+ AVATAR_FIELD_NUMBER: int
+ URL_FIELD_NUMBER: int
+ uin: int
+ nick: Text
+ avatar: Text
+ url: Text
+ def __init__(self,
+ *,
+ uin: Optional[int] = ...,
+ nick: Optional[Text] = ...,
+ avatar: Optional[Text] = ...,
+ url: Optional[Text] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["avatar",b"avatar","nick",b"nick","uin",b"uin","url",b"url"]) -> bool: ...
+ def ClearField(self, field_name: Literal["avatar",b"avatar","nick",b"nick","uin",b"uin","url",b"url"]) -> None: ...
+
+class Source(Message):
+ DESCRIPTOR: Descriptor
+ NAME_FIELD_NUMBER: int
+ ICON_FIELD_NUMBER: int
+ URL_FIELD_NUMBER: int
+ name: Text
+ icon: Text
+ url: Text
+ def __init__(self,
+ *,
+ name: Optional[Text] = ...,
+ icon: Optional[Text] = ...,
+ url: Optional[Text] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["icon",b"icon","name",b"name","url",b"url"]) -> bool: ...
+ def ClearField(self, field_name: Literal["icon",b"icon","name",b"name","url",b"url"]) -> None: ...
+
+class SysMsgBody(Message):
+ DESCRIPTOR: Descriptor
+ GROUP_ID_FIELD_NUMBER: int
+ APPID_FIELD_NUMBER: int
+ SENDER_FIELD_NUMBER: int
+ TYPE_FIELD_NUMBER: int
+ CONTENT_FIELD_NUMBER: int
+ RICH_MSG_FIELD_NUMBER: int
+ LIGHT_APP_FIELD_NUMBER: int
+ group_id: int
+ appid: int
+ @property
+ def sender(self) -> Sender: ...
+ type: int
+ content: Text
+ @property
+ def rich_msg(self) -> RichMsg: ...
+ @property
+ def light_app(self) -> LightApp: ...
+ def __init__(self,
+ *,
+ group_id: Optional[int] = ...,
+ appid: Optional[int] = ...,
+ sender: Optional[Sender] = ...,
+ type: Optional[int] = ...,
+ content: Optional[Text] = ...,
+ rich_msg: Optional[RichMsg] = ...,
+ light_app: Optional[LightApp] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["appid",b"appid","content",b"content","group_id",b"group_id","light_app",b"light_app","rich_msg",b"rich_msg","sender",b"sender","type",b"type"]) -> bool: ...
+ def ClearField(self, field_name: Literal["appid",b"appid","content",b"content","group_id",b"group_id","light_app",b"light_app","rich_msg",b"rich_msg","sender",b"sender","type",b"type"]) -> None: ...
diff --git a/cai/pb/im/oidb/cmd0x857/troop_tips/__init__.py b/cai/pb/im/oidb/cmd0x857/troop_tips/__init__.py
new file mode 100644
index 00000000..6f4e17ff
--- /dev/null
+++ b/cai/pb/im/oidb/cmd0x857/troop_tips/__init__.py
@@ -0,0 +1 @@
+from .troop_tips_pb2 import *
diff --git a/cai/pb/im/oidb/cmd0x857/troop_tips/troop_tips.proto b/cai/pb/im/oidb/cmd0x857/troop_tips/troop_tips.proto
new file mode 100644
index 00000000..df81bebb
--- /dev/null
+++ b/cai/pb/im/oidb/cmd0x857/troop_tips/troop_tips.proto
@@ -0,0 +1,412 @@
+syntax = "proto2";
+package im.oidb.cmd0x857.troop_tips;
+
+// tencent/im/oidb/cmd0x857/TroopTips0x857.java
+
+message AIOGrayTipsInfo {
+ optional uint32 show_lastest = 1;
+ optional bytes content = 2;
+ optional uint32 remind = 3;
+ optional bytes brief = 4;
+ optional uint64 receiver_uin = 5;
+ optional uint32 reliao_admin_opt = 6;
+ optional uint32 robot_group_opt = 7;
+}
+
+message AIOTopTipsInfo {
+ optional bytes content = 1;
+ optional uint32 icon = 2;
+ optional uint32 enum_action = 3;
+ optional bytes url = 4;
+ optional bytes data = 5;
+ optional bytes data_i = 6;
+ optional bytes data_a = 7;
+ optional bytes data_p = 8;
+}
+
+message FloatedTipsInfo {
+ optional bytes content = 1;
+}
+
+message GeneralGrayTipInfo {
+ optional uint64 busi_type = 1;
+ optional uint64 busi_id = 2;
+ optional uint32 ctrl_flag = 3;
+ optional uint32 c2c_type = 4;
+ optional uint32 service_type = 5;
+ optional uint64 templ_id = 6;
+ repeated TemplParam templ_param = 7;
+ optional bytes content = 8;
+ optional uint64 tips_seq_id = 10;
+ optional bytes pb_reserv = 100;
+}
+
+message GoldMsgTipsElem {
+ optional uint32 type = 1;
+ optional string billno = 2;
+ optional uint32 result = 3;
+ optional uint32 amount = 4;
+ optional uint32 total = 5;
+ optional uint32 interval = 6;
+ optional uint32 finish = 7;
+ repeated uint64 uin = 8;
+ optional uint32 action = 9;
+}
+
+message GrayData {
+ optional uint32 all_read = 1;
+ optional string feed_id = 2;
+}
+
+message GroupAnnounceTBCInfo {
+ optional bytes feeds_id = 1;
+ optional uint64 group_id = 2;
+ optional uint32 action = 3;
+}
+
+message GroupAsyncNotify {
+ optional uint32 msg_type = 1;
+ optional uint64 msg_seq = 2;
+}
+
+message GroupInfoChange {
+ optional uint32 group_honor_switch = 1;
+ optional uint32 group_member_level_switch = 2;
+ optional uint32 group_flagext4 = 3;
+ optional uint32 appeal_deadline = 4;
+ optional uint32 group_flag = 5;
+ optional uint32 group_flagext3 = 7;
+ optional uint32 group_class_ext = 8;
+ optional uint32 group_info_ext_seq = 9;
+}
+
+message GroupNotifyInfo {
+ optional uint32 auto_pull_flag = 1;
+ optional bytes feeds_id = 2;
+}
+
+message InstCtrl {
+ repeated InstInfo send_to_inst = 1;
+ repeated InstInfo exclude_inst = 2;
+ optional InstInfo from_inst = 3;
+}
+
+message InstInfo {
+ optional uint32 apppid = 1;
+ optional uint32 instid = 2;
+ optional uint32 platform = 3;
+ optional uint32 open_appid = 4;
+ optional uint32 productid = 5;
+ optional uint32 sso_bid = 6;
+ optional bytes guid = 7;
+ optional uint32 ver_min = 8;
+ optional uint32 ver_max = 9;
+}
+
+message LbsShareChangePushInfo {
+ optional uint32 msg_type = 1;
+ optional bytes msg_info = 2;
+ optional bytes version_ctrl = 3;
+ optional uint64 group_id = 4;
+ optional uint64 oper_uin = 5;
+ optional bytes gray_tips = 6;
+ optional uint64 msg_seq = 7;
+ optional uint32 join_nums = 8;
+ optional uint32 push_type = 99;
+ optional bytes ext_info = 100;
+}
+
+message LuckyBagNotify {
+ optional bytes msg_tips = 1;
+}
+
+message MediaChangePushInfo {
+ optional uint32 msg_type = 1;
+ optional bytes msg_info = 2;
+ optional bytes version_ctrl = 3;
+ optional uint64 group_id = 4;
+ optional uint64 oper_uin = 5;
+ optional bytes gray_tips = 6;
+ optional uint64 msg_seq = 7;
+ optional uint32 join_nums = 8;
+ optional PersonalSetting per_setting = 9;
+ optional uint32 play_mode = 10;
+ optional bool is_join_when_start = 11;
+ optional uint32 media_type = 99;
+ optional bytes ext_info = 100;
+
+ message PersonalSetting {
+ optional uint32 theme_id = 1;
+ optional uint32 player_id = 2;
+ optional uint32 font_id = 3;
+ }
+}
+
+message MessageBoxInfo {
+ optional bytes content = 1;
+ optional bytes title = 2;
+ optional bytes button = 3;
+}
+
+message MessageRecallReminder {
+ optional uint64 uin = 1;
+ optional bytes nickname = 2;
+ repeated MessageMeta recalled_msg_list = 3;
+ optional bytes reminder_content = 4;
+ optional bytes userdef = 5;
+ optional uint32 group_type = 6;
+ optional uint32 op_type = 7;
+ optional uint64 admin_uin = 8;
+ optional WithDrawWordingInfo wording_info = 9;
+
+ message MessageMeta {
+ optional uint32 seq = 1;
+ optional uint32 time = 2;
+ optional uint32 msg_random = 3;
+ optional uint32 msg_type = 4;
+ optional uint32 msg_flag = 5;
+ optional uint64 author_uin = 6;
+ optional uint32 is_anony_msg = 7;
+ }
+
+ message WithDrawWordingInfo {
+ optional int32 item_id = 1;
+ optional string item_name = 2;
+ }
+}
+
+message MiniAppNotify {
+ optional bytes msg = 1;
+}
+
+message NotifyMsgBody {
+ optional uint32 enum_type = 1;
+ optional uint64 msg_time = 2;
+ optional uint64 msg_expires = 3;
+ optional uint64 group_code = 4;
+ optional AIOGrayTipsInfo graytips = 5;
+ optional MessageBoxInfo messagebox = 6;
+ optional FloatedTipsInfo floatedtips = 7;
+ optional AIOTopTipsInfo toptips = 8;
+ optional RedGrayTipsInfo redtips = 9;
+ optional GroupNotifyInfo group_notify = 10;
+ optional MessageRecallReminder recall = 11;
+ optional ThemeStateNotify theme_notify = 12;
+ optional uint32 service_type = 13;
+ optional NotifyObjmsgUpdate objmsg_update = 14;
+ optional WereWolfPush werewolf_push = 15;
+ // optional apollo_game_status.STCMGameMessage stcm_game_state = 16;
+ // optional apollo_push_msgInfo.STPushMsgElem apllo_msg_push = 17;
+ optional GoldMsgTipsElem goldtips = 18;
+ optional MiniAppNotify miniapp_notify = 20;
+ optional uint64 sender_uin = 21;
+ optional LuckyBagNotify luckybag_notify = 22;
+ optional TroopFormGrayTipsInfo troopformtips_push = 23;
+ optional MediaChangePushInfo media_push = 24;
+ optional GeneralGrayTipInfo general_gray_tip = 26;
+ optional VideoChangePushInfo video_push = 27;
+ optional LbsShareChangePushInfo lbs_share_change_plus_info = 28;
+ optional SingChangePushInfo sing_push = 29;
+ optional GroupInfoChange group_info_change = 30;
+ optional GroupAnnounceTBCInfo group_announce_tbc_info = 31;
+ optional QQVedioGamePushInfo qq_vedio_game_push_info = 32;
+ optional QQGroupDigestMsg qq_group_digest_msg = 33;
+ optional StudyRoomMemberChangePush study_room_member_msg = 34;
+ optional QQVaLiveNotifyMsg qq_live_notify = 35;
+ optional GroupAsyncNotify group_async_notidy = 36;
+ optional uint64 group_cur_msg_seq = 37;
+ optional QQGroupDigestMsgSummary group_digest_msg_summary = 38;
+ optional uint64 sysdb_msg_id = 39;
+ optional RevertGrayTipsMsgTraceless revert_graytips_traceless = 40;
+}
+
+message NotifyObjmsgUpdate {
+ optional bytes objmsg_id = 1;
+ optional uint32 update_type = 2;
+ optional bytes ext_msg = 3;
+}
+
+message QQGroupDigestMsg {
+ optional uint64 group_code = 1;
+ optional uint32 seq = 2;
+ optional uint32 random = 3;
+ optional int32 op_type = 4;
+ optional uint64 sender = 5;
+ optional uint64 digest_oper = 6;
+ optional uint32 op_time = 7;
+ optional uint32 lastest_msg_seq = 8;
+ optional bytes oper_nick = 9;
+ optional bytes sender_nick = 10;
+ optional int32 ext_info = 11;
+}
+
+message QQGroupDigestMsgSummary {
+ optional uint64 digest_oper = 1;
+ optional int32 op_type = 2;
+ optional uint32 op_time = 3;
+ optional bytes digest_nick = 4;
+ optional int32 succ_cnt = 5;
+ repeated QQGroupDigestSummaryInfo summary_info = 6;
+}
+
+message QQGroupDigestSummaryInfo {
+ optional uint32 seq = 1;
+ optional uint32 random = 2;
+ optional uint32 error_code = 3;
+}
+
+message QQVaLiveNotifyMsg {
+ optional bytes uid = 1;
+ optional int32 notify_type = 2;
+ optional bytes ext1 = 3;
+ optional bytes ext2 = 4;
+ optional bytes ext3 = 5;
+}
+
+message QQVedioGamePushInfo {
+ optional uint32 msg_type = 1;
+ optional uint64 group_code = 2;
+ optional uint64 oper_uin = 3;
+ optional bytes version_ctrl = 4;
+ optional bytes ext_info = 5;
+}
+
+message RedGrayTipsInfo {
+ optional uint32 show_lastest = 1;
+ optional uint64 sender_uin = 2;
+ optional uint64 receiver_uin = 3;
+ optional bytes sender_rich_content = 4;
+ optional bytes receiver_rich_content = 5;
+ optional bytes authkey = 6;
+ optional sint32 msgtype = 7;
+ optional uint32 lucky_flag = 8;
+ optional uint32 hide_flag = 9;
+ optional bytes pc_body = 10;
+ optional uint32 icon = 11;
+ optional uint64 lucky_uin = 12;
+ optional uint32 time = 13;
+ optional uint32 random = 14;
+ optional bytes broadcast_rich_content = 15;
+ optional bytes idiom = 16;
+ optional uint32 idiom_seq = 17;
+ optional bytes idiom_alpha = 18;
+ optional bytes jumpurl = 19;
+ optional uint32 subchannel = 20;
+ optional bytes poem_rule = 21;
+}
+
+message ReqBody {
+ optional uint64 group_code = 1;
+ repeated uint64 memberuins = 2;
+ optional uint32 offline = 3;
+ optional InstCtrl inst_ctrl = 4;
+ optional bytes msg = 5;
+ optional uint32 busi_type = 6;
+}
+
+message RevertGrayTipsMsgTraceless {
+ optional uint64 from = 1;
+ optional uint64 to = 2;
+ optional uint64 group_code = 3;
+ optional uint64 busi_id = 4;
+ optional uint64 tips_seq_id = 5;
+}
+
+message RspBody {
+ optional uint64 group_code = 1;
+}
+
+message SingChangePushInfo {
+ optional uint64 seq = 1;
+ optional uint32 action_type = 2;
+ optional uint64 group_id = 3;
+ optional uint64 oper_uin = 4;
+ optional bytes gray_tips = 5;
+ optional uint32 join_nums = 6;
+}
+
+message StudyRoomMemberChangePush {
+ optional uint32 member_count = 1;
+}
+
+message TemplParam {
+ optional bytes name = 1;
+ optional bytes value = 2;
+}
+
+message ThemeStateNotify {
+ optional uint32 state = 1;
+ optional bytes feeds_id = 2;
+ optional bytes theme_name = 3;
+ optional uint64 action_uin = 4;
+ optional uint64 create_uin = 5;
+}
+
+message TroopFormGrayTipsInfo {
+ optional uint64 writer_uin = 1;
+ optional uint64 creator_uin = 2;
+ optional bytes rich_content = 3;
+ optional bytes opt_bytes_url = 4;
+ optional bytes creator_nick = 5;
+}
+
+message VideoChangePushInfo {
+ optional uint64 seq = 1;
+ optional uint32 action_type = 2;
+ optional uint64 group_id = 3;
+ optional uint64 oper_uin = 4;
+ optional bytes gray_tips = 5;
+ optional uint32 join_nums = 6;
+ optional uint32 join_state = 7;
+ optional bytes ext_info = 100;
+}
+
+message WereWolfPush {
+ optional uint32 push_type = 1;
+ optional uint64 game_room = 2;
+ optional uint32 enum_game_state = 3;
+ optional uint32 game_round = 4;
+ repeated Role roles = 5;
+ optional uint64 speaker = 6;
+ optional uint64 judge_uin = 7;
+ optional bytes judge_words = 8;
+ optional uint32 enum_operation = 9;
+ optional uint64 src_user = 10;
+ optional uint64 dst_user = 11;
+ repeated uint64 dead_users = 12;
+ optional uint32 game_result = 13;
+ optional uint32 timeout_sec = 14;
+ optional uint32 kill_confirmed = 15;
+ optional bytes judge_nickname = 16;
+ repeated uint64 voted_tie_users = 17;
+
+ message GameRecord {
+ optional uint32 total = 1;
+ optional uint32 win = 2;
+ optional uint32 lose = 3;
+ optional uint32 draw = 4;
+ }
+
+ message Role {
+ optional uint64 uin = 1;
+ optional uint32 enum_type = 2;
+ optional uint32 enum_state = 3;
+ optional uint32 can_speak = 4;
+ optional uint32 can_listen = 5;
+ optional uint32 position = 6;
+ optional uint32 can_vote = 7;
+ optional uint32 can_voted = 8;
+ optional uint32 already_checked = 9;
+ optional uint32 already_saved = 10;
+ optional uint32 already_poisoned = 11;
+ optional uint32 player_state = 12;
+ optional uint32 enum_dead_op = 13;
+ optional uint32 enum_operation = 14;
+ optional uint64 dst_user = 15;
+ optional uint32 operation_round = 16;
+ optional GameRecord game_record = 17;
+ optional uint32 is_werewolf = 18;
+ optional uint64 defended_user = 19;
+ optional uint32 is_sheriff = 20;
+ }
+}
diff --git a/cai/pb/im/oidb/cmd0x857/troop_tips/troop_tips_pb2.py b/cai/pb/im/oidb/cmd0x857/troop_tips/troop_tips_pb2.py
new file mode 100644
index 00000000..b0f2f199
--- /dev/null
+++ b/cai/pb/im/oidb/cmd0x857/troop_tips/troop_tips_pb2.py
@@ -0,0 +1,439 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: cai/pb/im/oidb/cmd0x857/troop_tips/troop_tips.proto
+"""Generated protocol buffer code."""
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import message as _message
+from google.protobuf import reflection as _reflection
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n3cai/pb/im/oidb/cmd0x857/troop_tips/troop_tips.proto\x12\x1bim.oidb.cmd0x857.troop_tips\"\xa0\x01\n\x0f\x41IOGrayTipsInfo\x12\x14\n\x0cshow_lastest\x18\x01 \x01(\r\x12\x0f\n\x07\x63ontent\x18\x02 \x01(\x0c\x12\x0e\n\x06remind\x18\x03 \x01(\r\x12\r\n\x05\x62rief\x18\x04 \x01(\x0c\x12\x14\n\x0creceiver_uin\x18\x05 \x01(\x04\x12\x18\n\x10reliao_admin_opt\x18\x06 \x01(\r\x12\x17\n\x0frobot_group_opt\x18\x07 \x01(\r\"\x8f\x01\n\x0e\x41IOTopTipsInfo\x12\x0f\n\x07\x63ontent\x18\x01 \x01(\x0c\x12\x0c\n\x04icon\x18\x02 \x01(\r\x12\x13\n\x0b\x65num_action\x18\x03 \x01(\r\x12\x0b\n\x03url\x18\x04 \x01(\x0c\x12\x0c\n\x04\x64\x61ta\x18\x05 \x01(\x0c\x12\x0e\n\x06\x64\x61ta_i\x18\x06 \x01(\x0c\x12\x0e\n\x06\x64\x61ta_a\x18\x07 \x01(\x0c\x12\x0e\n\x06\x64\x61ta_p\x18\x08 \x01(\x0c\"\"\n\x0f\x46loatedTipsInfo\x12\x0f\n\x07\x63ontent\x18\x01 \x01(\x0c\"\xfc\x01\n\x12GeneralGrayTipInfo\x12\x11\n\tbusi_type\x18\x01 \x01(\x04\x12\x0f\n\x07\x62usi_id\x18\x02 \x01(\x04\x12\x11\n\tctrl_flag\x18\x03 \x01(\r\x12\x10\n\x08\x63\x32\x63_type\x18\x04 \x01(\r\x12\x14\n\x0cservice_type\x18\x05 \x01(\r\x12\x10\n\x08templ_id\x18\x06 \x01(\x04\x12<\n\x0btempl_param\x18\x07 \x03(\x0b\x32\'.im.oidb.cmd0x857.troop_tips.TemplParam\x12\x0f\n\x07\x63ontent\x18\x08 \x01(\x0c\x12\x13\n\x0btips_seq_id\x18\n \x01(\x04\x12\x11\n\tpb_reserv\x18\x64 \x01(\x0c\"\x9d\x01\n\x0fGoldMsgTipsElem\x12\x0c\n\x04type\x18\x01 \x01(\r\x12\x0e\n\x06\x62illno\x18\x02 \x01(\t\x12\x0e\n\x06result\x18\x03 \x01(\r\x12\x0e\n\x06\x61mount\x18\x04 \x01(\r\x12\r\n\x05total\x18\x05 \x01(\r\x12\x10\n\x08interval\x18\x06 \x01(\r\x12\x0e\n\x06\x66inish\x18\x07 \x01(\r\x12\x0b\n\x03uin\x18\x08 \x03(\x04\x12\x0e\n\x06\x61\x63tion\x18\t \x01(\r\"-\n\x08GrayData\x12\x10\n\x08\x61ll_read\x18\x01 \x01(\r\x12\x0f\n\x07\x66\x65\x65\x64_id\x18\x02 \x01(\t\"J\n\x14GroupAnnounceTBCInfo\x12\x10\n\x08\x66\x65\x65\x64s_id\x18\x01 \x01(\x0c\x12\x10\n\x08group_id\x18\x02 \x01(\x04\x12\x0e\n\x06\x61\x63tion\x18\x03 \x01(\r\"5\n\x10GroupAsyncNotify\x12\x10\n\x08msg_type\x18\x01 \x01(\r\x12\x0f\n\x07msg_seq\x18\x02 \x01(\x04\"\xe2\x01\n\x0fGroupInfoChange\x12\x1a\n\x12group_honor_switch\x18\x01 \x01(\r\x12!\n\x19group_member_level_switch\x18\x02 \x01(\r\x12\x16\n\x0egroup_flagext4\x18\x03 \x01(\r\x12\x17\n\x0f\x61ppeal_deadline\x18\x04 \x01(\r\x12\x12\n\ngroup_flag\x18\x05 \x01(\r\x12\x16\n\x0egroup_flagext3\x18\x07 \x01(\r\x12\x17\n\x0fgroup_class_ext\x18\x08 \x01(\r\x12\x1a\n\x12group_info_ext_seq\x18\t \x01(\r\";\n\x0fGroupNotifyInfo\x12\x16\n\x0e\x61uto_pull_flag\x18\x01 \x01(\r\x12\x10\n\x08\x66\x65\x65\x64s_id\x18\x02 \x01(\x0c\"\xbe\x01\n\x08InstCtrl\x12;\n\x0csend_to_inst\x18\x01 \x03(\x0b\x32%.im.oidb.cmd0x857.troop_tips.InstInfo\x12;\n\x0c\x65xclude_inst\x18\x02 \x03(\x0b\x32%.im.oidb.cmd0x857.troop_tips.InstInfo\x12\x38\n\tfrom_inst\x18\x03 \x01(\x0b\x32%.im.oidb.cmd0x857.troop_tips.InstInfo\"\xa4\x01\n\x08InstInfo\x12\x0e\n\x06\x61pppid\x18\x01 \x01(\r\x12\x0e\n\x06instid\x18\x02 \x01(\r\x12\x10\n\x08platform\x18\x03 \x01(\r\x12\x12\n\nopen_appid\x18\x04 \x01(\r\x12\x11\n\tproductid\x18\x05 \x01(\r\x12\x0f\n\x07sso_bid\x18\x06 \x01(\r\x12\x0c\n\x04guid\x18\x07 \x01(\x0c\x12\x0f\n\x07ver_min\x18\x08 \x01(\r\x12\x0f\n\x07ver_max\x18\t \x01(\r\"\xd2\x01\n\x16LbsShareChangePushInfo\x12\x10\n\x08msg_type\x18\x01 \x01(\r\x12\x10\n\x08msg_info\x18\x02 \x01(\x0c\x12\x14\n\x0cversion_ctrl\x18\x03 \x01(\x0c\x12\x10\n\x08group_id\x18\x04 \x01(\x04\x12\x10\n\x08oper_uin\x18\x05 \x01(\x04\x12\x11\n\tgray_tips\x18\x06 \x01(\x0c\x12\x0f\n\x07msg_seq\x18\x07 \x01(\x04\x12\x11\n\tjoin_nums\x18\x08 \x01(\r\x12\x11\n\tpush_type\x18\x63 \x01(\r\x12\x10\n\x08\x65xt_info\x18\x64 \x01(\x0c\"\"\n\x0eLuckyBagNotify\x12\x10\n\x08msg_tips\x18\x01 \x01(\x0c\"\x9f\x03\n\x13MediaChangePushInfo\x12\x10\n\x08msg_type\x18\x01 \x01(\r\x12\x10\n\x08msg_info\x18\x02 \x01(\x0c\x12\x14\n\x0cversion_ctrl\x18\x03 \x01(\x0c\x12\x10\n\x08group_id\x18\x04 \x01(\x04\x12\x10\n\x08oper_uin\x18\x05 \x01(\x04\x12\x11\n\tgray_tips\x18\x06 \x01(\x0c\x12\x0f\n\x07msg_seq\x18\x07 \x01(\x04\x12\x11\n\tjoin_nums\x18\x08 \x01(\r\x12U\n\x0bper_setting\x18\t \x01(\x0b\x32@.im.oidb.cmd0x857.troop_tips.MediaChangePushInfo.PersonalSetting\x12\x11\n\tplay_mode\x18\n \x01(\r\x12\x1a\n\x12is_join_when_start\x18\x0b \x01(\x08\x12\x12\n\nmedia_type\x18\x63 \x01(\r\x12\x10\n\x08\x65xt_info\x18\x64 \x01(\x0c\x1aG\n\x0fPersonalSetting\x12\x10\n\x08theme_id\x18\x01 \x01(\r\x12\x11\n\tplayer_id\x18\x02 \x01(\r\x12\x0f\n\x07\x66ont_id\x18\x03 \x01(\r\"@\n\x0eMessageBoxInfo\x12\x0f\n\x07\x63ontent\x18\x01 \x01(\x0c\x12\r\n\x05title\x18\x02 \x01(\x0c\x12\x0e\n\x06\x62utton\x18\x03 \x01(\x0c\"\x9a\x04\n\x15MessageRecallReminder\x12\x0b\n\x03uin\x18\x01 \x01(\x04\x12\x10\n\x08nickname\x18\x02 \x01(\x0c\x12Y\n\x11recalled_msg_list\x18\x03 \x03(\x0b\x32>.im.oidb.cmd0x857.troop_tips.MessageRecallReminder.MessageMeta\x12\x18\n\x10reminder_content\x18\x04 \x01(\x0c\x12\x0f\n\x07userdef\x18\x05 \x01(\x0c\x12\x12\n\ngroup_type\x18\x06 \x01(\r\x12\x0f\n\x07op_type\x18\x07 \x01(\r\x12\x11\n\tadmin_uin\x18\x08 \x01(\x04\x12\\\n\x0cwording_info\x18\t \x01(\x0b\x32\x46.im.oidb.cmd0x857.troop_tips.MessageRecallReminder.WithDrawWordingInfo\x1a\x8a\x01\n\x0bMessageMeta\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x0c\n\x04time\x18\x02 \x01(\r\x12\x12\n\nmsg_random\x18\x03 \x01(\r\x12\x10\n\x08msg_type\x18\x04 \x01(\r\x12\x10\n\x08msg_flag\x18\x05 \x01(\r\x12\x12\n\nauthor_uin\x18\x06 \x01(\x04\x12\x14\n\x0cis_anony_msg\x18\x07 \x01(\r\x1a\x39\n\x13WithDrawWordingInfo\x12\x0f\n\x07item_id\x18\x01 \x01(\x05\x12\x11\n\titem_name\x18\x02 \x01(\t\"\x1c\n\rMiniAppNotify\x12\x0b\n\x03msg\x18\x01 \x01(\x0c\"\xb8\x11\n\rNotifyMsgBody\x12\x11\n\tenum_type\x18\x01 \x01(\r\x12\x10\n\x08msg_time\x18\x02 \x01(\x04\x12\x13\n\x0bmsg_expires\x18\x03 \x01(\x04\x12\x12\n\ngroup_code\x18\x04 \x01(\x04\x12>\n\x08graytips\x18\x05 \x01(\x0b\x32,.im.oidb.cmd0x857.troop_tips.AIOGrayTipsInfo\x12?\n\nmessagebox\x18\x06 \x01(\x0b\x32+.im.oidb.cmd0x857.troop_tips.MessageBoxInfo\x12\x41\n\x0b\x66loatedtips\x18\x07 \x01(\x0b\x32,.im.oidb.cmd0x857.troop_tips.FloatedTipsInfo\x12<\n\x07toptips\x18\x08 \x01(\x0b\x32+.im.oidb.cmd0x857.troop_tips.AIOTopTipsInfo\x12=\n\x07redtips\x18\t \x01(\x0b\x32,.im.oidb.cmd0x857.troop_tips.RedGrayTipsInfo\x12\x42\n\x0cgroup_notify\x18\n \x01(\x0b\x32,.im.oidb.cmd0x857.troop_tips.GroupNotifyInfo\x12\x42\n\x06recall\x18\x0b \x01(\x0b\x32\x32.im.oidb.cmd0x857.troop_tips.MessageRecallReminder\x12\x43\n\x0ctheme_notify\x18\x0c \x01(\x0b\x32-.im.oidb.cmd0x857.troop_tips.ThemeStateNotify\x12\x14\n\x0cservice_type\x18\r \x01(\r\x12\x46\n\robjmsg_update\x18\x0e \x01(\x0b\x32/.im.oidb.cmd0x857.troop_tips.NotifyObjmsgUpdate\x12@\n\rwerewolf_push\x18\x0f \x01(\x0b\x32).im.oidb.cmd0x857.troop_tips.WereWolfPush\x12>\n\x08goldtips\x18\x12 \x01(\x0b\x32,.im.oidb.cmd0x857.troop_tips.GoldMsgTipsElem\x12\x42\n\x0eminiapp_notify\x18\x14 \x01(\x0b\x32*.im.oidb.cmd0x857.troop_tips.MiniAppNotify\x12\x12\n\nsender_uin\x18\x15 \x01(\x04\x12\x44\n\x0fluckybag_notify\x18\x16 \x01(\x0b\x32+.im.oidb.cmd0x857.troop_tips.LuckyBagNotify\x12N\n\x12troopformtips_push\x18\x17 \x01(\x0b\x32\x32.im.oidb.cmd0x857.troop_tips.TroopFormGrayTipsInfo\x12\x44\n\nmedia_push\x18\x18 \x01(\x0b\x32\x30.im.oidb.cmd0x857.troop_tips.MediaChangePushInfo\x12I\n\x10general_gray_tip\x18\x1a \x01(\x0b\x32/.im.oidb.cmd0x857.troop_tips.GeneralGrayTipInfo\x12\x44\n\nvideo_push\x18\x1b \x01(\x0b\x32\x30.im.oidb.cmd0x857.troop_tips.VideoChangePushInfo\x12W\n\x1albs_share_change_plus_info\x18\x1c \x01(\x0b\x32\x33.im.oidb.cmd0x857.troop_tips.LbsShareChangePushInfo\x12\x42\n\tsing_push\x18\x1d \x01(\x0b\x32/.im.oidb.cmd0x857.troop_tips.SingChangePushInfo\x12G\n\x11group_info_change\x18\x1e \x01(\x0b\x32,.im.oidb.cmd0x857.troop_tips.GroupInfoChange\x12R\n\x17group_announce_tbc_info\x18\x1f \x01(\x0b\x32\x31.im.oidb.cmd0x857.troop_tips.GroupAnnounceTBCInfo\x12Q\n\x17qq_vedio_game_push_info\x18 \x01(\x0b\x32\x30.im.oidb.cmd0x857.troop_tips.QQVedioGamePushInfo\x12J\n\x13qq_group_digest_msg\x18! \x01(\x0b\x32-.im.oidb.cmd0x857.troop_tips.QQGroupDigestMsg\x12U\n\x15study_room_member_msg\x18\" \x01(\x0b\x32\x36.im.oidb.cmd0x857.troop_tips.StudyRoomMemberChangePush\x12\x46\n\x0eqq_live_notify\x18# \x01(\x0b\x32..im.oidb.cmd0x857.troop_tips.QQVaLiveNotifyMsg\x12I\n\x12group_async_notidy\x18$ \x01(\x0b\x32-.im.oidb.cmd0x857.troop_tips.GroupAsyncNotify\x12\x19\n\x11group_cur_msg_seq\x18% \x01(\x04\x12V\n\x18group_digest_msg_summary\x18& \x01(\x0b\x32\x34.im.oidb.cmd0x857.troop_tips.QQGroupDigestMsgSummary\x12\x14\n\x0csysdb_msg_id\x18\' \x01(\x04\x12Z\n\x19revert_graytips_traceless\x18( \x01(\x0b\x32\x37.im.oidb.cmd0x857.troop_tips.RevertGrayTipsMsgTraceless\"M\n\x12NotifyObjmsgUpdate\x12\x11\n\tobjmsg_id\x18\x01 \x01(\x0c\x12\x13\n\x0bupdate_type\x18\x02 \x01(\r\x12\x0f\n\x07\x65xt_msg\x18\x03 \x01(\x0c\"\xdd\x01\n\x10QQGroupDigestMsg\x12\x12\n\ngroup_code\x18\x01 \x01(\x04\x12\x0b\n\x03seq\x18\x02 \x01(\r\x12\x0e\n\x06random\x18\x03 \x01(\r\x12\x0f\n\x07op_type\x18\x04 \x01(\x05\x12\x0e\n\x06sender\x18\x05 \x01(\x04\x12\x13\n\x0b\x64igest_oper\x18\x06 \x01(\x04\x12\x0f\n\x07op_time\x18\x07 \x01(\r\x12\x17\n\x0flastest_msg_seq\x18\x08 \x01(\r\x12\x11\n\toper_nick\x18\t \x01(\x0c\x12\x13\n\x0bsender_nick\x18\n \x01(\x0c\x12\x10\n\x08\x65xt_info\x18\x0b \x01(\x05\"\xc4\x01\n\x17QQGroupDigestMsgSummary\x12\x13\n\x0b\x64igest_oper\x18\x01 \x01(\x04\x12\x0f\n\x07op_type\x18\x02 \x01(\x05\x12\x0f\n\x07op_time\x18\x03 \x01(\r\x12\x13\n\x0b\x64igest_nick\x18\x04 \x01(\x0c\x12\x10\n\x08succ_cnt\x18\x05 \x01(\x05\x12K\n\x0csummary_info\x18\x06 \x03(\x0b\x32\x35.im.oidb.cmd0x857.troop_tips.QQGroupDigestSummaryInfo\"K\n\x18QQGroupDigestSummaryInfo\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x0e\n\x06random\x18\x02 \x01(\r\x12\x12\n\nerror_code\x18\x03 \x01(\r\"_\n\x11QQVaLiveNotifyMsg\x12\x0b\n\x03uid\x18\x01 \x01(\x0c\x12\x13\n\x0bnotify_type\x18\x02 \x01(\x05\x12\x0c\n\x04\x65xt1\x18\x03 \x01(\x0c\x12\x0c\n\x04\x65xt2\x18\x04 \x01(\x0c\x12\x0c\n\x04\x65xt3\x18\x05 \x01(\x0c\"u\n\x13QQVedioGamePushInfo\x12\x10\n\x08msg_type\x18\x01 \x01(\r\x12\x12\n\ngroup_code\x18\x02 \x01(\x04\x12\x10\n\x08oper_uin\x18\x03 \x01(\x04\x12\x14\n\x0cversion_ctrl\x18\x04 \x01(\x0c\x12\x10\n\x08\x65xt_info\x18\x05 \x01(\x0c\"\xb5\x03\n\x0fRedGrayTipsInfo\x12\x14\n\x0cshow_lastest\x18\x01 \x01(\r\x12\x12\n\nsender_uin\x18\x02 \x01(\x04\x12\x14\n\x0creceiver_uin\x18\x03 \x01(\x04\x12\x1b\n\x13sender_rich_content\x18\x04 \x01(\x0c\x12\x1d\n\x15receiver_rich_content\x18\x05 \x01(\x0c\x12\x0f\n\x07\x61uthkey\x18\x06 \x01(\x0c\x12\x0f\n\x07msgtype\x18\x07 \x01(\x11\x12\x12\n\nlucky_flag\x18\x08 \x01(\r\x12\x11\n\thide_flag\x18\t \x01(\r\x12\x0f\n\x07pc_body\x18\n \x01(\x0c\x12\x0c\n\x04icon\x18\x0b \x01(\r\x12\x11\n\tlucky_uin\x18\x0c \x01(\x04\x12\x0c\n\x04time\x18\r \x01(\r\x12\x0e\n\x06random\x18\x0e \x01(\r\x12\x1e\n\x16\x62roadcast_rich_content\x18\x0f \x01(\x0c\x12\r\n\x05idiom\x18\x10 \x01(\x0c\x12\x11\n\tidiom_seq\x18\x11 \x01(\r\x12\x13\n\x0bidiom_alpha\x18\x12 \x01(\x0c\x12\x0f\n\x07jumpurl\x18\x13 \x01(\x0c\x12\x12\n\nsubchannel\x18\x14 \x01(\r\x12\x11\n\tpoem_rule\x18\x15 \x01(\x0c\"\x9c\x01\n\x07ReqBody\x12\x12\n\ngroup_code\x18\x01 \x01(\x04\x12\x12\n\nmemberuins\x18\x02 \x03(\x04\x12\x0f\n\x07offline\x18\x03 \x01(\r\x12\x38\n\tinst_ctrl\x18\x04 \x01(\x0b\x32%.im.oidb.cmd0x857.troop_tips.InstCtrl\x12\x0b\n\x03msg\x18\x05 \x01(\x0c\x12\x11\n\tbusi_type\x18\x06 \x01(\r\"p\n\x1aRevertGrayTipsMsgTraceless\x12\x0c\n\x04\x66rom\x18\x01 \x01(\x04\x12\n\n\x02to\x18\x02 \x01(\x04\x12\x12\n\ngroup_code\x18\x03 \x01(\x04\x12\x0f\n\x07\x62usi_id\x18\x04 \x01(\x04\x12\x13\n\x0btips_seq_id\x18\x05 \x01(\x04\"\x1d\n\x07RspBody\x12\x12\n\ngroup_code\x18\x01 \x01(\x04\"\x80\x01\n\x12SingChangePushInfo\x12\x0b\n\x03seq\x18\x01 \x01(\x04\x12\x13\n\x0b\x61\x63tion_type\x18\x02 \x01(\r\x12\x10\n\x08group_id\x18\x03 \x01(\x04\x12\x10\n\x08oper_uin\x18\x04 \x01(\x04\x12\x11\n\tgray_tips\x18\x05 \x01(\x0c\x12\x11\n\tjoin_nums\x18\x06 \x01(\r\"1\n\x19StudyRoomMemberChangePush\x12\x14\n\x0cmember_count\x18\x01 \x01(\r\")\n\nTemplParam\x12\x0c\n\x04name\x18\x01 \x01(\x0c\x12\r\n\x05value\x18\x02 \x01(\x0c\"o\n\x10ThemeStateNotify\x12\r\n\x05state\x18\x01 \x01(\r\x12\x10\n\x08\x66\x65\x65\x64s_id\x18\x02 \x01(\x0c\x12\x12\n\ntheme_name\x18\x03 \x01(\x0c\x12\x12\n\naction_uin\x18\x04 \x01(\x04\x12\x12\n\ncreate_uin\x18\x05 \x01(\x04\"\x83\x01\n\x15TroopFormGrayTipsInfo\x12\x12\n\nwriter_uin\x18\x01 \x01(\x04\x12\x13\n\x0b\x63reator_uin\x18\x02 \x01(\x04\x12\x14\n\x0crich_content\x18\x03 \x01(\x0c\x12\x15\n\ropt_bytes_url\x18\x04 \x01(\x0c\x12\x14\n\x0c\x63reator_nick\x18\x05 \x01(\x0c\"\xa7\x01\n\x13VideoChangePushInfo\x12\x0b\n\x03seq\x18\x01 \x01(\x04\x12\x13\n\x0b\x61\x63tion_type\x18\x02 \x01(\r\x12\x10\n\x08group_id\x18\x03 \x01(\x04\x12\x10\n\x08oper_uin\x18\x04 \x01(\x04\x12\x11\n\tgray_tips\x18\x05 \x01(\x0c\x12\x11\n\tjoin_nums\x18\x06 \x01(\r\x12\x12\n\njoin_state\x18\x07 \x01(\r\x12\x10\n\x08\x65xt_info\x18\x64 \x01(\x0c\"\xc1\x07\n\x0cWereWolfPush\x12\x11\n\tpush_type\x18\x01 \x01(\r\x12\x11\n\tgame_room\x18\x02 \x01(\x04\x12\x17\n\x0f\x65num_game_state\x18\x03 \x01(\r\x12\x12\n\ngame_round\x18\x04 \x01(\r\x12=\n\x05roles\x18\x05 \x03(\x0b\x32..im.oidb.cmd0x857.troop_tips.WereWolfPush.Role\x12\x0f\n\x07speaker\x18\x06 \x01(\x04\x12\x11\n\tjudge_uin\x18\x07 \x01(\x04\x12\x13\n\x0bjudge_words\x18\x08 \x01(\x0c\x12\x16\n\x0e\x65num_operation\x18\t \x01(\r\x12\x10\n\x08src_user\x18\n \x01(\x04\x12\x10\n\x08\x64st_user\x18\x0b \x01(\x04\x12\x12\n\ndead_users\x18\x0c \x03(\x04\x12\x13\n\x0bgame_result\x18\r \x01(\r\x12\x13\n\x0btimeout_sec\x18\x0e \x01(\r\x12\x16\n\x0ekill_confirmed\x18\x0f \x01(\r\x12\x16\n\x0ejudge_nickname\x18\x10 \x01(\x0c\x12\x17\n\x0fvoted_tie_users\x18\x11 \x03(\x04\x1a\x44\n\nGameRecord\x12\r\n\x05total\x18\x01 \x01(\r\x12\x0b\n\x03win\x18\x02 \x01(\r\x12\x0c\n\x04lose\x18\x03 \x01(\r\x12\x0c\n\x04\x64raw\x18\x04 \x01(\r\x1a\xdc\x03\n\x04Role\x12\x0b\n\x03uin\x18\x01 \x01(\x04\x12\x11\n\tenum_type\x18\x02 \x01(\r\x12\x12\n\nenum_state\x18\x03 \x01(\r\x12\x11\n\tcan_speak\x18\x04 \x01(\r\x12\x12\n\ncan_listen\x18\x05 \x01(\r\x12\x10\n\x08position\x18\x06 \x01(\r\x12\x10\n\x08\x63\x61n_vote\x18\x07 \x01(\r\x12\x11\n\tcan_voted\x18\x08 \x01(\r\x12\x17\n\x0f\x61lready_checked\x18\t \x01(\r\x12\x15\n\ralready_saved\x18\n \x01(\r\x12\x18\n\x10\x61lready_poisoned\x18\x0b \x01(\r\x12\x14\n\x0cplayer_state\x18\x0c \x01(\r\x12\x14\n\x0c\x65num_dead_op\x18\r \x01(\r\x12\x16\n\x0e\x65num_operation\x18\x0e \x01(\r\x12\x10\n\x08\x64st_user\x18\x0f \x01(\x04\x12\x17\n\x0foperation_round\x18\x10 \x01(\r\x12I\n\x0bgame_record\x18\x11 \x01(\x0b\x32\x34.im.oidb.cmd0x857.troop_tips.WereWolfPush.GameRecord\x12\x13\n\x0bis_werewolf\x18\x12 \x01(\r\x12\x15\n\rdefended_user\x18\x13 \x01(\x04\x12\x12\n\nis_sheriff\x18\x14 \x01(\r')
+
+
+
+_AIOGRAYTIPSINFO = DESCRIPTOR.message_types_by_name['AIOGrayTipsInfo']
+_AIOTOPTIPSINFO = DESCRIPTOR.message_types_by_name['AIOTopTipsInfo']
+_FLOATEDTIPSINFO = DESCRIPTOR.message_types_by_name['FloatedTipsInfo']
+_GENERALGRAYTIPINFO = DESCRIPTOR.message_types_by_name['GeneralGrayTipInfo']
+_GOLDMSGTIPSELEM = DESCRIPTOR.message_types_by_name['GoldMsgTipsElem']
+_GRAYDATA = DESCRIPTOR.message_types_by_name['GrayData']
+_GROUPANNOUNCETBCINFO = DESCRIPTOR.message_types_by_name['GroupAnnounceTBCInfo']
+_GROUPASYNCNOTIFY = DESCRIPTOR.message_types_by_name['GroupAsyncNotify']
+_GROUPINFOCHANGE = DESCRIPTOR.message_types_by_name['GroupInfoChange']
+_GROUPNOTIFYINFO = DESCRIPTOR.message_types_by_name['GroupNotifyInfo']
+_INSTCTRL = DESCRIPTOR.message_types_by_name['InstCtrl']
+_INSTINFO = DESCRIPTOR.message_types_by_name['InstInfo']
+_LBSSHARECHANGEPUSHINFO = DESCRIPTOR.message_types_by_name['LbsShareChangePushInfo']
+_LUCKYBAGNOTIFY = DESCRIPTOR.message_types_by_name['LuckyBagNotify']
+_MEDIACHANGEPUSHINFO = DESCRIPTOR.message_types_by_name['MediaChangePushInfo']
+_MEDIACHANGEPUSHINFO_PERSONALSETTING = _MEDIACHANGEPUSHINFO.nested_types_by_name['PersonalSetting']
+_MESSAGEBOXINFO = DESCRIPTOR.message_types_by_name['MessageBoxInfo']
+_MESSAGERECALLREMINDER = DESCRIPTOR.message_types_by_name['MessageRecallReminder']
+_MESSAGERECALLREMINDER_MESSAGEMETA = _MESSAGERECALLREMINDER.nested_types_by_name['MessageMeta']
+_MESSAGERECALLREMINDER_WITHDRAWWORDINGINFO = _MESSAGERECALLREMINDER.nested_types_by_name['WithDrawWordingInfo']
+_MINIAPPNOTIFY = DESCRIPTOR.message_types_by_name['MiniAppNotify']
+_NOTIFYMSGBODY = DESCRIPTOR.message_types_by_name['NotifyMsgBody']
+_NOTIFYOBJMSGUPDATE = DESCRIPTOR.message_types_by_name['NotifyObjmsgUpdate']
+_QQGROUPDIGESTMSG = DESCRIPTOR.message_types_by_name['QQGroupDigestMsg']
+_QQGROUPDIGESTMSGSUMMARY = DESCRIPTOR.message_types_by_name['QQGroupDigestMsgSummary']
+_QQGROUPDIGESTSUMMARYINFO = DESCRIPTOR.message_types_by_name['QQGroupDigestSummaryInfo']
+_QQVALIVENOTIFYMSG = DESCRIPTOR.message_types_by_name['QQVaLiveNotifyMsg']
+_QQVEDIOGAMEPUSHINFO = DESCRIPTOR.message_types_by_name['QQVedioGamePushInfo']
+_REDGRAYTIPSINFO = DESCRIPTOR.message_types_by_name['RedGrayTipsInfo']
+_REQBODY = DESCRIPTOR.message_types_by_name['ReqBody']
+_REVERTGRAYTIPSMSGTRACELESS = DESCRIPTOR.message_types_by_name['RevertGrayTipsMsgTraceless']
+_RSPBODY = DESCRIPTOR.message_types_by_name['RspBody']
+_SINGCHANGEPUSHINFO = DESCRIPTOR.message_types_by_name['SingChangePushInfo']
+_STUDYROOMMEMBERCHANGEPUSH = DESCRIPTOR.message_types_by_name['StudyRoomMemberChangePush']
+_TEMPLPARAM = DESCRIPTOR.message_types_by_name['TemplParam']
+_THEMESTATENOTIFY = DESCRIPTOR.message_types_by_name['ThemeStateNotify']
+_TROOPFORMGRAYTIPSINFO = DESCRIPTOR.message_types_by_name['TroopFormGrayTipsInfo']
+_VIDEOCHANGEPUSHINFO = DESCRIPTOR.message_types_by_name['VideoChangePushInfo']
+_WEREWOLFPUSH = DESCRIPTOR.message_types_by_name['WereWolfPush']
+_WEREWOLFPUSH_GAMERECORD = _WEREWOLFPUSH.nested_types_by_name['GameRecord']
+_WEREWOLFPUSH_ROLE = _WEREWOLFPUSH.nested_types_by_name['Role']
+AIOGrayTipsInfo = _reflection.GeneratedProtocolMessageType('AIOGrayTipsInfo', (_message.Message,), {
+ 'DESCRIPTOR' : _AIOGRAYTIPSINFO,
+ '__module__' : 'cai.pb.im.oidb.cmd0x857.troop_tips.troop_tips_pb2'
+ # @@protoc_insertion_point(class_scope:im.oidb.cmd0x857.troop_tips.AIOGrayTipsInfo)
+ })
+_sym_db.RegisterMessage(AIOGrayTipsInfo)
+
+AIOTopTipsInfo = _reflection.GeneratedProtocolMessageType('AIOTopTipsInfo', (_message.Message,), {
+ 'DESCRIPTOR' : _AIOTOPTIPSINFO,
+ '__module__' : 'cai.pb.im.oidb.cmd0x857.troop_tips.troop_tips_pb2'
+ # @@protoc_insertion_point(class_scope:im.oidb.cmd0x857.troop_tips.AIOTopTipsInfo)
+ })
+_sym_db.RegisterMessage(AIOTopTipsInfo)
+
+FloatedTipsInfo = _reflection.GeneratedProtocolMessageType('FloatedTipsInfo', (_message.Message,), {
+ 'DESCRIPTOR' : _FLOATEDTIPSINFO,
+ '__module__' : 'cai.pb.im.oidb.cmd0x857.troop_tips.troop_tips_pb2'
+ # @@protoc_insertion_point(class_scope:im.oidb.cmd0x857.troop_tips.FloatedTipsInfo)
+ })
+_sym_db.RegisterMessage(FloatedTipsInfo)
+
+GeneralGrayTipInfo = _reflection.GeneratedProtocolMessageType('GeneralGrayTipInfo', (_message.Message,), {
+ 'DESCRIPTOR' : _GENERALGRAYTIPINFO,
+ '__module__' : 'cai.pb.im.oidb.cmd0x857.troop_tips.troop_tips_pb2'
+ # @@protoc_insertion_point(class_scope:im.oidb.cmd0x857.troop_tips.GeneralGrayTipInfo)
+ })
+_sym_db.RegisterMessage(GeneralGrayTipInfo)
+
+GoldMsgTipsElem = _reflection.GeneratedProtocolMessageType('GoldMsgTipsElem', (_message.Message,), {
+ 'DESCRIPTOR' : _GOLDMSGTIPSELEM,
+ '__module__' : 'cai.pb.im.oidb.cmd0x857.troop_tips.troop_tips_pb2'
+ # @@protoc_insertion_point(class_scope:im.oidb.cmd0x857.troop_tips.GoldMsgTipsElem)
+ })
+_sym_db.RegisterMessage(GoldMsgTipsElem)
+
+GrayData = _reflection.GeneratedProtocolMessageType('GrayData', (_message.Message,), {
+ 'DESCRIPTOR' : _GRAYDATA,
+ '__module__' : 'cai.pb.im.oidb.cmd0x857.troop_tips.troop_tips_pb2'
+ # @@protoc_insertion_point(class_scope:im.oidb.cmd0x857.troop_tips.GrayData)
+ })
+_sym_db.RegisterMessage(GrayData)
+
+GroupAnnounceTBCInfo = _reflection.GeneratedProtocolMessageType('GroupAnnounceTBCInfo', (_message.Message,), {
+ 'DESCRIPTOR' : _GROUPANNOUNCETBCINFO,
+ '__module__' : 'cai.pb.im.oidb.cmd0x857.troop_tips.troop_tips_pb2'
+ # @@protoc_insertion_point(class_scope:im.oidb.cmd0x857.troop_tips.GroupAnnounceTBCInfo)
+ })
+_sym_db.RegisterMessage(GroupAnnounceTBCInfo)
+
+GroupAsyncNotify = _reflection.GeneratedProtocolMessageType('GroupAsyncNotify', (_message.Message,), {
+ 'DESCRIPTOR' : _GROUPASYNCNOTIFY,
+ '__module__' : 'cai.pb.im.oidb.cmd0x857.troop_tips.troop_tips_pb2'
+ # @@protoc_insertion_point(class_scope:im.oidb.cmd0x857.troop_tips.GroupAsyncNotify)
+ })
+_sym_db.RegisterMessage(GroupAsyncNotify)
+
+GroupInfoChange = _reflection.GeneratedProtocolMessageType('GroupInfoChange', (_message.Message,), {
+ 'DESCRIPTOR' : _GROUPINFOCHANGE,
+ '__module__' : 'cai.pb.im.oidb.cmd0x857.troop_tips.troop_tips_pb2'
+ # @@protoc_insertion_point(class_scope:im.oidb.cmd0x857.troop_tips.GroupInfoChange)
+ })
+_sym_db.RegisterMessage(GroupInfoChange)
+
+GroupNotifyInfo = _reflection.GeneratedProtocolMessageType('GroupNotifyInfo', (_message.Message,), {
+ 'DESCRIPTOR' : _GROUPNOTIFYINFO,
+ '__module__' : 'cai.pb.im.oidb.cmd0x857.troop_tips.troop_tips_pb2'
+ # @@protoc_insertion_point(class_scope:im.oidb.cmd0x857.troop_tips.GroupNotifyInfo)
+ })
+_sym_db.RegisterMessage(GroupNotifyInfo)
+
+InstCtrl = _reflection.GeneratedProtocolMessageType('InstCtrl', (_message.Message,), {
+ 'DESCRIPTOR' : _INSTCTRL,
+ '__module__' : 'cai.pb.im.oidb.cmd0x857.troop_tips.troop_tips_pb2'
+ # @@protoc_insertion_point(class_scope:im.oidb.cmd0x857.troop_tips.InstCtrl)
+ })
+_sym_db.RegisterMessage(InstCtrl)
+
+InstInfo = _reflection.GeneratedProtocolMessageType('InstInfo', (_message.Message,), {
+ 'DESCRIPTOR' : _INSTINFO,
+ '__module__' : 'cai.pb.im.oidb.cmd0x857.troop_tips.troop_tips_pb2'
+ # @@protoc_insertion_point(class_scope:im.oidb.cmd0x857.troop_tips.InstInfo)
+ })
+_sym_db.RegisterMessage(InstInfo)
+
+LbsShareChangePushInfo = _reflection.GeneratedProtocolMessageType('LbsShareChangePushInfo', (_message.Message,), {
+ 'DESCRIPTOR' : _LBSSHARECHANGEPUSHINFO,
+ '__module__' : 'cai.pb.im.oidb.cmd0x857.troop_tips.troop_tips_pb2'
+ # @@protoc_insertion_point(class_scope:im.oidb.cmd0x857.troop_tips.LbsShareChangePushInfo)
+ })
+_sym_db.RegisterMessage(LbsShareChangePushInfo)
+
+LuckyBagNotify = _reflection.GeneratedProtocolMessageType('LuckyBagNotify', (_message.Message,), {
+ 'DESCRIPTOR' : _LUCKYBAGNOTIFY,
+ '__module__' : 'cai.pb.im.oidb.cmd0x857.troop_tips.troop_tips_pb2'
+ # @@protoc_insertion_point(class_scope:im.oidb.cmd0x857.troop_tips.LuckyBagNotify)
+ })
+_sym_db.RegisterMessage(LuckyBagNotify)
+
+MediaChangePushInfo = _reflection.GeneratedProtocolMessageType('MediaChangePushInfo', (_message.Message,), {
+
+ 'PersonalSetting' : _reflection.GeneratedProtocolMessageType('PersonalSetting', (_message.Message,), {
+ 'DESCRIPTOR' : _MEDIACHANGEPUSHINFO_PERSONALSETTING,
+ '__module__' : 'cai.pb.im.oidb.cmd0x857.troop_tips.troop_tips_pb2'
+ # @@protoc_insertion_point(class_scope:im.oidb.cmd0x857.troop_tips.MediaChangePushInfo.PersonalSetting)
+ })
+ ,
+ 'DESCRIPTOR' : _MEDIACHANGEPUSHINFO,
+ '__module__' : 'cai.pb.im.oidb.cmd0x857.troop_tips.troop_tips_pb2'
+ # @@protoc_insertion_point(class_scope:im.oidb.cmd0x857.troop_tips.MediaChangePushInfo)
+ })
+_sym_db.RegisterMessage(MediaChangePushInfo)
+_sym_db.RegisterMessage(MediaChangePushInfo.PersonalSetting)
+
+MessageBoxInfo = _reflection.GeneratedProtocolMessageType('MessageBoxInfo', (_message.Message,), {
+ 'DESCRIPTOR' : _MESSAGEBOXINFO,
+ '__module__' : 'cai.pb.im.oidb.cmd0x857.troop_tips.troop_tips_pb2'
+ # @@protoc_insertion_point(class_scope:im.oidb.cmd0x857.troop_tips.MessageBoxInfo)
+ })
+_sym_db.RegisterMessage(MessageBoxInfo)
+
+MessageRecallReminder = _reflection.GeneratedProtocolMessageType('MessageRecallReminder', (_message.Message,), {
+
+ 'MessageMeta' : _reflection.GeneratedProtocolMessageType('MessageMeta', (_message.Message,), {
+ 'DESCRIPTOR' : _MESSAGERECALLREMINDER_MESSAGEMETA,
+ '__module__' : 'cai.pb.im.oidb.cmd0x857.troop_tips.troop_tips_pb2'
+ # @@protoc_insertion_point(class_scope:im.oidb.cmd0x857.troop_tips.MessageRecallReminder.MessageMeta)
+ })
+ ,
+
+ 'WithDrawWordingInfo' : _reflection.GeneratedProtocolMessageType('WithDrawWordingInfo', (_message.Message,), {
+ 'DESCRIPTOR' : _MESSAGERECALLREMINDER_WITHDRAWWORDINGINFO,
+ '__module__' : 'cai.pb.im.oidb.cmd0x857.troop_tips.troop_tips_pb2'
+ # @@protoc_insertion_point(class_scope:im.oidb.cmd0x857.troop_tips.MessageRecallReminder.WithDrawWordingInfo)
+ })
+ ,
+ 'DESCRIPTOR' : _MESSAGERECALLREMINDER,
+ '__module__' : 'cai.pb.im.oidb.cmd0x857.troop_tips.troop_tips_pb2'
+ # @@protoc_insertion_point(class_scope:im.oidb.cmd0x857.troop_tips.MessageRecallReminder)
+ })
+_sym_db.RegisterMessage(MessageRecallReminder)
+_sym_db.RegisterMessage(MessageRecallReminder.MessageMeta)
+_sym_db.RegisterMessage(MessageRecallReminder.WithDrawWordingInfo)
+
+MiniAppNotify = _reflection.GeneratedProtocolMessageType('MiniAppNotify', (_message.Message,), {
+ 'DESCRIPTOR' : _MINIAPPNOTIFY,
+ '__module__' : 'cai.pb.im.oidb.cmd0x857.troop_tips.troop_tips_pb2'
+ # @@protoc_insertion_point(class_scope:im.oidb.cmd0x857.troop_tips.MiniAppNotify)
+ })
+_sym_db.RegisterMessage(MiniAppNotify)
+
+NotifyMsgBody = _reflection.GeneratedProtocolMessageType('NotifyMsgBody', (_message.Message,), {
+ 'DESCRIPTOR' : _NOTIFYMSGBODY,
+ '__module__' : 'cai.pb.im.oidb.cmd0x857.troop_tips.troop_tips_pb2'
+ # @@protoc_insertion_point(class_scope:im.oidb.cmd0x857.troop_tips.NotifyMsgBody)
+ })
+_sym_db.RegisterMessage(NotifyMsgBody)
+
+NotifyObjmsgUpdate = _reflection.GeneratedProtocolMessageType('NotifyObjmsgUpdate', (_message.Message,), {
+ 'DESCRIPTOR' : _NOTIFYOBJMSGUPDATE,
+ '__module__' : 'cai.pb.im.oidb.cmd0x857.troop_tips.troop_tips_pb2'
+ # @@protoc_insertion_point(class_scope:im.oidb.cmd0x857.troop_tips.NotifyObjmsgUpdate)
+ })
+_sym_db.RegisterMessage(NotifyObjmsgUpdate)
+
+QQGroupDigestMsg = _reflection.GeneratedProtocolMessageType('QQGroupDigestMsg', (_message.Message,), {
+ 'DESCRIPTOR' : _QQGROUPDIGESTMSG,
+ '__module__' : 'cai.pb.im.oidb.cmd0x857.troop_tips.troop_tips_pb2'
+ # @@protoc_insertion_point(class_scope:im.oidb.cmd0x857.troop_tips.QQGroupDigestMsg)
+ })
+_sym_db.RegisterMessage(QQGroupDigestMsg)
+
+QQGroupDigestMsgSummary = _reflection.GeneratedProtocolMessageType('QQGroupDigestMsgSummary', (_message.Message,), {
+ 'DESCRIPTOR' : _QQGROUPDIGESTMSGSUMMARY,
+ '__module__' : 'cai.pb.im.oidb.cmd0x857.troop_tips.troop_tips_pb2'
+ # @@protoc_insertion_point(class_scope:im.oidb.cmd0x857.troop_tips.QQGroupDigestMsgSummary)
+ })
+_sym_db.RegisterMessage(QQGroupDigestMsgSummary)
+
+QQGroupDigestSummaryInfo = _reflection.GeneratedProtocolMessageType('QQGroupDigestSummaryInfo', (_message.Message,), {
+ 'DESCRIPTOR' : _QQGROUPDIGESTSUMMARYINFO,
+ '__module__' : 'cai.pb.im.oidb.cmd0x857.troop_tips.troop_tips_pb2'
+ # @@protoc_insertion_point(class_scope:im.oidb.cmd0x857.troop_tips.QQGroupDigestSummaryInfo)
+ })
+_sym_db.RegisterMessage(QQGroupDigestSummaryInfo)
+
+QQVaLiveNotifyMsg = _reflection.GeneratedProtocolMessageType('QQVaLiveNotifyMsg', (_message.Message,), {
+ 'DESCRIPTOR' : _QQVALIVENOTIFYMSG,
+ '__module__' : 'cai.pb.im.oidb.cmd0x857.troop_tips.troop_tips_pb2'
+ # @@protoc_insertion_point(class_scope:im.oidb.cmd0x857.troop_tips.QQVaLiveNotifyMsg)
+ })
+_sym_db.RegisterMessage(QQVaLiveNotifyMsg)
+
+QQVedioGamePushInfo = _reflection.GeneratedProtocolMessageType('QQVedioGamePushInfo', (_message.Message,), {
+ 'DESCRIPTOR' : _QQVEDIOGAMEPUSHINFO,
+ '__module__' : 'cai.pb.im.oidb.cmd0x857.troop_tips.troop_tips_pb2'
+ # @@protoc_insertion_point(class_scope:im.oidb.cmd0x857.troop_tips.QQVedioGamePushInfo)
+ })
+_sym_db.RegisterMessage(QQVedioGamePushInfo)
+
+RedGrayTipsInfo = _reflection.GeneratedProtocolMessageType('RedGrayTipsInfo', (_message.Message,), {
+ 'DESCRIPTOR' : _REDGRAYTIPSINFO,
+ '__module__' : 'cai.pb.im.oidb.cmd0x857.troop_tips.troop_tips_pb2'
+ # @@protoc_insertion_point(class_scope:im.oidb.cmd0x857.troop_tips.RedGrayTipsInfo)
+ })
+_sym_db.RegisterMessage(RedGrayTipsInfo)
+
+ReqBody = _reflection.GeneratedProtocolMessageType('ReqBody', (_message.Message,), {
+ 'DESCRIPTOR' : _REQBODY,
+ '__module__' : 'cai.pb.im.oidb.cmd0x857.troop_tips.troop_tips_pb2'
+ # @@protoc_insertion_point(class_scope:im.oidb.cmd0x857.troop_tips.ReqBody)
+ })
+_sym_db.RegisterMessage(ReqBody)
+
+RevertGrayTipsMsgTraceless = _reflection.GeneratedProtocolMessageType('RevertGrayTipsMsgTraceless', (_message.Message,), {
+ 'DESCRIPTOR' : _REVERTGRAYTIPSMSGTRACELESS,
+ '__module__' : 'cai.pb.im.oidb.cmd0x857.troop_tips.troop_tips_pb2'
+ # @@protoc_insertion_point(class_scope:im.oidb.cmd0x857.troop_tips.RevertGrayTipsMsgTraceless)
+ })
+_sym_db.RegisterMessage(RevertGrayTipsMsgTraceless)
+
+RspBody = _reflection.GeneratedProtocolMessageType('RspBody', (_message.Message,), {
+ 'DESCRIPTOR' : _RSPBODY,
+ '__module__' : 'cai.pb.im.oidb.cmd0x857.troop_tips.troop_tips_pb2'
+ # @@protoc_insertion_point(class_scope:im.oidb.cmd0x857.troop_tips.RspBody)
+ })
+_sym_db.RegisterMessage(RspBody)
+
+SingChangePushInfo = _reflection.GeneratedProtocolMessageType('SingChangePushInfo', (_message.Message,), {
+ 'DESCRIPTOR' : _SINGCHANGEPUSHINFO,
+ '__module__' : 'cai.pb.im.oidb.cmd0x857.troop_tips.troop_tips_pb2'
+ # @@protoc_insertion_point(class_scope:im.oidb.cmd0x857.troop_tips.SingChangePushInfo)
+ })
+_sym_db.RegisterMessage(SingChangePushInfo)
+
+StudyRoomMemberChangePush = _reflection.GeneratedProtocolMessageType('StudyRoomMemberChangePush', (_message.Message,), {
+ 'DESCRIPTOR' : _STUDYROOMMEMBERCHANGEPUSH,
+ '__module__' : 'cai.pb.im.oidb.cmd0x857.troop_tips.troop_tips_pb2'
+ # @@protoc_insertion_point(class_scope:im.oidb.cmd0x857.troop_tips.StudyRoomMemberChangePush)
+ })
+_sym_db.RegisterMessage(StudyRoomMemberChangePush)
+
+TemplParam = _reflection.GeneratedProtocolMessageType('TemplParam', (_message.Message,), {
+ 'DESCRIPTOR' : _TEMPLPARAM,
+ '__module__' : 'cai.pb.im.oidb.cmd0x857.troop_tips.troop_tips_pb2'
+ # @@protoc_insertion_point(class_scope:im.oidb.cmd0x857.troop_tips.TemplParam)
+ })
+_sym_db.RegisterMessage(TemplParam)
+
+ThemeStateNotify = _reflection.GeneratedProtocolMessageType('ThemeStateNotify', (_message.Message,), {
+ 'DESCRIPTOR' : _THEMESTATENOTIFY,
+ '__module__' : 'cai.pb.im.oidb.cmd0x857.troop_tips.troop_tips_pb2'
+ # @@protoc_insertion_point(class_scope:im.oidb.cmd0x857.troop_tips.ThemeStateNotify)
+ })
+_sym_db.RegisterMessage(ThemeStateNotify)
+
+TroopFormGrayTipsInfo = _reflection.GeneratedProtocolMessageType('TroopFormGrayTipsInfo', (_message.Message,), {
+ 'DESCRIPTOR' : _TROOPFORMGRAYTIPSINFO,
+ '__module__' : 'cai.pb.im.oidb.cmd0x857.troop_tips.troop_tips_pb2'
+ # @@protoc_insertion_point(class_scope:im.oidb.cmd0x857.troop_tips.TroopFormGrayTipsInfo)
+ })
+_sym_db.RegisterMessage(TroopFormGrayTipsInfo)
+
+VideoChangePushInfo = _reflection.GeneratedProtocolMessageType('VideoChangePushInfo', (_message.Message,), {
+ 'DESCRIPTOR' : _VIDEOCHANGEPUSHINFO,
+ '__module__' : 'cai.pb.im.oidb.cmd0x857.troop_tips.troop_tips_pb2'
+ # @@protoc_insertion_point(class_scope:im.oidb.cmd0x857.troop_tips.VideoChangePushInfo)
+ })
+_sym_db.RegisterMessage(VideoChangePushInfo)
+
+WereWolfPush = _reflection.GeneratedProtocolMessageType('WereWolfPush', (_message.Message,), {
+
+ 'GameRecord' : _reflection.GeneratedProtocolMessageType('GameRecord', (_message.Message,), {
+ 'DESCRIPTOR' : _WEREWOLFPUSH_GAMERECORD,
+ '__module__' : 'cai.pb.im.oidb.cmd0x857.troop_tips.troop_tips_pb2'
+ # @@protoc_insertion_point(class_scope:im.oidb.cmd0x857.troop_tips.WereWolfPush.GameRecord)
+ })
+ ,
+
+ 'Role' : _reflection.GeneratedProtocolMessageType('Role', (_message.Message,), {
+ 'DESCRIPTOR' : _WEREWOLFPUSH_ROLE,
+ '__module__' : 'cai.pb.im.oidb.cmd0x857.troop_tips.troop_tips_pb2'
+ # @@protoc_insertion_point(class_scope:im.oidb.cmd0x857.troop_tips.WereWolfPush.Role)
+ })
+ ,
+ 'DESCRIPTOR' : _WEREWOLFPUSH,
+ '__module__' : 'cai.pb.im.oidb.cmd0x857.troop_tips.troop_tips_pb2'
+ # @@protoc_insertion_point(class_scope:im.oidb.cmd0x857.troop_tips.WereWolfPush)
+ })
+_sym_db.RegisterMessage(WereWolfPush)
+_sym_db.RegisterMessage(WereWolfPush.GameRecord)
+_sym_db.RegisterMessage(WereWolfPush.Role)
+
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ _AIOGRAYTIPSINFO._serialized_start=85
+ _AIOGRAYTIPSINFO._serialized_end=245
+ _AIOTOPTIPSINFO._serialized_start=248
+ _AIOTOPTIPSINFO._serialized_end=391
+ _FLOATEDTIPSINFO._serialized_start=393
+ _FLOATEDTIPSINFO._serialized_end=427
+ _GENERALGRAYTIPINFO._serialized_start=430
+ _GENERALGRAYTIPINFO._serialized_end=682
+ _GOLDMSGTIPSELEM._serialized_start=685
+ _GOLDMSGTIPSELEM._serialized_end=842
+ _GRAYDATA._serialized_start=844
+ _GRAYDATA._serialized_end=889
+ _GROUPANNOUNCETBCINFO._serialized_start=891
+ _GROUPANNOUNCETBCINFO._serialized_end=965
+ _GROUPASYNCNOTIFY._serialized_start=967
+ _GROUPASYNCNOTIFY._serialized_end=1020
+ _GROUPINFOCHANGE._serialized_start=1023
+ _GROUPINFOCHANGE._serialized_end=1249
+ _GROUPNOTIFYINFO._serialized_start=1251
+ _GROUPNOTIFYINFO._serialized_end=1310
+ _INSTCTRL._serialized_start=1313
+ _INSTCTRL._serialized_end=1503
+ _INSTINFO._serialized_start=1506
+ _INSTINFO._serialized_end=1670
+ _LBSSHARECHANGEPUSHINFO._serialized_start=1673
+ _LBSSHARECHANGEPUSHINFO._serialized_end=1883
+ _LUCKYBAGNOTIFY._serialized_start=1885
+ _LUCKYBAGNOTIFY._serialized_end=1919
+ _MEDIACHANGEPUSHINFO._serialized_start=1922
+ _MEDIACHANGEPUSHINFO._serialized_end=2337
+ _MEDIACHANGEPUSHINFO_PERSONALSETTING._serialized_start=2266
+ _MEDIACHANGEPUSHINFO_PERSONALSETTING._serialized_end=2337
+ _MESSAGEBOXINFO._serialized_start=2339
+ _MESSAGEBOXINFO._serialized_end=2403
+ _MESSAGERECALLREMINDER._serialized_start=2406
+ _MESSAGERECALLREMINDER._serialized_end=2944
+ _MESSAGERECALLREMINDER_MESSAGEMETA._serialized_start=2747
+ _MESSAGERECALLREMINDER_MESSAGEMETA._serialized_end=2885
+ _MESSAGERECALLREMINDER_WITHDRAWWORDINGINFO._serialized_start=2887
+ _MESSAGERECALLREMINDER_WITHDRAWWORDINGINFO._serialized_end=2944
+ _MINIAPPNOTIFY._serialized_start=2946
+ _MINIAPPNOTIFY._serialized_end=2974
+ _NOTIFYMSGBODY._serialized_start=2977
+ _NOTIFYMSGBODY._serialized_end=5209
+ _NOTIFYOBJMSGUPDATE._serialized_start=5211
+ _NOTIFYOBJMSGUPDATE._serialized_end=5288
+ _QQGROUPDIGESTMSG._serialized_start=5291
+ _QQGROUPDIGESTMSG._serialized_end=5512
+ _QQGROUPDIGESTMSGSUMMARY._serialized_start=5515
+ _QQGROUPDIGESTMSGSUMMARY._serialized_end=5711
+ _QQGROUPDIGESTSUMMARYINFO._serialized_start=5713
+ _QQGROUPDIGESTSUMMARYINFO._serialized_end=5788
+ _QQVALIVENOTIFYMSG._serialized_start=5790
+ _QQVALIVENOTIFYMSG._serialized_end=5885
+ _QQVEDIOGAMEPUSHINFO._serialized_start=5887
+ _QQVEDIOGAMEPUSHINFO._serialized_end=6004
+ _REDGRAYTIPSINFO._serialized_start=6007
+ _REDGRAYTIPSINFO._serialized_end=6444
+ _REQBODY._serialized_start=6447
+ _REQBODY._serialized_end=6603
+ _REVERTGRAYTIPSMSGTRACELESS._serialized_start=6605
+ _REVERTGRAYTIPSMSGTRACELESS._serialized_end=6717
+ _RSPBODY._serialized_start=6719
+ _RSPBODY._serialized_end=6748
+ _SINGCHANGEPUSHINFO._serialized_start=6751
+ _SINGCHANGEPUSHINFO._serialized_end=6879
+ _STUDYROOMMEMBERCHANGEPUSH._serialized_start=6881
+ _STUDYROOMMEMBERCHANGEPUSH._serialized_end=6930
+ _TEMPLPARAM._serialized_start=6932
+ _TEMPLPARAM._serialized_end=6973
+ _THEMESTATENOTIFY._serialized_start=6975
+ _THEMESTATENOTIFY._serialized_end=7086
+ _TROOPFORMGRAYTIPSINFO._serialized_start=7089
+ _TROOPFORMGRAYTIPSINFO._serialized_end=7220
+ _VIDEOCHANGEPUSHINFO._serialized_start=7223
+ _VIDEOCHANGEPUSHINFO._serialized_end=7390
+ _WEREWOLFPUSH._serialized_start=7393
+ _WEREWOLFPUSH._serialized_end=8354
+ _WEREWOLFPUSH_GAMERECORD._serialized_start=7807
+ _WEREWOLFPUSH_GAMERECORD._serialized_end=7875
+ _WEREWOLFPUSH_ROLE._serialized_start=7878
+ _WEREWOLFPUSH_ROLE._serialized_end=8354
+# @@protoc_insertion_point(module_scope)
diff --git a/cai/pb/im/oidb/cmd0x857/troop_tips/troop_tips_pb2.pyi b/cai/pb/im/oidb/cmd0x857/troop_tips/troop_tips_pb2.pyi
new file mode 100644
index 00000000..decaed08
--- /dev/null
+++ b/cai/pb/im/oidb/cmd0x857/troop_tips/troop_tips_pb2.pyi
@@ -0,0 +1,1261 @@
+"""
+@generated by mypy-protobuf. Do not edit manually!
+isort:skip_file
+"""
+from builtins import (
+ bool,
+ bytes,
+ int,
+)
+
+from google.protobuf.descriptor import (
+ Descriptor,
+ FileDescriptor,
+)
+
+from google.protobuf.internal.containers import (
+ RepeatedCompositeFieldContainer,
+ RepeatedScalarFieldContainer,
+)
+
+from google.protobuf.message import (
+ Message,
+)
+
+from typing import (
+ Iterable,
+ Optional,
+ Text,
+)
+
+from typing_extensions import (
+ Literal,
+)
+
+
+DESCRIPTOR: FileDescriptor
+
+class AIOGrayTipsInfo(Message):
+ """tencent/im/oidb/cmd0x857/TroopTips0x857.java
+
+ """
+ DESCRIPTOR: Descriptor
+ SHOW_LASTEST_FIELD_NUMBER: int
+ CONTENT_FIELD_NUMBER: int
+ REMIND_FIELD_NUMBER: int
+ BRIEF_FIELD_NUMBER: int
+ RECEIVER_UIN_FIELD_NUMBER: int
+ RELIAO_ADMIN_OPT_FIELD_NUMBER: int
+ ROBOT_GROUP_OPT_FIELD_NUMBER: int
+ show_lastest: int
+ content: bytes
+ remind: int
+ brief: bytes
+ receiver_uin: int
+ reliao_admin_opt: int
+ robot_group_opt: int
+ def __init__(self,
+ *,
+ show_lastest: Optional[int] = ...,
+ content: Optional[bytes] = ...,
+ remind: Optional[int] = ...,
+ brief: Optional[bytes] = ...,
+ receiver_uin: Optional[int] = ...,
+ reliao_admin_opt: Optional[int] = ...,
+ robot_group_opt: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["brief",b"brief","content",b"content","receiver_uin",b"receiver_uin","reliao_admin_opt",b"reliao_admin_opt","remind",b"remind","robot_group_opt",b"robot_group_opt","show_lastest",b"show_lastest"]) -> bool: ...
+ def ClearField(self, field_name: Literal["brief",b"brief","content",b"content","receiver_uin",b"receiver_uin","reliao_admin_opt",b"reliao_admin_opt","remind",b"remind","robot_group_opt",b"robot_group_opt","show_lastest",b"show_lastest"]) -> None: ...
+
+class AIOTopTipsInfo(Message):
+ DESCRIPTOR: Descriptor
+ CONTENT_FIELD_NUMBER: int
+ ICON_FIELD_NUMBER: int
+ ENUM_ACTION_FIELD_NUMBER: int
+ URL_FIELD_NUMBER: int
+ DATA_FIELD_NUMBER: int
+ DATA_I_FIELD_NUMBER: int
+ DATA_A_FIELD_NUMBER: int
+ DATA_P_FIELD_NUMBER: int
+ content: bytes
+ icon: int
+ enum_action: int
+ url: bytes
+ data: bytes
+ data_i: bytes
+ data_a: bytes
+ data_p: bytes
+ def __init__(self,
+ *,
+ content: Optional[bytes] = ...,
+ icon: Optional[int] = ...,
+ enum_action: Optional[int] = ...,
+ url: Optional[bytes] = ...,
+ data: Optional[bytes] = ...,
+ data_i: Optional[bytes] = ...,
+ data_a: Optional[bytes] = ...,
+ data_p: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["content",b"content","data",b"data","data_a",b"data_a","data_i",b"data_i","data_p",b"data_p","enum_action",b"enum_action","icon",b"icon","url",b"url"]) -> bool: ...
+ def ClearField(self, field_name: Literal["content",b"content","data",b"data","data_a",b"data_a","data_i",b"data_i","data_p",b"data_p","enum_action",b"enum_action","icon",b"icon","url",b"url"]) -> None: ...
+
+class FloatedTipsInfo(Message):
+ DESCRIPTOR: Descriptor
+ CONTENT_FIELD_NUMBER: int
+ content: bytes
+ def __init__(self,
+ *,
+ content: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["content",b"content"]) -> bool: ...
+ def ClearField(self, field_name: Literal["content",b"content"]) -> None: ...
+
+class GeneralGrayTipInfo(Message):
+ DESCRIPTOR: Descriptor
+ BUSI_TYPE_FIELD_NUMBER: int
+ BUSI_ID_FIELD_NUMBER: int
+ CTRL_FLAG_FIELD_NUMBER: int
+ C2C_TYPE_FIELD_NUMBER: int
+ SERVICE_TYPE_FIELD_NUMBER: int
+ TEMPL_ID_FIELD_NUMBER: int
+ TEMPL_PARAM_FIELD_NUMBER: int
+ CONTENT_FIELD_NUMBER: int
+ TIPS_SEQ_ID_FIELD_NUMBER: int
+ PB_RESERV_FIELD_NUMBER: int
+ busi_type: int
+ busi_id: int
+ ctrl_flag: int
+ c2c_type: int
+ service_type: int
+ templ_id: int
+ @property
+ def templ_param(self) -> RepeatedCompositeFieldContainer[TemplParam]: ...
+ content: bytes
+ tips_seq_id: int
+ pb_reserv: bytes
+ def __init__(self,
+ *,
+ busi_type: Optional[int] = ...,
+ busi_id: Optional[int] = ...,
+ ctrl_flag: Optional[int] = ...,
+ c2c_type: Optional[int] = ...,
+ service_type: Optional[int] = ...,
+ templ_id: Optional[int] = ...,
+ templ_param: Optional[Iterable[TemplParam]] = ...,
+ content: Optional[bytes] = ...,
+ tips_seq_id: Optional[int] = ...,
+ pb_reserv: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["busi_id",b"busi_id","busi_type",b"busi_type","c2c_type",b"c2c_type","content",b"content","ctrl_flag",b"ctrl_flag","pb_reserv",b"pb_reserv","service_type",b"service_type","templ_id",b"templ_id","tips_seq_id",b"tips_seq_id"]) -> bool: ...
+ def ClearField(self, field_name: Literal["busi_id",b"busi_id","busi_type",b"busi_type","c2c_type",b"c2c_type","content",b"content","ctrl_flag",b"ctrl_flag","pb_reserv",b"pb_reserv","service_type",b"service_type","templ_id",b"templ_id","templ_param",b"templ_param","tips_seq_id",b"tips_seq_id"]) -> None: ...
+
+class GoldMsgTipsElem(Message):
+ DESCRIPTOR: Descriptor
+ TYPE_FIELD_NUMBER: int
+ BILLNO_FIELD_NUMBER: int
+ RESULT_FIELD_NUMBER: int
+ AMOUNT_FIELD_NUMBER: int
+ TOTAL_FIELD_NUMBER: int
+ INTERVAL_FIELD_NUMBER: int
+ FINISH_FIELD_NUMBER: int
+ UIN_FIELD_NUMBER: int
+ ACTION_FIELD_NUMBER: int
+ type: int
+ billno: Text
+ result: int
+ amount: int
+ total: int
+ interval: int
+ finish: int
+ @property
+ def uin(self) -> RepeatedScalarFieldContainer[int]: ...
+ action: int
+ def __init__(self,
+ *,
+ type: Optional[int] = ...,
+ billno: Optional[Text] = ...,
+ result: Optional[int] = ...,
+ amount: Optional[int] = ...,
+ total: Optional[int] = ...,
+ interval: Optional[int] = ...,
+ finish: Optional[int] = ...,
+ uin: Optional[Iterable[int]] = ...,
+ action: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["action",b"action","amount",b"amount","billno",b"billno","finish",b"finish","interval",b"interval","result",b"result","total",b"total","type",b"type"]) -> bool: ...
+ def ClearField(self, field_name: Literal["action",b"action","amount",b"amount","billno",b"billno","finish",b"finish","interval",b"interval","result",b"result","total",b"total","type",b"type","uin",b"uin"]) -> None: ...
+
+class GrayData(Message):
+ DESCRIPTOR: Descriptor
+ ALL_READ_FIELD_NUMBER: int
+ FEED_ID_FIELD_NUMBER: int
+ all_read: int
+ feed_id: Text
+ def __init__(self,
+ *,
+ all_read: Optional[int] = ...,
+ feed_id: Optional[Text] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["all_read",b"all_read","feed_id",b"feed_id"]) -> bool: ...
+ def ClearField(self, field_name: Literal["all_read",b"all_read","feed_id",b"feed_id"]) -> None: ...
+
+class GroupAnnounceTBCInfo(Message):
+ DESCRIPTOR: Descriptor
+ FEEDS_ID_FIELD_NUMBER: int
+ GROUP_ID_FIELD_NUMBER: int
+ ACTION_FIELD_NUMBER: int
+ feeds_id: bytes
+ group_id: int
+ action: int
+ def __init__(self,
+ *,
+ feeds_id: Optional[bytes] = ...,
+ group_id: Optional[int] = ...,
+ action: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["action",b"action","feeds_id",b"feeds_id","group_id",b"group_id"]) -> bool: ...
+ def ClearField(self, field_name: Literal["action",b"action","feeds_id",b"feeds_id","group_id",b"group_id"]) -> None: ...
+
+class GroupAsyncNotify(Message):
+ DESCRIPTOR: Descriptor
+ MSG_TYPE_FIELD_NUMBER: int
+ MSG_SEQ_FIELD_NUMBER: int
+ msg_type: int
+ msg_seq: int
+ def __init__(self,
+ *,
+ msg_type: Optional[int] = ...,
+ msg_seq: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["msg_seq",b"msg_seq","msg_type",b"msg_type"]) -> bool: ...
+ def ClearField(self, field_name: Literal["msg_seq",b"msg_seq","msg_type",b"msg_type"]) -> None: ...
+
+class GroupInfoChange(Message):
+ DESCRIPTOR: Descriptor
+ GROUP_HONOR_SWITCH_FIELD_NUMBER: int
+ GROUP_MEMBER_LEVEL_SWITCH_FIELD_NUMBER: int
+ GROUP_FLAGEXT4_FIELD_NUMBER: int
+ APPEAL_DEADLINE_FIELD_NUMBER: int
+ GROUP_FLAG_FIELD_NUMBER: int
+ GROUP_FLAGEXT3_FIELD_NUMBER: int
+ GROUP_CLASS_EXT_FIELD_NUMBER: int
+ GROUP_INFO_EXT_SEQ_FIELD_NUMBER: int
+ group_honor_switch: int
+ group_member_level_switch: int
+ group_flagext4: int
+ appeal_deadline: int
+ group_flag: int
+ group_flagext3: int
+ group_class_ext: int
+ group_info_ext_seq: int
+ def __init__(self,
+ *,
+ group_honor_switch: Optional[int] = ...,
+ group_member_level_switch: Optional[int] = ...,
+ group_flagext4: Optional[int] = ...,
+ appeal_deadline: Optional[int] = ...,
+ group_flag: Optional[int] = ...,
+ group_flagext3: Optional[int] = ...,
+ group_class_ext: Optional[int] = ...,
+ group_info_ext_seq: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["appeal_deadline",b"appeal_deadline","group_class_ext",b"group_class_ext","group_flag",b"group_flag","group_flagext3",b"group_flagext3","group_flagext4",b"group_flagext4","group_honor_switch",b"group_honor_switch","group_info_ext_seq",b"group_info_ext_seq","group_member_level_switch",b"group_member_level_switch"]) -> bool: ...
+ def ClearField(self, field_name: Literal["appeal_deadline",b"appeal_deadline","group_class_ext",b"group_class_ext","group_flag",b"group_flag","group_flagext3",b"group_flagext3","group_flagext4",b"group_flagext4","group_honor_switch",b"group_honor_switch","group_info_ext_seq",b"group_info_ext_seq","group_member_level_switch",b"group_member_level_switch"]) -> None: ...
+
+class GroupNotifyInfo(Message):
+ DESCRIPTOR: Descriptor
+ AUTO_PULL_FLAG_FIELD_NUMBER: int
+ FEEDS_ID_FIELD_NUMBER: int
+ auto_pull_flag: int
+ feeds_id: bytes
+ def __init__(self,
+ *,
+ auto_pull_flag: Optional[int] = ...,
+ feeds_id: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["auto_pull_flag",b"auto_pull_flag","feeds_id",b"feeds_id"]) -> bool: ...
+ def ClearField(self, field_name: Literal["auto_pull_flag",b"auto_pull_flag","feeds_id",b"feeds_id"]) -> None: ...
+
+class InstCtrl(Message):
+ DESCRIPTOR: Descriptor
+ SEND_TO_INST_FIELD_NUMBER: int
+ EXCLUDE_INST_FIELD_NUMBER: int
+ FROM_INST_FIELD_NUMBER: int
+ @property
+ def send_to_inst(self) -> RepeatedCompositeFieldContainer[InstInfo]: ...
+ @property
+ def exclude_inst(self) -> RepeatedCompositeFieldContainer[InstInfo]: ...
+ @property
+ def from_inst(self) -> InstInfo: ...
+ def __init__(self,
+ *,
+ send_to_inst: Optional[Iterable[InstInfo]] = ...,
+ exclude_inst: Optional[Iterable[InstInfo]] = ...,
+ from_inst: Optional[InstInfo] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["from_inst",b"from_inst"]) -> bool: ...
+ def ClearField(self, field_name: Literal["exclude_inst",b"exclude_inst","from_inst",b"from_inst","send_to_inst",b"send_to_inst"]) -> None: ...
+
+class InstInfo(Message):
+ DESCRIPTOR: Descriptor
+ APPPID_FIELD_NUMBER: int
+ INSTID_FIELD_NUMBER: int
+ PLATFORM_FIELD_NUMBER: int
+ OPEN_APPID_FIELD_NUMBER: int
+ PRODUCTID_FIELD_NUMBER: int
+ SSO_BID_FIELD_NUMBER: int
+ GUID_FIELD_NUMBER: int
+ VER_MIN_FIELD_NUMBER: int
+ VER_MAX_FIELD_NUMBER: int
+ apppid: int
+ instid: int
+ platform: int
+ open_appid: int
+ productid: int
+ sso_bid: int
+ guid: bytes
+ ver_min: int
+ ver_max: int
+ def __init__(self,
+ *,
+ apppid: Optional[int] = ...,
+ instid: Optional[int] = ...,
+ platform: Optional[int] = ...,
+ open_appid: Optional[int] = ...,
+ productid: Optional[int] = ...,
+ sso_bid: Optional[int] = ...,
+ guid: Optional[bytes] = ...,
+ ver_min: Optional[int] = ...,
+ ver_max: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["apppid",b"apppid","guid",b"guid","instid",b"instid","open_appid",b"open_appid","platform",b"platform","productid",b"productid","sso_bid",b"sso_bid","ver_max",b"ver_max","ver_min",b"ver_min"]) -> bool: ...
+ def ClearField(self, field_name: Literal["apppid",b"apppid","guid",b"guid","instid",b"instid","open_appid",b"open_appid","platform",b"platform","productid",b"productid","sso_bid",b"sso_bid","ver_max",b"ver_max","ver_min",b"ver_min"]) -> None: ...
+
+class LbsShareChangePushInfo(Message):
+ DESCRIPTOR: Descriptor
+ MSG_TYPE_FIELD_NUMBER: int
+ MSG_INFO_FIELD_NUMBER: int
+ VERSION_CTRL_FIELD_NUMBER: int
+ GROUP_ID_FIELD_NUMBER: int
+ OPER_UIN_FIELD_NUMBER: int
+ GRAY_TIPS_FIELD_NUMBER: int
+ MSG_SEQ_FIELD_NUMBER: int
+ JOIN_NUMS_FIELD_NUMBER: int
+ PUSH_TYPE_FIELD_NUMBER: int
+ EXT_INFO_FIELD_NUMBER: int
+ msg_type: int
+ msg_info: bytes
+ version_ctrl: bytes
+ group_id: int
+ oper_uin: int
+ gray_tips: bytes
+ msg_seq: int
+ join_nums: int
+ push_type: int
+ ext_info: bytes
+ def __init__(self,
+ *,
+ msg_type: Optional[int] = ...,
+ msg_info: Optional[bytes] = ...,
+ version_ctrl: Optional[bytes] = ...,
+ group_id: Optional[int] = ...,
+ oper_uin: Optional[int] = ...,
+ gray_tips: Optional[bytes] = ...,
+ msg_seq: Optional[int] = ...,
+ join_nums: Optional[int] = ...,
+ push_type: Optional[int] = ...,
+ ext_info: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["ext_info",b"ext_info","gray_tips",b"gray_tips","group_id",b"group_id","join_nums",b"join_nums","msg_info",b"msg_info","msg_seq",b"msg_seq","msg_type",b"msg_type","oper_uin",b"oper_uin","push_type",b"push_type","version_ctrl",b"version_ctrl"]) -> bool: ...
+ def ClearField(self, field_name: Literal["ext_info",b"ext_info","gray_tips",b"gray_tips","group_id",b"group_id","join_nums",b"join_nums","msg_info",b"msg_info","msg_seq",b"msg_seq","msg_type",b"msg_type","oper_uin",b"oper_uin","push_type",b"push_type","version_ctrl",b"version_ctrl"]) -> None: ...
+
+class LuckyBagNotify(Message):
+ DESCRIPTOR: Descriptor
+ MSG_TIPS_FIELD_NUMBER: int
+ msg_tips: bytes
+ def __init__(self,
+ *,
+ msg_tips: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["msg_tips",b"msg_tips"]) -> bool: ...
+ def ClearField(self, field_name: Literal["msg_tips",b"msg_tips"]) -> None: ...
+
+class MediaChangePushInfo(Message):
+ DESCRIPTOR: Descriptor
+ class PersonalSetting(Message):
+ DESCRIPTOR: Descriptor
+ THEME_ID_FIELD_NUMBER: int
+ PLAYER_ID_FIELD_NUMBER: int
+ FONT_ID_FIELD_NUMBER: int
+ theme_id: int
+ player_id: int
+ font_id: int
+ def __init__(self,
+ *,
+ theme_id: Optional[int] = ...,
+ player_id: Optional[int] = ...,
+ font_id: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["font_id",b"font_id","player_id",b"player_id","theme_id",b"theme_id"]) -> bool: ...
+ def ClearField(self, field_name: Literal["font_id",b"font_id","player_id",b"player_id","theme_id",b"theme_id"]) -> None: ...
+
+ MSG_TYPE_FIELD_NUMBER: int
+ MSG_INFO_FIELD_NUMBER: int
+ VERSION_CTRL_FIELD_NUMBER: int
+ GROUP_ID_FIELD_NUMBER: int
+ OPER_UIN_FIELD_NUMBER: int
+ GRAY_TIPS_FIELD_NUMBER: int
+ MSG_SEQ_FIELD_NUMBER: int
+ JOIN_NUMS_FIELD_NUMBER: int
+ PER_SETTING_FIELD_NUMBER: int
+ PLAY_MODE_FIELD_NUMBER: int
+ IS_JOIN_WHEN_START_FIELD_NUMBER: int
+ MEDIA_TYPE_FIELD_NUMBER: int
+ EXT_INFO_FIELD_NUMBER: int
+ msg_type: int
+ msg_info: bytes
+ version_ctrl: bytes
+ group_id: int
+ oper_uin: int
+ gray_tips: bytes
+ msg_seq: int
+ join_nums: int
+ @property
+ def per_setting(self) -> MediaChangePushInfo.PersonalSetting: ...
+ play_mode: int
+ is_join_when_start: bool
+ media_type: int
+ ext_info: bytes
+ def __init__(self,
+ *,
+ msg_type: Optional[int] = ...,
+ msg_info: Optional[bytes] = ...,
+ version_ctrl: Optional[bytes] = ...,
+ group_id: Optional[int] = ...,
+ oper_uin: Optional[int] = ...,
+ gray_tips: Optional[bytes] = ...,
+ msg_seq: Optional[int] = ...,
+ join_nums: Optional[int] = ...,
+ per_setting: Optional[MediaChangePushInfo.PersonalSetting] = ...,
+ play_mode: Optional[int] = ...,
+ is_join_when_start: Optional[bool] = ...,
+ media_type: Optional[int] = ...,
+ ext_info: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["ext_info",b"ext_info","gray_tips",b"gray_tips","group_id",b"group_id","is_join_when_start",b"is_join_when_start","join_nums",b"join_nums","media_type",b"media_type","msg_info",b"msg_info","msg_seq",b"msg_seq","msg_type",b"msg_type","oper_uin",b"oper_uin","per_setting",b"per_setting","play_mode",b"play_mode","version_ctrl",b"version_ctrl"]) -> bool: ...
+ def ClearField(self, field_name: Literal["ext_info",b"ext_info","gray_tips",b"gray_tips","group_id",b"group_id","is_join_when_start",b"is_join_when_start","join_nums",b"join_nums","media_type",b"media_type","msg_info",b"msg_info","msg_seq",b"msg_seq","msg_type",b"msg_type","oper_uin",b"oper_uin","per_setting",b"per_setting","play_mode",b"play_mode","version_ctrl",b"version_ctrl"]) -> None: ...
+
+class MessageBoxInfo(Message):
+ DESCRIPTOR: Descriptor
+ CONTENT_FIELD_NUMBER: int
+ TITLE_FIELD_NUMBER: int
+ BUTTON_FIELD_NUMBER: int
+ content: bytes
+ title: bytes
+ button: bytes
+ def __init__(self,
+ *,
+ content: Optional[bytes] = ...,
+ title: Optional[bytes] = ...,
+ button: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["button",b"button","content",b"content","title",b"title"]) -> bool: ...
+ def ClearField(self, field_name: Literal["button",b"button","content",b"content","title",b"title"]) -> None: ...
+
+class MessageRecallReminder(Message):
+ DESCRIPTOR: Descriptor
+ class MessageMeta(Message):
+ DESCRIPTOR: Descriptor
+ SEQ_FIELD_NUMBER: int
+ TIME_FIELD_NUMBER: int
+ MSG_RANDOM_FIELD_NUMBER: int
+ MSG_TYPE_FIELD_NUMBER: int
+ MSG_FLAG_FIELD_NUMBER: int
+ AUTHOR_UIN_FIELD_NUMBER: int
+ IS_ANONY_MSG_FIELD_NUMBER: int
+ seq: int
+ time: int
+ msg_random: int
+ msg_type: int
+ msg_flag: int
+ author_uin: int
+ is_anony_msg: int
+ def __init__(self,
+ *,
+ seq: Optional[int] = ...,
+ time: Optional[int] = ...,
+ msg_random: Optional[int] = ...,
+ msg_type: Optional[int] = ...,
+ msg_flag: Optional[int] = ...,
+ author_uin: Optional[int] = ...,
+ is_anony_msg: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["author_uin",b"author_uin","is_anony_msg",b"is_anony_msg","msg_flag",b"msg_flag","msg_random",b"msg_random","msg_type",b"msg_type","seq",b"seq","time",b"time"]) -> bool: ...
+ def ClearField(self, field_name: Literal["author_uin",b"author_uin","is_anony_msg",b"is_anony_msg","msg_flag",b"msg_flag","msg_random",b"msg_random","msg_type",b"msg_type","seq",b"seq","time",b"time"]) -> None: ...
+
+ class WithDrawWordingInfo(Message):
+ DESCRIPTOR: Descriptor
+ ITEM_ID_FIELD_NUMBER: int
+ ITEM_NAME_FIELD_NUMBER: int
+ item_id: int
+ item_name: Text
+ def __init__(self,
+ *,
+ item_id: Optional[int] = ...,
+ item_name: Optional[Text] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["item_id",b"item_id","item_name",b"item_name"]) -> bool: ...
+ def ClearField(self, field_name: Literal["item_id",b"item_id","item_name",b"item_name"]) -> None: ...
+
+ UIN_FIELD_NUMBER: int
+ NICKNAME_FIELD_NUMBER: int
+ RECALLED_MSG_LIST_FIELD_NUMBER: int
+ REMINDER_CONTENT_FIELD_NUMBER: int
+ USERDEF_FIELD_NUMBER: int
+ GROUP_TYPE_FIELD_NUMBER: int
+ OP_TYPE_FIELD_NUMBER: int
+ ADMIN_UIN_FIELD_NUMBER: int
+ WORDING_INFO_FIELD_NUMBER: int
+ uin: int
+ nickname: bytes
+ @property
+ def recalled_msg_list(self) -> RepeatedCompositeFieldContainer[MessageRecallReminder.MessageMeta]: ...
+ reminder_content: bytes
+ userdef: bytes
+ group_type: int
+ op_type: int
+ admin_uin: int
+ @property
+ def wording_info(self) -> MessageRecallReminder.WithDrawWordingInfo: ...
+ def __init__(self,
+ *,
+ uin: Optional[int] = ...,
+ nickname: Optional[bytes] = ...,
+ recalled_msg_list: Optional[Iterable[MessageRecallReminder.MessageMeta]] = ...,
+ reminder_content: Optional[bytes] = ...,
+ userdef: Optional[bytes] = ...,
+ group_type: Optional[int] = ...,
+ op_type: Optional[int] = ...,
+ admin_uin: Optional[int] = ...,
+ wording_info: Optional[MessageRecallReminder.WithDrawWordingInfo] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["admin_uin",b"admin_uin","group_type",b"group_type","nickname",b"nickname","op_type",b"op_type","reminder_content",b"reminder_content","uin",b"uin","userdef",b"userdef","wording_info",b"wording_info"]) -> bool: ...
+ def ClearField(self, field_name: Literal["admin_uin",b"admin_uin","group_type",b"group_type","nickname",b"nickname","op_type",b"op_type","recalled_msg_list",b"recalled_msg_list","reminder_content",b"reminder_content","uin",b"uin","userdef",b"userdef","wording_info",b"wording_info"]) -> None: ...
+
+class MiniAppNotify(Message):
+ DESCRIPTOR: Descriptor
+ MSG_FIELD_NUMBER: int
+ msg: bytes
+ def __init__(self,
+ *,
+ msg: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["msg",b"msg"]) -> bool: ...
+ def ClearField(self, field_name: Literal["msg",b"msg"]) -> None: ...
+
+class NotifyMsgBody(Message):
+ DESCRIPTOR: Descriptor
+ ENUM_TYPE_FIELD_NUMBER: int
+ MSG_TIME_FIELD_NUMBER: int
+ MSG_EXPIRES_FIELD_NUMBER: int
+ GROUP_CODE_FIELD_NUMBER: int
+ GRAYTIPS_FIELD_NUMBER: int
+ MESSAGEBOX_FIELD_NUMBER: int
+ FLOATEDTIPS_FIELD_NUMBER: int
+ TOPTIPS_FIELD_NUMBER: int
+ REDTIPS_FIELD_NUMBER: int
+ GROUP_NOTIFY_FIELD_NUMBER: int
+ RECALL_FIELD_NUMBER: int
+ THEME_NOTIFY_FIELD_NUMBER: int
+ SERVICE_TYPE_FIELD_NUMBER: int
+ OBJMSG_UPDATE_FIELD_NUMBER: int
+ WEREWOLF_PUSH_FIELD_NUMBER: int
+ GOLDTIPS_FIELD_NUMBER: int
+ MINIAPP_NOTIFY_FIELD_NUMBER: int
+ SENDER_UIN_FIELD_NUMBER: int
+ LUCKYBAG_NOTIFY_FIELD_NUMBER: int
+ TROOPFORMTIPS_PUSH_FIELD_NUMBER: int
+ MEDIA_PUSH_FIELD_NUMBER: int
+ GENERAL_GRAY_TIP_FIELD_NUMBER: int
+ VIDEO_PUSH_FIELD_NUMBER: int
+ LBS_SHARE_CHANGE_PLUS_INFO_FIELD_NUMBER: int
+ SING_PUSH_FIELD_NUMBER: int
+ GROUP_INFO_CHANGE_FIELD_NUMBER: int
+ GROUP_ANNOUNCE_TBC_INFO_FIELD_NUMBER: int
+ QQ_VEDIO_GAME_PUSH_INFO_FIELD_NUMBER: int
+ QQ_GROUP_DIGEST_MSG_FIELD_NUMBER: int
+ STUDY_ROOM_MEMBER_MSG_FIELD_NUMBER: int
+ QQ_LIVE_NOTIFY_FIELD_NUMBER: int
+ GROUP_ASYNC_NOTIDY_FIELD_NUMBER: int
+ GROUP_CUR_MSG_SEQ_FIELD_NUMBER: int
+ GROUP_DIGEST_MSG_SUMMARY_FIELD_NUMBER: int
+ SYSDB_MSG_ID_FIELD_NUMBER: int
+ REVERT_GRAYTIPS_TRACELESS_FIELD_NUMBER: int
+ enum_type: int
+ msg_time: int
+ msg_expires: int
+ group_code: int
+ @property
+ def graytips(self) -> AIOGrayTipsInfo: ...
+ @property
+ def messagebox(self) -> MessageBoxInfo: ...
+ @property
+ def floatedtips(self) -> FloatedTipsInfo: ...
+ @property
+ def toptips(self) -> AIOTopTipsInfo: ...
+ @property
+ def redtips(self) -> RedGrayTipsInfo: ...
+ @property
+ def group_notify(self) -> GroupNotifyInfo: ...
+ @property
+ def recall(self) -> MessageRecallReminder: ...
+ @property
+ def theme_notify(self) -> ThemeStateNotify: ...
+ service_type: int
+ @property
+ def objmsg_update(self) -> NotifyObjmsgUpdate: ...
+ @property
+ def werewolf_push(self) -> WereWolfPush: ...
+ @property
+ def goldtips(self) -> GoldMsgTipsElem:
+ """optional apollo_game_status.STCMGameMessage stcm_game_state = 16;
+ optional apollo_push_msgInfo.STPushMsgElem apllo_msg_push = 17;
+ """
+ pass
+ @property
+ def miniapp_notify(self) -> MiniAppNotify: ...
+ sender_uin: int
+ @property
+ def luckybag_notify(self) -> LuckyBagNotify: ...
+ @property
+ def troopformtips_push(self) -> TroopFormGrayTipsInfo: ...
+ @property
+ def media_push(self) -> MediaChangePushInfo: ...
+ @property
+ def general_gray_tip(self) -> GeneralGrayTipInfo: ...
+ @property
+ def video_push(self) -> VideoChangePushInfo: ...
+ @property
+ def lbs_share_change_plus_info(self) -> LbsShareChangePushInfo: ...
+ @property
+ def sing_push(self) -> SingChangePushInfo: ...
+ @property
+ def group_info_change(self) -> GroupInfoChange: ...
+ @property
+ def group_announce_tbc_info(self) -> GroupAnnounceTBCInfo: ...
+ @property
+ def qq_vedio_game_push_info(self) -> QQVedioGamePushInfo: ...
+ @property
+ def qq_group_digest_msg(self) -> QQGroupDigestMsg: ...
+ @property
+ def study_room_member_msg(self) -> StudyRoomMemberChangePush: ...
+ @property
+ def qq_live_notify(self) -> QQVaLiveNotifyMsg: ...
+ @property
+ def group_async_notidy(self) -> GroupAsyncNotify: ...
+ group_cur_msg_seq: int
+ @property
+ def group_digest_msg_summary(self) -> QQGroupDigestMsgSummary: ...
+ sysdb_msg_id: int
+ @property
+ def revert_graytips_traceless(self) -> RevertGrayTipsMsgTraceless: ...
+ def __init__(self,
+ *,
+ enum_type: Optional[int] = ...,
+ msg_time: Optional[int] = ...,
+ msg_expires: Optional[int] = ...,
+ group_code: Optional[int] = ...,
+ graytips: Optional[AIOGrayTipsInfo] = ...,
+ messagebox: Optional[MessageBoxInfo] = ...,
+ floatedtips: Optional[FloatedTipsInfo] = ...,
+ toptips: Optional[AIOTopTipsInfo] = ...,
+ redtips: Optional[RedGrayTipsInfo] = ...,
+ group_notify: Optional[GroupNotifyInfo] = ...,
+ recall: Optional[MessageRecallReminder] = ...,
+ theme_notify: Optional[ThemeStateNotify] = ...,
+ service_type: Optional[int] = ...,
+ objmsg_update: Optional[NotifyObjmsgUpdate] = ...,
+ werewolf_push: Optional[WereWolfPush] = ...,
+ goldtips: Optional[GoldMsgTipsElem] = ...,
+ miniapp_notify: Optional[MiniAppNotify] = ...,
+ sender_uin: Optional[int] = ...,
+ luckybag_notify: Optional[LuckyBagNotify] = ...,
+ troopformtips_push: Optional[TroopFormGrayTipsInfo] = ...,
+ media_push: Optional[MediaChangePushInfo] = ...,
+ general_gray_tip: Optional[GeneralGrayTipInfo] = ...,
+ video_push: Optional[VideoChangePushInfo] = ...,
+ lbs_share_change_plus_info: Optional[LbsShareChangePushInfo] = ...,
+ sing_push: Optional[SingChangePushInfo] = ...,
+ group_info_change: Optional[GroupInfoChange] = ...,
+ group_announce_tbc_info: Optional[GroupAnnounceTBCInfo] = ...,
+ qq_vedio_game_push_info: Optional[QQVedioGamePushInfo] = ...,
+ qq_group_digest_msg: Optional[QQGroupDigestMsg] = ...,
+ study_room_member_msg: Optional[StudyRoomMemberChangePush] = ...,
+ qq_live_notify: Optional[QQVaLiveNotifyMsg] = ...,
+ group_async_notidy: Optional[GroupAsyncNotify] = ...,
+ group_cur_msg_seq: Optional[int] = ...,
+ group_digest_msg_summary: Optional[QQGroupDigestMsgSummary] = ...,
+ sysdb_msg_id: Optional[int] = ...,
+ revert_graytips_traceless: Optional[RevertGrayTipsMsgTraceless] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["enum_type",b"enum_type","floatedtips",b"floatedtips","general_gray_tip",b"general_gray_tip","goldtips",b"goldtips","graytips",b"graytips","group_announce_tbc_info",b"group_announce_tbc_info","group_async_notidy",b"group_async_notidy","group_code",b"group_code","group_cur_msg_seq",b"group_cur_msg_seq","group_digest_msg_summary",b"group_digest_msg_summary","group_info_change",b"group_info_change","group_notify",b"group_notify","lbs_share_change_plus_info",b"lbs_share_change_plus_info","luckybag_notify",b"luckybag_notify","media_push",b"media_push","messagebox",b"messagebox","miniapp_notify",b"miniapp_notify","msg_expires",b"msg_expires","msg_time",b"msg_time","objmsg_update",b"objmsg_update","qq_group_digest_msg",b"qq_group_digest_msg","qq_live_notify",b"qq_live_notify","qq_vedio_game_push_info",b"qq_vedio_game_push_info","recall",b"recall","redtips",b"redtips","revert_graytips_traceless",b"revert_graytips_traceless","sender_uin",b"sender_uin","service_type",b"service_type","sing_push",b"sing_push","study_room_member_msg",b"study_room_member_msg","sysdb_msg_id",b"sysdb_msg_id","theme_notify",b"theme_notify","toptips",b"toptips","troopformtips_push",b"troopformtips_push","video_push",b"video_push","werewolf_push",b"werewolf_push"]) -> bool: ...
+ def ClearField(self, field_name: Literal["enum_type",b"enum_type","floatedtips",b"floatedtips","general_gray_tip",b"general_gray_tip","goldtips",b"goldtips","graytips",b"graytips","group_announce_tbc_info",b"group_announce_tbc_info","group_async_notidy",b"group_async_notidy","group_code",b"group_code","group_cur_msg_seq",b"group_cur_msg_seq","group_digest_msg_summary",b"group_digest_msg_summary","group_info_change",b"group_info_change","group_notify",b"group_notify","lbs_share_change_plus_info",b"lbs_share_change_plus_info","luckybag_notify",b"luckybag_notify","media_push",b"media_push","messagebox",b"messagebox","miniapp_notify",b"miniapp_notify","msg_expires",b"msg_expires","msg_time",b"msg_time","objmsg_update",b"objmsg_update","qq_group_digest_msg",b"qq_group_digest_msg","qq_live_notify",b"qq_live_notify","qq_vedio_game_push_info",b"qq_vedio_game_push_info","recall",b"recall","redtips",b"redtips","revert_graytips_traceless",b"revert_graytips_traceless","sender_uin",b"sender_uin","service_type",b"service_type","sing_push",b"sing_push","study_room_member_msg",b"study_room_member_msg","sysdb_msg_id",b"sysdb_msg_id","theme_notify",b"theme_notify","toptips",b"toptips","troopformtips_push",b"troopformtips_push","video_push",b"video_push","werewolf_push",b"werewolf_push"]) -> None: ...
+
+class NotifyObjmsgUpdate(Message):
+ DESCRIPTOR: Descriptor
+ OBJMSG_ID_FIELD_NUMBER: int
+ UPDATE_TYPE_FIELD_NUMBER: int
+ EXT_MSG_FIELD_NUMBER: int
+ objmsg_id: bytes
+ update_type: int
+ ext_msg: bytes
+ def __init__(self,
+ *,
+ objmsg_id: Optional[bytes] = ...,
+ update_type: Optional[int] = ...,
+ ext_msg: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["ext_msg",b"ext_msg","objmsg_id",b"objmsg_id","update_type",b"update_type"]) -> bool: ...
+ def ClearField(self, field_name: Literal["ext_msg",b"ext_msg","objmsg_id",b"objmsg_id","update_type",b"update_type"]) -> None: ...
+
+class QQGroupDigestMsg(Message):
+ DESCRIPTOR: Descriptor
+ GROUP_CODE_FIELD_NUMBER: int
+ SEQ_FIELD_NUMBER: int
+ RANDOM_FIELD_NUMBER: int
+ OP_TYPE_FIELD_NUMBER: int
+ SENDER_FIELD_NUMBER: int
+ DIGEST_OPER_FIELD_NUMBER: int
+ OP_TIME_FIELD_NUMBER: int
+ LASTEST_MSG_SEQ_FIELD_NUMBER: int
+ OPER_NICK_FIELD_NUMBER: int
+ SENDER_NICK_FIELD_NUMBER: int
+ EXT_INFO_FIELD_NUMBER: int
+ group_code: int
+ seq: int
+ random: int
+ op_type: int
+ sender: int
+ digest_oper: int
+ op_time: int
+ lastest_msg_seq: int
+ oper_nick: bytes
+ sender_nick: bytes
+ ext_info: int
+ def __init__(self,
+ *,
+ group_code: Optional[int] = ...,
+ seq: Optional[int] = ...,
+ random: Optional[int] = ...,
+ op_type: Optional[int] = ...,
+ sender: Optional[int] = ...,
+ digest_oper: Optional[int] = ...,
+ op_time: Optional[int] = ...,
+ lastest_msg_seq: Optional[int] = ...,
+ oper_nick: Optional[bytes] = ...,
+ sender_nick: Optional[bytes] = ...,
+ ext_info: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["digest_oper",b"digest_oper","ext_info",b"ext_info","group_code",b"group_code","lastest_msg_seq",b"lastest_msg_seq","op_time",b"op_time","op_type",b"op_type","oper_nick",b"oper_nick","random",b"random","sender",b"sender","sender_nick",b"sender_nick","seq",b"seq"]) -> bool: ...
+ def ClearField(self, field_name: Literal["digest_oper",b"digest_oper","ext_info",b"ext_info","group_code",b"group_code","lastest_msg_seq",b"lastest_msg_seq","op_time",b"op_time","op_type",b"op_type","oper_nick",b"oper_nick","random",b"random","sender",b"sender","sender_nick",b"sender_nick","seq",b"seq"]) -> None: ...
+
+class QQGroupDigestMsgSummary(Message):
+ DESCRIPTOR: Descriptor
+ DIGEST_OPER_FIELD_NUMBER: int
+ OP_TYPE_FIELD_NUMBER: int
+ OP_TIME_FIELD_NUMBER: int
+ DIGEST_NICK_FIELD_NUMBER: int
+ SUCC_CNT_FIELD_NUMBER: int
+ SUMMARY_INFO_FIELD_NUMBER: int
+ digest_oper: int
+ op_type: int
+ op_time: int
+ digest_nick: bytes
+ succ_cnt: int
+ @property
+ def summary_info(self) -> RepeatedCompositeFieldContainer[QQGroupDigestSummaryInfo]: ...
+ def __init__(self,
+ *,
+ digest_oper: Optional[int] = ...,
+ op_type: Optional[int] = ...,
+ op_time: Optional[int] = ...,
+ digest_nick: Optional[bytes] = ...,
+ succ_cnt: Optional[int] = ...,
+ summary_info: Optional[Iterable[QQGroupDigestSummaryInfo]] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["digest_nick",b"digest_nick","digest_oper",b"digest_oper","op_time",b"op_time","op_type",b"op_type","succ_cnt",b"succ_cnt"]) -> bool: ...
+ def ClearField(self, field_name: Literal["digest_nick",b"digest_nick","digest_oper",b"digest_oper","op_time",b"op_time","op_type",b"op_type","succ_cnt",b"succ_cnt","summary_info",b"summary_info"]) -> None: ...
+
+class QQGroupDigestSummaryInfo(Message):
+ DESCRIPTOR: Descriptor
+ SEQ_FIELD_NUMBER: int
+ RANDOM_FIELD_NUMBER: int
+ ERROR_CODE_FIELD_NUMBER: int
+ seq: int
+ random: int
+ error_code: int
+ def __init__(self,
+ *,
+ seq: Optional[int] = ...,
+ random: Optional[int] = ...,
+ error_code: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["error_code",b"error_code","random",b"random","seq",b"seq"]) -> bool: ...
+ def ClearField(self, field_name: Literal["error_code",b"error_code","random",b"random","seq",b"seq"]) -> None: ...
+
+class QQVaLiveNotifyMsg(Message):
+ DESCRIPTOR: Descriptor
+ UID_FIELD_NUMBER: int
+ NOTIFY_TYPE_FIELD_NUMBER: int
+ EXT1_FIELD_NUMBER: int
+ EXT2_FIELD_NUMBER: int
+ EXT3_FIELD_NUMBER: int
+ uid: bytes
+ notify_type: int
+ ext1: bytes
+ ext2: bytes
+ ext3: bytes
+ def __init__(self,
+ *,
+ uid: Optional[bytes] = ...,
+ notify_type: Optional[int] = ...,
+ ext1: Optional[bytes] = ...,
+ ext2: Optional[bytes] = ...,
+ ext3: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["ext1",b"ext1","ext2",b"ext2","ext3",b"ext3","notify_type",b"notify_type","uid",b"uid"]) -> bool: ...
+ def ClearField(self, field_name: Literal["ext1",b"ext1","ext2",b"ext2","ext3",b"ext3","notify_type",b"notify_type","uid",b"uid"]) -> None: ...
+
+class QQVedioGamePushInfo(Message):
+ DESCRIPTOR: Descriptor
+ MSG_TYPE_FIELD_NUMBER: int
+ GROUP_CODE_FIELD_NUMBER: int
+ OPER_UIN_FIELD_NUMBER: int
+ VERSION_CTRL_FIELD_NUMBER: int
+ EXT_INFO_FIELD_NUMBER: int
+ msg_type: int
+ group_code: int
+ oper_uin: int
+ version_ctrl: bytes
+ ext_info: bytes
+ def __init__(self,
+ *,
+ msg_type: Optional[int] = ...,
+ group_code: Optional[int] = ...,
+ oper_uin: Optional[int] = ...,
+ version_ctrl: Optional[bytes] = ...,
+ ext_info: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["ext_info",b"ext_info","group_code",b"group_code","msg_type",b"msg_type","oper_uin",b"oper_uin","version_ctrl",b"version_ctrl"]) -> bool: ...
+ def ClearField(self, field_name: Literal["ext_info",b"ext_info","group_code",b"group_code","msg_type",b"msg_type","oper_uin",b"oper_uin","version_ctrl",b"version_ctrl"]) -> None: ...
+
+class RedGrayTipsInfo(Message):
+ DESCRIPTOR: Descriptor
+ SHOW_LASTEST_FIELD_NUMBER: int
+ SENDER_UIN_FIELD_NUMBER: int
+ RECEIVER_UIN_FIELD_NUMBER: int
+ SENDER_RICH_CONTENT_FIELD_NUMBER: int
+ RECEIVER_RICH_CONTENT_FIELD_NUMBER: int
+ AUTHKEY_FIELD_NUMBER: int
+ MSGTYPE_FIELD_NUMBER: int
+ LUCKY_FLAG_FIELD_NUMBER: int
+ HIDE_FLAG_FIELD_NUMBER: int
+ PC_BODY_FIELD_NUMBER: int
+ ICON_FIELD_NUMBER: int
+ LUCKY_UIN_FIELD_NUMBER: int
+ TIME_FIELD_NUMBER: int
+ RANDOM_FIELD_NUMBER: int
+ BROADCAST_RICH_CONTENT_FIELD_NUMBER: int
+ IDIOM_FIELD_NUMBER: int
+ IDIOM_SEQ_FIELD_NUMBER: int
+ IDIOM_ALPHA_FIELD_NUMBER: int
+ JUMPURL_FIELD_NUMBER: int
+ SUBCHANNEL_FIELD_NUMBER: int
+ POEM_RULE_FIELD_NUMBER: int
+ show_lastest: int
+ sender_uin: int
+ receiver_uin: int
+ sender_rich_content: bytes
+ receiver_rich_content: bytes
+ authkey: bytes
+ msgtype: int
+ lucky_flag: int
+ hide_flag: int
+ pc_body: bytes
+ icon: int
+ lucky_uin: int
+ time: int
+ random: int
+ broadcast_rich_content: bytes
+ idiom: bytes
+ idiom_seq: int
+ idiom_alpha: bytes
+ jumpurl: bytes
+ subchannel: int
+ poem_rule: bytes
+ def __init__(self,
+ *,
+ show_lastest: Optional[int] = ...,
+ sender_uin: Optional[int] = ...,
+ receiver_uin: Optional[int] = ...,
+ sender_rich_content: Optional[bytes] = ...,
+ receiver_rich_content: Optional[bytes] = ...,
+ authkey: Optional[bytes] = ...,
+ msgtype: Optional[int] = ...,
+ lucky_flag: Optional[int] = ...,
+ hide_flag: Optional[int] = ...,
+ pc_body: Optional[bytes] = ...,
+ icon: Optional[int] = ...,
+ lucky_uin: Optional[int] = ...,
+ time: Optional[int] = ...,
+ random: Optional[int] = ...,
+ broadcast_rich_content: Optional[bytes] = ...,
+ idiom: Optional[bytes] = ...,
+ idiom_seq: Optional[int] = ...,
+ idiom_alpha: Optional[bytes] = ...,
+ jumpurl: Optional[bytes] = ...,
+ subchannel: Optional[int] = ...,
+ poem_rule: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["authkey",b"authkey","broadcast_rich_content",b"broadcast_rich_content","hide_flag",b"hide_flag","icon",b"icon","idiom",b"idiom","idiom_alpha",b"idiom_alpha","idiom_seq",b"idiom_seq","jumpurl",b"jumpurl","lucky_flag",b"lucky_flag","lucky_uin",b"lucky_uin","msgtype",b"msgtype","pc_body",b"pc_body","poem_rule",b"poem_rule","random",b"random","receiver_rich_content",b"receiver_rich_content","receiver_uin",b"receiver_uin","sender_rich_content",b"sender_rich_content","sender_uin",b"sender_uin","show_lastest",b"show_lastest","subchannel",b"subchannel","time",b"time"]) -> bool: ...
+ def ClearField(self, field_name: Literal["authkey",b"authkey","broadcast_rich_content",b"broadcast_rich_content","hide_flag",b"hide_flag","icon",b"icon","idiom",b"idiom","idiom_alpha",b"idiom_alpha","idiom_seq",b"idiom_seq","jumpurl",b"jumpurl","lucky_flag",b"lucky_flag","lucky_uin",b"lucky_uin","msgtype",b"msgtype","pc_body",b"pc_body","poem_rule",b"poem_rule","random",b"random","receiver_rich_content",b"receiver_rich_content","receiver_uin",b"receiver_uin","sender_rich_content",b"sender_rich_content","sender_uin",b"sender_uin","show_lastest",b"show_lastest","subchannel",b"subchannel","time",b"time"]) -> None: ...
+
+class ReqBody(Message):
+ DESCRIPTOR: Descriptor
+ GROUP_CODE_FIELD_NUMBER: int
+ MEMBERUINS_FIELD_NUMBER: int
+ OFFLINE_FIELD_NUMBER: int
+ INST_CTRL_FIELD_NUMBER: int
+ MSG_FIELD_NUMBER: int
+ BUSI_TYPE_FIELD_NUMBER: int
+ group_code: int
+ @property
+ def memberuins(self) -> RepeatedScalarFieldContainer[int]: ...
+ offline: int
+ @property
+ def inst_ctrl(self) -> InstCtrl: ...
+ msg: bytes
+ busi_type: int
+ def __init__(self,
+ *,
+ group_code: Optional[int] = ...,
+ memberuins: Optional[Iterable[int]] = ...,
+ offline: Optional[int] = ...,
+ inst_ctrl: Optional[InstCtrl] = ...,
+ msg: Optional[bytes] = ...,
+ busi_type: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["busi_type",b"busi_type","group_code",b"group_code","inst_ctrl",b"inst_ctrl","msg",b"msg","offline",b"offline"]) -> bool: ...
+ def ClearField(self, field_name: Literal["busi_type",b"busi_type","group_code",b"group_code","inst_ctrl",b"inst_ctrl","memberuins",b"memberuins","msg",b"msg","offline",b"offline"]) -> None: ...
+
+class RevertGrayTipsMsgTraceless(Message):
+ DESCRIPTOR: Descriptor
+ FROM_FIELD_NUMBER: int
+ TO_FIELD_NUMBER: int
+ GROUP_CODE_FIELD_NUMBER: int
+ BUSI_ID_FIELD_NUMBER: int
+ TIPS_SEQ_ID_FIELD_NUMBER: int
+ to: int
+ group_code: int
+ busi_id: int
+ tips_seq_id: int
+ def __init__(self,
+ *,
+ to: Optional[int] = ...,
+ group_code: Optional[int] = ...,
+ busi_id: Optional[int] = ...,
+ tips_seq_id: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["busi_id",b"busi_id","from",b"from","group_code",b"group_code","tips_seq_id",b"tips_seq_id","to",b"to"]) -> bool: ...
+ def ClearField(self, field_name: Literal["busi_id",b"busi_id","from",b"from","group_code",b"group_code","tips_seq_id",b"tips_seq_id","to",b"to"]) -> None: ...
+
+class RspBody(Message):
+ DESCRIPTOR: Descriptor
+ GROUP_CODE_FIELD_NUMBER: int
+ group_code: int
+ def __init__(self,
+ *,
+ group_code: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["group_code",b"group_code"]) -> bool: ...
+ def ClearField(self, field_name: Literal["group_code",b"group_code"]) -> None: ...
+
+class SingChangePushInfo(Message):
+ DESCRIPTOR: Descriptor
+ SEQ_FIELD_NUMBER: int
+ ACTION_TYPE_FIELD_NUMBER: int
+ GROUP_ID_FIELD_NUMBER: int
+ OPER_UIN_FIELD_NUMBER: int
+ GRAY_TIPS_FIELD_NUMBER: int
+ JOIN_NUMS_FIELD_NUMBER: int
+ seq: int
+ action_type: int
+ group_id: int
+ oper_uin: int
+ gray_tips: bytes
+ join_nums: int
+ def __init__(self,
+ *,
+ seq: Optional[int] = ...,
+ action_type: Optional[int] = ...,
+ group_id: Optional[int] = ...,
+ oper_uin: Optional[int] = ...,
+ gray_tips: Optional[bytes] = ...,
+ join_nums: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["action_type",b"action_type","gray_tips",b"gray_tips","group_id",b"group_id","join_nums",b"join_nums","oper_uin",b"oper_uin","seq",b"seq"]) -> bool: ...
+ def ClearField(self, field_name: Literal["action_type",b"action_type","gray_tips",b"gray_tips","group_id",b"group_id","join_nums",b"join_nums","oper_uin",b"oper_uin","seq",b"seq"]) -> None: ...
+
+class StudyRoomMemberChangePush(Message):
+ DESCRIPTOR: Descriptor
+ MEMBER_COUNT_FIELD_NUMBER: int
+ member_count: int
+ def __init__(self,
+ *,
+ member_count: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["member_count",b"member_count"]) -> bool: ...
+ def ClearField(self, field_name: Literal["member_count",b"member_count"]) -> None: ...
+
+class TemplParam(Message):
+ DESCRIPTOR: Descriptor
+ NAME_FIELD_NUMBER: int
+ VALUE_FIELD_NUMBER: int
+ name: bytes
+ value: bytes
+ def __init__(self,
+ *,
+ name: Optional[bytes] = ...,
+ value: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["name",b"name","value",b"value"]) -> bool: ...
+ def ClearField(self, field_name: Literal["name",b"name","value",b"value"]) -> None: ...
+
+class ThemeStateNotify(Message):
+ DESCRIPTOR: Descriptor
+ STATE_FIELD_NUMBER: int
+ FEEDS_ID_FIELD_NUMBER: int
+ THEME_NAME_FIELD_NUMBER: int
+ ACTION_UIN_FIELD_NUMBER: int
+ CREATE_UIN_FIELD_NUMBER: int
+ state: int
+ feeds_id: bytes
+ theme_name: bytes
+ action_uin: int
+ create_uin: int
+ def __init__(self,
+ *,
+ state: Optional[int] = ...,
+ feeds_id: Optional[bytes] = ...,
+ theme_name: Optional[bytes] = ...,
+ action_uin: Optional[int] = ...,
+ create_uin: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["action_uin",b"action_uin","create_uin",b"create_uin","feeds_id",b"feeds_id","state",b"state","theme_name",b"theme_name"]) -> bool: ...
+ def ClearField(self, field_name: Literal["action_uin",b"action_uin","create_uin",b"create_uin","feeds_id",b"feeds_id","state",b"state","theme_name",b"theme_name"]) -> None: ...
+
+class TroopFormGrayTipsInfo(Message):
+ DESCRIPTOR: Descriptor
+ WRITER_UIN_FIELD_NUMBER: int
+ CREATOR_UIN_FIELD_NUMBER: int
+ RICH_CONTENT_FIELD_NUMBER: int
+ OPT_BYTES_URL_FIELD_NUMBER: int
+ CREATOR_NICK_FIELD_NUMBER: int
+ writer_uin: int
+ creator_uin: int
+ rich_content: bytes
+ opt_bytes_url: bytes
+ creator_nick: bytes
+ def __init__(self,
+ *,
+ writer_uin: Optional[int] = ...,
+ creator_uin: Optional[int] = ...,
+ rich_content: Optional[bytes] = ...,
+ opt_bytes_url: Optional[bytes] = ...,
+ creator_nick: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["creator_nick",b"creator_nick","creator_uin",b"creator_uin","opt_bytes_url",b"opt_bytes_url","rich_content",b"rich_content","writer_uin",b"writer_uin"]) -> bool: ...
+ def ClearField(self, field_name: Literal["creator_nick",b"creator_nick","creator_uin",b"creator_uin","opt_bytes_url",b"opt_bytes_url","rich_content",b"rich_content","writer_uin",b"writer_uin"]) -> None: ...
+
+class VideoChangePushInfo(Message):
+ DESCRIPTOR: Descriptor
+ SEQ_FIELD_NUMBER: int
+ ACTION_TYPE_FIELD_NUMBER: int
+ GROUP_ID_FIELD_NUMBER: int
+ OPER_UIN_FIELD_NUMBER: int
+ GRAY_TIPS_FIELD_NUMBER: int
+ JOIN_NUMS_FIELD_NUMBER: int
+ JOIN_STATE_FIELD_NUMBER: int
+ EXT_INFO_FIELD_NUMBER: int
+ seq: int
+ action_type: int
+ group_id: int
+ oper_uin: int
+ gray_tips: bytes
+ join_nums: int
+ join_state: int
+ ext_info: bytes
+ def __init__(self,
+ *,
+ seq: Optional[int] = ...,
+ action_type: Optional[int] = ...,
+ group_id: Optional[int] = ...,
+ oper_uin: Optional[int] = ...,
+ gray_tips: Optional[bytes] = ...,
+ join_nums: Optional[int] = ...,
+ join_state: Optional[int] = ...,
+ ext_info: Optional[bytes] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["action_type",b"action_type","ext_info",b"ext_info","gray_tips",b"gray_tips","group_id",b"group_id","join_nums",b"join_nums","join_state",b"join_state","oper_uin",b"oper_uin","seq",b"seq"]) -> bool: ...
+ def ClearField(self, field_name: Literal["action_type",b"action_type","ext_info",b"ext_info","gray_tips",b"gray_tips","group_id",b"group_id","join_nums",b"join_nums","join_state",b"join_state","oper_uin",b"oper_uin","seq",b"seq"]) -> None: ...
+
+class WereWolfPush(Message):
+ DESCRIPTOR: Descriptor
+ class GameRecord(Message):
+ DESCRIPTOR: Descriptor
+ TOTAL_FIELD_NUMBER: int
+ WIN_FIELD_NUMBER: int
+ LOSE_FIELD_NUMBER: int
+ DRAW_FIELD_NUMBER: int
+ total: int
+ win: int
+ lose: int
+ draw: int
+ def __init__(self,
+ *,
+ total: Optional[int] = ...,
+ win: Optional[int] = ...,
+ lose: Optional[int] = ...,
+ draw: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["draw",b"draw","lose",b"lose","total",b"total","win",b"win"]) -> bool: ...
+ def ClearField(self, field_name: Literal["draw",b"draw","lose",b"lose","total",b"total","win",b"win"]) -> None: ...
+
+ class Role(Message):
+ DESCRIPTOR: Descriptor
+ UIN_FIELD_NUMBER: int
+ ENUM_TYPE_FIELD_NUMBER: int
+ ENUM_STATE_FIELD_NUMBER: int
+ CAN_SPEAK_FIELD_NUMBER: int
+ CAN_LISTEN_FIELD_NUMBER: int
+ POSITION_FIELD_NUMBER: int
+ CAN_VOTE_FIELD_NUMBER: int
+ CAN_VOTED_FIELD_NUMBER: int
+ ALREADY_CHECKED_FIELD_NUMBER: int
+ ALREADY_SAVED_FIELD_NUMBER: int
+ ALREADY_POISONED_FIELD_NUMBER: int
+ PLAYER_STATE_FIELD_NUMBER: int
+ ENUM_DEAD_OP_FIELD_NUMBER: int
+ ENUM_OPERATION_FIELD_NUMBER: int
+ DST_USER_FIELD_NUMBER: int
+ OPERATION_ROUND_FIELD_NUMBER: int
+ GAME_RECORD_FIELD_NUMBER: int
+ IS_WEREWOLF_FIELD_NUMBER: int
+ DEFENDED_USER_FIELD_NUMBER: int
+ IS_SHERIFF_FIELD_NUMBER: int
+ uin: int
+ enum_type: int
+ enum_state: int
+ can_speak: int
+ can_listen: int
+ position: int
+ can_vote: int
+ can_voted: int
+ already_checked: int
+ already_saved: int
+ already_poisoned: int
+ player_state: int
+ enum_dead_op: int
+ enum_operation: int
+ dst_user: int
+ operation_round: int
+ @property
+ def game_record(self) -> WereWolfPush.GameRecord: ...
+ is_werewolf: int
+ defended_user: int
+ is_sheriff: int
+ def __init__(self,
+ *,
+ uin: Optional[int] = ...,
+ enum_type: Optional[int] = ...,
+ enum_state: Optional[int] = ...,
+ can_speak: Optional[int] = ...,
+ can_listen: Optional[int] = ...,
+ position: Optional[int] = ...,
+ can_vote: Optional[int] = ...,
+ can_voted: Optional[int] = ...,
+ already_checked: Optional[int] = ...,
+ already_saved: Optional[int] = ...,
+ already_poisoned: Optional[int] = ...,
+ player_state: Optional[int] = ...,
+ enum_dead_op: Optional[int] = ...,
+ enum_operation: Optional[int] = ...,
+ dst_user: Optional[int] = ...,
+ operation_round: Optional[int] = ...,
+ game_record: Optional[WereWolfPush.GameRecord] = ...,
+ is_werewolf: Optional[int] = ...,
+ defended_user: Optional[int] = ...,
+ is_sheriff: Optional[int] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["already_checked",b"already_checked","already_poisoned",b"already_poisoned","already_saved",b"already_saved","can_listen",b"can_listen","can_speak",b"can_speak","can_vote",b"can_vote","can_voted",b"can_voted","defended_user",b"defended_user","dst_user",b"dst_user","enum_dead_op",b"enum_dead_op","enum_operation",b"enum_operation","enum_state",b"enum_state","enum_type",b"enum_type","game_record",b"game_record","is_sheriff",b"is_sheriff","is_werewolf",b"is_werewolf","operation_round",b"operation_round","player_state",b"player_state","position",b"position","uin",b"uin"]) -> bool: ...
+ def ClearField(self, field_name: Literal["already_checked",b"already_checked","already_poisoned",b"already_poisoned","already_saved",b"already_saved","can_listen",b"can_listen","can_speak",b"can_speak","can_vote",b"can_vote","can_voted",b"can_voted","defended_user",b"defended_user","dst_user",b"dst_user","enum_dead_op",b"enum_dead_op","enum_operation",b"enum_operation","enum_state",b"enum_state","enum_type",b"enum_type","game_record",b"game_record","is_sheriff",b"is_sheriff","is_werewolf",b"is_werewolf","operation_round",b"operation_round","player_state",b"player_state","position",b"position","uin",b"uin"]) -> None: ...
+
+ PUSH_TYPE_FIELD_NUMBER: int
+ GAME_ROOM_FIELD_NUMBER: int
+ ENUM_GAME_STATE_FIELD_NUMBER: int
+ GAME_ROUND_FIELD_NUMBER: int
+ ROLES_FIELD_NUMBER: int
+ SPEAKER_FIELD_NUMBER: int
+ JUDGE_UIN_FIELD_NUMBER: int
+ JUDGE_WORDS_FIELD_NUMBER: int
+ ENUM_OPERATION_FIELD_NUMBER: int
+ SRC_USER_FIELD_NUMBER: int
+ DST_USER_FIELD_NUMBER: int
+ DEAD_USERS_FIELD_NUMBER: int
+ GAME_RESULT_FIELD_NUMBER: int
+ TIMEOUT_SEC_FIELD_NUMBER: int
+ KILL_CONFIRMED_FIELD_NUMBER: int
+ JUDGE_NICKNAME_FIELD_NUMBER: int
+ VOTED_TIE_USERS_FIELD_NUMBER: int
+ push_type: int
+ game_room: int
+ enum_game_state: int
+ game_round: int
+ @property
+ def roles(self) -> RepeatedCompositeFieldContainer[WereWolfPush.Role]: ...
+ speaker: int
+ judge_uin: int
+ judge_words: bytes
+ enum_operation: int
+ src_user: int
+ dst_user: int
+ @property
+ def dead_users(self) -> RepeatedScalarFieldContainer[int]: ...
+ game_result: int
+ timeout_sec: int
+ kill_confirmed: int
+ judge_nickname: bytes
+ @property
+ def voted_tie_users(self) -> RepeatedScalarFieldContainer[int]: ...
+ def __init__(self,
+ *,
+ push_type: Optional[int] = ...,
+ game_room: Optional[int] = ...,
+ enum_game_state: Optional[int] = ...,
+ game_round: Optional[int] = ...,
+ roles: Optional[Iterable[WereWolfPush.Role]] = ...,
+ speaker: Optional[int] = ...,
+ judge_uin: Optional[int] = ...,
+ judge_words: Optional[bytes] = ...,
+ enum_operation: Optional[int] = ...,
+ src_user: Optional[int] = ...,
+ dst_user: Optional[int] = ...,
+ dead_users: Optional[Iterable[int]] = ...,
+ game_result: Optional[int] = ...,
+ timeout_sec: Optional[int] = ...,
+ kill_confirmed: Optional[int] = ...,
+ judge_nickname: Optional[bytes] = ...,
+ voted_tie_users: Optional[Iterable[int]] = ...,
+ ) -> None: ...
+ def HasField(self, field_name: Literal["dst_user",b"dst_user","enum_game_state",b"enum_game_state","enum_operation",b"enum_operation","game_result",b"game_result","game_room",b"game_room","game_round",b"game_round","judge_nickname",b"judge_nickname","judge_uin",b"judge_uin","judge_words",b"judge_words","kill_confirmed",b"kill_confirmed","push_type",b"push_type","speaker",b"speaker","src_user",b"src_user","timeout_sec",b"timeout_sec"]) -> bool: ...
+ def ClearField(self, field_name: Literal["dead_users",b"dead_users","dst_user",b"dst_user","enum_game_state",b"enum_game_state","enum_operation",b"enum_operation","game_result",b"game_result","game_room",b"game_room","game_round",b"game_round","judge_nickname",b"judge_nickname","judge_uin",b"judge_uin","judge_words",b"judge_words","kill_confirmed",b"kill_confirmed","push_type",b"push_type","roles",b"roles","speaker",b"speaker","src_user",b"src_user","timeout_sec",b"timeout_sec","voted_tie_users",b"voted_tie_users"]) -> None: ...
diff --git a/cai/pb/im/oidb/group0x857/group0x857.proto b/cai/pb/im/oidb/group0x857/group0x857.proto
deleted file mode 100644
index 6989c805..00000000
--- a/cai/pb/im/oidb/group0x857/group0x857.proto
+++ /dev/null
@@ -1,83 +0,0 @@
-syntax = "proto3";
-
-option go_package = "github.com/Mrs4s/MiraiGo/client/pb/notify";
-
-message NotifyMsgBody {
- AIOGrayTipsInfo optMsgGrayTips = 5;
- RedGrayTipsInfo optMsgRedTips = 9;
- MessageRecallReminder optMsgRecall = 11;
- GeneralGrayTipInfo optGeneralGrayTip = 26;
- QQGroupDigestMsg qqGroupDigestMsg = 33;
- int32 serviceType = 13;
-}
-
-message AIOGrayTipsInfo{
- uint32 showLatest = 1;
- bytes content = 2;
- uint32 remind = 3;
- bytes brief = 4;
- uint64 receiverUin = 5;
- uint32 reliaoAdminOpt = 6;
-}
-
-message GeneralGrayTipInfo {
- uint64 busiType = 1;
- uint64 busiId = 2;
- uint32 ctrlFlag = 3;
- uint32 c2cType = 4;
- uint32 serviceType = 5;
- uint64 templId = 6;
- repeated TemplParam msgTemplParam = 7;
- string content = 8;
-}
-
-message TemplParam {
- string name = 1;
- string value = 2;
-}
-
-message MessageRecallReminder {
- int64 uin = 1;
- bytes nickname = 2;
- repeated RecalledMessageMeta recalledMsgList = 3;
- bytes reminderContent = 4;
- bytes userdef = 5;
- int32 groupType = 6;
- int32 opType = 7;
-}
-
-message RecalledMessageMeta {
- int32 seq = 1;
- int32 time = 2;
- int32 msgRandom = 3;
- int32 msgType = 4;
- int32 msgFlag = 5;
- int64 authorUin = 6;
-}
-
-message RedGrayTipsInfo {
- uint32 showLatest = 1;
- uint64 senderUin = 2;
- uint64 receiverUin = 3;
- string senderRichContent = 4;
- string receiverRichContent = 5;
- bytes authKey = 6;
- sint32 msgType = 7;
- uint32 luckyFlag = 8;
- uint32 hideFlag = 9;
- uint64 luckyUin = 12;
-}
-
-message QQGroupDigestMsg {
- uint64 groupCode = 1;
- uint32 seq = 2;
- uint32 random = 3;
- int32 opType = 4;
- uint64 sender = 5;
- uint64 digestOper = 6;
- uint32 opTime = 7;
- uint32 lastestMsgSeq = 8;
- bytes operNick = 9;
- bytes senderNick = 10;
- int32 extInfo = 11;
-}
diff --git a/cai/pb/im/oidb/group0x857/group0x857_pb2.py b/cai/pb/im/oidb/group0x857/group0x857_pb2.py
deleted file mode 100644
index 7bee7469..00000000
--- a/cai/pb/im/oidb/group0x857/group0x857_pb2.py
+++ /dev/null
@@ -1,105 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by the protocol buffer compiler. DO NOT EDIT!
-# source: cai/pb/im/oidb/group0x857/group0x857.proto
-"""Generated protocol buffer code."""
-from google.protobuf import descriptor as _descriptor
-from google.protobuf import descriptor_pool as _descriptor_pool
-from google.protobuf import message as _message
-from google.protobuf import reflection as _reflection
-from google.protobuf import symbol_database as _symbol_database
-# @@protoc_insertion_point(imports)
-
-_sym_db = _symbol_database.Default()
-
-
-
-
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n*cai/pb/im/oidb/group0x857/group0x857.proto\"\x82\x02\n\rNotifyMsgBody\x12(\n\x0eoptMsgGrayTips\x18\x05 \x01(\x0b\x32\x10.AIOGrayTipsInfo\x12\'\n\roptMsgRedTips\x18\t \x01(\x0b\x32\x10.RedGrayTipsInfo\x12,\n\x0coptMsgRecall\x18\x0b \x01(\x0b\x32\x16.MessageRecallReminder\x12.\n\x11optGeneralGrayTip\x18\x1a \x01(\x0b\x32\x13.GeneralGrayTipInfo\x12+\n\x10qqGroupDigestMsg\x18! \x01(\x0b\x32\x11.QQGroupDigestMsg\x12\x13\n\x0bserviceType\x18\r \x01(\x05\"\x82\x01\n\x0f\x41IOGrayTipsInfo\x12\x12\n\nshowLatest\x18\x01 \x01(\r\x12\x0f\n\x07\x63ontent\x18\x02 \x01(\x0c\x12\x0e\n\x06remind\x18\x03 \x01(\r\x12\r\n\x05\x62rief\x18\x04 \x01(\x0c\x12\x13\n\x0breceiverUin\x18\x05 \x01(\x04\x12\x16\n\x0ereliaoAdminOpt\x18\x06 \x01(\r\"\xb4\x01\n\x12GeneralGrayTipInfo\x12\x10\n\x08\x62usiType\x18\x01 \x01(\x04\x12\x0e\n\x06\x62usiId\x18\x02 \x01(\x04\x12\x10\n\x08\x63trlFlag\x18\x03 \x01(\r\x12\x0f\n\x07\x63\x32\x63Type\x18\x04 \x01(\r\x12\x13\n\x0bserviceType\x18\x05 \x01(\r\x12\x0f\n\x07templId\x18\x06 \x01(\x04\x12\"\n\rmsgTemplParam\x18\x07 \x03(\x0b\x32\x0b.TemplParam\x12\x0f\n\x07\x63ontent\x18\x08 \x01(\t\")\n\nTemplParam\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"\xb2\x01\n\x15MessageRecallReminder\x12\x0b\n\x03uin\x18\x01 \x01(\x03\x12\x10\n\x08nickname\x18\x02 \x01(\x0c\x12-\n\x0frecalledMsgList\x18\x03 \x03(\x0b\x32\x14.RecalledMessageMeta\x12\x17\n\x0freminderContent\x18\x04 \x01(\x0c\x12\x0f\n\x07userdef\x18\x05 \x01(\x0c\x12\x11\n\tgroupType\x18\x06 \x01(\x05\x12\x0e\n\x06opType\x18\x07 \x01(\x05\"x\n\x13RecalledMessageMeta\x12\x0b\n\x03seq\x18\x01 \x01(\x05\x12\x0c\n\x04time\x18\x02 \x01(\x05\x12\x11\n\tmsgRandom\x18\x03 \x01(\x05\x12\x0f\n\x07msgType\x18\x04 \x01(\x05\x12\x0f\n\x07msgFlag\x18\x05 \x01(\x05\x12\x11\n\tauthorUin\x18\x06 \x01(\x03\"\xde\x01\n\x0fRedGrayTipsInfo\x12\x12\n\nshowLatest\x18\x01 \x01(\r\x12\x11\n\tsenderUin\x18\x02 \x01(\x04\x12\x13\n\x0breceiverUin\x18\x03 \x01(\x04\x12\x19\n\x11senderRichContent\x18\x04 \x01(\t\x12\x1b\n\x13receiverRichContent\x18\x05 \x01(\t\x12\x0f\n\x07\x61uthKey\x18\x06 \x01(\x0c\x12\x0f\n\x07msgType\x18\x07 \x01(\x11\x12\x11\n\tluckyFlag\x18\x08 \x01(\r\x12\x10\n\x08hideFlag\x18\t \x01(\r\x12\x10\n\x08luckyUin\x18\x0c \x01(\x04\"\xd4\x01\n\x10QQGroupDigestMsg\x12\x11\n\tgroupCode\x18\x01 \x01(\x04\x12\x0b\n\x03seq\x18\x02 \x01(\r\x12\x0e\n\x06random\x18\x03 \x01(\r\x12\x0e\n\x06opType\x18\x04 \x01(\x05\x12\x0e\n\x06sender\x18\x05 \x01(\x04\x12\x12\n\ndigestOper\x18\x06 \x01(\x04\x12\x0e\n\x06opTime\x18\x07 \x01(\r\x12\x15\n\rlastestMsgSeq\x18\x08 \x01(\r\x12\x10\n\x08operNick\x18\t \x01(\x0c\x12\x12\n\nsenderNick\x18\n \x01(\x0c\x12\x0f\n\x07\x65xtInfo\x18\x0b \x01(\x05\x42+Z)github.com/Mrs4s/MiraiGo/client/pb/notifyb\x06proto3')
-
-
-
-_NOTIFYMSGBODY = DESCRIPTOR.message_types_by_name['NotifyMsgBody']
-_AIOGRAYTIPSINFO = DESCRIPTOR.message_types_by_name['AIOGrayTipsInfo']
-_GENERALGRAYTIPINFO = DESCRIPTOR.message_types_by_name['GeneralGrayTipInfo']
-_TEMPLPARAM = DESCRIPTOR.message_types_by_name['TemplParam']
-_MESSAGERECALLREMINDER = DESCRIPTOR.message_types_by_name['MessageRecallReminder']
-_RECALLEDMESSAGEMETA = DESCRIPTOR.message_types_by_name['RecalledMessageMeta']
-_REDGRAYTIPSINFO = DESCRIPTOR.message_types_by_name['RedGrayTipsInfo']
-_QQGROUPDIGESTMSG = DESCRIPTOR.message_types_by_name['QQGroupDigestMsg']
-NotifyMsgBody = _reflection.GeneratedProtocolMessageType('NotifyMsgBody', (_message.Message,), {
- 'DESCRIPTOR' : _NOTIFYMSGBODY,
- '__module__' : 'cai.pb.im.oidb.group0x857.group0x857_pb2'
- # @@protoc_insertion_point(class_scope:NotifyMsgBody)
- })
-_sym_db.RegisterMessage(NotifyMsgBody)
-
-AIOGrayTipsInfo = _reflection.GeneratedProtocolMessageType('AIOGrayTipsInfo', (_message.Message,), {
- 'DESCRIPTOR' : _AIOGRAYTIPSINFO,
- '__module__' : 'cai.pb.im.oidb.group0x857.group0x857_pb2'
- # @@protoc_insertion_point(class_scope:AIOGrayTipsInfo)
- })
-_sym_db.RegisterMessage(AIOGrayTipsInfo)
-
-GeneralGrayTipInfo = _reflection.GeneratedProtocolMessageType('GeneralGrayTipInfo', (_message.Message,), {
- 'DESCRIPTOR' : _GENERALGRAYTIPINFO,
- '__module__' : 'cai.pb.im.oidb.group0x857.group0x857_pb2'
- # @@protoc_insertion_point(class_scope:GeneralGrayTipInfo)
- })
-_sym_db.RegisterMessage(GeneralGrayTipInfo)
-
-TemplParam = _reflection.GeneratedProtocolMessageType('TemplParam', (_message.Message,), {
- 'DESCRIPTOR' : _TEMPLPARAM,
- '__module__' : 'cai.pb.im.oidb.group0x857.group0x857_pb2'
- # @@protoc_insertion_point(class_scope:TemplParam)
- })
-_sym_db.RegisterMessage(TemplParam)
-
-MessageRecallReminder = _reflection.GeneratedProtocolMessageType('MessageRecallReminder', (_message.Message,), {
- 'DESCRIPTOR' : _MESSAGERECALLREMINDER,
- '__module__' : 'cai.pb.im.oidb.group0x857.group0x857_pb2'
- # @@protoc_insertion_point(class_scope:MessageRecallReminder)
- })
-_sym_db.RegisterMessage(MessageRecallReminder)
-
-RecalledMessageMeta = _reflection.GeneratedProtocolMessageType('RecalledMessageMeta', (_message.Message,), {
- 'DESCRIPTOR' : _RECALLEDMESSAGEMETA,
- '__module__' : 'cai.pb.im.oidb.group0x857.group0x857_pb2'
- # @@protoc_insertion_point(class_scope:RecalledMessageMeta)
- })
-_sym_db.RegisterMessage(RecalledMessageMeta)
-
-RedGrayTipsInfo = _reflection.GeneratedProtocolMessageType('RedGrayTipsInfo', (_message.Message,), {
- 'DESCRIPTOR' : _REDGRAYTIPSINFO,
- '__module__' : 'cai.pb.im.oidb.group0x857.group0x857_pb2'
- # @@protoc_insertion_point(class_scope:RedGrayTipsInfo)
- })
-_sym_db.RegisterMessage(RedGrayTipsInfo)
-
-QQGroupDigestMsg = _reflection.GeneratedProtocolMessageType('QQGroupDigestMsg', (_message.Message,), {
- 'DESCRIPTOR' : _QQGROUPDIGESTMSG,
- '__module__' : 'cai.pb.im.oidb.group0x857.group0x857_pb2'
- # @@protoc_insertion_point(class_scope:QQGroupDigestMsg)
- })
-_sym_db.RegisterMessage(QQGroupDigestMsg)
-
-if _descriptor._USE_C_DESCRIPTORS == False:
-
- DESCRIPTOR._options = None
- DESCRIPTOR._serialized_options = b'Z)github.com/Mrs4s/MiraiGo/client/pb/notify'
- _NOTIFYMSGBODY._serialized_start=47
- _NOTIFYMSGBODY._serialized_end=305
- _AIOGRAYTIPSINFO._serialized_start=308
- _AIOGRAYTIPSINFO._serialized_end=438
- _GENERALGRAYTIPINFO._serialized_start=441
- _GENERALGRAYTIPINFO._serialized_end=621
- _TEMPLPARAM._serialized_start=623
- _TEMPLPARAM._serialized_end=664
- _MESSAGERECALLREMINDER._serialized_start=667
- _MESSAGERECALLREMINDER._serialized_end=845
- _RECALLEDMESSAGEMETA._serialized_start=847
- _RECALLEDMESSAGEMETA._serialized_end=967
- _REDGRAYTIPSINFO._serialized_start=970
- _REDGRAYTIPSINFO._serialized_end=1192
- _QQGROUPDIGESTMSG._serialized_start=1195
- _QQGROUPDIGESTMSG._serialized_end=1407
-# @@protoc_insertion_point(module_scope)
diff --git a/cai/pb/im/oidb/group0x857/group0x857_pb2.pyi b/cai/pb/im/oidb/group0x857/group0x857_pb2.pyi
deleted file mode 100644
index 7fa6257b..00000000
--- a/cai/pb/im/oidb/group0x857/group0x857_pb2.pyi
+++ /dev/null
@@ -1,267 +0,0 @@
-"""
-@generated by mypy-protobuf. Do not edit manually!
-isort:skip_file
-"""
-from builtins import (
- bool,
- bytes,
- int,
-)
-
-from google.protobuf.descriptor import (
- Descriptor,
- FileDescriptor,
-)
-
-from google.protobuf.internal.containers import (
- RepeatedCompositeFieldContainer,
-)
-
-from google.protobuf.message import (
- Message,
-)
-
-from typing import (
- Iterable,
- Optional,
- Text,
-)
-
-from typing_extensions import (
- Literal,
-)
-
-
-DESCRIPTOR: FileDescriptor
-
-class NotifyMsgBody(Message):
- DESCRIPTOR: Descriptor
- OPTMSGGRAYTIPS_FIELD_NUMBER: int
- OPTMSGREDTIPS_FIELD_NUMBER: int
- OPTMSGRECALL_FIELD_NUMBER: int
- OPTGENERALGRAYTIP_FIELD_NUMBER: int
- QQGROUPDIGESTMSG_FIELD_NUMBER: int
- SERVICETYPE_FIELD_NUMBER: int
- @property
- def optMsgGrayTips(self) -> AIOGrayTipsInfo: ...
- @property
- def optMsgRedTips(self) -> RedGrayTipsInfo: ...
- @property
- def optMsgRecall(self) -> MessageRecallReminder: ...
- @property
- def optGeneralGrayTip(self) -> GeneralGrayTipInfo: ...
- @property
- def qqGroupDigestMsg(self) -> QQGroupDigestMsg: ...
- serviceType: int
- def __init__(self,
- *,
- optMsgGrayTips: Optional[AIOGrayTipsInfo] = ...,
- optMsgRedTips: Optional[RedGrayTipsInfo] = ...,
- optMsgRecall: Optional[MessageRecallReminder] = ...,
- optGeneralGrayTip: Optional[GeneralGrayTipInfo] = ...,
- qqGroupDigestMsg: Optional[QQGroupDigestMsg] = ...,
- serviceType: int = ...,
- ) -> None: ...
- def HasField(self, field_name: Literal["optGeneralGrayTip",b"optGeneralGrayTip","optMsgGrayTips",b"optMsgGrayTips","optMsgRecall",b"optMsgRecall","optMsgRedTips",b"optMsgRedTips","qqGroupDigestMsg",b"qqGroupDigestMsg"]) -> bool: ...
- def ClearField(self, field_name: Literal["optGeneralGrayTip",b"optGeneralGrayTip","optMsgGrayTips",b"optMsgGrayTips","optMsgRecall",b"optMsgRecall","optMsgRedTips",b"optMsgRedTips","qqGroupDigestMsg",b"qqGroupDigestMsg","serviceType",b"serviceType"]) -> None: ...
-
-class AIOGrayTipsInfo(Message):
- DESCRIPTOR: Descriptor
- SHOWLATEST_FIELD_NUMBER: int
- CONTENT_FIELD_NUMBER: int
- REMIND_FIELD_NUMBER: int
- BRIEF_FIELD_NUMBER: int
- RECEIVERUIN_FIELD_NUMBER: int
- RELIAOADMINOPT_FIELD_NUMBER: int
- showLatest: int
- content: bytes
- remind: int
- brief: bytes
- receiverUin: int
- reliaoAdminOpt: int
- def __init__(self,
- *,
- showLatest: int = ...,
- content: bytes = ...,
- remind: int = ...,
- brief: bytes = ...,
- receiverUin: int = ...,
- reliaoAdminOpt: int = ...,
- ) -> None: ...
- def ClearField(self, field_name: Literal["brief",b"brief","content",b"content","receiverUin",b"receiverUin","reliaoAdminOpt",b"reliaoAdminOpt","remind",b"remind","showLatest",b"showLatest"]) -> None: ...
-
-class GeneralGrayTipInfo(Message):
- DESCRIPTOR: Descriptor
- BUSITYPE_FIELD_NUMBER: int
- BUSIID_FIELD_NUMBER: int
- CTRLFLAG_FIELD_NUMBER: int
- C2CTYPE_FIELD_NUMBER: int
- SERVICETYPE_FIELD_NUMBER: int
- TEMPLID_FIELD_NUMBER: int
- MSGTEMPLPARAM_FIELD_NUMBER: int
- CONTENT_FIELD_NUMBER: int
- busiType: int
- busiId: int
- ctrlFlag: int
- c2cType: int
- serviceType: int
- templId: int
- @property
- def msgTemplParam(self) -> RepeatedCompositeFieldContainer[TemplParam]: ...
- content: Text
- def __init__(self,
- *,
- busiType: int = ...,
- busiId: int = ...,
- ctrlFlag: int = ...,
- c2cType: int = ...,
- serviceType: int = ...,
- templId: int = ...,
- msgTemplParam: Optional[Iterable[TemplParam]] = ...,
- content: Text = ...,
- ) -> None: ...
- def ClearField(self, field_name: Literal["busiId",b"busiId","busiType",b"busiType","c2cType",b"c2cType","content",b"content","ctrlFlag",b"ctrlFlag","msgTemplParam",b"msgTemplParam","serviceType",b"serviceType","templId",b"templId"]) -> None: ...
-
-class TemplParam(Message):
- DESCRIPTOR: Descriptor
- NAME_FIELD_NUMBER: int
- VALUE_FIELD_NUMBER: int
- name: Text
- value: Text
- def __init__(self,
- *,
- name: Text = ...,
- value: Text = ...,
- ) -> None: ...
- def ClearField(self, field_name: Literal["name",b"name","value",b"value"]) -> None: ...
-
-class MessageRecallReminder(Message):
- DESCRIPTOR: Descriptor
- UIN_FIELD_NUMBER: int
- NICKNAME_FIELD_NUMBER: int
- RECALLEDMSGLIST_FIELD_NUMBER: int
- REMINDERCONTENT_FIELD_NUMBER: int
- USERDEF_FIELD_NUMBER: int
- GROUPTYPE_FIELD_NUMBER: int
- OPTYPE_FIELD_NUMBER: int
- uin: int
- nickname: bytes
- @property
- def recalledMsgList(self) -> RepeatedCompositeFieldContainer[RecalledMessageMeta]: ...
- reminderContent: bytes
- userdef: bytes
- groupType: int
- opType: int
- def __init__(self,
- *,
- uin: int = ...,
- nickname: bytes = ...,
- recalledMsgList: Optional[Iterable[RecalledMessageMeta]] = ...,
- reminderContent: bytes = ...,
- userdef: bytes = ...,
- groupType: int = ...,
- opType: int = ...,
- ) -> None: ...
- def ClearField(self, field_name: Literal["groupType",b"groupType","nickname",b"nickname","opType",b"opType","recalledMsgList",b"recalledMsgList","reminderContent",b"reminderContent","uin",b"uin","userdef",b"userdef"]) -> None: ...
-
-class RecalledMessageMeta(Message):
- DESCRIPTOR: Descriptor
- SEQ_FIELD_NUMBER: int
- TIME_FIELD_NUMBER: int
- MSGRANDOM_FIELD_NUMBER: int
- MSGTYPE_FIELD_NUMBER: int
- MSGFLAG_FIELD_NUMBER: int
- AUTHORUIN_FIELD_NUMBER: int
- seq: int
- time: int
- msgRandom: int
- msgType: int
- msgFlag: int
- authorUin: int
- def __init__(self,
- *,
- seq: int = ...,
- time: int = ...,
- msgRandom: int = ...,
- msgType: int = ...,
- msgFlag: int = ...,
- authorUin: int = ...,
- ) -> None: ...
- def ClearField(self, field_name: Literal["authorUin",b"authorUin","msgFlag",b"msgFlag","msgRandom",b"msgRandom","msgType",b"msgType","seq",b"seq","time",b"time"]) -> None: ...
-
-class RedGrayTipsInfo(Message):
- DESCRIPTOR: Descriptor
- SHOWLATEST_FIELD_NUMBER: int
- SENDERUIN_FIELD_NUMBER: int
- RECEIVERUIN_FIELD_NUMBER: int
- SENDERRICHCONTENT_FIELD_NUMBER: int
- RECEIVERRICHCONTENT_FIELD_NUMBER: int
- AUTHKEY_FIELD_NUMBER: int
- MSGTYPE_FIELD_NUMBER: int
- LUCKYFLAG_FIELD_NUMBER: int
- HIDEFLAG_FIELD_NUMBER: int
- LUCKYUIN_FIELD_NUMBER: int
- showLatest: int
- senderUin: int
- receiverUin: int
- senderRichContent: Text
- receiverRichContent: Text
- authKey: bytes
- msgType: int
- luckyFlag: int
- hideFlag: int
- luckyUin: int
- def __init__(self,
- *,
- showLatest: int = ...,
- senderUin: int = ...,
- receiverUin: int = ...,
- senderRichContent: Text = ...,
- receiverRichContent: Text = ...,
- authKey: bytes = ...,
- msgType: int = ...,
- luckyFlag: int = ...,
- hideFlag: int = ...,
- luckyUin: int = ...,
- ) -> None: ...
- def ClearField(self, field_name: Literal["authKey",b"authKey","hideFlag",b"hideFlag","luckyFlag",b"luckyFlag","luckyUin",b"luckyUin","msgType",b"msgType","receiverRichContent",b"receiverRichContent","receiverUin",b"receiverUin","senderRichContent",b"senderRichContent","senderUin",b"senderUin","showLatest",b"showLatest"]) -> None: ...
-
-class QQGroupDigestMsg(Message):
- DESCRIPTOR: Descriptor
- GROUPCODE_FIELD_NUMBER: int
- SEQ_FIELD_NUMBER: int
- RANDOM_FIELD_NUMBER: int
- OPTYPE_FIELD_NUMBER: int
- SENDER_FIELD_NUMBER: int
- DIGESTOPER_FIELD_NUMBER: int
- OPTIME_FIELD_NUMBER: int
- LASTESTMSGSEQ_FIELD_NUMBER: int
- OPERNICK_FIELD_NUMBER: int
- SENDERNICK_FIELD_NUMBER: int
- EXTINFO_FIELD_NUMBER: int
- groupCode: int
- seq: int
- random: int
- opType: int
- sender: int
- digestOper: int
- opTime: int
- lastestMsgSeq: int
- operNick: bytes
- senderNick: bytes
- extInfo: int
- def __init__(self,
- *,
- groupCode: int = ...,
- seq: int = ...,
- random: int = ...,
- opType: int = ...,
- sender: int = ...,
- digestOper: int = ...,
- opTime: int = ...,
- lastestMsgSeq: int = ...,
- operNick: bytes = ...,
- senderNick: bytes = ...,
- extInfo: int = ...,
- ) -> None: ...
- def ClearField(self, field_name: Literal["digestOper",b"digestOper","extInfo",b"extInfo","groupCode",b"groupCode","lastestMsgSeq",b"lastestMsgSeq","opTime",b"opTime","opType",b"opType","operNick",b"operNick","random",b"random","sender",b"sender","senderNick",b"senderNick","seq",b"seq"]) -> None: ...
From 7d7677a1b06b233f47925d7acc8a05c76b5c9b7f Mon Sep 17 00:00:00 2001
From: a1025
Date: Sat, 9 Apr 2022 01:26:29 +0800
Subject: [PATCH 072/113] add: reconnect fallback
---
cai/client/client.py | 8 +++++++-
examples/friend_group.py | 3 ++-
2 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/cai/client/client.py b/cai/client/client.py
index e8d904f5..4813db7c 100644
--- a/cai/client/client.py
+++ b/cai/client/client.py
@@ -388,7 +388,13 @@ async def reconnect_and_login(
) -> None:
await self.reconnect(change_server=change_server, server=server)
# FIXME: register reason msfByNetChange?
- await self._init(drop_offline_msg=False)
+ try:
+ await self._init(drop_offline_msg=False)
+ except asyncio.exceptions.TimeoutError: # fallback
+ log.network.warning("register failed, trying to re-login")
+ await self.disconnect()
+ await self.connect()
+ await self.login()
async def close(self) -> None:
"""Close the client and logout."""
diff --git a/examples/friend_group.py b/examples/friend_group.py
index 7a660ade..d2e56f12 100644
--- a/examples/friend_group.py
+++ b/examples/friend_group.py
@@ -11,7 +11,7 @@
import asyncio
from hashlib import md5
-import cai
+from cai.api.client import Client
async def run():
@@ -26,6 +26,7 @@ async def run():
)
return
+ client = Client()
client = await cai.login(account, md5(password.encode()).digest())
# friend
From 73912cef0ffd208c9e0cc450ba75aa3dfe93c23e Mon Sep 17 00:00:00 2001
From: a1025
Date: Sat, 9 Apr 2022 02:04:55 +0800
Subject: [PATCH 073/113] f**k u, tencent
---
cai/client/online_push/__init__.py | 79 ++++++++++++++----------------
cai/client/online_push/jce.py | 28 +++++++++++
cai/pb/im/op/__init__.py | 0
cai/pb/im/op/online_push.proto | 8 +++
cai/pb/im/op/online_push_pb2.py | 34 +++++++++++++
cai/pb/im/op/online_push_pb2.pyi | 46 +++++++++++++++++
6 files changed, 153 insertions(+), 42 deletions(-)
create mode 100644 cai/pb/im/op/__init__.py
create mode 100644 cai/pb/im/op/online_push.proto
create mode 100644 cai/pb/im/op/online_push_pb2.py
create mode 100644 cai/pb/im/op/online_push_pb2.pyi
diff --git a/cai/client/online_push/__init__.py b/cai/client/online_push/__init__.py
index bccd6f84..b2914fc1 100644
--- a/cai/client/online_push/__init__.py
+++ b/cai/client/online_push/__init__.py
@@ -19,8 +19,9 @@
from cai.client.packet import UniPacket, IncomingPacket
from cai.utils.jce import RequestPacket, RequestPacketVersion3
from cai.pb.im.oidb.cmd0x857.troop_tips import TemplParam, NotifyMsgBody
+from cai.pb.im.op.online_push_pb2 import DelMsgCookies
-from .jce import DelMsgInfo, DeviceInfo, SvcRespPushMsg
+from .jce import DelMsgInfo, DeviceInfo, SvcRespPushMsg, SvcReqPushMsg
from .command import PushMsg, PushMsgError, PushMsgCommand
if TYPE_CHECKING:
@@ -38,6 +39,7 @@ def encode_push_response(
push_token: Optional[bytes] = None,
service_type: int = 0,
device_info: Optional[DeviceInfo] = None,
+ req_id: int = 0
) -> Packet:
"""Build online push response packet.
@@ -74,6 +76,7 @@ def encode_push_response(
)
payload = SvcRespPushMsg.to_bytes(0, resp)
req_packet = RequestPacketVersion3(
+ req_id=req_id,
servant_name="OnlinePush",
func_name="SvcRespPushMsg",
data=types.MAP({types.STRING("resp"): types.BYTES(payload)}),
@@ -225,42 +228,21 @@ def _parse_poke(params: Sequence[TemplParam]) -> dict:
return res
-# OnlinePush.SvcRespPushMsg
-# def encode_resp_push_pkg(
-# uin: int, svrip: int, seq: int, items: Sequence[DelMsgInfo]
-# ) -> bytes:
-# pkg = SvcRespPushMsg(
-# uin=uin, del_infos=items, svrip=svrip & 0xFFFFFFFF, service_type=0
-# )
-# return RequestPacketVersion3(
-# servant_name="OnlinePush",
-# func_name="SvcRespPushMsg",
-# req_id=seq,
-# data=types.MAP(
-# {
-# types.STRING("SvcRespPushMsg"): types.BYTES(
-# SvcRespPushMsg.to_bytes(0, pkg)
-# )
-# }
-# ),
-# ).encode()
-
-
# OnlinePush.ReqPush
async def handle_req_push(
client: "Client", packet: IncomingPacket
) -> PushMsgCommand:
- body = JceDecoder.decode_bytes(
- JceDecoder.decode_single( # type: ignore
- RequestPacket.decode(packet.data).buffer
- )[1]["req"]["OnlinePushPack.SvcReqPushMsg"]
- )[0]
+ req_pkg = RequestPacket.decode(packet.data)
+
+ body = SvcReqPushMsg.decode(
+ JceDecoder.decode_single(req_pkg.buffer)[1]["req"]["OnlinePushPack.SvcReqPushMsg"] # type: ignore
+ ).body
_uin, stime, push_type, content = (
- body[0],
- body[1],
- body[2][0][2],
- body[2][0][6],
+ body.uin,
+ body.msg_time,
+ body.msg_info[0].msg_type,
+ body.msg_info[0].msg,
)
if push_type == 732: # group
@@ -304,19 +286,32 @@ async def handle_req_push(
pass
# TODO: parse friend event
- await client.send_and_wait( # resp ack
- seq=client.next_seq(),
- command_name="OnlinePush.RespPush",
- packet=encode_push_response(
- body[1],
- client._session_id,
- _uin,
- client._siginfo.d2key,
- body[3] & 0xFFFFFFFF,
- [DelMsgInfo(from_uin=_uin, msg_seq=body[1], msg_time=stime)],
- ),
+ seq = client.next_seq()
+ pkg = encode_push_response(
+ seq,
+ client._session_id,
+ _uin,
+ client._siginfo.d2key,
+ body.svrip,
+ [
+ DelMsgInfo(
+ from_uin=info.from_uin,
+ msg_seq=info.msg_seq,
+ msg_time=info.msg_time,
+ msg_cookies=DelMsgCookies(
+ msg_type=info.msg_type,
+ msg_uid=info.msg_uid,
+ type=3,
+ xid=50015
+ ).SerializeToString()
+ ) for info in body.msg_info
+ ],
+ req_id=req_pkg.req_id
)
+ # FIXME: useless
+ await client.send(seq, "OnlinePush.RespPush", pkg)
+
return PushMsgCommand(
packet.uin, packet.seq, packet.ret_code, packet.command_name
)
diff --git a/cai/client/online_push/jce.py b/cai/client/online_push/jce.py
index 4cc8d5d5..7bfa6db5 100644
--- a/cai/client/online_push/jce.py
+++ b/cai/client/online_push/jce.py
@@ -49,6 +49,22 @@ class DeviceInfo(JceStruct):
ios_idfa: types.STRING = JceField("", jce_id=5)
+class MsgInfo(JceStruct):
+ from_uin: types.INT64 = JceField(jce_id=0)
+ msg_time: types.INT64 = JceField(jce_id=1)
+ msg_type: types.INT8 = JceField(jce_id=2)
+ msg_seq: types.INT8 = JceField(jce_id=3)
+ str_msg: types.STRING = JceField("", jce_id=4)
+ real_msg_time: types.INT32 = JceField(0, jce_id=5)
+ msg: types.BYTES = JceField(jce_id=6)
+ share_id: types.INT64 = JceField(0, jce_id=7)
+ msg_cookie: types.BYTES = JceField(bytes(), jce_id=8)
+ app_share_cookie: types.BYTES = JceField(bytes(), jce_id=9)
+ msg_uid: types.INT64 = JceField(0, jce_id=10)
+ last_change_time: types.INT64 = JceField(0, jce_id=11)
+ # TODO: missed
+
+
class SvcRespPushMsg(JceStruct):
"""OnlinePush Service Push Response Packet.
@@ -62,3 +78,15 @@ class SvcRespPushMsg(JceStruct):
push_token: Optional[types.BYTES] = JceField(None, jce_id=3)
service_type: types.INT32 = JceField(0, jce_id=4)
device_info: Optional[DeviceInfo] = JceField(None, jce_id=5)
+
+
+class _SvcReqPushMsg(JceStruct):
+ uin: types.INT64 = JceField(jce_id=0)
+ msg_time: types.INT64 = JceField(jce_id=1)
+ msg_info: types.LIST[MsgInfo] = JceField(jce_id=2)
+ svrip: types.INT32 = JceField(0, jce_id=3)
+ sync_cookie: types.BYTES = JceField(bytes(), jce_id=4)
+
+
+class SvcReqPushMsg(JceStruct):
+ body: _SvcReqPushMsg = JceField(jce_id=0)
diff --git a/cai/pb/im/op/__init__.py b/cai/pb/im/op/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/cai/pb/im/op/online_push.proto b/cai/pb/im/op/online_push.proto
new file mode 100644
index 00000000..313545db
--- /dev/null
+++ b/cai/pb/im/op/online_push.proto
@@ -0,0 +1,8 @@
+syntax = "proto3";
+
+message DelMsgCookies {
+ int32 msg_type = 1;
+ int64 msg_uid = 2;
+ int32 type = 3; // idk, value is 3
+ int32 xid = 4; // idk, value is 50015
+}
diff --git a/cai/pb/im/op/online_push_pb2.py b/cai/pb/im/op/online_push_pb2.py
new file mode 100644
index 00000000..b744b0d8
--- /dev/null
+++ b/cai/pb/im/op/online_push_pb2.py
@@ -0,0 +1,34 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: online_push.proto
+"""Generated protocol buffer code."""
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import message as _message
+from google.protobuf import reflection as _reflection
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x11online_push.proto\"M\n\rDelMsgCookies\x12\x10\n\x08msg_type\x18\x01 \x01(\x05\x12\x0f\n\x07msg_uid\x18\x02 \x01(\x03\x12\x0c\n\x04type\x18\x03 \x01(\x05\x12\x0b\n\x03xid\x18\x04 \x01(\x05\x62\x06proto3')
+
+
+
+_DELMSGCOOKIES = DESCRIPTOR.message_types_by_name['DelMsgCookies']
+DelMsgCookies = _reflection.GeneratedProtocolMessageType('DelMsgCookies', (_message.Message,), {
+ 'DESCRIPTOR' : _DELMSGCOOKIES,
+ '__module__' : 'online_push_pb2'
+ # @@protoc_insertion_point(class_scope:DelMsgCookies)
+ })
+_sym_db.RegisterMessage(DelMsgCookies)
+
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ _DELMSGCOOKIES._serialized_start=21
+ _DELMSGCOOKIES._serialized_end=98
+# @@protoc_insertion_point(module_scope)
diff --git a/cai/pb/im/op/online_push_pb2.pyi b/cai/pb/im/op/online_push_pb2.pyi
new file mode 100644
index 00000000..6e54e27e
--- /dev/null
+++ b/cai/pb/im/op/online_push_pb2.pyi
@@ -0,0 +1,46 @@
+"""
+@generated by mypy-protobuf. Do not edit manually!
+isort:skip_file
+"""
+from builtins import (
+ int,
+)
+
+from google.protobuf.descriptor import (
+ Descriptor,
+ FileDescriptor,
+)
+
+from google.protobuf.message import (
+ Message,
+)
+
+from typing_extensions import (
+ Literal,
+)
+
+
+DESCRIPTOR: FileDescriptor
+
+class DelMsgCookies(Message):
+ DESCRIPTOR: Descriptor
+ MSG_TYPE_FIELD_NUMBER: int
+ MSG_UID_FIELD_NUMBER: int
+ TYPE_FIELD_NUMBER: int
+ XID_FIELD_NUMBER: int
+ msg_type: int
+ msg_uid: int
+ type: int
+ """idk, value is 3"""
+
+ xid: int
+ """idk, value is 50015"""
+
+ def __init__(self,
+ *,
+ msg_type: int = ...,
+ msg_uid: int = ...,
+ type: int = ...,
+ xid: int = ...,
+ ) -> None: ...
+ def ClearField(self, field_name: Literal["msg_type",b"msg_type","msg_uid",b"msg_uid","type",b"type","xid",b"xid"]) -> None: ...
From 7415cf1ead9018e940495bb404d954ff159c7d8a Mon Sep 17 00:00:00 2001
From: a1025
Date: Sat, 9 Apr 2022 02:14:33 +0800
Subject: [PATCH 074/113] update: close client when force_offline triggered
---
cai/client/client.py | 5 ++---
cai/client/message_service/__init__.py | 1 +
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/cai/client/client.py b/cai/client/client.py
index 4813db7c..f6abb4b7 100644
--- a/cai/client/client.py
+++ b/cai/client/client.py
@@ -347,7 +347,7 @@ def _recv_done_cb(self, task: asyncio.Task):
asyncio.create_task(self.reconnect_and_login())
else:
log.network.warning("receiver stopped")
- asyncio.create_task(self.disconnect())
+ asyncio.create_task(self.close())
async def disconnect(self) -> None:
"""Disconnect if already connected to the server."""
@@ -392,8 +392,7 @@ async def reconnect_and_login(
await self._init(drop_offline_msg=False)
except asyncio.exceptions.TimeoutError: # fallback
log.network.warning("register failed, trying to re-login")
- await self.disconnect()
- await self.connect()
+ await self.reconnect()
await self.login()
async def close(self) -> None:
diff --git a/cai/client/message_service/__init__.py b/cai/client/message_service/__init__.py
index 515d4cf6..46deac95 100644
--- a/cai/client/message_service/__init__.py
+++ b/cai/client/message_service/__init__.py
@@ -307,6 +307,7 @@ async def handle_force_offline(
client: "Client", packet: IncomingPacket
) -> PushForceOfflineCommand:
client._status = OnlineStatus.Offline
+ client._reconnect = False
await client.disconnect()
request = PushForceOfflineCommand.decode_response(
packet.uin,
From 79ac21dfb9b82fc16ae1e66779584de38cc1e94c Mon Sep 17 00:00:00 2001
From: a1025
Date: Sat, 9 Apr 2022 02:30:16 +0800
Subject: [PATCH 075/113] add: ignore repeat event
---
cai/client/online_push/__init__.py | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/cai/client/online_push/__init__.py b/cai/client/online_push/__init__.py
index b2914fc1..4fa478d3 100644
--- a/cai/client/online_push/__init__.py
+++ b/cai/client/online_push/__init__.py
@@ -228,12 +228,21 @@ def _parse_poke(params: Sequence[TemplParam]) -> dict:
return res
+repeat_ev = set()
+
# OnlinePush.ReqPush
async def handle_req_push(
client: "Client", packet: IncomingPacket
) -> PushMsgCommand:
req_pkg = RequestPacket.decode(packet.data)
+ # sbtx
+ if req_pkg.req_id in repeat_ev:
+ repeat_ev.remove(req_pkg.req_id)
+ return PushMsgCommand(packet.uin, packet.seq, packet.ret_code, packet.command_name)
+ else:
+ repeat_ev.add(req_pkg.req_id)
+
body = SvcReqPushMsg.decode(
JceDecoder.decode_single(req_pkg.buffer)[1]["req"]["OnlinePushPack.SvcReqPushMsg"] # type: ignore
).body
From 15e0728966a00f2fba7192c1d48a321ab21b9668 Mon Sep 17 00:00:00 2001
From: a1025
Date: Sat, 9 Apr 2022 02:45:51 +0800
Subject: [PATCH 076/113] fix: nudge event
---
cai/client/online_push/__init__.py | 23 +++++++++++++----------
1 file changed, 13 insertions(+), 10 deletions(-)
diff --git a/cai/client/online_push/__init__.py b/cai/client/online_push/__init__.py
index 4fa478d3..4ac33a61 100644
--- a/cai/client/online_push/__init__.py
+++ b/cai/client/online_push/__init__.py
@@ -214,17 +214,20 @@ async def handle_push_msg(
return push
-def _parse_poke(params: Sequence[TemplParam]) -> dict:
+def _parse_poke(params: Sequence[TemplParam], default: int) -> dict:
res = {"target": None, "sender": None, "action": None, "suffix": None}
for p in params:
- if p.name == "uin_str1":
- res["sender"] = int(p.value)
- elif p.name == "uin_str2":
- res["target"] = int(p.value)
- elif p.name == "suffix_str":
- res["suffix"] = p.value
- elif p.name == "action_str":
- res["action"] = p.value
+ name, value = p.name.decode(), p.value.decode()
+ if name == "uin_str1":
+ res["sender"] = int(value)
+ elif name == "uin_str2":
+ res["target"] = int(value)
+ elif name == "suffix_str":
+ res["suffix"] = value
+ elif name == "action_str":
+ res["action"] = value
+ if not res["target"]:
+ res["target"] = default
return res
@@ -262,7 +265,7 @@ async def handle_req_push(
if stype == 0x14: # nudge
client.dispatch_event(
events.NudgeEvent(
- **_parse_poke(notify.general_gray_tip.templ_param),
+ **_parse_poke(notify.general_gray_tip.templ_param, default=_uin),
group=gid,
)
)
From 3587d32d76a6824da9f9788ed07bc53f98ffecab Mon Sep 17 00:00:00 2001
From: yanyongyu <42488585+yanyongyu@users.noreply.github.com>
Date: Sat, 9 Apr 2022 13:15:54 +0800
Subject: [PATCH 077/113] :art: rewrite reqpush
---
cai/client/message_service/jce.py | 54 +-------
cai/client/online_push/__init__.py | 200 ++++++++++++++++-------------
cai/client/online_push/command.py | 52 ++++++++
cai/client/online_push/jce.py | 84 +++++++++---
4 files changed, 228 insertions(+), 162 deletions(-)
diff --git a/cai/client/message_service/jce.py b/cai/client/message_service/jce.py
index 8b3dba1c..6965d71d 100644
--- a/cai/client/message_service/jce.py
+++ b/cai/client/message_service/jce.py
@@ -13,59 +13,7 @@
from jce import JceField, JceStruct, types
-from cai.client.qq_service.jce import StShareData
-
-
-# Push Notify
-class CPicInfo(JceStruct):
- """MessageSvc Online Push CPic Info jce packet.
-
- Note:
- Source: OnlinePushPack.CPicInfo
- """
-
- path: types.BYTES = JceField(jce_id=0)
- host: types.BYTES = JceField(bytes(), jce_id=1)
-
-
-class TempMsgHead(JceStruct):
- """MessageSvc Online Push Temp Message Head jce packet.
-
- Note:
- Source: OnlinePushPack.TempMsgHead
- """
-
- c2c_type: types.INT32 = JceField(0, jce_id=0)
- service_type: types.INT32 = JceField(0, jce_id=1)
-
-
-class MessageInfo(JceStruct):
- """MessageSvc Online Push Message Info jce packet.
-
- Note:
- Source: OnlinePushPack.MsgInfo
- """
-
- from_uin: types.INT64 = JceField(jce_id=0)
- message_time: types.INT64 = JceField(jce_id=1)
- message_type: types.INT16 = JceField(jce_id=2)
- message_seq: types.INT16 = JceField(jce_id=3)
- message: types.STRING = JceField(jce_id=4)
- real_message_time: types.INT32 = JceField(0, jce_id=5)
- vec_message: types.BYTES = JceField(bytes(), jce_id=6)
- app_share_id: types.INT64 = JceField(0, jce_id=7)
- message_cookies: types.BYTES = JceField(bytes(), jce_id=8)
- app_share_cookie: types.BYTES = JceField(bytes(), jce_id=9)
- message_uid: types.INT64 = JceField(0, jce_id=10)
- last_change_time: types.INT64 = JceField(0, jce_id=11)
- cpic_info: types.LIST[CPicInfo] = JceField([], jce_id=12)
- share_data: Optional[StShareData] = JceField(None, jce_id=13)
- from_inst_id: types.INT64 = JceField(0, jce_id=14)
- remark_of_sender: types.BYTES = JceField(bytes(), jce_id=15)
- from_mobile: types.STRING = JceField("", jce_id=16)
- from_name: types.STRING = JceField("", jce_id=17)
- nickname: types.LIST[types.STRING] = JceField([], jce_id=18)
- c2c_temp_msg_head: Optional[TempMsgHead] = JceField(None, jce_id=19)
+from cai.client.online_push.jce import MessageInfo
class RequestPushNotify(JceStruct):
diff --git a/cai/client/online_push/__init__.py b/cai/client/online_push/__init__.py
index 4ac33a61..73580e6a 100644
--- a/cai/client/online_push/__init__.py
+++ b/cai/client/online_push/__init__.py
@@ -15,14 +15,20 @@
from cai.log import logger
from cai.client import events
from cai.utils.binary import Packet
+from cai.pb.im.op.online_push_pb2 import DelMsgCookies
from cai.client.message_service import MESSAGE_DECODERS
from cai.client.packet import UniPacket, IncomingPacket
from cai.utils.jce import RequestPacket, RequestPacketVersion3
from cai.pb.im.oidb.cmd0x857.troop_tips import TemplParam, NotifyMsgBody
-from cai.pb.im.op.online_push_pb2 import DelMsgCookies
-from .jce import DelMsgInfo, DeviceInfo, SvcRespPushMsg, SvcReqPushMsg
-from .command import PushMsg, PushMsgError, PushMsgCommand
+from .jce import DelMsgInfo, DeviceInfo, SvcReqPushMsg, SvcRespPushMsg
+from .command import (
+ PushMsg,
+ SvcReqPush,
+ PushMsgError,
+ PushMsgCommand,
+ SvcReqPushCommand,
+)
if TYPE_CHECKING:
from cai.client import Client
@@ -39,7 +45,7 @@ def encode_push_response(
push_token: Optional[bytes] = None,
service_type: int = 0,
device_info: Optional[DeviceInfo] = None,
- req_id: int = 0
+ req_id: int = 0,
) -> Packet:
"""Build online push response packet.
@@ -236,97 +242,111 @@ def _parse_poke(params: Sequence[TemplParam], default: int) -> dict:
# OnlinePush.ReqPush
async def handle_req_push(
client: "Client", packet: IncomingPacket
-) -> PushMsgCommand:
- req_pkg = RequestPacket.decode(packet.data)
-
- # sbtx
- if req_pkg.req_id in repeat_ev:
- repeat_ev.remove(req_pkg.req_id)
- return PushMsgCommand(packet.uin, packet.seq, packet.ret_code, packet.command_name)
- else:
- repeat_ev.add(req_pkg.req_id)
-
- body = SvcReqPushMsg.decode(
- JceDecoder.decode_single(req_pkg.buffer)[1]["req"]["OnlinePushPack.SvcReqPushMsg"] # type: ignore
- ).body
-
- _uin, stime, push_type, content = (
- body.uin,
- body.msg_time,
- body.msg_info[0].msg_type,
- body.msg_info[0].msg,
+) -> SvcReqPushCommand:
+ """Handle Request Push Command.
+
+ Note:
+ Source: com.tencent.imcore.message.OnLinePushMessageProcessor.ProcessOneMsg.a
+ """
+ push = SvcReqPushCommand.decode_response(
+ packet.uin,
+ packet.seq,
+ packet.ret_code,
+ packet.command_name,
+ packet.data,
)
- if push_type == 732: # group
- gid = int.from_bytes(content[0:4], "big")
- stype = content[4]
- if stype in (0x14, 0x11):
- notify = NotifyMsgBody.FromString(content[7:])
- if stype == 0x14: # nudge
- client.dispatch_event(
- events.NudgeEvent(
- **_parse_poke(notify.general_gray_tip.templ_param, default=_uin),
- group=gid,
- )
+ # FIXME: cache and remove duplicates
+
+ if isinstance(push, SvcReqPush):
+ seq = client.next_seq()
+ pkg = encode_push_response(
+ seq,
+ client._session_id,
+ push.message.uin,
+ client._siginfo.d2key,
+ push.message.svrip,
+ [
+ DelMsgInfo(
+ from_uin=info.from_uin,
+ msg_seq=info.message_seq,
+ msg_time=info.message_time,
+ msg_cookies=DelMsgCookies(
+ msg_type=info.message_type,
+ msg_uid=info.message_uid,
+ type=3,
+ xid=50015,
+ ).SerializeToString(),
)
- elif stype == 0x11: # recall
- msg = notify.recall.recalled_msg_list[0]
- client.dispatch_event(
- events.MemberRecallMessageEvent(
- gid,
- notify.recall.uin,
- notify.recall.op_type,
- msg.author_uin,
- msg.msg_random,
- msg.seq,
- msg.time,
+ for info in push.message.msg_info
+ ],
+ req_id=push.seq,
+ )
+ await client.send(seq, "OnlinePush.RespPush", pkg)
+
+ for message in push.message.msg_info:
+ if message.message_type == 169:
+ # handleC2COnlinePushMsgResp
+ pass
+ elif message.message_type == 8:
+ # HandleShMsgType0x08
+ pass
+ elif message.message_type == 132:
+ # HandleShMsgType0x84
+ pass
+ elif message.message_type == 732:
+ content = message.vec_message
+ sub_type = content[4]
+ gid = int.from_bytes(content[:4], "big")
+
+ if sub_type in (0x14, 0x11):
+ notify = NotifyMsgBody.FromString(content[7:])
+ if sub_type == 0x14: # nudge
+ client.dispatch_event(
+ events.NudgeEvent(
+ **_parse_poke(
+ notify.general_gray_tip.templ_param,
+ default=message.from_uin,
+ ),
+ group=gid,
+ )
+ )
+ elif sub_type == 0x11: # recall
+ msg = notify.recall.recalled_msg_list[0]
+ client.dispatch_event(
+ events.MemberRecallMessageEvent(
+ gid,
+ notify.recall.uin,
+ notify.recall.op_type,
+ msg.author_uin,
+ msg.msg_random,
+ msg.seq,
+ msg.time,
+ )
+ )
+ elif sub_type == 0x0C: # mute event
+ operator = int.from_bytes(
+ content[6:10], "big", signed=False
)
- )
- elif stype == 0x0C: # mute event
- operator = int.from_bytes(content[6:10], "big", signed=False)
- target = int.from_bytes(content[16:20], "big", signed=False)
- duration = int.from_bytes(content[20:24], "big", signed=False)
- if duration > 0: # muted
- client.dispatch_event(
- events.MemberMutedEvent(gid, operator, target, duration)
- )
- else:
- client.dispatch_event(
- events.MemberUnMutedEvent(gid, operator, target)
- )
- elif push_type == 528:
- pass
- # TODO: parse friend event
-
- seq = client.next_seq()
- pkg = encode_push_response(
- seq,
- client._session_id,
- _uin,
- client._siginfo.d2key,
- body.svrip,
- [
- DelMsgInfo(
- from_uin=info.from_uin,
- msg_seq=info.msg_seq,
- msg_time=info.msg_time,
- msg_cookies=DelMsgCookies(
- msg_type=info.msg_type,
- msg_uid=info.msg_uid,
- type=3,
- xid=50015
- ).SerializeToString()
- ) for info in body.msg_info
- ],
- req_id=req_pkg.req_id
- )
-
- # FIXME: useless
- await client.send(seq, "OnlinePush.RespPush", pkg)
+ target = int.from_bytes(content[16:20], "big", signed=False)
+ duration = int.from_bytes(
+ content[20:24], "big", signed=False
+ )
+ if duration > 0: # muted
+ client.dispatch_event(
+ events.MemberMutedEvent(
+ gid, operator, target, duration
+ )
+ )
+ else:
+ client.dispatch_event(
+ events.MemberUnMutedEvent(gid, operator, target)
+ )
+ elif message.message_type == 528:
+ # TODO: parse friend event
+ pass
- return PushMsgCommand(
- packet.uin, packet.seq, packet.ret_code, packet.command_name
- )
+ return push
__all__ = [
diff --git a/cai/client/online_push/command.py b/cai/client/online_push/command.py
index bf08cff4..a52daf2b 100644
--- a/cai/client/online_push/command.py
+++ b/cai/client/online_push/command.py
@@ -13,6 +13,9 @@
from cai.client.command import Command
from cai.pb.msf.msg.onlinepush import PbPushMsg
+from cai.utils.jce import RequestPacketVersion2
+
+from .jce import SvcReqPushMsg
@dataclass
@@ -61,3 +64,52 @@ class PushMsg(PushMsgCommand):
@dataclass
class PushMsgError(PushMsgCommand):
message: str
+
+
+@dataclass
+class SvcReqPushCommand(Command):
+ @classmethod
+ def decode_response(
+ cls, uin: int, seq: int, ret_code: int, command_name: str, data: bytes
+ ) -> "SvcReqPushCommand":
+ """Decode OnlinePush request push packet.
+
+ Note:
+ Source: com.tencent.mobileqq.service.message.MessageFactoryReceiver.l
+
+ Args:
+ uin (int): User QQ
+ seq (int): Sequence number of the response packet.
+ ret_code (int): Return code of the response.
+ command_name (str): Command name of the response.
+ data (bytes): Payload data of the response.
+ """
+ if ret_code != 0 or not data:
+ return SvcReqPushCommand(uin, seq, ret_code, command_name)
+
+ try:
+ req_packet = RequestPacketVersion2.decode(data)
+ svc_req_push = SvcReqPushMsg.decode(
+ req_packet.data["req"][ # type: ignore
+ "OnlinePushPack.SvcReqPushMsg"
+ ][1:-1]
+ )
+ return SvcReqPush(uin, seq, ret_code, command_name, svc_req_push)
+ except Exception as e:
+ return SvcReqPushError(
+ uin,
+ seq,
+ ret_code,
+ command_name,
+ f"Error when decoding response! {repr(e)}",
+ )
+
+
+@dataclass
+class SvcReqPush(SvcReqPushCommand):
+ message: SvcReqPushMsg
+
+
+@dataclass
+class SvcReqPushError(SvcReqPushCommand):
+ message: str
diff --git a/cai/client/online_push/jce.py b/cai/client/online_push/jce.py
index 7bfa6db5..d1c35af4 100644
--- a/cai/client/online_push/jce.py
+++ b/cai/client/online_push/jce.py
@@ -13,6 +13,8 @@
from jce import JceField, JceStruct, types
+from cai.client.qq_service.jce import StShareData
+
class DelMsgInfo(JceStruct):
"""OnlinePush Delete Message Info Packet.
@@ -49,20 +51,62 @@ class DeviceInfo(JceStruct):
ios_idfa: types.STRING = JceField("", jce_id=5)
-class MsgInfo(JceStruct):
+class CPicInfo(JceStruct):
+ """MessageSvc Online Push CPic Info jce packet.
+
+ Note:
+ Source: OnlinePushPack.CPicInfo
+ """
+
+ path: types.BYTES = JceField(jce_id=0)
+ host: types.BYTES = JceField(bytes(), jce_id=1)
+
+
+class TempMsgHead(JceStruct):
+ """MessageSvc Online Push Temp Message Head jce packet.
+
+ Note:
+ Source: OnlinePushPack.TempMsgHead
+ """
+
+ c2c_type: types.INT32 = JceField(0, jce_id=0)
+ service_type: types.INT32 = JceField(0, jce_id=1)
+
+
+class MessageInfo(JceStruct):
+ """MessageSvc Online Push Message Info jce packet.
+
+ Note:
+ Source: OnlinePushPack.MsgInfo
+ """
+
from_uin: types.INT64 = JceField(jce_id=0)
- msg_time: types.INT64 = JceField(jce_id=1)
- msg_type: types.INT8 = JceField(jce_id=2)
- msg_seq: types.INT8 = JceField(jce_id=3)
- str_msg: types.STRING = JceField("", jce_id=4)
- real_msg_time: types.INT32 = JceField(0, jce_id=5)
- msg: types.BYTES = JceField(jce_id=6)
- share_id: types.INT64 = JceField(0, jce_id=7)
- msg_cookie: types.BYTES = JceField(bytes(), jce_id=8)
+ message_time: types.INT64 = JceField(jce_id=1)
+ message_type: types.INT16 = JceField(jce_id=2)
+ message_seq: types.INT16 = JceField(jce_id=3)
+ message: types.STRING = JceField(jce_id=4)
+ real_message_time: types.INT32 = JceField(0, jce_id=5)
+ vec_message: types.BYTES = JceField(bytes(), jce_id=6)
+ app_share_id: types.INT64 = JceField(0, jce_id=7)
+ message_cookies: types.BYTES = JceField(bytes(), jce_id=8)
app_share_cookie: types.BYTES = JceField(bytes(), jce_id=9)
- msg_uid: types.INT64 = JceField(0, jce_id=10)
+ message_uid: types.INT64 = JceField(0, jce_id=10)
last_change_time: types.INT64 = JceField(0, jce_id=11)
- # TODO: missed
+ cpic_info: types.LIST[CPicInfo] = JceField([], jce_id=12)
+ share_data: Optional[StShareData] = JceField(None, jce_id=13)
+ from_inst_id: types.INT64 = JceField(0, jce_id=14)
+ remark_of_sender: types.BYTES = JceField(bytes(), jce_id=15)
+ from_mobile: types.STRING = JceField("", jce_id=16)
+ from_name: types.STRING = JceField("", jce_id=17)
+ nickname: types.LIST[types.STRING] = JceField([], jce_id=18)
+ c2c_temp_msg_head: Optional[TempMsgHead] = JceField(None, jce_id=19)
+
+
+class UinPairMsg(JceStruct):
+ last_read_time: types.INT64 = JceField(0, jce_id=1)
+ peer_uin: types.INT64 = JceField(0, jce_id=2)
+ msg_completed: types.INT64 = JceField(0, jce_id=3)
+ msg_info: Optional[types.LIST[MessageInfo]] = JceField(None, jce_id=4)
class SvcRespPushMsg(JceStruct):
@@ -80,13 +124,15 @@ class SvcRespPushMsg(JceStruct):
device_info: Optional[DeviceInfo] = JceField(None, jce_id=5)
-class _SvcReqPushMsg(JceStruct):
+class SvcReqPushMsg(JceStruct):
uin: types.INT64 = JceField(jce_id=0)
msg_time: types.INT64 = JceField(jce_id=1)
- msg_info: types.LIST[MsgInfo] = JceField(jce_id=2)
- svrip: types.INT32 = JceField(0, jce_id=3)
- sync_cookie: types.BYTES = JceField(bytes(), jce_id=4)
-
-
-class SvcReqPushMsg(JceStruct):
- body: _SvcReqPushMsg = JceField(jce_id=0)
+ msg_info: types.LIST[MessageInfo] = JceField(jce_id=2)
+ svrip: types.INT32 = JceField(jce_id=3)
+ sync_cookie: Optional[types.BYTES] = JceField(None, jce_id=4)
+ uinpair_msg: Optional[types.LIST[UinPairMsg]] = JceField(None, jce_id=5)
+ preview: Optional[types.MAP[types.STRING, types.BYTES]] = JceField(
+ None, jce_id=6
+ )
+ user_active: types.INT32 = JceField(0, jce_id=7)
+ general_flag: types.INT32 = JceField(0, jce_id=12)
From 49e177b44f369c9ed0c024f369f9b60003e44037 Mon Sep 17 00:00:00 2001
From: a1025
Date: Sat, 9 Apr 2022 13:17:37 +0800
Subject: [PATCH 078/113] fix: reconnect fail
---
cai/client/client.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/cai/client/client.py b/cai/client/client.py
index f6abb4b7..f06b986d 100644
--- a/cai/client/client.py
+++ b/cai/client/client.py
@@ -369,6 +369,7 @@ async def reconnect(
if not change_server and self._connection:
log.network.warning("reconnecting...")
await self._connection.reconnect()
+ asyncio.create_task(self.receive()).add_done_callback(self._recv_done_cb)
log.network.info("reconnected")
return
@@ -389,7 +390,7 @@ async def reconnect_and_login(
await self.reconnect(change_server=change_server, server=server)
# FIXME: register reason msfByNetChange?
try:
- await self._init(drop_offline_msg=False)
+ await self._init()
except asyncio.exceptions.TimeoutError: # fallback
log.network.warning("register failed, trying to re-login")
await self.reconnect()
From 6ce883cd23b05cd646c26a8ab0f55279674efc6c Mon Sep 17 00:00:00 2001
From: a1025
Date: Sat, 9 Apr 2022 13:21:16 +0800
Subject: [PATCH 079/113] fix: drop msg when reconnect
---
cai/client/client.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/cai/client/client.py b/cai/client/client.py
index f06b986d..da6209a2 100644
--- a/cai/client/client.py
+++ b/cai/client/client.py
@@ -390,7 +390,7 @@ async def reconnect_and_login(
await self.reconnect(change_server=change_server, server=server)
# FIXME: register reason msfByNetChange?
try:
- await self._init()
+ await self._init(drop_offline_msg=False)
except asyncio.exceptions.TimeoutError: # fallback
log.network.warning("register failed, trying to re-login")
await self.reconnect()
From 83f2d132dd25ae7ad1190b36ee327d18ae9f61e4 Mon Sep 17 00:00:00 2001
From: yanyongyu <42488585+yanyongyu@users.noreply.github.com>
Date: Sat, 9 Apr 2022 13:40:05 +0800
Subject: [PATCH 080/113] :wheelchair: refactor receiver start
---
cai/client/client.py | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/cai/client/client.py b/cai/client/client.py
index da6209a2..3d7ea719 100644
--- a/cai/client/client.py
+++ b/cai/client/client.py
@@ -321,8 +321,7 @@ async def connect(self, server: Optional[SsoServer] = None) -> None:
self._connection = await connect(
_server.host, _server.port, ssl=False, timeout=3.0
)
- task = asyncio.create_task(self.receive())
- task.add_done_callback(self._recv_done_cb)
+ self._start_receiver()
except ConnectionError as e:
raise
except Exception as e:
@@ -331,6 +330,10 @@ async def connect(self, server: Optional[SsoServer] = None) -> None:
f"server({_server.host}:{_server.port}): " + repr(e)
)
+ def _start_receiver(self):
+ task = asyncio.create_task(self.receive())
+ task.add_done_callback(self._recv_done_cb)
+
def _recv_done_cb(self, task: asyncio.Task):
if self._reconnect:
if (
@@ -369,7 +372,7 @@ async def reconnect(
if not change_server and self._connection:
log.network.warning("reconnecting...")
await self._connection.reconnect()
- asyncio.create_task(self.receive()).add_done_callback(self._recv_done_cb)
+ self._start_receiver()
log.network.info("reconnected")
return
From 7f8fb29b5c4f51559414a61eb97f716f12edbaa3 Mon Sep 17 00:00:00 2001
From: a1025
Date: Sat, 9 Apr 2022 15:14:30 +0800
Subject: [PATCH 081/113] add: remove duplicates req
---
cai/client/online_push/__init__.py | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/cai/client/online_push/__init__.py b/cai/client/online_push/__init__.py
index 73580e6a..6d362f84 100644
--- a/cai/client/online_push/__init__.py
+++ b/cai/client/online_push/__init__.py
@@ -256,9 +256,12 @@ async def handle_req_push(
packet.data,
)
- # FIXME: cache and remove duplicates
-
if isinstance(push, SvcReqPush):
+ if push.seq in client._msg_cache: # duplicates msg, drop
+ return push
+ else:
+ client._msg_cache[push.seq] = None
+
seq = client.next_seq()
pkg = encode_push_response(
seq,
@@ -282,7 +285,7 @@ async def handle_req_push(
],
req_id=push.seq,
)
- await client.send(seq, "OnlinePush.RespPush", pkg)
+ #await client.send(seq, "OnlinePush.RespPush", pkg)
for message in push.message.msg_info:
if message.message_type == 169:
From 016b31eb83bce32d3bdc7b5fe8101fc2129096b6 Mon Sep 17 00:00:00 2001
From: yanyongyu <42488585+yanyongyu@users.noreply.github.com>
Date: Sat, 9 Apr 2022 16:32:23 +0800
Subject: [PATCH 082/113] :wheelchair: improve online push cache
---
cai/client/client.py | 9 +++---
cai/client/message_service/__init__.py | 11 ++++---
cai/client/online_push/__init__.py | 43 ++++++++++++++------------
3 files changed, 35 insertions(+), 28 deletions(-)
diff --git a/cai/client/client.py b/cai/client/client.py
index 3d7ea719..84968566 100644
--- a/cai/client/client.py
+++ b/cai/client/client.py
@@ -149,7 +149,7 @@ def __init__(
apk_info: ApkInfo,
*,
auto_reconnect: bool = True,
- max_reconnections: Optional[int] = 3,
+ max_reconnections: int = 3,
):
# client info
self._device: DeviceInfo = device
@@ -196,12 +196,13 @@ def __init__(
self._sync_cookie: bytes = bytes()
self._pubaccount_cookie: bytes = bytes()
self._msg_cache: TTLCache = TTLCache(maxsize=1024, ttl=3600)
+ self._online_push_cache: TTLCache = TTLCache(maxsize=1024, ttl=3600)
self._receive_store: FutureStore[int, Command] = FutureStore()
# connection info
self._reconnect: bool = auto_reconnect
self._reconnect_times: int = 0
- self._max_reconnections: Optional[int] = max_reconnections
+ self._max_reconnections: int = max_reconnections
self._closed: asyncio.Event = asyncio.Event()
def __str__(self) -> str:
@@ -394,9 +395,9 @@ async def reconnect_and_login(
# FIXME: register reason msfByNetChange?
try:
await self._init(drop_offline_msg=False)
- except asyncio.exceptions.TimeoutError: # fallback
+ except asyncio.TimeoutError:
log.network.warning("register failed, trying to re-login")
- await self.reconnect()
+ await self.reconnect(change_server=True, server=server)
await self.login()
async def close(self) -> None:
diff --git a/cai/client/message_service/__init__.py b/cai/client/message_service/__init__.py
index 46deac95..acdf0c69 100644
--- a/cai/client/message_service/__init__.py
+++ b/cai/client/message_service/__init__.py
@@ -155,12 +155,15 @@ async def handle_get_message(
key = (
f"{message.head.from_uin}"
- f"{message.head.type}"
- f"{message.head.time}"
+ f"{message.head.to_uin}"
+ f"{message.head.seq}"
+ f"{message.head.uid}"
)
- if key in client._msg_cache:
- continue
+ # refresh key ttl first
+ should_skip = key in client._msg_cache
client._msg_cache[key] = None
+ if should_skip:
+ continue
# drop messages when init
if client._init_flag:
diff --git a/cai/client/online_push/__init__.py b/cai/client/online_push/__init__.py
index 6d362f84..e9454fe5 100644
--- a/cai/client/online_push/__init__.py
+++ b/cai/client/online_push/__init__.py
@@ -8,20 +8,20 @@
.. _LICENSE:
https://github.com/cscs181/CAI/blob/master/LICENSE
"""
-from typing import TYPE_CHECKING, List, Tuple, Optional, Sequence
+from typing import TYPE_CHECKING, List, Optional, Sequence
-from jce import JceStruct, JceDecoder, types
+from jce import types
from cai.log import logger
from cai.client import events
from cai.utils.binary import Packet
+from cai.utils.jce import RequestPacketVersion3
from cai.pb.im.op.online_push_pb2 import DelMsgCookies
from cai.client.message_service import MESSAGE_DECODERS
from cai.client.packet import UniPacket, IncomingPacket
-from cai.utils.jce import RequestPacket, RequestPacketVersion3
from cai.pb.im.oidb.cmd0x857.troop_tips import TemplParam, NotifyMsgBody
-from .jce import DelMsgInfo, DeviceInfo, SvcReqPushMsg, SvcRespPushMsg
+from .jce import DelMsgInfo, DeviceInfo, SvcRespPushMsg
from .command import (
PushMsg,
SvcReqPush,
@@ -237,8 +237,6 @@ def _parse_poke(params: Sequence[TemplParam], default: int) -> dict:
return res
-repeat_ev = set()
-
# OnlinePush.ReqPush
async def handle_req_push(
client: "Client", packet: IncomingPacket
@@ -257,11 +255,6 @@ async def handle_req_push(
)
if isinstance(push, SvcReqPush):
- if push.seq in client._msg_cache: # duplicates msg, drop
- return push
- else:
- client._msg_cache[push.seq] = None
-
seq = client.next_seq()
pkg = encode_push_response(
seq,
@@ -285,20 +278,30 @@ async def handle_req_push(
],
req_id=push.seq,
)
- #await client.send(seq, "OnlinePush.RespPush", pkg)
+ # await client.send(seq, "OnlinePush.RespPush", pkg)
+
+ for info in push.message.msg_info:
+ key = (
+ f"{info.message_seq}"
+ f"{info.message_time}"
+ f"{info.message_uid}"
+ )
+ should_skip = key in client._online_push_cache
+ client._online_push_cache[key] = None
+ if should_skip:
+ continue
- for message in push.message.msg_info:
- if message.message_type == 169:
+ if info.message_type == 169:
# handleC2COnlinePushMsgResp
pass
- elif message.message_type == 8:
+ elif info.message_type == 8:
# HandleShMsgType0x08
pass
- elif message.message_type == 132:
+ elif info.message_type == 132:
# HandleShMsgType0x84
pass
- elif message.message_type == 732:
- content = message.vec_message
+ elif info.message_type == 732:
+ content = info.vec_message
sub_type = content[4]
gid = int.from_bytes(content[:4], "big")
@@ -309,7 +312,7 @@ async def handle_req_push(
events.NudgeEvent(
**_parse_poke(
notify.general_gray_tip.templ_param,
- default=message.from_uin,
+ default=info.from_uin,
),
group=gid,
)
@@ -345,7 +348,7 @@ async def handle_req_push(
client.dispatch_event(
events.MemberUnMutedEvent(gid, operator, target)
)
- elif message.message_type == 528:
+ elif info.message_type == 528:
# TODO: parse friend event
pass
From e66eeef239013925d9fef4d89c9112815b43494f Mon Sep 17 00:00:00 2001
From: yanyongyu <42488585+yanyongyu@users.noreply.github.com>
Date: Sat, 9 Apr 2022 17:15:39 +0800
Subject: [PATCH 083/113] :construction: process del msg
---
cai/client/online_push/__init__.py | 32 +++++++--------------
cai/client/online_push/jce.py | 16 +++++------
cai/pb/im/op/__init__.py | 0
cai/pb/im/op/online_push.proto | 8 ------
cai/pb/im/op/online_push_pb2.py | 34 ----------------------
cai/pb/im/op/online_push_pb2.pyi | 46 ------------------------------
6 files changed, 19 insertions(+), 117 deletions(-)
delete mode 100644 cai/pb/im/op/__init__.py
delete mode 100644 cai/pb/im/op/online_push.proto
delete mode 100644 cai/pb/im/op/online_push_pb2.py
delete mode 100644 cai/pb/im/op/online_push_pb2.pyi
diff --git a/cai/client/online_push/__init__.py b/cai/client/online_push/__init__.py
index e9454fe5..32690aa9 100644
--- a/cai/client/online_push/__init__.py
+++ b/cai/client/online_push/__init__.py
@@ -16,7 +16,6 @@
from cai.client import events
from cai.utils.binary import Packet
from cai.utils.jce import RequestPacketVersion3
-from cai.pb.im.op.online_push_pb2 import DelMsgCookies
from cai.client.message_service import MESSAGE_DECODERS
from cai.client.packet import UniPacket, IncomingPacket
from cai.pb.im.oidb.cmd0x857.troop_tips import TemplParam, NotifyMsgBody
@@ -265,43 +264,34 @@ async def handle_req_push(
[
DelMsgInfo(
from_uin=info.from_uin,
- msg_seq=info.message_seq,
- msg_time=info.message_time,
- msg_cookies=DelMsgCookies(
- msg_type=info.message_type,
- msg_uid=info.message_uid,
- type=3,
- xid=50015,
- ).SerializeToString(),
+ msg_seq=info.msg_seq,
+ msg_time=info.msg_time,
+ msg_cookies=info.msg_cookies,
)
for info in push.message.msg_info
],
req_id=push.seq,
)
- # await client.send(seq, "OnlinePush.RespPush", pkg)
+ await client.send(seq, "OnlinePush.RespPush", pkg)
for info in push.message.msg_info:
- key = (
- f"{info.message_seq}"
- f"{info.message_time}"
- f"{info.message_uid}"
- )
+ key = f"{info.msg_seq}" f"{info.msg_time}" f"{info.msg_uid}"
should_skip = key in client._online_push_cache
client._online_push_cache[key] = None
if should_skip:
continue
- if info.message_type == 169:
+ if info.msg_type == 169:
# handleC2COnlinePushMsgResp
pass
- elif info.message_type == 8:
+ elif info.msg_type == 8:
# HandleShMsgType0x08
pass
- elif info.message_type == 132:
+ elif info.msg_type == 132:
# HandleShMsgType0x84
pass
- elif info.message_type == 732:
- content = info.vec_message
+ elif info.msg_type == 732:
+ content = info.vec_msg
sub_type = content[4]
gid = int.from_bytes(content[:4], "big")
@@ -348,7 +338,7 @@ async def handle_req_push(
client.dispatch_event(
events.MemberUnMutedEvent(gid, operator, target)
)
- elif info.message_type == 528:
+ elif info.msg_type == 528:
# TODO: parse friend event
pass
diff --git a/cai/client/online_push/jce.py b/cai/client/online_push/jce.py
index d1c35af4..46986871 100644
--- a/cai/client/online_push/jce.py
+++ b/cai/client/online_push/jce.py
@@ -81,16 +81,16 @@ class MessageInfo(JceStruct):
"""
from_uin: types.INT64 = JceField(jce_id=0)
- message_time: types.INT64 = JceField(jce_id=1)
- message_type: types.INT16 = JceField(jce_id=2)
- message_seq: types.INT16 = JceField(jce_id=3)
- message: types.STRING = JceField(jce_id=4)
- real_message_time: types.INT32 = JceField(0, jce_id=5)
- vec_message: types.BYTES = JceField(bytes(), jce_id=6)
+ msg_time: types.INT64 = JceField(jce_id=1)
+ msg_type: types.INT16 = JceField(jce_id=2)
+ msg_seq: types.INT16 = JceField(jce_id=3)
+ msg: types.STRING = JceField(jce_id=4)
+ real_msg_time: types.INT32 = JceField(0, jce_id=5)
+ vec_msg: types.BYTES = JceField(bytes(), jce_id=6)
app_share_id: types.INT64 = JceField(0, jce_id=7)
- message_cookies: types.BYTES = JceField(bytes(), jce_id=8)
+ msg_cookies: types.BYTES = JceField(bytes(), jce_id=8)
app_share_cookie: types.BYTES = JceField(bytes(), jce_id=9)
- message_uid: types.INT64 = JceField(0, jce_id=10)
+ msg_uid: types.INT64 = JceField(0, jce_id=10)
last_change_time: types.INT64 = JceField(0, jce_id=11)
cpic_info: types.LIST[CPicInfo] = JceField([], jce_id=12)
share_data: Optional[StShareData] = JceField(None, jce_id=13)
diff --git a/cai/pb/im/op/__init__.py b/cai/pb/im/op/__init__.py
deleted file mode 100644
index e69de29b..00000000
diff --git a/cai/pb/im/op/online_push.proto b/cai/pb/im/op/online_push.proto
deleted file mode 100644
index 313545db..00000000
--- a/cai/pb/im/op/online_push.proto
+++ /dev/null
@@ -1,8 +0,0 @@
-syntax = "proto3";
-
-message DelMsgCookies {
- int32 msg_type = 1;
- int64 msg_uid = 2;
- int32 type = 3; // idk, value is 3
- int32 xid = 4; // idk, value is 50015
-}
diff --git a/cai/pb/im/op/online_push_pb2.py b/cai/pb/im/op/online_push_pb2.py
deleted file mode 100644
index b744b0d8..00000000
--- a/cai/pb/im/op/online_push_pb2.py
+++ /dev/null
@@ -1,34 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by the protocol buffer compiler. DO NOT EDIT!
-# source: online_push.proto
-"""Generated protocol buffer code."""
-from google.protobuf import descriptor as _descriptor
-from google.protobuf import descriptor_pool as _descriptor_pool
-from google.protobuf import message as _message
-from google.protobuf import reflection as _reflection
-from google.protobuf import symbol_database as _symbol_database
-# @@protoc_insertion_point(imports)
-
-_sym_db = _symbol_database.Default()
-
-
-
-
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x11online_push.proto\"M\n\rDelMsgCookies\x12\x10\n\x08msg_type\x18\x01 \x01(\x05\x12\x0f\n\x07msg_uid\x18\x02 \x01(\x03\x12\x0c\n\x04type\x18\x03 \x01(\x05\x12\x0b\n\x03xid\x18\x04 \x01(\x05\x62\x06proto3')
-
-
-
-_DELMSGCOOKIES = DESCRIPTOR.message_types_by_name['DelMsgCookies']
-DelMsgCookies = _reflection.GeneratedProtocolMessageType('DelMsgCookies', (_message.Message,), {
- 'DESCRIPTOR' : _DELMSGCOOKIES,
- '__module__' : 'online_push_pb2'
- # @@protoc_insertion_point(class_scope:DelMsgCookies)
- })
-_sym_db.RegisterMessage(DelMsgCookies)
-
-if _descriptor._USE_C_DESCRIPTORS == False:
-
- DESCRIPTOR._options = None
- _DELMSGCOOKIES._serialized_start=21
- _DELMSGCOOKIES._serialized_end=98
-# @@protoc_insertion_point(module_scope)
diff --git a/cai/pb/im/op/online_push_pb2.pyi b/cai/pb/im/op/online_push_pb2.pyi
deleted file mode 100644
index 6e54e27e..00000000
--- a/cai/pb/im/op/online_push_pb2.pyi
+++ /dev/null
@@ -1,46 +0,0 @@
-"""
-@generated by mypy-protobuf. Do not edit manually!
-isort:skip_file
-"""
-from builtins import (
- int,
-)
-
-from google.protobuf.descriptor import (
- Descriptor,
- FileDescriptor,
-)
-
-from google.protobuf.message import (
- Message,
-)
-
-from typing_extensions import (
- Literal,
-)
-
-
-DESCRIPTOR: FileDescriptor
-
-class DelMsgCookies(Message):
- DESCRIPTOR: Descriptor
- MSG_TYPE_FIELD_NUMBER: int
- MSG_UID_FIELD_NUMBER: int
- TYPE_FIELD_NUMBER: int
- XID_FIELD_NUMBER: int
- msg_type: int
- msg_uid: int
- type: int
- """idk, value is 3"""
-
- xid: int
- """idk, value is 50015"""
-
- def __init__(self,
- *,
- msg_type: int = ...,
- msg_uid: int = ...,
- type: int = ...,
- xid: int = ...,
- ) -> None: ...
- def ClearField(self, field_name: Literal["msg_type",b"msg_type","msg_uid",b"msg_uid","type",b"type","xid",b"xid"]) -> None: ...
From e099cfa68ac7bad0b63e4158f466ae0d511dd48c Mon Sep 17 00:00:00 2001
From: yanyongyu <42488585+yanyongyu@users.noreply.github.com>
Date: Sat, 9 Apr 2022 17:51:36 +0800
Subject: [PATCH 084/113] :wrench: improve account settings cache
---
cai/api/client.py | 15 +++++----------
cai/settings/device.py | 31 +++++++++++--------------------
cai/settings/protocol.py | 29 ++++++++++-------------------
cai/storage/__init__.py | 38 +++++++++++++++++++-------------------
examples/login.py | 6 +-----
5 files changed, 46 insertions(+), 73 deletions(-)
diff --git a/cai/api/client.py b/cai/api/client.py
index 76b917c4..66205bb3 100644
--- a/cai/api/client.py
+++ b/cai/api/client.py
@@ -13,10 +13,10 @@
from cai import log
from cai.client import OnlineStatus
from cai.client import Client as client_t
-from cai.settings.protocol import ApkInfo
+from cai.settings.device import get_device
from cai.pb.msf.msg.svc import PbSendMsgResp
from cai.client.highway import HighWaySession
-from cai.settings.device import DeviceInfo, new_device
+from cai.settings.protocol import get_protocol
from cai.client.message_service.encoders import build_msg, make_group_msg_pkg
from cai.client.message_service.models import (
Element,
@@ -35,20 +35,15 @@
)
-def make_client(
- uin: int,
- passwd: Union[str, bytes],
- apk_info: ApkInfo,
- device: Optional[DeviceInfo] = None,
-) -> client_t:
+def make_client(uin: int, passwd: Union[str, bytes]) -> client_t:
if not (isinstance(passwd, bytes) and len(passwd) == 16):
# not a vailed md5 passwd
if isinstance(passwd, bytes):
passwd = hashlib.md5(passwd).digest()
else:
passwd = hashlib.md5(passwd.encode()).digest()
- if not device:
- device = new_device()
+ device = get_device(uin)
+ apk_info = get_protocol(uin)
return client_t(uin, passwd, device, apk_info)
diff --git a/cai/settings/device.py b/cai/settings/device.py
index fd0726ad..81c3b1a4 100644
--- a/cai/settings/device.py
+++ b/cai/settings/device.py
@@ -11,7 +11,6 @@
https://github.com/cscs181/CAI/blob/master/LICENSE
"""
import os
-import time
import uuid
import random
import secrets
@@ -23,8 +22,6 @@
from cai.storage import Storage
from cai.utils.dataclass import JsonableDataclass
-_device: Optional["DeviceInfo"] = None
-
@dataclass(init=True, eq=False)
class Version(JsonableDataclass):
@@ -232,35 +229,29 @@ def new_device(
)
-def get_device(cache: bool = True) -> DeviceInfo:
- global _device
- if cache and _device:
- return _device
+def get_device(uin: int, cache: bool = True) -> DeviceInfo:
+ cache_file = Storage.get_account_cache_dir(uin) / "device.json"
+ backup_file = Storage.get_account_cache_dir(uin) / "device.json.bak"
device: DeviceInfo
- if not os.path.exists(Storage.device_file):
- device = new_device()
- with open(Storage.device_file, "w") as f:
- device.to_file(f)
- else:
- with open(Storage.device_file, "r+") as f:
+ if cache and cache_file.exists():
+ with cache_file.open("r+") as f:
try:
device = DeviceInfo.from_file(f)
except Exception as e:
- backup_file = f"{Storage.device_file}.{int(time.time())}.bak"
logger.error(
"Error when loading device info from config file:\n\n"
+ repr(e)
- + f"\n\nRegenerating device info in `{Storage.device_file}`! "
+ + f"\n\nRegenerating device info in `{cache_file}`! "
+ f"The original device info has been backed up in `{backup_file}`."
)
f.seek(0)
- with open(backup_file, "w") as fb:
- fb.write(f.read())
+ backup_file.write_text(f.read())
device = new_device()
f.seek(0)
f.truncate(0)
device.to_file(f)
-
- _device = device
- return _device
+ else:
+ device = new_device()
+ cache_file.write_text(device.to_json())
+ return device
diff --git a/cai/settings/protocol.py b/cai/settings/protocol.py
index b7eaf766..8dcd75fb 100644
--- a/cai/settings/protocol.py
+++ b/cai/settings/protocol.py
@@ -10,15 +10,10 @@
.. _LICENSE:
https://github.com/cscs181/CAI/blob/master/LICENSE
"""
-import os
-from typing import Optional, NamedTuple
+from typing import NamedTuple
from cai.storage import Storage
-MISSING = "MISSING"
-
-_protocol: Optional["ApkInfo"] = None
-
class ApkInfo(NamedTuple):
apk_id: str
@@ -176,18 +171,14 @@ def get_apk_info(_type: str = "IPAD") -> ApkInfo:
return info[_type]
-def get_protocol(cache: bool = True) -> ApkInfo:
- global _protocol
- if cache and _protocol:
- return _protocol
+def get_protocol(uin: int, cache: bool = True) -> ApkInfo:
+ protocol_file = Storage.get_account_cache_dir(uin) / "protocol"
- type_ = os.getenv(Storage.protocol_env_name, MISSING)
- if type_ is MISSING and os.path.exists(Storage.protocol_file):
- with open(Storage.protocol_file, "r") as f:
- type_ = f.read()
- elif type_ is MISSING:
+ if protocol_file.exists():
+ type_ = protocol_file.read_text()
+ else:
type_ = "IPAD"
- with open(Storage.protocol_file, "w") as f:
- f.write("IPAD")
- _protocol = get_apk_info(type_)
- return _protocol
+ protocol_file.write_text(type_)
+
+ protocol = get_apk_info(type_)
+ return protocol
diff --git a/cai/storage/__init__.py b/cai/storage/__init__.py
index 31571d60..e3e62fd3 100644
--- a/cai/storage/__init__.py
+++ b/cai/storage/__init__.py
@@ -10,6 +10,7 @@
"""
import os
import shutil
+from pathlib import Path
from .utils import user_cache_dir, user_config_dir
@@ -18,37 +19,36 @@ class Storage:
app_name: str = "CAI"
# application config dir
- default_app_dir: str = user_config_dir(app_name, roaming=True)
- app_dir: str = os.getenv(f"{app_name}_APP_DIR", default_app_dir)
- if not os.path.exists(app_dir):
- os.makedirs(app_dir)
- if not os.path.isdir(app_dir):
+ _default_app_dir: str = user_config_dir(app_name, roaming=True)
+ app_dir: Path = Path(os.getenv(f"{app_name}_APP_DIR", _default_app_dir))
+ app_dir.mkdir(parents=True, exist_ok=True)
+ if not app_dir.is_dir():
raise RuntimeError(
f"Application directory {app_dir} is not a directory!"
)
# application cache dir
- default_cache_dir: str = user_cache_dir(app_name)
- cache_dir: str = os.getenv(f"{app_name}_CACHE_DIR", default_cache_dir)
- if not os.path.exists(cache_dir):
- os.makedirs(cache_dir)
- if not os.path.isdir(cache_dir):
+ _default_cache_dir: str = user_cache_dir(app_name)
+ cache_dir: Path = Path(
+ os.getenv(f"{app_name}_CACHE_DIR", _default_cache_dir)
+ )
+ cache_dir.mkdir(parents=True, exist_ok=True)
+ if not cache_dir.is_dir():
raise RuntimeError(
f"Application Cache directory {cache_dir} is not a directory!"
)
- # cai.settings.device
- device_file: str = os.path.join(app_dir, "device.json")
-
- # cai.settings.protocol
- protocol_env_name: str = f"{app_name}_PROTOCOL"
- protocol_file: str = os.path.join(app_dir, "protocol")
+ @classmethod
+ def get_account_cache_dir(cls, uin: int) -> Path:
+ cache = cls.cache_dir / str(uin)
+ cache.mkdir(parents=True, exist_ok=True)
+ return cache
@classmethod
def clear_cache(cls):
# FIXME: delete used dir only
- for path in os.listdir(cls.cache_dir):
- if os.path.isdir(path):
+ for path in cls.cache_dir.iterdir():
+ if path.is_dir():
shutil.rmtree(path)
else:
- os.remove(path)
+ path.unlink()
diff --git a/examples/login.py b/examples/login.py
index fd869e3a..b2c48d61 100644
--- a/examples/login.py
+++ b/examples/login.py
@@ -17,8 +17,6 @@
from PIL import Image
from cai.api import Client, make_client
-from cai.settings.device import get_device
-from cai.settings.protocol import get_apk_info
from cai.client.message_service.models import TextElement
from cai.client import Event, GroupMessage, OnlineStatus, PrivateMessage
from cai.exceptions import (
@@ -38,9 +36,7 @@ async def run(closed: asyncio.Event):
assert password and account, ValueError("account or password not set")
account = int(account)
- ci = Client(
- make_client(account, password, get_apk_info(), device=get_device())
- )
+ ci = Client(make_client(account, password))
try:
await ci.login()
From 4d4a6b057856bf8bead39609b66925513a31c3e9 Mon Sep 17 00:00:00 2001
From: yanyongyu <42488585+yanyongyu@users.noreply.github.com>
Date: Sat, 9 Apr 2022 20:25:52 +0800
Subject: [PATCH 085/113] :bug: fix delete online push seq error
---
cai/client/online_push/__init__.py | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/cai/client/online_push/__init__.py b/cai/client/online_push/__init__.py
index 32690aa9..167e2b3a 100644
--- a/cai/client/online_push/__init__.py
+++ b/cai/client/online_push/__init__.py
@@ -44,7 +44,6 @@ def encode_push_response(
push_token: Optional[bytes] = None,
service_type: int = 0,
device_info: Optional[DeviceInfo] = None,
- req_id: int = 0,
) -> Packet:
"""Build online push response packet.
@@ -81,7 +80,6 @@ def encode_push_response(
)
payload = SvcRespPushMsg.to_bytes(0, resp)
req_packet = RequestPacketVersion3(
- req_id=req_id,
servant_name="OnlinePush",
func_name="SvcRespPushMsg",
data=types.MAP({types.STRING("resp"): types.BYTES(payload)}),
@@ -254,9 +252,8 @@ async def handle_req_push(
)
if isinstance(push, SvcReqPush):
- seq = client.next_seq()
pkg = encode_push_response(
- seq,
+ push.seq,
client._session_id,
push.message.uin,
client._siginfo.d2key,
@@ -270,9 +267,8 @@ async def handle_req_push(
)
for info in push.message.msg_info
],
- req_id=push.seq,
)
- await client.send(seq, "OnlinePush.RespPush", pkg)
+ await client.send(push.seq, "OnlinePush.RespPush", pkg)
for info in push.message.msg_info:
key = f"{info.msg_seq}" f"{info.msg_time}" f"{info.msg_uid}"
From 0254e5aa5e50f81137149ea8e8f3af562dbe7c6b Mon Sep 17 00:00:00 2001
From: yanyongyu <42488585+yanyongyu@users.noreply.github.com>
Date: Sat, 9 Apr 2022 20:42:30 +0800
Subject: [PATCH 086/113] :bug: fix incoming packet signed seq
---
cai/client/packet.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/cai/client/packet.py b/cai/client/packet.py
index 79929d4d..bac60eab 100644
--- a/cai/client/packet.py
+++ b/cai/client/packet.py
@@ -244,8 +244,8 @@ def parse_sso_frame(
compress_type,
) = (
sso_frame.start()
- .uint32()
- .uint32()
+ .int32()
+ .int32()
.int32()
.bytes_with_length(4, 4)
.string(4, 4)
From 3e6a61e025824fec05c0dea7008098f6a0544970 Mon Sep 17 00:00:00 2001
From: a1025
Date: Sat, 9 Apr 2022 21:11:16 +0800
Subject: [PATCH 087/113] fix: unipkg seq signed
---
cai/client/packet.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/cai/client/packet.py b/cai/client/packet.py
index 79929d4d..b59da8fd 100644
--- a/cai/client/packet.py
+++ b/cai/client/packet.py
@@ -152,7 +152,7 @@ def build(
)
data.write_with_length(body, offset=4)
return cls().write_with_length(
- struct.pack(">IBIB", 0xB, body_type, seq, 0),
+ struct.pack(">IBiB", 0xB, body_type, seq, 0),
struct.pack(">I", len(str(uin)) + 4),
str(uin).encode(),
qqtea_encrypt(bytes(data), key),
From 7752c206693d8f9d597bea5c7b0b6afaecadab8d Mon Sep 17 00:00:00 2001
From: a1025
Date: Sat, 9 Apr 2022 21:12:45 +0800
Subject: [PATCH 088/113] change: incoming log message
---
cai/client/client.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/cai/client/client.py b/cai/client/client.py
index da6209a2..3ae61c0b 100644
--- a/cai/client/client.py
+++ b/cai/client/client.py
@@ -520,7 +520,7 @@ async def receive(self):
self._siginfo.wt_session_ticket_key,
)
log.network.debug(
- f"(receive: {packet.ret_code}): {packet.command_name}"
+ f"(receive: {packet.seq}): {packet.command_name}"
)
# do not block receive
asyncio.create_task(self._handle_incoming_packet(packet))
From 1d0bd8235b784d527518a06b1a383e94a1acbf0e Mon Sep 17 00:00:00 2001
From: yanyongyu <42488585+yanyongyu@users.noreply.github.com>
Date: Sun, 10 Apr 2022 15:18:03 +0800
Subject: [PATCH 089/113] :wrench: fix config dir error
---
cai/settings/device.py | 4 ++--
cai/settings/protocol.py | 4 ++--
cai/storage/__init__.py | 6 ++++++
3 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/cai/settings/device.py b/cai/settings/device.py
index 81c3b1a4..19621c1e 100644
--- a/cai/settings/device.py
+++ b/cai/settings/device.py
@@ -230,8 +230,8 @@ def new_device(
def get_device(uin: int, cache: bool = True) -> DeviceInfo:
- cache_file = Storage.get_account_cache_dir(uin) / "device.json"
- backup_file = Storage.get_account_cache_dir(uin) / "device.json.bak"
+ cache_file = Storage.get_account_config_dir(uin) / "device.json"
+ backup_file = Storage.get_account_config_dir(uin) / "device.json.bak"
device: DeviceInfo
if cache and cache_file.exists():
diff --git a/cai/settings/protocol.py b/cai/settings/protocol.py
index 8dcd75fb..a9121d0b 100644
--- a/cai/settings/protocol.py
+++ b/cai/settings/protocol.py
@@ -172,9 +172,9 @@ def get_apk_info(_type: str = "IPAD") -> ApkInfo:
def get_protocol(uin: int, cache: bool = True) -> ApkInfo:
- protocol_file = Storage.get_account_cache_dir(uin) / "protocol"
+ protocol_file = Storage.get_account_config_dir(uin) / "protocol"
- if protocol_file.exists():
+ if cache and protocol_file.exists():
type_ = protocol_file.read_text()
else:
type_ = "IPAD"
diff --git a/cai/storage/__init__.py b/cai/storage/__init__.py
index e3e62fd3..d7404235 100644
--- a/cai/storage/__init__.py
+++ b/cai/storage/__init__.py
@@ -44,6 +44,12 @@ def get_account_cache_dir(cls, uin: int) -> Path:
cache.mkdir(parents=True, exist_ok=True)
return cache
+ @classmethod
+ def get_account_config_dir(cls, uin: int) -> Path:
+ config = cls.app_dir / str(uin)
+ config.mkdir(parents=True, exist_ok=True)
+ return config
+
@classmethod
def clear_cache(cls):
# FIXME: delete used dir only
From 1a819ebdc29735401c0630c5f9a273431b238ca0 Mon Sep 17 00:00:00 2001
From: yanyongyu <42488585+yanyongyu@users.noreply.github.com>
Date: Sun, 10 Apr 2022 16:24:39 +0800
Subject: [PATCH 090/113] :construction: process onlinepush reqpush types
---
cai/client/events/__init__.py | 24 ++--
cai/client/events/group.py | 52 +++++---
cai/client/online_push/__init__.py | 75 ++---------
cai/client/online_push/decoders.py | 194 +++++++++++++++++++++++++++++
examples/login.py | 46 +++----
5 files changed, 276 insertions(+), 115 deletions(-)
create mode 100644 cai/client/online_push/decoders.py
diff --git a/cai/client/events/__init__.py b/cai/client/events/__init__.py
index 183ef0b9..d7859013 100644
--- a/cai/client/events/__init__.py
+++ b/cai/client/events/__init__.py
@@ -1,18 +1,22 @@
-from .common import NudgeEvent
+from .base import Event as Event
+from .group import GroupEvent as GroupEvent
+from .common import NudgeEvent as NudgeEvent
+from .group import GroupRedbagEvent as GroupRedbagEvent
+from .group import MemberMutedEvent as MemberMutedEvent
+from .group import MemberUnMutedEvent as MemberUnMutedEvent
+from .group import GroupNameChangedEvent as GroupNameChangedEvent
+from .group import GroupMessageRecalledEvent as GroupMessageRecalledEvent
from .group import (
- GroupEvent,
- MemberMutedEvent,
- MemberUnMutedEvent,
- MemberRecallMessageEvent,
+ GroupMemberSpecialTitleChangedEvent as GroupMemberSpecialTitleChangedEvent,
)
-# from .friend import *
-
-
__all__ = [
+ "Event",
"GroupEvent",
+ "NudgeEvent",
"MemberMutedEvent",
"MemberUnMutedEvent",
- "MemberRecallMessageEvent",
- "NudgeEvent",
+ "GroupMemberSpecialTitleChangedEvent",
+ "GroupNameChangedEvent",
+ "GroupMessageRecalledEvent",
]
diff --git a/cai/client/events/group.py b/cai/client/events/group.py
index ff61ec8d..93675b7d 100644
--- a/cai/client/events/group.py
+++ b/cai/client/events/group.py
@@ -1,36 +1,60 @@
from dataclasses import dataclass
+from typing import Any, Dict, List
from .base import Event
+@dataclass
class GroupEvent(Event):
+ group_id: int
+
@property
def type(self) -> str:
return self.__class__.__name__
@dataclass
-class MemberMutedEvent(GroupEvent):
- group: int
- operator: int
- target: int
- duration: int
+class _GroupGrayTipEvent(GroupEvent):
+ text: str
+ raw_text: str
+ cmds: List[Dict[str, Any]]
+# FIXME: unhandle details
@dataclass
-class MemberUnMutedEvent(GroupEvent):
- group: int
+class GroupRedbagEvent(GroupEvent):
+ sender_id: int
+
+
+@dataclass
+class GroupMemberSpecialTitleChangedEvent(_GroupGrayTipEvent):
+ user_id: int
+
+
+@dataclass
+class GroupNameChangedEvent(_GroupGrayTipEvent):
+ ...
+
+
+@dataclass
+class GroupMessageRecalledEvent(GroupEvent):
+ operator_id: int
+ author_id: int
+ msg_seq: int
+ msg_time: int
+ msg_type: int
+ msg_random: int
+ is_anony_msg: bool
+
+
+@dataclass
+class MemberMutedEvent(GroupEvent):
operator: int
target: int
+ duration: int
@dataclass
-class MemberRecallMessageEvent(GroupEvent):
- group: int
+class MemberUnMutedEvent(GroupEvent):
operator: int
- operator_type: int
target: int
-
- msg_rand: int
- msg_seq: int
- msg_time: int
diff --git a/cai/client/online_push/__init__.py b/cai/client/online_push/__init__.py
index 167e2b3a..150cbafb 100644
--- a/cai/client/online_push/__init__.py
+++ b/cai/client/online_push/__init__.py
@@ -18,8 +18,9 @@
from cai.utils.jce import RequestPacketVersion3
from cai.client.message_service import MESSAGE_DECODERS
from cai.client.packet import UniPacket, IncomingPacket
-from cai.pb.im.oidb.cmd0x857.troop_tips import TemplParam, NotifyMsgBody
+from cai.pb.im.oidb.cmd0x857.troop_tips import TemplParam
+from .decoders import ONLINEPUSH_DECODERS
from .jce import DelMsgInfo, DeviceInfo, SvcRespPushMsg
from .command import (
PushMsg,
@@ -271,73 +272,21 @@ async def handle_req_push(
await client.send(push.seq, "OnlinePush.RespPush", pkg)
for info in push.message.msg_info:
- key = f"{info.msg_seq}" f"{info.msg_time}" f"{info.msg_uid}"
+ key = f"{info.msg_seq}{info.msg_time}{info.msg_uid}"
should_skip = key in client._online_push_cache
client._online_push_cache[key] = None
if should_skip:
continue
- if info.msg_type == 169:
- # handleC2COnlinePushMsgResp
- pass
- elif info.msg_type == 8:
- # HandleShMsgType0x08
- pass
- elif info.msg_type == 132:
- # HandleShMsgType0x84
- pass
- elif info.msg_type == 732:
- content = info.vec_msg
- sub_type = content[4]
- gid = int.from_bytes(content[:4], "big")
-
- if sub_type in (0x14, 0x11):
- notify = NotifyMsgBody.FromString(content[7:])
- if sub_type == 0x14: # nudge
- client.dispatch_event(
- events.NudgeEvent(
- **_parse_poke(
- notify.general_gray_tip.templ_param,
- default=info.from_uin,
- ),
- group=gid,
- )
- )
- elif sub_type == 0x11: # recall
- msg = notify.recall.recalled_msg_list[0]
- client.dispatch_event(
- events.MemberRecallMessageEvent(
- gid,
- notify.recall.uin,
- notify.recall.op_type,
- msg.author_uin,
- msg.msg_random,
- msg.seq,
- msg.time,
- )
- )
- elif sub_type == 0x0C: # mute event
- operator = int.from_bytes(
- content[6:10], "big", signed=False
- )
- target = int.from_bytes(content[16:20], "big", signed=False)
- duration = int.from_bytes(
- content[20:24], "big", signed=False
- )
- if duration > 0: # muted
- client.dispatch_event(
- events.MemberMutedEvent(
- gid, operator, target, duration
- )
- )
- else:
- client.dispatch_event(
- events.MemberUnMutedEvent(gid, operator, target)
- )
- elif info.msg_type == 528:
- # TODO: parse friend event
- pass
-
+ Decoder = ONLINEPUSH_DECODERS.get(info.msg_type, None)
+ if not Decoder:
+ logger.debug(
+ f"{push.command_name}: "
+ f"Received unknown onlinepush type {info.msg_type}."
+ )
+ continue
+ for event in Decoder(info):
+ client.dispatch_event(event)
return push
diff --git a/cai/client/online_push/decoders.py b/cai/client/online_push/decoders.py
new file mode 100644
index 00000000..75d352ab
--- /dev/null
+++ b/cai/client/online_push/decoders.py
@@ -0,0 +1,194 @@
+import re
+import json
+from typing import Any, Dict, List, Tuple, Callable, Iterator
+
+from cai.log import logger
+from cai.client.events import Event
+from cai.pb.im.oidb.cmd0x857.troop_tips import NotifyMsgBody
+from cai.client.events.group import (
+ GroupRedbagEvent,
+ GroupNameChangedEvent,
+ GroupMessageRecalledEvent,
+ GroupMemberSpecialTitleChangedEvent,
+)
+
+from .jce import MessageInfo
+
+DT = Callable[[MessageInfo], Iterator[Event]]
+
+
+def parse_cmds(content: str) -> Tuple[str, List[Dict[str, Any]]]:
+ cmds: List[Dict[str, Any]] = []
+ texts: List[str] = []
+ text_begin = 0
+ for cmd in re.finditer(r"<([^>]+)>", content):
+ texts.append(content[text_begin : cmd.pos + cmd.start()])
+ text_begin = cmd.pos + cmd.end()
+ cmd_obj = json.loads(cmd.group(1))
+ cmd_obj["start_index"] = cmd.pos + cmd.start()
+ cmd_obj["end_index"] = cmd.pos + cmd.end()
+ cmds.append(cmd_obj)
+ if "text" in cmd_obj:
+ texts.append(cmd_obj["text"])
+ texts.append(content[text_begin:])
+ return "".join(texts), cmds
+
+
+class GroupEventDecoder:
+ __slots__ = ()
+
+ @classmethod
+ def decode(cls, info: MessageInfo) -> Iterator[Event]:
+ """Group Event Decoder.
+
+ Note:
+ Source:
+ com.tencent.imcore.message.OnLinePushMessageProcessor.ProcessOneMsg.a
+ """
+ content = info.vec_msg
+ sub_type = content[4]
+
+ sub_decoders: Dict[int, DT] = {
+ # 6: cls.decode_troop_exit, # troop exit message
+ # 11: cls.decode_group_visitor_join, # group visitor join tencent.im.group.cmd0x2dc
+ 12: cls.decode_troop_gag,
+ # 13: cls.decode_group_visitor_join,
+ 14: cls.decode_troop_gag,
+ # 15: cls.decode_troop, # troop manager
+ 16: cls.decode_troop_tips,
+ 17: cls.decode_troop_tips,
+ 20: cls.decode_troop_tips,
+ 21: cls.decode_troop_tips,
+ }
+ Decoder = sub_decoders.get(sub_type, None)
+ if not Decoder:
+ logger.debug(
+ "OnlinePush.ReqPush: GroupEventDecoder cannot "
+ f"decode event with subtype {sub_type}"
+ )
+ return
+ yield from Decoder(info)
+
+ @classmethod
+ def decode_troop_gag(cls, info: MessageInfo) -> Iterator[Event]:
+ """Troop Gag Manager.
+
+ Sub Type: 12, 14
+ """
+ ...
+
+ @classmethod
+ def decode_troop_tips(cls, info: MessageInfo) -> Iterator[Event]:
+ """Troop Tips Message Manager.
+
+ Sub Type: 16, 17, 20, 21
+
+ Prompt Type:
+ 1: red/gray tip
+ 2: ignore
+ 3: ignore
+ 4: ignore
+ 5: ignore
+ 6: troop feeds
+ 7: message recall
+ 8: ignore
+ 9: notify obj msg update push
+ 10: 0x857 werewolf push
+ 11: 0x857 game status notify
+ 12: apollo msg
+ 13: gold msg tips
+ 14: ignore
+ 15: miniapp notify -> group open sys msg
+ 16: ignore
+ 17: recv msg set changed
+ 18: prompt troop form tips
+ 19: msg media push
+ 20: general gray tip
+ 21: msg video push
+ 22: troop location push
+ 23: msg sing push
+ 24: group info change
+ 25: group announce tbc info
+ 26: qq video game push
+ 27: group digest msg
+ 28: ignore
+ 29: ignore
+ 30: qq live notify
+ 31: group digest msg summary
+ 32: revert gray tips traceless
+ """
+ content = info.vec_msg
+ if len(content) <= 7:
+ raise StopIteration
+ tip = NotifyMsgBody.FromString(content[7:])
+ prompt_type = tip.enum_type
+ group_id = tip.group_code
+ service_type = tip.service_type
+ if prompt_type == 1:
+ if tip.HasField("redtips"):
+ # FIXME: more detailed events
+ yield GroupRedbagEvent(
+ group_id=group_id, sender_id=tip.redtips.sender_uin
+ )
+ if tip.HasField("graytips"):
+ content = tip.graytips.content.decode("utf-8")
+ if content:
+ text, cmds = parse_cmds(content)
+ if service_type == 6:
+ yield GroupMemberSpecialTitleChangedEvent(
+ group_id=group_id,
+ text=text,
+ raw_text=content,
+ cmds=cmds,
+ user_id=tip.graytips.receiver_uin,
+ )
+ elif service_type == 11:
+ # Unknown
+ pass
+ elif service_type == 12:
+ yield GroupNameChangedEvent(
+ group_id=group_id,
+ text=text,
+ raw_text=content,
+ cmds=cmds,
+ )
+ else:
+ logger.debug(
+ f"Unknown service type: {service_type}, content: {content}"
+ )
+ elif prompt_type == 7:
+ if tip.HasField("recall"):
+ msg_list = tip.recall.recalled_msg_list
+ for msg in msg_list:
+ yield GroupMessageRecalledEvent(
+ group_id=group_id,
+ operator_id=tip.recall.uin,
+ author_id=msg.author_uin,
+ msg_seq=msg.seq,
+ msg_time=msg.time,
+ msg_type=msg.msg_type,
+ msg_random=msg.msg_random,
+ is_anony_msg=bool(msg.is_anony_msg),
+ )
+ elif prompt_type == 20:
+ if tip.HasField("general_gray_tip"):
+ ...
+ elif prompt_type == 24:
+ if tip.HasField("group_info_change"):
+ ...
+ elif prompt_type == 27:
+ if tip.HasField("qq_group_digest_msg"):
+ ...
+
+
+ONLINEPUSH_DECODERS: Dict[int, DT] = {
+ # 169: handleC2COnlinePushMsgResp,
+ # 8: HandleShMsgType0x08
+ # 132: HandleShMsgType0x84
+ 732: GroupEventDecoder.decode
+}
+"""Online Push ReqPush Decoders.
+
+Note:
+ Source: com.tencent.imcore.message.OnLinePushMessageProcessor.ProcessOneMsg.a
+"""
diff --git a/examples/login.py b/examples/login.py
index b2c48d61..b523fa46 100644
--- a/examples/login.py
+++ b/examples/login.py
@@ -8,6 +8,7 @@
"""
import os
import sys
+import signal
import asyncio
import logging
import functools
@@ -29,30 +30,13 @@
)
-async def run(closed: asyncio.Event):
- account = os.getenv("ACCOUNT", "")
- password = os.getenv("PASSWORD")
+async def run(ci: Client):
try:
- assert password and account, ValueError("account or password not set")
-
- account = int(account)
- ci = Client(make_client(account, password))
-
- try:
- await ci.login()
- print(f"Login Success! Client status: {ci.client.status!r}")
- except Exception as e:
- await handle_failure(ci, e)
- ci.client.add_event_listener(functools.partial(listen_message, ci))
- while True:
- for status in OnlineStatus:
- if status == OnlineStatus.Offline:
- continue
- print(status, "Changed")
- # await ci.set_status(status, 67, True)
- await asyncio.sleep(360)
- finally:
- closed.set()
+ await ci.login()
+ print(f"Login Success! Client status: {ci.client.status!r}")
+ except Exception as e:
+ await handle_failure(ci, e)
+ ci.client.add_event_listener(functools.partial(listen_message, ci))
async def listen_message(client: Client, _, event: Event):
@@ -169,14 +153,20 @@ async def handle_failure(client: Client, exception: Exception):
format="%(asctime)s %(name)s[%(levelname)s]: %(message)s",
)
+ account = os.getenv("ACCOUNT", "")
+ password = os.getenv("PASSWORD")
+ assert password and account, ValueError("account or password not set")
+ account = int(account)
+ ci = Client(make_client(account, password))
+
close = asyncio.Event()
async def wait_cleanup():
await close.wait()
+ await ci.client.close()
loop = asyncio.get_event_loop()
- loop.create_task(run(close))
- try:
- loop.run_until_complete(wait_cleanup())
- except KeyboardInterrupt:
- close.set()
+ loop.add_signal_handler(signal.SIGINT, close.set)
+ loop.add_signal_handler(signal.SIGTERM, close.set)
+ loop.create_task(run(ci))
+ loop.run_until_complete(wait_cleanup())
From a99179e26df7a38eac95bc5dd8ccda3edb7c89cd Mon Sep 17 00:00:00 2001
From: yanyongyu <42488585+yanyongyu@users.noreply.github.com>
Date: Mon, 11 Apr 2022 12:18:37 +0800
Subject: [PATCH 091/113] :sparkles: parse nudge event
---
cai/client/events/group.py | 30 ++++++++++++++++++++++++++++++
cai/client/online_push/decoders.py | 18 ++++++++++++++++--
2 files changed, 46 insertions(+), 2 deletions(-)
diff --git a/cai/client/events/group.py b/cai/client/events/group.py
index 93675b7d..013ea571 100644
--- a/cai/client/events/group.py
+++ b/cai/client/events/group.py
@@ -20,6 +20,13 @@ class _GroupGrayTipEvent(GroupEvent):
cmds: List[Dict[str, Any]]
+@dataclass
+class _GroupGeneralGrayTipEvent(GroupEvent):
+ template_id: int
+ template_text: str
+ template_params: Dict[str, str]
+
+
# FIXME: unhandle details
@dataclass
class GroupRedbagEvent(GroupEvent):
@@ -47,6 +54,29 @@ class GroupMessageRecalledEvent(GroupEvent):
is_anony_msg: bool
+@dataclass
+class GroupNudgeEvent(_GroupGeneralGrayTipEvent):
+ @property
+ def sender_id(self) -> int:
+ return int(self.template_params["uin_str1"])
+
+ @property
+ def receiver_id(self) -> int:
+ return int(self.template_params["uin_str2"])
+
+ @property
+ def action_text(self) -> str:
+ return self.template_params["action_str"]
+
+ @property
+ def action_img(self) -> str:
+ return self.template_params["action_img_url"]
+
+ @property
+ def suffix_text(self) -> str:
+ return self.template_params["suffix_str"]
+
+
@dataclass
class MemberMutedEvent(GroupEvent):
operator: int
diff --git a/cai/client/online_push/decoders.py b/cai/client/online_push/decoders.py
index 75d352ab..eefbfbcb 100644
--- a/cai/client/online_push/decoders.py
+++ b/cai/client/online_push/decoders.py
@@ -6,6 +6,7 @@
from cai.client.events import Event
from cai.pb.im.oidb.cmd0x857.troop_tips import NotifyMsgBody
from cai.client.events.group import (
+ GroupNudgeEvent,
GroupRedbagEvent,
GroupNameChangedEvent,
GroupMessageRecalledEvent,
@@ -119,7 +120,7 @@ def decode_troop_tips(cls, info: MessageInfo) -> Iterator[Event]:
"""
content = info.vec_msg
if len(content) <= 7:
- raise StopIteration
+ return
tip = NotifyMsgBody.FromString(content[7:])
prompt_type = tip.enum_type
group_id = tip.group_code
@@ -172,7 +173,20 @@ def decode_troop_tips(cls, info: MessageInfo) -> Iterator[Event]:
)
elif prompt_type == 20:
if tip.HasField("general_gray_tip"):
- ...
+ graytip = tip.general_gray_tip
+ busi_type = graytip.busi_type
+ busi_id = graytip.busi_id
+ if busi_type == 12 and busi_id == 1061:
+ # com.tencent.mobileqq.activity.aio.avatardoubletap.PaiYiPaiMsgUtil
+ yield GroupNudgeEvent(
+ group_id=group_id,
+ template_id=graytip.templ_id,
+ template_text=graytip.content.decode("utf-8"),
+ template_params=dict(
+ (p.name.decode("utf-8"), p.value.decode("utf-8"))
+ for p in graytip.templ_param
+ ),
+ )
elif prompt_type == 24:
if tip.HasField("group_info_change"):
...
From 3369b13855db8706d842d86eacd87e4e30188011 Mon Sep 17 00:00:00 2001
From: yanyongyu <42488585+yanyongyu@users.noreply.github.com>
Date: Mon, 11 Apr 2022 14:33:23 +0800
Subject: [PATCH 092/113] :sparkles: add group lucky character events
---
cai/client/events/group.py | 67 ++++++++++++++++++++++++++----
cai/client/online_push/decoders.py | 61 +++++++++++++++++++++++++++
2 files changed, 121 insertions(+), 7 deletions(-)
diff --git a/cai/client/events/group.py b/cai/client/events/group.py
index 013ea571..2a55fa07 100644
--- a/cai/client/events/group.py
+++ b/cai/client/events/group.py
@@ -13,6 +13,7 @@ def type(self) -> str:
return self.__class__.__name__
+# online push graytip
@dataclass
class _GroupGrayTipEvent(GroupEvent):
text: str
@@ -20,13 +21,6 @@ class _GroupGrayTipEvent(GroupEvent):
cmds: List[Dict[str, Any]]
-@dataclass
-class _GroupGeneralGrayTipEvent(GroupEvent):
- template_id: int
- template_text: str
- template_params: Dict[str, str]
-
-
# FIXME: unhandle details
@dataclass
class GroupRedbagEvent(GroupEvent):
@@ -43,6 +37,7 @@ class GroupNameChangedEvent(_GroupGrayTipEvent):
...
+# online push msg recall
@dataclass
class GroupMessageRecalledEvent(GroupEvent):
operator_id: int
@@ -54,6 +49,14 @@ class GroupMessageRecalledEvent(GroupEvent):
is_anony_msg: bool
+# online push general graytip
+@dataclass
+class _GroupGeneralGrayTipEvent(GroupEvent):
+ template_id: int
+ template_text: str
+ template_params: Dict[str, str]
+
+
@dataclass
class GroupNudgeEvent(_GroupGeneralGrayTipEvent):
@property
@@ -77,6 +80,56 @@ def suffix_text(self) -> str:
return self.template_params["suffix_str"]
+@dataclass
+class GroupLuckyCharacterEvent(_GroupGeneralGrayTipEvent):
+ @property
+ def user_id(self) -> int:
+ return int(self.template_params["uin"])
+
+ @property
+ def detail_url(self) -> str:
+ return self.template_params["detail_url"]
+
+
+@dataclass
+class GroupLuckyCharacterInitEvent(GroupLuckyCharacterEvent): # 抽中并开启
+ @property
+ def lucky_character_url(self) -> str:
+ return self.template_params["img_url"]
+
+
+@dataclass
+class GroupLuckyCharacterNewEvent(GroupLuckyCharacterEvent): # 抽中
+ @property
+ def lucky_character_url(self) -> str:
+ return self.template_params["img_url"]
+
+
+@dataclass
+class GroupLuckyCharacterChangedEvent(GroupLuckyCharacterEvent): # 更换
+ @property
+ def previous_character_url(self) -> str:
+ return self.template_params["img_url_1"]
+
+ @property
+ def new_character_url(self) -> str:
+ return self.template_params["img_url_2"]
+
+
+@dataclass
+class GroupLuckyCharacterClosedEvent(GroupLuckyCharacterEvent): # 关闭
+ @property
+ def lucky_character_url(self) -> str:
+ return self.template_params["img_url"]
+
+
+@dataclass
+class GroupLuckyCharacterOpenedEvent(GroupLuckyCharacterEvent): # 开启
+ @property
+ def lucky_character_url(self) -> str:
+ return self.template_params["img_url"]
+
+
@dataclass
class MemberMutedEvent(GroupEvent):
operator: int
diff --git a/cai/client/online_push/decoders.py b/cai/client/online_push/decoders.py
index eefbfbcb..a77ba88e 100644
--- a/cai/client/online_push/decoders.py
+++ b/cai/client/online_push/decoders.py
@@ -10,6 +10,11 @@
GroupRedbagEvent,
GroupNameChangedEvent,
GroupMessageRecalledEvent,
+ GroupLuckyCharacterNewEvent,
+ GroupLuckyCharacterInitEvent,
+ GroupLuckyCharacterClosedEvent,
+ GroupLuckyCharacterOpenedEvent,
+ GroupLuckyCharacterChangedEvent,
GroupMemberSpecialTitleChangedEvent,
)
@@ -187,12 +192,68 @@ def decode_troop_tips(cls, info: MessageInfo) -> Iterator[Event]:
for p in graytip.templ_param
),
)
+ # elif busi_type == 12 and busi_id == 1062:
+ # # 动作,效果
+ elif busi_id == 1069: # busi_type == 1
+ yield GroupLuckyCharacterInitEvent(
+ group_id=group_id,
+ template_id=graytip.templ_id,
+ template_text=graytip.content.decode("utf-8"),
+ template_params=dict(
+ (p.name.decode("utf-8"), p.value.decode("utf-8"))
+ for p in graytip.templ_param
+ ),
+ )
+ elif busi_id == 1070:
+ yield GroupLuckyCharacterNewEvent(
+ group_id=group_id,
+ template_id=graytip.templ_id,
+ template_text=graytip.content.decode("utf-8"),
+ template_params=dict(
+ (p.name.decode("utf-8"), p.value.decode("utf-8"))
+ for p in graytip.templ_param
+ ),
+ )
+ elif busi_id == 1071:
+ yield GroupLuckyCharacterChangedEvent(
+ group_id=group_id,
+ template_id=graytip.templ_id,
+ template_text=graytip.content.decode("utf-8"),
+ template_params=dict(
+ (p.name.decode("utf-8"), p.value.decode("utf-8"))
+ for p in graytip.templ_param
+ ),
+ )
+ elif busi_id == 1072:
+ yield GroupLuckyCharacterClosedEvent(
+ group_id=group_id,
+ template_id=graytip.templ_id,
+ template_text=graytip.content.decode("utf-8"),
+ template_params=dict(
+ (p.name.decode("utf-8"), p.value.decode("utf-8"))
+ for p in graytip.templ_param
+ ),
+ )
+ elif busi_id == 1073:
+ yield GroupLuckyCharacterOpenedEvent(
+ group_id=group_id,
+ template_id=graytip.templ_id,
+ template_text=graytip.content.decode("utf-8"),
+ template_params=dict(
+ (p.name.decode("utf-8"), p.value.decode("utf-8"))
+ for p in graytip.templ_param
+ ),
+ )
+ # TODO: busi_id 1052, 1053, 1054, 1067 group honor
elif prompt_type == 24:
if tip.HasField("group_info_change"):
...
elif prompt_type == 27:
if tip.HasField("qq_group_digest_msg"):
...
+ elif prompt_type == 32:
+ if tip.HasField("revert_graytips_traceless"):
+ ...
ONLINEPUSH_DECODERS: Dict[int, DT] = {
From 1b8005902ac4b0c89a50e3dafe59f46ebd7c9bac Mon Sep 17 00:00:00 2001
From: local
Date: Mon, 11 Apr 2022 16:18:18 +0800
Subject: [PATCH 093/113] fix: receiver bug
---
cai/client/client.py | 12 ++++++++----
cai/connection/__init__.py | 1 -
2 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/cai/client/client.py b/cai/client/client.py
index 470837dc..79aee216 100644
--- a/cai/client/client.py
+++ b/cai/client/client.py
@@ -352,6 +352,7 @@ def _recv_done_cb(self, task: asyncio.Task):
else:
log.network.warning("receiver stopped")
asyncio.create_task(self.close())
+ task.cancel()
async def disconnect(self) -> None:
"""Disconnect if already connected to the server."""
@@ -516,7 +517,13 @@ async def receive(self):
- 4
)
# FIXME: length < 0 ?
+
data = await self.connection.read_bytes(length)
+ except ConnectionError as e:
+ log.logger.error(f"{self.uin} connection lost: {str(e)}")
+ break
+
+ try:
packet = IncomingPacket.parse(
data,
self._key,
@@ -528,11 +535,8 @@ async def receive(self):
)
# do not block receive
asyncio.create_task(self._handle_incoming_packet(packet))
- except ConnectionAbortedError as e:
- log.logger.error(f"{self.uin} connection lost: {str(e)}")
- break
except Exception as e:
- log.logger.exception(e)
+ log.logger.exception("Unexpected error raised")
@property
def listeners(self) -> Set[LT]:
diff --git a/cai/connection/__init__.py b/cai/connection/__init__.py
index 750a9499..5d35def1 100644
--- a/cai/connection/__init__.py
+++ b/cai/connection/__init__.py
@@ -97,7 +97,6 @@ async def _connect(self):
async def close(self):
if self._writer:
self._writer.close()
- await self._writer.wait_closed()
self._writer = None
self._reader = None
self._closed.set()
From 69c097ff99cc0f63ea024919449a4362be551f6e Mon Sep 17 00:00:00 2001
From: wyapx
Date: Tue, 12 Apr 2022 12:11:54 +0800
Subject: [PATCH 094/113] add: CustomDataElement
---
cai/client/message_service/decoders.py | 7 +++++++
cai/client/message_service/encoders.py | 7 +++++++
cai/client/message_service/models.py | 10 ++++++++++
3 files changed, 24 insertions(+)
diff --git a/cai/client/message_service/decoders.py b/cai/client/message_service/decoders.py
index f17b2f50..3b1ed163 100644
--- a/cai/client/message_service/decoders.py
+++ b/cai/client/message_service/decoders.py
@@ -36,6 +36,7 @@
VoiceElement,
PrivateMessage,
RichMsgElement,
+ CustomDataElement,
FlashImageElement,
SmallEmojiElement,
)
@@ -215,6 +216,12 @@ def parse_elements(elems: Sequence[Elem], ptt: Optional[Ptt]) -> List[Element]:
+ "/0",
)
)
+ elif elem.HasField("open_qq_data"):
+ res.append(
+ CustomDataElement(
+ data=elem.open_qq_data.car_qq_data
+ )
+ )
elif elem.HasField("common_elem"):
service_type = elem.common_elem.service_type
# PokeMsgElemDecoder
diff --git a/cai/client/message_service/encoders.py b/cai/client/message_service/encoders.py
index 98b454cd..aba6b6fa 100644
--- a/cai/client/message_service/encoders.py
+++ b/cai/client/message_service/encoders.py
@@ -19,6 +19,7 @@
CustomFace,
ShakeWindow,
LightAppElem,
+ OpenQQData
)
from . import models
@@ -131,6 +132,12 @@ def build_msg(elements: Sequence[models.Element]) -> MsgBody:
elif isinstance(e, models.VoiceElement):
ptt = e.to_ptt()
break
+ elif isinstance(e, models.CustomDataElement):
+ ret.append(
+ Elem(
+ open_qq_data=OpenQQData(car_qq_data=e.data)
+ )
+ )
else:
raise NotImplementedError(e)
diff --git a/cai/client/message_service/models.py b/cai/client/message_service/models.py
index 821bd3f6..19eba9bf 100644
--- a/cai/client/message_service/models.py
+++ b/cai/client/message_service/models.py
@@ -232,3 +232,13 @@ class ShakeElement(Element):
@property
def type(self) -> str:
return "shake"
+
+
+@dataclass
+class CustomDataElement(Element):
+ data: bytes
+
+ @property
+ def type(self) -> str:
+ return "custom_daata"
+
From 454f2744719c5b26e660cb0660bbed1948dd7fa9 Mon Sep 17 00:00:00 2001
From: yanyongyu <42488585+yanyongyu@users.noreply.github.com>
Date: Tue, 12 Apr 2022 13:42:38 +0800
Subject: [PATCH 095/113] :construction: process event type default
---
cai/client/events/base.py | 8 ++++----
cai/client/events/group.py | 4 ----
cai/client/online_push/__init__.py | 17 -----------------
3 files changed, 4 insertions(+), 25 deletions(-)
diff --git a/cai/client/events/base.py b/cai/client/events/base.py
index 953d5927..5a3b1c92 100644
--- a/cai/client/events/base.py
+++ b/cai/client/events/base.py
@@ -9,11 +9,11 @@
https://github.com/cscs181/CAI/blob/master/LICENSE
"""
-import abc
+from dataclasses import dataclass
-class Event(abc.ABC):
+@dataclass
+class Event:
@property
- @abc.abstractmethod
def type(self) -> str:
- raise NotImplementedError
+ return self.__class__.__name__
diff --git a/cai/client/events/group.py b/cai/client/events/group.py
index 2a55fa07..2b5011e6 100644
--- a/cai/client/events/group.py
+++ b/cai/client/events/group.py
@@ -8,10 +8,6 @@
class GroupEvent(Event):
group_id: int
- @property
- def type(self) -> str:
- return self.__class__.__name__
-
# online push graytip
@dataclass
diff --git a/cai/client/online_push/__init__.py b/cai/client/online_push/__init__.py
index 150cbafb..dd53ab41 100644
--- a/cai/client/online_push/__init__.py
+++ b/cai/client/online_push/__init__.py
@@ -218,23 +218,6 @@ async def handle_push_msg(
return push
-def _parse_poke(params: Sequence[TemplParam], default: int) -> dict:
- res = {"target": None, "sender": None, "action": None, "suffix": None}
- for p in params:
- name, value = p.name.decode(), p.value.decode()
- if name == "uin_str1":
- res["sender"] = int(value)
- elif name == "uin_str2":
- res["target"] = int(value)
- elif name == "suffix_str":
- res["suffix"] = value
- elif name == "action_str":
- res["action"] = value
- if not res["target"]:
- res["target"] = default
- return res
-
-
# OnlinePush.ReqPush
async def handle_req_push(
client: "Client", packet: IncomingPacket
From c7313716437772f3c46ce921c0abe62cd296c37f Mon Sep 17 00:00:00 2001
From: yanyongyu <42488585+yanyongyu@users.noreply.github.com>
Date: Tue, 12 Apr 2022 13:46:44 +0800
Subject: [PATCH 096/113] :memo: update readme
---
README.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index 19c23b5f..7f152217 100644
--- a/README.md
+++ b/README.md
@@ -16,8 +16,8 @@ _✨ Yet Another Bot Framework for Tencent QQ Written in Python ✨_
-
-
+
+
From 60f7f84682d729fe8aa35860889d0a30151cc921 Mon Sep 17 00:00:00 2001
From: yanyongyu <42488585+yanyongyu@users.noreply.github.com>
Date: Tue, 12 Apr 2022 14:41:08 +0800
Subject: [PATCH 097/113] :sparkles: add group member mute event
---
cai/client/events/__init__.py | 8 +++----
cai/client/events/group.py | 12 +++++-----
cai/client/online_push/decoders.py | 36 +++++++++++++++++++++++++++++-
3 files changed, 45 insertions(+), 11 deletions(-)
diff --git a/cai/client/events/__init__.py b/cai/client/events/__init__.py
index d7859013..bf311aa3 100644
--- a/cai/client/events/__init__.py
+++ b/cai/client/events/__init__.py
@@ -2,9 +2,9 @@
from .group import GroupEvent as GroupEvent
from .common import NudgeEvent as NudgeEvent
from .group import GroupRedbagEvent as GroupRedbagEvent
-from .group import MemberMutedEvent as MemberMutedEvent
-from .group import MemberUnMutedEvent as MemberUnMutedEvent
+from .group import GroupMemberMutedEvent as GroupMemberMutedEvent
from .group import GroupNameChangedEvent as GroupNameChangedEvent
+from .group import GroupMemberUnMutedEvent as GroupMemberUnMutedEvent
from .group import GroupMessageRecalledEvent as GroupMessageRecalledEvent
from .group import (
GroupMemberSpecialTitleChangedEvent as GroupMemberSpecialTitleChangedEvent,
@@ -14,8 +14,8 @@
"Event",
"GroupEvent",
"NudgeEvent",
- "MemberMutedEvent",
- "MemberUnMutedEvent",
+ "GroupMemberMutedEvent",
+ "GroupMemberUnMutedEvent",
"GroupMemberSpecialTitleChangedEvent",
"GroupNameChangedEvent",
"GroupMessageRecalledEvent",
diff --git a/cai/client/events/group.py b/cai/client/events/group.py
index 2b5011e6..fcf2a4e5 100644
--- a/cai/client/events/group.py
+++ b/cai/client/events/group.py
@@ -127,13 +127,13 @@ def lucky_character_url(self) -> str:
@dataclass
-class MemberMutedEvent(GroupEvent):
- operator: int
- target: int
+class GroupMemberMutedEvent(GroupEvent):
+ operator_id: int
+ target_id: int
duration: int
@dataclass
-class MemberUnMutedEvent(GroupEvent):
- operator: int
- target: int
+class GroupMemberUnMutedEvent(GroupEvent):
+ operator_id: int
+ target_id: int
diff --git a/cai/client/online_push/decoders.py b/cai/client/online_push/decoders.py
index a77ba88e..560858d9 100644
--- a/cai/client/online_push/decoders.py
+++ b/cai/client/online_push/decoders.py
@@ -4,11 +4,14 @@
from cai.log import logger
from cai.client.events import Event
+from cai.utils.binary import Packet
from cai.pb.im.oidb.cmd0x857.troop_tips import NotifyMsgBody
from cai.client.events.group import (
GroupNudgeEvent,
GroupRedbagEvent,
+ GroupMemberMutedEvent,
GroupNameChangedEvent,
+ GroupMemberUnMutedEvent,
GroupMessageRecalledEvent,
GroupLuckyCharacterNewEvent,
GroupLuckyCharacterInitEvent,
@@ -80,8 +83,36 @@ def decode_troop_gag(cls, info: MessageInfo) -> Iterator[Event]:
"""Troop Gag Manager.
Sub Type: 12, 14
+
+ Note:
+ Source: com.tencent.mobileqq.troop.utils.TroopGagMgr.a
"""
- ...
+ data = Packet(info.vec_msg)
+ group_id, sub_type = data.start().uint32().uint8().execute()
+ if sub_type == 12:
+ operator_id = data.start().offset(6).uint32().execute()[0]
+
+ offset = 16
+ count = info.vec_msg[14]
+ for _ in range(count):
+ target_id, duration = (
+ data.start().offset(offset).uint32().uint32().execute()
+ )
+ offset += 8
+ if duration > 0:
+ yield GroupMemberMutedEvent(
+ group_id=group_id,
+ operator_id=operator_id,
+ target_id=target_id,
+ duration=duration,
+ )
+ else:
+ yield GroupMemberUnMutedEvent(
+ group_id=group_id,
+ operator_id=operator_id,
+ target_id=target_id,
+ )
+ # elif sub_type == 14:
@classmethod
def decode_troop_tips(cls, info: MessageInfo) -> Iterator[Event]:
@@ -122,6 +153,9 @@ def decode_troop_tips(cls, info: MessageInfo) -> Iterator[Event]:
30: qq live notify
31: group digest msg summary
32: revert gray tips traceless
+
+ Note:
+ Source: com.tencent.mobileqq.troop.utils.TroopTipsMsgMgr.a
"""
content = info.vec_msg
if len(content) <= 7:
From 0799e2abe79681954a14620637e59b9327bc8d37 Mon Sep 17 00:00:00 2001
From: yanyongyu <42488585+yanyongyu@users.noreply.github.com>
Date: Tue, 12 Apr 2022 17:11:48 +0800
Subject: [PATCH 098/113] :construction: move comments
---
cai/client/message_service/decoders.py | 38 ++++++++++++++++++--------
cai/client/online_push/decoders.py | 13 +++++----
2 files changed, 33 insertions(+), 18 deletions(-)
diff --git a/cai/client/message_service/decoders.py b/cai/client/message_service/decoders.py
index 3b1ed163..950281d9 100644
--- a/cai/client/message_service/decoders.py
+++ b/cai/client/message_service/decoders.py
@@ -13,8 +13,8 @@
from typing import Dict, List, Callable, Optional, Sequence
from cai.log import logger
+from cai.client.events import Event
from cai.pb.msf.msg.comm import Msg
-from cai.client.events.base import Event
from cai.pb.im.msg.msg_body import Ptt, Elem
from cai.pb.im.msg.service.comm_elem import (
MsgElemInfo_servtype2,
@@ -217,11 +217,7 @@ def parse_elements(elems: Sequence[Elem], ptt: Optional[Ptt]) -> List[Element]:
)
)
elif elem.HasField("open_qq_data"):
- res.append(
- CustomDataElement(
- data=elem.open_qq_data.car_qq_data
- )
- )
+ res.append(CustomDataElement(data=elem.open_qq_data.car_qq_data))
elif elem.HasField("common_elem"):
service_type = elem.common_elem.service_type
# PokeMsgElemDecoder
@@ -275,14 +271,15 @@ def parse_elements(elems: Sequence[Elem], ptt: Optional[Ptt]) -> List[Element]:
class BuddyMessageDecoder:
+ """Buddy Message Decoder.
+
+ Note:
+ Source:
+ com.tencent.mobileqq.service.message.codec.decoder.buddyMessage.BuddyMessageDecoder
+ """
+
@classmethod
def decode(cls, message: Msg) -> Optional[Event]:
- """Buddy Message Decoder.
-
- Note:
- Source:
- com.tencent.mobileqq.service.message.codec.decoder.buddyMessage.BuddyMessageDecoder
- """
sub_decoders: Dict[int, Callable[[Msg], Optional[Event]]] = {
11: cls.decode_normal_buddy,
# 129: OnlineFileDecoder,
@@ -344,10 +341,27 @@ def decode_normal_buddy(cls, message: Msg) -> Optional[Event]:
class TroopMessageDecoder:
+ """Troop Message Decoder(Processor).
+
+ Note:
+ Source: com.tencent.mobileqq.troop.data.TroopMessageProcessor
+ """
+
+ __slots__ = ()
+
long_msg_fragment_store: Dict[int, List[Msg]] = {}
@classmethod
def decode(cls, message: Msg) -> Optional[Event]:
+ """Troop Message Processor.
+
+ Note:
+ Source:
+
+ com.tencent.mobileqq.troop.data.TroopMessageProcessor.a
+
+ com.tencent.imcore.message.BaseMessageProcessorForTroopAndDisc.a
+ """
if not message.head.HasField("group_info"):
return
diff --git a/cai/client/online_push/decoders.py b/cai/client/online_push/decoders.py
index 560858d9..46501fb4 100644
--- a/cai/client/online_push/decoders.py
+++ b/cai/client/online_push/decoders.py
@@ -44,16 +44,17 @@ def parse_cmds(content: str) -> Tuple[str, List[Dict[str, Any]]]:
class GroupEventDecoder:
+ """Group Event Decoder.
+
+ Note:
+ Source:
+ com.tencent.imcore.message.OnLinePushMessageProcessor.ProcessOneMsg.a
+ """
+
__slots__ = ()
@classmethod
def decode(cls, info: MessageInfo) -> Iterator[Event]:
- """Group Event Decoder.
-
- Note:
- Source:
- com.tencent.imcore.message.OnLinePushMessageProcessor.ProcessOneMsg.a
- """
content = info.vec_msg
sub_type = content[4]
From 0999df1ecca4dcdbf258bbdc5b445a6b626d0c15 Mon Sep 17 00:00:00 2001
From: pad
Date: Wed, 13 Apr 2022 18:01:15 +0800
Subject: [PATCH 099/113] add: part of oidb packet
---
cai/client/oidb/builder.py | 55 +++++++++++++++++++++++++++++++
cai/client/packet.py | 1 +
cai/pb/im/oidb/__init__.py | 2 ++
cai/pb/im/oidb/oidb.proto | 19 +++++++++++
cai/pb/im/oidb/oidb_pb2.py | 44 +++++++++++++++++++++++++
cai/pb/im/oidb/oidb_pb2.pyi | 65 +++++++++++++++++++++++++++++++++++++
6 files changed, 186 insertions(+)
create mode 100644 cai/client/oidb/builder.py
create mode 100644 cai/pb/im/oidb/oidb.proto
create mode 100644 cai/pb/im/oidb/oidb_pb2.py
create mode 100644 cai/pb/im/oidb/oidb_pb2.pyi
diff --git a/cai/client/oidb/builder.py b/cai/client/oidb/builder.py
new file mode 100644
index 00000000..70334064
--- /dev/null
+++ b/cai/client/oidb/builder.py
@@ -0,0 +1,55 @@
+import struct
+from cai.pb.im.oidb import OidbSsoPacket, DED3ReqBody
+
+
+def build_oidb_sso_packet(cmd: int, service_type: int, body: bytes) -> bytes:
+ return OidbSsoPacket(
+ command=cmd,
+ service_type=service_type,
+ body=body
+ ).SerializeToString()
+
+
+# SendNudge, Oidb.0xed3
+def build_send_nudge_pkg(target_uin: int, group: int = None, from_uin: int = None) -> bytes:
+ if not (group or from_uin):
+ raise ValueError("no sender")
+ return build_oidb_sso_packet(
+ 3795, 1,
+ DED3ReqBody(
+ to_uin=target_uin,
+ group_code=group,
+ from_uin=from_uin
+ ).SerializeToString()
+ )
+
+
+# SetAdmin, Oidb.0x55c_1
+def build_set_admin_pkg(target_uin: int, group: int, is_admin: bool) -> bytes:
+ return build_oidb_sso_packet(
+ 1372, 1,
+ struct.pack(
+ "!II?",
+ group,
+ target_uin,
+ is_admin
+ )
+ )
+
+
+# MuteMember, Oidb.0x570_8
+def build_mute_member_pkg(target_uin: int, group: int, duration: int) -> bytes:
+ if duration < 0:
+ return ValueError("duration must be a positive value")
+ return build_oidb_sso_packet(
+ 1392, 8,
+ struct.pack(
+ "!IQQQQHII",
+ group,
+ 0, 0, 0, 0, # 32 bytes padding
+ 1,
+ target_uin,
+ duration
+ )
+ )
+
diff --git a/cai/client/packet.py b/cai/client/packet.py
index 26e8845f..f78d1f47 100644
--- a/cai/client/packet.py
+++ b/cai/client/packet.py
@@ -348,3 +348,4 @@ def parse_oicq_body(
raise NotImplementedError
else:
raise ValueError(f"Unknown encrypt type: {encrypt_type}")
+
diff --git a/cai/pb/im/oidb/__init__.py b/cai/pb/im/oidb/__init__.py
index 562fb8b7..3d5876ea 100644
--- a/cai/pb/im/oidb/__init__.py
+++ b/cai/pb/im/oidb/__init__.py
@@ -14,3 +14,5 @@
.. _LICENSE:
https://github.com/cscs181/CAI/blob/master/LICENSE
"""
+
+from .oidb_pb2 import *
diff --git a/cai/pb/im/oidb/oidb.proto b/cai/pb/im/oidb/oidb.proto
new file mode 100644
index 00000000..95a32997
--- /dev/null
+++ b/cai/pb/im/oidb/oidb.proto
@@ -0,0 +1,19 @@
+syntax = "proto3";
+
+
+message OidbSsoPacket {
+ int32 command = 1;
+ int32 service_type = 2;
+ optional int32 result = 3;
+ bytes body = 4;
+ optional string error_msg = 5;
+ string client_version = 6;
+}
+
+message DED3ReqBody {
+ int64 to_uin = 1;
+ int64 group_code = 2;
+ int32 msg_seq = 3;
+ int32 msg_rand = 4;
+ int64 from_uin = 5;
+}
diff --git a/cai/pb/im/oidb/oidb_pb2.py b/cai/pb/im/oidb/oidb_pb2.py
new file mode 100644
index 00000000..2a83b31d
--- /dev/null
+++ b/cai/pb/im/oidb/oidb_pb2.py
@@ -0,0 +1,44 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: oidb.proto
+"""Generated protocol buffer code."""
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import message as _message
+from google.protobuf import reflection as _reflection
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\noidb.proto\"\xa2\x01\n\rOidbSsoPacket\x12\x0f\n\x07\x63ommand\x18\x01 \x01(\x05\x12\x14\n\x0cservice_type\x18\x02 \x01(\x05\x12\x13\n\x06result\x18\x03 \x01(\x05H\x00\x88\x01\x01\x12\x0c\n\x04\x62ody\x18\x04 \x01(\x0c\x12\x16\n\terror_msg\x18\x05 \x01(\tH\x01\x88\x01\x01\x12\x16\n\x0e\x63lient_version\x18\x06 \x01(\tB\t\n\x07_resultB\x0c\n\n_error_msg\"f\n\x0b\x44\x45\x44\x33ReqBody\x12\x0e\n\x06to_uin\x18\x01 \x01(\x03\x12\x12\n\ngroup_code\x18\x02 \x01(\x03\x12\x0f\n\x07msg_seq\x18\x03 \x01(\x05\x12\x10\n\x08msg_rand\x18\x04 \x01(\x05\x12\x10\n\x08\x66rom_uin\x18\x05 \x01(\x03\x62\x06proto3')
+
+
+
+_OIDBSSOPACKET = DESCRIPTOR.message_types_by_name['OidbSsoPacket']
+_DED3REQBODY = DESCRIPTOR.message_types_by_name['DED3ReqBody']
+OidbSsoPacket = _reflection.GeneratedProtocolMessageType('OidbSsoPacket', (_message.Message,), {
+ 'DESCRIPTOR' : _OIDBSSOPACKET,
+ '__module__' : 'oidb_pb2'
+ # @@protoc_insertion_point(class_scope:OidbSsoPacket)
+ })
+_sym_db.RegisterMessage(OidbSsoPacket)
+
+DED3ReqBody = _reflection.GeneratedProtocolMessageType('DED3ReqBody', (_message.Message,), {
+ 'DESCRIPTOR' : _DED3REQBODY,
+ '__module__' : 'oidb_pb2'
+ # @@protoc_insertion_point(class_scope:DED3ReqBody)
+ })
+_sym_db.RegisterMessage(DED3ReqBody)
+
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ _OIDBSSOPACKET._serialized_start=15
+ _OIDBSSOPACKET._serialized_end=177
+ _DED3REQBODY._serialized_start=179
+ _DED3REQBODY._serialized_end=281
+# @@protoc_insertion_point(module_scope)
diff --git a/cai/pb/im/oidb/oidb_pb2.pyi b/cai/pb/im/oidb/oidb_pb2.pyi
new file mode 100644
index 00000000..a56fe0a0
--- /dev/null
+++ b/cai/pb/im/oidb/oidb_pb2.pyi
@@ -0,0 +1,65 @@
+"""
+@generated by mypy-protobuf. Do not edit manually!
+isort:skip_file
+"""
+import builtins
+import google.protobuf.descriptor
+import google.protobuf.message
+import typing
+import typing_extensions
+
+DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
+
+class OidbSsoPacket(google.protobuf.message.Message):
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
+ COMMAND_FIELD_NUMBER: builtins.int
+ SERVICE_TYPE_FIELD_NUMBER: builtins.int
+ RESULT_FIELD_NUMBER: builtins.int
+ BODY_FIELD_NUMBER: builtins.int
+ ERROR_MSG_FIELD_NUMBER: builtins.int
+ CLIENT_VERSION_FIELD_NUMBER: builtins.int
+ command: builtins.int
+ service_type: builtins.int
+ result: builtins.int
+ body: builtins.bytes
+ error_msg: typing.Text
+ client_version: typing.Text
+ def __init__(self,
+ *,
+ command: builtins.int = ...,
+ service_type: builtins.int = ...,
+ result: typing.Optional[builtins.int] = ...,
+ body: builtins.bytes = ...,
+ error_msg: typing.Optional[typing.Text] = ...,
+ client_version: typing.Text = ...,
+ ) -> None: ...
+ def HasField(self, field_name: typing_extensions.Literal["_error_msg",b"_error_msg","_result",b"_result","error_msg",b"error_msg","result",b"result"]) -> builtins.bool: ...
+ def ClearField(self, field_name: typing_extensions.Literal["_error_msg",b"_error_msg","_result",b"_result","body",b"body","client_version",b"client_version","command",b"command","error_msg",b"error_msg","result",b"result","service_type",b"service_type"]) -> None: ...
+ @typing.overload
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["_error_msg",b"_error_msg"]) -> typing.Optional[typing_extensions.Literal["error_msg"]]: ...
+ @typing.overload
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["_result",b"_result"]) -> typing.Optional[typing_extensions.Literal["result"]]: ...
+global___OidbSsoPacket = OidbSsoPacket
+
+class DED3ReqBody(google.protobuf.message.Message):
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
+ TO_UIN_FIELD_NUMBER: builtins.int
+ GROUP_CODE_FIELD_NUMBER: builtins.int
+ MSG_SEQ_FIELD_NUMBER: builtins.int
+ MSG_RAND_FIELD_NUMBER: builtins.int
+ FROM_UIN_FIELD_NUMBER: builtins.int
+ to_uin: builtins.int
+ group_code: builtins.int
+ msg_seq: builtins.int
+ msg_rand: builtins.int
+ from_uin: builtins.int
+ def __init__(self,
+ *,
+ to_uin: builtins.int = ...,
+ group_code: builtins.int = ...,
+ msg_seq: builtins.int = ...,
+ msg_rand: builtins.int = ...,
+ from_uin: builtins.int = ...,
+ ) -> None: ...
+ def ClearField(self, field_name: typing_extensions.Literal["from_uin",b"from_uin","group_code",b"group_code","msg_rand",b"msg_rand","msg_seq",b"msg_seq","to_uin",b"to_uin"]) -> None: ...
+global___DED3ReqBody = DED3ReqBody
From 808aa0196d72ae05b2825fd53b59b930b14ea42b Mon Sep 17 00:00:00 2001
From: pad
Date: Wed, 13 Apr 2022 18:12:33 +0800
Subject: [PATCH 100/113] add: group operation
---
cai/api/group.py | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)
diff --git a/cai/api/group.py b/cai/api/group.py
index b16536c7..dbdc405b 100644
--- a/cai/api/group.py
+++ b/cai/api/group.py
@@ -11,6 +11,7 @@
from cai.client import GroupMember
from cai.client import Group as group_t
+from cai.client.oidb import builder
from .base import BaseAPI
@@ -81,5 +82,34 @@ async def get_group_member_list(
"""
return await self._executor("get_group_member_list", group, cache)
+ async def set_group_admin(self, group: int, uin: int, is_admin: bool):
+ await self.client.send_unipkg_and_wait(
+ "Oidb.0x55c_1",
+ builder.build_set_admin_pkg(
+ target_uin=uin,
+ group=group,
+ is_admin=is_admin
+ )
+ )
+
+ async def mute_member(self, group: int, uin: int, duration: int):
+ await self.client.send_unipkg_and_wait(
+ "Oidb.0x570_8",
+ builder.build_mute_member_pkg(
+ target_uin=uin,
+ group=group,
+ duration=duration
+ )
+ )
+
+ async def send_group_nudge(self, group: int, uin: int):
+ await self.client.send_unipkg_and_wait(
+ "Oidb.0xed3",
+ builder.build_send_nudge_pkg(
+ target_uin=uin,
+ group=group
+ )
+ )
+
__all__ = ["Group"]
From df052cf1cf4c0e1d33525ea0d7df6257d2acfcab Mon Sep 17 00:00:00 2001
From: wyapx
Date: Wed, 13 Apr 2022 18:31:56 +0800
Subject: [PATCH 101/113] fix: stupid problem
---
cai/api/group.py | 6 +++---
cai/client/oidb/builder.py | 6 +++---
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/cai/api/group.py b/cai/api/group.py
index dbdc405b..32e3f28b 100644
--- a/cai/api/group.py
+++ b/cai/api/group.py
@@ -84,7 +84,7 @@ async def get_group_member_list(
async def set_group_admin(self, group: int, uin: int, is_admin: bool):
await self.client.send_unipkg_and_wait(
- "Oidb.0x55c_1",
+ "OidbSvc.0x55c_1",
builder.build_set_admin_pkg(
target_uin=uin,
group=group,
@@ -94,7 +94,7 @@ async def set_group_admin(self, group: int, uin: int, is_admin: bool):
async def mute_member(self, group: int, uin: int, duration: int):
await self.client.send_unipkg_and_wait(
- "Oidb.0x570_8",
+ "OidbSvc.0x570_8",
builder.build_mute_member_pkg(
target_uin=uin,
group=group,
@@ -104,7 +104,7 @@ async def mute_member(self, group: int, uin: int, duration: int):
async def send_group_nudge(self, group: int, uin: int):
await self.client.send_unipkg_and_wait(
- "Oidb.0xed3",
+ "OidbSvc.0xed3",
builder.build_send_nudge_pkg(
target_uin=uin,
group=group
diff --git a/cai/client/oidb/builder.py b/cai/client/oidb/builder.py
index 70334064..b5b0fb7b 100644
--- a/cai/client/oidb/builder.py
+++ b/cai/client/oidb/builder.py
@@ -10,7 +10,7 @@ def build_oidb_sso_packet(cmd: int, service_type: int, body: bytes) -> bytes:
).SerializeToString()
-# SendNudge, Oidb.0xed3
+# SendNudge, OidbSvc.0xed3
def build_send_nudge_pkg(target_uin: int, group: int = None, from_uin: int = None) -> bytes:
if not (group or from_uin):
raise ValueError("no sender")
@@ -24,7 +24,7 @@ def build_send_nudge_pkg(target_uin: int, group: int = None, from_uin: int = Non
)
-# SetAdmin, Oidb.0x55c_1
+# SetAdmin, OidbSvc.0x55c_1
def build_set_admin_pkg(target_uin: int, group: int, is_admin: bool) -> bytes:
return build_oidb_sso_packet(
1372, 1,
@@ -37,7 +37,7 @@ def build_set_admin_pkg(target_uin: int, group: int, is_admin: bool) -> bytes:
)
-# MuteMember, Oidb.0x570_8
+# MuteMember, OidbSvc.0x570_8
def build_mute_member_pkg(target_uin: int, group: int, duration: int) -> bytes:
if duration < 0:
return ValueError("duration must be a positive value")
From 2dcf545a9f76ef40e969d18ac6a810482f57e710 Mon Sep 17 00:00:00 2001
From: yanyongyu <42488585+yanyongyu@users.noreply.github.com>
Date: Wed, 13 Apr 2022 19:16:50 +0800
Subject: [PATCH 102/113] :bug: fix group mute count decode error
---
cai/client/online_push/decoders.py | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/cai/client/online_push/decoders.py b/cai/client/online_push/decoders.py
index 46501fb4..b0b29624 100644
--- a/cai/client/online_push/decoders.py
+++ b/cai/client/online_push/decoders.py
@@ -91,10 +91,11 @@ def decode_troop_gag(cls, info: MessageInfo) -> Iterator[Event]:
data = Packet(info.vec_msg)
group_id, sub_type = data.start().uint32().uint8().execute()
if sub_type == 12:
- operator_id = data.start().offset(6).uint32().execute()[0]
+ operator_id, count = (
+ data.start().offset(6).uint32().offset(4).uint16().execute()
+ )
offset = 16
- count = info.vec_msg[14]
for _ in range(count):
target_id, duration = (
data.start().offset(offset).uint32().uint32().execute()
From 19dd4db88f828e745b767db38f3483793f23bbb7 Mon Sep 17 00:00:00 2001
From: a1025
Date: Thu, 7 Apr 2022 14:37:10 +0800
Subject: [PATCH 103/113] remove: unused file
---
cai/utils/gcode.py | 38 --------------------------------------
1 file changed, 38 deletions(-)
delete mode 100644 cai/utils/gcode.py
diff --git a/cai/utils/gcode.py b/cai/utils/gcode.py
deleted file mode 100644
index 53b5714a..00000000
--- a/cai/utils/gcode.py
+++ /dev/null
@@ -1,38 +0,0 @@
-class GroupIdConvertor:
- @staticmethod
- def to_group_code(group_id: int) -> int:
- left = group_id // 1000000
- if 0 + 202 <= left <= 10 + 202:
- left -= 202
- elif 11 + 480 - 11 <= left <= 19 + 480 - 11:
- left -= 480 - 11
- elif 20 + 2100 - 20 <= left <= 66 + 2100 - 20:
- left -= 2100 - 20
- elif 67 + 2010 - 67 <= left <= 156 + 2010 - 67:
- left -= 2010 - 67
- elif 157 + 2147 - 157 <= left <= 209 + 2147 - 157:
- left -= 2147 - 157
- elif 210 + 4100 - 210 <= left <= 309 + 4100 - 210:
- left -= 4100 - 210
- elif 310 + 3800 - 310 <= left <= 499 + 3800 - 310:
- left -= 3800 - 310
- return int(left * 1000000 + group_id % 1000000)
-
- @staticmethod
- def to_group_uin(group_code: int) -> int:
- left = group_code // 1000000
- if 0 <= left <= 10:
- left += 202
- elif 11 <= left <= 19:
- left += 480 - 11
- elif 20 <= left <= 66:
- left += 2100 - 20
- elif 67 <= left <= 156:
- left += 2010 - 67
- elif 157 <= left <= 209:
- left += 2147 - 157
- elif 210 <= left <= 309:
- left += 4100 - 210
- elif 310 <= left <= 499:
- left += 3800 - 310
- return int(left * 1000000 + group_code % 1000000)
From c3b8c5a14a13f7acff7b39b46e8762b2866a927f Mon Sep 17 00:00:00 2001
From: wyapx
Date: Fri, 15 Apr 2022 08:00:17 +0800
Subject: [PATCH 104/113] add: image decoder
---
cai/client/highway/encoders.py | 54 ++++++++++++++++-----
cai/client/highway/highway.py | 27 ++++-------
cai/utils/image/__init__.py | 0
cai/utils/image/decoder.py | 88 ++++++++++++++++++++++++++++++++++
cai/utils/image/enum.py | 10 ++++
5 files changed, 148 insertions(+), 31 deletions(-)
create mode 100644 cai/utils/image/__init__.py
create mode 100644 cai/utils/image/decoder.py
create mode 100644 cai/utils/image/enum.py
diff --git a/cai/client/highway/encoders.py b/cai/client/highway/encoders.py
index 30425329..c20392d7 100644
--- a/cai/client/highway/encoders.py
+++ b/cai/client/highway/encoders.py
@@ -1,13 +1,34 @@
from cai.pb.im.cs.cmd0x388 import ReqBody, TryUpImgReq, TryUpPttReq
+from typing import Sequence, Optional
def encode_d388_req(
- group_code: int, uin: int, md5: bytes, size: int, subcmd: int
+ subcmd: int,
+ tryup_img: Sequence[TryUpImgReq] = None,
+ tryup_ptt: Sequence[TryUpPttReq] = None,
+ ext: Optional[bytes] = None
) -> ReqBody:
- img, ptt = None, None
- if subcmd == 1: # upload img
- fn = md5.hex().upper() + ".jpg"
- img = [
+ return ReqBody(
+ net_type=8,
+ subcmd=subcmd,
+ tryup_img_req=tryup_img,
+ tryup_ptt_req=tryup_ptt,
+ extension=ext
+ )
+
+
+def encode_upload_img_req(
+ group_code: int,
+ uin: int,
+ md5: bytes,
+ size: int,
+ suffix: str = None,
+ pic_type: int = 1003
+) -> ReqBody:
+ fn = f"{md5.hex().upper()}.{'jpg' if not suffix else suffix}"
+ return encode_d388_req(
+ subcmd=1,
+ tryup_img=[
TryUpImgReq(
group_code=group_code,
src_uin=uin,
@@ -18,7 +39,7 @@ def encode_d388_req(
src_term=5,
platform_type=9,
bu_type=1,
- pic_type=1003,
+ pic_type=pic_type,
pic_width=1920,
pic_height=903,
build_ver=b"8.8.50.2324",
@@ -27,13 +48,23 @@ def encode_d388_req(
srv_upload=0,
)
]
- elif subcmd == 3: # voice
- ptt = [
+ )
+
+def encode_upload_voice_req(
+ group_code: int,
+ uin: int,
+ md5: bytes,
+ size: int,
+ suffix: str = None,
+) -> ReqBody:
+ return encode_d388_req(
+ subcmd=3,
+ tryup_ptt=[
TryUpPttReq(
group_code=group_code,
src_uin=uin,
file_md5=md5,
- file_name=(md5.hex().upper() + ".amr").encode(),
+ file_name=f"{md5.hex().upper()}.{'amr' if not suffix else suffix}".encode(),
file_size=size,
voice_length=size,
voice_type=1,
@@ -46,8 +77,5 @@ def encode_d388_req(
new_up_chan=True,
)
]
- else:
- ValueError("unsupported subcmd:", subcmd)
- return ReqBody(
- net_type=8, subcmd=subcmd, tryup_img_req=img, tryup_ptt_req=ptt
)
+
diff --git a/cai/client/highway/highway.py b/cai/client/highway/highway.py
index 13a77d5c..6d7acdba 100644
--- a/cai/client/highway/highway.py
+++ b/cai/client/highway/highway.py
@@ -3,9 +3,10 @@
from hashlib import md5
from typing import TYPE_CHECKING, List, Tuple, BinaryIO, Optional
+from cai.utils.image import decoder
from cai.pb.highway.protocol.highway_head_pb2 import highway_head
-from .encoders import encode_d388_req
+from .encoders import encode_upload_img_req, encode_upload_voice_req
from .frame import read_frame, write_frame
from .utils import to_id, timeit, calc_file_md5_and_length
from ..message_service.models import ImageElement, VoiceElement
@@ -77,12 +78,13 @@ async def _upload_controller(
async def upload_image(self, file: BinaryIO, gid: int) -> ImageElement:
fmd5, fl = calc_file_md5_and_length(file)
+ info = decoder.decode(file)
ret = decode_upload_image_resp(
(
await self._client.send_unipkg_and_wait(
"ImgStore.GroupPicUp",
- encode_d388_req(
- gid, self._client.uin, fmd5, fl, 1
+ encode_upload_img_req(
+ gid, self._client.uin, fmd5, fl, suffix=info.img_type, pic_type=info.pic_type
).SerializeToString(),
)
).data
@@ -96,23 +98,12 @@ async def upload_image(self, file: BinaryIO, gid: int) -> ImageElement:
ret.uploadAddr, file, 2, ret.uploadKey # send to group
)
- ret = decode_upload_image_resp(
- (
- await self._client.send_unipkg_and_wait(
- "ImgStore.GroupPicUp",
- encode_d388_req(
- gid, self._client.uin, fmd5, fl, 1
- ).SerializeToString(),
- )
- ).data
- )
-
if ret.hasMetaData:
image_type = ret.fileType
w, h = ret.width, ret.height
else:
- image_type = 1000
- w, h = (800, 600)
+ image_type = info.pic_type
+ w, h = info.width, info.height
return ImageElement(
id=ret.fileId,
@@ -127,8 +118,8 @@ async def upload_image(self, file: BinaryIO, gid: int) -> ImageElement:
async def upload_voice(self, file: BinaryIO, gid: int) -> VoiceElement:
fmd5, fl = calc_file_md5_and_length(file)
- ext = encode_d388_req(
- gid, self._client.uin, fmd5, fl, 3
+ ext = encode_upload_voice_req(
+ gid, self._client.uin, fmd5, fl
).SerializeToString()
if not (self._session_key and self._session_sig):
self._decode_bdh_session()
diff --git a/cai/utils/image/__init__.py b/cai/utils/image/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/cai/utils/image/decoder.py b/cai/utils/image/decoder.py
new file mode 100644
index 00000000..153b0ccb
--- /dev/null
+++ b/cai/utils/image/decoder.py
@@ -0,0 +1,88 @@
+import struct
+import binascii
+from typing import BinaryIO
+from dataclasses import dataclass
+
+from .enum import ImageType
+
+
+@dataclass
+class ImageInfo:
+ img_type: str
+ width: int
+ height: int
+ depth: int
+
+ @property
+ def pic_type(self) -> ImageType:
+ return ImageType(self.img_type)
+
+
+class BaseDecoder:
+ @classmethod
+ def decode(cls, fio: BinaryIO) -> ImageInfo:
+ raise NotImplementedError
+
+
+class JPEGDecoder(BaseDecoder):
+ @classmethod
+ def decode(cls, fio: BinaryIO) -> ImageInfo:
+ if fio.read(2) != b"\xff\xd8":
+ raise TypeError("not a valid jpeg file")
+ while True:
+ if fio.read(1) != b"\xff":
+ raise ValueError("decoder fail")
+ btype = fio.read(1)
+ data = fio.read(
+ int.from_bytes(fio.read(2), "big") - 2
+ )
+ # if btype == b"\xe0":
+ # _, _, hdpi, wdpi, *_ = struct.unpack("!BBBHHBB", data[5:])
+ if btype == b"\xc0":
+ depth, height, width, _ = struct.unpack("!BHHB", data[:6])
+ print(width, height)
+ return ImageInfo("jpg", width, height, depth)
+
+
+class PNGDecoder(BaseDecoder):
+ @classmethod
+ def decode(cls, fio: BinaryIO) -> ImageInfo:
+ if fio.read(8).hex() != "89504e470d0a1a0a":
+ raise TypeError("not a valid png file")
+ while True:
+ raw_head = fio.read(8)
+ if not raw_head:
+ break
+ elif len(raw_head) != 8:
+ raise ValueError("decoder fail")
+ length, btype = struct.unpack("!I4s", raw_head)
+ data = fio.read(length)
+ if binascii.crc32(raw_head[4:] + data) != int.from_bytes(fio.read(4), "big"):
+ raise ValueError("CRC not match")
+ elif btype == b"IHDR":
+ width, height, depth, *_ = struct.unpack("!IIBBBBB", data)
+ return ImageInfo("png", width, height, depth)
+ # else:
+ # print(length, btype)
+
+
+class GIFDecoder(BaseDecoder):
+ @classmethod
+ def decode(cls, fio: BinaryIO) -> ImageInfo:
+ if fio.read(6) != b"GIF89a":
+ raise TypeError("not a valid gif file")
+ width, height, flag, *_ = struct.unpack("> 4) + 2)
+
+
+def decode(f: BinaryIO) -> ImageInfo:
+ head = f.read(3)
+ f.seek(0)
+ if head[:-1] == b"\xff\xd8":
+ return JPEGDecoder.decode(f)
+ elif head.hex() == "89504e":
+ return PNGDecoder.decode(f)
+ elif head == b"GIF":
+ return GIFDecoder.decode(f)
+ else:
+ raise NotImplementedError
diff --git a/cai/utils/image/enum.py b/cai/utils/image/enum.py
new file mode 100644
index 00000000..846f13c4
--- /dev/null
+++ b/cai/utils/image/enum.py
@@ -0,0 +1,10 @@
+from enum import IntEnum
+
+
+class ImageType(IntEnum):
+ img = 1000
+ gif = 2000
+ # jpg = 1003
+
+ def _missing_(cls, value: object):
+ return cls.img
From 0c508c583f32a15f2073a8d297661696b229dfd4 Mon Sep 17 00:00:00 2001
From: wyapx
Date: Fri, 15 Apr 2022 08:03:01 +0800
Subject: [PATCH 105/113] fix: image/enum.py
---
cai/utils/image/enum.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/cai/utils/image/enum.py b/cai/utils/image/enum.py
index 846f13c4..89b919dd 100644
--- a/cai/utils/image/enum.py
+++ b/cai/utils/image/enum.py
@@ -6,5 +6,6 @@ class ImageType(IntEnum):
gif = 2000
# jpg = 1003
+ @classmethod
def _missing_(cls, value: object):
return cls.img
From 1d7efc740e041885fc4a729099b7502e39f94b35 Mon Sep 17 00:00:00 2001
From: wyapx
Date: Fri, 15 Apr 2022 08:31:31 +0800
Subject: [PATCH 106/113] update: image/enum.py
---
cai/utils/image/enum.py | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/cai/utils/image/enum.py b/cai/utils/image/enum.py
index 89b919dd..665e06b5 100644
--- a/cai/utils/image/enum.py
+++ b/cai/utils/image/enum.py
@@ -2,10 +2,13 @@
class ImageType(IntEnum):
- img = 1000
+ jpg = 1000
+ png = 1001
+ webp = 1002
+ bmp = 1005
gif = 2000
- # jpg = 1003
+ apng = 2001
@classmethod
def _missing_(cls, value: object):
- return cls.img
+ return cls.jpg
From 95df06510db3fd1bbde4f4bb389f14b7001eecea Mon Sep 17 00:00:00 2001
From: wyapx
Date: Fri, 15 Apr 2022 17:56:17 +0800
Subject: [PATCH 107/113] fix: image upload
---
cai/client/highway/encoders.py | 23 ++++++++++++-----------
cai/client/highway/highway.py | 16 ++++++++++++----
cai/utils/image/decoder.py | 4 ++--
3 files changed, 26 insertions(+), 17 deletions(-)
diff --git a/cai/client/highway/encoders.py b/cai/client/highway/encoders.py
index c20392d7..63bd0d7f 100644
--- a/cai/client/highway/encoders.py
+++ b/cai/client/highway/encoders.py
@@ -1,19 +1,20 @@
from cai.pb.im.cs.cmd0x388 import ReqBody, TryUpImgReq, TryUpPttReq
-from typing import Sequence, Optional
+from typing import Sequence, TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from cai.utils.image.decoder import ImageInfo
def encode_d388_req(
subcmd: int,
tryup_img: Sequence[TryUpImgReq] = None,
- tryup_ptt: Sequence[TryUpPttReq] = None,
- ext: Optional[bytes] = None
+ tryup_ptt: Sequence[TryUpPttReq] = None
) -> ReqBody:
return ReqBody(
net_type=8,
subcmd=subcmd,
tryup_img_req=tryup_img,
- tryup_ptt_req=tryup_ptt,
- extension=ext
+ tryup_ptt_req=tryup_ptt
)
@@ -22,10 +23,10 @@ def encode_upload_img_req(
uin: int,
md5: bytes,
size: int,
- suffix: str = None,
- pic_type: int = 1003
+ info: "ImageInfo"
) -> ReqBody:
- fn = f"{md5.hex().upper()}.{'jpg' if not suffix else suffix}"
+ fn = f"{md5.hex().upper()}.{info.name or 'jpg'}"
+ print(info, fn)
return encode_d388_req(
subcmd=1,
tryup_img=[
@@ -39,9 +40,9 @@ def encode_upload_img_req(
src_term=5,
platform_type=9,
bu_type=1,
- pic_type=pic_type,
- pic_width=1920,
- pic_height=903,
+ pic_type=info.pic_type.value,
+ pic_width=info.width,
+ pic_height=info.height,
build_ver=b"8.8.50.2324",
app_pic_type=1052,
original_pic=1,
diff --git a/cai/client/highway/highway.py b/cai/client/highway/highway.py
index 6d7acdba..684c0957 100644
--- a/cai/client/highway/highway.py
+++ b/cai/client/highway/highway.py
@@ -79,13 +79,12 @@ async def _upload_controller(
async def upload_image(self, file: BinaryIO, gid: int) -> ImageElement:
fmd5, fl = calc_file_md5_and_length(file)
info = decoder.decode(file)
+ file.seek(0)
ret = decode_upload_image_resp(
(
await self._client.send_unipkg_and_wait(
"ImgStore.GroupPicUp",
- encode_upload_img_req(
- gid, self._client.uin, fmd5, fl, suffix=info.img_type, pic_type=info.pic_type
- ).SerializeToString(),
+ encode_upload_img_req(gid, self._client.uin, fmd5, fl, info).SerializeToString(),
)
).data
)
@@ -98,6 +97,15 @@ async def upload_image(self, file: BinaryIO, gid: int) -> ImageElement:
ret.uploadAddr, file, 2, ret.uploadKey # send to group
)
+ ret = decode_upload_image_resp(
+ (
+ await self._client.send_unipkg_and_wait(
+ "ImgStore.GroupPicUp",
+ encode_upload_img_req(gid, self._client.uin, fmd5, fl, info).SerializeToString(),
+ )
+ ).data
+ )
+
if ret.hasMetaData:
image_type = ret.fileType
w, h = ret.width, ret.height
@@ -107,7 +115,7 @@ async def upload_image(self, file: BinaryIO, gid: int) -> ImageElement:
return ImageElement(
id=ret.fileId,
- filename=to_id(fmd5) + ".png",
+ filename=to_id(fmd5) + f".{info.name}",
size=fl,
width=w,
height=h,
diff --git a/cai/utils/image/decoder.py b/cai/utils/image/decoder.py
index 153b0ccb..1e10b244 100644
--- a/cai/utils/image/decoder.py
+++ b/cai/utils/image/decoder.py
@@ -8,14 +8,14 @@
@dataclass
class ImageInfo:
- img_type: str
+ name: str
width: int
height: int
depth: int
@property
def pic_type(self) -> ImageType:
- return ImageType(self.img_type)
+ return getattr(ImageType, self.name)
class BaseDecoder:
From ec74eda0f954313732ef0f118c7a80ab89bc95c6 Mon Sep 17 00:00:00 2001
From: wyapx
Date: Fri, 15 Apr 2022 18:14:38 +0800
Subject: [PATCH 108/113] fix: some design problem
---
cai/client/highway/decoders.py | 1 +
cai/client/highway/highway.py | 9 ---------
cai/client/highway/utils.py | 2 +-
3 files changed, 2 insertions(+), 10 deletions(-)
diff --git a/cai/client/highway/decoders.py b/cai/client/highway/decoders.py
index 0fd6ee01..63b234e6 100644
--- a/cai/client/highway/decoders.py
+++ b/cai/client/highway/decoders.py
@@ -27,6 +27,7 @@ def decode_upload_image_resp(data: bytes) -> ImageUploadResponse:
return ImageUploadResponse(isExists=True, fileId=pkg.fileid)
return ImageUploadResponse(
isExists=False,
+ fileId=pkg.fileid,
uploadAddr=[(itoa(a), p) for a, p in zip(pkg.up_ip, pkg.up_port)],
uploadKey=pkg.up_ukey,
)
diff --git a/cai/client/highway/highway.py b/cai/client/highway/highway.py
index 684c0957..f8653351 100644
--- a/cai/client/highway/highway.py
+++ b/cai/client/highway/highway.py
@@ -97,15 +97,6 @@ async def upload_image(self, file: BinaryIO, gid: int) -> ImageElement:
ret.uploadAddr, file, 2, ret.uploadKey # send to group
)
- ret = decode_upload_image_resp(
- (
- await self._client.send_unipkg_and_wait(
- "ImgStore.GroupPicUp",
- encode_upload_img_req(gid, self._client.uin, fmd5, fl, info).SerializeToString(),
- )
- ).data
- )
-
if ret.hasMetaData:
image_type = ret.fileType
w, h = ret.width, ret.height
diff --git a/cai/client/highway/utils.py b/cai/client/highway/utils.py
index 3eb68bfa..9cb764c3 100644
--- a/cai/client/highway/utils.py
+++ b/cai/client/highway/utils.py
@@ -23,7 +23,7 @@ def itoa(i: int) -> str: # int to address(str)
def to_id(b_uuid: bytes) -> str:
- return "{%s}" % uuid.UUID(bytes=b_uuid)
+ return b_uuid.hex()
async def timeit(func: Awaitable) -> Tuple[float, Any]:
From abca32bd6db53fe618df30744e8cadda84ecdf5a Mon Sep 17 00:00:00 2001
From: wyapx
Date: Sat, 16 Apr 2022 12:33:22 +0800
Subject: [PATCH 109/113] add: parse GroupFile
---
cai/client/highway/encoders.py | 2 +-
cai/client/highway/utils.py | 2 +-
cai/client/message_service/decoders.py | 13 +++++++++++++
cai/client/message_service/models.py | 11 +++++++++++
4 files changed, 26 insertions(+), 2 deletions(-)
diff --git a/cai/client/highway/encoders.py b/cai/client/highway/encoders.py
index 63bd0d7f..65344eb3 100644
--- a/cai/client/highway/encoders.py
+++ b/cai/client/highway/encoders.py
@@ -51,6 +51,7 @@ def encode_upload_img_req(
]
)
+
def encode_upload_voice_req(
group_code: int,
uin: int,
@@ -79,4 +80,3 @@ def encode_upload_voice_req(
)
]
)
-
diff --git a/cai/client/highway/utils.py b/cai/client/highway/utils.py
index 9cb764c3..f86ce7c6 100644
--- a/cai/client/highway/utils.py
+++ b/cai/client/highway/utils.py
@@ -23,7 +23,7 @@ def itoa(i: int) -> str: # int to address(str)
def to_id(b_uuid: bytes) -> str:
- return b_uuid.hex()
+ return f"{{{uuid.UUID(bytes=b_uuid)}}}"
async def timeit(func: Awaitable) -> Tuple[float, Any]:
diff --git a/cai/client/message_service/decoders.py b/cai/client/message_service/decoders.py
index 950281d9..4ea14826 100644
--- a/cai/client/message_service/decoders.py
+++ b/cai/client/message_service/decoders.py
@@ -16,6 +16,7 @@
from cai.client.events import Event
from cai.pb.msf.msg.comm import Msg
from cai.pb.im.msg.msg_body import Ptt, Elem
+from cai.pb.im.msg.obj_msg import ObjMsg
from cai.pb.im.msg.service.comm_elem import (
MsgElemInfo_servtype2,
MsgElemInfo_servtype3,
@@ -39,6 +40,7 @@
CustomDataElement,
FlashImageElement,
SmallEmojiElement,
+ GroupFileElement,
)
@@ -266,6 +268,17 @@ def parse_elements(elems: Sequence[Elem], ptt: Optional[Ptt]) -> List[Element]:
stype=elem.shake_window.type, uin=elem.shake_window.uin
)
)
+ elif elem.HasField("trans_elem_info"):
+ if elem.trans_elem_info.elem_type == 24: # QQ File
+ if elem.trans_elem_info.elem_value[0]:
+ obj = ObjMsg.FromString(elem.trans_elem_info.elem_value[3:])
+ for info in obj.content_info:
+ res.append(GroupFileElement(
+ info.file.file_name,
+ info.file.file_size,
+ info.file.file_path.decode(),
+ bytes.fromhex(info.file.file_md5.decode())
+ ))
index += 1
return res
diff --git a/cai/client/message_service/models.py b/cai/client/message_service/models.py
index 19eba9bf..334d9789 100644
--- a/cai/client/message_service/models.py
+++ b/cai/client/message_service/models.py
@@ -242,3 +242,14 @@ class CustomDataElement(Element):
def type(self) -> str:
return "custom_daata"
+
+@dataclass
+class GroupFileElement(Element):
+ name: str
+ size: int
+ path: str
+ md5: bytes
+
+ @property
+ def type(self) -> str:
+ return "group_file"
From 1f4d1a3d491cc45f7716c3fa23935ed6502332ad Mon Sep 17 00:00:00 2001
From: wyapx
Date: Sat, 16 Apr 2022 13:59:22 +0800
Subject: [PATCH 110/113] add: BMPDecoder & optimized code
---
cai/client/highway/encoders.py | 1 -
cai/client/highway/highway.py | 1 -
cai/client/highway/utils.py | 2 +-
cai/utils/image/decoder.py | 33 +++++++++++++++++++++++++--------
4 files changed, 26 insertions(+), 11 deletions(-)
diff --git a/cai/client/highway/encoders.py b/cai/client/highway/encoders.py
index 65344eb3..76f57a6f 100644
--- a/cai/client/highway/encoders.py
+++ b/cai/client/highway/encoders.py
@@ -26,7 +26,6 @@ def encode_upload_img_req(
info: "ImageInfo"
) -> ReqBody:
fn = f"{md5.hex().upper()}.{info.name or 'jpg'}"
- print(info, fn)
return encode_d388_req(
subcmd=1,
tryup_img=[
diff --git a/cai/client/highway/highway.py b/cai/client/highway/highway.py
index f8653351..6538e668 100644
--- a/cai/client/highway/highway.py
+++ b/cai/client/highway/highway.py
@@ -79,7 +79,6 @@ async def _upload_controller(
async def upload_image(self, file: BinaryIO, gid: int) -> ImageElement:
fmd5, fl = calc_file_md5_and_length(file)
info = decoder.decode(file)
- file.seek(0)
ret = decode_upload_image_resp(
(
await self._client.send_unipkg_and_wait(
diff --git a/cai/client/highway/utils.py b/cai/client/highway/utils.py
index f86ce7c6..d701eaf8 100644
--- a/cai/client/highway/utils.py
+++ b/cai/client/highway/utils.py
@@ -23,7 +23,7 @@ def itoa(i: int) -> str: # int to address(str)
def to_id(b_uuid: bytes) -> str:
- return f"{{{uuid.UUID(bytes=b_uuid)}}}"
+ return f"{{{str(uuid.UUID(bytes=b_uuid)).upper()}}}"
async def timeit(func: Awaitable) -> Tuple[float, Any]:
diff --git a/cai/utils/image/decoder.py b/cai/utils/image/decoder.py
index 1e10b244..480aab59 100644
--- a/cai/utils/image/decoder.py
+++ b/cai/utils/image/decoder.py
@@ -75,14 +75,31 @@ def decode(cls, fio: BinaryIO) -> ImageInfo:
return ImageInfo("gif", width, height, ((flag ^ 0x80) >> 4) + 2)
+class BMPDecoder(BaseDecoder):
+ @classmethod
+ def decode(cls, fio: BinaryIO) -> ImageInfo:
+ if fio.read(2) != b"BM":
+ raise TypeError("not a valid bmp file")
+ fio.read(12) # offset
+ data = fio.read(16)
+ print(data)
+ _, width, height, _, depth = struct.unpack(" ImageInfo:
head = f.read(3)
f.seek(0)
- if head[:-1] == b"\xff\xd8":
- return JPEGDecoder.decode(f)
- elif head.hex() == "89504e":
- return PNGDecoder.decode(f)
- elif head == b"GIF":
- return GIFDecoder.decode(f)
- else:
- raise NotImplementedError
+ try:
+ if head[:-1] == b"\xff\xd8":
+ return JPEGDecoder.decode(f)
+ elif head.hex() == "89504e":
+ return PNGDecoder.decode(f)
+ elif head == b"GIF":
+ return GIFDecoder.decode(f)
+ elif head[:-1] == b"BM":
+ return BMPDecoder.decode(f)
+ else:
+ raise NotImplementedError
+ finally:
+ f.seek(0)
From 0656836f5bdc5c89da636c437911fc4656abd770 Mon Sep 17 00:00:00 2001
From: wyapx
Date: Sat, 16 Apr 2022 14:01:04 +0800
Subject: [PATCH 111/113] remove: unused code
---
cai/utils/image/decoder.py | 5 -----
1 file changed, 5 deletions(-)
diff --git a/cai/utils/image/decoder.py b/cai/utils/image/decoder.py
index 480aab59..f7a5ef20 100644
--- a/cai/utils/image/decoder.py
+++ b/cai/utils/image/decoder.py
@@ -36,8 +36,6 @@ def decode(cls, fio: BinaryIO) -> ImageInfo:
data = fio.read(
int.from_bytes(fio.read(2), "big") - 2
)
- # if btype == b"\xe0":
- # _, _, hdpi, wdpi, *_ = struct.unpack("!BBBHHBB", data[5:])
if btype == b"\xc0":
depth, height, width, _ = struct.unpack("!BHHB", data[:6])
print(width, height)
@@ -62,8 +60,6 @@ def decode(cls, fio: BinaryIO) -> ImageInfo:
elif btype == b"IHDR":
width, height, depth, *_ = struct.unpack("!IIBBBBB", data)
return ImageInfo("png", width, height, depth)
- # else:
- # print(length, btype)
class GIFDecoder(BaseDecoder):
@@ -82,7 +78,6 @@ def decode(cls, fio: BinaryIO) -> ImageInfo:
raise TypeError("not a valid bmp file")
fio.read(12) # offset
data = fio.read(16)
- print(data)
_, width, height, _, depth = struct.unpack("
Date: Mon, 18 Apr 2022 14:47:16 +0800
Subject: [PATCH 112/113] fix: send image fail
---
cai/client/message_service/models.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/cai/client/message_service/models.py b/cai/client/message_service/models.py
index 334d9789..60547d19 100644
--- a/cai/client/message_service/models.py
+++ b/cai/client/message_service/models.py
@@ -124,7 +124,7 @@ class ImageElement(Element):
width: int
height: int
md5: bytes
- id: Optional[int] = -1
+ id: Optional[int] = 0
url: Optional[str] = None
filetype: Optional[int] = 1000
From 3c9c9d19b10472acf667176885356aeea1a29db0 Mon Sep 17 00:00:00 2001
From: Ju4tCode <42488585+yanyongyu@users.noreply.github.com>
Date: Sun, 29 May 2022 10:26:03 +0000
Subject: [PATCH 113/113] :art: improve parse message element
---
cai/api/client.py | 2 +-
cai/client/events/__init__.py | 29 +-
cai/client/events/common.py | 17 -
cai/client/events/friend.py | 25 +-
cai/client/events/group.py | 16 +
cai/client/highway/highway.py | 2 +-
cai/client/message/__init__.py | 258 +++++++++++++
.../{message_service => message}/models.py | 62 +---
cai/client/message_service/__init__.py | 2 +-
cai/client/message_service/decoders.py | 343 +++---------------
cai/client/message_service/encoders.py | 2 +-
examples/login.py | 2 +-
12 files changed, 378 insertions(+), 382 deletions(-)
delete mode 100644 cai/client/events/common.py
create mode 100644 cai/client/message/__init__.py
rename cai/client/{message_service => message}/models.py (78%)
diff --git a/cai/api/client.py b/cai/api/client.py
index 66205bb3..6759740a 100644
--- a/cai/api/client.py
+++ b/cai/api/client.py
@@ -18,7 +18,7 @@
from cai.client.highway import HighWaySession
from cai.settings.protocol import get_protocol
from cai.client.message_service.encoders import build_msg, make_group_msg_pkg
-from cai.client.message_service.models import (
+from cai.client.message.models import (
Element,
ImageElement,
VoiceElement,
diff --git a/cai/client/events/__init__.py b/cai/client/events/__init__.py
index bf311aa3..72e041e2 100644
--- a/cai/client/events/__init__.py
+++ b/cai/client/events/__init__.py
@@ -1,22 +1,27 @@
+# base
from .base import Event as Event
from .group import GroupEvent as GroupEvent
-from .common import NudgeEvent as NudgeEvent
+from .friend import PrivateEvent as PrivateEvent
+from .group import GroupNudgeEvent as GroupNudgeEvent
from .group import GroupRedbagEvent as GroupRedbagEvent
+from .group import GroupMessageEvent as GroupMessageEvent
+from .friend import PrivateMessageEvent as PrivateMessageEvent
from .group import GroupMemberMutedEvent as GroupMemberMutedEvent
from .group import GroupNameChangedEvent as GroupNameChangedEvent
from .group import GroupMemberUnMutedEvent as GroupMemberUnMutedEvent
+from .group import GroupLuckyCharacterEvent as GroupLuckyCharacterEvent
from .group import GroupMessageRecalledEvent as GroupMessageRecalledEvent
+from .group import GroupLuckyCharacterNewEvent as GroupLuckyCharacterNewEvent
+from .group import GroupLuckyCharacterInitEvent as GroupLuckyCharacterInitEvent
+from .group import (
+ GroupLuckyCharacterClosedEvent as GroupLuckyCharacterClosedEvent,
+)
+from .group import (
+ GroupLuckyCharacterOpenedEvent as GroupLuckyCharacterOpenedEvent,
+)
+from .group import (
+ GroupLuckyCharacterChangedEvent as GroupLuckyCharacterChangedEvent,
+)
from .group import (
GroupMemberSpecialTitleChangedEvent as GroupMemberSpecialTitleChangedEvent,
)
-
-__all__ = [
- "Event",
- "GroupEvent",
- "NudgeEvent",
- "GroupMemberMutedEvent",
- "GroupMemberUnMutedEvent",
- "GroupMemberSpecialTitleChangedEvent",
- "GroupNameChangedEvent",
- "GroupMessageRecalledEvent",
-]
diff --git a/cai/client/events/common.py b/cai/client/events/common.py
deleted file mode 100644
index 5a4d1524..00000000
--- a/cai/client/events/common.py
+++ /dev/null
@@ -1,17 +0,0 @@
-from typing import Optional
-from dataclasses import dataclass
-
-from .base import Event
-
-
-@dataclass
-class NudgeEvent(Event):
- sender: int
- target: int
- action: str
- suffix: Optional[str]
- group: Optional[int] = None
-
- @property
- def type(self) -> str:
- return "NudgeEvent"
diff --git a/cai/client/events/friend.py b/cai/client/events/friend.py
index db4e5dd7..5ced4963 100644
--- a/cai/client/events/friend.py
+++ b/cai/client/events/friend.py
@@ -1 +1,24 @@
-# TODO: PR Welcome
+from typing import List
+from dataclasses import dataclass
+
+from cai.pb.msf.msg.comm import Msg
+from cai.client.message import Element
+
+from .base import Event
+
+
+@dataclass
+class PrivateEvent(Event):
+ user_id: int
+
+
+# message service get message
+@dataclass
+class PrivateMessageEvent(PrivateEvent):
+ _msg: Msg
+ seq: int
+ time: int
+ auto_reply: bool
+ user_nick: str
+ to_id: int
+ message: List[Element]
diff --git a/cai/client/events/group.py b/cai/client/events/group.py
index fcf2a4e5..3023a9bb 100644
--- a/cai/client/events/group.py
+++ b/cai/client/events/group.py
@@ -1,6 +1,9 @@
from dataclasses import dataclass
from typing import Any, Dict, List
+from cai.pb.msf.msg.comm import Msg
+from cai.client.message import Element
+
from .base import Event
@@ -9,6 +12,19 @@ class GroupEvent(Event):
group_id: int
+# online push push msg
+@dataclass
+class GroupMessageEvent(GroupEvent):
+ _msg: Msg
+ seq: int
+ time: int
+ group_name: str
+ group_level: int
+ from_uin: int
+ from_group_card: str
+ message: List[Element]
+
+
# online push graytip
@dataclass
class _GroupGrayTipEvent(GroupEvent):
diff --git a/cai/client/highway/highway.py b/cai/client/highway/highway.py
index 6538e668..593794a3 100644
--- a/cai/client/highway/highway.py
+++ b/cai/client/highway/highway.py
@@ -9,7 +9,7 @@
from .encoders import encode_upload_img_req, encode_upload_voice_req
from .frame import read_frame, write_frame
from .utils import to_id, timeit, calc_file_md5_and_length
-from ..message_service.models import ImageElement, VoiceElement
+from ..message.models import ImageElement, VoiceElement
from .decoders import decode_upload_ptt_resp, decode_upload_image_resp
if TYPE_CHECKING:
diff --git a/cai/client/message/__init__.py b/cai/client/message/__init__.py
new file mode 100644
index 00000000..62666d2d
--- /dev/null
+++ b/cai/client/message/__init__.py
@@ -0,0 +1,258 @@
+import zlib
+from typing import List, Sequence
+
+from cai.pb.im.msg.obj_msg import ObjMsg
+from cai.pb.im.msg.msg_body import Ptt, Elem
+from cai.pb.im.msg.service.comm_elem import (
+ MsgElemInfo_servtype2,
+ MsgElemInfo_servtype3,
+ MsgElemInfo_servtype33,
+)
+
+from .models import *
+
+
+def parse_elements(elems: Sequence[Elem]) -> List[Element]:
+ """Parse message rich text elements.
+
+ Only parse ``text``, ``face``, ``small_smoji``, ``common_elem service 33``
+ for plain text.
+
+ Note:
+ Source: com.tencent.imcore.message.ext.codec.decoder.pbelement.*
+
+ Args:
+ elems (Sequence[Elem]): Sequence of rich text elements.
+ ptt (Ptt)
+
+ Returns:
+ List[Element]: List of decoded message elements.
+ """
+ res: List[Element] = []
+ index = 0
+ while index < len(elems):
+ elem = elems[index]
+ # SrcElemDecoder
+ if elem.HasField("src_msg"):
+ if len(elem.src_msg.orig_seqs) > 0:
+ # preprocess
+ # Delete redundancy data
+ # if index == 2: # Sent by PC
+ # res = []
+ # else:
+ # index += 1 # pass
+ res.append(
+ ReplyElement(
+ elem.src_msg.orig_seqs[0],
+ elem.src_msg.time,
+ elem.src_msg.sender_uin,
+ parse_elements(elem.src_msg.elems),
+ elem.src_msg.troop_name.decode("utf-8") or None,
+ )
+ )
+ # TextElemDecoder
+ elif elem.HasField("text"):
+ if elem.text.attr_6_buf:
+ if elem.text.attr_6_buf[6]: # AtAll
+ res.append(AtAllElement())
+ else:
+ res.append(
+ AtElement(
+ int.from_bytes(
+ elem.text.attr_6_buf[7:11], "big", signed=False
+ ),
+ elem.text.str.decode("utf-8"),
+ )
+ )
+ else:
+ res.append(TextElement(elem.text.str.decode("utf-8")))
+ elif elem.HasField("rich_msg"):
+ if elem.rich_msg.template_1[0]:
+ content = zlib.decompress(elem.rich_msg.template_1[1:])
+ else:
+ content = elem.rich_msg.template_1[1:]
+ return [
+ RichMsgElement(
+ content,
+ elem.rich_msg.service_id if content[0] == 60 else -1,
+ )
+ ]
+ elif elem.HasField("light_app"):
+ if elem.light_app.data[0]:
+ content = zlib.decompress(elem.light_app.data[1:])
+ else:
+ content = elem.light_app.data[1:]
+ return [RichMsgElement(content, -2)]
+ # TextElemDecoder
+ elif elem.HasField("face"):
+ res.append(FaceElement(elem.face.index))
+ # TextElemDecoder
+ elif elem.HasField("small_emoji"):
+ index += 1
+ text = elems[index].text.str.decode("utf-8")
+ res.append(
+ SmallEmojiElement(
+ elem.small_emoji.pack_id_sum,
+ text,
+ # bytes(
+ # [
+ # 0x1FF
+ # if elem.small_emoji.image_type & 0xFFFF == 2
+ # else 0xFF,
+ # elem.small_emoji.pack_id_sum & 0xFFFF,
+ # elem.small_emoji.pack_id_sum >> 16 & 0xFF,
+ # elem.small_emoji.pack_id_sum >> 24,
+ # ]
+ # ),
+ )
+ )
+ # PictureElemDecoder
+ elif elem.HasField("custom_face"):
+ if elem.custom_face.md5 and elem.custom_face.orig_url:
+ res.append(
+ ImageElement(
+ filename=elem.custom_face.file_path,
+ size=elem.custom_face.size,
+ width=elem.custom_face.width,
+ height=elem.custom_face.height,
+ md5=elem.custom_face.md5,
+ url="https://gchat.qpic.cn" + elem.custom_face.orig_url,
+ )
+ )
+ elif elem.custom_face.md5:
+ res.append(
+ ImageElement(
+ filename=elem.custom_face.file_path,
+ size=elem.custom_face.size,
+ width=elem.custom_face.width,
+ height=elem.custom_face.height,
+ md5=elem.custom_face.md5,
+ url="https://gchat.qpic.cn/gchatpic_new/0/0-0-"
+ + elem.custom_face.md5.decode().upper()
+ + "/0",
+ )
+ )
+ # PictureElemDecoder
+ elif elem.HasField("not_online_image"):
+ if elem.not_online_image.orig_url:
+ res.append(
+ ImageElement(
+ filename=elem.not_online_image.file_path.decode(
+ "utf-8"
+ ),
+ size=elem.not_online_image.file_len,
+ width=elem.not_online_image.pic_width,
+ height=elem.not_online_image.pic_height,
+ md5=elem.not_online_image.pic_md5,
+ url="https://c2cpicdw.qpic.cn"
+ + elem.not_online_image.orig_url,
+ )
+ )
+ elif (
+ elem.not_online_image.res_id
+ or elem.not_online_image.download_path
+ ):
+ res.append(
+ ImageElement(
+ filename=elem.not_online_image.file_path.decode(
+ "utf-8"
+ ),
+ size=elem.not_online_image.file_len,
+ width=elem.not_online_image.pic_width,
+ height=elem.not_online_image.pic_height,
+ md5=elem.not_online_image.pic_md5,
+ url="https://c2cpicdw.qpic.cn/offpic_new/0/"
+ + (
+ elem.not_online_image.res_id
+ or elem.not_online_image.download_path
+ ).decode("utf-8")
+ + "/0",
+ )
+ )
+ elif elem.HasField("open_qq_data"):
+ res.append(CustomDataElement(data=elem.open_qq_data.car_qq_data))
+ elif elem.HasField("common_elem"):
+ service_type = elem.common_elem.service_type
+ # PokeMsgElemDecoder
+ if service_type == 2:
+ poke = MsgElemInfo_servtype2.FromString(
+ elem.common_elem.pb_elem
+ )
+ res = [
+ PokeElement(
+ poke.poke_type
+ if poke.vaspoke_id == 0xFFFFFFFF
+ else poke.vaspoke_id,
+ poke.vaspoke_name.decode("utf-8"),
+ poke.poke_strength,
+ poke.double_hit,
+ )
+ ]
+ break
+ elif service_type == 3:
+ flash = MsgElemInfo_servtype3.FromString(
+ elem.common_elem.pb_elem
+ )
+ if flash.flash_troop_pic:
+ res.append(
+ FlashImageElement(
+ id=flash.flash_troop_pic.file_id,
+ filename=flash.flash_troop_pic.file_path,
+ filetype=flash.flash_troop_pic.file_type,
+ size=flash.flash_troop_pic.size,
+ md5=flash.flash_troop_pic.md5,
+ width=flash.flash_troop_pic.width,
+ height=flash.flash_troop_pic.height,
+ url=f"https://gchat.qpic.cn/gchatpic_new/0/0-0-{flash.flash_troop_pic.md5.hex().upper()}/0",
+ )
+ )
+ break
+ # TextElemDecoder
+ elif service_type == 33:
+ info = MsgElemInfo_servtype33.FromString(
+ elem.common_elem.pb_elem
+ )
+ res.append(FaceElement(info.index))
+ elif elem.HasField("shake_window"):
+ res.append(
+ ShakeElement(
+ stype=elem.shake_window.type, uin=elem.shake_window.uin
+ )
+ )
+ elif elem.HasField("trans_elem_info"):
+ if elem.trans_elem_info.elem_type == 24: # QQ File
+ if elem.trans_elem_info.elem_value[0]:
+ obj = ObjMsg.FromString(elem.trans_elem_info.elem_value[3:])
+ for info in obj.content_info:
+ res.append(
+ GroupFileElement(
+ info.file.file_name,
+ info.file.file_size,
+ info.file.file_path.decode(),
+ bytes.fromhex(info.file.file_md5.decode()),
+ )
+ )
+ index += 1
+ return res
+
+
+def parse_ptt(ptt: Ptt) -> VoiceElement:
+ """Parse message ptt elements.
+
+ Note:
+ Source: com.tencent.mobileqq.service.message.codec.decoder.PTTDecoder
+
+ Args:
+ ptt (Ptt): ptt element in msg
+
+ Returns:
+ VoiceElement: Parsed VoiceElement object.
+ """
+ return VoiceElement(
+ file_name=ptt.file_name.decode(),
+ file_type=ptt.file_type,
+ file_size=ptt.file_size,
+ file_uuid=ptt.file_uuid,
+ file_md5=ptt.file_md5,
+ url=ptt.down_para.decode(),
+ )
diff --git a/cai/client/message_service/models.py b/cai/client/message/models.py
similarity index 78%
rename from cai/client/message_service/models.py
rename to cai/client/message/models.py
index 60547d19..5ac921b9 100644
--- a/cai/client/message_service/models.py
+++ b/cai/client/message/models.py
@@ -28,39 +28,6 @@ class PokeType(IntEnum):
FangDaZhao = 6
-@dataclass
-class PrivateMessage(Event):
- _msg: Msg
- seq: int
- time: int
- auto_reply: bool
- from_uin: int
- from_nick: str
- to_uin: int
- message: List["Element"]
-
- @property
- def type(self) -> str:
- return "private_message"
-
-
-@dataclass
-class GroupMessage(Event):
- _msg: Msg
- seq: int
- time: int
- group_id: int
- group_name: str
- group_level: int
- from_uin: int
- from_group_card: str
- message: List["Element"]
-
- @property
- def type(self) -> str:
- return "group_message"
-
-
class Element(abc.ABC):
@property
@abc.abstractmethod
@@ -156,11 +123,10 @@ def type(self) -> str:
class VoiceElement(Element):
file_name: str
file_type: int
- from_uin: int
- md5: bytes
- size: int
- group_file_key: bytes
- url: str = None
+ file_size: int
+ file_uuid: bytes
+ file_md5: bytes
+ url: str
@property
def type(self) -> str:
@@ -170,16 +136,16 @@ def type(self) -> str:
def _pb_reserve(self) -> bytes:
return bytes([8, 0, 40, 0, 56, 0])
- def to_ptt(self) -> Ptt:
- return Ptt(
- file_type=self.file_type,
- src_uin=self.from_uin,
- file_md5=self.md5,
- file_name=self.file_name.encode(),
- file_size=self.size,
- pb_reserve=self._pb_reserve,
- valid=True,
- )
+ # def to_ptt(self) -> Ptt:
+ # return Ptt(
+ # file_type=self.file_type,
+ # src_uin=self.from_uin,
+ # file_md5=self.md5,
+ # file_name=self.file_name.encode(),
+ # file_size=self.size,
+ # pb_reserve=self._pb_reserve,
+ # valid=True,
+ # )
@dataclass
diff --git a/cai/client/message_service/__init__.py b/cai/client/message_service/__init__.py
index acdf0c69..190a6f55 100644
--- a/cai/client/message_service/__init__.py
+++ b/cai/client/message_service/__init__.py
@@ -19,7 +19,7 @@
from cai.pb.msf.msg.svc import PbGetMsgReq, PbDeleteMsgReq
from .decoders import MESSAGE_DECODERS
-from .models import GroupMessage, PrivateMessage
+from ..message.models import GroupMessage, PrivateMessage
from .command import (
PushNotify,
GetMessageFail,
diff --git a/cai/client/message_service/decoders.py b/cai/client/message_service/decoders.py
index 4ea14826..9b3dd5f4 100644
--- a/cai/client/message_service/decoders.py
+++ b/cai/client/message_service/decoders.py
@@ -8,279 +8,13 @@
.. _LICENSE:
https://github.com/cscs181/CAI/blob/master/LICENSE
"""
-import zlib
from itertools import chain
-from typing import Dict, List, Callable, Optional, Sequence
+from typing import Dict, List, Callable, Optional
from cai.log import logger
-from cai.client.events import Event
from cai.pb.msf.msg.comm import Msg
-from cai.pb.im.msg.msg_body import Ptt, Elem
-from cai.pb.im.msg.obj_msg import ObjMsg
-from cai.pb.im.msg.service.comm_elem import (
- MsgElemInfo_servtype2,
- MsgElemInfo_servtype3,
- MsgElemInfo_servtype33,
-)
-
-from .models import (
- Element,
- AtElement,
- FaceElement,
- PokeElement,
- TextElement,
- AtAllElement,
- GroupMessage,
- ImageElement,
- ReplyElement,
- ShakeElement,
- VoiceElement,
- PrivateMessage,
- RichMsgElement,
- CustomDataElement,
- FlashImageElement,
- SmallEmojiElement,
- GroupFileElement,
-)
-
-
-def parse_elements(elems: Sequence[Elem], ptt: Optional[Ptt]) -> List[Element]:
- """Parse message rich text elements.
-
- Only parse ``text``, ``face``, ``small_smoji``, ``common_elem service 33``
- for plain text.
-
- Note:
- Source: com.tencent.imcore.message.ext.codec.decoder.pbelement.*
-
- Args:
- elems (Sequence[Elem]): Sequence of rich text elements.
- ptt (Ptt)
-
- Returns:
- List[Element]: List of decoded message elements.
- """
- if ptt:
- if ptt.file_name.endswith(b".amr"):
- info = {}
- for bl in ptt.down_para.decode().split("&")[1:]:
- k, v = bl.split("=", 1)
- info[k] = v
- return [
- VoiceElement(
- ptt.file_name.decode(),
- info["filetype"],
- ptt.src_uin,
- ptt.file_md5,
- ptt.file_size,
- bytes.fromhex(info["rkey"]),
- "https://grouptalk.c2c.qq.com" + ptt.down_para.decode(),
- )
- ]
- res: List[Element] = []
- index = 0
- while index < len(elems):
- elem = elems[index]
- # SrcElemDecoder
- if elem.HasField("src_msg"):
- if len(elem.src_msg.orig_seqs) > 0:
- # preprocess
- # Delete redundancy data
- if index == 2: # Sent by PC
- res = []
- else:
- index += 1 # pass
- res.append(
- ReplyElement(
- elem.src_msg.orig_seqs[0],
- elem.src_msg.time,
- elem.src_msg.sender_uin,
- parse_elements(elem.src_msg.elems, None),
- elem.src_msg.troop_name.decode("utf-8") or None,
- )
- )
- # TextElemDecoder
- elif elem.HasField("text"):
- if elem.text.attr_6_buf:
- if elem.text.attr_6_buf[6]: # AtAll
- res.append(AtAllElement())
- else:
- res.append(
- AtElement(
- int.from_bytes(
- elem.text.attr_6_buf[7:11], "big", signed=False
- ),
- elem.text.str.decode("utf-8"),
- )
- )
- else:
- res.append(TextElement(elem.text.str.decode("utf-8")))
- elif elem.HasField("rich_msg"):
- if elem.rich_msg.template_1[0]:
- content = zlib.decompress(elem.rich_msg.template_1[1:])
- else:
- content = elem.rich_msg.template_1[1:]
- return [
- RichMsgElement(
- content,
- elem.rich_msg.service_id if content[0] == 60 else -1,
- )
- ]
- elif elem.HasField("light_app"):
- if elem.light_app.data[0]:
- content = zlib.decompress(elem.light_app.data[1:])
- else:
- content = elem.light_app.data[1:]
- return [RichMsgElement(content, -2)]
- # TextElemDecoder
- elif elem.HasField("face"):
- res.append(FaceElement(elem.face.index))
- # TextElemDecoder
- elif elem.HasField("small_emoji"):
- index += 1
- text = elems[index].text.str.decode("utf-8")
- res.append(
- SmallEmojiElement(
- elem.small_emoji.pack_id_sum,
- text,
- # bytes(
- # [
- # 0x1FF
- # if elem.small_emoji.image_type & 0xFFFF == 2
- # else 0xFF,
- # elem.small_emoji.pack_id_sum & 0xFFFF,
- # elem.small_emoji.pack_id_sum >> 16 & 0xFF,
- # elem.small_emoji.pack_id_sum >> 24,
- # ]
- # ),
- )
- )
- # PictureElemDecoder
- elif elem.HasField("custom_face"):
- if elem.custom_face.md5 and elem.custom_face.orig_url:
- res.append(
- ImageElement(
- filename=elem.custom_face.file_path,
- size=elem.custom_face.size,
- width=elem.custom_face.width,
- height=elem.custom_face.height,
- md5=elem.custom_face.md5,
- url="https://gchat.qpic.cn" + elem.custom_face.orig_url,
- )
- )
- elif elem.custom_face.md5:
- res.append(
- ImageElement(
- filename=elem.custom_face.file_path,
- size=elem.custom_face.size,
- width=elem.custom_face.width,
- height=elem.custom_face.height,
- md5=elem.custom_face.md5,
- url="https://gchat.qpic.cn/gchatpic_new/0/0-0-"
- + elem.custom_face.md5.decode().upper()
- + "/0",
- )
- )
- # PictureElemDecoder
- elif elem.HasField("not_online_image"):
- if elem.not_online_image.orig_url:
- res.append(
- ImageElement(
- filename=elem.not_online_image.file_path.decode(
- "utf-8"
- ),
- size=elem.not_online_image.file_len,
- width=elem.not_online_image.pic_width,
- height=elem.not_online_image.pic_height,
- md5=elem.not_online_image.pic_md5,
- url="https://c2cpicdw.qpic.cn"
- + elem.not_online_image.orig_url,
- )
- )
- elif (
- elem.not_online_image.res_id
- or elem.not_online_image.download_path
- ):
- res.append(
- ImageElement(
- filename=elem.not_online_image.file_path.decode(
- "utf-8"
- ),
- size=elem.not_online_image.file_len,
- width=elem.not_online_image.pic_width,
- height=elem.not_online_image.pic_height,
- md5=elem.not_online_image.pic_md5,
- url="https://c2cpicdw.qpic.cn/offpic_new/0/"
- + (
- elem.not_online_image.res_id
- or elem.not_online_image.download_path
- ).decode("utf-8")
- + "/0",
- )
- )
- elif elem.HasField("open_qq_data"):
- res.append(CustomDataElement(data=elem.open_qq_data.car_qq_data))
- elif elem.HasField("common_elem"):
- service_type = elem.common_elem.service_type
- # PokeMsgElemDecoder
- if service_type == 2:
- poke = MsgElemInfo_servtype2.FromString(
- elem.common_elem.pb_elem
- )
- res = [
- PokeElement(
- poke.poke_type
- if poke.vaspoke_id == 0xFFFFFFFF
- else poke.vaspoke_id,
- poke.vaspoke_name.decode("utf-8"),
- poke.poke_strength,
- poke.double_hit,
- )
- ]
- break
- elif service_type == 3:
- flash = MsgElemInfo_servtype3.FromString(
- elem.common_elem.pb_elem
- )
- if flash.flash_troop_pic:
- res.append(
- FlashImageElement(
- id=flash.flash_troop_pic.file_id,
- filename=flash.flash_troop_pic.file_path,
- filetype=flash.flash_troop_pic.file_type,
- size=flash.flash_troop_pic.size,
- md5=flash.flash_troop_pic.md5,
- width=flash.flash_troop_pic.width,
- height=flash.flash_troop_pic.height,
- url=f"https://gchat.qpic.cn/gchatpic_new/0/0-0-{flash.flash_troop_pic.md5.hex().upper()}/0",
- )
- )
- break
- # TextElemDecoder
- elif service_type == 33:
- info = MsgElemInfo_servtype33.FromString(
- elem.common_elem.pb_elem
- )
- res.append(FaceElement(info.index))
- elif elem.HasField("shake_window"):
- res.append(
- ShakeElement(
- stype=elem.shake_window.type, uin=elem.shake_window.uin
- )
- )
- elif elem.HasField("trans_elem_info"):
- if elem.trans_elem_info.elem_type == 24: # QQ File
- if elem.trans_elem_info.elem_value[0]:
- obj = ObjMsg.FromString(elem.trans_elem_info.elem_value[3:])
- for info in obj.content_info:
- res.append(GroupFileElement(
- info.file.file_name,
- info.file.file_size,
- info.file.file_path.decode(),
- bytes.fromhex(info.file.file_md5.decode())
- ))
- index += 1
- return res
+from cai.client.message import parse_ptt, parse_elements
+from cai.client.events import Event, GroupMessageEvent, PrivateMessageEvent
class BuddyMessageDecoder:
@@ -304,7 +38,7 @@ def decode(cls, message: Msg) -> Optional[Event]:
# 242: OfflineFileDecoder,
# 243: OfflineFileDecoder,
}
- Decoder = sub_decoders.get(message.head.c2c_cmd, None)
+ Decoder = sub_decoders.get(message.head.c2c_cmd)
if not Decoder:
logger.debug(
"MessageSvc.PbGetMsg: BuddyMessageDecoder cannot "
@@ -338,18 +72,20 @@ def decode_normal_buddy(cls, message: Msg) -> Optional[Event]:
from_uin = message.head.from_uin
from_nick = message.head.from_nick
to_uin = message.head.to_uin
- elems = message.body.rich_text.elems
- ptt = message.body.rich_text.ptt
-
- return PrivateMessage(
- message,
- seq,
- time,
- auto_reply,
- from_uin,
- from_nick,
- to_uin,
- parse_elements(elems, ptt),
+ parsed_elems = []
+ if message.body.rich_text.HasField("ptt"):
+ parsed_elems.append(parse_ptt(message.body.rich_text.ptt))
+ parsed_elems.extend(parse_elements(message.body.rich_text.elems))
+
+ return PrivateMessageEvent(
+ _msg=message,
+ seq=seq,
+ time=time,
+ auto_reply=auto_reply,
+ user_id=from_uin,
+ user_nick=from_nick,
+ to_id=to_uin,
+ message=parsed_elems,
)
@@ -383,8 +119,13 @@ def decode(cls, message: Msg) -> Optional[Event]:
from_uin = message.head.from_uin
troop = message.head.group_info
content_head = message.content_head
+ parsed_elems = []
+ ptts = (
+ [message.body.rich_text.ptt]
+ if message.body.rich_text.HasField("ptt")
+ else []
+ )
elems = message.body.rich_text.elems
- ptt = message.body.rich_text.ptt
# long msg fragment
if content_head.pkg_num > 1:
@@ -396,25 +137,29 @@ def decode(cls, message: Msg) -> Optional[Event]:
return
cls.long_msg_fragment_store.pop(content_head.div_seq)
+ f = sorted(fragments, key=lambda f: f.content_head.pkg_index)
+ ptts = [
+ msg.body.rich_text.ptt
+ for msg in f
+ if msg.body.rich_text.HasField("ptt")
+ ]
elems = list(
- chain.from_iterable(
- msg.body.rich_text.elems
- for msg in sorted(
- fragments, key=lambda f: f.content_head.pkg_index
- )
- )
+ chain.from_iterable(msg.body.rich_text.elems for msg in f)
)
- return GroupMessage(
- message,
- seq,
- time,
- troop.group_code,
- troop.group_name.decode("utf-8"),
- troop.group_level,
- from_uin,
- troop.group_card.decode("utf-8"),
- parse_elements(elems, ptt),
+ parsed_elems.extend(map(parse_ptt, ptts))
+ parsed_elems.extend(parse_elements(elems))
+
+ return GroupMessageEvent(
+ _msg=message,
+ seq=seq,
+ time=time,
+ group_id=troop.group_code,
+ group_name=troop.group_name.decode("utf-8"),
+ group_level=troop.group_level,
+ from_uin=from_uin,
+ from_group_card=troop.group_card.decode("utf-8"),
+ message=parsed_elems,
)
diff --git a/cai/client/message_service/encoders.py b/cai/client/message_service/encoders.py
index aba6b6fa..1ef8be04 100644
--- a/cai/client/message_service/encoders.py
+++ b/cai/client/message_service/encoders.py
@@ -22,7 +22,7 @@
OpenQQData
)
-from . import models
+from ..message import models
# todo: https://github.com/mamoe/mirai/blob/7d3971259de59cede94b7a55650c8a6ad4346a59/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/receive/MessageSvc.PbSendMsg.kt#L103
# https://github.com/mamoe/mirai/blob/74fc5a50376ed0330b984af51e0fabc2147afdbb/mirai-core/src/commonMain/kotlin/contact/SendMessageHandler.kt
diff --git a/examples/login.py b/examples/login.py
index b523fa46..ee946f8c 100644
--- a/examples/login.py
+++ b/examples/login.py
@@ -18,7 +18,7 @@
from PIL import Image
from cai.api import Client, make_client
-from cai.client.message_service.models import TextElement
+from cai.client.message.models import TextElement
from cai.client import Event, GroupMessage, OnlineStatus, PrivateMessage
from cai.exceptions import (
LoginException,