From c3a5da9be13c1a213d93beee76139ac79e46a410 Mon Sep 17 00:00:00 2001 From: pk5ls20 Date: Sun, 9 Feb 2025 01:33:56 +0800 Subject: [PATCH] feat: #768 --- src/common/forward-msg-builder.ts | 2 +- src/core/packet/message/converter.ts | 12 +++++------- src/core/packet/message/element.ts | 8 ++++---- src/core/packet/message/message.ts | 4 ++-- src/core/types/element.ts | 2 ++ 5 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/common/forward-msg-builder.ts b/src/common/forward-msg-builder.ts index 8aba1408..bb30e04b 100644 --- a/src/common/forward-msg-builder.ts +++ b/src/common/forward-msg-builder.ts @@ -54,7 +54,7 @@ export class ForwardMsgBuilder { const id = crypto.randomUUID(); const isGroupMsg = msg.some(m => m.isGroupMsg); if (!source) { - source = isGroupMsg ? '群聊的聊天记录' : msg.map(m => m.senderName).filter((v, i, a) => a.indexOf(v) === i).slice(0, 4).join('和') + '的聊天记录'; + source = msg.length === 0 ? '聊天记录' : (isGroupMsg ? '群聊的聊天记录' : msg.map(m => m.senderName).filter((v, i, a) => a.indexOf(v) === i).slice(0, 4).join('和') + '的聊天记录'); } if (!news) { news = msg.length === 0 ? [{ diff --git a/src/core/packet/message/converter.ts b/src/core/packet/message/converter.ts index 77588a2f..77e6bde6 100644 --- a/src/core/packet/message/converter.ts +++ b/src/core/packet/message/converter.ts @@ -8,11 +8,10 @@ import { SendFaceElement, SendFileElement, SendMarkdownElement, - SendMarketFaceElement, + SendMarketFaceElement, SendMultiForwardMsgElement, SendPicElement, SendPttElement, SendReplyElement, - SendStructLongMsgElement, SendTextElement, SendVideoElement } from '@/core'; @@ -46,7 +45,7 @@ const SupportedElementTypes = [ ElementType.PTT, ElementType.ARK, ElementType.MARKDOWN, - ElementType.STRUCTLONGMSG + ElementType.MULTIFORWARD ]; type SendMessageTypeElementMap = { @@ -59,7 +58,7 @@ type SendMessageTypeElementMap = { [ElementType.REPLY]: SendReplyElement, [ElementType.ARK]: SendArkElement, [ElementType.MFACE]: SendMarketFaceElement, - [ElementType.STRUCTLONGMSG]: SendStructLongMsgElement, + [ElementType.MULTIFORWARD]: SendMultiForwardMsgElement, [ElementType.MARKDOWN]: SendMarkdownElement, }; @@ -118,9 +117,8 @@ export class PacketMsgConverter { [ElementType.MARKDOWN]: (element) => { return new PacketMsgMarkDownElement(element as SendMarkdownElement); }, - // TODO: check this logic, move it in arkElement? - [ElementType.STRUCTLONGMSG]: (element) => { - return new PacketMultiMsgElement(element as SendStructLongMsgElement); + [ElementType.MULTIFORWARD]: (element) => { + return new PacketMultiMsgElement(element as SendMultiForwardMsgElement); } }; diff --git a/src/core/packet/message/element.ts b/src/core/packet/message/element.ts index 1cc5f938..df1a1d4d 100644 --- a/src/core/packet/message/element.ts +++ b/src/core/packet/message/element.ts @@ -27,7 +27,7 @@ import { SendPicElement, SendPttElement, SendReplyElement, - SendStructLongMsgElement, + SendMultiForwardMsgElement, SendTextElement, SendVideoElement } from '@/core'; @@ -661,13 +661,13 @@ export class PacketMsgMarkDownElement extends IPacketMsgElement { +export class PacketMultiMsgElement extends IPacketMsgElement { resid: string; message: PacketMsg[]; - constructor(rawElement: SendStructLongMsgElement, message?: PacketMsg[]) { + constructor(rawElement: SendMultiForwardMsgElement, message?: PacketMsg[]) { super(rawElement); - this.resid = rawElement.structLongMsgElement.resId; + this.resid = rawElement.multiForwardMsgElement.resId; this.message = message ?? []; } diff --git a/src/core/packet/message/message.ts b/src/core/packet/message/message.ts index e87dfb74..8bf61083 100644 --- a/src/core/packet/message/message.ts +++ b/src/core/packet/message/message.ts @@ -1,7 +1,7 @@ import { IPacketMsgElement } from '@/core/packet/message/element'; -import { SendMessageElement, SendStructLongMsgElement } from '@/core'; +import {SendMessageElement, SendMultiForwardMsgElement} from '@/core'; -export type PacketSendMsgElement = SendMessageElement | SendStructLongMsgElement +export type PacketSendMsgElement = SendMessageElement | SendMultiForwardMsgElement export interface PacketMsg { seq?: number; diff --git a/src/core/types/element.ts b/src/core/types/element.ts index 15fa13b8..193f7a12 100644 --- a/src/core/types/element.ts +++ b/src/core/types/element.ts @@ -347,6 +347,8 @@ export type SendMarkdownElement = SendElementBase & Elemen export type SendShareLocationElement = SendElementBase & ElementBase<'shareLocationElement'>; +export type SendMultiForwardMsgElement = SendElementBase & ElementBase<'multiForwardMsgElement'>; + export type SendMessageElement = SendTextElement | SendPttElement | SendPicElement | SendReplyElement | SendFaceElement | SendMarketFaceElement | SendFileElement | SendVideoElement | SendArkElement | SendMarkdownElement | SendShareLocationElement;