mirror of
				https://github.com/InsanusMokrassar/TelegramBotAPI-examples.git
				synced 2025-10-30 19:50:06 +00:00 
			
		
		
		
	improvements according to latest changes
This commit is contained in:
		| @@ -34,6 +34,7 @@ import dev.inmo.tgbotapi.extensions.utils.ifBusinessContentMessage | |||||||
| import dev.inmo.tgbotapi.extensions.utils.textContentOrNull | import dev.inmo.tgbotapi.extensions.utils.textContentOrNull | ||||||
| import dev.inmo.tgbotapi.extensions.utils.types.buttons.dataButton | import dev.inmo.tgbotapi.extensions.utils.types.buttons.dataButton | ||||||
| import dev.inmo.tgbotapi.extensions.utils.types.buttons.inlineKeyboard | import dev.inmo.tgbotapi.extensions.utils.types.buttons.inlineKeyboard | ||||||
|  | import dev.inmo.tgbotapi.extensions.utils.updates.retrieving.flushAccumulatedUpdates | ||||||
| import dev.inmo.tgbotapi.extensions.utils.withContentOrNull | import dev.inmo.tgbotapi.extensions.utils.withContentOrNull | ||||||
| import dev.inmo.tgbotapi.requests.abstracts.multipartFile | import dev.inmo.tgbotapi.requests.abstracts.multipartFile | ||||||
| import dev.inmo.tgbotapi.requests.business_connection.InputProfilePhoto | import dev.inmo.tgbotapi.requests.business_connection.InputProfilePhoto | ||||||
| @@ -84,6 +85,7 @@ suspend fun main(args: Array<String>) { | |||||||
|     telegramBotWithBehaviourAndLongPolling(botToken, CoroutineScope(Dispatchers.IO)) { |     telegramBotWithBehaviourAndLongPolling(botToken, CoroutineScope(Dispatchers.IO)) { | ||||||
|         val me = getMe() |         val me = getMe() | ||||||
|         println(me) |         println(me) | ||||||
|  |         flushAccumulatedUpdates() | ||||||
|  |  | ||||||
|         onBusinessConnectionEnabled { |         onBusinessConnectionEnabled { | ||||||
|             businessConnectionsChatsMutex.withLock { |             businessConnectionsChatsMutex.withLock { | ||||||
| @@ -472,12 +474,12 @@ suspend fun main(args: Array<String>) { | |||||||
|             } |             } | ||||||
|         } |         } | ||||||
|  |  | ||||||
|  |         // Will work when some premium user sending to some other user checklist | ||||||
|         onChecklistContent { |         onChecklistContent { | ||||||
|             val businessConnectionId = chatsBusinessConnections[it.chat.id] ?: return@onChecklistContent |  | ||||||
|             execute( |             execute( | ||||||
|                 it.content.createResend( |                 it.content.createResend( | ||||||
|                     it.chat.id, |                     it.chat.id, | ||||||
|                     businessConnectionId = businessConnectionId |                     businessConnectionId = it.chat.id.businessConnectionId ?: chatsBusinessConnections[it.chat.id] ?: return@onChecklistContent | ||||||
|                 ) |                 ) | ||||||
|             ) |             ) | ||||||
|         } |         } | ||||||
|   | |||||||
| @@ -4,10 +4,13 @@ import dev.inmo.kslog.common.defaultMessageFormatter | |||||||
| import dev.inmo.kslog.common.setDefaultKSLog | import dev.inmo.kslog.common.setDefaultKSLog | ||||||
| import dev.inmo.micro_utils.coroutines.subscribeSafelyWithoutExceptions | import dev.inmo.micro_utils.coroutines.subscribeSafelyWithoutExceptions | ||||||
| import dev.inmo.tgbotapi.extensions.api.bot.getMe | import dev.inmo.tgbotapi.extensions.api.bot.getMe | ||||||
|  | import dev.inmo.tgbotapi.extensions.api.bot.getMyStarBalance | ||||||
| import dev.inmo.tgbotapi.extensions.api.chat.get.getChat | import dev.inmo.tgbotapi.extensions.api.chat.get.getChat | ||||||
|  | import dev.inmo.tgbotapi.extensions.api.send.reply | ||||||
| import dev.inmo.tgbotapi.extensions.behaviour_builder.BehaviourContextData | import dev.inmo.tgbotapi.extensions.behaviour_builder.BehaviourContextData | ||||||
| import dev.inmo.tgbotapi.extensions.behaviour_builder.buildSubcontextInitialAction | import dev.inmo.tgbotapi.extensions.behaviour_builder.buildSubcontextInitialAction | ||||||
| import dev.inmo.tgbotapi.extensions.behaviour_builder.telegramBotWithBehaviourAndLongPolling | 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.onCommand | ||||||
| import dev.inmo.tgbotapi.types.message.abstracts.CommonMessage | import dev.inmo.tgbotapi.types.message.abstracts.CommonMessage | ||||||
| import dev.inmo.tgbotapi.types.update.abstracts.Update | import dev.inmo.tgbotapi.types.update.abstracts.Update | ||||||
| @@ -79,6 +82,17 @@ suspend fun main(vararg args: String) { | |||||||
|             println(data.commonMessage) |             println(data.commonMessage) | ||||||
|         } |         } | ||||||
|  |  | ||||||
|  |         onCommand("getMyStarBalance") { | ||||||
|  |             reply( | ||||||
|  |                 to = it, | ||||||
|  |                 text = getMyStarBalance().toString() | ||||||
|  |             ) | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         onChannelDirectMessagesConfigurationChanged { | ||||||
|  |             println(it.chatEvent) | ||||||
|  |         } | ||||||
|  |  | ||||||
|         allUpdatesFlow.subscribeSafelyWithoutExceptions(this) { |         allUpdatesFlow.subscribeSafelyWithoutExceptions(this) { | ||||||
|             println(it) |             println(it) | ||||||
|         } |         } | ||||||
|   | |||||||
| @@ -163,6 +163,34 @@ fun main() { | |||||||
|             Text("Answer in chat button") |             Text("Answer in chat button") | ||||||
|         } |         } | ||||||
|  |  | ||||||
|  |         H3 { Text("Hide keyboard") } | ||||||
|  |         val hideCountdown = remember { mutableStateOf<Int?>(null) } | ||||||
|  |         Button({ | ||||||
|  |             onClick { | ||||||
|  |                 hideCountdown.value = 5 | ||||||
|  |             } | ||||||
|  |         }) { | ||||||
|  |             if (hideCountdown.value == null) { | ||||||
|  |                 Text("Hide") | ||||||
|  |             } else { | ||||||
|  |                 Text("Hide in ${hideCountdown.value} seconds") | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         LaunchedEffect(hideCountdown.value) { | ||||||
|  |             val value = hideCountdown.value | ||||||
|  |             when { | ||||||
|  |                 value == null -> return@LaunchedEffect | ||||||
|  |                 value > 0 -> { | ||||||
|  |                     delay(1000) | ||||||
|  |                     hideCountdown.value = hideCountdown.value ?.minus(1) | ||||||
|  |                 } | ||||||
|  |                 else -> { | ||||||
|  |                     webApp.hideKeyboard() | ||||||
|  |                     hideCountdown.value = null | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |  | ||||||
|         P() |         P() | ||||||
|         H3 { Text("User info") } |         H3 { Text("User info") } | ||||||
|         Text("Allow to write in private messages: ${webApp.initDataUnsafe.user ?.allowsWriteToPM ?: "User unavailable"}") |         Text("Allow to write in private messages: ${webApp.initDataUnsafe.user ?.allowsWriteToPM ?: "User unavailable"}") | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user