chore: run eslint --fix in onebot module

This commit is contained in:
Wesley F. Young
2024-08-09 20:35:03 +08:00
parent 714f8327ea
commit 5990e0c2eb
110 changed files with 3832 additions and 3829 deletions

View File

@@ -1,4 +1,4 @@
import BaseAction from '../BaseAction';; import BaseAction from '../BaseAction';
import { ActionName } from '../types'; import { ActionName } from '../types';
import { ChatType, Peer, SendFileElement } from '@/core/entities'; import { ChatType, Peer, SendFileElement } from '@/core/entities';
import fs from 'fs'; import fs from 'fs';

View File

@@ -35,7 +35,7 @@ class GetGroupMemberList extends BaseAction<Payload, OB11GroupMember[]> {
const MemberMap: Map<number, OB11GroupMember> = new Map<number, OB11GroupMember>(); const MemberMap: Map<number, OB11GroupMember> = new Map<number, OB11GroupMember>();
// 转为Map 方便索引 // 转为Map 方便索引
let GroupMemberUids: string[] = []; const GroupMemberUids: string[] = [];
const date = Math.round(Date.now() / 1000); const date = Math.round(Date.now() / 1000);
for (let i = 0, len = _groupMembers.length; i < len; i++) { for (let i = 0, len = _groupMembers.length; i < len; i++) {
// 保证基础数据有这个 同时避免群管插件过于依赖这个杀了 // 保证基础数据有这个 同时避免群管插件过于依赖这个杀了

View File

@@ -22,8 +22,8 @@ export default class SetGroupAdmin extends BaseAction<Payload, null> {
protected async _handle(payload: Payload): Promise<null> { protected async _handle(payload: Payload): Promise<null> {
const NTQQGroupApi = this.CoreContext.getApiContext().GroupApi; const NTQQGroupApi = this.CoreContext.getApiContext().GroupApi;
const NTQQUserApi = this.CoreContext.getApiContext().UserApi; const NTQQUserApi = this.CoreContext.getApiContext().UserApi;
let uid = await NTQQUserApi.getUidByUin(payload.user_id.toString()) const uid = await NTQQUserApi.getUidByUin(payload.user_id.toString());
if(!uid) throw new Error('get Uid Error') if(!uid) throw new Error('get Uid Error');
await NTQQGroupApi.setMemberRole(payload.group_id.toString(), uid, payload.enable ? GroupMemberRole.admin : GroupMemberRole.normal); await NTQQGroupApi.setMemberRole(payload.group_id.toString(), uid, payload.enable ? GroupMemberRole.admin : GroupMemberRole.normal);
return null; return null;
} }

View File

@@ -24,7 +24,7 @@ export default class SetGroupKick extends BaseAction<Payload, null> {
const NTQQUserApi = this.CoreContext.getApiContext().UserApi; const NTQQUserApi = this.CoreContext.getApiContext().UserApi;
const rejectReq = payload.reject_add_request?.toString() == 'true'; const rejectReq = payload.reject_add_request?.toString() == 'true';
const uid = await NTQQUserApi.getUidByUin(payload.user_id.toString()); const uid = await NTQQUserApi.getUidByUin(payload.user_id.toString());
if(!uid) throw new Error('get Uid Error') if(!uid) throw new Error('get Uid Error');
await NTQQGroupApi.kickMember(payload.group_id.toString(), [uid], rejectReq); await NTQQGroupApi.kickMember(payload.group_id.toString(), [uid], rejectReq);
return null; return null;
} }

View File

@@ -16,10 +16,6 @@ export default class SetGroupLeave extends BaseAction<Payload, any> {
PayloadSchema = SchemaData; PayloadSchema = SchemaData;
protected async _handle(payload: Payload): Promise<any> { protected async _handle(payload: Payload): Promise<any> {
const NTQQGroupApi = this.CoreContext.getApiContext().GroupApi; const NTQQGroupApi = this.CoreContext.getApiContext().GroupApi;
try {
await NTQQGroupApi.quitGroup(payload.group_id.toString()); await NTQQGroupApi.quitGroup(payload.group_id.toString());
} catch (e) {
throw e;
}
} }
} }

View File

@@ -77,7 +77,7 @@ import { FetchEmojioLike } from './extends/FetchEmojioLike';
import { NapCatCore } from '@/core'; import { NapCatCore } from '@/core';
export function createActionMap(context: NapCatCore) { export function createActionMap(context: NapCatCore) {
let actionHandlers = [ const actionHandlers = [
new FetchEmojioLike(context), new FetchEmojioLike(context),
new GetFile(context), new GetFile(context),
new SetSelfProfile(context), new SetSelfProfile(context),

View File

@@ -26,7 +26,7 @@ class DeleteMsg extends BaseAction<Payload, void> {
const NTQQMsgApi = this.CoreContext.getApiContext().MsgApi; const NTQQMsgApi = this.CoreContext.getApiContext().MsgApi;
const msg = MessageUnique.getMsgIdAndPeerByShortId(Number(payload.message_id)); const msg = MessageUnique.getMsgIdAndPeerByShortId(Number(payload.message_id));
if (msg) { if (msg) {
let ret = this.CoreContext.eventWrapper.RegisterListen<NodeIKernelMsgListener['onMsgInfoListUpdate']> const ret = this.CoreContext.eventWrapper.RegisterListen<NodeIKernelMsgListener['onMsgInfoListUpdate']>
( (
'NodeIKernelMsgListener/onMsgInfoListUpdate', 'NodeIKernelMsgListener/onMsgInfoListUpdate',
1, 1,
@@ -37,9 +37,9 @@ class DeleteMsg extends BaseAction<Payload, void> {
} }
return false; return false;
} }
).catch(e => new Promise<undefined>((resolve, reject) => { resolve(undefined) })); ).catch(e => new Promise<undefined>((resolve, reject) => { resolve(undefined); }));
await NTQQMsgApi.recallMsg(msg.Peer, [msg.MsgId]); await NTQQMsgApi.recallMsg(msg.Peer, [msg.MsgId]);
let data = await ret; const data = await ret;
if (!data) { if (!data) {
throw new Error('Recall failed'); throw new Error('Recall failed');
} }

View File

@@ -47,8 +47,8 @@ const _handlers: {
// then the qq is a group member // then the qq is a group member
// Mlikiowa V2.0.0 Refactor Todo // Mlikiowa V2.0.0 Refactor Todo
let uid = await coreContext.getApiContext().UserApi.getUidByUin(atQQ); const uid = await coreContext.getApiContext().UserApi.getUidByUin(atQQ);
if (!uid) throw new Error('Get Uid Error') if (!uid) throw new Error('Get Uid Error');
return SendMsgElementConstructor.at(coreContext, atQQ, uid, AtType.atUser, ""); return SendMsgElementConstructor.at(coreContext, atQQ, uid, AtType.atUser, "");
}, },
[OB11MessageDataType.reply]: async (coreContext, { data: { id } }) => { [OB11MessageDataType.reply]: async (coreContext, { data: { id } }) => {
@@ -58,7 +58,8 @@ const _handlers: {
return undefined; return undefined;
} }
const NTQQMsgApi = coreContext.getApiContext().MsgApi; const NTQQMsgApi = coreContext.getApiContext().MsgApi;
const replyMsg = (await NTQQMsgApi.getMsgsByMsgId(replyMsgM?.Peer!, [replyMsgM?.MsgId!])).msgList[0]; const replyMsg = (await NTQQMsgApi.getMsgsByMsgId(
replyMsgM.Peer, [replyMsgM.MsgId!])).msgList[0];
return replyMsg ? return replyMsg ?
SendMsgElementConstructor.reply(coreContext, replyMsg.msgSeq, replyMsg.msgId, replyMsg.senderUin!, replyMsg.senderUin!) : SendMsgElementConstructor.reply(coreContext, replyMsg.msgSeq, replyMsg.msgId, replyMsg.senderUin!, replyMsg.senderUin!) :
undefined; undefined;

View File

@@ -2,7 +2,7 @@ import { ChatType, ElementType, NapCatCore, Peer, RawMessage, SendMessageElement
import { MessageUnique } from '@/common/utils/MessageUnique'; import { MessageUnique } from '@/common/utils/MessageUnique';
import { OB11MessageDataType, OB11MessageNode } from '@/onebot/types'; import { OB11MessageDataType, OB11MessageNode } from '@/onebot/types';
import createSendElements from './create-send-elements'; import createSendElements from './create-send-elements';
import { normalize, sendMsg } from "../SendMsg/index" import { normalize, sendMsg } from "../SendMsg/index";
async function cloneMsg(coreContext: NapCatCore, msg: RawMessage): Promise<RawMessage | undefined> { async function cloneMsg(coreContext: NapCatCore, msg: RawMessage): Promise<RawMessage | undefined> {
const selfPeer = { const selfPeer = {
chatType: ChatType.friend, chatType: ChatType.friend,
@@ -50,24 +50,24 @@ export async function handleForwardNode(coreContext: NapCatCore, destPeer: Peer,
} else { } else {
// 自定义的消息 // 自定义的消息
try { try {
let OB11Data = normalize(messageNode.data.content); const OB11Data = normalize(messageNode.data.content);
//筛选node消息 //筛选node消息
let isNodeMsg = OB11Data.filter(e => e.type === OB11MessageDataType.node).length;//找到子转发消息 const isNodeMsg = OB11Data.filter(e => e.type === OB11MessageDataType.node).length;//找到子转发消息
if (isNodeMsg !== 0) { if (isNodeMsg !== 0) {
if (isNodeMsg !== OB11Data.length) { logger.logError('子消息中包含非node消息 跳过不合法部分'); continue; } if (isNodeMsg !== OB11Data.length) { logger.logError('子消息中包含非node消息 跳过不合法部分'); continue; }
const nodeMsg = await handleForwardNode(coreContext, selfPeer, OB11Data.filter(e => e.type === OB11MessageDataType.node)); const nodeMsg = await handleForwardNode(coreContext, selfPeer, OB11Data.filter(e => e.type === OB11MessageDataType.node));
if (nodeMsg) { nodeMsgIds.push(nodeMsg.msgId); MessageUnique.createMsg(selfPeer, nodeMsg.msgId) }; if (nodeMsg) { nodeMsgIds.push(nodeMsg.msgId); MessageUnique.createMsg(selfPeer, nodeMsg.msgId); }
//完成子卡片生成跳过后续 //完成子卡片生成跳过后续
continue; continue;
} }
const { sendElements } = await createSendElements(coreContext,OB11Data, destPeer); const { sendElements } = await createSendElements(coreContext,OB11Data, destPeer);
//拆分消息 //拆分消息
let MixElement = sendElements.filter(element => element.elementType !== ElementType.FILE && element.elementType !== ElementType.VIDEO); const MixElement = sendElements.filter(element => element.elementType !== ElementType.FILE && element.elementType !== ElementType.VIDEO);
let SingleElement = sendElements.filter(element => element.elementType === ElementType.FILE || element.elementType === ElementType.VIDEO).map(e => [e]); const SingleElement = sendElements.filter(element => element.elementType === ElementType.FILE || element.elementType === ElementType.VIDEO).map(e => [e]);
let AllElement: SendMessageElement[][] = [MixElement, ...SingleElement].filter(e => e !== undefined && e.length !== 0); const AllElement: SendMessageElement[][] = [MixElement, ...SingleElement].filter(e => e !== undefined && e.length !== 0);
const MsgNodeList: Promise<RawMessage | undefined>[] = []; const MsgNodeList: Promise<RawMessage | undefined>[] = [];
for (const sendElementsSplitElement of AllElement) { for (const sendElementsSplitElement of AllElement) {
MsgNodeList.push(sendMsg(coreContext,selfPeer, sendElementsSplitElement, [], true).catch(e => new Promise((resolve, reject) => { resolve(undefined) }))); MsgNodeList.push(sendMsg(coreContext,selfPeer, sendElementsSplitElement, [], true).catch(e => new Promise((resolve, reject) => { resolve(undefined); })));
} }
(await Promise.allSettled(MsgNodeList)).map((result) => { (await Promise.allSettled(MsgNodeList)).map((result) => {
if (result.status === 'fulfilled' && result.value) { if (result.status === 'fulfilled' && result.value) {
@@ -84,7 +84,7 @@ export async function handleForwardNode(coreContext: NapCatCore, destPeer: Peer,
let srcPeer: Peer | undefined = undefined; let srcPeer: Peer | undefined = undefined;
let needSendSelf = false; let needSendSelf = false;
//检测是否处于同一个Peer 不在同一个peer则全部消息由自身发送 //检测是否处于同一个Peer 不在同一个peer则全部消息由自身发送
for (let msgId of nodeMsgIds) { for (const msgId of nodeMsgIds) {
const nodeMsgPeer = MessageUnique.getPeerByMsgId(msgId); const nodeMsgPeer = MessageUnique.getPeerByMsgId(msgId);
if (!nodeMsgPeer) { if (!nodeMsgPeer) {
logger.logError('转发消息失败,未找到消息', msgId); logger.logError('转发消息失败,未找到消息', msgId);

View File

@@ -85,7 +85,7 @@ async function createContext(coreContext: NapCatCore, payload: OB11PostSendMsg,
const NTQQFriendApi = coreContext.getApiContext().FriendApi; const NTQQFriendApi = coreContext.getApiContext().FriendApi;
const NTQQUserApi = coreContext.getApiContext().UserApi; const NTQQUserApi = coreContext.getApiContext().UserApi;
if ((contextMode === ContextMode.Group || contextMode === ContextMode.Normal) && payload.group_id) { if ((contextMode === ContextMode.Group || contextMode === ContextMode.Normal) && payload.group_id) {
const group = (await NTQQGroupApi.getGroups()).find(e => e.groupCode == payload.group_id?.toString()) const group = (await NTQQGroupApi.getGroups()).find(e => e.groupCode == payload.group_id?.toString());
return { return {
chatType: ChatType.group, chatType: ChatType.group,
peerUid: payload.group_id.toString() peerUid: payload.group_id.toString()

View File

@@ -3,7 +3,7 @@ import { OB11BaseNoticeEvent } from './OB11BaseNoticeEvent';
export class OB11InputStatusEvent extends OB11BaseNoticeEvent { export class OB11InputStatusEvent extends OB11BaseNoticeEvent {
notice_type = 'notify'; notice_type = 'notify';
sub_type = 'input_status'; sub_type = 'input_status';
status_text = "对方正在输入..." status_text = "对方正在输入...";
eventType = 1; eventType = 1;
user_id = 0; user_id = 0;
constructor(user_id: number, eventType: number, status_text: string) { constructor(user_id: number, eventType: number, status_text: string) {

View File

@@ -81,7 +81,7 @@ export class OB11Constructor {
resMsg.group_id = parseInt(msg.peerUin); resMsg.group_id = parseInt(msg.peerUin);
//直接去QQNative取 //直接去QQNative取
const memberList = await NTQQGroupApi.getGroupMembers(msg.peerUin); const memberList = await NTQQGroupApi.getGroupMembers(msg.peerUin);
let member = memberList.get(msg.senderUin!); const member = memberList.get(msg.senderUin!);
if (member) { if (member) {
resMsg.sender.role = OB11Constructor.groupMemberRole(member.role); resMsg.sender.role = OB11Constructor.groupMemberRole(member.role);
resMsg.sender.nickname = member.nick; resMsg.sender.nickname = member.nick;
@@ -213,7 +213,7 @@ export class OB11Constructor {
const videoElement: VideoElement = element.videoElement; const videoElement: VideoElement = element.videoElement;
//读取视频链接并兜底 //读取视频链接并兜底
let videoUrl;//Array let videoUrl;//Array
if (msg.peerUin = '284840486') { if (msg.peerUin === '284840486') {
//合并消息内部 应该进行特殊处理 可能需要重写peer 待测试与研究 Mlikiowa Taged TODO //合并消息内部 应该进行特殊处理 可能需要重写peer 待测试与研究 Mlikiowa Taged TODO
} }
try { try {
@@ -330,17 +330,17 @@ export class OB11Constructor {
msg.parentMsgIdList.push(msg.msgId); msg.parentMsgIdList.push(msg.msgId);
//let parentMsgId = msg.parentMsgIdList[msg.parentMsgIdList.length - 2 < 0 ? 0 : msg.parentMsgIdList.length - 2]; //let parentMsgId = msg.parentMsgIdList[msg.parentMsgIdList.length - 2 < 0 ? 0 : msg.parentMsgIdList.length - 2];
//加入自身MsgId //加入自身MsgId
let MultiMsgs = (await NTQQMsgApi.getMultiMsg(ParentMsgPeer, msg.parentMsgIdList[0], msg.msgId))?.msgList; const MultiMsgs = (await NTQQMsgApi.getMultiMsg(ParentMsgPeer, msg.parentMsgIdList[0], msg.msgId))?.msgList;
//拉取下级消息 //拉取下级消息
if (!MultiMsgs) continue; if (!MultiMsgs) continue;
//拉取失败则跳过 //拉取失败则跳过
message_data['data']['content'] = []; message_data['data']['content'] = [];
for (let MultiMsg of MultiMsgs) { for (const MultiMsg of MultiMsgs) {
//对每条拉取的消息传递ParentMsgPeer修正Peer //对每条拉取的消息传递ParentMsgPeer修正Peer
MultiMsg.parentMsgPeer = ParentMsgPeer; MultiMsg.parentMsgPeer = ParentMsgPeer;
MultiMsg.parentMsgIdList = msg.parentMsgIdList; MultiMsg.parentMsgIdList = msg.parentMsgIdList;
MultiMsg.id = MessageUnique.createMsg(ParentMsgPeer, MultiMsg.msgId);//该ID仅用查看 无法调用 MultiMsg.id = MessageUnique.createMsg(ParentMsgPeer, MultiMsg.msgId);//该ID仅用查看 无法调用
let msgList = await OB11Constructor.message(coreContext, MultiMsg, "array"); const msgList = await OB11Constructor.message(coreContext, MultiMsg, "array");
message_data['data']['content'].push(msgList); message_data['data']['content'].push(msgList);
//console.log("合并消息", msgList); //console.log("合并消息", msgList);
} }
@@ -503,12 +503,18 @@ export class OB11Constructor {
if (replyMsgList.length < 1) { if (replyMsgList.length < 1) {
return; return;
} }
console.log('表情回应消息', msgSeq, " 结算ID", replyMsgList[0].msgId);
const replyMsg = replyMsgList[0]; const replyMsg = replyMsgList[0];
return new OB11GroupMsgEmojiLikeEvent(parseInt(msg.peerUid), parseInt(senderUin), MessageUnique.getShortIdByMsgId(replyMsg?.msgId!)!, [{ console.log('表情回应消息', msgSeq, " 结算ID", replyMsg.msgId);
return new OB11GroupMsgEmojiLikeEvent(
parseInt(msg.peerUid),
parseInt(senderUin),
MessageUnique.getShortIdByMsgId(replyMsg.msgId)!,
[{
emoji_id: emojiId, emoji_id: emojiId,
count: 1 count: 1
}]); }]
);
} catch (e: any) { } catch (e: any) {
logger.logError('解析表情回应消息失败', e.stack); logger.logError('解析表情回应消息失败', e.stack);
} }

View File

@@ -31,7 +31,7 @@ export class SendMsgElementConstructor {
text: "测试", text: "测试",
ext: "" ext: ""
} }
} };
} }
static text(CoreContext: NapCatCore, content: string): SendTextElement { static text(CoreContext: NapCatCore, content: string): SendTextElement {
return { return {