diff --git a/CHANGELOG.md b/CHANGELOG.md index b7b09333cd..65be07c582 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ * `Core`: * `MultipartRequestCallFactory` now will use file name as multipart `filename` parameter instead of generated filename + * New extension `MPPFile#asMultipartFile` ## 0.35.7 diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/abstracts/InputFile.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/abstracts/InputFile.kt index b306112118..027b2effa7 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/abstracts/InputFile.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/abstracts/InputFile.kt @@ -1,7 +1,9 @@ package dev.inmo.tgbotapi.requests.abstracts +import dev.inmo.micro_utils.common.MPPFile import dev.inmo.tgbotapi.utils.* import io.ktor.utils.io.ByteReadChannel +import io.ktor.utils.io.core.Input import kotlinx.serialization.KSerializer import kotlinx.serialization.Serializable import kotlinx.serialization.descriptors.* @@ -75,3 +77,5 @@ suspend inline fun ByteReadChannel.asMultipartFile( suspend inline fun ByteReadChannelAllocator.asMultipartFile( fileName: String ) = this.invoke().asMultipartFile(fileName) + +expect suspend fun MPPFile.asMultipartFile(): MultipartFile diff --git a/tgbotapi.core/src/jsMain/kotlin/dev/inmo/tgbotapi/requests/abstracts/MPPFileMultipartFileActual.kt b/tgbotapi.core/src/jsMain/kotlin/dev/inmo/tgbotapi/requests/abstracts/MPPFileMultipartFileActual.kt new file mode 100644 index 0000000000..b3cd16f998 --- /dev/null +++ b/tgbotapi.core/src/jsMain/kotlin/dev/inmo/tgbotapi/requests/abstracts/MPPFileMultipartFileActual.kt @@ -0,0 +1,8 @@ +package dev.inmo.tgbotapi.requests.abstracts + +import dev.inmo.micro_utils.common.* +import io.ktor.utils.io.ByteReadChannel + +actual suspend fun MPPFile.asMultipartFile(): MultipartFile = ByteReadChannel(bytes()).asMultipartFile( + filename.name +) diff --git a/tgbotapi.core/src/jvmMain/kotlin/dev/inmo/tgbotapi/requests/abstracts/MPPFileMultipartFileActual.kt b/tgbotapi.core/src/jvmMain/kotlin/dev/inmo/tgbotapi/requests/abstracts/MPPFileMultipartFileActual.kt new file mode 100644 index 0000000000..bc2ab9874e --- /dev/null +++ b/tgbotapi.core/src/jvmMain/kotlin/dev/inmo/tgbotapi/requests/abstracts/MPPFileMultipartFileActual.kt @@ -0,0 +1,5 @@ +package dev.inmo.tgbotapi.requests.abstracts + +import dev.inmo.micro_utils.common.MPPFile + +actual suspend fun MPPFile.asMultipartFile(): MultipartFile = toInputFile()