mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI.git
synced 2025-11-20 14:25:46 +00:00
Compare commits
1 Commits
renovate/d
...
renovate/o
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
83aaf6170f |
20
CHANGELOG.md
20
CHANGELOG.md
@@ -1,25 +1,5 @@
|
|||||||
# TelegramBotAPI changelog
|
# TelegramBotAPI changelog
|
||||||
|
|
||||||
## 30.0.1
|
|
||||||
|
|
||||||
* `Core`:
|
|
||||||
* Potential fix of [#989](https://github.com/InsanusMokrassar/ktgbotapi/issues/989) by:
|
|
||||||
* In long polling have been added check for causing by unresolved address exception
|
|
||||||
* Add `TelegramBotPipelinesHandler.onRequestExceptionInLimiter` which will be triggered in ANY exception during
|
|
||||||
request execution
|
|
||||||
|
|
||||||
## 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
|
## 29.0.1
|
||||||
|
|
||||||
* `Core`:
|
* `Core`:
|
||||||
|
|||||||
@@ -9,4 +9,4 @@ kotlin.incremental.js=true
|
|||||||
ksp.useKSP2=false
|
ksp.useKSP2=false
|
||||||
|
|
||||||
library_group=dev.inmo
|
library_group=dev.inmo
|
||||||
library_version=30.0.1
|
library_version=29.0.1
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[versions]
|
[versions]
|
||||||
|
|
||||||
kotlin = "2.2.20"
|
kotlin = "2.2.10"
|
||||||
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.3.1"
|
ktor = "3.2.3"
|
||||||
|
|
||||||
ksp = "2.2.20-2.0.4"
|
ksp = "2.2.10-2.0.2"
|
||||||
kotlin-poet = "2.2.0"
|
kotlin-poet = "2.2.0"
|
||||||
|
|
||||||
microutils = "0.26.6"
|
microutils = "0.26.3"
|
||||||
kslog = "1.5.1"
|
kslog = "1.5.0"
|
||||||
|
|
||||||
versions = "0.53.0"
|
versions = "0.52.0"
|
||||||
|
|
||||||
github-release-plugin = "2.5.2"
|
github-release-plugin = "2.5.2"
|
||||||
dokka = "2.1.0"
|
dokka = "2.0.0"
|
||||||
|
|
||||||
validator = "0.18.1"
|
validator = "0.18.1"
|
||||||
nmcp = "1.2.0"
|
nmcp = "1.1.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>
|
||||||
) : suspend (BC, U) -> R {
|
) : CustomBehaviourContextAndTypeReceiver<BC, R, U> {
|
||||||
private var botInfo: ExtendedBot? = null
|
private var botInfo: ExtendedBot? = null
|
||||||
private val mutex = Mutex()
|
private val mutex = Mutex()
|
||||||
|
|
||||||
|
|||||||
@@ -397,7 +397,6 @@ public abstract interface class dev/inmo/tgbotapi/bot/ktor/TelegramBotPipelinesH
|
|||||||
public fun onBeforeCallFactoryMakeCall (Ldev/inmo/tgbotapi/requests/abstracts/Request;Ldev/inmo/tgbotapi/bot/ktor/KtorCallFactory;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
public fun onBeforeCallFactoryMakeCall (Ldev/inmo/tgbotapi/requests/abstracts/Request;Ldev/inmo/tgbotapi/bot/ktor/KtorCallFactory;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
||||||
public fun onBeforeSearchCallFactory (Ldev/inmo/tgbotapi/requests/abstracts/Request;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
public fun onBeforeSearchCallFactory (Ldev/inmo/tgbotapi/requests/abstracts/Request;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
||||||
public fun onRequestException (Ldev/inmo/tgbotapi/requests/abstracts/Request;Ljava/lang/Throwable;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
public fun onRequestException (Ldev/inmo/tgbotapi/requests/abstracts/Request;Ljava/lang/Throwable;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
||||||
public fun onRequestExceptionInLimiter (Ldev/inmo/tgbotapi/requests/abstracts/Request;Ljava/lang/Throwable;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
|
||||||
public fun onRequestResultAbsent (Ldev/inmo/tgbotapi/requests/abstracts/Request;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
public fun onRequestResultAbsent (Ldev/inmo/tgbotapi/requests/abstracts/Request;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
||||||
public fun onRequestResultPresented (Ljava/lang/Object;Ldev/inmo/tgbotapi/requests/abstracts/Request;Ldev/inmo/tgbotapi/bot/ktor/KtorCallFactory;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
public fun onRequestResultPresented (Ljava/lang/Object;Ldev/inmo/tgbotapi/requests/abstracts/Request;Ldev/inmo/tgbotapi/bot/ktor/KtorCallFactory;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
||||||
public fun onRequestReturnResult-3t6e044 (Ljava/lang/Object;Ldev/inmo/tgbotapi/requests/abstracts/Request;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
public fun onRequestReturnResult-3t6e044 (Ljava/lang/Object;Ldev/inmo/tgbotapi/requests/abstracts/Request;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
||||||
@@ -408,7 +407,6 @@ public final class dev/inmo/tgbotapi/bot/ktor/TelegramBotPipelinesHandler$Compan
|
|||||||
public fun onBeforeCallFactoryMakeCall (Ldev/inmo/tgbotapi/requests/abstracts/Request;Ldev/inmo/tgbotapi/bot/ktor/KtorCallFactory;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
public fun onBeforeCallFactoryMakeCall (Ldev/inmo/tgbotapi/requests/abstracts/Request;Ldev/inmo/tgbotapi/bot/ktor/KtorCallFactory;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
||||||
public fun onBeforeSearchCallFactory (Ldev/inmo/tgbotapi/requests/abstracts/Request;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
public fun onBeforeSearchCallFactory (Ldev/inmo/tgbotapi/requests/abstracts/Request;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
||||||
public fun onRequestException (Ldev/inmo/tgbotapi/requests/abstracts/Request;Ljava/lang/Throwable;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
public fun onRequestException (Ldev/inmo/tgbotapi/requests/abstracts/Request;Ljava/lang/Throwable;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
||||||
public fun onRequestExceptionInLimiter (Ldev/inmo/tgbotapi/requests/abstracts/Request;Ljava/lang/Throwable;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
|
||||||
public fun onRequestResultAbsent (Ldev/inmo/tgbotapi/requests/abstracts/Request;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
public fun onRequestResultAbsent (Ldev/inmo/tgbotapi/requests/abstracts/Request;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
||||||
public fun onRequestResultPresented (Ljava/lang/Object;Ldev/inmo/tgbotapi/requests/abstracts/Request;Ldev/inmo/tgbotapi/bot/ktor/KtorCallFactory;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
public fun onRequestResultPresented (Ljava/lang/Object;Ldev/inmo/tgbotapi/requests/abstracts/Request;Ldev/inmo/tgbotapi/bot/ktor/KtorCallFactory;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
||||||
public fun onRequestReturnResult-3t6e044 (Ljava/lang/Object;Ldev/inmo/tgbotapi/requests/abstracts/Request;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
public fun onRequestReturnResult-3t6e044 (Ljava/lang/Object;Ldev/inmo/tgbotapi/requests/abstracts/Request;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
||||||
@@ -419,7 +417,6 @@ public final class dev/inmo/tgbotapi/bot/ktor/TelegramBotPipelinesHandler$Defaul
|
|||||||
public static fun onBeforeCallFactoryMakeCall (Ldev/inmo/tgbotapi/bot/ktor/TelegramBotPipelinesHandler;Ldev/inmo/tgbotapi/requests/abstracts/Request;Ldev/inmo/tgbotapi/bot/ktor/KtorCallFactory;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
public static fun onBeforeCallFactoryMakeCall (Ldev/inmo/tgbotapi/bot/ktor/TelegramBotPipelinesHandler;Ldev/inmo/tgbotapi/requests/abstracts/Request;Ldev/inmo/tgbotapi/bot/ktor/KtorCallFactory;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
||||||
public static fun onBeforeSearchCallFactory (Ldev/inmo/tgbotapi/bot/ktor/TelegramBotPipelinesHandler;Ldev/inmo/tgbotapi/requests/abstracts/Request;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
public static fun onBeforeSearchCallFactory (Ldev/inmo/tgbotapi/bot/ktor/TelegramBotPipelinesHandler;Ldev/inmo/tgbotapi/requests/abstracts/Request;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
||||||
public static fun onRequestException (Ldev/inmo/tgbotapi/bot/ktor/TelegramBotPipelinesHandler;Ldev/inmo/tgbotapi/requests/abstracts/Request;Ljava/lang/Throwable;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
public static fun onRequestException (Ldev/inmo/tgbotapi/bot/ktor/TelegramBotPipelinesHandler;Ldev/inmo/tgbotapi/requests/abstracts/Request;Ljava/lang/Throwable;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
||||||
public static fun onRequestExceptionInLimiter (Ldev/inmo/tgbotapi/bot/ktor/TelegramBotPipelinesHandler;Ldev/inmo/tgbotapi/requests/abstracts/Request;Ljava/lang/Throwable;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
|
||||||
public static fun onRequestResultAbsent (Ldev/inmo/tgbotapi/bot/ktor/TelegramBotPipelinesHandler;Ldev/inmo/tgbotapi/requests/abstracts/Request;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
public static fun onRequestResultAbsent (Ldev/inmo/tgbotapi/bot/ktor/TelegramBotPipelinesHandler;Ldev/inmo/tgbotapi/requests/abstracts/Request;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
||||||
public static fun onRequestResultPresented (Ldev/inmo/tgbotapi/bot/ktor/TelegramBotPipelinesHandler;Ljava/lang/Object;Ldev/inmo/tgbotapi/requests/abstracts/Request;Ldev/inmo/tgbotapi/bot/ktor/KtorCallFactory;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
public static fun onRequestResultPresented (Ldev/inmo/tgbotapi/bot/ktor/TelegramBotPipelinesHandler;Ljava/lang/Object;Ldev/inmo/tgbotapi/requests/abstracts/Request;Ldev/inmo/tgbotapi/bot/ktor/KtorCallFactory;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
||||||
public static fun onRequestReturnResult-3t6e044 (Ldev/inmo/tgbotapi/bot/ktor/TelegramBotPipelinesHandler;Ljava/lang/Object;Ldev/inmo/tgbotapi/requests/abstracts/Request;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
public static fun onRequestReturnResult-3t6e044 (Ldev/inmo/tgbotapi/bot/ktor/TelegramBotPipelinesHandler;Ljava/lang/Object;Ldev/inmo/tgbotapi/requests/abstracts/Request;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
||||||
@@ -478,14 +475,13 @@ public final class dev/inmo/tgbotapi/bot/ktor/base/SimpleRequestCallFactory : de
|
|||||||
public class dev/inmo/tgbotapi/bot/ktor/middlewares/TelegramBotMiddleware : dev/inmo/tgbotapi/bot/ktor/TelegramBotPipelinesHandler {
|
public class dev/inmo/tgbotapi/bot/ktor/middlewares/TelegramBotMiddleware : dev/inmo/tgbotapi/bot/ktor/TelegramBotPipelinesHandler {
|
||||||
public static final field Companion Ldev/inmo/tgbotapi/bot/ktor/middlewares/TelegramBotMiddleware$Companion;
|
public static final field Companion Ldev/inmo/tgbotapi/bot/ktor/middlewares/TelegramBotMiddleware$Companion;
|
||||||
public fun <init> ()V
|
public fun <init> ()V
|
||||||
public fun <init> (Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function4;Lkotlin/jvm/functions/Function5;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function4;Lkotlin/jvm/functions/Function3;Ljava/lang/String;)V
|
public fun <init> (Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function4;Lkotlin/jvm/functions/Function5;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function4;Ljava/lang/String;)V
|
||||||
public synthetic fun <init> (Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function4;Lkotlin/jvm/functions/Function5;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function4;Lkotlin/jvm/functions/Function3;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
|
public synthetic fun <init> (Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function4;Lkotlin/jvm/functions/Function5;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function4;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
|
||||||
public final fun getId ()Ljava/lang/String;
|
public final fun getId ()Ljava/lang/String;
|
||||||
public fun onAfterCallFactoryMakeCall (Ljava/lang/Object;Ldev/inmo/tgbotapi/requests/abstracts/Request;Ldev/inmo/tgbotapi/bot/ktor/KtorCallFactory;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
public fun onAfterCallFactoryMakeCall (Ljava/lang/Object;Ldev/inmo/tgbotapi/requests/abstracts/Request;Ldev/inmo/tgbotapi/bot/ktor/KtorCallFactory;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
||||||
public fun onBeforeCallFactoryMakeCall (Ldev/inmo/tgbotapi/requests/abstracts/Request;Ldev/inmo/tgbotapi/bot/ktor/KtorCallFactory;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
public fun onBeforeCallFactoryMakeCall (Ldev/inmo/tgbotapi/requests/abstracts/Request;Ldev/inmo/tgbotapi/bot/ktor/KtorCallFactory;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
||||||
public fun onBeforeSearchCallFactory (Ldev/inmo/tgbotapi/requests/abstracts/Request;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
public fun onBeforeSearchCallFactory (Ldev/inmo/tgbotapi/requests/abstracts/Request;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
||||||
public fun onRequestException (Ldev/inmo/tgbotapi/requests/abstracts/Request;Ljava/lang/Throwable;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
public fun onRequestException (Ldev/inmo/tgbotapi/requests/abstracts/Request;Ljava/lang/Throwable;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
||||||
public fun onRequestExceptionInLimiter (Ldev/inmo/tgbotapi/requests/abstracts/Request;Ljava/lang/Throwable;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
|
||||||
public fun onRequestResultAbsent (Ldev/inmo/tgbotapi/requests/abstracts/Request;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
public fun onRequestResultAbsent (Ldev/inmo/tgbotapi/requests/abstracts/Request;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
||||||
public fun onRequestResultPresented (Ljava/lang/Object;Ldev/inmo/tgbotapi/requests/abstracts/Request;Ldev/inmo/tgbotapi/bot/ktor/KtorCallFactory;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
public fun onRequestResultPresented (Ljava/lang/Object;Ldev/inmo/tgbotapi/requests/abstracts/Request;Ldev/inmo/tgbotapi/bot/ktor/KtorCallFactory;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
||||||
public fun onRequestReturnResult-3t6e044 (Ljava/lang/Object;Ldev/inmo/tgbotapi/requests/abstracts/Request;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
public fun onRequestReturnResult-3t6e044 (Ljava/lang/Object;Ldev/inmo/tgbotapi/requests/abstracts/Request;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
||||||
@@ -507,7 +503,6 @@ public final class dev/inmo/tgbotapi/bot/ktor/middlewares/TelegramBotMiddlewareB
|
|||||||
public final fun doOnBeforeCallFactoryMakeCall (Lkotlin/jvm/functions/Function3;)V
|
public final fun doOnBeforeCallFactoryMakeCall (Lkotlin/jvm/functions/Function3;)V
|
||||||
public final fun doOnBeforeSearchCallFactory (Lkotlin/jvm/functions/Function3;)V
|
public final fun doOnBeforeSearchCallFactory (Lkotlin/jvm/functions/Function3;)V
|
||||||
public final fun doOnRequestException (Lkotlin/jvm/functions/Function3;)V
|
public final fun doOnRequestException (Lkotlin/jvm/functions/Function3;)V
|
||||||
public final fun doOnRequestExceptionInLimiter (Lkotlin/jvm/functions/Function3;)V
|
|
||||||
public final fun doOnRequestResultAbsent (Lkotlin/jvm/functions/Function3;)V
|
public final fun doOnRequestResultAbsent (Lkotlin/jvm/functions/Function3;)V
|
||||||
public final fun doOnRequestResultPresented (Lkotlin/jvm/functions/Function5;)V
|
public final fun doOnRequestResultPresented (Lkotlin/jvm/functions/Function5;)V
|
||||||
public final fun doOnRequestReturnResult (Lkotlin/jvm/functions/Function4;)V
|
public final fun doOnRequestReturnResult (Lkotlin/jvm/functions/Function4;)V
|
||||||
@@ -516,7 +511,6 @@ public final class dev/inmo/tgbotapi/bot/ktor/middlewares/TelegramBotMiddlewareB
|
|||||||
public final fun getOnBeforeCallFactoryMakeCall ()Lkotlin/jvm/functions/Function3;
|
public final fun getOnBeforeCallFactoryMakeCall ()Lkotlin/jvm/functions/Function3;
|
||||||
public final fun getOnBeforeSearchCallFactory ()Lkotlin/jvm/functions/Function3;
|
public final fun getOnBeforeSearchCallFactory ()Lkotlin/jvm/functions/Function3;
|
||||||
public final fun getOnRequestException ()Lkotlin/jvm/functions/Function3;
|
public final fun getOnRequestException ()Lkotlin/jvm/functions/Function3;
|
||||||
public final fun getOnRequestExceptionInLimiter ()Lkotlin/jvm/functions/Function3;
|
|
||||||
public final fun getOnRequestResultAbsent ()Lkotlin/jvm/functions/Function3;
|
public final fun getOnRequestResultAbsent ()Lkotlin/jvm/functions/Function3;
|
||||||
public final fun getOnRequestResultPresented ()Lkotlin/jvm/functions/Function5;
|
public final fun getOnRequestResultPresented ()Lkotlin/jvm/functions/Function5;
|
||||||
public final fun getOnRequestReturnResult ()Lkotlin/jvm/functions/Function4;
|
public final fun getOnRequestReturnResult ()Lkotlin/jvm/functions/Function4;
|
||||||
@@ -525,7 +519,6 @@ public final class dev/inmo/tgbotapi/bot/ktor/middlewares/TelegramBotMiddlewareB
|
|||||||
public final fun setOnBeforeCallFactoryMakeCall (Lkotlin/jvm/functions/Function3;)V
|
public final fun setOnBeforeCallFactoryMakeCall (Lkotlin/jvm/functions/Function3;)V
|
||||||
public final fun setOnBeforeSearchCallFactory (Lkotlin/jvm/functions/Function3;)V
|
public final fun setOnBeforeSearchCallFactory (Lkotlin/jvm/functions/Function3;)V
|
||||||
public final fun setOnRequestException (Lkotlin/jvm/functions/Function3;)V
|
public final fun setOnRequestException (Lkotlin/jvm/functions/Function3;)V
|
||||||
public final fun setOnRequestExceptionInLimiter (Lkotlin/jvm/functions/Function3;)V
|
|
||||||
public final fun setOnRequestResultAbsent (Lkotlin/jvm/functions/Function3;)V
|
public final fun setOnRequestResultAbsent (Lkotlin/jvm/functions/Function3;)V
|
||||||
public final fun setOnRequestResultPresented (Lkotlin/jvm/functions/Function5;)V
|
public final fun setOnRequestResultPresented (Lkotlin/jvm/functions/Function5;)V
|
||||||
public final fun setOnRequestReturnResult (Lkotlin/jvm/functions/Function4;)V
|
public final fun setOnRequestReturnResult (Lkotlin/jvm/functions/Function4;)V
|
||||||
@@ -544,7 +537,6 @@ public final class dev/inmo/tgbotapi/bot/ktor/middlewares/TelegramBotMiddlewares
|
|||||||
public fun onBeforeCallFactoryMakeCall (Ldev/inmo/tgbotapi/requests/abstracts/Request;Ldev/inmo/tgbotapi/bot/ktor/KtorCallFactory;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
public fun onBeforeCallFactoryMakeCall (Ldev/inmo/tgbotapi/requests/abstracts/Request;Ldev/inmo/tgbotapi/bot/ktor/KtorCallFactory;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
||||||
public fun onBeforeSearchCallFactory (Ldev/inmo/tgbotapi/requests/abstracts/Request;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
public fun onBeforeSearchCallFactory (Ldev/inmo/tgbotapi/requests/abstracts/Request;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
||||||
public fun onRequestException (Ldev/inmo/tgbotapi/requests/abstracts/Request;Ljava/lang/Throwable;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
public fun onRequestException (Ldev/inmo/tgbotapi/requests/abstracts/Request;Ljava/lang/Throwable;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
||||||
public fun onRequestExceptionInLimiter (Ldev/inmo/tgbotapi/requests/abstracts/Request;Ljava/lang/Throwable;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
|
||||||
public fun onRequestResultAbsent (Ldev/inmo/tgbotapi/requests/abstracts/Request;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
public fun onRequestResultAbsent (Ldev/inmo/tgbotapi/requests/abstracts/Request;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
||||||
public fun onRequestResultPresented (Ljava/lang/Object;Ldev/inmo/tgbotapi/requests/abstracts/Request;Ldev/inmo/tgbotapi/bot/ktor/KtorCallFactory;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
public fun onRequestResultPresented (Ljava/lang/Object;Ldev/inmo/tgbotapi/requests/abstracts/Request;Ldev/inmo/tgbotapi/bot/ktor/KtorCallFactory;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
||||||
public fun onRequestReturnResult-3t6e044 (Ljava/lang/Object;Ldev/inmo/tgbotapi/requests/abstracts/Request;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
public fun onRequestReturnResult-3t6e044 (Ljava/lang/Object;Ldev/inmo/tgbotapi/requests/abstracts/Request;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
||||||
@@ -31911,16 +31903,6 @@ public final class dev/inmo/tgbotapi/utils/CausedByCancellationKt {
|
|||||||
public static final fun isCausedByCancellation (Ljava/lang/Throwable;)Z
|
public static final fun isCausedByCancellation (Ljava/lang/Throwable;)Z
|
||||||
}
|
}
|
||||||
|
|
||||||
public final class dev/inmo/tgbotapi/utils/CausedByKt {
|
|
||||||
public static final fun causedBy (Ljava/lang/Throwable;Lkotlin/reflect/KClass;Lkotlin/jvm/functions/Function1;)Ljava/lang/Throwable;
|
|
||||||
public static synthetic fun causedBy$default (Ljava/lang/Throwable;Lkotlin/reflect/KClass;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Ljava/lang/Throwable;
|
|
||||||
}
|
|
||||||
|
|
||||||
public final class dev/inmo/tgbotapi/utils/CausedByUnresolvedAddressExceptionKt {
|
|
||||||
public static final fun causedUnresolvedAddressException (Ljava/lang/Throwable;)Ljava/nio/channels/UnresolvedAddressException;
|
|
||||||
public static final fun isCausedUnresolvedAddressException (Ljava/lang/Throwable;)Z
|
|
||||||
}
|
|
||||||
|
|
||||||
public final class dev/inmo/tgbotapi/utils/DefaultKSLogKt {
|
public final class dev/inmo/tgbotapi/utils/DefaultKSLogKt {
|
||||||
public static final fun SetDefaultKTgBotAPIKSLog (ZLkotlin/jvm/functions/Function1;)V
|
public static final fun SetDefaultKTgBotAPIKSLog (ZLkotlin/jvm/functions/Function1;)V
|
||||||
public static synthetic fun SetDefaultKTgBotAPIKSLog$default (ZLkotlin/jvm/functions/Function1;ILjava/lang/Object;)V
|
public static synthetic fun SetDefaultKTgBotAPIKSLog$default (ZLkotlin/jvm/functions/Function1;ILjava/lang/Object;)V
|
||||||
|
|||||||
@@ -3,24 +3,9 @@ package dev.inmo.tgbotapi.bot.ktor
|
|||||||
import dev.inmo.tgbotapi.requests.abstracts.Request
|
import dev.inmo.tgbotapi.requests.abstracts.Request
|
||||||
|
|
||||||
interface TelegramBotPipelinesHandler {
|
interface TelegramBotPipelinesHandler {
|
||||||
/**
|
|
||||||
* Will be called when any exception will happen due to the [request] handling inside of limiter block. This method
|
|
||||||
* will be called for each exception happened during call factory call
|
|
||||||
*/
|
|
||||||
suspend fun <T: Any> onRequestExceptionInLimiter(
|
|
||||||
request: Request<T>,
|
|
||||||
t: Throwable
|
|
||||||
): T? = null
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Will be called when any exception will happen due to the [request] handling. If returns value - that value
|
* Will be called when any exception will happen due to the [request] handling. If returns value - that value
|
||||||
* will be returned from [dev.inmo.tgbotapi.bot.RequestsExecutor.execute] instead. In difference with
|
* will be returned from [dev.inmo.tgbotapi.bot.RequestsExecutor.execute] instead
|
||||||
* [onRequestExceptionInLimiter], this method will be called only AFTER
|
|
||||||
* [dev.inmo.tgbotapi.bot.settings.limiters.RequestLimiter] will pass result of call factory execution outside of
|
|
||||||
* its [dev.inmo.tgbotapi.bot.settings.limiters.RequestLimiter.limit] function
|
|
||||||
*
|
|
||||||
* @see dev.inmo.tgbotapi.bot.ktor.base.DefaultKtorRequestsExecutor
|
|
||||||
* @see dev.inmo.tgbotapi.bot.settings.limiters.ExceptionsOnlyLimiter
|
|
||||||
*/
|
*/
|
||||||
suspend fun <T: Any> onRequestException(
|
suspend fun <T: Any> onRequestException(
|
||||||
request: Request<T>,
|
request: Request<T>,
|
||||||
|
|||||||
@@ -53,33 +53,29 @@ class DefaultKtorRequestsExecutor internal constructor(
|
|||||||
logger.v { "Start request $request" }
|
logger.v { "Start request $request" }
|
||||||
pipelineStepsHolder.onBeforeSearchCallFactory(request, callsFactories)
|
pipelineStepsHolder.onBeforeSearchCallFactory(request, callsFactories)
|
||||||
requestsLimiter.limit(request) {
|
requestsLimiter.limit(request) {
|
||||||
runCatching {
|
var result: T? = null
|
||||||
var result: T? = null
|
lateinit var factoryHandledRequest: KtorCallFactory
|
||||||
lateinit var factoryHandledRequest: KtorCallFactory
|
for (potentialFactory in callsFactories) {
|
||||||
for (potentialFactory in callsFactories) {
|
pipelineStepsHolder.onBeforeCallFactoryMakeCall(request, potentialFactory)
|
||||||
pipelineStepsHolder.onBeforeCallFactoryMakeCall(request, potentialFactory)
|
logger.v { "Trying factory $potentialFactory for $request" }
|
||||||
logger.v { "Trying factory $potentialFactory for $request" }
|
val resultFromFactory = potentialFactory.makeCall(
|
||||||
val resultFromFactory = potentialFactory.makeCall(
|
client,
|
||||||
client,
|
telegramAPIUrlsKeeper,
|
||||||
telegramAPIUrlsKeeper,
|
request,
|
||||||
request,
|
jsonFormatter
|
||||||
jsonFormatter
|
)
|
||||||
)
|
logger.v { "Result of factory $potentialFactory handling $request: $resultFromFactory" }
|
||||||
logger.v { "Result of factory $potentialFactory handling $request: $resultFromFactory" }
|
result = pipelineStepsHolder.onAfterCallFactoryMakeCall(resultFromFactory, request, potentialFactory)
|
||||||
result = pipelineStepsHolder.onAfterCallFactoryMakeCall(resultFromFactory, request, potentialFactory)
|
logger.v { "Result of pipeline $pipelineStepsHolder handling $resultFromFactory: $result" }
|
||||||
logger.v { "Result of pipeline $pipelineStepsHolder handling $resultFromFactory: $result" }
|
if (result != null) {
|
||||||
if (result != null) {
|
factoryHandledRequest = potentialFactory
|
||||||
factoryHandledRequest = potentialFactory
|
break
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
result ?.let {
|
result ?.let {
|
||||||
pipelineStepsHolder.onRequestResultPresented(it, request, factoryHandledRequest, callsFactories)
|
pipelineStepsHolder.onRequestResultPresented(it, request, factoryHandledRequest, callsFactories)
|
||||||
} ?: pipelineStepsHolder.onRequestResultAbsent(request, callsFactories) ?: error("Can't execute request: $request")
|
} ?: pipelineStepsHolder.onRequestResultAbsent(request, callsFactories) ?: error("Can't execute request: $request")
|
||||||
}.onFailure { e ->
|
|
||||||
pipelineStepsHolder.onRequestExceptionInLimiter(request, e) ?.let { return@let it } ?: throw e
|
|
||||||
}.getOrThrow()
|
|
||||||
}
|
}
|
||||||
}.let {
|
}.let {
|
||||||
val result = it.exceptionOrNull() ?.let { e ->
|
val result = it.exceptionOrNull() ?.let { e ->
|
||||||
|
|||||||
@@ -31,16 +31,9 @@ open class TelegramBotMiddleware(
|
|||||||
internal val onRequestResultPresented: (suspend (result: Any, request: Request<*>, resultCallFactory: KtorCallFactory, callsFactories: List<KtorCallFactory>) -> Any?)? = null,
|
internal val onRequestResultPresented: (suspend (result: Any, request: Request<*>, resultCallFactory: KtorCallFactory, callsFactories: List<KtorCallFactory>) -> Any?)? = null,
|
||||||
internal val onRequestResultAbsent: (suspend (request: Request<*>, callsFactories: List<KtorCallFactory>) -> Any?)? = null,
|
internal val onRequestResultAbsent: (suspend (request: Request<*>, callsFactories: List<KtorCallFactory>) -> Any?)? = null,
|
||||||
internal val onRequestReturnResult: (suspend (result: Result<*>, request: Request<*>, callsFactories: List<KtorCallFactory>) -> Result<Any?>?)? = null,
|
internal val onRequestReturnResult: (suspend (result: Result<*>, request: Request<*>, callsFactories: List<KtorCallFactory>) -> Result<Any?>?)? = null,
|
||||||
internal val onRequestExceptionInLimiter: (suspend (request: Request<*>, t: Throwable?) -> Any?)? = null,
|
|
||||||
val id: String = uuid4().toString()
|
val id: String = uuid4().toString()
|
||||||
) : TelegramBotPipelinesHandler {
|
) : TelegramBotPipelinesHandler {
|
||||||
object ResultAbsence : Throwable()
|
object ResultAbsence : Throwable()
|
||||||
|
|
||||||
override suspend fun <T : Any> onRequestExceptionInLimiter(request: Request<T>, t: Throwable): T? {
|
|
||||||
@Suppress("UNCHECKED_CAST")
|
|
||||||
return onRequestExceptionInLimiter ?.invoke(request, t) as? T
|
|
||||||
}
|
|
||||||
|
|
||||||
override suspend fun <T : Any> onRequestException(request: Request<T>, t: Throwable): T? {
|
override suspend fun <T : Any> onRequestException(request: Request<T>, t: Throwable): T? {
|
||||||
@Suppress("UNCHECKED_CAST")
|
@Suppress("UNCHECKED_CAST")
|
||||||
return onRequestException ?.invoke(request, t) as? T
|
return onRequestException ?.invoke(request, t) as? T
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ import dev.inmo.tgbotapi.requests.abstracts.Request
|
|||||||
|
|
||||||
@Warning("This API is experimental and subject of changes")
|
@Warning("This API is experimental and subject of changes")
|
||||||
class TelegramBotMiddlewareBuilder {
|
class TelegramBotMiddlewareBuilder {
|
||||||
var onRequestExceptionInLimiter: (suspend (request: Request<*>, t: Throwable?) -> Any?)? = null
|
|
||||||
var onRequestException: (suspend (request: Request<*>, t: Throwable?) -> Any?)? = null
|
var onRequestException: (suspend (request: Request<*>, t: Throwable?) -> Any?)? = null
|
||||||
var onBeforeSearchCallFactory: (suspend (request: Request<*>, callsFactories: List<KtorCallFactory>) -> Unit)? = null
|
var onBeforeSearchCallFactory: (suspend (request: Request<*>, callsFactories: List<KtorCallFactory>) -> Unit)? = null
|
||||||
var onBeforeCallFactoryMakeCall: (suspend (request: Request<*>, potentialFactory: KtorCallFactory) -> Unit)? = null
|
var onBeforeCallFactoryMakeCall: (suspend (request: Request<*>, potentialFactory: KtorCallFactory) -> Unit)? = null
|
||||||
@@ -18,12 +17,6 @@ class TelegramBotMiddlewareBuilder {
|
|||||||
var onRequestReturnResult: (suspend (result: Result<*>, request: Request<*>, callsFactories: List<KtorCallFactory>) -> Result<Any?>?)? = null
|
var onRequestReturnResult: (suspend (result: Result<*>, request: Request<*>, callsFactories: List<KtorCallFactory>) -> Result<Any?>?)? = null
|
||||||
var id: String = uuid4().toString()
|
var id: String = uuid4().toString()
|
||||||
|
|
||||||
/**
|
|
||||||
* Useful way to set [onRequestException]
|
|
||||||
*/
|
|
||||||
fun doOnRequestExceptionInLimiter(block: suspend (request: Request<*>, t: Throwable?) -> Any?) {
|
|
||||||
onRequestExceptionInLimiter = block
|
|
||||||
}
|
|
||||||
/**
|
/**
|
||||||
* Useful way to set [onRequestException]
|
* Useful way to set [onRequestException]
|
||||||
*/
|
*/
|
||||||
@@ -70,7 +63,6 @@ class TelegramBotMiddlewareBuilder {
|
|||||||
@Warning("This API is experimental and subject of changes")
|
@Warning("This API is experimental and subject of changes")
|
||||||
fun build(): TelegramBotMiddleware {
|
fun build(): TelegramBotMiddleware {
|
||||||
return TelegramBotMiddleware(
|
return TelegramBotMiddleware(
|
||||||
onRequestExceptionInLimiter = onRequestExceptionInLimiter,
|
|
||||||
onRequestException = onRequestException,
|
onRequestException = onRequestException,
|
||||||
onBeforeSearchCallFactory = onBeforeSearchCallFactory,
|
onBeforeSearchCallFactory = onBeforeSearchCallFactory,
|
||||||
onBeforeCallFactoryMakeCall = onBeforeCallFactoryMakeCall,
|
onBeforeCallFactoryMakeCall = onBeforeCallFactoryMakeCall,
|
||||||
@@ -86,7 +78,6 @@ class TelegramBotMiddlewareBuilder {
|
|||||||
@Warning("This API is experimental and subject of changes")
|
@Warning("This API is experimental and subject of changes")
|
||||||
fun from(middleware: TelegramBotMiddleware, additionalSetup: TelegramBotMiddlewareBuilder.() -> Unit): TelegramBotMiddleware {
|
fun from(middleware: TelegramBotMiddleware, additionalSetup: TelegramBotMiddlewareBuilder.() -> Unit): TelegramBotMiddleware {
|
||||||
return TelegramBotMiddlewareBuilder().apply {
|
return TelegramBotMiddlewareBuilder().apply {
|
||||||
onRequestExceptionInLimiter = middleware.onRequestExceptionInLimiter
|
|
||||||
onRequestException = middleware.onRequestException
|
onRequestException = middleware.onRequestException
|
||||||
onBeforeSearchCallFactory = middleware.onBeforeSearchCallFactory
|
onBeforeSearchCallFactory = middleware.onBeforeSearchCallFactory
|
||||||
onBeforeCallFactoryMakeCall = middleware.onBeforeCallFactoryMakeCall
|
onBeforeCallFactoryMakeCall = middleware.onBeforeCallFactoryMakeCall
|
||||||
|
|||||||
@@ -10,12 +10,6 @@ import dev.inmo.tgbotapi.requests.abstracts.Request
|
|||||||
class TelegramBotMiddlewaresPipelinesHandler(
|
class TelegramBotMiddlewaresPipelinesHandler(
|
||||||
private val middlewares: List<TelegramBotMiddleware> = emptyList()
|
private val middlewares: List<TelegramBotMiddleware> = emptyList()
|
||||||
) : TelegramBotPipelinesHandler {
|
) : TelegramBotPipelinesHandler {
|
||||||
override suspend fun <T : Any> onRequestExceptionInLimiter(request: Request<T>, t: Throwable): T? {
|
|
||||||
return middlewares.firstNotNullOfOrNull {
|
|
||||||
it.onRequestExceptionInLimiter(request, t)
|
|
||||||
} ?: super.onRequestExceptionInLimiter(request, t)
|
|
||||||
}
|
|
||||||
|
|
||||||
override suspend fun <T : Any> onRequestException(request: Request<T>, t: Throwable): T? {
|
override suspend fun <T : Any> onRequestException(request: Request<T>, t: Throwable): T? {
|
||||||
return middlewares.firstNotNullOfOrNull {
|
return middlewares.firstNotNullOfOrNull {
|
||||||
it.onRequestException(request, t)
|
it.onRequestException(request, t)
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
package dev.inmo.tgbotapi.bot.settings.limiters
|
package dev.inmo.tgbotapi.bot.settings.limiters
|
||||||
|
|
||||||
import dev.inmo.tgbotapi.bot.exceptions.TooMuchRequestsException
|
import dev.inmo.tgbotapi.bot.exceptions.TooMuchRequestsException
|
||||||
import dev.inmo.tgbotapi.utils.isCausedUnresolvedAddressException
|
|
||||||
import io.ktor.util.network.UnresolvedAddressException
|
|
||||||
import kotlinx.coroutines.delay
|
import kotlinx.coroutines.delay
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -15,10 +13,10 @@ object ExceptionsOnlyLimiter : RequestLimiter {
|
|||||||
result = runCatching {
|
result = runCatching {
|
||||||
block()
|
block()
|
||||||
}.onFailure {
|
}.onFailure {
|
||||||
when {
|
if (it is TooMuchRequestsException) {
|
||||||
it.isCausedUnresolvedAddressException() -> delay(1000L)
|
delay(it.retryAfter.leftToRetry)
|
||||||
it is TooMuchRequestsException -> delay(it.retryAfter.leftToRetry)
|
} else {
|
||||||
else -> throw it
|
throw it
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,15 +0,0 @@
|
|||||||
package dev.inmo.tgbotapi.utils
|
|
||||||
|
|
||||||
import kotlin.reflect.KClass
|
|
||||||
|
|
||||||
fun <T : Throwable> Throwable.causedBy(kclass: KClass<T>, additionalFilterOnHappened: (T) -> T? = { it }): T? {
|
|
||||||
var current = this
|
|
||||||
while (kclass.isInstance(current) == false) {
|
|
||||||
when {
|
|
||||||
kclass.isInstance(current) -> return additionalFilterOnHappened(current as T)
|
|
||||||
else -> current = current.cause ?: return null
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return current as T
|
|
||||||
}
|
|
||||||
@@ -14,9 +14,16 @@ import kotlinx.coroutines.CancellationException
|
|||||||
* @return the first [CancellationException] found in the cause chain, or `null` if none present
|
* @return the first [CancellationException] found in the cause chain, or `null` if none present
|
||||||
*/
|
*/
|
||||||
fun Throwable.causedCancellationException(): CancellationException? {
|
fun Throwable.causedCancellationException(): CancellationException? {
|
||||||
return causedBy(CancellationException::class) {
|
var current = this
|
||||||
it.takeIf { it.cause == null }
|
while (current !is CancellationException) {
|
||||||
|
when {
|
||||||
|
// It is possible, that API will be changed and cancellation will be caused by something else
|
||||||
|
current is CancellationException && current.cause == null -> return current
|
||||||
|
else -> current = current.cause ?: return null
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return current
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1,9 +0,0 @@
|
|||||||
package dev.inmo.tgbotapi.utils
|
|
||||||
|
|
||||||
import io.ktor.util.network.UnresolvedAddressException
|
|
||||||
|
|
||||||
fun Throwable.causedUnresolvedAddressException(): UnresolvedAddressException? {
|
|
||||||
return causedBy(UnresolvedAddressException::class)
|
|
||||||
}
|
|
||||||
|
|
||||||
fun Throwable.isCausedUnresolvedAddressException(): Boolean = causedUnresolvedAddressException() != null
|
|
||||||
@@ -18,11 +18,8 @@ import dev.inmo.tgbotapi.updateshandlers.*
|
|||||||
import dev.inmo.tgbotapi.utils.DefaultKTgBotAPIKSLog
|
import dev.inmo.tgbotapi.utils.DefaultKTgBotAPIKSLog
|
||||||
import dev.inmo.tgbotapi.utils.causedCancellationException
|
import dev.inmo.tgbotapi.utils.causedCancellationException
|
||||||
import dev.inmo.tgbotapi.utils.isCausedByCancellation
|
import dev.inmo.tgbotapi.utils.isCausedByCancellation
|
||||||
import dev.inmo.tgbotapi.utils.isCausedUnresolvedAddressException
|
|
||||||
import dev.inmo.tgbotapi.utils.subscribeWithBotLogger
|
import dev.inmo.tgbotapi.utils.subscribeWithBotLogger
|
||||||
import io.ktor.client.network.sockets.ConnectTimeoutException
|
|
||||||
import io.ktor.client.plugins.HttpRequestTimeoutException
|
import io.ktor.client.plugins.HttpRequestTimeoutException
|
||||||
import io.ktor.util.network.UnresolvedAddressException
|
|
||||||
import io.ktor.utils.io.CancellationException
|
import io.ktor.utils.io.CancellationException
|
||||||
import kotlinx.coroutines.*
|
import kotlinx.coroutines.*
|
||||||
import kotlinx.coroutines.flow.*
|
import kotlinx.coroutines.flow.*
|
||||||
@@ -130,16 +127,12 @@ fun TelegramBot.longPollingFlow(
|
|||||||
}.onFailure { e ->
|
}.onFailure { e ->
|
||||||
runCatchingLogging(logger = Log) {
|
runCatchingLogging(logger = Log) {
|
||||||
val isHttpRequestTimeoutException =
|
val isHttpRequestTimeoutException =
|
||||||
e is ConnectTimeoutException || e is HttpRequestTimeoutException || (e is CommonBotException && e.cause is HttpRequestTimeoutException)
|
e is HttpRequestTimeoutException || (e is CommonBotException && e.cause is HttpRequestTimeoutException)
|
||||||
if (isHttpRequestTimeoutException && autoSkipTimeoutExceptions) {
|
if (isHttpRequestTimeoutException && autoSkipTimeoutExceptions) {
|
||||||
return@onFailure
|
return@onFailure
|
||||||
}
|
}
|
||||||
|
|
||||||
exceptionsHandler?.invoke(e)
|
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)
|
delay(1000L)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#!/usr/bin/env kotlin
|
#!/usr/bin/env kotlin
|
||||||
// This script will read Event
|
// This script will read Event
|
||||||
@file:DependsOn("org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.0")
|
@file:DependsOn("org.jetbrains.kotlinx:kotlinx-serialization-json:1.9.0")
|
||||||
|
|
||||||
import kotlinx.serialization.json.*
|
import kotlinx.serialization.json.*
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|||||||
Reference in New Issue
Block a user