From c3ad2d4319cf952a46195b931f706379f971f405 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Sat, 30 Nov 2024 14:42:21 +0600 Subject: [PATCH] upgrade custom bot to include context data and additional context data --- CustomBot/src/main/kotlin/CustomBot.kt | 28 ++++++++++++++++++++++---- gradle.properties | 2 +- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/CustomBot/src/main/kotlin/CustomBot.kt b/CustomBot/src/main/kotlin/CustomBot.kt index ad4453c..6cf9334 100644 --- a/CustomBot/src/main/kotlin/CustomBot.kt +++ b/CustomBot/src/main/kotlin/CustomBot.kt @@ -5,15 +5,22 @@ import dev.inmo.kslog.common.setDefaultKSLog import dev.inmo.micro_utils.coroutines.subscribeSafelyWithoutExceptions import dev.inmo.tgbotapi.extensions.api.bot.getMe import dev.inmo.tgbotapi.extensions.behaviour_builder.BehaviourContextData +import dev.inmo.tgbotapi.extensions.behaviour_builder.buildSubcontextInitialAction import dev.inmo.tgbotapi.extensions.behaviour_builder.telegramBotWithBehaviourAndLongPolling import dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.onCommand +import dev.inmo.tgbotapi.types.message.abstracts.CommonMessage +import dev.inmo.tgbotapi.types.update.abstracts.Update import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers -private var BehaviourContextData.update - get() = get("update") +private var BehaviourContextData.update: Update? + get() = get("update") as? Update set(value) = set("update", value) +private var BehaviourContextData.commonMessage: CommonMessage<*>? + get() = get("commonMessage") as? CommonMessage<*> + set(value) = set("commonMessage", value) + /** * This place can be the playground for your code. */ @@ -45,8 +52,10 @@ suspend fun main(vararg args: String) { } } }, - subcontextInitialAction = { - data.update = it + subcontextInitialAction = buildSubcontextInitialAction { + add { + data.update = it + } } ) { // start here!! @@ -55,6 +64,17 @@ suspend fun main(vararg args: String) { onCommand("start") { println(data.update) + println(data.commonMessage) + } + + onCommand( + "additional_command", + additionalSubcontextInitialAction = { update, commonMessage -> + data.commonMessage = commonMessage + } + ) { + println(data.update) + println(data.commonMessage) } allUpdatesFlow.subscribeSafelyWithoutExceptions(this) { diff --git a/gradle.properties b/gradle.properties index 905b493..f25d386 100644 --- a/gradle.properties +++ b/gradle.properties @@ -6,7 +6,7 @@ kotlin.daemon.jvmargs=-Xmx3g -Xms500m kotlin_version=2.0.21 -telegram_bot_api_version=20.1.0 +telegram_bot_api_version=21.0.0 micro_utils_version=0.23.0 serialization_version=1.7.3 ktor_version=3.0.1