From 0d63dbcd00156beae0a31b8575afdbc35e444a48 Mon Sep 17 00:00:00 2001 From: Him188 <Him188@mamoe.net> Date: Fri, 24 Jan 2020 15:27:32 +0800 Subject: [PATCH] QQA Debugging update --- .../packet/chat/image/ImageDownPacket.kt | 19 +++++++++++++------ .../packet/chat/image/ImageUpPacket.kt | 19 +++++++++++++------ 2 files changed, 26 insertions(+), 12 deletions(-) diff --git a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/chat/image/ImageDownPacket.kt b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/chat/image/ImageDownPacket.kt index 5e4927b9a..bfc3ef4aa 100644 --- a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/chat/image/ImageDownPacket.kt +++ b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/chat/image/ImageDownPacket.kt @@ -1,22 +1,29 @@ package net.mamoe.mirai.qqandroid.network.protocol.packet.chat.image import kotlinx.io.core.ByteReadPacket +import kotlinx.io.core.writeFully import kotlinx.serialization.protobuf.ProtoBuf import net.mamoe.mirai.data.Packet import net.mamoe.mirai.qqandroid.QQAndroidBot import net.mamoe.mirai.qqandroid.network.QQAndroidClient import net.mamoe.mirai.qqandroid.network.protocol.packet.OutgoingPacket import net.mamoe.mirai.qqandroid.network.protocol.packet.PacketFactory -import net.mamoe.mirai.qqandroid.network.protocol.packet.buildOutgingPacket +import net.mamoe.mirai.qqandroid.network.protocol.packet.buildLoginOutgoingPacket +import net.mamoe.mirai.qqandroid.network.protocol.packet.writeSsoPacket internal object ImageDownPacket : PacketFactory<ImageDownPacket.ImageDownPacketResponse>("LongConn.OffPicDown") { operator fun invoke(client: QQAndroidClient, req: GetImgUrlReq): OutgoingPacket { - return buildOutgingPacket(client, key = client.wLoginSigInfo.d2Key) { - ProtoBuf.dump( - Cmd0x352Packet.serializer(), - Cmd0x352Packet.createByImageRequest(req) - ) + // TODO: 2020/1/24 测试: bodyType, subAppId + return buildLoginOutgoingPacket(client, key = client.wLoginSigInfo.d2Key, bodyType = 1) { + writeSsoPacket(client, subAppId = 0, commandName = commandName, sequenceId = it) { + val data = ProtoBuf.dump( + Cmd0x352Packet.serializer(), + Cmd0x352Packet.createByImageRequest(req) + ) + writeInt(data.size + 4) + writeFully(data) + } } } diff --git a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/chat/image/ImageUpPacket.kt b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/chat/image/ImageUpPacket.kt index a64dcb26a..cb0d29259 100644 --- a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/chat/image/ImageUpPacket.kt +++ b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/chat/image/ImageUpPacket.kt @@ -1,22 +1,29 @@ package net.mamoe.mirai.qqandroid.network.protocol.packet.chat.image import kotlinx.io.core.ByteReadPacket +import kotlinx.io.core.writeFully import kotlinx.serialization.protobuf.ProtoBuf import net.mamoe.mirai.data.Packet import net.mamoe.mirai.qqandroid.QQAndroidBot import net.mamoe.mirai.qqandroid.network.QQAndroidClient +import net.mamoe.mirai.qqandroid.network.protocol.packet.* import net.mamoe.mirai.qqandroid.network.protocol.packet.OutgoingPacket import net.mamoe.mirai.qqandroid.network.protocol.packet.PacketFactory -import net.mamoe.mirai.qqandroid.network.protocol.packet.buildOutgingPacket +import net.mamoe.mirai.qqandroid.network.protocol.packet.buildLoginOutgoingPacket internal object ImageUpPacket : PacketFactory<ImageUpPacket.ImageUpPacketResponse>("LongConn.OffPicUp") { operator fun invoke(client: QQAndroidClient, req: UploadImgReq): OutgoingPacket { - return buildOutgingPacket(client, key = client.wLoginSigInfo.d2Key) { - ProtoBuf.dump( - Cmd0x352Packet.serializer(), - Cmd0x352Packet.createByImageRequest(req) - ) + // TODO: 2020/1/24 测试: bodyType, subAppId + return buildLoginOutgoingPacket(client, key = client.wLoginSigInfo.d2Key, bodyType = 1) { + writeSsoPacket(client, subAppId = 0, commandName = ImageDownPacket.commandName, sequenceId = it) { + val data = ProtoBuf.dump( + Cmd0x352Packet.serializer(), + Cmd0x352Packet.createByImageRequest(req) + ) + writeInt(data.size + 4) + writeFully(data) + } } }