From ea19c10f413749ea46557e3183fd87c35633885c Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Fri, 18 Mar 2022 19:18:34 +0600 Subject: [PATCH 1/5] start 0.38.8 --- CHANGELOG.md | 2 ++ gradle.properties | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 501b930656..1c2c650eee 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,7 @@ # TelegramBotAPI changelog +## 0.38.8 + ## 0.38.7 * `Common`: diff --git a/gradle.properties b/gradle.properties index 75f0d455ff..58c27172f2 100644 --- a/gradle.properties +++ b/gradle.properties @@ -20,6 +20,6 @@ javax_activation_version=1.1.1 dokka_version=1.6.10 library_group=dev.inmo -library_version=0.38.7 +library_version=0.38.8 github_release_plugin_version=2.2.12 From be710612b521612088b2f30781de7a8204e80788 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Sat, 19 Mar 2022 09:55:48 +0600 Subject: [PATCH 2/5] Update MediaGroupTriggers.kt --- .../behaviour_builder/triggers_handling/MediaGroupTriggers.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/triggers_handling/MediaGroupTriggers.kt b/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/triggers_handling/MediaGroupTriggers.kt index a308ecf3c0..bb1159668e 100644 --- a/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/triggers_handling/MediaGroupTriggers.kt +++ b/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/triggers_handling/MediaGroupTriggers.kt @@ -22,7 +22,7 @@ internal suspend inline fun >, Any> = ByChatMediaGroupMarkerFactory, noinline scenarioReceiver: CustomBehaviourContextAndTypeReceiver>> ) = on(markerFactory, initialFilter, subcontextUpdatesFilter, scenarioReceiver) { - (it.asSentMediaGroupUpdate() ?.data ?.takeIf { it.all { it is T } } as? List>) ?.let(::listOfNotNull) + (it.asSentMediaGroupUpdate() ?.data ?.takeIf { it.all { it.content is T } } as? List>) ?.let(::listOfNotNull) } /** From bace2724daa2145a310ca3f7d4d81fb34eff27e4 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Sat, 19 Mar 2022 10:15:44 +0600 Subject: [PATCH 3/5] a little bit refactor MediaGroupTriggers.kt --- .../triggers_handling/MediaGroupTriggers.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/triggers_handling/MediaGroupTriggers.kt b/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/triggers_handling/MediaGroupTriggers.kt index bb1159668e..b523abbc3a 100644 --- a/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/triggers_handling/MediaGroupTriggers.kt +++ b/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/triggers_handling/MediaGroupTriggers.kt @@ -22,7 +22,11 @@ internal suspend inline fun >, Any> = ByChatMediaGroupMarkerFactory, noinline scenarioReceiver: CustomBehaviourContextAndTypeReceiver>> ) = on(markerFactory, initialFilter, subcontextUpdatesFilter, scenarioReceiver) { - (it.asSentMediaGroupUpdate() ?.data ?.takeIf { it.all { it.content is T } } as? List>) ?.let(::listOfNotNull) + (it.asSentMediaGroupUpdate() ?.data ?.takeIf { messages -> + messages.all { message -> + message.content is T + } + } as? List>) ?.let(::listOfNotNull) } /** From 553da0a3ee6f4e392808a153fb2a1724fa044e4e Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Sat, 19 Mar 2022 12:27:46 +0600 Subject: [PATCH 4/5] update dependencies and fill changelog --- CHANGELOG.md | 8 ++++++++ gradle.properties | 6 +++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1c2c650eee..d98edc2f55 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,14 @@ ## 0.38.8 +* `Common`: + * `Version`: + * `MicroUtils`: `0.9.12` -> `0.9.16` + * `Klock`: `2.6.2` -> `2.6.3` + * `Ktor`: `1.6.7` -> `1.6.8` +* `BehaviourBuilder`: + * Fixes in `onMediaGroup` and dependent functions + ## 0.38.7 * `Common`: diff --git a/gradle.properties b/gradle.properties index 58c27172f2..1eb82a8614 100644 --- a/gradle.properties +++ b/gradle.properties @@ -8,11 +8,11 @@ kotlin.incremental.js=true kotlin_version=1.6.10 kotlin_coroutines_version=1.6.0 kotlin_serialisation_runtime_version=1.3.2 -klock_version=2.6.2 +klock_version=2.6.3 uuid_version=0.4.0 -ktor_version=1.6.7 +ktor_version=1.6.8 -micro_utils_version=0.9.12 +micro_utils_version=0.9.16 javax_activation_version=1.1.1 From f6e819be62394bb813229c90f524dd8e1a63d0b2 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Sat, 19 Mar 2022 12:49:14 +0600 Subject: [PATCH 5/5] simpleFilter to list wrapper --- CHANGELOG.md | 4 ++++ .../behaviour_builder/utils/SimpleFilter.kt | 21 +++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d98edc2f55..f4fc57e948 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,10 @@ * `Ktor`: `1.6.7` -> `1.6.8` * `BehaviourBuilder`: * Fixes in `onMediaGroup` and dependent functions + * Add several new extensions for `SimpleFilter`: + * `SimpleFilter#listAll` + * `SimpleFilter#listAny` + * `SimpleFilter#listNone` ## 0.38.7 diff --git a/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/utils/SimpleFilter.kt b/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/utils/SimpleFilter.kt index 6383a8cbfc..45cdf3b004 100644 --- a/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/utils/SimpleFilter.kt +++ b/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/utils/SimpleFilter.kt @@ -4,6 +4,27 @@ typealias SimpleFilter = suspend (T) -> Boolean inline fun SimpleFilter(noinline block: SimpleFilter) = block +/** + * @return [SimpleFilter] which will return true in case when all the items in incoming data passed [this] filter + */ +fun SimpleFilter.listAll() = SimpleFilter> { + it.all { this@listAll(it) } +} + +/** + * @return [SimpleFilter] which will return true in case when there is any item in incoming data passed [this] filter + */ +fun SimpleFilter.listAny() = SimpleFilter> { + it.any { this@listAny(it) } +} + +/** + * @return [SimpleFilter] which will return true in case when there is no any item in incoming data passed [this] filter + */ +fun SimpleFilter.listNone() = SimpleFilter> { + it.none { this@listNone(it) } +} + /** * Makes an AND (&&) operation between [this] and [other] */