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