mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI.git
synced 2026-06-30 23:25:16 +00:00
Compare commits
13 Commits
df512a917b
...
v30.0.0
| Author | SHA1 | Date | |
|---|---|---|---|
| 7ed021b5bc | |||
| 1cff533265 | |||
| 8b08e11441 | |||
| b69c8f1d8f | |||
| fdf393405c | |||
| c951fc3353 | |||
| 02f42c3f52 | |||
| 0105e46a5f | |||
| 325a189ebb | |||
| 1d021c8450 | |||
| 6eb9379e0a | |||
| 2d97d10ee1 | |||
| 4b7d052ece |
2
.github/workflows/packages_publishing.yml
vendored
2
.github/workflows/packages_publishing.yml
vendored
@@ -28,7 +28,7 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
GITHUB_USER: ${{ github.actor }}
|
GITHUB_USER: ${{ github.actor }}
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
- name: Publish to Gitea
|
- name: Publish to InmoNexus
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
run: ./gradlew publishAllPublicationsToInmoNexusRepository
|
run: ./gradlew publishAllPublicationsToInmoNexusRepository
|
||||||
env:
|
env:
|
||||||
|
|||||||
25
CHANGELOG.md
25
CHANGELOG.md
@@ -1,7 +1,32 @@
|
|||||||
# TelegramBotAPI changelog
|
# TelegramBotAPI changelog
|
||||||
|
|
||||||
|
## 30.0.0
|
||||||
|
|
||||||
|
**THIS UPDATE MAY CONTAINS BREAKING CHANGES**
|
||||||
|
|
||||||
|
* `Version`:
|
||||||
|
* `Kotlin`: `2.2.10` -> `2.2.20`
|
||||||
|
* `Ktor`: `3.2.3` -> `3.3.1`
|
||||||
|
* `MicroUtils`: `0.26.3` -> `0.26.6`
|
||||||
|
* `KSLog`: `1.5.0` -> `1.5.1`
|
||||||
|
* `BehaviourBuilder`:
|
||||||
|
* `DefaultCustomBehaviourContextAndTypeReceiver` now extends `suspend (BC, U) -> R` instead of `CustomBehaviourContextAndTypeReceiver<BC, R, U>` (no changes in api in fact)
|
||||||
|
|
||||||
|
## 29.0.1
|
||||||
|
|
||||||
|
* `Core`:
|
||||||
|
* Fix of [#917](https://github.com/InsanusMokrassar/ktgbotapi/issues/917): all `OrderInfo` fields now have defaults nulls
|
||||||
|
|
||||||
## 29.0.0
|
## 29.0.0
|
||||||
|
|
||||||
|
**THIS UPDATE CONTAINS ADDING SUPPORT OF [Telegram Bots API 9.2](https://core.telegram.org/bots/api-changelog#august-15-2025)**
|
||||||
|
|
||||||
|
**THIS UPDATE CONTAINS BREAKING CHANGES**
|
||||||
|
|
||||||
|
* `Core`:
|
||||||
|
* Add function `firstOfOrNull(vararg suspend () -> T): T?`
|
||||||
|
* Change logic of `firstOf` - now it works based on merged flows and __do not require__ `CoroutineScope` as receiver
|
||||||
|
|
||||||
## 28.0.3
|
## 28.0.3
|
||||||
|
|
||||||
* `Core`:
|
* `Core`:
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# TelegramBotAPI [](https://central.sonatype.com/artifact/dev.inmo/tgbotapi) [](https://core.telegram.org/bots/api-changelog#july-3-2025)
|
# TelegramBotAPI [](https://central.sonatype.com/artifact/dev.inmo/tgbotapi) [](https://core.telegram.org/bots/api-changelog#august-15-2025)
|
||||||
|
|
||||||
| Docs | [](https://tgbotapi.inmo.dev/index.html) [](https://docs.inmo.dev/tgbotapi/index.html) |
|
| Docs | [](https://tgbotapi.inmo.dev/index.html) [](https://docs.inmo.dev/tgbotapi/index.html) |
|
||||||
|:----------------------:|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|
|
|:----------------------:|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|
|
||||||
|
|||||||
@@ -9,4 +9,4 @@ kotlin.incremental.js=true
|
|||||||
ksp.useKSP2=false
|
ksp.useKSP2=false
|
||||||
|
|
||||||
library_group=dev.inmo
|
library_group=dev.inmo
|
||||||
library_version=29.0.0
|
library_version=30.0.0
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[versions]
|
[versions]
|
||||||
|
|
||||||
kotlin = "2.2.10"
|
kotlin = "2.2.20"
|
||||||
kotlin-serialization = "1.9.0"
|
kotlin-serialization = "1.9.0"
|
||||||
kotlin-coroutines = "1.10.2"
|
kotlin-coroutines = "1.10.2"
|
||||||
|
|
||||||
@@ -8,21 +8,21 @@ javax-activation = "1.1.1"
|
|||||||
|
|
||||||
korlibs = "5.4.0"
|
korlibs = "5.4.0"
|
||||||
uuid = "0.8.4"
|
uuid = "0.8.4"
|
||||||
ktor = "3.2.3"
|
ktor = "3.3.1"
|
||||||
|
|
||||||
ksp = "2.2.10-2.0.2"
|
ksp = "2.2.20-2.0.4"
|
||||||
kotlin-poet = "2.2.0"
|
kotlin-poet = "2.2.0"
|
||||||
|
|
||||||
microutils = "0.26.3"
|
microutils = "0.26.6"
|
||||||
kslog = "1.5.0"
|
kslog = "1.5.1"
|
||||||
|
|
||||||
versions = "0.52.0"
|
versions = "0.53.0"
|
||||||
|
|
||||||
github-release-plugin = "2.5.2"
|
github-release-plugin = "2.5.2"
|
||||||
dokka = "2.0.0"
|
dokka = "2.0.0"
|
||||||
|
|
||||||
validator = "0.18.1"
|
validator = "0.18.1"
|
||||||
nmcp = "1.1.0"
|
nmcp = "1.2.0"
|
||||||
|
|
||||||
[libraries]
|
[libraries]
|
||||||
|
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ fun <BC : BehaviourContext, R, U : Update> CustomBehaviourContextAndTypeReceiver
|
|||||||
*/
|
*/
|
||||||
class DefaultCustomBehaviourContextAndTypeReceiver<BC : BehaviourContext, R, U : Update>(
|
class DefaultCustomBehaviourContextAndTypeReceiver<BC : BehaviourContext, R, U : Update>(
|
||||||
private val wrapperReceiver: CustomBehaviourContextAndTypeReceiver<BC, R, U>
|
private val wrapperReceiver: CustomBehaviourContextAndTypeReceiver<BC, R, U>
|
||||||
) : CustomBehaviourContextAndTypeReceiver<BC, R, U> {
|
) : suspend (BC, U) -> R {
|
||||||
private var botInfo: ExtendedBot? = null
|
private var botInfo: ExtendedBot? = null
|
||||||
private val mutex = Mutex()
|
private val mutex = Mutex()
|
||||||
|
|
||||||
|
|||||||
@@ -28487,7 +28487,9 @@ public final class dev/inmo/tgbotapi/types/payments/LabeledPricesSerializer : ko
|
|||||||
|
|
||||||
public final class dev/inmo/tgbotapi/types/payments/OrderInfo {
|
public final class dev/inmo/tgbotapi/types/payments/OrderInfo {
|
||||||
public static final field Companion Ldev/inmo/tgbotapi/types/payments/OrderInfo$Companion;
|
public static final field Companion Ldev/inmo/tgbotapi/types/payments/OrderInfo$Companion;
|
||||||
|
public fun <init> ()V
|
||||||
public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ldev/inmo/tgbotapi/types/payments/ShippingAddress;)V
|
public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ldev/inmo/tgbotapi/types/payments/ShippingAddress;)V
|
||||||
|
public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ldev/inmo/tgbotapi/types/payments/ShippingAddress;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
|
||||||
public final fun component1 ()Ljava/lang/String;
|
public final fun component1 ()Ljava/lang/String;
|
||||||
public final fun component2 ()Ljava/lang/String;
|
public final fun component2 ()Ljava/lang/String;
|
||||||
public final fun component3 ()Ljava/lang/String;
|
public final fun component3 ()Ljava/lang/String;
|
||||||
|
|||||||
@@ -14,11 +14,11 @@ import kotlinx.serialization.Serializable
|
|||||||
@Serializable
|
@Serializable
|
||||||
data class OrderInfo(
|
data class OrderInfo(
|
||||||
@SerialName(nameField)
|
@SerialName(nameField)
|
||||||
val name: String?,
|
val name: String? = null,
|
||||||
@SerialName(phoneNumberField)
|
@SerialName(phoneNumberField)
|
||||||
val phoneNumber: String?,
|
val phoneNumber: String? = null,
|
||||||
@SerialName(emailField)
|
@SerialName(emailField)
|
||||||
val email: String?,
|
val email: String? = null,
|
||||||
@SerialName(shippingAddressField)
|
@SerialName(shippingAddressField)
|
||||||
val shippingAddress: ShippingAddress?
|
val shippingAddress: ShippingAddress? = null
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package dev.inmo.tgbotapi.utils
|
package dev.inmo.tgbotapi.utils
|
||||||
|
|
||||||
|
import kotlinx.coroutines.flow.first
|
||||||
import kotlinx.coroutines.flow.firstOrNull
|
import kotlinx.coroutines.flow.firstOrNull
|
||||||
import kotlinx.coroutines.flow.flow
|
import kotlinx.coroutines.flow.flow
|
||||||
import kotlinx.coroutines.flow.merge
|
import kotlinx.coroutines.flow.merge
|
||||||
@@ -53,5 +54,16 @@ suspend fun <T> firstOfOrNull(
|
|||||||
suspend fun <T> firstOf(
|
suspend fun <T> firstOf(
|
||||||
vararg deferreds: suspend () -> T
|
vararg deferreds: suspend () -> T
|
||||||
): T {
|
): T {
|
||||||
return firstOfOrNull(*deferreds) ?: error("Unable to get result of deferreds")
|
val resultFlow = deferreds.map {
|
||||||
|
flow {
|
||||||
|
runCatching {
|
||||||
|
it()
|
||||||
|
}.onSuccess {
|
||||||
|
emit(it)
|
||||||
|
}.onFailure {
|
||||||
|
if (it is CancellationException) throw it
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}.merge()
|
||||||
|
return resultFlow.first()
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user