mirror of
https://github.com/NapNeko/NapCatQQ.git
synced 2025-07-19 12:03:37 +00:00
feat: #768
This commit is contained in:
@@ -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 ? [{
|
||||||
|
@@ -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);
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -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 ?? [];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -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;
|
||||||
|
@@ -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;
|
||||||
|
Reference in New Issue
Block a user