Skip to content

Commit 261df14

Browse files
improvements in suggested posts bot
1 parent 81ba583 commit 261df14

1 file changed

Lines changed: 50 additions & 7 deletions

File tree

SuggestedPosts/src/main/kotlin/SuggestedPostsBot.kt

Lines changed: 50 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,19 +14,28 @@ import dev.inmo.tgbotapi.extensions.api.send.send
1414
import dev.inmo.tgbotapi.extensions.api.suggested.approveSuggestedPost
1515
import dev.inmo.tgbotapi.extensions.behaviour_builder.BehaviourContextData
1616
import 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
1719
import dev.inmo.tgbotapi.extensions.behaviour_builder.telegramBotWithBehaviourAndLongPolling
1820
import dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.onChannelDirectMessagesConfigurationChanged
1921
import dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.onCommand
2022
import 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
2127
import dev.inmo.tgbotapi.extensions.utils.channelDirectMessagesContentMessageOrNull
2228
import dev.inmo.tgbotapi.extensions.utils.previewChannelDirectMessagesChatOrNull
2329
import dev.inmo.tgbotapi.extensions.utils.suggestedChannelDirectMessagesContentMessageOrNull
2430
import dev.inmo.tgbotapi.types.message.SuggestedPostParameters
2531
import dev.inmo.tgbotapi.types.message.abstracts.CommonMessage
2632
import dev.inmo.tgbotapi.types.update.abstracts.Update
33+
import dev.inmo.tgbotapi.utils.firstOf
2734
import kotlinx.coroutines.CoroutineScope
2835
import kotlinx.coroutines.Dispatchers
2936
import 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

Comments
 (0)