diff --git a/tgbotapi.extensions.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/expectations/WaitContent.kt b/tgbotapi.extensions.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/expectations/WaitContent.kt index 0b9e5a6df4..5432251eb3 100644 --- a/tgbotapi.extensions.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/expectations/WaitContent.kt +++ b/tgbotapi.extensions.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/expectations/WaitContent.kt @@ -105,32 +105,37 @@ suspend fun BehaviourContext.waitAudioMediaGroup( count: Int = 1, initRequest: Request<*>? = null, errorFactory: NullableRequestBuilder<*> = { null }, + includeMediaGroups: Boolean = true, filter: ContentMessageToContentMapper? = null -) = waitContent(count, initRequest, true, errorFactory, filter) +) = waitContent(count, initRequest, includeMediaGroups, errorFactory, filter) suspend fun BehaviourContext.waitDocumentMediaGroup( count: Int = 1, initRequest: Request<*>? = null, errorFactory: NullableRequestBuilder<*> = { null }, + includeMediaGroups: Boolean = true, filter: ContentMessageToContentMapper? = null -) = waitContent(count, initRequest, true, errorFactory, filter) +) = waitContent(count, initRequest, includeMediaGroups, errorFactory, filter) suspend fun BehaviourContext.waitMedia( count: Int = 1, initRequest: Request<*>? = null, errorFactory: NullableRequestBuilder<*> = { null }, + includeMediaGroups: Boolean = true, filter: ContentMessageToContentMapper? = null -) = waitContent(count, initRequest, true, errorFactory, filter) +) = waitContent(count, initRequest, includeMediaGroups, errorFactory, filter) suspend fun BehaviourContext.waitMediaGroup( count: Int = 1, initRequest: Request<*>? = null, errorFactory: NullableRequestBuilder<*> = { null }, + includeMediaGroups: Boolean = true, filter: ContentMessageToContentMapper? = null -) = waitContent(count, initRequest, true, errorFactory, filter) +) = waitContent(count, initRequest, includeMediaGroups, errorFactory, filter) suspend fun BehaviourContext.waitVisualMediaGroup( count: Int = 1, initRequest: Request<*>? = null, errorFactory: NullableRequestBuilder<*> = { null }, + includeMediaGroups: Boolean = true, filter: ContentMessageToContentMapper? = null -) = waitContent(count, initRequest, true, errorFactory, filter) +) = waitContent(count, initRequest, includeMediaGroups, errorFactory, filter) suspend fun BehaviourContext.waitAnimation( count: Int = 1, initRequest: Request<*>? = null, @@ -141,20 +146,23 @@ suspend fun BehaviourContext.waitAudio( count: Int = 1, initRequest: Request<*>? = null, errorFactory: NullableRequestBuilder<*> = { null }, + includeMediaGroups: Boolean = true, filter: ContentMessageToContentMapper? = null -) = waitContent(count, initRequest, true, errorFactory, filter) +) = waitContent(count, initRequest, includeMediaGroups, errorFactory, filter) suspend fun BehaviourContext.waitDocument( count: Int = 1, initRequest: Request<*>? = null, errorFactory: NullableRequestBuilder<*> = { null }, + includeMediaGroups: Boolean = true, filter: ContentMessageToContentMapper? = null -) = waitContent(count, initRequest, true, errorFactory, filter) +) = waitContent(count, initRequest, includeMediaGroups, errorFactory, filter) suspend fun BehaviourContext.waitPhoto( count: Int = 1, initRequest: Request<*>? = null, errorFactory: NullableRequestBuilder<*> = { null }, + includeMediaGroups: Boolean = true, filter: ContentMessageToContentMapper? = null -) = waitContent(count, initRequest, true, errorFactory, filter) +) = waitContent(count, initRequest, includeMediaGroups, errorFactory, filter) suspend fun BehaviourContext.waitSticker( count: Int = 1, initRequest: Request<*>? = null, @@ -165,8 +173,9 @@ suspend fun BehaviourContext.waitVideo( count: Int = 1, initRequest: Request<*>? = null, errorFactory: NullableRequestBuilder<*> = { null }, + includeMediaGroups: Boolean = true, filter: ContentMessageToContentMapper? = null -) = waitContent(count, initRequest, true, errorFactory, filter) +) = waitContent(count, initRequest, includeMediaGroups, errorFactory, filter) suspend fun BehaviourContext.waitVideoNote( count: Int = 1, initRequest: Request<*>? = null, @@ -178,7 +187,7 @@ suspend fun BehaviourContext.waitVoice( initRequest: Request<*>? = null, errorFactory: NullableRequestBuilder<*> = { null }, filter: ContentMessageToContentMapper? = null -) = waitContent(count, initRequest, true, errorFactory, filter) +) = waitContent(count, initRequest, false, errorFactory, filter) suspend fun BehaviourContext.waitInvoice( count: Int = 1, initRequest: Request<*>? = null, diff --git a/tgbotapi.extensions.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/triggers_handling/ContentTriggers.kt b/tgbotapi.extensions.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/triggers_handling/ContentTriggers.kt index 5dee1c8736..d5245022da 100644 --- a/tgbotapi.extensions.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/triggers_handling/ContentTriggers.kt +++ b/tgbotapi.extensions.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/triggers_handling/ContentTriggers.kt @@ -106,29 +106,34 @@ suspend fun BehaviourContext.onAudioMediaGroup( ) = onContent(includeFilterByChatInBehaviourSubContext, true, additionalFilter, scenarioReceiver) suspend fun BehaviourContext.onDocumentMediaGroup( includeFilterByChatInBehaviourSubContext: Boolean = true, + includeMediaGroups: Boolean = true, additionalFilter: (suspend (ContentMessage) -> Boolean)? = null, scenarioReceiver: BehaviourContextAndTypeReceiver> -) = onContent(includeFilterByChatInBehaviourSubContext, true, additionalFilter, scenarioReceiver) +) = onContent(includeFilterByChatInBehaviourSubContext, includeMediaGroups, additionalFilter, scenarioReceiver) suspend fun BehaviourContext.onMediaCollection( includeFilterByChatInBehaviourSubContext: Boolean = true, + includeMediaGroups: Boolean = true, additionalFilter: (suspend (ContentMessage>) -> Boolean)? = null, scenarioReceiver: BehaviourContextAndTypeReceiver>> -) = onContent(includeFilterByChatInBehaviourSubContext, true, additionalFilter, scenarioReceiver) +) = onContent(includeFilterByChatInBehaviourSubContext, includeMediaGroups, additionalFilter, scenarioReceiver) suspend fun BehaviourContext.onMedia( includeFilterByChatInBehaviourSubContext: Boolean = true, + includeMediaGroups: Boolean = true, additionalFilter: (suspend (ContentMessage) -> Boolean)? = null, scenarioReceiver: BehaviourContextAndTypeReceiver> -) = onContent(includeFilterByChatInBehaviourSubContext, true, additionalFilter, scenarioReceiver) +) = onContent(includeFilterByChatInBehaviourSubContext, includeMediaGroups, additionalFilter, scenarioReceiver) suspend fun BehaviourContext.onMediaGroup( includeFilterByChatInBehaviourSubContext: Boolean = true, + includeMediaGroups: Boolean = true, additionalFilter: (suspend (ContentMessage) -> Boolean)? = null, scenarioReceiver: BehaviourContextAndTypeReceiver> -) = onContent(includeFilterByChatInBehaviourSubContext, true, additionalFilter, scenarioReceiver) +) = onContent(includeFilterByChatInBehaviourSubContext, includeMediaGroups, additionalFilter, scenarioReceiver) suspend fun BehaviourContext.onVisualMediaGroup( includeFilterByChatInBehaviourSubContext: Boolean = true, + includeMediaGroups: Boolean = true, additionalFilter: (suspend (ContentMessage) -> Boolean)? = null, scenarioReceiver: BehaviourContextAndTypeReceiver> -) = onContent(includeFilterByChatInBehaviourSubContext, true, additionalFilter, scenarioReceiver) +) = onContent(includeFilterByChatInBehaviourSubContext, includeMediaGroups, additionalFilter, scenarioReceiver) suspend fun BehaviourContext.onAnimation( includeFilterByChatInBehaviourSubContext: Boolean = true, additionalFilter: (suspend (ContentMessage) -> Boolean)? = null, @@ -136,19 +141,22 @@ suspend fun BehaviourContext.onAnimation( ) = onContent(includeFilterByChatInBehaviourSubContext, false, additionalFilter, scenarioReceiver) suspend fun BehaviourContext.onAudio( includeFilterByChatInBehaviourSubContext: Boolean = true, + includeMediaGroups: Boolean = true, additionalFilter: (suspend (ContentMessage) -> Boolean)? = null, scenarioReceiver: BehaviourContextAndTypeReceiver> -) = onContent(includeFilterByChatInBehaviourSubContext, true, additionalFilter, scenarioReceiver) +) = onContent(includeFilterByChatInBehaviourSubContext, includeMediaGroups, additionalFilter, scenarioReceiver) suspend fun BehaviourContext.onDocument( includeFilterByChatInBehaviourSubContext: Boolean = true, + includeMediaGroups: Boolean = true, additionalFilter: (suspend (ContentMessage) -> Boolean)? = null, scenarioReceiver: BehaviourContextAndTypeReceiver> -) = onContent(includeFilterByChatInBehaviourSubContext, true, additionalFilter, scenarioReceiver) +) = onContent(includeFilterByChatInBehaviourSubContext, includeMediaGroups, additionalFilter, scenarioReceiver) suspend fun BehaviourContext.onPhoto( includeFilterByChatInBehaviourSubContext: Boolean = true, + includeMediaGroups: Boolean = true, additionalFilter: (suspend (ContentMessage) -> Boolean)? = null, scenarioReceiver: BehaviourContextAndTypeReceiver> -) = onContent(includeFilterByChatInBehaviourSubContext, true, additionalFilter, scenarioReceiver) +) = onContent(includeFilterByChatInBehaviourSubContext, includeMediaGroups, additionalFilter, scenarioReceiver) suspend fun BehaviourContext.onSticker( includeFilterByChatInBehaviourSubContext: Boolean = true, additionalFilter: (suspend (ContentMessage) -> Boolean)? = null, @@ -156,9 +164,10 @@ suspend fun BehaviourContext.onSticker( ) = onContent(includeFilterByChatInBehaviourSubContext, false, additionalFilter, scenarioReceiver) suspend fun BehaviourContext.onVideo( includeFilterByChatInBehaviourSubContext: Boolean = true, + includeMediaGroups: Boolean = true, additionalFilter: (suspend (ContentMessage) -> Boolean)? = null, scenarioReceiver: BehaviourContextAndTypeReceiver> -) = onContent(includeFilterByChatInBehaviourSubContext, true, additionalFilter, scenarioReceiver) +) = onContent(includeFilterByChatInBehaviourSubContext, includeMediaGroups, additionalFilter, scenarioReceiver) suspend fun BehaviourContext.onVideoNote( includeFilterByChatInBehaviourSubContext: Boolean = true, additionalFilter: (suspend (ContentMessage) -> Boolean)? = null,