1
0
mirror of https://github.com/InsanusMokrassar/TelegramBotAPI.git synced 2025-10-25 09:10:07 +00:00

Merge branch 'master' into 29.0.0

This commit is contained in:
2025-09-23 18:21:13 +06:00
16 changed files with 79 additions and 10 deletions

View File

@@ -31910,6 +31910,10 @@ public final class dev/inmo/tgbotapi/utils/DefaultKSLogKt {
public static final fun setDefaultKTgBotAPIKSLogSystemTag (Ljava/lang/String;)V
}
public final class dev/inmo/tgbotapi/utils/DefaultKtorEngine_jvmKt {
public static final fun getDefaultKtorEngine ()Lio/ktor/client/engine/HttpClientEngineFactory;
}
public final class dev/inmo/tgbotapi/utils/DeserializeWithUnknownKt {
public static final fun deserializeEitherWithRaw (Lkotlinx/serialization/encoding/Decoder;Lkotlinx/serialization/KSerializer;)Ldev/inmo/micro_utils/common/Either;
public static final fun deserializeWithRaw (Lkotlinx/serialization/encoding/Decoder;Lkotlinx/serialization/KSerializer;)Lkotlin/Pair;

View File

@@ -47,12 +47,19 @@ kotlin {
api libs.ktor.server.host.common
api libs.ktor.client.cio
api libs.ktor.client.java
api libs.javax.activation
}
}
linuxX64Main {
jsMain {
dependencies {
api libs.ktor.client.js
}
}
linuxMain {
dependencies {
api libs.ktor.client.curl
}
@@ -64,7 +71,7 @@ kotlin {
}
}
mingwX64Main {
mingwMain {
dependencies {
api libs.ktor.client.winhttp
}

View File

@@ -8,6 +8,7 @@ import dev.inmo.tgbotapi.bot.settings.limiters.RequestLimiter
import dev.inmo.tgbotapi.requests.abstracts.Request
import dev.inmo.tgbotapi.utils.DefaultKTgBotAPIKSLog
import dev.inmo.tgbotapi.utils.TelegramAPIUrlsKeeper
import dev.inmo.tgbotapi.utils.defaultKtorEngine
import dev.inmo.tgbotapi.utils.nonstrictJsonFormat
import io.ktor.client.*
import kotlinx.serialization.json.Json
@@ -37,7 +38,7 @@ expect class KtorRequestsExecutor internal constructor(
fun KtorRequestsExecutor(
telegramAPIUrlsKeeper: TelegramAPIUrlsKeeper,
client: HttpClient = HttpClient(),
client: HttpClient = HttpClient(defaultKtorEngine),
callsFactories: List<KtorCallFactory> = emptyList(),
excludeDefaultFactories: Boolean = false,
requestsLimiter: RequestLimiter = ExceptionsOnlyLimiter,

View File

@@ -21,7 +21,7 @@ fun createTelegramBotDefaultKtorCallRequestsFactories(logger: KSLog? = null) = l
class KtorRequestsExecutorBuilder(
var telegramAPIUrlsKeeper: TelegramAPIUrlsKeeper
) {
var client: HttpClient = HttpClient()
var client: HttpClient = HttpClient(defaultKtorEngine)
var callsFactories: List<KtorCallFactory> = emptyList()
var excludeDefaultFactories: Boolean = false
var requestsLimiter: RequestLimiter = ExceptionsOnlyLimiter

View File

@@ -0,0 +1,5 @@
package dev.inmo.tgbotapi.utils
import io.ktor.client.engine.HttpClientEngineFactory
expect val defaultKtorEngine: HttpClientEngineFactory<*>

View File

@@ -0,0 +1,8 @@
package dev.inmo.tgbotapi.utils
import io.ktor.client.engine.HttpClientEngineFactory
import io.ktor.client.engine.js.Js
actual val defaultKtorEngine: HttpClientEngineFactory<*> by lazy {
Js
}

View File

@@ -0,0 +1,8 @@
package dev.inmo.tgbotapi.utils
import io.ktor.client.engine.HttpClientEngineFactory
import io.ktor.client.engine.java.Java
actual val defaultKtorEngine: HttpClientEngineFactory<*> by lazy {
Java
}

View File

@@ -1,5 +1,6 @@
package dev.inmo.tgbotapi.bot.ktor.base
import dev.inmo.tgbotapi.utils.defaultKtorEngine
import io.ktor.client.*
import io.ktor.client.engine.cio.*
@@ -21,4 +22,8 @@ internal actual inline fun platformClientCopy(client: HttpClient): HttpClient =
HttpClient(CIO) {
this.plusAssign(config)
}
} ?: throw IllegalArgumentException("On LinuxX64 TelegramBotAPI currently support only Curl Ktor HttpClient engine")
} ?: HttpClient(
defaultKtorEngine
) {
install(client)
}

View File

@@ -0,0 +1,8 @@
package dev.inmo.tgbotapi.utils
import io.ktor.client.engine.HttpClientEngineFactory
import io.ktor.client.engine.curl.Curl
actual val defaultKtorEngine: HttpClientEngineFactory<*> by lazy {
Curl
}

View File

@@ -1,6 +1,8 @@
package dev.inmo.tgbotapi.bot.ktor.base
import dev.inmo.tgbotapi.utils.defaultKtorEngine
import io.ktor.client.*
import io.ktor.client.HttpClient
import io.ktor.client.engine.curl.*
/**
@@ -21,4 +23,8 @@ internal actual inline fun platformClientCopy(client: HttpClient): HttpClient =
HttpClient(Curl) {
this.plusAssign(config)
}
} ?: throw IllegalArgumentException("On LinuxX64 TelegramBotAPI currently support only Curl Ktor HttpClient engine")
} ?: HttpClient(
defaultKtorEngine
) {
install(client)
}

View File

@@ -0,0 +1,8 @@
package dev.inmo.tgbotapi.utils
import io.ktor.client.engine.HttpClientEngineFactory
import io.ktor.client.engine.winhttp.WinHttp
actual val defaultKtorEngine: HttpClientEngineFactory<*> by lazy {
WinHttp
}