mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI-examples.git
synced 2025-10-12 10:50:03 +00:00
improvements in suggested posts bot
This commit is contained in:
@@ -14,19 +14,28 @@ import dev.inmo.tgbotapi.extensions.api.send.send
|
||||
import dev.inmo.tgbotapi.extensions.api.suggested.approveSuggestedPost
|
||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.BehaviourContextData
|
||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.buildSubcontextInitialAction
|
||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.expectations.waitSuggestedPostApproved
|
||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.expectations.waitSuggestedPostDeclined
|
||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.telegramBotWithBehaviourAndLongPolling
|
||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.onChannelDirectMessagesConfigurationChanged
|
||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.onCommand
|
||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.onContentMessage
|
||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.onSuggestedPostApproved
|
||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.onSuggestedPostDeclined
|
||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.onSuggestedPostPaid
|
||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.onSuggestedPostRefunded
|
||||
import dev.inmo.tgbotapi.extensions.utils.channelDirectMessagesContentMessageOrNull
|
||||
import dev.inmo.tgbotapi.extensions.utils.previewChannelDirectMessagesChatOrNull
|
||||
import dev.inmo.tgbotapi.extensions.utils.suggestedChannelDirectMessagesContentMessageOrNull
|
||||
import dev.inmo.tgbotapi.types.message.SuggestedPostParameters
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.CommonMessage
|
||||
import dev.inmo.tgbotapi.types.update.abstracts.Update
|
||||
import dev.inmo.tgbotapi.utils.firstOf
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.flow.filter
|
||||
import kotlinx.coroutines.flow.first
|
||||
|
||||
/**
|
||||
* This place can be the playground for your code.
|
||||
@@ -60,6 +69,8 @@ suspend fun main(vararg args: String) {
|
||||
|
||||
onContentMessage {
|
||||
val message = it.channelDirectMessagesContentMessageOrNull() ?: return@onContentMessage
|
||||
val chat = getChat(it.chat)
|
||||
println(chat)
|
||||
|
||||
resend(
|
||||
message.chat.id,
|
||||
@@ -68,14 +79,46 @@ suspend fun main(vararg args: String) {
|
||||
)
|
||||
}
|
||||
|
||||
onContentMessage {
|
||||
val suggestedPost = it.suggestedChannelDirectMessagesContentMessageOrNull() ?: return@onContentMessage
|
||||
onContentMessage { message ->
|
||||
val suggestedPost = message.suggestedChannelDirectMessagesContentMessageOrNull() ?: return@onContentMessage
|
||||
val chat = getChat(message.chat)
|
||||
|
||||
for (i in 0 until 3) {
|
||||
delay(1000L)
|
||||
send(suggestedPost.chat, "${3 - i}")
|
||||
}
|
||||
approveSuggestedPost(suggestedPost)
|
||||
firstOf(
|
||||
{
|
||||
waitSuggestedPostApproved().filter {
|
||||
it.suggestedPostMessage ?.chat ?.id == message.chat.id
|
||||
}.first()
|
||||
},
|
||||
{
|
||||
waitSuggestedPostDeclined().filter {
|
||||
it.suggestedPostMessage ?.chat ?.id == message.chat.id
|
||||
}.first()
|
||||
},
|
||||
{
|
||||
for (i in 0 until 3) {
|
||||
delay(1000L)
|
||||
send(suggestedPost.chat, "${3 - i}")
|
||||
}
|
||||
approveSuggestedPost(suggestedPost)
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
onSuggestedPostPaid {
|
||||
println(it)
|
||||
reply(it, "Paid")
|
||||
}
|
||||
onSuggestedPostApproved {
|
||||
println(it)
|
||||
reply(it, "Approved")
|
||||
}
|
||||
onSuggestedPostDeclined {
|
||||
println(it)
|
||||
reply(it, "Declined")
|
||||
}
|
||||
onSuggestedPostRefunded {
|
||||
println(it)
|
||||
reply(it, "Refunded")
|
||||
}
|
||||
|
||||
allUpdatesFlow.subscribeLoggingDropExceptions(this) {
|
||||
|
Reference in New Issue
Block a user