diff --git a/protobuf/src/main/java/protobuf/message/MessageElement.kt b/protobuf/src/main/java/protobuf/message/MessageElement.kt index 76b8b42..e29c76c 100644 --- a/protobuf/src/main/java/protobuf/message/MessageElement.kt +++ b/protobuf/src/main/java/protobuf/message/MessageElement.kt @@ -8,5 +8,5 @@ import protobuf.message.element.* data class MessageElement( @ProtoNumber(1) val text: TextElement? = null, @ProtoNumber(51) val json: JsonElement? = null, - @ProtoNumber(53) val richMedia: RichMediaElement? = null, + @ProtoNumber(53) val commElem: CommonElement? = null, ) \ No newline at end of file diff --git a/protobuf/src/main/java/protobuf/message/element/RichMediaElement.kt b/protobuf/src/main/java/protobuf/message/element/CommonElement.kt similarity index 90% rename from protobuf/src/main/java/protobuf/message/element/RichMediaElement.kt rename to protobuf/src/main/java/protobuf/message/element/CommonElement.kt index ec89d10..a72bac4 100644 --- a/protobuf/src/main/java/protobuf/message/element/RichMediaElement.kt +++ b/protobuf/src/main/java/protobuf/message/element/CommonElement.kt @@ -4,7 +4,7 @@ import kotlinx.serialization.Serializable import kotlinx.serialization.protobuf.ProtoNumber @Serializable -data class RichMediaElement( +data class CommonElement( @ProtoNumber(1) val type: Int? = null, @ProtoNumber(2) val data: ByteArray? = null, @ProtoNumber(3) val u1: Int? = null, diff --git a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/listener/PrimitiveListener.kt b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/listener/PrimitiveListener.kt index ecc690d..7ad79ef 100644 --- a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/listener/PrimitiveListener.kt +++ b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/listener/PrimitiveListener.kt @@ -109,19 +109,22 @@ internal object PrimitiveListener { } private fun onGroupMessage(msgTime: Long, body: MessageBody) { - body.rich?.elements?.filter { - it.richMedia != null - }?.map { - ProtoBuf.decodeFromByteArray(it.richMedia!!.data!!) - }?.forEach { - it.display?.show?.download?.url?.let { - RKEY_PATTERN.matcher(it).takeIf { - it.find() - }?.group(1)?.let { rkey -> - LogCenter.log("更新NT RKEY成功:$rkey") - RichProtoSvc.multiMediaRKey = rkey + runCatching { + body.rich?.elements?.filter { + it.commElem != null && it.commElem!!.type == 48 + }?.map { + ProtoBuf.decodeFromByteArray(it.commElem!!.data!!) + }?.forEach { + it.display?.show?.download?.url?.let { + RKEY_PATTERN.matcher(it).takeIf { + it.find() + }?.group(1)?.let { rkey -> + LogCenter.log("更新NT RKEY成功:$rkey") + RichProtoSvc.multiMediaRKey = rkey + } } } + } }