@@ -3,7 +3,6 @@ package dev.inmo.plagubot
33import dev.inmo.kslog.common.*
44import dev.inmo.micro_utils.common.Warning
55import dev.inmo.micro_utils.coroutines.runCatchingLogging
6- import dev.inmo.micro_utils.coroutines.runCatchingSafely
76import dev.inmo.micro_utils.fsm.common.State
87import dev.inmo.micro_utils.fsm.common.StatesManager
98import dev.inmo.micro_utils.fsm.common.managers.*
@@ -16,6 +15,10 @@ import dev.inmo.tgbotapi.bot.ktor.telegramBot
1615import dev.inmo.tgbotapi.extensions.api.webhook.deleteWebhook
1716import dev.inmo.tgbotapi.extensions.behaviour_builder.*
1817import dev.inmo.tgbotapi.extensions.utils.updates.retrieving.startGettingOfUpdatesByLongPolling
18+ import io.ktor.client.HttpClient
19+ import io.ktor.client.engine.HttpClientEngine
20+ import io.ktor.client.engine.HttpClientEngineFactory
21+ import io.ktor.client.engine.okhttp.OkHttp
1922import kotlinx.coroutines.*
2023import kotlinx.serialization.Serializable
2124import kotlinx.serialization.json.*
@@ -58,6 +61,19 @@ object PlaguBot : Plugin {
5861 * @param params Raw JSON params of the bot part of the configuration
5962 */
6063 override fun KtorRequestsExecutorBuilder.setupBotClient (scope : Scope , params : JsonObject ) {
64+ val config = scope.get<Config >()
65+ if (config.proxy != null ) {
66+ val initialClient = config.proxy.createDefaultClient()
67+ val clientFromHttpClientEngine = scope.getOrNull<HttpClientEngine >() ?.let {
68+ HttpClient (it)
69+ }
70+ val clientFromKoin = clientFromHttpClientEngine ? : (scope.getOrNull<HttpClientEngineFactory <* >>() ? : OkHttp ).let {
71+ HttpClient (it)
72+ }
73+ this @setupBotClient.client = initialClient.config {
74+ install(clientFromKoin)
75+ }
76+ }
6177 scope.plugins.filter { it != = this @PlaguBot }.forEach {
6278 with (it) {
6379 setupBotClient(scope, params)
0 commit comments