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) {
source = isGroupMsg ? "群聊的聊天记录" :
msg.length
? Array.from(new Set(msg.map(m => m.senderName)))
? Array.from(new Set(msg.slice(0, 4).map(m => m.senderName)))
.join('和') + '的聊天记录'
: '聊天记录';
}

View File

@ -1,4 +1,5 @@
import {
Peer,
ChatType,
ElementType,
MessageElement,
@ -101,13 +102,13 @@ export class PacketMsgConverter {
};
}
rawMsgToPacketMsg(msg: RawMessage): PacketMsg {
rawMsgToPacketMsg(msg: RawMessage, ctxPeer: Peer): PacketMsg {
return {
seq: +msg.msgSeq,
groupId: msg.chatType === ChatType.KCHATTYPEGROUP ? +msg.peerUid : undefined,
groupId: ctxPeer.chatType === ChatType.KCHATTYPEGROUP ? +msg.peerUid : undefined,
senderUid: msg.senderUid,
senderUin: +msg.senderUin,
senderName: msg.sendNickName ?? 'QQ用户',
senderName: msg.sendMemberName ?? '' !== '' ? msg.sendMemberName ?? '' : msg.sendNickName ?? '' !== '' ? msg.sendNickName ?? "QQ用户" : "QQ用户",
time: +msg.msgTime,
msg: msg.elements.map((element) => {
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];
logger.logDebug(`handleForwardedNodesPacket[PureRaw] 开始转换 ${JSON.stringify(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)}`);
packetMsg.push(transformedMsg!);
} else {