From f5a9efa3e7a0b4f06a4b3bdfd75514189a97ef27 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Fri, 2 Aug 2024 00:39:37 +0600 Subject: [PATCH 1/2] add pin/unpin in business connection --- .../src/main/kotlin/BusinessConnectionsBot.kt | 12 ++++++++++++ gradle.properties | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/BusinessConnectionsBot/src/main/kotlin/BusinessConnectionsBot.kt b/BusinessConnectionsBot/src/main/kotlin/BusinessConnectionsBot.kt index bc16ee1..de90bfd 100644 --- a/BusinessConnectionsBot/src/main/kotlin/BusinessConnectionsBot.kt +++ b/BusinessConnectionsBot/src/main/kotlin/BusinessConnectionsBot.kt @@ -3,12 +3,16 @@ import dev.inmo.kslog.common.LogLevel import dev.inmo.kslog.common.defaultMessageFormatter import dev.inmo.kslog.common.setDefaultKSLog import dev.inmo.tgbotapi.extensions.api.bot.getMe +import dev.inmo.tgbotapi.extensions.api.chat.modify.pinChatMessage +import dev.inmo.tgbotapi.extensions.api.chat.modify.unpinChatMessage import dev.inmo.tgbotapi.extensions.api.get.getBusinessConnection 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.* +import dev.inmo.tgbotapi.extensions.utils.accessibleMessageOrNull import dev.inmo.tgbotapi.extensions.utils.ifBusinessContentMessage +import dev.inmo.tgbotapi.extensions.utils.textContentOrNull import dev.inmo.tgbotapi.types.ChatId import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId import kotlinx.coroutines.CoroutineScope @@ -50,6 +54,14 @@ suspend fun main(args: Array) { onContentMessage { it.ifBusinessContentMessage { businessContentMessage -> + if (businessContentMessage.content.textContentOrNull() ?.text ?.startsWith("/pin") == true) { + pinChatMessage(businessContentMessage) + return@ifBusinessContentMessage + } + if (businessContentMessage.content.textContentOrNull() ?.text ?.startsWith("/unpin") == true) { + unpinChatMessage(businessContentMessage) + return@ifBusinessContentMessage + } val sent = execute(it.content.createResend(businessContentMessage.from.id)) if (businessContentMessage.sentByBusinessConnectionOwner) { reply(sent, "You have sent this message to the ${businessContentMessage.businessConnectionId.string} related chat") diff --git a/gradle.properties b/gradle.properties index ec213ca..fd6383f 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.2.0 +telegram_bot_api_version=15.3.0 micro_utils_version=0.21.2 serialization_version=1.6.3 ktor_version=2.3.11 From f79e43364a072831255d428ad8ddec434a911c4e Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Fri, 2 Aug 2024 16:48:27 +0600 Subject: [PATCH 2/2] fixes in sample of business_connections bot --- .../src/main/kotlin/BusinessConnectionsBot.kt | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/BusinessConnectionsBot/src/main/kotlin/BusinessConnectionsBot.kt b/BusinessConnectionsBot/src/main/kotlin/BusinessConnectionsBot.kt index de90bfd..2623cfc 100644 --- a/BusinessConnectionsBot/src/main/kotlin/BusinessConnectionsBot.kt +++ b/BusinessConnectionsBot/src/main/kotlin/BusinessConnectionsBot.kt @@ -11,6 +11,7 @@ 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.* import dev.inmo.tgbotapi.extensions.utils.accessibleMessageOrNull +import dev.inmo.tgbotapi.extensions.utils.ifAccessibleMessage import dev.inmo.tgbotapi.extensions.utils.ifBusinessContentMessage import dev.inmo.tgbotapi.extensions.utils.textContentOrNull import dev.inmo.tgbotapi.types.ChatId @@ -55,12 +56,16 @@ suspend fun main(args: Array) { onContentMessage { it.ifBusinessContentMessage { businessContentMessage -> if (businessContentMessage.content.textContentOrNull() ?.text ?.startsWith("/pin") == true) { - pinChatMessage(businessContentMessage) - return@ifBusinessContentMessage + businessContentMessage.replyTo ?.ifAccessibleMessage { + pinChatMessage(it) + return@ifBusinessContentMessage + } } if (businessContentMessage.content.textContentOrNull() ?.text ?.startsWith("/unpin") == true) { - unpinChatMessage(businessContentMessage) - return@ifBusinessContentMessage + businessContentMessage.replyTo ?.ifAccessibleMessage { + unpinChatMessage(it) + return@ifBusinessContentMessage + } } val sent = execute(it.content.createResend(businessContentMessage.from.id)) if (businessContentMessage.sentByBusinessConnectionOwner) {