@@ -14,19 +14,28 @@ import dev.inmo.tgbotapi.extensions.api.send.send
1414import dev.inmo.tgbotapi.extensions.api.suggested.approveSuggestedPost
1515import dev.inmo.tgbotapi.extensions.behaviour_builder.BehaviourContextData
1616import dev.inmo.tgbotapi.extensions.behaviour_builder.buildSubcontextInitialAction
17+ import dev.inmo.tgbotapi.extensions.behaviour_builder.expectations.waitSuggestedPostApproved
18+ import dev.inmo.tgbotapi.extensions.behaviour_builder.expectations.waitSuggestedPostDeclined
1719import dev.inmo.tgbotapi.extensions.behaviour_builder.telegramBotWithBehaviourAndLongPolling
1820import dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.onChannelDirectMessagesConfigurationChanged
1921import dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.onCommand
2022import dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.onContentMessage
23+ import dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.onSuggestedPostApproved
24+ import dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.onSuggestedPostDeclined
25+ import dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.onSuggestedPostPaid
26+ import dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.onSuggestedPostRefunded
2127import dev.inmo.tgbotapi.extensions.utils.channelDirectMessagesContentMessageOrNull
2228import dev.inmo.tgbotapi.extensions.utils.previewChannelDirectMessagesChatOrNull
2329import dev.inmo.tgbotapi.extensions.utils.suggestedChannelDirectMessagesContentMessageOrNull
2430import dev.inmo.tgbotapi.types.message.SuggestedPostParameters
2531import dev.inmo.tgbotapi.types.message.abstracts.CommonMessage
2632import dev.inmo.tgbotapi.types.update.abstracts.Update
33+ import dev.inmo.tgbotapi.utils.firstOf
2734import kotlinx.coroutines.CoroutineScope
2835import kotlinx.coroutines.Dispatchers
2936import kotlinx.coroutines.delay
37+ import kotlinx.coroutines.flow.filter
38+ import kotlinx.coroutines.flow.first
3039
3140/* *
3241 * This place can be the playground for your code.
@@ -60,6 +69,8 @@ suspend fun main(vararg args: String) {
6069
6170 onContentMessage {
6271 val message = it.channelDirectMessagesContentMessageOrNull() ? : return @onContentMessage
72+ val chat = getChat(it.chat)
73+ println (chat)
6374
6475 resend(
6576 message.chat.id,
@@ -68,14 +79,46 @@ suspend fun main(vararg args: String) {
6879 )
6980 }
7081
71- onContentMessage {
72- val suggestedPost = it.suggestedChannelDirectMessagesContentMessageOrNull() ? : return @onContentMessage
82+ onContentMessage { message ->
83+ val suggestedPost = message.suggestedChannelDirectMessagesContentMessageOrNull() ? : return @onContentMessage
84+ val chat = getChat(message.chat)
7385
74- for (i in 0 until 3 ) {
75- delay(1000L )
76- send(suggestedPost.chat, " ${3 - i} " )
77- }
78- approveSuggestedPost(suggestedPost)
86+ firstOf(
87+ {
88+ waitSuggestedPostApproved().filter {
89+ it.suggestedPostMessage ?.chat ?.id == message.chat.id
90+ }.first()
91+ },
92+ {
93+ waitSuggestedPostDeclined().filter {
94+ it.suggestedPostMessage ?.chat ?.id == message.chat.id
95+ }.first()
96+ },
97+ {
98+ for (i in 0 until 3 ) {
99+ delay(1000L )
100+ send(suggestedPost.chat, " ${3 - i} " )
101+ }
102+ approveSuggestedPost(suggestedPost)
103+ },
104+ )
105+ }
106+
107+ onSuggestedPostPaid {
108+ println (it)
109+ reply(it, " Paid" )
110+ }
111+ onSuggestedPostApproved {
112+ println (it)
113+ reply(it, " Approved" )
114+ }
115+ onSuggestedPostDeclined {
116+ println (it)
117+ reply(it, " Declined" )
118+ }
119+ onSuggestedPostRefunded {
120+ println (it)
121+ reply(it, " Refunded" )
79122 }
80123
81124 allUpdatesFlow.subscribeLoggingDropExceptions(this ) {
0 commit comments