This commit is contained in:
pk5ls20
2025-02-09 01:33:56 +08:00
parent ca796e1920
commit c3a5da9be1
5 changed files with 14 additions and 14 deletions

View File

@@ -54,7 +54,7 @@ export class ForwardMsgBuilder {
const id = crypto.randomUUID(); const id = crypto.randomUUID();
const isGroupMsg = msg.some(m => m.isGroupMsg); const isGroupMsg = msg.some(m => m.isGroupMsg);
if (!source) { 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) { if (!news) {
news = msg.length === 0 ? [{ news = msg.length === 0 ? [{

View File

@@ -8,11 +8,10 @@ import {
SendFaceElement, SendFaceElement,
SendFileElement, SendFileElement,
SendMarkdownElement, SendMarkdownElement,
SendMarketFaceElement, SendMarketFaceElement, SendMultiForwardMsgElement,
SendPicElement, SendPicElement,
SendPttElement, SendPttElement,
SendReplyElement, SendReplyElement,
SendStructLongMsgElement,
SendTextElement, SendTextElement,
SendVideoElement SendVideoElement
} from '@/core'; } from '@/core';
@@ -46,7 +45,7 @@ const SupportedElementTypes = [
ElementType.PTT, ElementType.PTT,
ElementType.ARK, ElementType.ARK,
ElementType.MARKDOWN, ElementType.MARKDOWN,
ElementType.STRUCTLONGMSG ElementType.MULTIFORWARD
]; ];
type SendMessageTypeElementMap = { type SendMessageTypeElementMap = {
@@ -59,7 +58,7 @@ type SendMessageTypeElementMap = {
[ElementType.REPLY]: SendReplyElement, [ElementType.REPLY]: SendReplyElement,
[ElementType.ARK]: SendArkElement, [ElementType.ARK]: SendArkElement,
[ElementType.MFACE]: SendMarketFaceElement, [ElementType.MFACE]: SendMarketFaceElement,
[ElementType.STRUCTLONGMSG]: SendStructLongMsgElement, [ElementType.MULTIFORWARD]: SendMultiForwardMsgElement,
[ElementType.MARKDOWN]: SendMarkdownElement, [ElementType.MARKDOWN]: SendMarkdownElement,
}; };
@@ -118,9 +117,8 @@ export class PacketMsgConverter {
[ElementType.MARKDOWN]: (element) => { [ElementType.MARKDOWN]: (element) => {
return new PacketMsgMarkDownElement(element as SendMarkdownElement); return new PacketMsgMarkDownElement(element as SendMarkdownElement);
}, },
// TODO: check this logic, move it in arkElement? [ElementType.MULTIFORWARD]: (element) => {
[ElementType.STRUCTLONGMSG]: (element) => { return new PacketMultiMsgElement(element as SendMultiForwardMsgElement);
return new PacketMultiMsgElement(element as SendStructLongMsgElement);
} }
}; };

View File

@@ -27,7 +27,7 @@ import {
SendPicElement, SendPicElement,
SendPttElement, SendPttElement,
SendReplyElement, SendReplyElement,
SendStructLongMsgElement, SendMultiForwardMsgElement,
SendTextElement, SendTextElement,
SendVideoElement SendVideoElement
} from '@/core'; } from '@/core';
@@ -661,13 +661,13 @@ export class PacketMsgMarkDownElement extends IPacketMsgElement<SendMarkdownElem
} }
} }
export class PacketMultiMsgElement extends IPacketMsgElement<SendStructLongMsgElement> { export class PacketMultiMsgElement extends IPacketMsgElement<SendMultiForwardMsgElement> {
resid: string; resid: string;
message: PacketMsg[]; message: PacketMsg[];
constructor(rawElement: SendStructLongMsgElement, message?: PacketMsg[]) { constructor(rawElement: SendMultiForwardMsgElement, message?: PacketMsg[]) {
super(rawElement); super(rawElement);
this.resid = rawElement.structLongMsgElement.resId; this.resid = rawElement.multiForwardMsgElement.resId;
this.message = message ?? []; this.message = message ?? [];
} }

View File

@@ -1,7 +1,7 @@
import { IPacketMsgElement } from '@/core/packet/message/element'; 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 { export interface PacketMsg {
seq?: number; seq?: number;

View File

@@ -347,6 +347,8 @@ export type SendMarkdownElement = SendElementBase<ElementType.MARKDOWN> & Elemen
export type SendShareLocationElement = SendElementBase<ElementType.SHARELOCATION> & ElementBase<'shareLocationElement'>; export type SendShareLocationElement = SendElementBase<ElementType.SHARELOCATION> & ElementBase<'shareLocationElement'>;
export type SendMultiForwardMsgElement = SendElementBase<ElementType.MULTIFORWARD> & ElementBase<'multiForwardMsgElement'>;
export type SendMessageElement = SendTextElement | SendPttElement | export type SendMessageElement = SendTextElement | SendPttElement |
SendPicElement | SendReplyElement | SendFaceElement | SendMarketFaceElement | SendFileElement | SendPicElement | SendReplyElement | SendFaceElement | SendMarketFaceElement | SendFileElement |
SendVideoElement | SendArkElement | SendMarkdownElement | SendShareLocationElement; SendVideoElement | SendArkElement | SendMarkdownElement | SendShareLocationElement;