cai.client.status_service package¶
StatSvc Related SDK.
This module is used to build and handle status service related packet.
- Copyright
Copyright (C) 2021-2021 cscs181
- License
AGPL-3.0 or later. See LICENSE for detail.
- class cai.client.status_service.OnlineStatus(value)¶
基类:
enum.IntEnum注解
Source: mqq.app.AppRuntime
- Unknown = 0¶
未知
- Online = 11¶
我在线上
- Offline = 21¶
离线
- Away = 31¶
离开
- Invisible = 41¶
隐身
- Busy = 50¶
忙碌
- Qme = 60¶
Q 我吧
- Dnd = 70¶
请勿打扰
- ReceiveOfflineMsg = 95¶
离线但接收消息
- Battery = 1000¶
当前电量
- Listening = 1028¶
听歌中
- Constellation = 1040¶
星座运势
- Weather = 1030¶
今日天气
- MeetSpring = 1069¶
遇见春天
- Timi = 1027¶
Timi中
- EatChicken = 1064¶
吃鸡中
- Loving = 1051¶
恋爱中
- WangWang = 1053¶
汪汪汪
- CookedRice = 1019¶
干饭中
- Study = 1018¶
学习中
- StayUp = 1032¶
熬夜中
- PlayBall = 1050¶
打球中
- Signal = 1011¶
信号弱
- StudyOnline = 1024¶
在线学习
- Gaming = 1017¶
游戏中
- Vacationing = 1022¶
度假中
- WatchingTV = 1021¶
追剧中
- Fitness = 1020¶
健身中
- class cai.client.status_service.RegPushReason(value)¶
基类:
str,enum.Enum注解
Source: com.tencent.mobileqq.msf.core.push.RegPushReason
- MsfBoot = 'msfBoot'¶
- AppRegister = 'appRegister'¶
- Unknown = 'unknown'¶
- MsfHeartTimeTooLong = 'msfHeartTimeTooLong'¶
- MsfByNetChange = 'msfByNetChange'¶
- ServerPush = 'serverPush'¶
- FillRegProxy = 'fillRegProxy'¶
- CreateDefaultRegInfo = 'createDefaultRegInfo'¶
- SetOnlineStatus = 'setOnlineStatus'¶
- cai.client.status_service.encode_register(seq: int, session_id: bytes, ksid: bytes, uin: int, tgt: bytes, d2: bytes, d2key: bytes, status: Union[int, cai.client.status_service.OnlineStatus], reg_push_reason: Union[str, cai.client.status_service.RegPushReason]) cai.utils.binary.Packet¶
Build status service register packet.
Called in
com.tencent.mobileqq.msf.core.push.e.a.command name:
StatSvc.register注解
Source: com.tencent.mobileqq.msf.core.push.e.a
- 参数
seq (int) – Packet sequence.
session_id (bytes) – Session ID.
ksid (bytes) – KSID of client.
uin (int) – User QQ number.
tgt (bytes) – Siginfo tgt.
d2 (bytes) – Siginfo d2.
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.
- 返回
Register packet.
- 返回类型
- cai.client.status_service.encode_set_status(seq: int, session_id: bytes, uin: int, d2key: bytes, status: Union[int, cai.client.status_service.OnlineStatus], battery_status: Optional[int] = None, is_power_connected: bool = False) cai.utils.binary.Packet¶
Build status service register packet.
Called in
com.tencent.mobileqq.msf.core.push.e.a.command name:
StatSvc.SetStatusFromClient注解
Source: com.tencent.mobileqq.msf.core.push.e.a
- 参数
seq (int) – Packet sequence.
session_id (bytes) – Session ID.
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.
battery_status (Optional[int], optional) – Battery capacity. Only works when status is
OnlineStatus.Battery. Defaults to None.is_power_connected (bool, optional) – Is power connected to phone. Only works when status is
OnlineStatus.Battery. Defaults to False.
- 返回
Register packet.
- 返回类型
- async cai.client.status_service.handle_register_response(client: Client, packet: cai.client.packet.IncomingPacket) cai.client.status_service.command.SvcRegisterResponse¶
- cai.client.status_service.encode_force_offline_response(seq: int, session_id: bytes, ksid: bytes, uin: int, tgt: bytes, d2: bytes, d2key: bytes, req_uin: int, seq_no: int) cai.utils.binary.Packet¶
Build status service msf offline response packet.
Called in
com.tencent.mobileqq.msf.core.af.a.command name:
StatSvc.RspMSFForceOffline注解
Source: com.tencent.mobileqq.msf.core.af.a
- 参数
seq (int) – Packet sequence.
session_id (bytes) – Session ID.
ksid (bytes) – KSID of client.
uin (int) – User QQ number.
tgt (bytes) – Siginfo tgt.
d2 (bytes) – Siginfo d2.
d2key (bytes) – Siginfo d2 key.
req_uin (int) – Request offline uin.
seq_no (int) – Request sequence number.
- 返回
msf force offline response packet.
- 返回类型
- async cai.client.status_service.handle_request_offline(client: Client, packet: cai.client.packet.IncomingPacket) cai.client.status_service.command.MSFForceOfflineCommand¶
Submodules¶
cai.client.status_service.command module¶
StatSvc Command Parser.
This module is used to parse StatSvc response packets into command.
- Copyright
Copyright (C) 2021-2021 cscs181
- License
AGPL-3.0 or later. See LICENSE for detail.
- class cai.client.status_service.command.SvcRegisterResponse(uin: int, seq: int, ret_code: int, command_name: str)¶
-
- classmethod decode_response(uin: int, seq: int, ret_code: int, command_name: str, data: bytes) cai.client.status_service.command.SvcRegisterResponse¶
Decode StatSvc register response.
注解
Source: com.tencent.mobileqq.servlet.PushServlet.onReceive
- 参数
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.
- 返回
register success. RegisterFail: register failed.
- 返回类型
- uin: int¶
- seq: int¶
- ret_code: int¶
- command_name: str¶
- class cai.client.status_service.command.RegisterFail(uin: int, seq: int, ret_code: int, command_name: str, message: Union[str, NoneType] = None)¶
基类:
cai.client.status_service.command.SvcRegisterResponse- message: Optional[str] = None¶
- class cai.client.status_service.command.RegisterSuccess(uin: int, seq: int, ret_code: int, command_name: str, response: cai.client.status_service.jce.SvcRespRegister)¶
- class cai.client.status_service.command.MSFForceOfflineCommand(uin: int, seq: int, ret_code: int, command_name: str)¶
-
- classmethod decode_response(uin: int, seq: int, ret_code: int, command_name: str, data: bytes) cai.client.status_service.command.MSFForceOfflineCommand¶
Decode StatSvc MSF Offline request.
注解
Source: com.tencent.mobileqq.msf.core.af.a
- 参数
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.
- uin: int¶
- seq: int¶
- ret_code: int¶
- command_name: str¶
- class cai.client.status_service.command.MSFForceOffline(uin: int, seq: int, ret_code: int, command_name: str, request: cai.client.status_service.jce.RequestMSFForceOffline)¶
- class cai.client.status_service.command.MSFForceOfflineError(uin: int, seq: int, ret_code: int, command_name: str, message: str)¶
基类:
cai.client.status_service.command.MSFForceOfflineCommand- message: str¶
cai.client.status_service.jce module¶
StatSvc Packet Builder.
This module is used to build and handle StatSvc packets.
- Copyright
Copyright (C) 2021-2021 cscs181
- License
AGPL-3.0 or later. See LICENSE for detail.
- class cai.client.status_service.jce.VendorPushInfo(*, vendor_type: jce.types.INT64 = 0)¶
基类:
jce.types.JceStructVendor Push Info Jce Packet.
注解
Source: com.tencent.msf.service.protocol.push.VendorPushInfo
- vendor_type: jce.types.INT64¶
third push type.
- Type
INT64
- class cai.client.status_service.jce.SvcReqRegister(*, uin: jce.types.INT64, bid: jce.types.INT64, conn_type: jce.types.BYTE = b'\x00', other: jce.types.STRING = '', status: jce.types.INT32, online_push: jce.types.BOOL = False, is_online: jce.types.BOOL = False, is_show_online: jce.types.BOOL = False, kick_pc: jce.types.BOOL = False, kick_weak: jce.types.BOOL = False, timestamp: jce.types.INT64 = 0, ios_version: jce.types.INT64, nettype: jce.types.BYTE, build_version: jce.types.STRING = '', reg_type: jce.types.BYTE, dev_param: jce.types.BYTES = None, guid: jce.types.BYTES = None, locale_id: jce.types.INT32 = 2052, slient_push: jce.types.BYTE = b'\x00', dev_name: jce.types.STRING = '', dev_type: jce.types.STRING = '', os_version: jce.types.STRING = '', open_push: jce.types.BOOL = True, large_seq: jce.types.INT64, last_watch_start_time: jce.types.INT64 = 0, bind_uin: jce.types.LIST[jce.types.JceType] = None, old_sso_ip: jce.types.INT64 = 0, new_sso_ip: jce.types.INT64 = 0, channel_num: jce.types.STRING = '', cp_id: jce.types.INT64 = 0, vendor_name: jce.types.STRING = '', vendor_os_name: jce.types.STRING = '', ios_idfa: jce.types.STRING = '', b769_req: jce.types.BYTES = None, is_set_status: jce.types.BOOL, server_buf: jce.types.BYTES = None, set_mute: jce.types.BOOL, ext_online_status: jce.types.INT64, battery_status: jce.types.INT32, vendor_push_info: cai.client.status_service.jce.VendorPushInfo = None)¶
基类:
jce.types.JceStructService Request Register Jce Packet.
注解
Source: com.tencent.msf.service.protocol.push.SvcReqRegister
- uin: jce.types.INT64¶
uin.
- Type
INT64
- bid: jce.types.INT64¶
login bid.
login: 1 | 2 | 4 = 7, logout: 0.
- Type
INT64
- conn_type: jce.types.BYTE¶
always 0.
- Type
BYTE
- other: jce.types.STRING¶
unknown.
- Type
STRING
- status: jce.types.INT32¶
online status.
online: 11, offline: 21, away: 31, invisible: 41, busy: 50, qme: 60, dnd: 70, receive_offline_msg: 95.
- Type
INT32
- online_push: jce.types.BOOL¶
unknown.
- Type
BOOL
- is_online: jce.types.BOOL¶
is online.
- Type
BOOL
- is_show_online: jce.types.BOOL¶
is show online.
- Type
BOOL
- kick_pc: jce.types.BOOL¶
whether to kick pc or not.
- Type
BOOL
- kick_weak: jce.types.BOOL¶
kick weak.
- Type
BOOL
- timestamp: jce.types.INT64¶
timestamp.
- Type
INT64
- ios_version: jce.types.INT64¶
android sdk version.
- Type
INT64
- nettype: jce.types.BYTE¶
nettype.
wifi: 1, mobile: 0.
- Type
BYTE
- build_version: jce.types.STRING¶
build version.
- Type
STRING
- reg_type: jce.types.BYTE¶
reg push reason.
appRegister, fillRegProxy, createDefaultRegInfo, setOnlineStatus: 0; else 1.
- Type
BYTE
- dev_param: Optional[jce.types.BYTES]¶
unknown.
- Type
BYTES
- guid: Optional[jce.types.BYTES]¶
guid.
- Type
BYTES
- locale_id: jce.types.INT32¶
2052 by default.
- Type
INT32
- slient_push: jce.types.BYTE¶
unknown.
- Type
BYTE
- dev_name: jce.types.STRING¶
device model.
- Type
STRING
- dev_type: jce.types.STRING¶
device model.
- Type
STRING
- os_version: jce.types.STRING¶
build version release.
- Type
STRING
- open_push: jce.types.BOOL¶
open push.
- Type
BOOL
- large_seq: jce.types.INT64¶
large seq.
- Type
INT64
- last_watch_start_time: jce.types.INT64¶
unknown.
- Type
INT64
- bind_uin: Optional[jce.types.LIST[jce.types.JceType]]¶
unknown.
- Type
LIST
- old_sso_ip: jce.types.INT64¶
old sso ip.
- Type
INT64
- new_sso_ip: jce.types.INT64¶
new sso ip.
- Type
INT64
- channel_num: jce.types.STRING¶
unknown.
- Type
STRING
- cp_id: jce.types.INT64¶
unknown.
- Type
INT64
- vendor_name: jce.types.STRING¶
vendor name.
- from com.tencent.qphone.base.util.ROMUtil.getRomName():
MIUI, EMUI, FuntouchOS, SMARTISAN, LENOVO, H2OS/O2OS, EUI, MiFavorUI, NUBIAUI, FLYME, LINEAGE, 360, Build.MANUFACTURER
- Type
STRING
- vendor_os_name: jce.types.STRING¶
vendor os name.
- com.tencent.qphone.base.util.ROMUtil.getRomVersion():
ro.miui.ui.version.name, ro.build.version.emui, ro.vivo.os.version, …
- Type
STRING
- ios_idfa: jce.types.STRING¶
unknown.
- Type
STRING
- b769_req: Optional[jce.types.BYTES]¶
oidb 0x769 request body.
- Type
BYTES
- is_set_status: jce.types.BOOL¶
is set status.
- reg push reason:
setOnlineStatus: True, else: False.
- Type
BOOL
- server_buf: Optional[jce.types.BYTES]¶
unknown.
- Type
BYTES
- set_mute: jce.types.BOOL¶
set mute.
- Type
BOOL
- ext_online_status: jce.types.INT64¶
extra online status.
- Type
INT64
- battery_status: jce.types.INT32¶
battery status.
battery capacity (
capacity | 128when power connect).- Type
INT32
- vendor_push_info: Optional[cai.client.status_service.jce.VendorPushInfo]¶
vendor push info.
- Type
- class cai.client.status_service.jce.SvcRespRegister(*, uin: jce.types.INT64, bid: jce.types.INT64, reply_code: jce.types.INT8, result: jce.types.STRING = '', server_time: jce.types.INT64 = 0, log_qq: jce.types.BYTE = b'\x00', need_kick: jce.types.BOOL = False, update_flag: jce.types.BYTE = b'\x00', timestamp: jce.types.INT64 = 0, crash_flag: jce.types.BYTE = b'\x00', client_ip: jce.types.STRING = '', client_port: jce.types.INT = 0, hello_interval: jce.types.INT = 300, large_seq: jce.types.INT64, large_seq_update: jce.types.BYTE = b'\x00', b769_resp: jce.types.BYTES = None, status: jce.types.INT32 = 0, ext_online_status: jce.types.INT64 = 0, client_battery_get_interval: jce.types.INT64 = 86400, client_auto_status_interval: jce.types.INT64 = 600)¶
基类:
jce.types.JceStructService Response Register Jce Packet.
注解
Source: com.tencent.msf.service.protocol.push.SvcRespRegister
- uin: jce.types.INT64¶
uin.
- Type
INT64
- bid: jce.types.INT64¶
login bid.
login: 1 | 2 | 4 = 7, logout: 0.
- Type
INT64
- reply_code: jce.types.INT8¶
reply code.
- Type
INT8
- result: jce.types.STRING¶
reply message.
- Type
STRING
- server_time: jce.types.INT64¶
server time.
- Type
INT64
- log_qq: jce.types.BYTE¶
unknown.
- Type
BYTE
- need_kick: jce.types.BOOL¶
need kick.
- Type
BOOL
- update_flag: jce.types.BYTE¶
unknown.
- Type
BYTE
- timestamp: jce.types.INT64¶
timestamp.
- Type
INT64
- crash_flag: jce.types.BYTE¶
unknown.
- Type
BYTE
- client_ip: jce.types.STRING¶
client IP.
- Type
STRING
- client_port: jce.types.INT¶
client port.
- Type
INT
- hello_interval: jce.types.INT¶
heartbeat interval time.
- Type
INT
- large_seq: jce.types.INT64¶
large seq.
- Type
INT64
- large_seq_update: jce.types.BYTE¶
unknown.
- Type
BYTE
- b769_resp: Optional[jce.types.BYTES]¶
oidb 0x769 response body.
- Type
BYTES
- status: jce.types.INT32¶
online status.
online: 11, offline: 21, away: 31, invisible: 41, busy: 50, qme: 60, dnd: 70, receive_offline_msg: 95.
- Type
INT32
- ext_online_status: jce.types.INT64¶
extra online status.
- Type
INT64
- client_battery_get_interval: jce.types.INT64¶
client battery status get interval.
- Type
INT64
- client_auto_status_interval: jce.types.INT64¶
client status get interval.
- Type
INT64
- class cai.client.status_service.jce.RequestMSFForceOffline(*, uin: jce.types.INT64, seq_no: jce.types.INT64, kick_type: jce.types.INT8, info: jce.types.STRING, title: jce.types.STRING = '', sig_kick: jce.types.BYTE = b'\x00', sig_kick_data: jce.types.BYTES = b'', same_device: jce.types.BOOL = False)¶
基类:
jce.types.JceStructStatSvc MSF Force offline Request jce packet.
注解
Source: com.tencent.msf.service.protocol.push.RequestMSFForceOffline
- uin: jce.types.INT64¶
- seq_no: jce.types.INT64¶
- kick_type: jce.types.INT8¶
- info: jce.types.STRING¶
- title: jce.types.STRING¶
- sig_kick: jce.types.BYTE¶
- sig_kick_data: jce.types.BYTES¶
- same_device: jce.types.BOOL¶
- class cai.client.status_service.jce.ResponseMSFForceOffline(*, uin: jce.types.INT64, seq_no: jce.types.INT64, c: jce.types.BYTE)¶
基类:
jce.types.JceStructStatSvc MSF Force offline Response jce packet.
注解
Source: com.tencent.msf.service.protocol.push.C35829b
- uin: jce.types.INT64¶
- seq_no: jce.types.INT64¶
- c: jce.types.BYTE¶