@@ -6,16 +6,18 @@ import dev.inmo.tgbotapi.extensions.api.answers.answer
66import dev.inmo.tgbotapi.extensions.api.bot.getMe
77import dev.inmo.tgbotapi.extensions.api.business.deleteBusinessMessages
88import dev.inmo.tgbotapi.extensions.api.business.readBusinessMessage
9+ import dev.inmo.tgbotapi.extensions.api.business.setBusinessAccountBio
910import dev.inmo.tgbotapi.extensions.api.business.setBusinessAccountName
1011import dev.inmo.tgbotapi.extensions.api.business.setBusinessAccountUsername
12+ import dev.inmo.tgbotapi.extensions.api.chat.get.getChat
1113import dev.inmo.tgbotapi.extensions.api.chat.modify.pinChatMessage
1214import dev.inmo.tgbotapi.extensions.api.chat.modify.unpinChatMessage
1315import dev.inmo.tgbotapi.extensions.api.get.getBusinessConnection
1416import dev.inmo.tgbotapi.extensions.api.send.reply
1517import dev.inmo.tgbotapi.extensions.api.send.send
1618import dev.inmo.tgbotapi.extensions.behaviour_builder.telegramBotWithBehaviourAndLongPolling
1719import dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.*
18- import dev.inmo.tgbotapi.extensions.utils.accessibleMessageOrNull
20+ import dev.inmo.tgbotapi.extensions.utils.extendedPrivateChatOrThrow
1921import dev.inmo.tgbotapi.extensions.utils.ifAccessibleMessage
2022import dev.inmo.tgbotapi.extensions.utils.ifBusinessContentMessage
2123import dev.inmo.tgbotapi.extensions.utils.textContentOrNull
@@ -24,14 +26,14 @@ import dev.inmo.tgbotapi.extensions.utils.types.buttons.inlineKeyboard
2426import dev.inmo.tgbotapi.types.ChatId
2527import dev.inmo.tgbotapi.types.MessageId
2628import dev.inmo.tgbotapi.types.RawChatId
27- import dev.inmo.tgbotapi.types.Username
28- import dev.inmo.tgbotapi.types.business_connection.BusinessConnection
2929import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
3030import dev.inmo.tgbotapi.types.chat.PrivateChat
31+ import dev.inmo.tgbotapi.utils.code
3132import dev.inmo.tgbotapi.utils.row
32- import dev.inmo.tgbotapi.utils.toJson
33+ import korlibs.time.seconds
3334import kotlinx.coroutines.CoroutineScope
3435import kotlinx.coroutines.Dispatchers
36+ import kotlinx.coroutines.delay
3537import kotlinx.coroutines.sync.Mutex
3638import kotlinx.coroutines.sync.withLock
3739import 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\n Initial 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