From d2228e274c039e741979b072e0eeff2ddce674ee Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Thu, 13 Aug 2020 15:28:10 +0600 Subject: [PATCH] sentMessages extension for FlowsUpdatesFilter --- CHANGELOG.md | 2 ++ .../extensions/utils/FlowsAggregation.kt | 8 ++++++++ .../extensions/utils/shortcuts/FlowsUpdatesFilter.kt | 12 ++++++++++++ 3 files changed, 22 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index cd0f9d8e5e..f8fbffb0d7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -56,6 +56,8 @@ * Extensions for `FlowUpdatesFilter` were added: * `FlowsUpdatesFilter#allSentMessagesFlow` (combination of `messageFlow` and `channelPostFlow`) * `FlowsUpdatesFilter#allSentMediaGroupsFlow` (combination of `messageMediaGroupFlow` and `channelPostMediaGroupFlow`) + * `FlowsUpdatesFilter#sentMessages` + * `FlowsUpdatesFilter#sentMessagesWithMediaGroups` * `FlowsUpdatesFilter#photoMessagesWithMediaGroups` * `FlowsUpdatesFilter#imageMessagesWithMediaGroups` * `FlowsUpdatesFilter#videoMessagesWithMediaGroups` diff --git a/TelegramBotAPI-extensions-utils/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/extensions/utils/FlowsAggregation.kt b/TelegramBotAPI-extensions-utils/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/extensions/utils/FlowsAggregation.kt index eba50df519..89398c7e10 100644 --- a/TelegramBotAPI-extensions-utils/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/extensions/utils/FlowsAggregation.kt +++ b/TelegramBotAPI-extensions-utils/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/extensions/utils/FlowsAggregation.kt @@ -29,3 +29,11 @@ fun Flow>.flatMap(): Flow = flow { } } } + +fun Flow.flatMap(mapper: (T) -> Iterable): Flow = flow { + collect { + mapper(it).forEach { + emit(it) + } + } +} diff --git a/TelegramBotAPI-extensions-utils/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/extensions/utils/shortcuts/FlowsUpdatesFilter.kt b/TelegramBotAPI-extensions-utils/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/extensions/utils/shortcuts/FlowsUpdatesFilter.kt index 2f968339d8..ff7a3705f1 100644 --- a/TelegramBotAPI-extensions-utils/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/extensions/utils/shortcuts/FlowsUpdatesFilter.kt +++ b/TelegramBotAPI-extensions-utils/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/extensions/utils/shortcuts/FlowsUpdatesFilter.kt @@ -75,6 +75,18 @@ inline fun FlowsUpdatesFilter.filterMediaGroupMes } ?: messageMediaGroupFlow).filterMediaGroupMessages() } +fun FlowsUpdatesFilter.sentMessages( + scopeToIncludeChannels: CoroutineScope? = null +): Flow> = filterContentMessages(scopeToIncludeChannels) +fun FlowsUpdatesFilter.sentMessagesWithMediaGroups( + scopeToIncludeChannels: CoroutineScope? = null +): Flow> = merge( + sentMessages(scopeToIncludeChannels), + mediaGroupMessages(scopeToIncludeChannels).flatMap { + it.mapNotNull { it as? ContentMessage } + } +) + fun Flow.animationMessages() = filterContentMessages() fun FlowsUpdatesFilter.animationMessages( scopeToIncludeChannels: CoroutineScope? = null