diff --git a/StarTransactionsBot/src/main/kotlin/StarTransactionsBot.kt b/StarTransactionsBot/src/main/kotlin/StarTransactionsBot.kt index 92707ca..6d0de74 100644 --- a/StarTransactionsBot/src/main/kotlin/StarTransactionsBot.kt +++ b/StarTransactionsBot/src/main/kotlin/StarTransactionsBot.kt @@ -7,25 +7,32 @@ import dev.inmo.tgbotapi.extensions.api.answers.answer import dev.inmo.tgbotapi.extensions.api.answers.payments.answerPreCheckoutQueryOk import dev.inmo.tgbotapi.extensions.api.bot.getMe import dev.inmo.tgbotapi.extensions.api.edit.edit +import dev.inmo.tgbotapi.extensions.api.files.downloadFile +import dev.inmo.tgbotapi.extensions.api.files.downloadFileToTemp import dev.inmo.tgbotapi.extensions.api.get.getStarTransactions import dev.inmo.tgbotapi.extensions.api.send.reply +import dev.inmo.tgbotapi.extensions.api.send.send import dev.inmo.tgbotapi.extensions.behaviour_builder.telegramBotWithBehaviourAndLongPolling -import dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.command -import dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.onCommand -import dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.onMessageDataCallbackQuery -import dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.onPreCheckoutQuery +import dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.* import dev.inmo.tgbotapi.extensions.utils.extensions.sameChat import dev.inmo.tgbotapi.extensions.utils.types.buttons.dataButton import dev.inmo.tgbotapi.extensions.utils.types.buttons.flatInlineKeyboard import dev.inmo.tgbotapi.extensions.utils.types.buttons.inlineKeyboard import dev.inmo.tgbotapi.extensions.utils.types.buttons.payButton import dev.inmo.tgbotapi.extensions.utils.withContentOrNull +import dev.inmo.tgbotapi.requests.abstracts.asMultipartFile import dev.inmo.tgbotapi.types.RawChatId import dev.inmo.tgbotapi.types.UserId import dev.inmo.tgbotapi.types.buttons.InlineKeyboardMarkup +import dev.inmo.tgbotapi.types.files.* +import dev.inmo.tgbotapi.types.media.TelegramPaidMediaPhoto +import dev.inmo.tgbotapi.types.media.TelegramPaidMediaVideo +import dev.inmo.tgbotapi.types.media.toTelegramPaidMediaPhoto +import dev.inmo.tgbotapi.types.media.toTelegramPaidMediaVideo import dev.inmo.tgbotapi.types.message.content.TextContent import dev.inmo.tgbotapi.types.message.textsources.TextSource import dev.inmo.tgbotapi.types.message.textsources.TextSourcesList +import dev.inmo.tgbotapi.types.message.textsources.textSourcesOrElse import dev.inmo.tgbotapi.types.payments.LabeledPrice import dev.inmo.tgbotapi.types.payments.stars.StarTransaction import dev.inmo.tgbotapi.utils.* @@ -126,6 +133,58 @@ suspend fun main(vararg args: String) { ) } + onVisualGalleryMessages { + send( + it.chat, + 1, + it.content.group.mapNotNull { + val file = downloadFileToTemp(it.content.media) + when (it.content.media) { + is VideoFile -> { + TelegramPaidMediaVideo( + file.asMultipartFile() + ) + } + is PhotoSize -> { + TelegramPaidMediaPhoto( + file.asMultipartFile() + ) + } + else -> null + } + }, + it.content.textSources, + showCaptionAboveMedia = true + ) + } + + onPhoto { + send( + it.chat, + 1, + listOf(it.content.media.toTelegramPaidMediaPhoto()) + ) + } + + onVideo { + send( + it.chat, + 1, + listOf(it.content.media.toTelegramPaidMediaVideo()) + ) + } + + onPaidMediaInfoContent { + println(it) + } + + onRefundedPayment { + reply( + it, + "Received your refund: ${it.chatEvent.payment}" + ) + } + allUpdatesFlow.subscribeSafelyWithoutExceptions(this) { println(it) } }.second.join() } diff --git a/gradle.properties b/gradle.properties index cfd1d5e..309acff 100644 --- a/gradle.properties +++ b/gradle.properties @@ -6,7 +6,7 @@ kotlin.daemon.jvmargs=-Xmx2g -Xms500m kotlin_version=1.9.23 -telegram_bot_api_version=15.0.0 -micro_utils_version=0.21.0 +telegram_bot_api_version=15.1.0 +micro_utils_version=0.21.2 serialization_version=1.6.3 ktor_version=2.3.11