mirror of
https://github.com/whitechi73/OpenShamrock.git
synced 2024-08-14 13:12:17 +08:00
fix #335
This commit is contained in:
parent
7ea127a279
commit
012ecaa85d
@ -23,6 +23,8 @@
|
|||||||
> Riru可能导致封禁,请减少使用。
|
> Riru可能导致封禁,请减少使用。
|
||||||
> 如有违反法律,请联系删除。
|
> 如有违反法律,请联系删除。
|
||||||
> 请勿在任何平台宣传,宣扬,转发本项目,请勿恶意修改企业安装包造成相关企业产生损失,如有违背,必将追责到底。
|
> 请勿在任何平台宣传,宣扬,转发本项目,请勿恶意修改企业安装包造成相关企业产生损失,如有违背,必将追责到底。
|
||||||
|
>
|
||||||
|
> 社区地址:[discord](https://discord.gg/MKR2wz863h)
|
||||||
|
|
||||||
## 兼容|迁移|替代 说明
|
## 兼容|迁移|替代 说明
|
||||||
|
|
||||||
|
@ -162,7 +162,7 @@ private fun FunctionCard(
|
|||||||
|
|
||||||
Function(
|
Function(
|
||||||
title = "主动RPC",
|
title = "主动RPC",
|
||||||
desc = "Kritor协议实现RPC",
|
desc = "Kritor协议实现RPC,由Shamrock放出rpc服务",
|
||||||
isSwitch = ShamrockConfig[ctx, ActiveRPC]
|
isSwitch = ShamrockConfig[ctx, ActiveRPC]
|
||||||
) {
|
) {
|
||||||
ShamrockConfig[ctx, ActiveRPC] = it
|
ShamrockConfig[ctx, ActiveRPC] = it
|
||||||
@ -171,7 +171,7 @@ private fun FunctionCard(
|
|||||||
|
|
||||||
Function(
|
Function(
|
||||||
title = "被动RPC",
|
title = "被动RPC",
|
||||||
desc = "Kritor协议实现RPC",
|
desc = "Kritor协议实现RPC,由客户端提供反向的rpc服务",
|
||||||
isSwitch = ShamrockConfig[ctx, PassiveRPC]
|
isSwitch = ShamrockConfig[ctx, PassiveRPC]
|
||||||
) {
|
) {
|
||||||
ShamrockConfig[ctx, PassiveRPC] = it
|
ShamrockConfig[ctx, PassiveRPC] = it
|
||||||
|
@ -8,7 +8,9 @@ import moe.fuqiuluo.symbols.Protobuf
|
|||||||
data class TrpcOidb(
|
data class TrpcOidb(
|
||||||
@ProtoNumber(1) val cmd: Int = Int.MIN_VALUE,
|
@ProtoNumber(1) val cmd: Int = Int.MIN_VALUE,
|
||||||
@ProtoNumber(2) val service: Int = Int.MIN_VALUE,
|
@ProtoNumber(2) val service: Int = Int.MIN_VALUE,
|
||||||
@ProtoNumber(4) val buffer: ByteArray,
|
@ProtoNumber(3) val result: UInt? = null,
|
||||||
|
@ProtoNumber(4) val buffer: ByteArray? = null,
|
||||||
|
@ProtoNumber(5) val msg: String? = null,
|
||||||
//@ProtoNumber(11) val traceParams: Map<String, String> = mapOf(),
|
//@ProtoNumber(11) val traceParams: Map<String, String> = mapOf(),
|
||||||
@ProtoNumber(12) val flag: Int = Int.MIN_VALUE,
|
@ProtoNumber(12) val flag: Int = Int.MIN_VALUE,
|
||||||
): Protobuf<TrpcOidb>
|
): Protobuf<TrpcOidb>
|
@ -156,8 +156,8 @@ internal object FriendService : FriendServiceGrpcKt.FriendServiceCoroutineImplBa
|
|||||||
val bundle = Bundle()
|
val bundle = Bundle()
|
||||||
val service = QQInterfaces.app
|
val service = QQInterfaces.app
|
||||||
.getRuntimeService(IProfileProtocolService::class.java, "all")
|
.getRuntimeService(IProfileProtocolService::class.java, "all")
|
||||||
if (request.hasNickName()) {
|
if (request.hasNick()) {
|
||||||
bundle.putString(IProfileProtocolConst.KEY_NICK, request.nickName)
|
bundle.putString(IProfileProtocolConst.KEY_NICK, request.nick)
|
||||||
}
|
}
|
||||||
if (request.hasCompany()) {
|
if (request.hasCompany()) {
|
||||||
bundle.putString(IProfileProtocolConst.KEY_COMPANY, request.company)
|
bundle.putString(IProfileProtocolConst.KEY_COMPANY, request.company)
|
||||||
|
@ -259,12 +259,12 @@ internal object GroupService : GroupServiceGrpcKt.GroupServiceCoroutineImplBase(
|
|||||||
.ifNullOrEmpty { memberInfo.friendnick } ?: ""
|
.ifNullOrEmpty { memberInfo.friendnick } ?: ""
|
||||||
age = memberInfo.age.toInt()
|
age = memberInfo.age.toInt()
|
||||||
uniqueTitle = memberInfo.mUniqueTitle ?: ""
|
uniqueTitle = memberInfo.mUniqueTitle ?: ""
|
||||||
uniqueTitleExpireTime = memberInfo.mUniqueTitleExpire
|
uniqueTitleExpireTime = memberInfo.mUniqueTitleExpire.toLong()
|
||||||
card = memberInfo.troopnick.ifNullOrEmpty { memberInfo.friendnick } ?: ""
|
card = memberInfo.troopnick.ifNullOrEmpty { memberInfo.friendnick } ?: ""
|
||||||
joinTime = memberInfo.join_time
|
joinTime = memberInfo.join_time
|
||||||
lastActiveTime = memberInfo.last_active_time
|
lastActiveTime = memberInfo.last_active_time
|
||||||
level = memberInfo.level
|
level = memberInfo.level
|
||||||
shutUpTimestamp = memberInfo.gagTimeStamp
|
shutUpTime = memberInfo.gagTimeStamp
|
||||||
|
|
||||||
distance = memberInfo.distance
|
distance = memberInfo.distance
|
||||||
addAllHonors((memberInfo.honorList ?: "")
|
addAllHonors((memberInfo.honorList ?: "")
|
||||||
@ -295,12 +295,12 @@ internal object GroupService : GroupServiceGrpcKt.GroupServiceCoroutineImplBase(
|
|||||||
nick = memberInfo.nick ?: ""
|
nick = memberInfo.nick ?: ""
|
||||||
age = 0
|
age = 0
|
||||||
uniqueTitle = memberInfo.memberSpecialTitle ?: ""
|
uniqueTitle = memberInfo.memberSpecialTitle ?: ""
|
||||||
uniqueTitleExpireTime = memberInfo.specialTitleExpireTime.toInt()
|
uniqueTitleExpireTime = memberInfo.specialTitleExpireTime
|
||||||
card = memberInfo.cardName.ifNullOrEmpty { memberInfo.nick } ?: ""
|
card = memberInfo.cardName.ifNullOrEmpty { memberInfo.nick } ?: ""
|
||||||
joinTime = memberInfo.joinTime.toLong()
|
joinTime = memberInfo.joinTime.toLong()
|
||||||
lastActiveTime = memberInfo.lastSpeakTime.toLong()
|
lastActiveTime = memberInfo.lastSpeakTime.toLong()
|
||||||
level = memberInfo.memberLevel
|
level = memberInfo.memberLevel
|
||||||
shutUpTimestamp = memberInfo.shutUpTime.toLong()
|
shutUpTime = memberInfo.shutUpTime.toLong()
|
||||||
|
|
||||||
distance = 0
|
distance = 0
|
||||||
addAllHonors(memberInfo.groupHonor.let { bytes ->
|
addAllHonors(memberInfo.groupHonor.let { bytes ->
|
||||||
@ -327,7 +327,7 @@ internal object GroupService : GroupServiceGrpcKt.GroupServiceCoroutineImplBase(
|
|||||||
this.addProhibitedUsersInfo(ProhibitedUserInfo.newBuilder().apply {
|
this.addProhibitedUsersInfo(ProhibitedUserInfo.newBuilder().apply {
|
||||||
uid = ContactHelper.getUidByUinAsync(it.memberUin)
|
uid = ContactHelper.getUidByUinAsync(it.memberUin)
|
||||||
uin = it.memberUin
|
uin = it.memberUin
|
||||||
prohibitedTime = it.shutuptimestap
|
prohibitedTime = it.shutuptimestap.toLong()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}.build()
|
}.build()
|
||||||
@ -360,7 +360,7 @@ internal object GroupService : GroupServiceGrpcKt.GroupServiceCoroutineImplBase(
|
|||||||
maxMemberCount = groupInfo.maxMember
|
maxMemberCount = groupInfo.maxMember
|
||||||
memberCount = groupInfo.memberCount
|
memberCount = groupInfo.memberCount
|
||||||
groupDesc = groupInfo.groupDesc
|
groupDesc = groupInfo.groupDesc
|
||||||
createTime = groupInfo.createTime.toInt()
|
createTime = groupInfo.createTime
|
||||||
groupFlag = groupInfo.groupFlag
|
groupFlag = groupInfo.groupFlag
|
||||||
groupFlagExt = groupInfo.groupFlagExt
|
groupFlagExt = groupInfo.groupFlagExt
|
||||||
}.build()
|
}.build()
|
||||||
|
@ -315,7 +315,7 @@ internal object MessageService : MessageServiceGrpcKt.MessageServiceCoroutineImp
|
|||||||
throw StatusRuntimeException(Status.INTERNAL.withCause(it))
|
throw StatusRuntimeException(Status.INTERNAL.withCause(it))
|
||||||
}.getOrThrow().map { detail ->
|
}.getOrThrow().map { detail ->
|
||||||
PushMessageBody.newBuilder().apply {
|
PushMessageBody.newBuilder().apply {
|
||||||
this.time = detail.time
|
this.time = detail.time.toLong()
|
||||||
this.messageId = detail.qqMsgId.toString()
|
this.messageId = detail.qqMsgId.toString()
|
||||||
this.messageSeq = detail.msgSeq
|
this.messageSeq = detail.msgSeq
|
||||||
this.contact = io.kritor.common.Contact.newBuilder().apply {
|
this.contact = io.kritor.common.Contact.newBuilder().apply {
|
||||||
@ -398,10 +398,10 @@ internal object MessageService : MessageServiceGrpcKt.MessageServiceCoroutineImp
|
|||||||
this.messageId = it.msgId.toString()
|
this.messageId = it.msgId.toString()
|
||||||
}
|
}
|
||||||
this.messageSeq = it.messageSeq
|
this.messageSeq = it.messageSeq
|
||||||
this.messageTime = it.senderTime.toInt()
|
this.messageTime = it.senderTime
|
||||||
this.senderNick = it.senderNick
|
this.senderNick = it.senderNick
|
||||||
this.senderUin = it.senderId
|
this.senderUin = it.senderId
|
||||||
this.operationTime = it.operatorTime.toInt()
|
this.operationTime = it.operatorTime
|
||||||
this.operatorNick = it.operatorNick
|
this.operatorNick = it.operatorNick
|
||||||
this.operatorUin = it.operatorId
|
this.operatorUin = it.operatorId
|
||||||
this.jsonElements = it.messageContent.toString()
|
this.jsonElements = it.messageContent.toString()
|
||||||
|
@ -42,7 +42,7 @@ internal object GlobalEventTransmitter : QQInterfaces() {
|
|||||||
elements: ArrayList<MsgElement>,
|
elements: ArrayList<MsgElement>,
|
||||||
): Boolean {
|
): Boolean {
|
||||||
transMessageEvent(record, PushMessageBody.newBuilder().apply {
|
transMessageEvent(record, PushMessageBody.newBuilder().apply {
|
||||||
this.time = record.msgTime.toInt()
|
this.time = record.msgTime
|
||||||
this.messageId = record.msgId.toString()
|
this.messageId = record.msgId.toString()
|
||||||
this.messageSeq = record.msgSeq
|
this.messageSeq = record.msgSeq
|
||||||
this.contact = Contact.newBuilder().apply {
|
this.contact = Contact.newBuilder().apply {
|
||||||
@ -65,7 +65,7 @@ internal object GlobalEventTransmitter : QQInterfaces() {
|
|||||||
elements: ArrayList<MsgElement>,
|
elements: ArrayList<MsgElement>,
|
||||||
): Boolean {
|
): Boolean {
|
||||||
transMessageEvent(record, PushMessageBody.newBuilder().apply {
|
transMessageEvent(record, PushMessageBody.newBuilder().apply {
|
||||||
this.time = record.msgTime.toInt()
|
this.time = record.msgTime
|
||||||
this.messageId = record.msgId.toString()
|
this.messageId = record.msgId.toString()
|
||||||
this.messageSeq = record.msgSeq
|
this.messageSeq = record.msgSeq
|
||||||
this.contact = Contact.newBuilder().apply {
|
this.contact = Contact.newBuilder().apply {
|
||||||
@ -90,7 +90,7 @@ internal object GlobalEventTransmitter : QQInterfaces() {
|
|||||||
fromNick: String,
|
fromNick: String,
|
||||||
): Boolean {
|
): Boolean {
|
||||||
transMessageEvent(record, PushMessageBody.newBuilder().apply {
|
transMessageEvent(record, PushMessageBody.newBuilder().apply {
|
||||||
this.time = record.msgTime.toInt()
|
this.time = record.msgTime
|
||||||
this.messageId = record.msgId.toString()
|
this.messageId = record.msgId.toString()
|
||||||
this.messageSeq = record.msgSeq
|
this.messageSeq = record.msgSeq
|
||||||
this.contact = Contact.newBuilder().apply {
|
this.contact = Contact.newBuilder().apply {
|
||||||
@ -113,7 +113,7 @@ internal object GlobalEventTransmitter : QQInterfaces() {
|
|||||||
elements: ArrayList<MsgElement>,
|
elements: ArrayList<MsgElement>,
|
||||||
): Boolean {
|
): Boolean {
|
||||||
transMessageEvent(record, PushMessageBody.newBuilder().apply {
|
transMessageEvent(record, PushMessageBody.newBuilder().apply {
|
||||||
this.time = record.msgTime.toInt()
|
this.time = record.msgTime
|
||||||
this.messageId = record.msgId.toString()
|
this.messageId = record.msgId.toString()
|
||||||
this.messageSeq = record.msgSeq
|
this.messageSeq = record.msgSeq
|
||||||
this.contact = Contact.newBuilder().apply {
|
this.contact = Contact.newBuilder().apply {
|
||||||
@ -152,16 +152,16 @@ internal object GlobalEventTransmitter : QQInterfaces() {
|
|||||||
): Boolean {
|
): Boolean {
|
||||||
pushNotice(NoticeEvent.newBuilder().apply {
|
pushNotice(NoticeEvent.newBuilder().apply {
|
||||||
this.type = NoticeEvent.NoticeType.PRIVATE_FILE_UPLOADED
|
this.type = NoticeEvent.NoticeType.PRIVATE_FILE_UPLOADED
|
||||||
this.time = msgTime.toInt()
|
this.time = msgTime
|
||||||
this.privateFileUploaded = PrivateFileUploadedNotice.newBuilder().apply {
|
this.privateFileUploaded = PrivateFileUploadedNotice.newBuilder().apply {
|
||||||
this.fileId = fileId
|
this.fileId = fileId
|
||||||
this.fileName = fileName
|
this.fileName = fileName
|
||||||
this.operatorUid = senderUid
|
this.operatorUid = senderUid
|
||||||
this.operatorUin = senderUin
|
this.operatorUin = senderUin
|
||||||
this.fileSize = fileSize
|
this.fileSize = fileSize
|
||||||
this.expireTime = expireTime.toInt()
|
this.expireTime = expireTime
|
||||||
this.fileSubId = fileSubId
|
this.fileSubId = fileSubId.toInt() // todo(这玩意真的是一个数字?)
|
||||||
this.url = url
|
this.fileUrl = url
|
||||||
}.build()
|
}.build()
|
||||||
}.build())
|
}.build())
|
||||||
return true
|
return true
|
||||||
@ -183,7 +183,7 @@ internal object GlobalEventTransmitter : QQInterfaces() {
|
|||||||
): Boolean {
|
): Boolean {
|
||||||
pushNotice(NoticeEvent.newBuilder().apply {
|
pushNotice(NoticeEvent.newBuilder().apply {
|
||||||
this.type = NoticeEvent.NoticeType.GROUP_FILE_UPLOADED
|
this.type = NoticeEvent.NoticeType.GROUP_FILE_UPLOADED
|
||||||
this.time = msgTime.toInt()
|
this.time = msgTime
|
||||||
this.groupFileUploaded = GroupFileUploadedNotice.newBuilder().apply {
|
this.groupFileUploaded = GroupFileUploadedNotice.newBuilder().apply {
|
||||||
this.groupId = groupId
|
this.groupId = groupId
|
||||||
this.operatorUid = senderUid
|
this.operatorUid = senderUid
|
||||||
@ -191,7 +191,7 @@ internal object GlobalEventTransmitter : QQInterfaces() {
|
|||||||
this.fileId = uuid
|
this.fileId = uuid
|
||||||
this.fileName = fileName
|
this.fileName = fileName
|
||||||
this.fileSize = fileSize
|
this.fileSize = fileSize
|
||||||
this.busId = bizId
|
this.fileSubId = bizId
|
||||||
this.fileUrl = url
|
this.fileUrl = url
|
||||||
}.build()
|
}.build()
|
||||||
}.build())
|
}.build())
|
||||||
@ -212,7 +212,7 @@ internal object GlobalEventTransmitter : QQInterfaces() {
|
|||||||
): Boolean {
|
): Boolean {
|
||||||
pushNotice(NoticeEvent.newBuilder().apply {
|
pushNotice(NoticeEvent.newBuilder().apply {
|
||||||
this.type = NoticeEvent.NoticeType.GROUP_SIGN_IN
|
this.type = NoticeEvent.NoticeType.GROUP_SIGN_IN
|
||||||
this.time = time.toInt()
|
this.time = time
|
||||||
this.groupSignIn = GroupSignInNotice.newBuilder().apply {
|
this.groupSignIn = GroupSignInNotice.newBuilder().apply {
|
||||||
this.groupId = groupCode
|
this.groupId = groupCode
|
||||||
this.targetUid = ContactHelper.getUidByUinAsync(target)
|
this.targetUid = ContactHelper.getUidByUinAsync(target)
|
||||||
@ -235,7 +235,7 @@ internal object GlobalEventTransmitter : QQInterfaces() {
|
|||||||
): Boolean {
|
): Boolean {
|
||||||
pushNotice(NoticeEvent.newBuilder().apply {
|
pushNotice(NoticeEvent.newBuilder().apply {
|
||||||
this.type = NoticeEvent.NoticeType.GROUP_POKE
|
this.type = NoticeEvent.NoticeType.GROUP_POKE
|
||||||
this.time = time.toInt()
|
this.time = time
|
||||||
this.groupPoke = GroupPokeNotice.newBuilder().apply {
|
this.groupPoke = GroupPokeNotice.newBuilder().apply {
|
||||||
this.groupId = groupCode
|
this.groupId = groupCode
|
||||||
this.action = action
|
this.action = action
|
||||||
@ -261,7 +261,7 @@ internal object GlobalEventTransmitter : QQInterfaces() {
|
|||||||
): Boolean {
|
): Boolean {
|
||||||
pushNotice(NoticeEvent.newBuilder().apply {
|
pushNotice(NoticeEvent.newBuilder().apply {
|
||||||
this.type = NoticeEvent.NoticeType.GROUP_MEMBER_INCREASE
|
this.type = NoticeEvent.NoticeType.GROUP_MEMBER_INCREASE
|
||||||
this.time = time.toInt()
|
this.time = time
|
||||||
this.groupMemberIncrease = GroupMemberIncreasedNotice.newBuilder().apply {
|
this.groupMemberIncrease = GroupMemberIncreasedNotice.newBuilder().apply {
|
||||||
this.groupId = groupCode
|
this.groupId = groupCode
|
||||||
this.operatorUid = operatorUid
|
this.operatorUid = operatorUid
|
||||||
@ -285,7 +285,7 @@ internal object GlobalEventTransmitter : QQInterfaces() {
|
|||||||
): Boolean {
|
): Boolean {
|
||||||
pushNotice(NoticeEvent.newBuilder().apply {
|
pushNotice(NoticeEvent.newBuilder().apply {
|
||||||
this.type = NoticeEvent.NoticeType.GROUP_MEMBER_DECREASE
|
this.type = NoticeEvent.NoticeType.GROUP_MEMBER_DECREASE
|
||||||
this.time = time.toInt()
|
this.time = time
|
||||||
this.groupMemberDecrease = GroupMemberDecreasedNotice.newBuilder().apply {
|
this.groupMemberDecrease = GroupMemberDecreasedNotice.newBuilder().apply {
|
||||||
this.groupId = groupCode
|
this.groupId = groupCode
|
||||||
this.operatorUid = operatorUid
|
this.operatorUid = operatorUid
|
||||||
@ -307,7 +307,7 @@ internal object GlobalEventTransmitter : QQInterfaces() {
|
|||||||
): Boolean {
|
): Boolean {
|
||||||
pushNotice(NoticeEvent.newBuilder().apply {
|
pushNotice(NoticeEvent.newBuilder().apply {
|
||||||
this.type = NoticeEvent.NoticeType.GROUP_ADMIN_CHANGED
|
this.type = NoticeEvent.NoticeType.GROUP_ADMIN_CHANGED
|
||||||
this.time = msgTime.toInt()
|
this.time = msgTime
|
||||||
this.groupAdminChanged = GroupAdminChangedNotice.newBuilder().apply {
|
this.groupAdminChanged = GroupAdminChangedNotice.newBuilder().apply {
|
||||||
this.groupId = groupCode
|
this.groupId = groupCode
|
||||||
this.targetUid = targetUid
|
this.targetUid = targetUid
|
||||||
@ -327,7 +327,7 @@ internal object GlobalEventTransmitter : QQInterfaces() {
|
|||||||
): Boolean {
|
): Boolean {
|
||||||
pushNotice(NoticeEvent.newBuilder().apply {
|
pushNotice(NoticeEvent.newBuilder().apply {
|
||||||
this.type = NoticeEvent.NoticeType.GROUP_WHOLE_BAN
|
this.type = NoticeEvent.NoticeType.GROUP_WHOLE_BAN
|
||||||
this.time = msgTime.toInt()
|
this.time = msgTime
|
||||||
this.groupWholeBan = GroupWholeBanNotice.newBuilder().apply {
|
this.groupWholeBan = GroupWholeBanNotice.newBuilder().apply {
|
||||||
this.groupId = groupCode
|
this.groupId = groupCode
|
||||||
this.isBan = isOpen
|
this.isBan = isOpen
|
||||||
@ -349,7 +349,7 @@ internal object GlobalEventTransmitter : QQInterfaces() {
|
|||||||
): Boolean {
|
): Boolean {
|
||||||
pushNotice(NoticeEvent.newBuilder().apply {
|
pushNotice(NoticeEvent.newBuilder().apply {
|
||||||
this.type = NoticeEvent.NoticeType.GROUP_MEMBER_BAN
|
this.type = NoticeEvent.NoticeType.GROUP_MEMBER_BAN
|
||||||
this.time = msgTime.toInt()
|
this.time = msgTime
|
||||||
this.groupMemberBan = GroupMemberBanNotice.newBuilder().apply {
|
this.groupMemberBan = GroupMemberBanNotice.newBuilder().apply {
|
||||||
this.groupId = groupCode
|
this.groupId = groupCode
|
||||||
this.operatorUid = operatorUid
|
this.operatorUid = operatorUid
|
||||||
@ -376,7 +376,7 @@ internal object GlobalEventTransmitter : QQInterfaces() {
|
|||||||
): Boolean {
|
): Boolean {
|
||||||
pushNotice(NoticeEvent.newBuilder().apply {
|
pushNotice(NoticeEvent.newBuilder().apply {
|
||||||
this.type = NoticeEvent.NoticeType.GROUP_RECALL
|
this.type = NoticeEvent.NoticeType.GROUP_RECALL
|
||||||
this.time = time.toInt()
|
this.time = time
|
||||||
this.groupRecall = GroupRecallNotice.newBuilder().apply {
|
this.groupRecall = GroupRecallNotice.newBuilder().apply {
|
||||||
this.groupId = groupCode
|
this.groupId = groupCode
|
||||||
this.operatorUid = operatorUid
|
this.operatorUid = operatorUid
|
||||||
@ -398,7 +398,7 @@ internal object GlobalEventTransmitter : QQInterfaces() {
|
|||||||
): Boolean {
|
): Boolean {
|
||||||
pushNotice(NoticeEvent.newBuilder().apply {
|
pushNotice(NoticeEvent.newBuilder().apply {
|
||||||
this.type = NoticeEvent.NoticeType.GROUP_CARD_CHANGED
|
this.type = NoticeEvent.NoticeType.GROUP_CARD_CHANGED
|
||||||
this.time = time.toInt()
|
this.time = time
|
||||||
this.groupCardChanged = GroupCardChangedNotice.newBuilder().apply {
|
this.groupCardChanged = GroupCardChangedNotice.newBuilder().apply {
|
||||||
this.groupId = groupId
|
this.groupId = groupId
|
||||||
this.targetUin = targetId
|
this.targetUin = targetId
|
||||||
@ -416,7 +416,7 @@ internal object GlobalEventTransmitter : QQInterfaces() {
|
|||||||
): Boolean {
|
): Boolean {
|
||||||
pushNotice(NoticeEvent.newBuilder().apply {
|
pushNotice(NoticeEvent.newBuilder().apply {
|
||||||
this.type = NoticeEvent.NoticeType.GROUP_MEMBER_UNIQUE_TITLE_CHANGED
|
this.type = NoticeEvent.NoticeType.GROUP_MEMBER_UNIQUE_TITLE_CHANGED
|
||||||
this.time = time.toInt()
|
this.time = time
|
||||||
this.groupMemberUniqueTitleChanged = GroupUniqueTitleChangedNotice.newBuilder().apply {
|
this.groupMemberUniqueTitleChanged = GroupUniqueTitleChangedNotice.newBuilder().apply {
|
||||||
this.groupId = groupId
|
this.groupId = groupId
|
||||||
this.targetUid = ContactHelper.getUidByUinAsync(targetUin)
|
this.targetUid = ContactHelper.getUidByUinAsync(targetUin)
|
||||||
@ -437,7 +437,7 @@ internal object GlobalEventTransmitter : QQInterfaces() {
|
|||||||
): Boolean {
|
): Boolean {
|
||||||
pushNotice(NoticeEvent.newBuilder().apply {
|
pushNotice(NoticeEvent.newBuilder().apply {
|
||||||
this.type = NoticeEvent.NoticeType.GROUP_ESSENCE_CHANGED
|
this.type = NoticeEvent.NoticeType.GROUP_ESSENCE_CHANGED
|
||||||
this.time = time.toInt()
|
this.time = time
|
||||||
this.groupEssenceChanged = GroupEssenceMessageNotice.newBuilder().apply {
|
this.groupEssenceChanged = GroupEssenceMessageNotice.newBuilder().apply {
|
||||||
this.groupId = groupId
|
this.groupId = groupId
|
||||||
this.messageId = msgId.toString()
|
this.messageId = msgId.toString()
|
||||||
@ -465,7 +465,7 @@ internal object GlobalEventTransmitter : QQInterfaces() {
|
|||||||
): Boolean {
|
): Boolean {
|
||||||
pushNotice(NoticeEvent.newBuilder().apply {
|
pushNotice(NoticeEvent.newBuilder().apply {
|
||||||
this.type = NoticeEvent.NoticeType.PRIVATE_POKE
|
this.type = NoticeEvent.NoticeType.PRIVATE_POKE
|
||||||
this.time = msgTime.toInt()
|
this.time = msgTime
|
||||||
this.privatePoke = PrivatePokeNotice.newBuilder().apply {
|
this.privatePoke = PrivatePokeNotice.newBuilder().apply {
|
||||||
this.action = action ?: ""
|
this.action = action ?: ""
|
||||||
this.operatorUid = ContactHelper.getUidByUinAsync(operator)
|
this.operatorUid = ContactHelper.getUidByUinAsync(operator)
|
||||||
@ -480,7 +480,7 @@ internal object GlobalEventTransmitter : QQInterfaces() {
|
|||||||
suspend fun transPrivateRecall(time: Long, operator: Long, msgId: Long, tipText: String): Boolean {
|
suspend fun transPrivateRecall(time: Long, operator: Long, msgId: Long, tipText: String): Boolean {
|
||||||
pushNotice(NoticeEvent.newBuilder().apply {
|
pushNotice(NoticeEvent.newBuilder().apply {
|
||||||
this.type = NoticeEvent.NoticeType.PRIVATE_RECALL
|
this.type = NoticeEvent.NoticeType.PRIVATE_RECALL
|
||||||
this.time = time.toInt()
|
this.time = time
|
||||||
this.privateRecall = PrivateRecallNotice.newBuilder().apply {
|
this.privateRecall = PrivateRecallNotice.newBuilder().apply {
|
||||||
this.operatorUin = operator
|
this.operatorUin = operator
|
||||||
this.messageId = msgId.toString()
|
this.messageId = msgId.toString()
|
||||||
@ -499,7 +499,7 @@ internal object GlobalEventTransmitter : QQInterfaces() {
|
|||||||
suspend fun transFriendApp(time: Long, applierUid: String, operator: Long, tipText: String, flag: String): Boolean {
|
suspend fun transFriendApp(time: Long, applierUid: String, operator: Long, tipText: String, flag: String): Boolean {
|
||||||
pushRequest(RequestEvent.newBuilder().apply {
|
pushRequest(RequestEvent.newBuilder().apply {
|
||||||
this.type = RequestEvent.RequestType.FRIEND_APPLY
|
this.type = RequestEvent.RequestType.FRIEND_APPLY
|
||||||
this.time = time.toInt()
|
this.time = time
|
||||||
this.requestId = flag
|
this.requestId = flag
|
||||||
this.friendApply = FriendApplyRequest.newBuilder().apply {
|
this.friendApply = FriendApplyRequest.newBuilder().apply {
|
||||||
this.applierUid = applierUid
|
this.applierUid = applierUid
|
||||||
@ -520,7 +520,7 @@ internal object GlobalEventTransmitter : QQInterfaces() {
|
|||||||
): Boolean {
|
): Boolean {
|
||||||
pushRequest(RequestEvent.newBuilder().apply {
|
pushRequest(RequestEvent.newBuilder().apply {
|
||||||
this.type = RequestEvent.RequestType.GROUP_APPLY
|
this.type = RequestEvent.RequestType.GROUP_APPLY
|
||||||
this.time = time.toInt()
|
this.time = time
|
||||||
this.requestId = flag
|
this.requestId = flag
|
||||||
this.groupApply = GroupApplyRequest.newBuilder().apply {
|
this.groupApply = GroupApplyRequest.newBuilder().apply {
|
||||||
this.applierUid = applierUid
|
this.applierUid = applierUid
|
||||||
@ -541,7 +541,7 @@ internal object GlobalEventTransmitter : QQInterfaces() {
|
|||||||
): Boolean {
|
): Boolean {
|
||||||
pushRequest(RequestEvent.newBuilder().apply {
|
pushRequest(RequestEvent.newBuilder().apply {
|
||||||
this.type = RequestEvent.RequestType.GROUP_APPLY
|
this.type = RequestEvent.RequestType.GROUP_APPLY
|
||||||
this.time = time.toInt()
|
this.time = time
|
||||||
this.requestId = flag
|
this.requestId = flag
|
||||||
this.invitedGroup = InvitedJoinGroupRequest.newBuilder().apply {
|
this.invitedGroup = InvitedJoinGroupRequest.newBuilder().apply {
|
||||||
this.inviterUid = inviterUid
|
this.inviterUid = inviterUid
|
||||||
|
@ -355,7 +355,16 @@ internal object NtV2RichMediaSvc: QQInterfaces() {
|
|||||||
if (fromServiceMsg == null || fromServiceMsg.wupBuffer == null) {
|
if (fromServiceMsg == null || fromServiceMsg.wupBuffer == null) {
|
||||||
return Result.failure(Exception("unable to get multimedia pic info: ${fromServiceMsg?.wupBuffer}"))
|
return Result.failure(Exception("unable to get multimedia pic info: ${fromServiceMsg?.wupBuffer}"))
|
||||||
}
|
}
|
||||||
fromServiceMsg.wupBuffer.decodeProtobuf<TrpcOidb>().buffer.decodeProtobuf<NtV2RichMediaRsp>().download?.rkeyParam?.let {
|
val trpc = kotlin.runCatching {
|
||||||
|
fromServiceMsg.wupBuffer.decodeProtobuf<TrpcOidb>()
|
||||||
|
}.getOrElse {
|
||||||
|
fromServiceMsg.wupBuffer.slice(4).decodeProtobuf<TrpcOidb>()
|
||||||
|
}
|
||||||
|
if (trpc.buffer == null) {
|
||||||
|
return Result.failure(Exception("unable to get multimedia pic info: ${trpc.msg}"))
|
||||||
|
}
|
||||||
|
|
||||||
|
trpc.buffer?.decodeProtobuf<NtV2RichMediaRsp>()?.download?.rkeyParam?.let {
|
||||||
return Result.success(it)
|
return Result.success(it)
|
||||||
}
|
}
|
||||||
}.onFailure {
|
}.onFailure {
|
||||||
@ -448,8 +457,15 @@ internal object NtV2RichMediaSvc: QQInterfaces() {
|
|||||||
if (fromServiceMsg == null || fromServiceMsg.wupBuffer == null) {
|
if (fromServiceMsg == null || fromServiceMsg.wupBuffer == null) {
|
||||||
return Result.failure(Exception("unable to request upload nt pic"))
|
return Result.failure(Exception("unable to request upload nt pic"))
|
||||||
}
|
}
|
||||||
val rspBuffer = fromServiceMsg.wupBuffer.decodeProtobuf<TrpcOidb>().buffer
|
val trpc = kotlin.runCatching {
|
||||||
val rsp = rspBuffer.decodeProtobuf<NtV2RichMediaRsp>()
|
fromServiceMsg.wupBuffer.decodeProtobuf<TrpcOidb>()
|
||||||
|
}.getOrElse {
|
||||||
|
fromServiceMsg.wupBuffer.slice(4).decodeProtobuf<TrpcOidb>()
|
||||||
|
}
|
||||||
|
if (trpc.buffer == null) {
|
||||||
|
return Result.failure(Exception("unable to request upload nt pic: ${trpc.msg}"))
|
||||||
|
}
|
||||||
|
val rsp = trpc.buffer!!.decodeProtobuf<NtV2RichMediaRsp>()
|
||||||
if (rsp.upload == null) {
|
if (rsp.upload == null) {
|
||||||
return Result.failure(Exception("unable to request upload nt pic: ${rsp.head}"))
|
return Result.failure(Exception("unable to request upload nt pic: ${rsp.head}"))
|
||||||
}
|
}
|
||||||
|
@ -116,9 +116,9 @@ internal object GroupFileHelper: QQInterfaces() {
|
|||||||
this.fileName = fileInfo.str_file_name.get()
|
this.fileName = fileInfo.str_file_name.get()
|
||||||
this.fileSize = fileInfo.uint64_file_size.get()
|
this.fileSize = fileInfo.uint64_file_size.get()
|
||||||
this.busId = fileInfo.uint32_bus_id.get()
|
this.busId = fileInfo.uint32_bus_id.get()
|
||||||
this.uploadTime = fileInfo.uint32_upload_time.get()
|
this.uploadTime = fileInfo.uint32_upload_time.get().toLong()
|
||||||
this.expireTime = fileInfo.uint32_dead_time.get()
|
this.expireTime = fileInfo.uint32_dead_time.get().toLong()
|
||||||
this.modifyTime = fileInfo.uint32_modify_time.get()
|
this.modifyTime = fileInfo.uint32_modify_time.get().toLong()
|
||||||
this.downloadTimes = fileInfo.uint32_download_times.get()
|
this.downloadTimes = fileInfo.uint32_download_times.get()
|
||||||
this.uploader = fileInfo.uint64_uploader_uin.get()
|
this.uploader = fileInfo.uint64_uploader_uin.get()
|
||||||
this.uploaderName = fileInfo.str_uploader_name.get()
|
this.uploaderName = fileInfo.str_uploader_name.get()
|
||||||
@ -133,7 +133,7 @@ internal object GroupFileHelper: QQInterfaces() {
|
|||||||
this.folderId = folderInfo.str_folder_id.get()
|
this.folderId = folderInfo.str_folder_id.get()
|
||||||
this.folderName = folderInfo.str_folder_name.get()
|
this.folderName = folderInfo.str_folder_name.get()
|
||||||
this.totalFileCount = folderInfo.uint32_total_file_count.get()
|
this.totalFileCount = folderInfo.uint32_total_file_count.get()
|
||||||
this.createTime = folderInfo.uint32_create_time.get()
|
this.createTime = folderInfo.uint32_create_time.get().toLong()
|
||||||
this.creator = folderInfo.uint64_create_uin.get()
|
this.creator = folderInfo.uint64_create_uin.get()
|
||||||
this.creatorName = folderInfo.str_creator_name.get()
|
this.creatorName = folderInfo.str_creator_name.get()
|
||||||
}.build())
|
}.build())
|
||||||
|
@ -78,7 +78,7 @@ private object MsgConvertor {
|
|||||||
elem.type = ElementType.POKE
|
elem.type = ElementType.POKE
|
||||||
elem.setPoke(PokeElement.newBuilder().apply {
|
elem.setPoke(PokeElement.newBuilder().apply {
|
||||||
this.id = face.vaspokeId
|
this.id = face.vaspokeId
|
||||||
this.type = face.pokeType
|
this.pokeType = face.pokeType
|
||||||
this.strength = face.pokeStrength
|
this.strength = face.pokeStrength
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
@ -195,7 +195,7 @@ private object MsgConvertor {
|
|||||||
|
|
||||||
else -> throw UnsupportedOperationException("Not supported chat type: ${record.chatType}")
|
else -> throw UnsupportedOperationException("Not supported chat type: ${record.chatType}")
|
||||||
}
|
}
|
||||||
this.type =
|
this.fileType =
|
||||||
if (image.isFlashPic == true) ImageElement.ImageType.FLASH else if (image.original) ImageElement.ImageType.ORIGIN else ImageElement.ImageType.COMMON
|
if (image.isFlashPic == true) ImageElement.ImageType.FLASH else if (image.original) ImageElement.ImageType.ORIGIN else ImageElement.ImageType.COMMON
|
||||||
this.subType = image.picSubType
|
this.subType = image.picSubType
|
||||||
})
|
})
|
||||||
|
@ -65,7 +65,7 @@ suspend fun List<Elem>.toKritorResponseMessages(contact: Contact): ArrayList<Ele
|
|||||||
this.type = ElementType.IMAGE
|
this.type = ElementType.IMAGE
|
||||||
this.image = ImageElement.newBuilder().apply {
|
this.image = ImageElement.newBuilder().apply {
|
||||||
this.fileMd5 = md5
|
this.fileMd5 = md5
|
||||||
this.type = if (customFace.origin == true) ImageType.ORIGIN else ImageType.COMMON
|
this.fileType = if (customFace.origin == true) ImageType.ORIGIN else ImageType.COMMON
|
||||||
this.fileUrl = when (contact.chatType) {
|
this.fileUrl = when (contact.chatType) {
|
||||||
MsgConstant.KCHATTYPEDISC, MsgConstant.KCHATTYPEGROUP -> RichProtoSvc.getGroupPicDownUrl(
|
MsgConstant.KCHATTYPEDISC, MsgConstant.KCHATTYPEGROUP -> RichProtoSvc.getGroupPicDownUrl(
|
||||||
origUrl,
|
origUrl,
|
||||||
@ -85,7 +85,7 @@ suspend fun List<Elem>.toKritorResponseMessages(contact: Contact): ArrayList<Ele
|
|||||||
this.type = ElementType.IMAGE
|
this.type = ElementType.IMAGE
|
||||||
this.image = ImageElement.newBuilder().apply {
|
this.image = ImageElement.newBuilder().apply {
|
||||||
this.fileMd5 = md5
|
this.fileMd5 = md5
|
||||||
this.type = if (element.notOnlineImage?.original == true) ImageType.ORIGIN else ImageType.COMMON
|
this.fileType = if (element.notOnlineImage?.original == true) ImageType.ORIGIN else ImageType.COMMON
|
||||||
this.fileUrl = when (contact.chatType) {
|
this.fileUrl = when (contact.chatType) {
|
||||||
MsgConstant.KCHATTYPEDISC, MsgConstant.KCHATTYPEGROUP -> RichProtoSvc.getGroupPicDownUrl(
|
MsgConstant.KCHATTYPEDISC, MsgConstant.KCHATTYPEGROUP -> RichProtoSvc.getGroupPicDownUrl(
|
||||||
origUrl,
|
origUrl,
|
||||||
|
@ -254,8 +254,8 @@ object NtMsgConvertor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private suspend fun imageConvertor(contact: Contact, msgId: Long, sourceImage: Element): Result<MsgElement> {
|
private suspend fun imageConvertor(contact: Contact, msgId: Long, sourceImage: Element): Result<MsgElement> {
|
||||||
val isOriginal = sourceImage.image.type == ImageType.ORIGIN
|
val isOriginal = sourceImage.image.fileType == ImageType.ORIGIN
|
||||||
val isFlash = sourceImage.image.type == ImageType.FLASH
|
val isFlash = sourceImage.image.fileType == ImageType.FLASH
|
||||||
val file = when (sourceImage.image.dataCase!!) {
|
val file = when (sourceImage.image.dataCase!!) {
|
||||||
ImageElement.DataCase.FILE_NAME -> {
|
ImageElement.DataCase.FILE_NAME -> {
|
||||||
val fileMd5 = sourceImage.image.fileName.replace(regex = "[{}\\-]".toRegex(), replacement = "")
|
val fileMd5 = sourceImage.image.fileName.replace(regex = "[{}\\-]".toRegex(), replacement = "")
|
||||||
@ -638,7 +638,7 @@ object NtMsgConvertor {
|
|||||||
face.faceText = ""
|
face.faceText = ""
|
||||||
face.faceType = 5
|
face.faceType = 5
|
||||||
face.packId = null
|
face.packId = null
|
||||||
face.pokeType = sourcePoke.poke.type
|
face.pokeType = sourcePoke.poke.pokeType
|
||||||
face.spokeSummary = ""
|
face.spokeSummary = ""
|
||||||
face.doubleHit = 0
|
face.doubleHit = 0
|
||||||
face.vaspokeId = sourcePoke.poke.id
|
face.vaspokeId = sourcePoke.poke.id
|
||||||
|
@ -73,7 +73,7 @@ private object ReqMsgConvertor {
|
|||||||
if (face.faceType == 5) {
|
if (face.faceType == 5) {
|
||||||
elem.setPoke(PokeElement.newBuilder().apply {
|
elem.setPoke(PokeElement.newBuilder().apply {
|
||||||
this.id = face.vaspokeId
|
this.id = face.vaspokeId
|
||||||
this.type = face.pokeType
|
this.pokeType = face.pokeType
|
||||||
this.strength = face.pokeStrength
|
this.strength = face.pokeStrength
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
@ -174,7 +174,7 @@ private object ReqMsgConvertor {
|
|||||||
|
|
||||||
else -> throw UnsupportedOperationException("Not supported chat type: ${contact.chatType}")
|
else -> throw UnsupportedOperationException("Not supported chat type: ${contact.chatType}")
|
||||||
}
|
}
|
||||||
this.type =
|
this.fileType =
|
||||||
if (image.isFlashPic == true) ImageElement.ImageType.FLASH else if (image.original) ImageElement.ImageType.ORIGIN else ImageElement.ImageType.COMMON
|
if (image.isFlashPic == true) ImageElement.ImageType.FLASH else if (image.original) ImageElement.ImageType.ORIGIN else ImageElement.ImageType.COMMON
|
||||||
this.subType = image.picSubType
|
this.subType = image.picSubType
|
||||||
})
|
})
|
||||||
|
@ -183,7 +183,7 @@ suspend fun List<Element>.toRichText(contact: Contact): Result<Pair<String, Rich
|
|||||||
summary.append("[回复消息]")
|
summary.append("[回复消息]")
|
||||||
}
|
}
|
||||||
Element.ElementType.IMAGE -> {
|
Element.ElementType.IMAGE -> {
|
||||||
val type = it.image.type
|
val type = it.image.fileType
|
||||||
val isOriginal = type == ImageElement.ImageType.ORIGIN
|
val isOriginal = type == ImageElement.ImageType.ORIGIN
|
||||||
val file = when(it.image.dataCase!!) {
|
val file = when(it.image.dataCase!!) {
|
||||||
ImageElement.DataCase.FILE_NAME -> {
|
ImageElement.DataCase.FILE_NAME -> {
|
||||||
@ -391,7 +391,7 @@ suspend fun List<Element>.toRichText(contact: Contact): Result<Pair<String, Rich
|
|||||||
commonElem = CommonElem(
|
commonElem = CommonElem(
|
||||||
serviceType = 2,
|
serviceType = 2,
|
||||||
elem = PokeExtra(
|
elem = PokeExtra(
|
||||||
type = it.poke.type,
|
type = it.poke.pokeType,
|
||||||
field7 = 0,
|
field7 = 0,
|
||||||
field8 = 0
|
field8 = 0
|
||||||
).toByteArray(),
|
).toByteArray(),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user