1
0
mirror of https://github.com/InsanusMokrassar/TelegramBotAPI.git synced 2024-06-02 07:55:25 +00:00
tgbotapi/TelegramBotAPI-extensions-api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/BotExtensions.kt

77 lines
2.4 KiB
Kotlin
Raw Normal View History

package dev.inmo.tgbotapi.extensions.api
2020-05-12 12:52:37 +00:00
import com.github.insanusmokrassar.TelegramBotAPI.bot.Ktor.KtorRequestsExecutor
import com.github.insanusmokrassar.TelegramBotAPI.bot.TelegramBot
2020-05-12 12:52:37 +00:00
import com.github.insanusmokrassar.TelegramBotAPI.utils.TelegramAPIUrlsKeeper
import io.ktor.client.HttpClient
import io.ktor.client.HttpClientConfig
import io.ktor.client.engine.HttpClientEngine
/**
* Allows to create bot using bot [urlsKeeper] and already prepared [client]
*/
fun telegramBot(
urlsKeeper: TelegramAPIUrlsKeeper,
2020-08-10 07:38:19 +00:00
client: HttpClient = HttpClient()
): TelegramBot = KtorRequestsExecutor(
2020-05-12 12:52:37 +00:00
urlsKeeper,
client
)
/**
* Allows to create bot using bot [urlsKeeper] and specify [HttpClientEngine] by passing [clientEngine] param and optionally
* configure [HttpClient] using [clientConfig]
*/
2020-05-15 13:14:09 +00:00
fun telegramBotWithCustomClientConfig(
2020-05-12 12:52:37 +00:00
urlsKeeper: TelegramAPIUrlsKeeper,
clientEngine: HttpClientEngine,
clientConfig: HttpClientConfig<*>.() -> Unit = {}
): TelegramBot = telegramBot(
2020-05-12 12:52:37 +00:00
urlsKeeper,
HttpClient(clientEngine, clientConfig)
)
/**
* Allows to create bot using bot [urlsKeeper] and optionally configure [HttpClient] using [clientConfig]
*/
2020-05-15 13:14:09 +00:00
fun telegramBotWithCustomClientConfig(
2020-05-12 12:52:37 +00:00
urlsKeeper: TelegramAPIUrlsKeeper,
clientConfig: HttpClientConfig<*>.() -> Unit = {}
): TelegramBot = telegramBot(
2020-05-12 12:52:37 +00:00
urlsKeeper,
HttpClient(clientConfig)
)
/**
* Allows to create bot using bot [token]
*/
fun telegramBot(
token: String
): TelegramBot = telegramBotWithCustomClientConfig(TelegramAPIUrlsKeeper(token))
2020-05-12 12:52:37 +00:00
/**
* Allows to create bot using bot [token] and already prepared [client]
*/
fun telegramBot(
token: String,
client: HttpClient
): TelegramBot = telegramBot(TelegramAPIUrlsKeeper(token), client)
2020-05-12 12:52:37 +00:00
/**
* Allows to create bot using bot [token] and configure [HttpClient] using [clientConfig]
*/
2020-05-15 13:14:09 +00:00
fun telegramBotWithCustomClientConfig(
2020-05-12 12:52:37 +00:00
token: String,
clientConfig: HttpClientConfig<*>.() -> Unit
): TelegramBot = telegramBotWithCustomClientConfig(TelegramAPIUrlsKeeper(token), clientConfig)
2020-05-12 12:52:37 +00:00
/**
* Allows to create bot using bot [token] and specify [HttpClientEngine] by passing [clientEngine] param and optionally
* configure [HttpClient] using [clientConfig]
*/
fun telegramBot(
token: String,
clientEngine: HttpClientEngine,
clientConfig: HttpClientConfig<*>.() -> Unit = {}
): TelegramBot = telegramBotWithCustomClientConfig(TelegramAPIUrlsKeeper(token), clientEngine, clientConfig)