mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI.git
synced 2024-11-22 08:13:47 +00:00
fixes in builds and filling up functionality related to new classes
This commit is contained in:
parent
ee1c7c6533
commit
3d458b2dc6
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
* `Core`:
|
* `Core`:
|
||||||
* New type `TextedMediaContent` which will unite `TextedInput` and `MediaContent`
|
* New type `TextedMediaContent` which will unite `TextedInput` and `MediaContent`
|
||||||
* New type `TextedMediaGroupMediaInput` which will unite `TextedMediaContent` and `MediaGroupContent`
|
* New type `TextedMediaGroupMediaContent` which will unite `TextedMediaContent` and `MediaGroupContent`
|
||||||
* `MediaGroupContent` and all subsequent inheritors have been replaced to the package `dev.inmo.tgbotapi.types.message.content.media`
|
* `MediaGroupContent` and all subsequent inheritors have been replaced to the package `dev.inmo.tgbotapi.types.message.content.media`
|
||||||
* Add `reply` functions with the texted content with including of text
|
* Add `reply` functions with the texted content with including of text
|
||||||
|
|
||||||
|
@ -11,6 +11,10 @@ import dev.inmo.tgbotapi.types.message.abstracts.CommonMessage
|
|||||||
import dev.inmo.tgbotapi.types.message.content.*
|
import dev.inmo.tgbotapi.types.message.content.*
|
||||||
import dev.inmo.tgbotapi.types.message.content.abstracts.*
|
import dev.inmo.tgbotapi.types.message.content.abstracts.*
|
||||||
import dev.inmo.tgbotapi.types.message.content.media.*
|
import dev.inmo.tgbotapi.types.message.content.media.*
|
||||||
|
import dev.inmo.tgbotapi.types.message.content.media.AudioMediaGroupContent
|
||||||
|
import dev.inmo.tgbotapi.types.message.content.media.DocumentMediaGroupContent
|
||||||
|
import dev.inmo.tgbotapi.types.message.content.media.MediaGroupContent
|
||||||
|
import dev.inmo.tgbotapi.types.message.content.media.VisualMediaGroupContent
|
||||||
import dev.inmo.tgbotapi.types.message.payments.InvoiceContent
|
import dev.inmo.tgbotapi.types.message.payments.InvoiceContent
|
||||||
import dev.inmo.tgbotapi.types.update.MediaGroupUpdates.SentMediaGroupUpdate
|
import dev.inmo.tgbotapi.types.update.MediaGroupUpdates.SentMediaGroupUpdate
|
||||||
import dev.inmo.tgbotapi.types.update.abstracts.BaseSentMessageUpdate
|
import dev.inmo.tgbotapi.types.update.abstracts.BaseSentMessageUpdate
|
||||||
@ -197,6 +201,22 @@ suspend fun BehaviourContext.waitVisualMediaGroupContent(
|
|||||||
filter: SimpleFilter<CommonMessage<VisualMediaGroupContent>>? = null,
|
filter: SimpleFilter<CommonMessage<VisualMediaGroupContent>>? = null,
|
||||||
mapper: CommonMessageToContentMapper<VisualMediaGroupContent>? = null
|
mapper: CommonMessageToContentMapper<VisualMediaGroupContent>? = null
|
||||||
) = waitContent(count, initRequest, includeMediaGroups, errorFactory, filter, mapper)
|
) = waitContent(count, initRequest, includeMediaGroups, errorFactory, filter, mapper)
|
||||||
|
suspend fun BehaviourContext.waitTextedMediaGroupMediaContent(
|
||||||
|
initRequest: Request<*>? = null,
|
||||||
|
errorFactory: NullableRequestBuilder<*> = { null },
|
||||||
|
count: Int = 1,
|
||||||
|
includeMediaGroups: Boolean = true,
|
||||||
|
filter: SimpleFilter<CommonMessage<TextedMediaGroupMediaContent>>? = null,
|
||||||
|
mapper: CommonMessageToContentMapper<TextedMediaGroupMediaContent>? = null
|
||||||
|
) = waitContent(count, initRequest, includeMediaGroups, errorFactory, filter, mapper)
|
||||||
|
suspend fun BehaviourContext.waitTextedMediaContent(
|
||||||
|
initRequest: Request<*>? = null,
|
||||||
|
errorFactory: NullableRequestBuilder<*> = { null },
|
||||||
|
count: Int = 1,
|
||||||
|
includeMediaGroups: Boolean = true,
|
||||||
|
filter: SimpleFilter<CommonMessage<TextedMediaContent>>? = null,
|
||||||
|
mapper: CommonMessageToContentMapper<TextedMediaContent>? = null
|
||||||
|
) = waitContent(count, initRequest, includeMediaGroups, errorFactory, filter, mapper)
|
||||||
suspend fun BehaviourContext.waitAnimation(
|
suspend fun BehaviourContext.waitAnimation(
|
||||||
initRequest: Request<*>? = null,
|
initRequest: Request<*>? = null,
|
||||||
errorFactory: NullableRequestBuilder<*> = { null },
|
errorFactory: NullableRequestBuilder<*> = { null },
|
||||||
|
@ -12,6 +12,10 @@ import dev.inmo.tgbotapi.types.message.abstracts.MediaGroupMessage
|
|||||||
import dev.inmo.tgbotapi.types.message.content.*
|
import dev.inmo.tgbotapi.types.message.content.*
|
||||||
import dev.inmo.tgbotapi.types.message.content.abstracts.*
|
import dev.inmo.tgbotapi.types.message.content.abstracts.*
|
||||||
import dev.inmo.tgbotapi.types.message.content.media.*
|
import dev.inmo.tgbotapi.types.message.content.media.*
|
||||||
|
import dev.inmo.tgbotapi.types.message.content.media.AudioMediaGroupContent
|
||||||
|
import dev.inmo.tgbotapi.types.message.content.media.DocumentMediaGroupContent
|
||||||
|
import dev.inmo.tgbotapi.types.message.content.media.MediaGroupContent
|
||||||
|
import dev.inmo.tgbotapi.types.message.content.media.VisualMediaGroupContent
|
||||||
import dev.inmo.tgbotapi.types.message.payments.InvoiceContent
|
import dev.inmo.tgbotapi.types.message.payments.InvoiceContent
|
||||||
import dev.inmo.tgbotapi.types.update.abstracts.BaseEditMessageUpdate
|
import dev.inmo.tgbotapi.types.update.abstracts.BaseEditMessageUpdate
|
||||||
import kotlinx.coroutines.flow.toList
|
import kotlinx.coroutines.flow.toList
|
||||||
@ -173,6 +177,22 @@ suspend fun BehaviourContext.waitEditedVisualMediaGroupContent(
|
|||||||
filter: SimpleFilter<CommonMessage<VisualMediaGroupContent>>? = null,
|
filter: SimpleFilter<CommonMessage<VisualMediaGroupContent>>? = null,
|
||||||
mapper: CommonMessageToContentMapper<VisualMediaGroupContent>? = null
|
mapper: CommonMessageToContentMapper<VisualMediaGroupContent>? = null
|
||||||
) = waitEditedContent(count, initRequest, includeMediaGroups, errorFactory, filter, mapper)
|
) = waitEditedContent(count, initRequest, includeMediaGroups, errorFactory, filter, mapper)
|
||||||
|
suspend fun BehaviourContext.waitEditedTextedMediaGroupMediaContent(
|
||||||
|
initRequest: Request<*>? = null,
|
||||||
|
errorFactory: NullableRequestBuilder<*> = { null },
|
||||||
|
count: Int = 1,
|
||||||
|
includeMediaGroups: Boolean = true,
|
||||||
|
filter: SimpleFilter<CommonMessage<TextedMediaGroupMediaContent>>? = null,
|
||||||
|
mapper: CommonMessageToContentMapper<TextedMediaGroupMediaContent>? = null
|
||||||
|
) = waitEditedContent(count, initRequest, includeMediaGroups, errorFactory, filter, mapper)
|
||||||
|
suspend fun BehaviourContext.waitEditedTextedMediaContent(
|
||||||
|
initRequest: Request<*>? = null,
|
||||||
|
errorFactory: NullableRequestBuilder<*> = { null },
|
||||||
|
count: Int = 1,
|
||||||
|
includeMediaGroups: Boolean = true,
|
||||||
|
filter: SimpleFilter<CommonMessage<TextedMediaContent>>? = null,
|
||||||
|
mapper: CommonMessageToContentMapper<TextedMediaContent>? = null
|
||||||
|
) = waitEditedContent(count, initRequest, includeMediaGroups, errorFactory, filter, mapper)
|
||||||
suspend fun BehaviourContext.waitEditedAnimation(
|
suspend fun BehaviourContext.waitEditedAnimation(
|
||||||
initRequest: Request<*>? = null,
|
initRequest: Request<*>? = null,
|
||||||
errorFactory: NullableRequestBuilder<*> = { null },
|
errorFactory: NullableRequestBuilder<*> = { null },
|
||||||
|
@ -6,6 +6,10 @@ import dev.inmo.tgbotapi.requests.abstracts.Request
|
|||||||
import dev.inmo.tgbotapi.types.message.abstracts.MediaGroupMessage
|
import dev.inmo.tgbotapi.types.message.abstracts.MediaGroupMessage
|
||||||
import dev.inmo.tgbotapi.types.message.content.abstracts.*
|
import dev.inmo.tgbotapi.types.message.content.abstracts.*
|
||||||
import dev.inmo.tgbotapi.types.message.content.media.*
|
import dev.inmo.tgbotapi.types.message.content.media.*
|
||||||
|
import dev.inmo.tgbotapi.types.message.content.media.AudioMediaGroupContent
|
||||||
|
import dev.inmo.tgbotapi.types.message.content.media.DocumentMediaGroupContent
|
||||||
|
import dev.inmo.tgbotapi.types.message.content.media.MediaGroupContent
|
||||||
|
import dev.inmo.tgbotapi.types.message.content.media.VisualMediaGroupContent
|
||||||
import dev.inmo.tgbotapi.utils.PreviewFeature
|
import dev.inmo.tgbotapi.utils.PreviewFeature
|
||||||
import kotlinx.coroutines.flow.take
|
import kotlinx.coroutines.flow.take
|
||||||
import kotlinx.coroutines.flow.toList
|
import kotlinx.coroutines.flow.toList
|
||||||
@ -66,3 +70,9 @@ suspend fun BehaviourContext.waitVideoGallery(
|
|||||||
count: Int = 1,
|
count: Int = 1,
|
||||||
filter: MediaGroupFilter<VideoContent>? = null
|
filter: MediaGroupFilter<VideoContent>? = null
|
||||||
) = buildMediaGroupWaiter(count, initRequest, errorFactory, filter)
|
) = buildMediaGroupWaiter(count, initRequest, errorFactory, filter)
|
||||||
|
suspend fun BehaviourContext.waitTextedMediaGroupMediaContent(
|
||||||
|
initRequest: Request<*>? = null,
|
||||||
|
errorFactory: NullableRequestBuilder<*> = { null },
|
||||||
|
count: Int = 1,
|
||||||
|
filter: MediaGroupFilter<TextedMediaGroupMediaContent>? = null
|
||||||
|
) = buildMediaGroupWaiter(count, initRequest, errorFactory, filter)
|
||||||
|
@ -352,6 +352,30 @@ suspend fun <BC : BehaviourContext> BC.onTextedMediaContent(
|
|||||||
scenarioReceiver
|
scenarioReceiver
|
||||||
)
|
)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param initialFilter This filter will be called to remove unnecessary data BEFORE [scenarioReceiver] call
|
||||||
|
* @param subcontextUpdatesFilter This filter will be applied to each update inside of [scenarioReceiver]. For example,
|
||||||
|
* this filter will be used if you will call [dev.inmo.tgbotapi.extensions.behaviour_builder.expectations.waitContentMessage].
|
||||||
|
* Use [dev.inmo.tgbotapi.extensions.behaviour_builder.BehaviourContextAndTwoTypesReceiver] function to create your own.
|
||||||
|
* Use [dev.inmo.tgbotapi.extensions.behaviour_builder.utils.plus] or [dev.inmo.tgbotapi.extensions.behaviour_builder.utils.times]
|
||||||
|
* to combinate several filters
|
||||||
|
* @param [markerFactory] Will be used to identify different "stream". [scenarioReceiver] will be called synchronously
|
||||||
|
* in one "stream". Output of [markerFactory] will be used as a key for "stream"
|
||||||
|
* @param scenarioReceiver Main callback which will be used to handle incoming data if [initialFilter] will pass that
|
||||||
|
* data
|
||||||
|
*/
|
||||||
|
suspend fun <BC : BehaviourContext> BC.onTextedMediaGroupMediaContent(
|
||||||
|
initialFilter: CommonMessageFilter<TextedMediaGroupMediaContent>? = null,
|
||||||
|
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, CommonMessage<TextedMediaGroupMediaContent>, Update> = MessageFilterByChat,
|
||||||
|
markerFactory: MarkerFactory<in CommonMessage<TextedMediaGroupMediaContent>, Any> = ByChatMessageMarkerFactory,
|
||||||
|
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, CommonMessage<TextedMediaGroupMediaContent>>
|
||||||
|
) = onContent(
|
||||||
|
initialFilter,
|
||||||
|
subcontextUpdatesFilter,
|
||||||
|
markerFactory,
|
||||||
|
scenarioReceiver
|
||||||
|
)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param initialFilter This filter will be called to remove unnecessary data BEFORE [scenarioReceiver] call
|
* @param initialFilter This filter will be called to remove unnecessary data BEFORE [scenarioReceiver] call
|
||||||
* @param subcontextUpdatesFilter This filter will be applied to each update inside of [scenarioReceiver]. For example,
|
* @param subcontextUpdatesFilter This filter will be applied to each update inside of [scenarioReceiver]. For example,
|
||||||
|
@ -27,6 +27,8 @@ import dev.inmo.tgbotapi.types.message.abstracts.CommonMessage
|
|||||||
import dev.inmo.tgbotapi.types.message.content.*
|
import dev.inmo.tgbotapi.types.message.content.*
|
||||||
import dev.inmo.tgbotapi.types.message.content.abstracts.*
|
import dev.inmo.tgbotapi.types.message.content.abstracts.*
|
||||||
import dev.inmo.tgbotapi.types.message.content.media.*
|
import dev.inmo.tgbotapi.types.message.content.media.*
|
||||||
|
import dev.inmo.tgbotapi.types.message.content.media.AudioMediaGroupContent
|
||||||
|
import dev.inmo.tgbotapi.types.message.content.media.DocumentMediaGroupContent
|
||||||
import dev.inmo.tgbotapi.types.message.payments.InvoiceContent
|
import dev.inmo.tgbotapi.types.message.payments.InvoiceContent
|
||||||
import dev.inmo.tgbotapi.types.update.abstracts.BaseEditMessageUpdate
|
import dev.inmo.tgbotapi.types.update.abstracts.BaseEditMessageUpdate
|
||||||
import dev.inmo.tgbotapi.types.update.abstracts.Update
|
import dev.inmo.tgbotapi.types.update.abstracts.Update
|
||||||
@ -262,6 +264,54 @@ suspend fun <BC : BehaviourContext> BC.onEditedDocumentMediaGroupContent(
|
|||||||
scenarioReceiver
|
scenarioReceiver
|
||||||
)
|
)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param initialFilter This filter will be called to remove unnecessary data BEFORE [scenarioReceiver] call
|
||||||
|
* @param subcontextUpdatesFilter This filter will be applied to each update inside of [scenarioReceiver]. For example,
|
||||||
|
* this filter will be used if you will call [dev.inmo.tgbotapi.extensions.behaviour_builder.expectations.waitContentMessage].
|
||||||
|
* Use [dev.inmo.tgbotapi.extensions.behaviour_builder.BehaviourContextAndTwoTypesReceiver] function to create your own.
|
||||||
|
* Use [dev.inmo.tgbotapi.extensions.behaviour_builder.utils.plus] or [dev.inmo.tgbotapi.extensions.behaviour_builder.utils.times]
|
||||||
|
* to combinate several filters
|
||||||
|
* @param [markerFactory] Will be used to identify different "stream". [scenarioReceiver] will be called synchronously
|
||||||
|
* in one "stream". Output of [markerFactory] will be used as a key for "stream"
|
||||||
|
* @param scenarioReceiver Main callback which will be used to handle incoming data if [initialFilter] will pass that
|
||||||
|
* data
|
||||||
|
*/
|
||||||
|
suspend fun <BC : BehaviourContext> BC.onEditedTextedMediaGroupMediaContent(
|
||||||
|
initialFilter: CommonMessageFilter<TextedMediaGroupMediaContent>? = null,
|
||||||
|
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, CommonMessage<TextedMediaGroupMediaContent>, Update> = MessageFilterByChat,
|
||||||
|
markerFactory: MarkerFactory<in CommonMessage<TextedMediaGroupMediaContent>, Any> = ByChatMessageMarkerFactory,
|
||||||
|
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, CommonMessage<TextedMediaGroupMediaContent>>
|
||||||
|
)= onEditedContent(
|
||||||
|
initialFilter,
|
||||||
|
subcontextUpdatesFilter,
|
||||||
|
markerFactory,
|
||||||
|
scenarioReceiver
|
||||||
|
)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param initialFilter This filter will be called to remove unnecessary data BEFORE [scenarioReceiver] call
|
||||||
|
* @param subcontextUpdatesFilter This filter will be applied to each update inside of [scenarioReceiver]. For example,
|
||||||
|
* this filter will be used if you will call [dev.inmo.tgbotapi.extensions.behaviour_builder.expectations.waitContentMessage].
|
||||||
|
* Use [dev.inmo.tgbotapi.extensions.behaviour_builder.BehaviourContextAndTwoTypesReceiver] function to create your own.
|
||||||
|
* Use [dev.inmo.tgbotapi.extensions.behaviour_builder.utils.plus] or [dev.inmo.tgbotapi.extensions.behaviour_builder.utils.times]
|
||||||
|
* to combinate several filters
|
||||||
|
* @param [markerFactory] Will be used to identify different "stream". [scenarioReceiver] will be called synchronously
|
||||||
|
* in one "stream". Output of [markerFactory] will be used as a key for "stream"
|
||||||
|
* @param scenarioReceiver Main callback which will be used to handle incoming data if [initialFilter] will pass that
|
||||||
|
* data
|
||||||
|
*/
|
||||||
|
suspend fun <BC : BehaviourContext> BC.onEditedTextedMediaContent(
|
||||||
|
initialFilter: CommonMessageFilter<TextedMediaContent>? = null,
|
||||||
|
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, CommonMessage<TextedMediaContent>, Update> = MessageFilterByChat,
|
||||||
|
markerFactory: MarkerFactory<in CommonMessage<TextedMediaContent>, Any> = ByChatMessageMarkerFactory,
|
||||||
|
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, CommonMessage<TextedMediaContent>>
|
||||||
|
)= onEditedContent(
|
||||||
|
initialFilter,
|
||||||
|
subcontextUpdatesFilter,
|
||||||
|
markerFactory,
|
||||||
|
scenarioReceiver
|
||||||
|
)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param initialFilter This filter will be called to remove unnecessary data BEFORE [scenarioReceiver] call
|
* @param initialFilter This filter will be called to remove unnecessary data BEFORE [scenarioReceiver] call
|
||||||
* @param subcontextUpdatesFilter This filter will be applied to each update inside of [scenarioReceiver]. For example,
|
* @param subcontextUpdatesFilter This filter will be applied to each update inside of [scenarioReceiver]. For example,
|
||||||
|
@ -9,8 +9,11 @@ import dev.inmo.tgbotapi.extensions.behaviour_builder.utils.marker_factories.ByC
|
|||||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.utils.marker_factories.MarkerFactory
|
import dev.inmo.tgbotapi.extensions.behaviour_builder.utils.marker_factories.MarkerFactory
|
||||||
import dev.inmo.tgbotapi.extensions.utils.asSentMediaGroupUpdate
|
import dev.inmo.tgbotapi.extensions.utils.asSentMediaGroupUpdate
|
||||||
import dev.inmo.tgbotapi.types.message.abstracts.MediaGroupMessage
|
import dev.inmo.tgbotapi.types.message.abstracts.MediaGroupMessage
|
||||||
import dev.inmo.tgbotapi.types.message.content.abstracts.*
|
|
||||||
import dev.inmo.tgbotapi.types.message.content.media.*
|
import dev.inmo.tgbotapi.types.message.content.media.*
|
||||||
|
import dev.inmo.tgbotapi.types.message.content.media.AudioMediaGroupContent
|
||||||
|
import dev.inmo.tgbotapi.types.message.content.media.DocumentMediaGroupContent
|
||||||
|
import dev.inmo.tgbotapi.types.message.content.media.MediaGroupContent
|
||||||
|
import dev.inmo.tgbotapi.types.message.content.media.VisualMediaGroupContent
|
||||||
import dev.inmo.tgbotapi.types.update.abstracts.Update
|
import dev.inmo.tgbotapi.types.update.abstracts.Update
|
||||||
import dev.inmo.tgbotapi.utils.PreviewFeature
|
import dev.inmo.tgbotapi.utils.PreviewFeature
|
||||||
|
|
||||||
@ -104,6 +107,25 @@ suspend fun <BC : BehaviourContext> BC.onVisualGallery(
|
|||||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, List<MediaGroupMessage<VisualMediaGroupContent>>>
|
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, List<MediaGroupMessage<VisualMediaGroupContent>>>
|
||||||
) = buildMediaGroupTrigger(initialFilter, subcontextUpdatesFilter, markerFactory, scenarioReceiver)
|
) = buildMediaGroupTrigger(initialFilter, subcontextUpdatesFilter, markerFactory, scenarioReceiver)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param initialFilter This filter will be called to remove unnecessary data BEFORE [scenarioReceiver] call
|
||||||
|
* @param subcontextUpdatesFilter This filter will be applied to each update inside of [scenarioReceiver]. For example,
|
||||||
|
* this filter will be used if you will call [dev.inmo.tgbotapi.extensions.behaviour_builder.expectations.waitContentMessage].
|
||||||
|
* Use [dev.inmo.tgbotapi.extensions.behaviour_builder.BehaviourContextAndTwoTypesReceiver] function to create your own.
|
||||||
|
* Use [dev.inmo.tgbotapi.extensions.behaviour_builder.utils.plus] or [dev.inmo.tgbotapi.extensions.behaviour_builder.utils.times]
|
||||||
|
* to combinate several filters
|
||||||
|
* @param [markerFactory] Will be used to identify different "stream". [scenarioReceiver] will be called synchronously
|
||||||
|
* in one "stream". Output of [markerFactory] will be used as a key for "stream"
|
||||||
|
* @param scenarioReceiver Main callback which will be used to handle incoming data if [initialFilter] will pass that
|
||||||
|
* data
|
||||||
|
*/
|
||||||
|
suspend fun <BC : BehaviourContext> BC.onTextedMediaGroupMediaContent(
|
||||||
|
initialFilter: SimpleFilter<List<MediaGroupMessage<TextedMediaGroupMediaContent>>>? = null,
|
||||||
|
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, List<MediaGroupMessage<TextedMediaGroupMediaContent>>, Update>? = MessagesFilterByChat,
|
||||||
|
markerFactory: MarkerFactory<in List<MediaGroupMessage<TextedMediaGroupMediaContent>>, Any> = ByChatMediaGroupMarkerFactory,
|
||||||
|
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, List<MediaGroupMessage<TextedMediaGroupMediaContent>>>
|
||||||
|
) = buildMediaGroupTrigger(initialFilter, subcontextUpdatesFilter, markerFactory, scenarioReceiver)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param initialFilter This filter will be called to remove unnecessary data BEFORE [scenarioReceiver] call
|
* @param initialFilter This filter will be called to remove unnecessary data BEFORE [scenarioReceiver] call
|
||||||
* @param subcontextUpdatesFilter This filter will be applied to each update inside of [scenarioReceiver]. For example,
|
* @param subcontextUpdatesFilter This filter will be applied to each update inside of [scenarioReceiver]. For example,
|
||||||
|
@ -2,9 +2,8 @@ package dev.inmo.tgbotapi.types.message.content.media
|
|||||||
|
|
||||||
import dev.inmo.tgbotapi.types.InputMedia.AudioMediaGroupMemberInputMedia
|
import dev.inmo.tgbotapi.types.InputMedia.AudioMediaGroupMemberInputMedia
|
||||||
import dev.inmo.tgbotapi.types.files.AudioFile
|
import dev.inmo.tgbotapi.types.files.AudioFile
|
||||||
import dev.inmo.tgbotapi.types.files.abstracts.TelegramMediaFile
|
|
||||||
|
|
||||||
interface AudioMediaGroupContent : TextedMediaGroupMediaInput {
|
interface AudioMediaGroupContent : TextedMediaGroupMediaContent {
|
||||||
override val media: AudioFile
|
override val media: AudioFile
|
||||||
|
|
||||||
override fun toMediaGroupMemberInputMedia(): AudioMediaGroupMemberInputMedia
|
override fun toMediaGroupMemberInputMedia(): AudioMediaGroupMemberInputMedia
|
||||||
|
@ -2,10 +2,8 @@ package dev.inmo.tgbotapi.types.message.content.media
|
|||||||
|
|
||||||
import dev.inmo.tgbotapi.types.InputMedia.*
|
import dev.inmo.tgbotapi.types.InputMedia.*
|
||||||
import dev.inmo.tgbotapi.types.files.DocumentFile
|
import dev.inmo.tgbotapi.types.files.DocumentFile
|
||||||
import dev.inmo.tgbotapi.types.files.abstracts.TelegramMediaFile
|
|
||||||
import dev.inmo.tgbotapi.types.message.content.media.MediaGroupContent
|
|
||||||
|
|
||||||
interface DocumentMediaGroupContent : TextedMediaGroupMediaInput {
|
interface DocumentMediaGroupContent : TextedMediaGroupMediaContent {
|
||||||
override val media: DocumentFile
|
override val media: DocumentFile
|
||||||
|
|
||||||
override fun toMediaGroupMemberInputMedia(): DocumentMediaGroupMemberInputMedia
|
override fun toMediaGroupMemberInputMedia(): DocumentMediaGroupMemberInputMedia
|
||||||
|
@ -0,0 +1,3 @@
|
|||||||
|
package dev.inmo.tgbotapi.types.message.content.media
|
||||||
|
|
||||||
|
sealed interface TextedMediaGroupMediaContent : TextedMediaContent, MediaGroupContent
|
@ -1,3 +0,0 @@
|
|||||||
package dev.inmo.tgbotapi.types.message.content.media
|
|
||||||
|
|
||||||
sealed interface TextedMediaGroupMediaInput : TextedMediaContent, MediaGroupContent
|
|
@ -2,6 +2,6 @@ package dev.inmo.tgbotapi.types.message.content.media
|
|||||||
|
|
||||||
import dev.inmo.tgbotapi.types.InputMedia.VisualMediaGroupMemberInputMedia
|
import dev.inmo.tgbotapi.types.InputMedia.VisualMediaGroupMemberInputMedia
|
||||||
|
|
||||||
interface VisualMediaGroupContent : TextedMediaGroupMediaInput {
|
interface VisualMediaGroupContent : TextedMediaGroupMediaContent {
|
||||||
override fun toMediaGroupMemberInputMedia(): VisualMediaGroupMemberInputMedia
|
override fun toMediaGroupMemberInputMedia(): VisualMediaGroupMemberInputMedia
|
||||||
}
|
}
|
||||||
|
@ -213,7 +213,7 @@ fun FlowsUpdatesFilter.textedMediaContentMessagesWithMediaGroups(
|
|||||||
scopeToIncludeChannels: CoroutineScope? = null
|
scopeToIncludeChannels: CoroutineScope? = null
|
||||||
) = merge(
|
) = merge(
|
||||||
filterContentMessages<TextedMediaContent>(scopeToIncludeChannels),
|
filterContentMessages<TextedMediaContent>(scopeToIncludeChannels),
|
||||||
mediaGroupTextedMediaGroupMediaInput(scopeToIncludeChannels).flatMap()
|
mediaGroupTextedMediaGroupMediaContent(scopeToIncludeChannels).flatMap()
|
||||||
)
|
)
|
||||||
|
|
||||||
fun Flow<BaseSentMessageUpdate>.videoNoteMessages() = filterContentMessages<VideoNoteContent>()
|
fun Flow<BaseSentMessageUpdate>.videoNoteMessages() = filterContentMessages<VideoNoteContent>()
|
||||||
@ -257,7 +257,7 @@ fun FlowsUpdatesFilter.mediaGroupDocumentMessages(
|
|||||||
scopeToIncludeChannels: CoroutineScope? = null
|
scopeToIncludeChannels: CoroutineScope? = null
|
||||||
) = filterMediaGroupMessages<DocumentContent>(scopeToIncludeChannels)
|
) = filterMediaGroupMessages<DocumentContent>(scopeToIncludeChannels)
|
||||||
|
|
||||||
fun Flow<SentMediaGroupUpdate>.mediaGroupTextedMediaGroupMediaInput() = filterMediaGroupMessages<TextedMediaGroupMediaInput>()
|
fun Flow<SentMediaGroupUpdate>.mediaGroupTextedMediaGroupMediaContent() = filterMediaGroupMessages<TextedMediaGroupMediaContent>()
|
||||||
fun FlowsUpdatesFilter.mediaGroupTextedMediaGroupMediaInput(
|
fun FlowsUpdatesFilter.mediaGroupTextedMediaGroupMediaContent(
|
||||||
scopeToIncludeChannels: CoroutineScope? = null
|
scopeToIncludeChannels: CoroutineScope? = null
|
||||||
) = filterMediaGroupMessages<TextedMediaGroupMediaInput>(scopeToIncludeChannels)
|
) = filterMediaGroupMessages<TextedMediaGroupMediaContent>(scopeToIncludeChannels)
|
||||||
|
Loading…
Reference in New Issue
Block a user