mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI.git
synced 2024-11-22 08:13:47 +00:00
commit
e74f339ae2
@ -1,5 +1,14 @@
|
||||
# TelegramBotAPI changelog
|
||||
|
||||
## 2.0.3
|
||||
|
||||
* `Core`:
|
||||
* New function `regularln` for simple creating of `RegularTextSource` with new line in the end
|
||||
* `API`:
|
||||
* New function `downloadFileToTemp` for simple downloading of file in filesystem and manipulation with avoiding of direct using input streams and other low-level things
|
||||
* `Versions`:
|
||||
* `MicroUtils`: `0.11.0` -> `0.11.3`
|
||||
|
||||
## 2.0.2
|
||||
|
||||
* `Versions`:
|
||||
|
@ -12,7 +12,7 @@ korlibs_version=2.7.0
|
||||
uuid_version=0.4.1
|
||||
ktor_version=2.0.2
|
||||
|
||||
micro_utils_version=0.11.0
|
||||
micro_utils_version=0.11.3
|
||||
|
||||
javax_activation_version=1.1.1
|
||||
|
||||
@ -20,6 +20,6 @@ javax_activation_version=1.1.1
|
||||
dokka_version=1.6.21
|
||||
|
||||
library_group=dev.inmo
|
||||
library_version=2.0.2
|
||||
library_version=2.0.3
|
||||
|
||||
github_release_plugin_version=2.3.7
|
||||
github_release_plugin_version=2.4.1
|
||||
|
@ -0,0 +1,57 @@
|
||||
package dev.inmo.tgbotapi.extensions.api.files
|
||||
|
||||
import com.benasher44.uuid.uuid4
|
||||
import dev.inmo.micro_utils.common.filename
|
||||
import dev.inmo.micro_utils.coroutines.doOutsideOfCoroutine
|
||||
import dev.inmo.tgbotapi.bot.TelegramBot
|
||||
import dev.inmo.tgbotapi.extensions.api.get.getFileAdditionalInfo
|
||||
import dev.inmo.tgbotapi.requests.abstracts.FileId
|
||||
import dev.inmo.tgbotapi.types.files.PathedFile
|
||||
import dev.inmo.tgbotapi.types.files.TelegramMediaFile
|
||||
import dev.inmo.tgbotapi.types.message.content.MediaContent
|
||||
import dev.inmo.tgbotapi.utils.fileExtension
|
||||
import io.ktor.util.cio.use
|
||||
import io.ktor.util.cio.writeChannel
|
||||
import io.ktor.utils.io.copyTo
|
||||
import kotlinx.coroutines.job
|
||||
import java.io.File
|
||||
import kotlin.coroutines.coroutineContext
|
||||
|
||||
suspend fun TelegramBot.downloadFileToTemp(
|
||||
filePath: String
|
||||
): File {
|
||||
return downloadFile(
|
||||
filePath,
|
||||
File.createTempFile(uuid4().toString(), "_temp").apply {
|
||||
deleteOnExit()
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
suspend fun TelegramBot.downloadFileToTemp(
|
||||
pathedFile: PathedFile
|
||||
) = downloadFileToTemp(
|
||||
pathedFile.filePath
|
||||
).apply {
|
||||
runCatching {
|
||||
renameTo(File(parentFile, "$nameWithoutExtension.${pathedFile.fileName.fileExtension}"))
|
||||
}
|
||||
}
|
||||
|
||||
suspend fun TelegramBot.downloadFileToTemp(
|
||||
fileId: FileId
|
||||
) = downloadFileToTemp(
|
||||
getFileAdditionalInfo(fileId)
|
||||
)
|
||||
|
||||
suspend fun TelegramBot.downloadFileToTemp(
|
||||
file: TelegramMediaFile
|
||||
): File = downloadFileToTemp(
|
||||
getFileAdditionalInfo(file)
|
||||
)
|
||||
|
||||
suspend fun TelegramBot.downloadFileToTemp(
|
||||
file: MediaContent
|
||||
) = downloadFileToTemp(
|
||||
getFileAdditionalInfo(file.media)
|
||||
)
|
@ -18,3 +18,6 @@ data class RegularTextSource @RiskFeature(DirectInvocationOfTextSourceConstructo
|
||||
|
||||
@Suppress("NOTHING_TO_INLINE")
|
||||
inline fun regular(text: String) = RegularTextSource(text)
|
||||
|
||||
@Suppress("NOTHING_TO_INLINE")
|
||||
inline fun regularln(text: String) = regular("$text\n")
|
||||
|
Loading…
Reference in New Issue
Block a user