mirror of
https://github.com/NapNeko/NapCatQQ.git
synced 2026-01-11 22:59:03 +08:00
feat: remove LineDev&&Protobuf
This commit is contained in:
parent
98c23c172c
commit
f8ffc92db5
@ -1,4 +1,5 @@
|
|||||||
import QQWrapper, { NodeIQQNTWrapperEngine, NodeIQQNTWrapperSession, NodeQQNTWrapperUtil } from '@/core/wrapper';
|
import QQWrapper, { NodeIQQNTWrapperEngine, NodeIQQNTWrapperSession, NodeQQNTWrapperUtil } from '@/core/wrapper';
|
||||||
|
import { DeviceList } from '@/onebot11/main';
|
||||||
import {
|
import {
|
||||||
NodeIKernelLoginService,
|
NodeIKernelLoginService,
|
||||||
NodeIKernelBuddyService,
|
NodeIKernelBuddyService,
|
||||||
@ -208,10 +209,17 @@ export class NapCatCore {
|
|||||||
}
|
}
|
||||||
const msgListener = new MsgListener();
|
const msgListener = new MsgListener();
|
||||||
msgListener.onLineDev = (Devices: LineDevice[]) => {
|
msgListener.onLineDev = (Devices: LineDevice[]) => {
|
||||||
|
DeviceList.splice(0, DeviceList.length);
|
||||||
Devices.map((Device: LineDevice) => {
|
Devices.map((Device: LineDevice) => {
|
||||||
if (Device.clientType === 2) {
|
let DeviceData = {
|
||||||
log('账号设备(' + Device.devUid + ') 在线状态变更');
|
app_id: Device.devUid,
|
||||||
}
|
device_name: Device.clientType.toString(),
|
||||||
|
device_kind: Device.clientType.toString(),
|
||||||
|
};
|
||||||
|
DeviceList.push(DeviceData);
|
||||||
|
// if (Device.clientType === 2) {
|
||||||
|
// log('账号设备(' + Device.devUid + ') 在线状态变更');
|
||||||
|
// }
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
msgListener.onKickedOffLine = (Info: KickedOffLineInfo) => {
|
msgListener.onKickedOffLine = (Info: KickedOffLineInfo) => {
|
||||||
|
|||||||
@ -3,6 +3,7 @@ import BaseAction from '../BaseAction';
|
|||||||
import { ActionName } from '../types';
|
import { ActionName } from '../types';
|
||||||
import { JSONSchema } from 'json-schema-to-ts';
|
import { JSONSchema } from 'json-schema-to-ts';
|
||||||
import { NTQQSystemApi } from '@/core';
|
import { NTQQSystemApi } from '@/core';
|
||||||
|
import { sleep } from '@/common/utils/helper';
|
||||||
|
|
||||||
const SchemaData = {
|
const SchemaData = {
|
||||||
type: 'object',
|
type: 'object',
|
||||||
@ -15,7 +16,8 @@ export class GetOnlineClient extends BaseAction<void, Array<any>> {
|
|||||||
actionName = ActionName.GetOnlineClient;
|
actionName = ActionName.GetOnlineClient;
|
||||||
|
|
||||||
protected async _handle(payload: void) {
|
protected async _handle(payload: void) {
|
||||||
//console.log(await NTQQSystemApi.getOnlineDev());
|
NTQQSystemApi.getOnlineDev();
|
||||||
|
await sleep(500);
|
||||||
return DeviceList;
|
return DeviceList;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -22,7 +22,7 @@ import { ob11ReverseWebsockets } from '@/onebot11/server/ws/ReverseWebsocket';
|
|||||||
import { getGroup, getGroupMember, groupMembers, selfInfo, tempGroupCodeMap } from '@/core/data';
|
import { getGroup, getGroupMember, groupMembers, selfInfo, tempGroupCodeMap } from '@/core/data';
|
||||||
import { BuddyListener, GroupListener, NodeIKernelBuddyListener } from '@/core/listeners';
|
import { BuddyListener, GroupListener, NodeIKernelBuddyListener } from '@/core/listeners';
|
||||||
import { OB11FriendRequestEvent } from '@/onebot11/event/request/OB11FriendRequest';
|
import { OB11FriendRequestEvent } from '@/onebot11/event/request/OB11FriendRequest';
|
||||||
import { NTQQGroupApi, NTQQUserApi, SignMusicWrapper } from '@/core/apis';
|
import { NTQQUserApi } from '@/core/apis';
|
||||||
import { log, logDebug, logError, setLogSelfInfo } from '@/common/utils/log';
|
import { log, logDebug, logError, setLogSelfInfo } from '@/common/utils/log';
|
||||||
import { OB11GroupRequestEvent } from '@/onebot11/event/request/OB11GroupRequest';
|
import { OB11GroupRequestEvent } from '@/onebot11/event/request/OB11GroupRequest';
|
||||||
import { OB11GroupAdminNoticeEvent } from '@/onebot11/event/notice/OB11GroupAdminNoticeEvent';
|
import { OB11GroupAdminNoticeEvent } from '@/onebot11/event/notice/OB11GroupAdminNoticeEvent';
|
||||||
@ -31,10 +31,6 @@ import { OB11FriendRecallNoticeEvent } from '@/onebot11/event/notice/OB11FriendR
|
|||||||
import { OB11GroupRecallNoticeEvent } from '@/onebot11/event/notice/OB11GroupRecallNoticeEvent';
|
import { OB11GroupRecallNoticeEvent } from '@/onebot11/event/notice/OB11GroupRecallNoticeEvent';
|
||||||
import { logMessage, logNotice, logRequest } from '@/onebot11/log';
|
import { logMessage, logNotice, logRequest } from '@/onebot11/log';
|
||||||
import { OB11Message } from '@/onebot11/types';
|
import { OB11Message } from '@/onebot11/types';
|
||||||
import { OB11LifeCycleEvent } from './event/meta/OB11LifeCycleEvent';
|
|
||||||
import { Data as SysData } from '@/proto/SysMessage';
|
|
||||||
import { Data as DeviceData } from '@/proto/SysMessage.DeviceChange';
|
|
||||||
import { OB11FriendPokeEvent, OB11GroupPokeEvent } from './event/notice/OB11PokeEvent';
|
|
||||||
import { isEqual } from '@/common/utils/helper';
|
import { isEqual } from '@/common/utils/helper';
|
||||||
import { MessageUnique } from '@/common/utils/MessageUnique';
|
import { MessageUnique } from '@/common/utils/MessageUnique';
|
||||||
|
|
||||||
@ -89,109 +85,109 @@ export class NapCatOnebot11 {
|
|||||||
// Create MsgListener
|
// Create MsgListener
|
||||||
const msgListener = new MsgListener();
|
const msgListener = new MsgListener();
|
||||||
msgListener.onRecvSysMsg = async (protobufData: number[]) => {
|
msgListener.onRecvSysMsg = async (protobufData: number[]) => {
|
||||||
function buf2hex(buffer: Buffer) {
|
// function buf2hex(buffer: Buffer) {
|
||||||
return [...new Uint8Array(buffer)]
|
// return [...new Uint8Array(buffer)]
|
||||||
.map(x => x.toString(16).padStart(2, '0'))
|
// .map(x => x.toString(16).padStart(2, '0'))
|
||||||
.join('');
|
// .join('');
|
||||||
}
|
// }
|
||||||
// let Data: Data = {
|
// // let Data: Data = {
|
||||||
// header: {
|
// // header: {
|
||||||
// GroupNumber: 0,
|
// // GroupNumber: 0,
|
||||||
// GroupString: '',
|
// // GroupString: '',
|
||||||
// QQ: 0,
|
// // QQ: 0,
|
||||||
// Uid: '',
|
// // Uid: '',
|
||||||
// },
|
// // },
|
||||||
// Body: {
|
// // Body: {
|
||||||
// MsgType: 0,
|
// // MsgType: 0,
|
||||||
// SubType_0: 0,
|
// // SubType_0: 0,
|
||||||
// SubType_1: 0,
|
// // SubType_1: 0,
|
||||||
// MsgSeq: 0,
|
// // MsgSeq: 0,
|
||||||
// Time: 0,
|
// // Time: 0,
|
||||||
// MsgID: 0,
|
// // MsgID: 0,
|
||||||
// Other: 0,
|
// // Other: 0,
|
||||||
|
// // }
|
||||||
|
// // };
|
||||||
|
// try {
|
||||||
|
// // 生产环境会自己去掉
|
||||||
|
// const hex = buf2hex(Buffer.from(protobufData));
|
||||||
|
// //console.log(hex);
|
||||||
|
// const sysMsg = SysData.fromBinary(Buffer.from(protobufData));
|
||||||
|
// const peeruin = sysMsg.header[0].peerNumber;
|
||||||
|
// const peeruid = sysMsg.header[0].peerString;
|
||||||
|
// const MsgType = sysMsg.body[0].msgType;
|
||||||
|
// const subType0 = sysMsg.body[0].subType0;
|
||||||
|
// const subType1 = sysMsg.body[0].subType1;
|
||||||
|
// // let pokeEvent: OB11FriendPokeEvent | OB11GroupPokeEvent;
|
||||||
|
// // //console.log(peeruid);
|
||||||
|
// // if (MsgType == 528 && subType0 == 290 && hex.length < 250 && hex.endsWith('04')) {
|
||||||
|
// // // 防止上报两次 私聊戳一戳
|
||||||
|
// // if (PokeCache.has(peeruid)) {
|
||||||
|
// // //log('[私聊] 用户 ', peeruin, ' 对你戳一戳');
|
||||||
|
// // pokeEvent = new OB11FriendPokeEvent(parseInt(selfInfo.uin), peeruin);
|
||||||
|
// // postOB11Event(pokeEvent);
|
||||||
|
// // }
|
||||||
|
// // PokeCache.set(peeruid, false);
|
||||||
|
// // setTimeout(() => {
|
||||||
|
// // PokeCache.delete(peeruid);
|
||||||
|
// // }, 1000);
|
||||||
|
// // }
|
||||||
|
// // if (MsgType == 732 && subType0 == 20 && hex.length < 150 && hex.endsWith('04')) {
|
||||||
|
// // // 防止上报两次 群聊戳一戳
|
||||||
|
// // if (PokeCache.has(peeruid)) {
|
||||||
|
// // log('[群聊] 群组 ', peeruin, ' 戳一戳');
|
||||||
|
// // pokeEvent = new OB11GroupPokeEvent(peeruin);
|
||||||
|
// // postOB11Event(pokeEvent);
|
||||||
|
// // }
|
||||||
|
// // PokeCache.set(peeruid, false);
|
||||||
|
// // setTimeout(() => {
|
||||||
|
// // PokeCache.delete(peeruid);
|
||||||
|
// // }, 1000);
|
||||||
|
// // }
|
||||||
|
// if (MsgType == 528 && subType0 == 349) {
|
||||||
|
// const sysDeviceMsg = DeviceData.fromBinary(Buffer.from(protobufData));
|
||||||
|
// DeviceList = [];
|
||||||
|
// sysDeviceMsg.event[0].content[0].devices.forEach(device => {
|
||||||
|
// DeviceList.push({
|
||||||
|
// app_id: '0',
|
||||||
|
// device_name: device.deviceName,
|
||||||
|
// device_kind: 'none'
|
||||||
|
// });
|
||||||
|
// // log('[设备列表] 设备名称: ' + device.deviceName);
|
||||||
|
// });
|
||||||
// }
|
// }
|
||||||
// };
|
// // 未区分增加与减少
|
||||||
try {
|
// // if (MsgType == 34 && subType0 == 0) {
|
||||||
// 生产环境会自己去掉
|
// // const role = (await getGroupMember(peeruin, selfInfo.uin))?.role;
|
||||||
const hex = buf2hex(Buffer.from(protobufData));
|
// // const isPrivilege = role === 3 || role === 4;
|
||||||
//console.log(hex);
|
// // if (!isPrivilege) {
|
||||||
const sysMsg = SysData.fromBinary(Buffer.from(protobufData));
|
// // const leaveUin =
|
||||||
const peeruin = sysMsg.header[0].peerNumber;
|
// // log('[群聊] 群组 ', peeruin, ' 成员' + leaveUin + '退出');
|
||||||
const peeruid = sysMsg.header[0].peerString;
|
// // const groupDecreaseEvent = new OB11GroupDecreaseEvent(peeruin, parseInt(leaveUin), 0, 'leave');// 不知道怎么出去的
|
||||||
const MsgType = sysMsg.body[0].msgType;
|
// // postOB11Event(groupDecreaseEvent, true);
|
||||||
const subType0 = sysMsg.body[0].subType0;
|
// // }
|
||||||
const subType1 = sysMsg.body[0].subType1;
|
// // }
|
||||||
// let pokeEvent: OB11FriendPokeEvent | OB11GroupPokeEvent;
|
// // MsgType (SubType) EventName
|
||||||
// //console.log(peeruid);
|
// // 33 GroupMemIncreased
|
||||||
// if (MsgType == 528 && subType0 == 290 && hex.length < 250 && hex.endsWith('04')) {
|
// // 34 GroupMemberDecreased
|
||||||
// // 防止上报两次 私聊戳一戳
|
// // 44 GroupAdminChange
|
||||||
// if (PokeCache.has(peeruid)) {
|
// // 82 GroupMessage
|
||||||
// //log('[私聊] 用户 ', peeruin, ' 对你戳一戳');
|
// // 84 GroupApply
|
||||||
// pokeEvent = new OB11FriendPokeEvent(parseInt(selfInfo.uin), peeruin);
|
// // 87 InviteGroup
|
||||||
// postOB11Event(pokeEvent);
|
// // 528 35 FriendApply
|
||||||
// }
|
// // 528 39 CardChange
|
||||||
// PokeCache.set(peeruid, false);
|
// // 528 68 GroupApply
|
||||||
// setTimeout(() => {
|
// // 528 138 C2CRecall
|
||||||
// PokeCache.delete(peeruid);
|
// // 528 290 C2CPoke
|
||||||
// }, 1000);
|
// // 528 349 DeviceChange
|
||||||
// }
|
// // 732 12 GroupBan
|
||||||
// if (MsgType == 732 && subType0 == 20 && hex.length < 150 && hex.endsWith('04')) {
|
// // 732 16 GroupUniqueTitleChange
|
||||||
// // 防止上报两次 群聊戳一戳
|
// // 732 17 GroupRecall
|
||||||
// if (PokeCache.has(peeruid)) {
|
// // 732 20 GroupCommonTips
|
||||||
// log('[群聊] 群组 ', peeruin, ' 戳一戳');
|
// // 732 21 EssenceMessage
|
||||||
// pokeEvent = new OB11GroupPokeEvent(peeruin);
|
// } catch (e) {
|
||||||
// postOB11Event(pokeEvent);
|
// log('解析SysMsg异常', e);
|
||||||
// }
|
// // console.log(e);
|
||||||
// PokeCache.set(peeruid, false);
|
// }
|
||||||
// setTimeout(() => {
|
|
||||||
// PokeCache.delete(peeruid);
|
|
||||||
// }, 1000);
|
|
||||||
// }
|
|
||||||
if (MsgType == 528 && subType0 == 349) {
|
|
||||||
const sysDeviceMsg = DeviceData.fromBinary(Buffer.from(protobufData));
|
|
||||||
DeviceList = [];
|
|
||||||
sysDeviceMsg.event[0].content[0].devices.forEach(device => {
|
|
||||||
DeviceList.push({
|
|
||||||
app_id: '0',
|
|
||||||
device_name: device.deviceName,
|
|
||||||
device_kind: 'none'
|
|
||||||
});
|
|
||||||
// log('[设备列表] 设备名称: ' + device.deviceName);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
// 未区分增加与减少
|
|
||||||
// if (MsgType == 34 && subType0 == 0) {
|
|
||||||
// const role = (await getGroupMember(peeruin, selfInfo.uin))?.role;
|
|
||||||
// const isPrivilege = role === 3 || role === 4;
|
|
||||||
// if (!isPrivilege) {
|
|
||||||
// const leaveUin =
|
|
||||||
// log('[群聊] 群组 ', peeruin, ' 成员' + leaveUin + '退出');
|
|
||||||
// const groupDecreaseEvent = new OB11GroupDecreaseEvent(peeruin, parseInt(leaveUin), 0, 'leave');// 不知道怎么出去的
|
|
||||||
// postOB11Event(groupDecreaseEvent, true);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// MsgType (SubType) EventName
|
|
||||||
// 33 GroupMemIncreased
|
|
||||||
// 34 GroupMemberDecreased
|
|
||||||
// 44 GroupAdminChange
|
|
||||||
// 82 GroupMessage
|
|
||||||
// 84 GroupApply
|
|
||||||
// 87 InviteGroup
|
|
||||||
// 528 35 FriendApply
|
|
||||||
// 528 39 CardChange
|
|
||||||
// 528 68 GroupApply
|
|
||||||
// 528 138 C2CRecall
|
|
||||||
// 528 290 C2CPoke
|
|
||||||
// 528 349 DeviceChange
|
|
||||||
// 732 12 GroupBan
|
|
||||||
// 732 16 GroupUniqueTitleChange
|
|
||||||
// 732 17 GroupRecall
|
|
||||||
// 732 20 GroupCommonTips
|
|
||||||
// 732 21 EssenceMessage
|
|
||||||
} catch (e) {
|
|
||||||
log('解析SysMsg异常', e);
|
|
||||||
// console.log(e);
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
msgListener.onKickedOffLine = (Info: KickedOffLineInfo) => {
|
msgListener.onKickedOffLine = (Info: KickedOffLineInfo) => {
|
||||||
// 下线通知
|
// 下线通知
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user