Skip to content

Commit aee070c

Browse files
add check of set business account bio
1 parent 36163d5 commit aee070c

File tree

1 file changed

+44
-4
lines changed

1 file changed

+44
-4
lines changed

BusinessConnectionsBot/src/main/kotlin/BusinessConnectionsBot.kt

Lines changed: 44 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,18 @@ import dev.inmo.tgbotapi.extensions.api.answers.answer
66
import dev.inmo.tgbotapi.extensions.api.bot.getMe
77
import dev.inmo.tgbotapi.extensions.api.business.deleteBusinessMessages
88
import dev.inmo.tgbotapi.extensions.api.business.readBusinessMessage
9+
import dev.inmo.tgbotapi.extensions.api.business.setBusinessAccountBio
910
import dev.inmo.tgbotapi.extensions.api.business.setBusinessAccountName
1011
import dev.inmo.tgbotapi.extensions.api.business.setBusinessAccountUsername
12+
import dev.inmo.tgbotapi.extensions.api.chat.get.getChat
1113
import dev.inmo.tgbotapi.extensions.api.chat.modify.pinChatMessage
1214
import dev.inmo.tgbotapi.extensions.api.chat.modify.unpinChatMessage
1315
import dev.inmo.tgbotapi.extensions.api.get.getBusinessConnection
1416
import dev.inmo.tgbotapi.extensions.api.send.reply
1517
import dev.inmo.tgbotapi.extensions.api.send.send
1618
import dev.inmo.tgbotapi.extensions.behaviour_builder.telegramBotWithBehaviourAndLongPolling
1719
import dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.*
18-
import dev.inmo.tgbotapi.extensions.utils.accessibleMessageOrNull
20+
import dev.inmo.tgbotapi.extensions.utils.extendedPrivateChatOrThrow
1921
import dev.inmo.tgbotapi.extensions.utils.ifAccessibleMessage
2022
import dev.inmo.tgbotapi.extensions.utils.ifBusinessContentMessage
2123
import dev.inmo.tgbotapi.extensions.utils.textContentOrNull
@@ -24,14 +26,14 @@ import dev.inmo.tgbotapi.extensions.utils.types.buttons.inlineKeyboard
2426
import dev.inmo.tgbotapi.types.ChatId
2527
import dev.inmo.tgbotapi.types.MessageId
2628
import dev.inmo.tgbotapi.types.RawChatId
27-
import dev.inmo.tgbotapi.types.Username
28-
import dev.inmo.tgbotapi.types.business_connection.BusinessConnection
2929
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
3030
import dev.inmo.tgbotapi.types.chat.PrivateChat
31+
import dev.inmo.tgbotapi.utils.code
3132
import dev.inmo.tgbotapi.utils.row
32-
import dev.inmo.tgbotapi.utils.toJson
33+
import korlibs.time.seconds
3334
import kotlinx.coroutines.CoroutineScope
3435
import kotlinx.coroutines.Dispatchers
36+
import kotlinx.coroutines.delay
3537
import kotlinx.coroutines.sync.Mutex
3638
import kotlinx.coroutines.sync.withLock
3739
import kotlinx.serialization.json.Json
@@ -211,5 +213,43 @@ suspend fun main(args: Array<String>) {
211213
}
212214
}
213215
}
216+
onCommand("set_business_account_bio", requireOnlyCommandInMessage = false, initialFilter = { it.chat is PrivateChat }) {
217+
val initialBio = getChat(it.chat).extendedPrivateChatOrThrow().bio
218+
val bio = it.content.text.removePrefix("/set_business_account_bio").trim()
219+
val businessConnectionId = chatsBusinessConnections[it.chat.id] ?: return@onCommand
220+
val set = runCatching {
221+
setBusinessAccountBio(
222+
businessConnectionId,
223+
bio
224+
)
225+
}.getOrElse {
226+
it.printStackTrace()
227+
false
228+
}
229+
reply(it) {
230+
if (set) {
231+
+"Account bio has been set. It will be reset within 15 seconds.\n\nInitial bio: " + code(initialBio)
232+
} else {
233+
+"Account bio has not been set"
234+
}
235+
}
236+
delay(15.seconds)
237+
val reset = runCatching {
238+
setBusinessAccountBio(
239+
businessConnectionId,
240+
initialBio
241+
)
242+
}.getOrElse {
243+
it.printStackTrace()
244+
false
245+
}
246+
reply(it) {
247+
if (set) {
248+
+"Account bio has been reset"
249+
} else {
250+
+"Account bio has not been set. Set it manually: " + code(initialBio)
251+
}
252+
}
253+
}
214254
}.second.join()
215255
}

0 commit comments

Comments
 (0)