mirror of
https://github.com/NapNeko/NapCatQQ.git
synced 2024-11-21 09:36:35 +00:00
fix
This commit is contained in:
parent
1cdb93baa2
commit
d79e91fc1e
@ -35,6 +35,7 @@ export class NTQQFileApi {
|
|||||||
this.context = context;
|
this.context = context;
|
||||||
this.core = core;
|
this.core = core;
|
||||||
this.rkeyManager = new RkeyManager(['https://llob.linyuchen.net/rkey', 'http://napcat-sign.wumiao.wang:2082/rkey'], this.context.logger);
|
this.rkeyManager = new RkeyManager(['https://llob.linyuchen.net/rkey', 'http://napcat-sign.wumiao.wang:2082/rkey'], this.context.logger);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async copyFile(filePath: string, destPath: string) {
|
async copyFile(filePath: string, destPath: string) {
|
||||||
@ -375,14 +376,9 @@ export class NTQQFileApi {
|
|||||||
group_rkey: 'CAQSKAB6JWENi5LM_xp9vumLbuThJSaYf-yzMrbZsuq7Uz2qffcqm614gds',
|
group_rkey: 'CAQSKAB6JWENi5LM_xp9vumLbuThJSaYf-yzMrbZsuq7Uz2qffcqm614gds',
|
||||||
online_rkey: false
|
online_rkey: false
|
||||||
};
|
};
|
||||||
if (this.core.apis.PacketApi.PacketClient?.isConnected) {
|
|
||||||
let rkeylist = await this.core.apis.PacketApi.sendRkeyPacket();
|
|
||||||
if (rkeylist.length > 0) {
|
|
||||||
rkeyData.group_rkey = rkeylist[0].rkey;
|
|
||||||
rkeyData.private_rkey = rkeylist[1].rkey;
|
|
||||||
rkeyData.online_rkey = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!rkeyData.online_rkey) {
|
if (!rkeyData.online_rkey) {
|
||||||
try {
|
try {
|
||||||
let tempRkeyData = await this.rkeyManager.getRkey();
|
let tempRkeyData = await this.rkeyManager.getRkey();
|
||||||
|
@ -46,8 +46,19 @@ export class NTQQPacketApi {
|
|||||||
await this.PacketClient.connect();
|
await this.PacketClient.connect();
|
||||||
await this.PacketClient.init(process.pid, table.recv, table.send);
|
await this.PacketClient.init(process.pid, table.recv, table.send);
|
||||||
this.isInit = true;
|
this.isInit = true;
|
||||||
|
this.InitOtherServer()
|
||||||
return this.isInit;
|
return this.isInit;
|
||||||
}
|
}
|
||||||
|
async InitOtherServer() {
|
||||||
|
this.core.apis.FileApi.rkeyManager.regOutputRkey(
|
||||||
|
async () => {
|
||||||
|
let rkeylist = await this.core.apis.PacketApi.sendRkeyPacket();
|
||||||
|
if (rkeylist.length > 0) {
|
||||||
|
return rkeylist;
|
||||||
|
}
|
||||||
|
return undefined;
|
||||||
|
});
|
||||||
|
}
|
||||||
randText(len: number) {
|
randText(len: number) {
|
||||||
let text = '';
|
let text = '';
|
||||||
let possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
|
let possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
|
||||||
@ -74,8 +85,8 @@ export class NTQQPacketApi {
|
|||||||
async sendRkeyPacket() {
|
async sendRkeyPacket() {
|
||||||
let u8 = await this.core.apis.PacketApi.buildRkeyPacket()
|
let u8 = await this.core.apis.PacketApi.buildRkeyPacket()
|
||||||
let ret = await this.core.apis.PacketApi.sendPacket('OidbSvcTrpcTcp.0x9067_202', Buffer.from(u8).toString('hex'), true);
|
let ret = await this.core.apis.PacketApi.sendPacket('OidbSvcTrpcTcp.0x9067_202', Buffer.from(u8).toString('hex'), true);
|
||||||
if(!ret?.hex_data) return []
|
if (!ret?.hex_data) return []
|
||||||
let body = new NapProtoMsg(OidbSvcTrpcTcpBaseRsp).decode(Buffer.from(ret.hex_data,'hex')).body;
|
let body = new NapProtoMsg(OidbSvcTrpcTcpBaseRsp).decode(Buffer.from(ret.hex_data, 'hex')).body;
|
||||||
//console.log('ret: ', Buffer.from(body).toString('hex'));
|
//console.log('ret: ', Buffer.from(body).toString('hex'));
|
||||||
let retdata = new NapProtoMsg(OidbSvcTrpcTcp0X9067_202_Rsp_Body).decode(body)
|
let retdata = new NapProtoMsg(OidbSvcTrpcTcp0X9067_202_Rsp_Body).decode(body)
|
||||||
//console.log('ret: ', JSON.stringify(retdata.data.rkeyList));
|
//console.log('ret: ', JSON.stringify(retdata.data.rkeyList));
|
||||||
|
@ -10,6 +10,7 @@ interface ServerRkeyData {
|
|||||||
export class RkeyManager {
|
export class RkeyManager {
|
||||||
serverUrl: string[] = [];
|
serverUrl: string[] = [];
|
||||||
logger: LogWrapper;
|
logger: LogWrapper;
|
||||||
|
rkeyGetCb: any;
|
||||||
private rkeyData: ServerRkeyData = {
|
private rkeyData: ServerRkeyData = {
|
||||||
group_rkey: '',
|
group_rkey: '',
|
||||||
private_rkey: '',
|
private_rkey: '',
|
||||||
@ -38,9 +39,23 @@ export class RkeyManager {
|
|||||||
// console.log(`now: ${now}, expired_time: ${this.rkeyData.expired_time}`);
|
// console.log(`now: ${now}, expired_time: ${this.rkeyData.expired_time}`);
|
||||||
return now > this.rkeyData.expired_time;
|
return now > this.rkeyData.expired_time;
|
||||||
}
|
}
|
||||||
|
regOutputRkey(cb: any) {
|
||||||
|
this.rkeyGetCb = cb;
|
||||||
|
}
|
||||||
async refreshRkey(): Promise<any> {
|
async refreshRkey(): Promise<any> {
|
||||||
//刷新rkey
|
//刷新rkey
|
||||||
|
try {
|
||||||
|
if (this.rkeyGetCb) {
|
||||||
|
let data = await this.rkeyGetCb();
|
||||||
|
this.rkeyData = {
|
||||||
|
group_rkey: data.group_rkey.slice(6),
|
||||||
|
private_rkey: data.private_rkey.slice(6),
|
||||||
|
expired_time: data.time
|
||||||
|
};
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
this.logger.logError.bind(this.logger)('Packet Server 获取rkey失败', error);
|
||||||
|
}
|
||||||
for (const url of this.serverUrl) {
|
for (const url of this.serverUrl) {
|
||||||
try {
|
try {
|
||||||
let temp = await RequestUtil.HttpGetJson<ServerRkeyData>(url, 'GET');
|
let temp = await RequestUtil.HttpGetJson<ServerRkeyData>(url, 'GET');
|
||||||
|
Loading…
x
Reference in New Issue
Block a user