From 40f85dbf5f58b142eef89b47ea22b0a72641f76c Mon Sep 17 00:00:00 2001 From: "Wesley F. Young" Date: Sat, 10 Aug 2024 23:52:42 +0800 Subject: [PATCH 1/2] Revert "feat: logMessage for LogWrapper" This reverts commit d6646ebadf35da2bfe08b7c2919e74ca241399c7. --- src/common/utils/log.ts | 90 ----------------------------------------- 1 file changed, 90 deletions(-) diff --git a/src/common/utils/log.ts b/src/common/utils/log.ts index afde46cb..b90b0e3d 100644 --- a/src/common/utils/log.ts +++ b/src/common/utils/log.ts @@ -2,8 +2,6 @@ import log4js, { Configuration } from 'log4js'; import { truncateString } from '@/common/utils/helper'; import path from 'node:path'; import chalk from 'chalk'; -import { OB11Message } from '@/onebot'; -import { Group, NapCatCore } from '@/core'; export enum LogLevel { DEBUG = 'debug', @@ -25,9 +23,6 @@ function getFormattedTimestamp() { return `${year}-${month}-${day}_${hours}-${minutes}-${seconds}.${milliseconds}`; } -const spSegColor = chalk.blue;// for special segment -const spColor = chalk.cyan;// for special - export class LogWrapper { fileLogEnabled = true; consoleLogEnabled = true; @@ -142,89 +137,4 @@ export class LogWrapper { logFatal(...args: any[]) { this._log(LogLevel.FATAL, ...args); } - - async logMessage(ob11Message: OB11Message, core: NapCatCore) { - const isSelfSent = ob11Message.sender.user_id.toString() === core.selfInfo.uin; - let prefix = ''; - let group: Group | undefined; - if (isSelfSent) { - prefix = '发送消息 '; - if (ob11Message.message_type === 'private') { - prefix += '给私聊 '; - prefix += `${ob11Message.target_id}`; - } - else { - prefix += '给群聊 '; - } - } - if (ob11Message.message_type === 'group') { - if (ob11Message.group_id == 284840486) { - group = await core.ApiContext.GroupApi.getGroup(ob11Message.group_id.toString()); - prefix += '转发消息[外部来源] '; - } else { - group = await core.ApiContext.GroupApi.getGroup(ob11Message.group_id!.toString()); - prefix += `群[${group?.groupName}(${ob11Message.group_id})] `; - } - } - let msgChain = ''; - if (Array.isArray(ob11Message.message)) { - const msgParts = []; - for (const segment of ob11Message.message) { - if (segment.type === 'text') { - msgParts.push(segment.data.text); - } - else if (segment.type === 'at') { - const groupMember = await core.ApiContext.GroupApi.getGroupMember(ob11Message.group_id!, segment.data.qq!); - msgParts.push(spSegColor(`[@${groupMember?.cardName || groupMember?.nick}(${segment.data.qq})]`)); - } - else if (segment.type === 'reply') { - msgParts.push(spSegColor(`[回复消息|id:${segment.data.id}]`)); - } - else if (segment.type === 'image') { - msgParts.push(spSegColor(`[图片|${segment.data.url}]`)); - } - else if (segment.type === 'face') { - msgParts.push(spSegColor(`[表情|id:${segment.data.id}]`)); - } - else if (segment.type === 'mface') { - // @ts-expect-error 商城表情 url - msgParts.push(spSegColor(`[商城表情|${segment.data.url}]`)); - } - else if (segment.type === 'record') { - msgParts.push(spSegColor(`[语音|${segment.data.file}]`)); - } - else if (segment.type === 'file') { - msgParts.push(spSegColor(`[文件|${segment.data.file}]`)); - } - else if (segment.type === 'json') { - msgParts.push(spSegColor(`[json|${JSON.stringify(segment.data)}]`)); - } - else if (segment.type === 'markdown') { - msgParts.push(spSegColor(`[markdown|${segment.data.content}]`)); - } - else if (segment.type === 'video') { - msgParts.push(spSegColor(`[视频|${segment.data.url}]`)); - } - else if (segment.type === 'forward') { - msgParts.push(spSegColor(`[转发|${segment.data.id}|消息开始]`)); - segment.data.content.forEach((msg) => { - this.logMessage(msg, core); - }); - msgParts.push(spSegColor(`[转发|${segment.data.id}|消息结束]`)); - } - else { - msgParts.push(spSegColor(`[未实现|${JSON.stringify(segment)}]`)); - } - } - msgChain = msgParts.join(' '); - } - else { - msgChain = ob11Message.message; - } - let msgString = `${prefix}${ob11Message.sender.nickname}(${ob11Message.sender.user_id}): ${msgChain}`; - if (isSelfSent) { - msgString = `${prefix}: ${msgChain}`; - } - this.log(msgString); - } } From bbe666eb733c73796be025ea7a33e90d5a565b95 Mon Sep 17 00:00:00 2001 From: "Wesley F. Young" Date: Sat, 10 Aug 2024 23:54:20 +0800 Subject: [PATCH 2/2] update: EmitEventContent = Message + Event --- src/onebot/network/active-http.ts | 4 ++-- src/onebot/network/active-websocket.ts | 4 ++-- src/onebot/network/index.ts | 7 +++++-- src/onebot/network/passive-http.ts | 4 ++-- src/onebot/network/passive-websocket.ts | 4 ++-- 5 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/onebot/network/active-http.ts b/src/onebot/network/active-http.ts index 6ba1a659..36986081 100644 --- a/src/onebot/network/active-http.ts +++ b/src/onebot/network/active-http.ts @@ -1,4 +1,4 @@ -import { IOB11NetworkAdapter } from '@/onebot/network/index'; +import { IOB11NetworkAdapter, OB11EmitEventContent } from '@/onebot/network/index'; import BaseAction from '@/onebot/action/BaseAction'; import { OB11BaseEvent } from '@/onebot/event/OB11BaseEvent'; import { createHmac } from 'crypto'; @@ -33,7 +33,7 @@ export class OB11ActiveHttpAdapter implements IOB11NetworkAdapter { // Passive http adapter does not need to register actions } - onEvent(event: T) { + onEvent(event: T) { const headers: Record = { 'Content-Type': 'application/json', 'x-self-id': this.coreContext.selfInfo.uin, diff --git a/src/onebot/network/active-websocket.ts b/src/onebot/network/active-websocket.ts index fa71e829..e0ad2e9c 100644 --- a/src/onebot/network/active-websocket.ts +++ b/src/onebot/network/active-websocket.ts @@ -1,4 +1,4 @@ -import { IOB11NetworkAdapter } from '@/onebot/network/index'; +import { IOB11NetworkAdapter, OB11EmitEventContent } from '@/onebot/network/index'; import { WebSocket as NodeWebSocket } from 'ws'; import BaseAction from '@/onebot/action/BaseAction'; @@ -28,7 +28,7 @@ export class OB11ActiveWebSocketAdapter implements IOB11NetworkAdapter { this.actionMap.set(action.actionName, action); } - onEvent(event: T) { + onEvent(event: T) { if (this.connection) { // this.connection.send(JSON.stringify(event)); // TODO: wrap the event, and send the wrapped to the server. diff --git a/src/onebot/network/index.ts b/src/onebot/network/index.ts index 3c378613..d056c5c3 100644 --- a/src/onebot/network/index.ts +++ b/src/onebot/network/index.ts @@ -1,10 +1,13 @@ import BaseAction from '@/onebot/action/BaseAction'; import { OB11BaseEvent } from '@/onebot/event/OB11BaseEvent'; +import { OB11Message } from '@/onebot'; + +export type OB11EmitEventContent = OB11BaseEvent | OB11Message; export interface IOB11NetworkAdapter { registerAction, P, R>(action: T): void; - onEvent(event: T): void; + onEvent(event: T): void; open(): void | Promise; @@ -18,7 +21,7 @@ export class OB11NetworkManager { return this.adapters; } - async emitEvent(event: OB11BaseEvent) { + async emitEvent(event: OB11EmitEventContent) { // Mlikiowa V2.0.0 Refactor Todo return Promise.all(this.adapters.map(adapter => adapter.onEvent(event))); } diff --git a/src/onebot/network/passive-http.ts b/src/onebot/network/passive-http.ts index 2938e3ff..feecbfe9 100644 --- a/src/onebot/network/passive-http.ts +++ b/src/onebot/network/passive-http.ts @@ -1,4 +1,4 @@ -import { IOB11NetworkAdapter } from './index'; +import { IOB11NetworkAdapter, OB11EmitEventContent } from './index'; import { OB11BaseEvent } from '@/onebot/event/OB11BaseEvent'; import BaseAction from '@/onebot/action/BaseAction'; import express, { Express, Request, Response } from 'express'; @@ -26,7 +26,7 @@ export class OB11PassiveHttpAdapter implements IOB11NetworkAdapter { //空心跳 } - onEvent(event: T) { + onEvent(event: T) { // 事件处理逻辑可以在这里实现 } diff --git a/src/onebot/network/passive-websocket.ts b/src/onebot/network/passive-websocket.ts index 85ae4ee5..a7dfb5eb 100644 --- a/src/onebot/network/passive-websocket.ts +++ b/src/onebot/network/passive-websocket.ts @@ -1,4 +1,4 @@ -import { IOB11NetworkAdapter } from './index'; +import { IOB11NetworkAdapter, OB11EmitEventContent } from './index'; import { OB11BaseEvent } from '@/onebot/event/OB11BaseEvent'; import BaseAction from '@/onebot/action/BaseAction'; import { WebSocket, WebSocketServer } from 'ws'; @@ -54,7 +54,7 @@ export class OB11PassiveWebSocketAdapter implements IOB11NetworkAdapter { //WS正向心跳 } - onEvent(event: T) { + onEvent(event: T) { this.wsClientsMutex.runExclusive(async () => { this.wsClients.forEach((wsClient) => { // wsClient.send(JSON.stringify(event));