mirror of
https://github.com/NapNeko/NapCatQQ.git
synced 2024-11-21 09:36:35 +00:00
refactor: sendmsg
This commit is contained in:
parent
0efdffd857
commit
fc7631f9aa
@ -174,12 +174,25 @@ export class NTQQMsgApi {
|
|||||||
'NodeIKernelMsgListener/onMsgInfoListUpdate',
|
'NodeIKernelMsgListener/onMsgInfoListUpdate',
|
||||||
timeout,
|
timeout,
|
||||||
1,
|
1,
|
||||||
() => true,
|
(msgRecords: RawMessage[]) => {
|
||||||
|
for (let msgRecord of msgRecords) {
|
||||||
|
if (msgRecord.msgId === msgId && msgRecord.sendStatus === 2) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
},
|
||||||
msgId,
|
msgId,
|
||||||
peer,
|
peer,
|
||||||
msgElements,
|
msgElements,
|
||||||
new Map()
|
new Map()
|
||||||
);
|
);
|
||||||
|
let retMsg = data[1].find(msgRecord => {
|
||||||
|
if (msgRecord.msgId === msgId) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return retMsg;
|
||||||
//const result = napCatCore.session.getMsgService().sendMsg(msgId, peer, msgElements, new Map());
|
//const result = napCatCore.session.getMsgService().sendMsg(msgId, peer, msgElements, new Map());
|
||||||
}
|
}
|
||||||
// static async sendMsg(peer: Peer, msgElements: SendMessageElement[], waitComplete = true, timeout = 10000): Promise<RawMessage> {
|
// static async sendMsg(peer: Peer, msgElements: SendMessageElement[], waitComplete = true, timeout = 10000): Promise<RawMessage> {
|
||||||
|
@ -53,13 +53,13 @@ export async function handleForwardNode(destPeer: Peer, messageNodes: OB11Messag
|
|||||||
const nodeId = messageNode.data.id;
|
const nodeId = messageNode.data.id;
|
||||||
// 有nodeId表示一个子转发消息卡片
|
// 有nodeId表示一个子转发消息卡片
|
||||||
if (nodeId) {
|
if (nodeId) {
|
||||||
const nodeMsg = MessageUnique.getMsgIdAndPeerByShortId(parseInt(nodeId));
|
const nodeMsg = MessageUnique.getMsgIdAndPeerByShortId(parseInt(nodeId));
|
||||||
if (!needClone) {
|
if (!needClone) {
|
||||||
nodeMsgIds.push(nodeMsg!.MsgId);
|
nodeMsgIds.push(nodeMsg!.MsgId);
|
||||||
} else {
|
} else {
|
||||||
if (nodeMsg!.Peer.peerUid !== selfInfo.uid) {
|
if (nodeMsg!.Peer.peerUid !== selfInfo.uid) {
|
||||||
// need cloning
|
// need cloning
|
||||||
const rawClone = await NTQQMsgApi.getMsgsByMsgId(nodeMsg?.Peer!,[nodeMsg?.MsgId!]);
|
const rawClone = await NTQQMsgApi.getMsgsByMsgId(nodeMsg?.Peer!, [nodeMsg?.MsgId!]);
|
||||||
const clonedMsg = await cloneMsg(rawClone.msgList[0]);
|
const clonedMsg = await cloneMsg(rawClone.msgList[0]);
|
||||||
if (clonedMsg) {
|
if (clonedMsg) {
|
||||||
nodeMsgIds.push(clonedMsg.msgId);
|
nodeMsgIds.push(clonedMsg.msgId);
|
||||||
@ -91,7 +91,7 @@ export async function handleForwardNode(destPeer: Peer, messageNodes: OB11Messag
|
|||||||
//logDebug(sendElementsSplit);
|
//logDebug(sendElementsSplit);
|
||||||
}
|
}
|
||||||
// log("分割后的转发节点", sendElementsSplit)
|
// log("分割后的转发节点", sendElementsSplit)
|
||||||
const MsgNodeList: Promise<RawMessage>[] = [];
|
const MsgNodeList: Promise<RawMessage | undefined>[] = [];
|
||||||
for (const sendElementsSplitElement of sendElementsSplit) {
|
for (const sendElementsSplitElement of sendElementsSplit) {
|
||||||
MsgNodeList.push(sendMsg(selfPeer, sendElementsSplitElement, [], true));
|
MsgNodeList.push(sendMsg(selfPeer, sendElementsSplitElement, [], true));
|
||||||
await sleep(Math.trunc(sendElementsSplit.length / 10) * 100);
|
await sleep(Math.trunc(sendElementsSplit.length / 10) * 100);
|
||||||
@ -99,7 +99,9 @@ export async function handleForwardNode(destPeer: Peer, messageNodes: OB11Messag
|
|||||||
}
|
}
|
||||||
for (const msgNode of MsgNodeList) {
|
for (const msgNode of MsgNodeList) {
|
||||||
const result = await msgNode;
|
const result = await msgNode;
|
||||||
nodeMsgIds.push(result.msgId);
|
if (result) {
|
||||||
|
nodeMsgIds.push(result.msgId);
|
||||||
|
}
|
||||||
//logDebug('转发节点生成成功', result.msgId);
|
//logDebug('转发节点生成成功', result.msgId);
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
@ -66,10 +66,10 @@ export async function sendMsg(peer: Peer, sendElements: SendMessageElement[], de
|
|||||||
}
|
}
|
||||||
const returnMsg = await NTQQMsgApi.sendMsg(peer, sendElements, waitComplete, timeout);
|
const returnMsg = await NTQQMsgApi.sendMsg(peer, sendElements, waitComplete, timeout);
|
||||||
try {
|
try {
|
||||||
returnMsg.id = await MessageUnique.createMsg({ chatType: peer.chatType, guildId: '', peerUid: peer.peerUid }, returnMsg.msgId);
|
returnMsg!.id = await MessageUnique.createMsg({ chatType: peer.chatType, guildId: '', peerUid: peer.peerUid }, returnMsg!.msgId);
|
||||||
} catch (e: any) {
|
} catch (e: any) {
|
||||||
logDebug('发送消息id获取失败', e);
|
logDebug('发送消息id获取失败', e);
|
||||||
returnMsg.id = 0;
|
returnMsg!.id = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
deleteAfterSentFiles.map((f) => {
|
deleteAfterSentFiles.map((f) => {
|
||||||
@ -172,7 +172,7 @@ export class SendMsg extends BaseAction<OB11PostSendMsg, ReturnDataType> {
|
|||||||
const { sendElements, deleteAfterSentFiles } = await createSendElements(messages, group);
|
const { sendElements, deleteAfterSentFiles } = await createSendElements(messages, group);
|
||||||
//console.log(peer, JSON.stringify(sendElements,null,2));
|
//console.log(peer, JSON.stringify(sendElements,null,2));
|
||||||
const returnMsg = await sendMsg(peer, sendElements, deleteAfterSentFiles);
|
const returnMsg = await sendMsg(peer, sendElements, deleteAfterSentFiles);
|
||||||
return { message_id: returnMsg.id! };
|
return { message_id: returnMsg!.id! };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user