From c25f6d522fca8a92065a4a607b58bb704db557be Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Wed, 26 Mar 2025 18:10:27 +0600 Subject: [PATCH 1/3] start 0.26.4 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index cb0c0a9..5e1fcc9 100644 --- a/gradle.properties +++ b/gradle.properties @@ -23,4 +23,4 @@ dokka_version=2.0.0 # Project data group=dev.inmo -version=0.26.3 +version=0.26.4 From 953df71d9ee1c82b1bec68c7f8416e58c6e37edd Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Wed, 26 Mar 2025 18:14:25 +0600 Subject: [PATCH 2/3] add MessageContentCache.sendAndSave --- .../media/common/DefaultMessageContentCache.kt | 15 +++++++++++++++ .../cache/media/common/MessageContentCache.kt | 5 +++++ 2 files changed, 20 insertions(+) diff --git a/cache/content/common/src/commonMain/kotlin/dev/inmo/tgbotapi/libraries/cache/media/common/DefaultMessageContentCache.kt b/cache/content/common/src/commonMain/kotlin/dev/inmo/tgbotapi/libraries/cache/media/common/DefaultMessageContentCache.kt index 77907b0..0ba2075 100644 --- a/cache/content/common/src/commonMain/kotlin/dev/inmo/tgbotapi/libraries/cache/media/common/DefaultMessageContentCache.kt +++ b/cache/content/common/src/commonMain/kotlin/dev/inmo/tgbotapi/libraries/cache/media/common/DefaultMessageContentCache.kt @@ -2,6 +2,7 @@ package dev.inmo.tgbotapi.libraries.cache.media.common import dev.inmo.tgbotapi.bot.TelegramBot import dev.inmo.tgbotapi.requests.DownloadFileStream +import dev.inmo.tgbotapi.requests.abstracts.MultipartFile import dev.inmo.tgbotapi.requests.get.GetFile import dev.inmo.tgbotapi.requests.send.media.* import dev.inmo.tgbotapi.types.IdChatIdentifier @@ -58,6 +59,20 @@ class DefaultMessageContentCache( } } + override suspend fun sendAndSave( + k: K, + filename: String, + inputAllocator: () -> Input + ) { + val sentDocument = bot.execute( + SendDocument( + filesRefreshingChatId, + MultipartFile(filename, inputAllocator), + ) + ) + save(k, sentDocument.content, filename, inputAllocator) + } + override suspend fun get(k: K): MessageContent? { val savedSimpleContent = simpleMessageContentCache.get(k) ?: return null diff --git a/cache/content/common/src/commonMain/kotlin/dev/inmo/tgbotapi/libraries/cache/media/common/MessageContentCache.kt b/cache/content/common/src/commonMain/kotlin/dev/inmo/tgbotapi/libraries/cache/media/common/MessageContentCache.kt index 9250c81..48788b8 100644 --- a/cache/content/common/src/commonMain/kotlin/dev/inmo/tgbotapi/libraries/cache/media/common/MessageContentCache.kt +++ b/cache/content/common/src/commonMain/kotlin/dev/inmo/tgbotapi/libraries/cache/media/common/MessageContentCache.kt @@ -12,6 +12,11 @@ interface MessageContentCache { filename: String, inputAllocator: suspend () -> Input ) + suspend fun sendAndSave( + k: K, + filename: String, + inputAllocator: () -> Input + ) suspend fun get(k: K): MessageContent? suspend fun contains(k: K): Boolean From 74329a8eb262b58cad4c061c51bcc4044d054601 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Wed, 26 Mar 2025 20:41:46 +0600 Subject: [PATCH 3/3] small improvements --- .../media/common/DefaultMessageContentCache.kt | 15 ++++++++++++++- .../cache/media/common/MessageContentCache.kt | 4 +++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/cache/content/common/src/commonMain/kotlin/dev/inmo/tgbotapi/libraries/cache/media/common/DefaultMessageContentCache.kt b/cache/content/common/src/commonMain/kotlin/dev/inmo/tgbotapi/libraries/cache/media/common/DefaultMessageContentCache.kt index 0ba2075..dbc69fa 100644 --- a/cache/content/common/src/commonMain/kotlin/dev/inmo/tgbotapi/libraries/cache/media/common/DefaultMessageContentCache.kt +++ b/cache/content/common/src/commonMain/kotlin/dev/inmo/tgbotapi/libraries/cache/media/common/DefaultMessageContentCache.kt @@ -1,12 +1,15 @@ package dev.inmo.tgbotapi.libraries.cache.media.common import dev.inmo.tgbotapi.bot.TelegramBot +import dev.inmo.tgbotapi.requests.DeleteMessage import dev.inmo.tgbotapi.requests.DownloadFileStream import dev.inmo.tgbotapi.requests.abstracts.MultipartFile import dev.inmo.tgbotapi.requests.get.GetFile import dev.inmo.tgbotapi.requests.send.media.* import dev.inmo.tgbotapi.types.IdChatIdentifier import dev.inmo.tgbotapi.types.media.* +import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage +import dev.inmo.tgbotapi.types.message.content.DocumentContent import dev.inmo.tgbotapi.types.message.content.MediaContent import dev.inmo.tgbotapi.types.message.content.MessageContent import dev.inmo.tgbotapi.utils.asInput @@ -63,7 +66,7 @@ class DefaultMessageContentCache( k: K, filename: String, inputAllocator: () -> Input - ) { + ): DocumentContent { val sentDocument = bot.execute( SendDocument( filesRefreshingChatId, @@ -71,6 +74,16 @@ class DefaultMessageContentCache( ) ) save(k, sentDocument.content, filename, inputAllocator) + runCatching { + bot.execute( + DeleteMessage( + sentDocument.chat.id, + sentDocument.messageId + ) + ) + } + + return sentDocument.content } override suspend fun get(k: K): MessageContent? { diff --git a/cache/content/common/src/commonMain/kotlin/dev/inmo/tgbotapi/libraries/cache/media/common/MessageContentCache.kt b/cache/content/common/src/commonMain/kotlin/dev/inmo/tgbotapi/libraries/cache/media/common/MessageContentCache.kt index 48788b8..0d2dfa9 100644 --- a/cache/content/common/src/commonMain/kotlin/dev/inmo/tgbotapi/libraries/cache/media/common/MessageContentCache.kt +++ b/cache/content/common/src/commonMain/kotlin/dev/inmo/tgbotapi/libraries/cache/media/common/MessageContentCache.kt @@ -1,5 +1,7 @@ package dev.inmo.tgbotapi.libraries.cache.media.common +import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage +import dev.inmo.tgbotapi.types.message.content.DocumentContent import dev.inmo.tgbotapi.types.message.content.MediaContent import dev.inmo.tgbotapi.types.message.content.MessageContent import io.ktor.utils.io.core.Input @@ -16,7 +18,7 @@ interface MessageContentCache { k: K, filename: String, inputAllocator: () -> Input - ) + ): DocumentContent suspend fun get(k: K): MessageContent? suspend fun contains(k: K): Boolean