From 352793d05fcc742979288c9410e3ed5a3f12da09 Mon Sep 17 00:00:00 2001 From: linyuchen Date: Tue, 19 Mar 2024 20:10:10 +0800 Subject: [PATCH] feat: send json --- src/ntqqapi/constructor.ts | 6 +++++- src/ntqqapi/hook.ts | 21 +++++++++++++++++++++ src/onebot11/action/SendMsg.ts | 6 ++++-- src/onebot11/types.ts | 7 ++++++- 4 files changed, 36 insertions(+), 4 deletions(-) diff --git a/src/ntqqapi/constructor.ts b/src/ntqqapi/constructor.ts index 679f173..0640dfd 100644 --- a/src/ntqqapi/constructor.ts +++ b/src/ntqqapi/constructor.ts @@ -225,7 +225,11 @@ export class SendMsgElementConstructor { return { elementType: ElementType.ARK, elementId: "", - arkElement: data + arkElement: { + bytesData: data, + linkInfo: null, + subElementType: null + } } } } \ No newline at end of file diff --git a/src/ntqqapi/hook.ts b/src/ntqqapi/hook.ts index 8d403b5..d9139db 100644 --- a/src/ntqqapi/hook.ts +++ b/src/ntqqapi/hook.ts @@ -125,6 +125,27 @@ export function hookNTQQApiCall(window: BrowserWindow) { } else { webContents._events["-ipc-message"] = proxyIpcMsg; } + + const ipc_invoke_proxy = webContents._events["-ipc-invoke"]?.[0] || webContents._events["-ipc-invoke"]; + const proxyIpcInvoke = new Proxy(ipc_invoke_proxy, { + apply(target, thisArg, args) { + // console.log(args); + HOOK_LOG && log("call NTQQ invoke api", thisArg, args) + args[0]["_replyChannel"]["sendReply"] = new Proxy(args[0]["_replyChannel"]["sendReply"], { + apply(sendtarget, sendthisArg, sendargs) { + sendtarget.apply(sendthisArg, sendargs); + } + }); + let ret = target.apply(thisArg, args); + HOOK_LOG && log("call NTQQ invoke api return", ret) + return ret; + } + }); + if (webContents._events["-ipc-invoke"]?.[0]) { + webContents._events["-ipc-invoke"][0] = proxyIpcInvoke; + } else { + webContents._events["-ipc-invoke"] = proxyIpcInvoke; + } } export function registerReceiveHook(method: ReceiveCmd | ReceiveCmd[], hookFunc: (payload: PayloadType) => void): string { diff --git a/src/onebot11/action/SendMsg.ts b/src/onebot11/action/SendMsg.ts index b10976a..babe312 100644 --- a/src/onebot11/action/SendMsg.ts +++ b/src/onebot11/action/SendMsg.ts @@ -438,8 +438,10 @@ export class SendMsg extends BaseAction { } } } - } - break; + } break; + case OB11MessageDataType.json: { + sendElements.push(SendMsgElementConstructor.ark(sendMsg.data.data)) + }break } } diff --git a/src/onebot11/types.ts b/src/onebot11/types.ts index 3ebce72..ca7c09c 100644 --- a/src/onebot11/types.ts +++ b/src/onebot11/types.ts @@ -187,12 +187,17 @@ export interface OB11MessageCustomMusic{ } } +export interface OB11MessageJson { + type: OB11MessageDataType.json + data: {config: {token: string}} & any +} + export type OB11MessageData = OB11MessageText | OB11MessageFace | OB11MessageAt | OB11MessageReply | OB11MessageImage | OB11MessageRecord | OB11MessageFile | OB11MessageVideo | - OB11MessageNode | OB11MessageCustomMusic + OB11MessageNode | OB11MessageCustomMusic | OB11MessageJson export interface OB11PostSendMsg { message_type?: "private" | "group"