Commit 469181e2 authored by Him188's avatar Him188

Fix imageUpload

parent ccec3e95
@file:Suppress("UNUSED_VARIABLE") @file:Suppress("UNUSED_VARIABLE")
import org.jetbrains.kotlin.gradle.plugin.KotlinDependencyHandler
plugins { plugins {
id("kotlinx-atomicfu") id("kotlinx-atomicfu")
kotlin("jvm") kotlin("jvm")
...@@ -24,9 +22,9 @@ val ktorVersion: String by rootProject.ext ...@@ -24,9 +22,9 @@ val ktorVersion: String by rootProject.ext
val serializationVersion: 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 { kotlin {
...@@ -42,7 +40,7 @@ kotlin { ...@@ -42,7 +40,7 @@ kotlin {
implementation(ktor("server-cio")) implementation(ktor("server-cio"))
implementation(kotlinx("io-jvm", kotlinXIoVersion)) implementation(kotlinx("io-jvm", kotlinXIoVersion))
implementation(ktor("http-jvm")) implementation(ktor("http-jvm"))
implementation("org.slf4j:slf4j-simple:1.7.26") implementation("org.slf4j:slf4j-simple:1.7.30")
} }
} }
......
...@@ -36,7 +36,7 @@ internal fun createImageDataPacketSequence( // RequestDataTrans ...@@ -36,7 +36,7 @@ internal fun createImageDataPacketSequence( // RequestDataTrans
data: Any, data: Any,
dataSize: Int, dataSize: Int,
fileMd5: ByteArray, fileMd5: ByteArray,
sizePerPacket: Int = 8000 sizePerPacket: Int = 8192
): Flow<ByteReadPacket> { ): Flow<ByteReadPacket> {
ByteArrayPool.checkBufferSize(sizePerPacket) ByteArrayPool.checkBufferSize(sizePerPacket)
require(data is Input || data is InputStream || data is ByteReadChannel) { "unsupported data: ${data::class.simpleName}" } require(data is Input || data is InputStream || data is ByteReadChannel) { "unsupported data: ${data::class.simpleName}" }
...@@ -52,6 +52,7 @@ internal fun createImageDataPacketSequence( // RequestDataTrans ...@@ -52,6 +52,7 @@ internal fun createImageDataPacketSequence( // RequestDataTrans
else -> error("unreachable code") else -> error("unreachable code")
} }
var offset = 0L
return flow.map { chunkedInput -> return flow.map { chunkedInput ->
buildPacket { buildPacket {
val head = CSDataHighwayHead.ReqDataHighwayHead( val head = CSDataHighwayHead.ReqDataHighwayHead(
...@@ -68,7 +69,9 @@ internal fun createImageDataPacketSequence( // RequestDataTrans ...@@ -68,7 +69,9 @@ internal fun createImageDataPacketSequence( // RequestDataTrans
localeId = localId localeId = localId
), ),
msgSeghead = CSDataHighwayHead.SegHead( msgSeghead = CSDataHighwayHead.SegHead(
cacheAddr = 812157193,
datalength = chunkedInput.bufferSize, datalength = chunkedInput.bufferSize,
dataoffset = offset,
filesize = dataSize.toLong(), filesize = dataSize.toLong(),
serviceticket = uKey, serviceticket = uKey,
md5 = net.mamoe.mirai.utils.md5(chunkedInput.buffer, 0, chunkedInput.bufferSize), md5 = net.mamoe.mirai.utils.md5(chunkedInput.buffer, 0, chunkedInput.bufferSize),
...@@ -80,6 +83,8 @@ internal fun createImageDataPacketSequence( // RequestDataTrans ...@@ -80,6 +83,8 @@ internal fun createImageDataPacketSequence( // RequestDataTrans
msgLoginSigHead = null msgLoginSigHead = null
).toByteArray(CSDataHighwayHead.ReqDataHighwayHead.serializer()) ).toByteArray(CSDataHighwayHead.ReqDataHighwayHead.serializer())
offset += chunkedInput.bufferSize
writeByte(40) writeByte(40)
writeInt(head.size) writeInt(head.size)
writeInt(chunkedInput.bufferSize) writeInt(chunkedInput.bufferSize)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment