From 0a6a67738ed6f69bdd9749a24c2df66d57493796 Mon Sep 17 00:00:00 2001 From: linyuchen Date: Tue, 30 Jan 2024 03:46:31 +0800 Subject: [PATCH] fix: cant not get sender info from friend message --- manifest.json | 2 +- src/common/types.ts | 4 ++-- src/renderer.ts | 11 ++++++----- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/manifest.json b/manifest.json index 349d053..3a6380b 100644 --- a/manifest.json +++ b/manifest.json @@ -4,7 +4,7 @@ "name": "LLOneBot", "slug": "LLOneBot", "description": "LiteLoaderQQNT的OneBotApi", - "version": "2.0.2", + "version": "2.0.3", "thumbnail": "./icon.png", "authors": [{ "name": "linyuchen", diff --git a/src/common/types.ts b/src/common/types.ts index 351f4a6..baf228b 100644 --- a/src/common/types.ts +++ b/src/common/types.ts @@ -44,7 +44,7 @@ export type Group = { } export type Peer = { - chatType: "private" | "group" + chatType: "private" | "group" | "friend" name: string uid: string // qq号 } @@ -53,6 +53,7 @@ export type MessageElement = { raw: { msgId: string, msgSeq: string, + senderUin: string; // 发送者QQ号 elements: { replyElement: { senderUid: string, // 原消息发送者QQ号 @@ -98,7 +99,6 @@ export type MessageElement = { } }[] } - peer: Peer, sender: { uid: string // 一串加密的字符串 diff --git a/src/renderer.ts b/src/renderer.ts index a3c7628..e0b0e98 100644 --- a/src/renderer.ts +++ b/src/renderer.ts @@ -102,6 +102,7 @@ async function getGroupMember(group_qq: string, member_uid: string) { async function handleNewMessage(messages: MessageElement[]) { + // console.log("llonebot 收到消息:", messages); for (let message of messages) { let onebot_message_data: any = { self: { @@ -132,10 +133,10 @@ async function handleNewMessage(messages: MessageElement[]) { card: groupMember!.cardName, role: OnebotGroupMemberRole[groupMember!.role] } - console.log("收到群消息", onebot_message_data) - } else if (message.peer.chatType == "private") { - onebot_message_data["user_id"] = message.peer.uid - let friend = await getFriend(message.sender.uid) + // console.log("收到群消息", onebot_message_data) + } else if (message.peer.chatType == "private" || message.peer.chatType == "friend") { + onebot_message_data["user_id"] = message.raw.senderUin; + let friend = await getFriend(message.raw.senderUin) onebot_message_data.sender = { user_id: friend!.uin, nickname: friend!.nickName @@ -229,7 +230,7 @@ async function listenSendMessage(postData: PostDataSendMsg) { } else if (message.type == "text") { message.content = message.data?.text || message.content } else if (message.type == "image" || message.type == "voice" || message.type == "record") { - // todo: 收到的应该是uri格式的,需要转成本地的, uri格式有三种,http, file, base64 + // 收到的是uri格式的,需要转成本地的, uri格式有三种,http, file, base64 let url = message.data?.file || message.file let uri = new URL(url); let ext: string;