Compare commits

..

19 Commits

Author SHA1 Message Date
renovate[bot]
ab45b92771 Update dependency dev.inmo:micro_utils.ktor.server to v0.26.2 2025-08-10 14:10:11 +00:00
ab85d3acb2 Merge pull request #325 from InsanusMokrassar/renovate/ktor-monorepo
Update ktor monorepo to v3.2.3
2025-08-09 21:36:53 +06:00
3c3262b9cc Merge pull request #342 from InsanusMokrassar/renovate/telegram_bot_api_version
Update telegram_bot_api_version to v27.1.2
2025-08-09 21:36:24 +06:00
renovate[bot]
e378c6630c Update telegram_bot_api_version to v27.1.2 2025-08-07 10:58:59 +00:00
renovate[bot]
4eda93538e Update ktor monorepo to v3.2.3 2025-07-29 11:32:32 +00:00
707ad9a160 Merge pull request #331 from InsanusMokrassar/renovate/compose_version
Update plugin org.jetbrains.compose to v1.8.2
2025-07-29 17:31:19 +06:00
68e9830a8f Merge pull request #341 from InsanusMokrassar/27.1.0
27.1.0
2025-07-29 17:28:01 +06:00
55ebdeadbc migration onto 27.1.0 2025-07-27 14:32:39 +06:00
renovate[bot]
d4f3d4bc68 Update plugin org.jetbrains.compose to v1.8.2 2025-07-25 17:23:59 +00:00
b3d06c9773 Merge pull request #340 from InsanusMokrassar/27.0.0
27.0.0
2025-07-25 23:22:44 +06:00
e6e3eabf97 update dependencies 2025-07-22 19:52:24 +06:00
47efedf311 start migration onto 27.0.0 2025-07-15 13:35:35 +06:00
8423b1377b Merge pull request #336 from InsanusMokrassar/26.1.0
26.1.0
2025-07-10 17:21:41 +06:00
d0029603ce improvements according to latest changes 2025-07-08 18:41:18 +06:00
8d8fa74779 start migration onto 26.1.0 2025-07-08 11:58:35 +06:00
459a70c47b Merge pull request #333 from InsanusMokrassar/26.0.0
26.0.0
2025-06-16 12:15:06 +06:00
88102f3afa update telegram bot api version up to last release one 2025-06-15 10:33:03 +06:00
a621058fdd update dependencies 2025-06-14 23:48:32 +06:00
56e072aabe Merge pull request #332 from InsanusMokrassar/25.0.0
25.0.0
2025-06-14 23:35:44 +06:00
7 changed files with 71 additions and 9 deletions

View File

@@ -34,6 +34,7 @@ import dev.inmo.tgbotapi.extensions.utils.ifBusinessContentMessage
import dev.inmo.tgbotapi.extensions.utils.textContentOrNull
import dev.inmo.tgbotapi.extensions.utils.types.buttons.dataButton
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.requests.abstracts.multipartFile
import dev.inmo.tgbotapi.requests.business_connection.InputProfilePhoto
@@ -84,6 +85,7 @@ suspend fun main(args: Array<String>) {
telegramBotWithBehaviourAndLongPolling(botToken, CoroutineScope(Dispatchers.IO)) {
val me = getMe()
println(me)
flushAccumulatedUpdates()
onBusinessConnectionEnabled {
businessConnectionsChatsMutex.withLock {
@@ -471,5 +473,15 @@ suspend fun main(args: Array<String>) {
}
}
}
// Will work when some premium user sending to some other user checklist
onChecklistContent {
execute(
it.content.createResend(
it.chat.id,
businessConnectionId = it.chat.id.businessConnectionId ?: chatsBusinessConnections[it.chat.id] ?: return@onChecklistContent
)
)
}
}.second.join()
}

View File

@@ -4,10 +4,13 @@ import dev.inmo.kslog.common.defaultMessageFormatter
import dev.inmo.kslog.common.setDefaultKSLog
import dev.inmo.micro_utils.coroutines.subscribeSafelyWithoutExceptions
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.send.reply
import dev.inmo.tgbotapi.extensions.behaviour_builder.BehaviourContextData
import dev.inmo.tgbotapi.extensions.behaviour_builder.buildSubcontextInitialAction
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.types.message.abstracts.CommonMessage
import dev.inmo.tgbotapi.types.update.abstracts.Update
@@ -79,6 +82,17 @@ suspend fun main(vararg args: String) {
println(data.commonMessage)
}
onCommand("getMyStarBalance") {
reply(
to = it,
text = getMyStarBalance().toString()
)
}
onChannelDirectMessagesConfigurationChanged {
println(it.chatEvent)
}
allUpdatesFlow.subscribeSafelyWithoutExceptions(this) {
println(it)
}

View File

@@ -1,3 +1,6 @@
import dev.inmo.kslog.common.KSLog
import dev.inmo.kslog.common.defaultMessageFormatter
import dev.inmo.kslog.common.filter.filtered
import dev.inmo.micro_utils.coroutines.subscribeLoggingDropExceptions
import dev.inmo.tgbotapi.extensions.api.bot.getMe
import dev.inmo.tgbotapi.extensions.api.send.withTypingAction
@@ -10,7 +13,9 @@ import dev.inmo.tgbotapi.extensions.utils.withContentOrNull
import dev.inmo.tgbotapi.types.ReplyParameters
import dev.inmo.tgbotapi.types.message.abstracts.BusinessContentMessage
import dev.inmo.tgbotapi.types.message.content.TextContent
import dev.inmo.tgbotapi.utils.DefaultKTgBotAPIKSLog
import dev.inmo.tgbotapi.utils.extensions.threadIdOrNull
import kotlinx.coroutines.CancellationException
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.SupervisorJob
import kotlinx.coroutines.currentCoroutineContext
@@ -19,7 +24,10 @@ suspend fun activateResenderBot(
token: String,
print: (Any) -> Unit
) {
telegramBotWithBehaviourAndLongPolling(token, scope = CoroutineScope(currentCoroutineContext() + SupervisorJob())) {
telegramBotWithBehaviourAndLongPolling(
token,
scope = CoroutineScope(currentCoroutineContext() + SupervisorJob()),
) {
onContentMessage(
subcontextUpdatesFilter = MessageFilterByChat,
initialFilter = { it !is BusinessContentMessage<*> || !it.sentByBusinessConnectionOwner }

View File

@@ -18,5 +18,5 @@ dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
implementation "dev.inmo:tgbotapi:$telegram_bot_api_version"
implementation 'io.ktor:ktor-client-logging-jvm:3.1.0'
implementation 'io.ktor:ktor-client-logging-jvm:3.2.3'
}

View File

@@ -163,6 +163,34 @@ fun main() {
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()
H3 { Text("User info") }
Text("Allow to write in private messages: ${webApp.initDataUnsafe.user ?.allowsWriteToPM ?: "User unavailable"}")

View File

@@ -5,9 +5,9 @@ org.gradle.jvmargs=-Xmx3148m
kotlin.daemon.jvmargs=-Xmx3g -Xms500m
kotlin_version=2.1.20
telegram_bot_api_version=25.0.0
micro_utils_version=0.25.3
serialization_version=1.8.0
ktor_version=3.1.1
compose_version=1.7.3
kotlin_version=2.2.0
telegram_bot_api_version=27.1.2
micro_utils_version=0.26.2
serialization_version=1.9.0
ktor_version=3.2.3
compose_version=1.8.2

View File

@@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip