Update SimpleFSMBot.kt

This commit is contained in:
InsanusMokrassar 2022-11-11 00:35:16 +06:00 committed by GitHub
parent df952c69b2
commit 5aa69d7990
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 7 additions and 8 deletions

View File

@ -8,7 +8,7 @@ import dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.*
import dev.inmo.tgbotapi.extensions.utils.extensions.parseCommandsWithParams import dev.inmo.tgbotapi.extensions.utils.extensions.parseCommandsWithParams
import dev.inmo.tgbotapi.extensions.utils.extensions.sameThread import dev.inmo.tgbotapi.extensions.utils.extensions.sameThread
import dev.inmo.tgbotapi.extensions.utils.formatting.* import dev.inmo.tgbotapi.extensions.utils.formatting.*
import dev.inmo.tgbotapi.types.ChatId import dev.inmo.tgbotapi.types.IdChatIdentifier
import dev.inmo.tgbotapi.types.MessageThreadId import dev.inmo.tgbotapi.types.MessageThreadId
import dev.inmo.tgbotapi.types.message.abstracts.CommonMessage import dev.inmo.tgbotapi.types.message.abstracts.CommonMessage
import dev.inmo.tgbotapi.types.message.content.TextContent import dev.inmo.tgbotapi.types.message.content.TextContent
@ -19,8 +19,8 @@ import kotlinx.coroutines.flow.filter
import kotlinx.coroutines.flow.first import kotlinx.coroutines.flow.first
sealed interface BotState : State sealed interface BotState : State
data class ExpectContentOrStopState(override val context: Pair<ChatId, MessageThreadId?>, val sourceMessage: CommonMessage<TextContent>) : BotState data class ExpectContentOrStopState(override val context: IdChatIdentifier, val sourceMessage: CommonMessage<TextContent>) : BotState
data class StopState(override val context: Pair<ChatId, MessageThreadId?>) : BotState data class StopState(override val context: IdChatIdentifier) : BotState
suspend fun main(args: Array<String>) { suspend fun main(args: Array<String>) {
val botToken = args.first() val botToken = args.first()
@ -43,8 +43,7 @@ suspend fun main(args: Array<String>) {
) { ) {
strictlyOn<ExpectContentOrStopState> { strictlyOn<ExpectContentOrStopState> {
send( send(
it.context.first, it.context,
threadId = it.context.second
) { ) {
+"Send me some content or " + botCommand("stop") + " if you want to stop sending" +"Send me some content or " + botCommand("stop") + " if you want to stop sending"
} }
@ -57,13 +56,13 @@ suspend fun main(args: Array<String>) {
when { when {
content is TextContent && content.parseCommandsWithParams().keys.contains("stop") -> StopState(it.context) content is TextContent && content.parseCommandsWithParams().keys.contains("stop") -> StopState(it.context)
else -> { else -> {
execute(content.createResend(it.context.first, messageThreadId = it.context.second)) execute(content.createResend(it.context))
it it
} }
} }
} }
strictlyOn<StopState> { strictlyOn<StopState> {
send(it.context.first, threadId = it.context.second) { +"You have stopped sending of content" } send(it.context) { +"You have stopped sending of content" }
null null
} }
@ -71,7 +70,7 @@ suspend fun main(args: Array<String>) {
command( command(
"start" "start"
) { ) {
startChain(ExpectContentOrStopState(it.chat.id to it.threadIdOrNull, it)) startChain(ExpectContentOrStopState(it.chat.id, it))
} }
}.second.join() }.second.join()
} }