diff --git a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/ContactImpl.kt b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/ContactImpl.kt index c6e736ac6..00353a87f 100644 --- a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/ContactImpl.kt +++ b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/ContactImpl.kt @@ -1,6 +1,5 @@ package net.mamoe.mirai.qqandroid -import kotlinx.io.core.readBytes import net.mamoe.mirai.contact.* import net.mamoe.mirai.data.FriendNameRemark import net.mamoe.mirai.data.PreviousNameList @@ -17,10 +16,9 @@ import net.mamoe.mirai.qqandroid.network.protocol.packet.withUse import net.mamoe.mirai.qqandroid.utils.toIpV4AddressString import net.mamoe.mirai.utils.ExternalImage import net.mamoe.mirai.utils.MiraiInternalAPI -import net.mamoe.mirai.utils.cryptor.contentToString import net.mamoe.mirai.utils.getValue import net.mamoe.mirai.utils.io.PlatformSocket -import net.mamoe.mirai.utils.io.toUHexString +import net.mamoe.mirai.utils.io.discardExact import net.mamoe.mirai.utils.unsafeWeakRef import kotlin.coroutines.CoroutineContext @@ -158,28 +156,27 @@ internal class GroupImpl( val socket = PlatformSocket() socket.connect(response.uploadIpList.first().toIpV4AddressString().also { println("serverIp=$it") }, response.uploadPortList.first()) - // socket.use { + // socket.use { socket.send( - Highway.RequestDataTrans( - uin = bot.uin, - command = "PicUp.DataUp", - sequenceId = bot.client.nextHighwayDataTransSequenceId(), - uKey = response.uKey, - data = image.input, - dataSize = image.inputSize.toInt(), - md5 = image.md5 - ) + Highway.RequestDataTrans( + uin = bot.uin, + command = "PicUp.DataUp", + sequenceId = bot.client.nextHighwayDataTransSequenceId(), + uKey = response.uKey, + data = image.input, + dataSize = image.inputSize.toInt(), + md5 = image.md5 ) - // } + ) + // } //0A 3C 08 01 12 0A 31 39 39 34 37 30 31 30 32 31 1A 0C 50 69 63 55 70 2E 44 61 74 61 55 70 20 E9 A7 05 28 00 30 BD DB 8B 80 02 38 80 20 40 02 4A 0A 38 2E 32 2E 30 2E 31 32 39 36 50 84 10 12 3D 08 00 10 FD 08 18 00 20 FD 08 28 C6 01 38 00 42 10 D4 1D 8C D9 8F 00 B2 04 E9 80 09 98 EC F8 42 7E 4A 10 D4 1D 8C D9 8F 00 B2 04 E9 80 09 98 EC F8 42 7E 50 89 92 A2 FB 06 58 00 60 00 18 53 20 01 28 00 30 04 3A 00 40 E6 B7 F7 D9 80 2E 48 00 50 00 socket.read().withUse { - readByte() + discardExact(1) val headLength = readInt() - val bodyLength = readInt() + discardExact(4) val proto = readProtoBuf(CSDataHighwayHead.RspDataHighwayHead.serializer(), length = headLength) - println(proto.contentToString()) - println(readBytes(bodyLength).toUHexString()) + check(proto.errorCode == 0) { "image upload failed: Transfer errno=${proto.errorCode}" } } socket.close() val resourceId = image.calculateImageResourceId()