mirror of
https://github.com/whitechi73/OpenShamrock.git
synced 2024-08-14 13:12:17 +08:00
Shamrock
: fix 群精华消息推送
This commit is contained in:
parent
7b07698f7b
commit
39120bdeae
@ -1,4 +1,5 @@
|
|||||||
@file:OptIn(DelicateCoroutinesApi::class)
|
@file:OptIn(DelicateCoroutinesApi::class)
|
||||||
|
|
||||||
package moe.fuqiuluo.shamrock.remote.service.listener
|
package moe.fuqiuluo.shamrock.remote.service.listener
|
||||||
|
|
||||||
import com.tencent.qqnt.kernel.nativeinterface.MsgConstant
|
import com.tencent.qqnt.kernel.nativeinterface.MsgConstant
|
||||||
@ -9,7 +10,6 @@ import kotlinx.coroutines.launch
|
|||||||
import kotlinx.io.core.ByteReadPacket
|
import kotlinx.io.core.ByteReadPacket
|
||||||
import kotlinx.io.core.discardExact
|
import kotlinx.io.core.discardExact
|
||||||
import kotlinx.io.core.readBytes
|
import kotlinx.io.core.readBytes
|
||||||
import kotlinx.io.core.readUInt
|
|
||||||
import kotlinx.serialization.json.Json
|
import kotlinx.serialization.json.Json
|
||||||
import kotlinx.serialization.json.JsonElement
|
import kotlinx.serialization.json.JsonElement
|
||||||
import moe.fuqiuluo.proto.ProtoByteString
|
import moe.fuqiuluo.proto.ProtoByteString
|
||||||
@ -22,7 +22,6 @@ import moe.fuqiuluo.proto.asByteArray
|
|||||||
import moe.fuqiuluo.proto.asList
|
import moe.fuqiuluo.proto.asList
|
||||||
import moe.fuqiuluo.proto.asULong
|
import moe.fuqiuluo.proto.asULong
|
||||||
import moe.fuqiuluo.qqinterface.servlet.FriendSvc.requestFriendSystemMsgNew
|
import moe.fuqiuluo.qqinterface.servlet.FriendSvc.requestFriendSystemMsgNew
|
||||||
import moe.fuqiuluo.qqinterface.servlet.GroupSvc
|
|
||||||
import moe.fuqiuluo.qqinterface.servlet.GroupSvc.requestGroupSystemMsgNew
|
import moe.fuqiuluo.qqinterface.servlet.GroupSvc.requestGroupSystemMsgNew
|
||||||
import moe.fuqiuluo.shamrock.helper.MessageHelper
|
import moe.fuqiuluo.shamrock.helper.MessageHelper
|
||||||
import moe.fuqiuluo.shamrock.remote.service.data.push.NoticeSubType
|
import moe.fuqiuluo.shamrock.remote.service.data.push.NoticeSubType
|
||||||
@ -64,13 +63,13 @@ internal object PrimitiveListener {
|
|||||||
subType = pb[1, 2, 2].asInt
|
subType = pb[1, 2, 2].asInt
|
||||||
}
|
}
|
||||||
val msgTime = pb[1, 2, 6].asLong
|
val msgTime = pb[1, 2, 6].asLong
|
||||||
when(msgType) {
|
when (msgType) {
|
||||||
33 -> onGroupMemIncreased(msgTime, pb)
|
33 -> onGroupMemIncreased(msgTime, pb)
|
||||||
34 -> onGroupMemberDecreased(msgTime, pb)
|
34 -> onGroupMemberDecreased(msgTime, pb)
|
||||||
44 -> onGroupAdminChange(msgTime, pb)
|
44 -> onGroupAdminChange(msgTime, pb)
|
||||||
84 -> onGroupApply(msgTime, pb)
|
84 -> onGroupApply(msgTime, pb)
|
||||||
87 -> onInviteGroup(msgTime, pb)
|
87 -> onInviteGroup(msgTime, pb)
|
||||||
528 -> when(subType) {
|
528 -> when (subType) {
|
||||||
35 -> onFriendApply(msgTime, pb)
|
35 -> onFriendApply(msgTime, pb)
|
||||||
39 -> onCardChange(msgTime, pb)
|
39 -> onCardChange(msgTime, pb)
|
||||||
// invite
|
// invite
|
||||||
@ -78,7 +77,8 @@ internal object PrimitiveListener {
|
|||||||
138 -> onC2CRecall(msgTime, pb)
|
138 -> onC2CRecall(msgTime, pb)
|
||||||
290 -> onC2cPoke(msgTime, pb)
|
290 -> onC2cPoke(msgTime, pb)
|
||||||
}
|
}
|
||||||
732 -> when(subType) {
|
|
||||||
|
732 -> when (subType) {
|
||||||
12 -> onGroupBan(msgTime, pb)
|
12 -> onGroupBan(msgTime, pb)
|
||||||
16 -> onGroupTitleChange(msgTime, pb)
|
16 -> onGroupTitleChange(msgTime, pb)
|
||||||
17 -> onGroupRecall(msgTime, pb)
|
17 -> onGroupRecall(msgTime, pb)
|
||||||
@ -104,7 +104,7 @@ internal object PrimitiveListener {
|
|||||||
.value
|
.value
|
||||||
.forEach {
|
.forEach {
|
||||||
val value = it[2].asUtf8String
|
val value = it[2].asUtf8String
|
||||||
when(it[1].asUtf8String) {
|
when (it[1].asUtf8String) {
|
||||||
"uin_str1" -> operation = value
|
"uin_str1" -> operation = value
|
||||||
"uin_str2" -> target = value
|
"uin_str2" -> target = value
|
||||||
"action_str" -> action = value
|
"action_str" -> action = value
|
||||||
@ -116,8 +116,9 @@ internal object PrimitiveListener {
|
|||||||
|
|
||||||
LogCenter.log("私聊戳一戳: $operation $action $target $suffix")
|
LogCenter.log("私聊戳一戳: $operation $action $target $suffix")
|
||||||
|
|
||||||
if(!GlobalEventTransmitter.PrivateNoticeTransmitter
|
if (!GlobalEventTransmitter.PrivateNoticeTransmitter
|
||||||
.transPrivatePoke(msgTime, operation.toLong(), target.toLong(), action, suffix, actionImg)) {
|
.transPrivatePoke(msgTime, operation.toLong(), target.toLong(), action, suffix, actionImg)
|
||||||
|
) {
|
||||||
LogCenter.log("私聊戳一戳推送失败!", Level.WARN)
|
LogCenter.log("私聊戳一戳推送失败!", Level.WARN)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -143,14 +144,14 @@ internal object PrimitiveListener {
|
|||||||
"$msgTime;$src;$subSrc;$applier"
|
"$msgTime;$src;$subSrc;$applier"
|
||||||
}
|
}
|
||||||
LogCenter.log("来自$applier 的好友申请:$msg ($source)")
|
LogCenter.log("来自$applier 的好友申请:$msg ($source)")
|
||||||
if(!GlobalEventTransmitter.RequestTransmitter
|
if (!GlobalEventTransmitter.RequestTransmitter
|
||||||
.transFriendApp(msgTime, applier, msg, flag)) {
|
.transFriendApp(msgTime, applier, msg, flag)
|
||||||
|
) {
|
||||||
LogCenter.log("好友申请推送失败!", Level.WARN)
|
LogCenter.log("好友申请推送失败!", Level.WARN)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private suspend fun onCardChange(msgTime: Long, pb: ProtoMap) {
|
private suspend fun onCardChange(msgTime: Long, pb: ProtoMap) {
|
||||||
val targetId = pb[1, 3, 2, 1, 13, 2].asUtf8String
|
val targetId = pb[1, 3, 2, 1, 13, 2].asUtf8String
|
||||||
val newCardList = pb[1, 3, 2, 1, 13, 3].asList
|
val newCardList = pb[1, 3, 2, 1, 13, 3].asList
|
||||||
@ -158,22 +159,23 @@ internal object PrimitiveListener {
|
|||||||
newCardList
|
newCardList
|
||||||
.value
|
.value
|
||||||
.forEach {
|
.forEach {
|
||||||
if(it[1].asInt == 1) {
|
if (it[1].asInt == 1) {
|
||||||
newCard = it[2].asUtf8String
|
newCard = it[2].asUtf8String
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
val groupId = pb[1, 3, 2, 1, 13, 4].asLong
|
val groupId = pb[1, 3, 2, 1, 13, 4].asLong
|
||||||
var oldCard = ""
|
var oldCard = ""
|
||||||
LogCenter.log("群组[$groupId]成员$targetId 群名片变动 -> $newCard")
|
|
||||||
val targetQQ = ContactHelper.getUinByUidAsync(targetId).toLong()
|
val targetQQ = ContactHelper.getUinByUidAsync(targetId).toLong()
|
||||||
|
LogCenter.log("群组[$groupId]成员$targetId 群名片变动 -> $newCard")
|
||||||
// oldCard暂时获取不到
|
// oldCard暂时获取不到
|
||||||
// GroupSvc.getTroopMemberInfoByUin(groupId.toString(), targetQQ.toString()).onSuccess {
|
// GroupSvc.getTroopMemberInfoByUin(groupId.toString(), targetQQ.toString()).onSuccess {
|
||||||
// oldCard = it.troopnick
|
// oldCard = it.troopnick
|
||||||
// }.onFailure {
|
// }.onFailure {
|
||||||
// LogCenter.log("获取群成员信息失败!", Level.WARN)
|
// LogCenter.log("获取群成员信息失败!", Level.WARN)
|
||||||
// }
|
// }
|
||||||
if(!GlobalEventTransmitter.GroupNoticeTransmitter
|
if (!GlobalEventTransmitter.GroupNoticeTransmitter
|
||||||
.transCardChange(msgTime, targetQQ, oldCard, newCard, groupId)) {
|
.transCardChange(msgTime, targetQQ, oldCard, newCard, groupId)
|
||||||
|
) {
|
||||||
LogCenter.log("群名片变动推送失败!", Level.WARN)
|
LogCenter.log("群名片变动推送失败!", Level.WARN)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -194,36 +196,51 @@ internal object PrimitiveListener {
|
|||||||
|
|
||||||
LogCenter.log("群组[$groupId]成员$targetUin 获得群头衔 -> $title")
|
LogCenter.log("群组[$groupId]成员$targetUin 获得群头衔 -> $title")
|
||||||
|
|
||||||
if(!GlobalEventTransmitter.GroupNoticeTransmitter
|
if (!GlobalEventTransmitter.GroupNoticeTransmitter
|
||||||
.transTitleChange(msgTime, targetUin, title, groupId)) {
|
.transTitleChange(msgTime, targetUin, title, groupId)
|
||||||
|
) {
|
||||||
LogCenter.log("群头衔变动推送失败!", Level.WARN)
|
LogCenter.log("群头衔变动推送失败!", Level.WARN)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private suspend fun onEssenceMessage(msgTime: Long, pb: ProtoMap) {
|
private suspend fun onEssenceMessage(msgTime: Long, pb: ProtoMap) {
|
||||||
val groupId = pb[1, 3, 2, 4].asLong
|
val groupCode = pb[1, 1, 1].asULong
|
||||||
val mesSeq = pb[1, 3, 2, 37].asInt
|
|
||||||
val operatorUin = pb[1, 3, 2, 33, 6].asLong
|
val readPacket = ByteReadPacket(pb[1, 3, 2].asByteArray)
|
||||||
val senderUin = pb[1, 3, 2, 33, 5].asLong
|
val detail = if (readPacket.readBuf32Long() == groupCode) {
|
||||||
|
readPacket.discardExact(1)
|
||||||
|
ProtoUtils.decodeFromByteArray(readPacket.readBytes(readPacket.readShort().toInt()))
|
||||||
|
} else pb[1, 3, 2]
|
||||||
|
|
||||||
|
val groupId = detail[4].asLong
|
||||||
|
val mesSeq = detail[37].asInt
|
||||||
|
val senderUin = detail[33, 5].asLong
|
||||||
|
val operatorUin = detail[33, 6].asLong
|
||||||
var msgId = 0
|
var msgId = 0
|
||||||
MessageHelper.getMsgMappingBySeq(MsgConstant.KCHATTYPEGROUP, mesSeq).also {
|
MessageHelper.getMsgMappingBySeq(MsgConstant.KCHATTYPEGROUP, mesSeq).also {
|
||||||
if (it != null) {
|
if (it != null) {
|
||||||
msgId = it.msgHashId
|
msgId = it.msgHashId
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
val type = pb[1, 3, 2, 33, 4].asInt
|
val subType = when (val type = detail[33, 4].asInt) {
|
||||||
val subType = if (type == 2) {
|
1 -> {
|
||||||
// remove essence
|
// add essence
|
||||||
LogCenter.log("群组[$groupId]成员$senderUin 的消息$msgId 被$operatorUin 移除精华")
|
LogCenter.log("群设精消息($groupId): $senderUin $msgId $operatorUin")
|
||||||
NoticeSubType.Delete
|
NoticeSubType.Add
|
||||||
} else {
|
}
|
||||||
// add essence
|
|
||||||
LogCenter.log("群组[$groupId]成员$senderUin 的消息$msgId 被$operatorUin 设为精华")
|
2 -> {
|
||||||
NoticeSubType.Add
|
// remove essence
|
||||||
|
LogCenter.log("群取精消息($groupId): $senderUin $msgId $operatorUin")
|
||||||
|
NoticeSubType.Delete
|
||||||
|
}
|
||||||
|
|
||||||
|
else -> error("onEssenceMessage unknown type: $type")
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!GlobalEventTransmitter.GroupNoticeTransmitter
|
if (!GlobalEventTransmitter.GroupNoticeTransmitter
|
||||||
.transEssenceChange(msgTime, senderUin, operatorUin, msgId, groupId, subType)) {
|
.transEssenceChange(msgTime, senderUin, operatorUin, msgId, groupId, subType)
|
||||||
|
) {
|
||||||
LogCenter.log("精华消息变动推送失败!", Level.WARN)
|
LogCenter.log("精华消息变动推送失败!", Level.WARN)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -234,7 +251,7 @@ internal object PrimitiveListener {
|
|||||||
|
|
||||||
var groupCode: Long = groupCode1
|
var groupCode: Long = groupCode1
|
||||||
|
|
||||||
val readPacket = ByteReadPacket( pb[1, 3, 2].asByteArray )
|
val readPacket = ByteReadPacket(pb[1, 3, 2].asByteArray)
|
||||||
val groupCode2 = readPacket.readBuf32Long()
|
val groupCode2 = readPacket.readBuf32Long()
|
||||||
|
|
||||||
var detail = if (groupCode2 == groupCode1) {
|
var detail = if (groupCode2 == groupCode1) {
|
||||||
@ -258,20 +275,21 @@ internal object PrimitiveListener {
|
|||||||
.asList
|
.asList
|
||||||
.value
|
.value
|
||||||
.forEach {
|
.forEach {
|
||||||
val value = it[2].asUtf8String
|
val value = it[2].asUtf8String
|
||||||
when(it[1].asUtf8String) {
|
when (it[1].asUtf8String) {
|
||||||
"uin_str1" -> operation = value
|
"uin_str1" -> operation = value
|
||||||
"uin_str2" -> target = value
|
"uin_str2" -> target = value
|
||||||
"action_str" -> action = value
|
"action_str" -> action = value
|
||||||
"alt_str1" -> action = value
|
"alt_str1" -> action = value
|
||||||
"suffix_str" -> suffix = value
|
"suffix_str" -> suffix = value
|
||||||
"action_img_url" -> actionImg = value
|
"action_img_url" -> actionImg = value
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
LogCenter.log("群戳一戳($groupCode): $operation $action $target $suffix")
|
LogCenter.log("群戳一戳($groupCode): $operation $action $target $suffix")
|
||||||
|
|
||||||
if(!GlobalEventTransmitter.GroupNoticeTransmitter
|
if (!GlobalEventTransmitter.GroupNoticeTransmitter
|
||||||
.transGroupPoke(time, operation.toLong(), target.toLong(), action, suffix, actionImg, groupCode)) {
|
.transGroupPoke(time, operation.toLong(), target.toLong(), action, suffix, actionImg, groupCode)
|
||||||
|
) {
|
||||||
LogCenter.log("群戳一戳推送失败!", Level.WARN)
|
LogCenter.log("群戳一戳推送失败!", Level.WARN)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -289,8 +307,9 @@ internal object PrimitiveListener {
|
|||||||
|
|
||||||
LogCenter.log("私聊消息撤回: $operation, seq = $msgSeq, hash = ${mapping.msgHashId}, tip = $tipText")
|
LogCenter.log("私聊消息撤回: $operation, seq = $msgSeq, hash = ${mapping.msgHashId}, tip = $tipText")
|
||||||
|
|
||||||
if(!GlobalEventTransmitter.PrivateNoticeTransmitter
|
if (!GlobalEventTransmitter.PrivateNoticeTransmitter
|
||||||
.transPrivateRecall(time, operation, mapping.msgHashId, tipText)) {
|
.transPrivateRecall(time, operation, mapping.msgHashId, tipText)
|
||||||
|
) {
|
||||||
LogCenter.log("私聊消息撤回推送失败!", Level.WARN)
|
LogCenter.log("私聊消息撤回推送失败!", Level.WARN)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -303,12 +322,15 @@ internal object PrimitiveListener {
|
|||||||
val target = ContactHelper.getUinByUidAsync(targetUid).toLong()
|
val target = ContactHelper.getUinByUidAsync(targetUid).toLong()
|
||||||
LogCenter.log("群成员增加($groupCode): $target, type = $type")
|
LogCenter.log("群成员增加($groupCode): $target, type = $type")
|
||||||
|
|
||||||
if(!GlobalEventTransmitter.GroupNoticeTransmitter
|
if (!GlobalEventTransmitter.GroupNoticeTransmitter
|
||||||
.transGroupMemberNumChanged(time, target, groupCode, operation, NoticeType.GroupMemIncrease, when(type) {
|
.transGroupMemberNumChanged(
|
||||||
130 -> NoticeSubType.Approve
|
time, target, groupCode, operation, NoticeType.GroupMemIncrease, when (type) {
|
||||||
131 -> NoticeSubType.Invite
|
130 -> NoticeSubType.Approve
|
||||||
else -> NoticeSubType.Approve
|
131 -> NoticeSubType.Invite
|
||||||
})) {
|
else -> NoticeSubType.Approve
|
||||||
|
}
|
||||||
|
)
|
||||||
|
) {
|
||||||
LogCenter.log("群成员增加推送失败!", Level.WARN)
|
LogCenter.log("群成员增加推送失败!", Level.WARN)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -320,7 +342,7 @@ internal object PrimitiveListener {
|
|||||||
val operation = ContactHelper.getUinByUidAsync(pb[1, 3, 2, 5].asUtf8String).toLong()
|
val operation = ContactHelper.getUinByUidAsync(pb[1, 3, 2, 5].asUtf8String).toLong()
|
||||||
|
|
||||||
val target = ContactHelper.getUinByUidAsync(targetUid).toLong()
|
val target = ContactHelper.getUinByUidAsync(targetUid).toLong()
|
||||||
val subtype = when(type) {
|
val subtype = when (type) {
|
||||||
130 -> NoticeSubType.Leave
|
130 -> NoticeSubType.Leave
|
||||||
131 -> NoticeSubType.Kick
|
131 -> NoticeSubType.Kick
|
||||||
3 -> NoticeSubType.KickMe
|
3 -> NoticeSubType.KickMe
|
||||||
@ -331,8 +353,9 @@ internal object PrimitiveListener {
|
|||||||
|
|
||||||
LogCenter.log("群成员减少($groupCode): $target, type = $subtype ($type)")
|
LogCenter.log("群成员减少($groupCode): $target, type = $subtype ($type)")
|
||||||
|
|
||||||
if(!GlobalEventTransmitter.GroupNoticeTransmitter
|
if (!GlobalEventTransmitter.GroupNoticeTransmitter
|
||||||
.transGroupMemberNumChanged(time, target, groupCode, operation, NoticeType.GroupMemDecrease, subtype)) {
|
.transGroupMemberNumChanged(time, target, groupCode, operation, NoticeType.GroupMemDecrease, subtype)
|
||||||
|
) {
|
||||||
LogCenter.log("群成员减少推送失败!", Level.WARN)
|
LogCenter.log("群成员减少推送失败!", Level.WARN)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -351,8 +374,9 @@ internal object PrimitiveListener {
|
|||||||
val target = ContactHelper.getUinByUidAsync(targetUid).toLong()
|
val target = ContactHelper.getUinByUidAsync(targetUid).toLong()
|
||||||
LogCenter.log("群管理员变动($groupCode): $target, isSetAdmin = $isSetAdmin")
|
LogCenter.log("群管理员变动($groupCode): $target, isSetAdmin = $isSetAdmin")
|
||||||
|
|
||||||
if(!GlobalEventTransmitter.GroupNoticeTransmitter
|
if (!GlobalEventTransmitter.GroupNoticeTransmitter
|
||||||
.transGroupAdminChanged(msgTime, target, groupCode, isSetAdmin)) {
|
.transGroupAdminChanged(msgTime, target, groupCode, isSetAdmin)
|
||||||
|
) {
|
||||||
LogCenter.log("群管理员变动推送失败!", Level.WARN)
|
LogCenter.log("群管理员变动推送失败!", Level.WARN)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -366,20 +390,21 @@ internal object PrimitiveListener {
|
|||||||
val target = ContactHelper.getUinByUidAsync(targetUid).toLong()
|
val target = ContactHelper.getUinByUidAsync(targetUid).toLong()
|
||||||
LogCenter.log("群禁言($groupCode): $operation -> $target, 时长 = ${duration}s")
|
LogCenter.log("群禁言($groupCode): $operation -> $target, 时长 = ${duration}s")
|
||||||
|
|
||||||
if(!GlobalEventTransmitter.GroupNoticeTransmitter
|
if (!GlobalEventTransmitter.GroupNoticeTransmitter
|
||||||
.transGroupBan(msgTime, operation, target, groupCode, duration)) {
|
.transGroupBan(msgTime, operation, target, groupCode, duration)
|
||||||
|
) {
|
||||||
LogCenter.log("群禁言推送失败!", Level.WARN)
|
LogCenter.log("群禁言推送失败!", Level.WARN)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private suspend fun onGroupRecall(time: Long, pb: ProtoMap) {
|
private suspend fun onGroupRecall(time: Long, pb: ProtoMap) {
|
||||||
val groupCode = pb[1, 1, 1].asULong
|
val groupCode = pb[1, 1, 1].asULong
|
||||||
val readPacket = ByteReadPacket( pb[1, 3, 2].asByteArray )
|
val readPacket = ByteReadPacket(pb[1, 3, 2].asByteArray)
|
||||||
try {
|
try {
|
||||||
/**
|
/**
|
||||||
* 真是不理解这个傻呗设计,有些群是正常的Protobuf,有些群要去掉7字节
|
* 真是不理解这个傻呗设计,有些群是正常的Protobuf,有些群要去掉7字节
|
||||||
*/
|
*/
|
||||||
val detail = if (readPacket.readUInt().toLong() == groupCode) {
|
val detail = if (readPacket.readBuf32Long() == groupCode) {
|
||||||
readPacket.discardExact(1)
|
readPacket.discardExact(1)
|
||||||
ProtoUtils.decodeFromByteArray(readPacket.readBytes(readPacket.readShort().toInt()))
|
ProtoUtils.decodeFromByteArray(readPacket.readBytes(readPacket.readShort().toInt()))
|
||||||
} else pb[1, 3, 2]
|
} else pb[1, 3, 2]
|
||||||
@ -398,8 +423,9 @@ internal object PrimitiveListener {
|
|||||||
val target = ContactHelper.getUinByUidAsync(targetUid).toLong()
|
val target = ContactHelper.getUinByUidAsync(targetUid).toLong()
|
||||||
LogCenter.log("群消息撤回($groupCode): $operator -> $target, seq = $msgSeq, hash = $msgHash, tip = $tipText")
|
LogCenter.log("群消息撤回($groupCode): $operator -> $target, seq = $msgSeq, hash = $msgHash, tip = $tipText")
|
||||||
|
|
||||||
if(!GlobalEventTransmitter.GroupNoticeTransmitter
|
if (!GlobalEventTransmitter.GroupNoticeTransmitter
|
||||||
.transGroupMsgRecall(time, operator, target, groupCode, msgHash, tipText)) {
|
.transGroupMsgRecall(time, operator, target, groupCode, msgHash, tipText)
|
||||||
|
) {
|
||||||
LogCenter.log("群消息撤回推送失败!", Level.WARN)
|
LogCenter.log("群消息撤回推送失败!", Level.WARN)
|
||||||
}
|
}
|
||||||
} finally {
|
} finally {
|
||||||
@ -408,7 +434,7 @@ internal object PrimitiveListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private suspend fun onGroupApply(time: Long, pb: ProtoMap) {
|
private suspend fun onGroupApply(time: Long, pb: ProtoMap) {
|
||||||
when(pb[1, 2, 1].asInt) {
|
when (pb[1, 2, 1].asInt) {
|
||||||
84 -> {
|
84 -> {
|
||||||
val groupCode = pb[1, 3, 2, 1].asULong
|
val groupCode = pb[1, 3, 2, 1].asULong
|
||||||
val applierUid = pb[1, 3, 2, 3].asUtf8String
|
val applierUid = pb[1, 3, 2, 3].asUtf8String
|
||||||
@ -428,11 +454,13 @@ internal object PrimitiveListener {
|
|||||||
} catch (err: Throwable) {
|
} catch (err: Throwable) {
|
||||||
"$time;$groupCode;$applier"
|
"$time;$groupCode;$applier"
|
||||||
}
|
}
|
||||||
if(!GlobalEventTransmitter.RequestTransmitter
|
if (!GlobalEventTransmitter.RequestTransmitter
|
||||||
.transGroupApply(time, applier, reason, groupCode, flag, RequestSubType.Add)) {
|
.transGroupApply(time, applier, reason, groupCode, flag, RequestSubType.Add)
|
||||||
|
) {
|
||||||
LogCenter.log("入群申请推送失败!", Level.WARN)
|
LogCenter.log("入群申请推送失败!", Level.WARN)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
528 -> {
|
528 -> {
|
||||||
val groupCode = pb[1, 3, 2, 2, 3].asULong
|
val groupCode = pb[1, 3, 2, 2, 3].asULong
|
||||||
val applierUid = pb[1, 3, 2, 2, 5].asUtf8String
|
val applierUid = pb[1, 3, 2, 2, 5].asUtf8String
|
||||||
@ -454,13 +482,15 @@ internal object PrimitiveListener {
|
|||||||
} catch (err: Throwable) {
|
} catch (err: Throwable) {
|
||||||
"$time;$groupCode;$applierUid"
|
"$time;$groupCode;$applierUid"
|
||||||
}
|
}
|
||||||
if(GlobalEventTransmitter.RequestTransmitter
|
if (GlobalEventTransmitter.RequestTransmitter
|
||||||
.transGroupApply(time, applier, "", groupCode, flag, RequestSubType.Add)) {
|
.transGroupApply(time, applier, "", groupCode, flag, RequestSubType.Add)
|
||||||
|
) {
|
||||||
LogCenter.log("邀请入群申请推送失败!", Level.WARN)
|
LogCenter.log("邀请入群申请推送失败!", Level.WARN)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private suspend fun onInviteGroup(time: Long, pb: ProtoMap) {
|
private suspend fun onInviteGroup(time: Long, pb: ProtoMap) {
|
||||||
val groupCode = pb[1, 3, 2, 1].asULong
|
val groupCode = pb[1, 3, 2, 1].asULong
|
||||||
val invitorUid = pb[1, 3, 2, 5].asUtf8String
|
val invitorUid = pb[1, 3, 2, 5].asUtf8String
|
||||||
@ -479,8 +509,9 @@ internal object PrimitiveListener {
|
|||||||
} catch (err: Throwable) {
|
} catch (err: Throwable) {
|
||||||
"$time;$groupCode;$uin"
|
"$time;$groupCode;$uin"
|
||||||
}
|
}
|
||||||
if(GlobalEventTransmitter.RequestTransmitter
|
if (GlobalEventTransmitter.RequestTransmitter
|
||||||
.transGroupApply(time, invitor, "", groupCode, flag, RequestSubType.Invite)) {
|
.transGroupApply(time, invitor, "", groupCode, flag, RequestSubType.Invite)
|
||||||
|
) {
|
||||||
LogCenter.log("邀请入群推送失败!", Level.WARN)
|
LogCenter.log("邀请入群推送失败!", Level.WARN)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user