From 0fb88e3e44013f1fbbf53c921a5fcea612255b46 Mon Sep 17 00:00:00 2001 From: Simplxs Date: Thu, 18 Jan 2024 16:43:35 +0800 Subject: [PATCH 1/2] give more love to --- .../fuqiuluo/qqinterface/servlet/GroupSvc.kt | 18 ++++++++++++------ .../remote/action/handlers/GetForwardMsg.kt | 6 +++--- .../remote/action/handlers/GetHistoryMsg.kt | 6 +++--- .../shamrock/remote/action/handlers/GetMsg.kt | 6 +++--- .../remote/action/handlers/GetProfileCard.kt | 2 +- .../remote/action/handlers/GetTroopHonor.kt | 2 +- .../service/api/GlobalEventTransmitter.kt | 8 ++++---- 7 files changed, 27 insertions(+), 21 deletions(-) diff --git a/xposed/src/main/java/moe/fuqiuluo/qqinterface/servlet/GroupSvc.kt b/xposed/src/main/java/moe/fuqiuluo/qqinterface/servlet/GroupSvc.kt index ee0ab68..a828925 100644 --- a/xposed/src/main/java/moe/fuqiuluo/qqinterface/servlet/GroupSvc.kt +++ b/xposed/src/main/java/moe/fuqiuluo/qqinterface/servlet/GroupSvc.kt @@ -194,13 +194,19 @@ internal object GroupSvc: BaseSvc() { var groupInfo = getGroupInfo(groupId) - if(refresh || !service.isTroopCacheInited || groupInfo.troopuin.isNullOrBlank()) { - groupInfo = requestGroupList(service, groupId.toLong()).onFailure { - return Result.failure(it) - }.getOrThrow() + return if(refresh || !service.isTroopCacheInited || groupInfo.troopuin.isNullOrBlank()) { + requestGroupList(service, groupId.toLong()).onFailure { + groupInfo = service.findTroopInfo(groupId) + if (groupInfo.troopuin.isNullOrBlank()) { + Result.failure(it) + } else { + Result.success(groupInfo) + } + } + } else { + Result.success(groupInfo) } - return Result.success(groupInfo) } suspend fun setGroupUniqueTitle(groupId: String, userId: String, title: String) { @@ -209,7 +215,7 @@ internal object GroupSvc: BaseSvc() { req.uint64_group_code.set(groupId.toLong()) val memberInfo = Oidb_0x8fc.MemberInfo() memberInfo.uint64_uin.set(userId.toLong()) - memberInfo.bytes_uin_name.set(ByteStringMicro.copyFromUtf8(localMemberInfo.troopnick.ifBlank { + memberInfo.bytes_uin_name.set(ByteStringMicro.copyFromUtf8(localMemberInfo.troopnick.ifEmpty { localMemberInfo.troopremark.ifNullOrEmpty("") })) memberInfo.bytes_special_title.set(ByteStringMicro.copyFromUtf8(title)) diff --git a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetForwardMsg.kt b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetForwardMsg.kt index d103f81..510aeec 100644 --- a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetForwardMsg.kt +++ b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetForwardMsg.kt @@ -37,9 +37,9 @@ internal object GetForwardMsg: IActionHandler() { realId = msg.msgSeq.toInt(), sender = MessageSender( msg.senderUin, msg.sendNickName - .ifBlank { msg.sendMemberName } - .ifBlank { msg.sendRemarkName } - .ifBlank { msg.peerName }, "unknown", 0, msg.senderUid + .ifEmpty { msg.sendMemberName } + .ifEmpty { msg.sendRemarkName } + .ifEmpty { msg.peerName }, "unknown", 0, msg.senderUid ), message = MessageConvert.convertMessageRecordToMsgSegment(msg).map { it.toJson() diff --git a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetHistoryMsg.kt b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetHistoryMsg.kt index 3a08586..ba8656a 100644 --- a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetHistoryMsg.kt +++ b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetHistoryMsg.kt @@ -85,9 +85,9 @@ internal object GetHistoryMsg: IActionHandler() { realId = seq, sender = MessageSender( msg.senderUin, msg.sendNickName - .ifBlank { msg.sendMemberName } - .ifBlank { msg.sendRemarkName } - .ifBlank { msg.peerName }, "unknown", 0, msg.senderUid + .ifEmpty { msg.sendMemberName } + .ifEmpty { msg.sendRemarkName } + .ifEmpty { msg.peerName }, "unknown", 0, msg.senderUid ), message = MessageConvert.convertMessageRecordToMsgSegment(msg).map { it.toJson() diff --git a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetMsg.kt b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetMsg.kt index 186c3f3..b34a576 100644 --- a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetMsg.kt +++ b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetMsg.kt @@ -30,9 +30,9 @@ internal object GetMsg: IActionHandler() { realId = seq, sender = MessageSender( msg.senderUin, msg.sendNickName - .ifBlank { msg.sendMemberName } - .ifBlank { msg.sendRemarkName } - .ifBlank { msg.peerName }, "unknown", 0, msg.senderUid + .ifEmpty { msg.sendMemberName } + .ifEmpty { msg.sendRemarkName } + .ifEmpty { msg.peerName }, "unknown", 0, msg.senderUid ), message = MessageConvert.convertMessageRecordToMsgSegment(msg).map { it.toJson() diff --git a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetProfileCard.kt b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetProfileCard.kt index 19bbcf9..aaec75d 100644 --- a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetProfileCard.kt +++ b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetProfileCard.kt @@ -29,7 +29,7 @@ internal object GetProfileCard: IActionHandler() { uin = card.uin.toLong(), name = card.strNick, mail = card.strShowName ?: card.strEmail ?: "", - remark = card.strReMark.let { if (it.isNullOrBlank()) card.strAutoRemark else it }, + remark = card.strReMark.let { if (it.isNullOrEmpty()) card.strAutoRemark else it }, findMethod = card.addSrcName, displayName = card.strContactName, maxVoteCnt = card.bAvailVoteCnt, diff --git a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetTroopHonor.kt b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetTroopHonor.kt index e1ad1a5..40a594b 100644 --- a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetTroopHonor.kt +++ b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetTroopHonor.kt @@ -30,7 +30,7 @@ internal object GetTroopHonor: IActionHandler() { GroupSvc.parseHonor(member.honorList).forEach { val honor = nativeDecodeHonor(member.memberuin, it, member.mHonorRichFlag) if (honor != null) { - honor.nick = member.troopnick.ifBlank { member.friendnick } + honor.nick = member.troopnick.ifEmpty { member.friendnick } honorInfo.add(honor) } } diff --git a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/api/GlobalEventTransmitter.kt b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/api/GlobalEventTransmitter.kt index 102e159..649aff2 100644 --- a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/api/GlobalEventTransmitter.kt +++ b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/api/GlobalEventTransmitter.kt @@ -82,9 +82,9 @@ internal object GlobalEventTransmitter: BaseSvc() { sender = Sender( userId = record.senderUin, nickname = record.sendNickName - .ifBlank { record.sendRemarkName } - .ifBlank { record.sendMemberName } - .ifBlank { record.peerName }, + .ifEmpty { record.sendRemarkName } + .ifEmpty { record.sendMemberName } + .ifEmpty { record.peerName }, card = record.sendMemberName, role = when (record.senderUin) { GroupSvc.getOwner(record.peerUin.toString()) -> MemberRole.Owner @@ -112,7 +112,7 @@ internal object GlobalEventTransmitter: BaseSvc() { ): Boolean { val botUin = app.longAccountUin var nickName = record.sendNickName - if (nickName.isNullOrBlank()) { + if (nickName.isNullOrEmpty()) { CardSvc.getProfileCard(record.senderUin.toString()).onSuccess { nickName = it.strNick ?: record.peerName } From 81be383b5ff06e75a8223724e387a29da627b406 Mon Sep 17 00:00:00 2001 From: Simplxs Date: Thu, 18 Jan 2024 20:04:53 +0800 Subject: [PATCH 2/2] revert --- .../fuqiuluo/qqinterface/servlet/GroupSvc.kt | 23 +++++++------------ 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/xposed/src/main/java/moe/fuqiuluo/qqinterface/servlet/GroupSvc.kt b/xposed/src/main/java/moe/fuqiuluo/qqinterface/servlet/GroupSvc.kt index a828925..2ab97f7 100644 --- a/xposed/src/main/java/moe/fuqiuluo/qqinterface/servlet/GroupSvc.kt +++ b/xposed/src/main/java/moe/fuqiuluo/qqinterface/servlet/GroupSvc.kt @@ -179,7 +179,7 @@ internal object GroupSvc: BaseSvc() { var troopList = service.allTroopList if(refresh || !service.isTroopCacheInited || troopList == null) { - if(!requestGroupList(service)) { + if(!requestGroupInfo(service)) { return Result.failure(Exception("获取群列表失败")) } else { troopList = service.allTroopList @@ -192,17 +192,10 @@ internal object GroupSvc: BaseSvc() { val service = app .getRuntimeService(ITroopInfoService::class.java, "all") - var groupInfo = getGroupInfo(groupId) + val groupInfo = getGroupInfo(groupId) return if(refresh || !service.isTroopCacheInited || groupInfo.troopuin.isNullOrBlank()) { - requestGroupList(service, groupId.toLong()).onFailure { - groupInfo = service.findTroopInfo(groupId) - if (groupInfo.troopuin.isNullOrBlank()) { - Result.failure(it) - } else { - Result.success(groupInfo) - } - } + requestGroupInfo(service, groupId.toLong()) } else { Result.success(groupInfo) } @@ -567,7 +560,7 @@ internal object GroupSvc: BaseSvc() { } } - private suspend fun requestGroupList( + private suspend fun requestGroupInfo( service: ITroopInfoService ): Boolean { refreshTroopList() @@ -660,9 +653,9 @@ internal object GroupSvc: BaseSvc() { METHOD_REQ_MEMBER_INFO_V2.invoke(businessHandler, groupId.toString(), groupUin2GroupCode(groupId).toString(), arrayListOf(memberUin.toString())) } - private suspend fun requestGroupList(dataService: ITroopInfoService, uin: Long): Result { + private suspend fun requestGroupInfo(dataService: ITroopInfoService, uin: Long): Result { val strUin = uin.toString() - val list = withTimeoutOrNull(5000) { + val info = withTimeoutOrNull(5000) { var troopInfo: TroopInfo? do { troopInfo = dataService.getTroopInfo(strUin) @@ -670,8 +663,8 @@ internal object GroupSvc: BaseSvc() { } while (troopInfo == null || troopInfo.troopuin.isNullOrBlank()) return@withTimeoutOrNull troopInfo } - return if (list != null) { - Result.success(list) + return if (info != null) { + Result.success(info) } else { Result.failure(Exception("获取群列表失败")) }