From 7730e1c0754d5ebb1b6555d67e846a42617253da Mon Sep 17 00:00:00 2001 From: yibo Date: Sun, 24 May 2026 12:00:06 +0800 Subject: [PATCH] fix: getContactNickname 群兜底查 chatroom.displayname --- server/services/wechat/android-wechat-tracker-sqlcipher.js | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/server/services/wechat/android-wechat-tracker-sqlcipher.js b/server/services/wechat/android-wechat-tracker-sqlcipher.js index 3ff05a3..affafeb 100644 --- a/server/services/wechat/android-wechat-tracker-sqlcipher.js +++ b/server/services/wechat/android-wechat-tracker-sqlcipher.js @@ -151,10 +151,21 @@ class AndroidWechatTrackerSQLCipher extends EventEmitter { const out = await this._query(sql, 5000); const conRemark = this._extractValue(out, 'conRemark'); const nickname = this._extractValue(out, 'nickname'); - return conRemark || nickname || wxid; - } catch (_) { - return wxid; + if (conRemark || nickname) return conRemark || nickname; + } catch (_) {} + + // 群聊兜底:用户没设群名时,rcontact.nickname 为空,从 chatroom.displayname + // 拿微信前端默认拼出来的名字(如 "丁鹏、🍋火星人、火星人") + if (wxid.endsWith('@chatroom')) { + try { + const out2 = await this._query( + `SELECT displayname FROM chatroom WHERE chatroomname='${safeWxid}' LIMIT 1;`, 5000); + const dn = this._extractValue(out2, 'displayname'); + if (dn) return dn; + } catch (_) {} } + + return wxid; } startPolling(intervalMs = 3000) { -- libgit2 0.21.4