feat & fix: feat proto & revert NapProto changes

This commit is contained in:
pk5ls20 2024-10-13 16:13:34 +08:00
parent b4e22a345d
commit d21da47a7d
No known key found for this signature in database
GPG Key ID: 6370ED7A169F493A
6 changed files with 19 additions and 17 deletions

View File

@ -55,8 +55,8 @@ export class NTQQGroupApi {
); );
} }
async sendPocketRkey() { async sendPocketRkey() {
let hex = '08E7A00210CA01221D0A130A05080110CA011206A80602B006011A0208022206080A081408022A006001'; let u8 = await this.core.apis.PacketApi.buildRkeyPacket()
let ret = await this.core.apis.PacketApi.sendPacket('OidbSvcTrpcTcp.0x9067_202', hex, true); let ret = await this.core.apis.PacketApi.sendPacket('OidbSvcTrpcTcp.0x9067_202', Buffer.from(u8).toString('hex'), true);
//console.log('ret: ', ret); //console.log('ret: ', ret);
} }
async sendPacketPoke(group: number, peer: number) { async sendPacketPoke(group: number, peer: number) {

View File

@ -76,18 +76,20 @@ export class NTQQPacketApi {
reqHead: { reqHead: {
common: { common: {
requestId: 1, requestId: 1,
command: 2 command: 202
}, },
scene: { scene: {
requestType: 2, requestType: 2,
businessType: 1, businessType: 1,
sceneType: 0 sceneType: 0
}, },
clent: { client: {
agentType: 2 agentType: 2
} }
}, },
downloadRKeyReq: [[{ key: 10 }, { key: 20 }], { key: 2 }], downloadRKeyReq: {
key: [10, 20, 2]
},
}); });
let oidb_packet = new NapProtoMsg(OidbSvcTrpcTcpBase).encode({ let oidb_packet = new NapProtoMsg(OidbSvcTrpcTcpBase).encode({
command: 0x9067, command: 0x9067,

View File

@ -1,4 +1,4 @@
import { MessageType, RepeatType, ScalarType } from '@protobuf-ts/runtime'; import { MessageType, PartialMessage, RepeatType, ScalarType } from '@protobuf-ts/runtime';
import { PartialFieldInfo } from "@protobuf-ts/runtime/build/types/reflection-info"; import { PartialFieldInfo } from "@protobuf-ts/runtime/build/types/reflection-info";
type LowerCamelCase<S extends string> = CamelCaseHelper<S, false, true>; type LowerCamelCase<S extends string> = CamelCaseHelper<S, false, true>;
@ -122,7 +122,7 @@ export class NapProtoMsg<T extends ProtoMessageType> {
no: field.no, no: field.no,
name: key, name: key,
kind: 'message', kind: 'message',
repeat: field.repeat ? RepeatType.UNPACKED : RepeatType.NO, repeat: field.repeat ? RepeatType.PACKED : RepeatType.NO,
T: () => rt, T: () => rt,
}; };
} }
@ -131,7 +131,7 @@ export class NapProtoMsg<T extends ProtoMessageType> {
} }
encode(data: ProtoStructType<T, true>): Uint8Array { encode(data: ProtoStructType<T, true>): Uint8Array {
return this._proto_msg.toBinary(data) return this._proto_msg.toBinary(this._proto_msg.create(data as PartialMessage<ProtoStructType<T, boolean>>));
} }
decode(data: Uint8Array): ProtoStructType<T, false> { decode(data: Uint8Array): ProtoStructType<T, false> {

View File

@ -4,8 +4,8 @@ import { MultiMediaReqHead } from "./common/Ntv2.RichMedia";
export const OidbSvcTrpcTcp0X9067_202 = { export const OidbSvcTrpcTcp0X9067_202 = {
ReqHead: ProtoField(1, () => MultiMediaReqHead), ReqHead: ProtoField(1, () => MultiMediaReqHead),
DownloadRKeyReq: ProtoField(4, () => OidbSvcTrpcTcp0X9067_202Key, true, false), DownloadRKeyReq: ProtoField(4, () => OidbSvcTrpcTcp0X9067_202Key),
} }
export const OidbSvcTrpcTcp0X9067_202Key = { export const OidbSvcTrpcTcp0X9067_202Key = {
key: ProtoField(1, ScalarType.UINT32) key: ProtoField(1, ScalarType.INT32, false, true),
} }

View File

@ -8,7 +8,7 @@ export const NTV2RichMediaReq = {
export const MultiMediaReqHead = { export const MultiMediaReqHead = {
Common: ProtoField(1, () => CommonHead), Common: ProtoField(1, () => CommonHead),
Scene: ProtoField(2, () => SceneInfo), Scene: ProtoField(2, () => SceneInfo),
Clent: ProtoField(3, () => ClientMeta), Client: ProtoField(3, () => ClientMeta),
} }
export const CommonHead = { export const CommonHead = {
RequestId: ProtoField(1, ScalarType.UINT32), RequestId: ProtoField(1, ScalarType.UINT32),
@ -19,6 +19,9 @@ export const SceneInfo = {
BusinessType: ProtoField(102, ScalarType.UINT32), BusinessType: ProtoField(102, ScalarType.UINT32),
SceneType: ProtoField(200, ScalarType.UINT32), SceneType: ProtoField(200, ScalarType.UINT32),
} }
export const ClientMeta = {
AgentType: ProtoField(1, ScalarType.UINT32),
}
export const C2CUserInfo = { export const C2CUserInfo = {
AccountType: ProtoField(1, ScalarType.UINT32), AccountType: ProtoField(1, ScalarType.UINT32),
TargetUid: ProtoField(2, ScalarType.STRING), TargetUid: ProtoField(2, ScalarType.STRING),
@ -26,9 +29,6 @@ export const C2CUserInfo = {
export const GroupInfo = { export const GroupInfo = {
GroupUin: ProtoField(1, ScalarType.UINT32), GroupUin: ProtoField(1, ScalarType.UINT32),
} }
export const ClientMeta = {
AgentType: ProtoField(1, ScalarType.UINT32),
}
export const DownloadReq = { export const DownloadReq = {
Node: ProtoField(1, ScalarType.BYTES), Node: ProtoField(1, ScalarType.BYTES),
Download: ProtoField(2, ScalarType.BYTES), Download: ProtoField(2, ScalarType.BYTES),

View File

@ -21,6 +21,6 @@ export class GroupPoke extends BaseAction<Payload, any> {
if (!this.core.apis.PacketApi.PacketClient?.isConnected) { if (!this.core.apis.PacketApi.PacketClient?.isConnected) {
throw new Error('PacketClient is not init'); throw new Error('PacketClient is not init');
} }
this.core.apis.GroupApi.sendPacketPoke(+payload.group_id, +payload.user_id); await this.core.apis.GroupApi.sendPacketPoke(+payload.group_id, +payload.user_id);
} }
} }