Explorar el Código

Fix imageUpload

Him188 hace 6 años
padre
commit
469181e249

+ 3 - 5
mirai-api-http/build.gradle.kts

@@ -1,7 +1,5 @@
 @file:Suppress("UNUSED_VARIABLE")
 
-import org.jetbrains.kotlin.gradle.plugin.KotlinDependencyHandler
-
 plugins {
     id("kotlinx-atomicfu")
     kotlin("jvm")
@@ -24,9 +22,9 @@ val ktorVersion: String by rootProject.ext
 
 val serializationVersion: String by rootProject.ext
 
-fun KotlinDependencyHandler.kotlinx(id: String, version: String) = "org.jetbrains.kotlinx:kotlinx-$id:$version"
+fun kotlinx(id: String, version: String) = "org.jetbrains.kotlinx:kotlinx-$id:$version"
 
-fun KotlinDependencyHandler.ktor(id: String, version: String = ktorVersion) = "io.ktor:ktor-$id:$version"
+fun ktor(id: String, version: String = this@Build_gradle.ktorVersion) = "io.ktor:ktor-$id:$version"
 
 kotlin {
 
@@ -42,7 +40,7 @@ kotlin {
             implementation(ktor("server-cio"))
             implementation(kotlinx("io-jvm", kotlinXIoVersion))
             implementation(ktor("http-jvm"))
-            implementation("org.slf4j:slf4j-simple:1.7.26")
+            implementation("org.slf4j:slf4j-simple:1.7.30")
         }
     }
 

+ 6 - 1
mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/highway/highway.kt

@@ -36,7 +36,7 @@ internal fun createImageDataPacketSequence( // RequestDataTrans
     data: Any,
     dataSize: Int,
     fileMd5: ByteArray,
-    sizePerPacket: Int = 8000
+    sizePerPacket: Int = 8192
 ): Flow<ByteReadPacket> {
     ByteArrayPool.checkBufferSize(sizePerPacket)
     require(data is Input || data is InputStream || data is ByteReadChannel) { "unsupported data: ${data::class.simpleName}" }
@@ -52,6 +52,7 @@ internal fun createImageDataPacketSequence( // RequestDataTrans
         else -> error("unreachable code")
     }
 
+    var offset = 0L
     return flow.map { chunkedInput ->
         buildPacket {
             val head = CSDataHighwayHead.ReqDataHighwayHead(
@@ -68,7 +69,9 @@ internal fun createImageDataPacketSequence( // RequestDataTrans
                     localeId = localId
                 ),
                 msgSeghead = CSDataHighwayHead.SegHead(
+                    cacheAddr = 812157193,
                     datalength = chunkedInput.bufferSize,
+                    dataoffset = offset,
                     filesize = dataSize.toLong(),
                     serviceticket = uKey,
                     md5 = net.mamoe.mirai.utils.md5(chunkedInput.buffer, 0, chunkedInput.bufferSize),
@@ -80,6 +83,8 @@ internal fun createImageDataPacketSequence( // RequestDataTrans
                 msgLoginSigHead = null
             ).toByteArray(CSDataHighwayHead.ReqDataHighwayHead.serializer())
 
+            offset += chunkedInput.bufferSize
+
             writeByte(40)
             writeInt(head.size)
             writeInt(chunkedInput.bufferSize)