37 lines
1.1 KiB
Kotlin
37 lines
1.1 KiB
Kotlin
package dev.inmo.tgbotapi.extensions.utils.types.files
|
|
|
|
import dev.inmo.tgbotapi.bot.TelegramBot
|
|
import dev.inmo.tgbotapi.requests.DownloadFileStream
|
|
import dev.inmo.tgbotapi.requests.abstracts.*
|
|
import dev.inmo.tgbotapi.requests.get.GetFile
|
|
import dev.inmo.tgbotapi.types.files.PathedFile
|
|
import dev.inmo.tgbotapi.types.files.TelegramMediaFile
|
|
import dev.inmo.tgbotapi.types.message.content.abstracts.MediaContent
|
|
import dev.inmo.tgbotapi.utils.*
|
|
|
|
suspend fun multipartFile(
|
|
downloadStreamAllocator: ByteReadChannelAllocator,
|
|
pathedFile: PathedFile
|
|
): MultipartFile {
|
|
return downloadStreamAllocator.asMultipartFile(pathedFile.fileName)
|
|
}
|
|
|
|
suspend fun TelegramBot.multipartFile(
|
|
pathedFile: PathedFile
|
|
): MultipartFile = multipartFile(
|
|
execute(DownloadFileStream(pathedFile.filePath)),
|
|
pathedFile
|
|
)
|
|
|
|
suspend fun TelegramBot.multipartFile(
|
|
fileId: FileId
|
|
): MultipartFile = multipartFile(execute(GetFile(fileId)))
|
|
|
|
suspend fun TelegramBot.multipartFile(
|
|
file: TelegramMediaFile
|
|
): MultipartFile = multipartFile(file.fileId)
|
|
|
|
suspend fun TelegramBot.multipartFile(
|
|
content: MediaContent
|
|
): MultipartFile = multipartFile(content.media)
|