feat: remove LineDev&&Protobuf

This commit is contained in:
手瓜一十雪 2024-07-22 15:40:23 +08:00
parent 98c23c172c
commit f8ffc92db5
5 changed files with 117 additions and 111 deletions

View File

@ -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) => {

View File

@ -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;
} }
} }

View File

@ -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) => {
// 下线通知 // 下线通知