feat: better fake forwardMsg logic & display

This commit is contained in:
pk5ls20 2024-10-27 09:33:20 +08:00
parent 1eb5cd6237
commit 15f7cd9814
No known key found for this signature in database
GPG Key ID: 6370ED7A169F493A
3 changed files with 6 additions and 5 deletions

View File

@ -56,7 +56,7 @@ export class ForwardMsgBuilder {
if (!source) { if (!source) {
source = isGroupMsg ? "群聊的聊天记录" : source = isGroupMsg ? "群聊的聊天记录" :
msg.length msg.length
? Array.from(new Set(msg.map(m => m.senderName))) ? Array.from(new Set(msg.slice(0, 4).map(m => m.senderName)))
.join('和') + '的聊天记录' .join('和') + '的聊天记录'
: '聊天记录'; : '聊天记录';
} }

View File

@ -1,4 +1,5 @@
import { import {
Peer,
ChatType, ChatType,
ElementType, ElementType,
MessageElement, MessageElement,
@ -101,13 +102,13 @@ export class PacketMsgConverter {
}; };
} }
rawMsgToPacketMsg(msg: RawMessage): PacketMsg { rawMsgToPacketMsg(msg: RawMessage, ctxPeer: Peer): PacketMsg {
return { return {
seq: +msg.msgSeq, seq: +msg.msgSeq,
groupId: msg.chatType === ChatType.KCHATTYPEGROUP ? +msg.peerUid : undefined, groupId: ctxPeer.chatType === ChatType.KCHATTYPEGROUP ? +msg.peerUid : undefined,
senderUid: msg.senderUid, senderUid: msg.senderUid,
senderUin: +msg.senderUin, senderUin: +msg.senderUin,
senderName: msg.sendNickName ?? 'QQ用户', senderName: msg.sendMemberName ?? '' !== '' ? msg.sendMemberName ?? '' : msg.sendNickName ?? '' !== '' ? msg.sendNickName ?? "QQ用户" : "QQ用户",
time: +msg.msgTime, time: +msg.msgTime,
msg: msg.elements.map((element) => { msg: msg.elements.map((element) => {
if (!this.isValidElementType(element.elementType)) return null; if (!this.isValidElementType(element.elementType)) return null;

View File

@ -204,7 +204,7 @@ export class SendMsg extends BaseAction<OB11PostSendMsg, ReturnDataType> {
const msg = (await this.core.apis.MsgApi.getMsgsByMsgId(nodeMsg.Peer, [nodeMsg.MsgId])).msgList[0]; const msg = (await this.core.apis.MsgApi.getMsgsByMsgId(nodeMsg.Peer, [nodeMsg.MsgId])).msgList[0];
logger.logDebug(`handleForwardedNodesPacket[PureRaw] 开始转换 ${JSON.stringify(msg)}`); logger.logDebug(`handleForwardedNodesPacket[PureRaw] 开始转换 ${JSON.stringify(msg)}`);
await this.core.apis.FileApi.downloadRawMsgMedia([msg]); await this.core.apis.FileApi.downloadRawMsgMedia([msg]);
const transformedMsg = this.core.apis.PacketApi.packetSession?.packer.packetConverter.rawMsgToPacketMsg(msg); const transformedMsg = this.core.apis.PacketApi.packetSession?.packer.packetConverter.rawMsgToPacketMsg(msg, msgPeer);
logger.logDebug(`handleForwardedNodesPacket[PureRaw] 转换为 ${JSON.stringify(transformedMsg)}`); logger.logDebug(`handleForwardedNodesPacket[PureRaw] 转换为 ${JSON.stringify(transformedMsg)}`);
packetMsg.push(transformedMsg!); packetMsg.push(transformedMsg!);
} else { } else {