1
0
mirror of https://github.com/InsanusMokrassar/TelegramBotAPI.git synced 2025-12-02 12:25:42 +00:00

small hotfix

This commit is contained in:
2025-10-22 01:51:20 +06:00
parent 68897c89c3
commit f8ceab7640
13 changed files with 131 additions and 40 deletions

View File

@@ -18,8 +18,11 @@ import dev.inmo.tgbotapi.updateshandlers.*
import dev.inmo.tgbotapi.utils.DefaultKTgBotAPIKSLog
import dev.inmo.tgbotapi.utils.causedCancellationException
import dev.inmo.tgbotapi.utils.isCausedByCancellation
import dev.inmo.tgbotapi.utils.isCausedUnresolvedAddressException
import dev.inmo.tgbotapi.utils.subscribeWithBotLogger
import io.ktor.client.network.sockets.ConnectTimeoutException
import io.ktor.client.plugins.HttpRequestTimeoutException
import io.ktor.util.network.UnresolvedAddressException
import io.ktor.utils.io.CancellationException
import kotlinx.coroutines.*
import kotlinx.coroutines.flow.*
@@ -127,12 +130,16 @@ fun TelegramBot.longPollingFlow(
}.onFailure { e ->
runCatchingLogging(logger = Log) {
val isHttpRequestTimeoutException =
e is HttpRequestTimeoutException || (e is CommonBotException && e.cause is HttpRequestTimeoutException)
e is ConnectTimeoutException || e is HttpRequestTimeoutException || (e is CommonBotException && e.cause is HttpRequestTimeoutException)
if (isHttpRequestTimeoutException && autoSkipTimeoutExceptions) {
return@onFailure
}
exceptionsHandler?.invoke(e)
if (e is RequestException) {
// It seems some problems with internet connection. See https://github.com/InsanusMokrassar/ktgbotapi/issues/989
val isUnresolvedAddressException = e.isCausedUnresolvedAddressException()
if (e is RequestException || isUnresolvedAddressException) {
delay(1000L)
}
}