mirror of
https://github.com/whitechi73/OpenShamrock.git
synced 2024-08-14 13:12:17 +08:00
Shamrock
: fix comm_elem parser
This commit is contained in:
parent
50d7dfa06d
commit
4283651b1e
@ -8,5 +8,5 @@ import protobuf.message.element.*
|
|||||||
data class MessageElement(
|
data class MessageElement(
|
||||||
@ProtoNumber(1) val text: TextElement? = null,
|
@ProtoNumber(1) val text: TextElement? = null,
|
||||||
@ProtoNumber(51) val json: JsonElement? = null,
|
@ProtoNumber(51) val json: JsonElement? = null,
|
||||||
@ProtoNumber(53) val richMedia: RichMediaElement? = null,
|
@ProtoNumber(53) val commElem: CommonElement? = null,
|
||||||
)
|
)
|
@ -4,7 +4,7 @@ import kotlinx.serialization.Serializable
|
|||||||
import kotlinx.serialization.protobuf.ProtoNumber
|
import kotlinx.serialization.protobuf.ProtoNumber
|
||||||
|
|
||||||
@Serializable
|
@Serializable
|
||||||
data class RichMediaElement(
|
data class CommonElement(
|
||||||
@ProtoNumber(1) val type: Int? = null,
|
@ProtoNumber(1) val type: Int? = null,
|
||||||
@ProtoNumber(2) val data: ByteArray? = null,
|
@ProtoNumber(2) val data: ByteArray? = null,
|
||||||
@ProtoNumber(3) val u1: Int? = null,
|
@ProtoNumber(3) val u1: Int? = null,
|
@ -109,19 +109,22 @@ internal object PrimitiveListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun onGroupMessage(msgTime: Long, body: MessageBody) {
|
private fun onGroupMessage(msgTime: Long, body: MessageBody) {
|
||||||
body.rich?.elements?.filter {
|
runCatching {
|
||||||
it.richMedia != null
|
body.rich?.elements?.filter {
|
||||||
}?.map {
|
it.commElem != null && it.commElem!!.type == 48
|
||||||
ProtoBuf.decodeFromByteArray<RichMediaForPicData>(it.richMedia!!.data!!)
|
}?.map {
|
||||||
}?.forEach {
|
ProtoBuf.decodeFromByteArray<RichMediaForPicData>(it.commElem!!.data!!)
|
||||||
it.display?.show?.download?.url?.let {
|
}?.forEach {
|
||||||
RKEY_PATTERN.matcher(it).takeIf {
|
it.display?.show?.download?.url?.let {
|
||||||
it.find()
|
RKEY_PATTERN.matcher(it).takeIf {
|
||||||
}?.group(1)?.let { rkey ->
|
it.find()
|
||||||
LogCenter.log("更新NT RKEY成功:$rkey")
|
}?.group(1)?.let { rkey ->
|
||||||
RichProtoSvc.multiMediaRKey = rkey
|
LogCenter.log("更新NT RKEY成功:$rkey")
|
||||||
|
RichProtoSvc.multiMediaRKey = rkey
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user