Compare commits

..

4 Commits

Author SHA1 Message Date
renovate[bot]
6b61eb3716 Update telegram_bot_api_version to v28 2025-08-10 14:12:14 +00:00
ab85d3acb2 Merge pull request #325 from InsanusMokrassar/renovate/ktor-monorepo
Update ktor monorepo to v3.2.3
2025-08-09 21:36:53 +06:00
3c3262b9cc Merge pull request #342 from InsanusMokrassar/renovate/telegram_bot_api_version
Update telegram_bot_api_version to v27.1.2
2025-08-09 21:36:24 +06:00
renovate[bot]
4eda93538e Update ktor monorepo to v3.2.3 2025-07-29 11:32:32 +00:00
2 changed files with 13 additions and 28 deletions

View File

@@ -1,13 +1,10 @@
import dev.inmo.micro_utils.coroutines.awaitFirst
import dev.inmo.micro_utils.coroutines.subscribeSafelyWithoutExceptions
import dev.inmo.micro_utils.fsm.common.State
import dev.inmo.tgbotapi.extensions.api.send.send
import dev.inmo.tgbotapi.extensions.behaviour_builder.expectations.waitAnyContentMessage
import dev.inmo.tgbotapi.extensions.behaviour_builder.expectations.waitCommandMessage
import dev.inmo.tgbotapi.extensions.behaviour_builder.telegramBotWithBehaviourAndFSMAndStartLongPolling
import dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.command
import dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.onContentMessage
import dev.inmo.tgbotapi.extensions.behaviour_builder.utils.containsCommand
import dev.inmo.tgbotapi.extensions.utils.extensions.parseCommandsWithArgs
import dev.inmo.tgbotapi.extensions.utils.extensions.sameThread
import dev.inmo.tgbotapi.extensions.utils.textContentOrNull
@@ -16,12 +13,10 @@ import dev.inmo.tgbotapi.types.IdChatIdentifier
import dev.inmo.tgbotapi.types.message.abstracts.CommonMessage
import dev.inmo.tgbotapi.types.message.content.TextContent
import dev.inmo.tgbotapi.utils.botCommand
import dev.inmo.tgbotapi.utils.firstOf
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.filter
import kotlinx.coroutines.flow.first
import kotlinx.coroutines.flow.map
sealed interface BotState : State
data class ExpectContentOrStopState(override val context: IdChatIdentifier, val sourceMessage: CommonMessage<TextContent>) : BotState
@@ -53,29 +48,19 @@ suspend fun main(args: Array<String>) {
+"Send me some content or " + botCommand("stop") + " if you want to stop sending"
}
val contentMessage = firstOf(
{
waitCommandMessage("stop").filter { message ->
message.sameThread(it.sourceMessage)
}.first()
null
},
{
waitAnyContentMessage().filter { message ->
message.sameThread(it.sourceMessage)
}.filter {
containsCommand(
"stop",
it.withContentOrNull<TextContent>() ?.content ?.textSources ?: return@filter false
) == false
}.first()
}
) ?: return@strictlyOn StopState(it.context)
val contentMessage = waitAnyContentMessage().filter { message ->
message.sameThread(it.sourceMessage)
}.first()
val content = contentMessage.content
execute(content.createResend(it.context))
it
when {
content is TextContent && content.text == "/stop"
|| content is TextContent && content.parseCommandsWithArgs().keys.contains("stop") -> StopState(it.context)
else -> {
execute(content.createResend(it.context))
it
}
}
}
strictlyOn<StopState> {
send(it.context) { +"You have stopped sending of content" }

View File

@@ -6,8 +6,8 @@ kotlin.daemon.jvmargs=-Xmx3g -Xms500m
kotlin_version=2.2.0
telegram_bot_api_version=28.0.0
micro_utils_version=0.26.2
telegram_bot_api_version=28.0.0-branch_28.0.0-build2910
micro_utils_version=0.26.1
serialization_version=1.9.0
ktor_version=3.2.3
compose_version=1.8.2