diff --git a/src/common/utils/log.ts b/src/common/utils/log.ts index 2b76396b..98829f03 100644 --- a/src/common/utils/log.ts +++ b/src/common/utils/log.ts @@ -66,7 +66,7 @@ export function setLogSelfInfo(selfInfo: SelfInfo) { // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-expect-error logConfig.appenders.FileAppender.layout.pattern = logConfig.appenders.ConsoleAppender.layout.pattern = - `%d{yyyy-MM-dd hh:mm:ss} [%p] ${selfInfo.nick}(${selfInfo.uin}) %m`; + `%d{yyyy-MM-dd hh:mm:ss} [%p] ${selfInfo.nick}(${selfInfo.uin}) %m`; log4js.configure(logConfig); } diff --git a/src/onebot11/log.ts b/src/onebot11/log.ts index e43e2e03..52bb786c 100644 --- a/src/onebot11/log.ts +++ b/src/onebot11/log.ts @@ -1,13 +1,27 @@ import { OB11Message } from '@/onebot11/types'; import { log } from '@/common/utils/log'; -import { getGroup, getGroupMember } from '@/core/data'; +import { getGroup, getGroupMember, selfInfo } from '@/core/data'; import exp from 'constants'; +import { Group } from '@/core'; +// todo: 应该放到core去用RawMessage解析打印 export async function logMessage(ob11Message: OB11Message){ + const isSelfSent = ob11Message.sender.user_id.toString() === selfInfo.uin; let prefix = ''; + let group: Group | undefined; + if (isSelfSent){ + prefix = '发送消息 '; + if (ob11Message.message_type === 'private'){ + prefix += '给私聊 '; + prefix += `${ob11Message.target_id}`; + } + else{ + group = await getGroup(ob11Message.group_id!); + prefix += '给群聊 '; + } + } if (ob11Message.message_type === 'group') { - const group = await getGroup(ob11Message.group_id!); - prefix = `群[${group?.groupName}(${ob11Message.group_id})] `; + prefix += `群[${group?.groupName}(${ob11Message.group_id})] `; } let msgChain = ''; if (Array.isArray(ob11Message.message)) { @@ -51,7 +65,10 @@ export async function logMessage(ob11Message: OB11Message){ else { msgChain = ob11Message.message; } - const msgString = `${prefix}${ob11Message.sender.nickname}(${ob11Message.sender.user_id}): ${msgChain}`; + let msgString = `${prefix}${ob11Message.sender.nickname}(${ob11Message.sender.user_id}): ${msgChain}`; + if (isSelfSent){ + msgString = `${prefix}: ${msgChain}`; + } log(msgString); } diff --git a/src/onebot11/main.ts b/src/onebot11/main.ts index 9f55d97b..4c2758c1 100644 --- a/src/onebot11/main.ts +++ b/src/onebot11/main.ts @@ -26,7 +26,8 @@ import { OB11GroupAdminNoticeEvent } from '@/onebot11/event/notice/OB11GroupAdmi import { GroupDecreaseSubType, OB11GroupDecreaseEvent } from '@/onebot11/event/notice/OB11GroupDecreaseEvent'; import { OB11FriendRecallNoticeEvent } from '@/onebot11/event/notice/OB11FriendRecallNoticeEvent'; import { OB11GroupRecallNoticeEvent } from '@/onebot11/event/notice/OB11GroupRecallNoticeEvent'; -import { logMessage } from '@/onebot11/log'; +import { logMessage, logNotice, logRequest } from '@/onebot11/log'; +import { OB11Message } from '@/onebot11/types'; export class NapCatOnebot11 { @@ -99,6 +100,10 @@ export class NapCatOnebot11 { this.postRecallMsg(msgList).then().catch(logError); }; msgListener.onAddSendMsg = (msg) => { + OB11Constructor.message(msg).then((_msg) => { + _msg.target_id = parseInt(msg.peerUin); + logMessage(_msg as OB11Message).then().catch(logError); + }); if (ob11Config.reportSelfMessage) { dbUtil.addMsg(msg).then(id => { msg.id = id; @@ -143,6 +148,7 @@ export class NapCatOnebot11 { // message.msgShortId = await dbUtil.addMsg(message); // } OB11Constructor.message(message).then((msg) => { + logDebug('收到消息: ', msg); if (debug) { msg.raw = message; } else { @@ -150,7 +156,13 @@ export class NapCatOnebot11 { return; } } - logDebug('收到消息: ', msg); + if (msg.post_type === 'message') { + logMessage(msg as OB11Message).then().catch(logError); + } else if (msg.post_type === 'notice') { + logNotice(msg).then().catch(logError); + } else if (msg.post_type === 'request') { + logRequest(msg).then().catch(logError); + } const isSelfMsg = msg.user_id.toString() == selfInfo.uin; if (isSelfMsg && !reportSelfMessage) { return; diff --git a/src/onebot11/server/postOB11Event.ts b/src/onebot11/server/postOB11Event.ts index de8e9559..a79be8fd 100644 --- a/src/onebot11/server/postOB11Event.ts +++ b/src/onebot11/server/postOB11Event.ts @@ -14,7 +14,6 @@ import { isNull } from '@/common/utils/helper'; import { dbUtil } from '@/common/utils/db'; import { friendRequests, getGroup, groupNotifies, selfInfo } from '@/core/data'; import { NTQQFriendApi, NTQQGroupApi, NTQQMsgApi } from '../../core/src/apis'; -import { logMessage, logNotice, logRequest } from '@/onebot11/log'; export type PostEventType = OB11Message | OB11BaseMetaEvent | OB11BaseNoticeEvent @@ -72,13 +71,7 @@ export function postWsEvent(event: PostEventType) { export function postOB11Event(msg: PostEventType, reportSelf = false, postWs = true) { const config = ob11Config; - if (msg.post_type === 'message' || msg.post_type === 'message_sent') { - logMessage(msg as OB11Message).then().catch(logError); - } else if (msg.post_type === 'notice') { - logNotice(msg).then().catch(logError); - } else if (msg.post_type === 'request') { - logRequest(msg).then().catch(logError); - } + // 判断msg是否是event if (!config.reportSelfMessage && !reportSelf) { if (msg.post_type === 'message' && (msg as OB11Message).user_id.toString() == selfInfo.uin) {