mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI.git
synced 2026-06-10 09:37:20 +00:00
implement guest mode and make HUGE CHANGES IN MESSAGES HIERARCHY
This commit is contained in:
@@ -1130,13 +1130,13 @@ inline fun Message.requireCommonGroupContentMessage(): CommonGroupContentMessage
|
||||
this as CommonGroupContentMessage<MessageContent>
|
||||
|
||||
@PreviewFeature
|
||||
inline fun <T> Message.whenCommonMessage(block: (CommonMessage<MessageContent>) -> T) = asCommonMessage()?.let(block)
|
||||
inline fun <T> Message.whenCommonMessage(block: (ChatContentMessage<MessageContent>) -> T) = asCommonMessage()?.let(block)
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.asCommonMessage(): CommonMessage<MessageContent>? = this as? CommonMessage<MessageContent>
|
||||
inline fun Message.asCommonMessage(): ChatContentMessage<MessageContent>? = this as? ChatContentMessage<MessageContent>
|
||||
|
||||
@PreviewFeature
|
||||
inline fun Message.requireCommonMessage(): CommonMessage<MessageContent> = this as CommonMessage<MessageContent>
|
||||
inline fun Message.requireCommonMessage(): ChatContentMessage<MessageContent> = this as ChatContentMessage<MessageContent>
|
||||
|
||||
@PreviewFeature
|
||||
inline fun <T> Message.whenContentMessage(block: (ContentMessage<MessageContent>) -> T) = asContentMessage()?.let(block)
|
||||
|
||||
@@ -330,11 +330,13 @@ import dev.inmo.tgbotapi.types.message.abstracts.ChannelContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChannelDirectMessagesContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChannelDirectMessagesEventMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChannelPaidPost
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatEventMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.CommonChannelDirectMessagesContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.CommonContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.CommonForumContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.CommonGroupContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.CommonMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.CommonSuggestedChannelDirectMessagesContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ConnectedFromChannelGroupContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
|
||||
@@ -346,6 +348,7 @@ import dev.inmo.tgbotapi.types.message.abstracts.FromChannelSuggestedChannelDire
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.FromUserMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.GroupContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.GroupEventMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.GuestContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.InaccessibleMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.Message
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.OptionallyFromUserMessage
|
||||
@@ -363,6 +366,7 @@ import dev.inmo.tgbotapi.types.message.abstracts.PrivateContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.PrivateForumContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.PublicContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.SignedMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.SpecialMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.SuggestedChannelDirectMessagesContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.SupergroupEventMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.UnconnectedFromChannelGroupContentMessage
|
||||
@@ -541,6 +545,7 @@ import dev.inmo.tgbotapi.types.update.DeletedBusinessMessageUpdate
|
||||
import dev.inmo.tgbotapi.types.update.EditBusinessMessageUpdate
|
||||
import dev.inmo.tgbotapi.types.update.EditChannelPostUpdate
|
||||
import dev.inmo.tgbotapi.types.update.EditMessageUpdate
|
||||
import dev.inmo.tgbotapi.types.update.GuestMessageUpdate
|
||||
import dev.inmo.tgbotapi.types.update.InlineQueryUpdate
|
||||
import dev.inmo.tgbotapi.types.update.ManagedBotUpdate
|
||||
import dev.inmo.tgbotapi.types.update.MessageUpdate
|
||||
@@ -841,6 +846,12 @@ public inline fun OptionallyWithUser.channelContentMessageOrThrow(): ChannelCont
|
||||
|
||||
public inline fun <T> OptionallyWithUser.ifChannelContentMessage(block: (ChannelContentMessage<MessageContent>) -> T): T? = channelContentMessageOrNull() ?.let(block)
|
||||
|
||||
public inline fun OptionallyWithUser.guestContentMessageOrNull(): GuestContentMessage<MessageContent>? = this as? dev.inmo.tgbotapi.types.message.abstracts.GuestContentMessage<dev.inmo.tgbotapi.types.message.content.MessageContent>
|
||||
|
||||
public inline fun OptionallyWithUser.guestContentMessageOrThrow(): GuestContentMessage<MessageContent> = this as dev.inmo.tgbotapi.types.message.abstracts.GuestContentMessage<dev.inmo.tgbotapi.types.message.content.MessageContent>
|
||||
|
||||
public inline fun <T> OptionallyWithUser.ifGuestContentMessage(block: (GuestContentMessage<MessageContent>) -> T): T? = guestContentMessageOrNull() ?.let(block)
|
||||
|
||||
public inline fun OptionallyWithUser.optionallyFromUserMessageOrNull(): OptionallyFromUserMessage? = this as? dev.inmo.tgbotapi.types.message.abstracts.OptionallyFromUserMessage
|
||||
|
||||
public inline fun OptionallyWithUser.optionallyFromUserMessageOrThrow(): OptionallyFromUserMessage = this as dev.inmo.tgbotapi.types.message.abstracts.OptionallyFromUserMessage
|
||||
@@ -2305,6 +2316,12 @@ public inline fun Message.possiblyTopicMessageOrThrow(): PossiblyTopicMessage =
|
||||
|
||||
public inline fun <T> Message.ifPossiblyTopicMessage(block: (PossiblyTopicMessage) -> T): T? = possiblyTopicMessageOrNull() ?.let(block)
|
||||
|
||||
public inline fun Message.chatContentMessageOrNull(): ChatContentMessage<MessageContent>? = this as? dev.inmo.tgbotapi.types.message.abstracts.ChatContentMessage<dev.inmo.tgbotapi.types.message.content.MessageContent>
|
||||
|
||||
public inline fun Message.chatContentMessageOrThrow(): ChatContentMessage<MessageContent> = this as dev.inmo.tgbotapi.types.message.abstracts.ChatContentMessage<dev.inmo.tgbotapi.types.message.content.MessageContent>
|
||||
|
||||
public inline fun <T> Message.ifChatContentMessage(block: (ChatContentMessage<MessageContent>) -> T): T? = chatContentMessageOrNull() ?.let(block)
|
||||
|
||||
public inline fun Message.chatEventMessageOrNull(): ChatEventMessage<ChatEvent>? = this as? dev.inmo.tgbotapi.types.message.abstracts.ChatEventMessage<dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.ChatEvent>
|
||||
|
||||
public inline fun Message.chatEventMessageOrThrow(): ChatEventMessage<ChatEvent> = this as dev.inmo.tgbotapi.types.message.abstracts.ChatEventMessage<dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.ChatEvent>
|
||||
@@ -2329,6 +2346,12 @@ public inline fun Message.channelContentMessageOrThrow(): ChannelContentMessage<
|
||||
|
||||
public inline fun <T> Message.ifChannelContentMessage(block: (ChannelContentMessage<MessageContent>) -> T): T? = channelContentMessageOrNull() ?.let(block)
|
||||
|
||||
public inline fun Message.guestContentMessageOrNull(): GuestContentMessage<MessageContent>? = this as? dev.inmo.tgbotapi.types.message.abstracts.GuestContentMessage<dev.inmo.tgbotapi.types.message.content.MessageContent>
|
||||
|
||||
public inline fun Message.guestContentMessageOrThrow(): GuestContentMessage<MessageContent> = this as dev.inmo.tgbotapi.types.message.abstracts.GuestContentMessage<dev.inmo.tgbotapi.types.message.content.MessageContent>
|
||||
|
||||
public inline fun <T> Message.ifGuestContentMessage(block: (GuestContentMessage<MessageContent>) -> T): T? = guestContentMessageOrNull() ?.let(block)
|
||||
|
||||
public inline fun Message.optionallyFromUserMessageOrNull(): OptionallyFromUserMessage? = this as? dev.inmo.tgbotapi.types.message.abstracts.OptionallyFromUserMessage
|
||||
|
||||
public inline fun Message.optionallyFromUserMessageOrThrow(): OptionallyFromUserMessage = this as dev.inmo.tgbotapi.types.message.abstracts.OptionallyFromUserMessage
|
||||
@@ -2371,6 +2394,18 @@ public inline fun Message.accessibleMessageOrThrow(): AccessibleMessage = this a
|
||||
|
||||
public inline fun <T> Message.ifAccessibleMessage(block: (AccessibleMessage) -> T): T? = accessibleMessageOrNull() ?.let(block)
|
||||
|
||||
public inline fun Message.chatMessageOrNull(): ChatMessage? = this as? dev.inmo.tgbotapi.types.message.abstracts.ChatMessage
|
||||
|
||||
public inline fun Message.chatMessageOrThrow(): ChatMessage = this as dev.inmo.tgbotapi.types.message.abstracts.ChatMessage
|
||||
|
||||
public inline fun <T> Message.ifChatMessage(block: (ChatMessage) -> T): T? = chatMessageOrNull() ?.let(block)
|
||||
|
||||
public inline fun Message.specialMessageOrNull(): SpecialMessage? = this as? dev.inmo.tgbotapi.types.message.abstracts.SpecialMessage
|
||||
|
||||
public inline fun Message.specialMessageOrThrow(): SpecialMessage = this as dev.inmo.tgbotapi.types.message.abstracts.SpecialMessage
|
||||
|
||||
public inline fun <T> Message.ifSpecialMessage(block: (SpecialMessage) -> T): T? = specialMessageOrNull() ?.let(block)
|
||||
|
||||
public inline fun Message.inaccessibleMessageOrNull(): InaccessibleMessage? = this as? dev.inmo.tgbotapi.types.message.abstracts.InaccessibleMessage
|
||||
|
||||
public inline fun Message.inaccessibleMessageOrThrow(): InaccessibleMessage = this as dev.inmo.tgbotapi.types.message.abstracts.InaccessibleMessage
|
||||
@@ -2389,6 +2424,12 @@ public inline fun Message.publicContentMessageOrThrow(): PublicContentMessage<Me
|
||||
|
||||
public inline fun <T> Message.ifPublicContentMessage(block: (PublicContentMessage<MessageContent>) -> T): T? = publicContentMessageOrNull() ?.let(block)
|
||||
|
||||
public inline fun Message.commonContentMessageOrNull(): CommonContentMessage<MessageContent>? = this as? dev.inmo.tgbotapi.types.message.abstracts.CommonContentMessage<dev.inmo.tgbotapi.types.message.content.MessageContent>
|
||||
|
||||
public inline fun Message.commonContentMessageOrThrow(): CommonContentMessage<MessageContent> = this as dev.inmo.tgbotapi.types.message.abstracts.CommonContentMessage<dev.inmo.tgbotapi.types.message.content.MessageContent>
|
||||
|
||||
public inline fun <T> Message.ifCommonContentMessage(block: (CommonContentMessage<MessageContent>) -> T): T? = commonContentMessageOrNull() ?.let(block)
|
||||
|
||||
public inline fun Message.possiblySentViaBotCommonMessageOrNull(): PossiblySentViaBotCommonMessage<MessageContent>? = this as? dev.inmo.tgbotapi.types.message.abstracts.PossiblySentViaBotCommonMessage<dev.inmo.tgbotapi.types.message.content.MessageContent>
|
||||
|
||||
public inline fun Message.possiblySentViaBotCommonMessageOrThrow(): PossiblySentViaBotCommonMessage<MessageContent> = this as dev.inmo.tgbotapi.types.message.abstracts.PossiblySentViaBotCommonMessage<dev.inmo.tgbotapi.types.message.content.MessageContent>
|
||||
@@ -2407,12 +2448,6 @@ public inline fun Message.possiblyPaymentMessageOrThrow(): PossiblyPaymentMessag
|
||||
|
||||
public inline fun <T> Message.ifPossiblyPaymentMessage(block: (PossiblyPaymentMessage) -> T): T? = possiblyPaymentMessageOrNull() ?.let(block)
|
||||
|
||||
public inline fun Message.commonMessageOrNull(): CommonMessage<MessageContent>? = this as? dev.inmo.tgbotapi.types.message.abstracts.CommonMessage<dev.inmo.tgbotapi.types.message.content.MessageContent>
|
||||
|
||||
public inline fun Message.commonMessageOrThrow(): CommonMessage<MessageContent> = this as dev.inmo.tgbotapi.types.message.abstracts.CommonMessage<dev.inmo.tgbotapi.types.message.content.MessageContent>
|
||||
|
||||
public inline fun <T> Message.ifCommonMessage(block: (CommonMessage<MessageContent>) -> T): T? = commonMessageOrNull() ?.let(block)
|
||||
|
||||
public inline fun Message.contentMessageOrNull(): ContentMessage<MessageContent>? = this as? dev.inmo.tgbotapi.types.message.abstracts.ContentMessage<dev.inmo.tgbotapi.types.message.content.MessageContent>
|
||||
|
||||
public inline fun Message.contentMessageOrThrow(): ContentMessage<MessageContent> = this as dev.inmo.tgbotapi.types.message.abstracts.ContentMessage<dev.inmo.tgbotapi.types.message.content.MessageContent>
|
||||
@@ -4273,6 +4308,12 @@ public inline fun Update.preCheckoutQueryUpdateOrThrow(): PreCheckoutQueryUpdate
|
||||
|
||||
public inline fun <T> Update.ifPreCheckoutQueryUpdate(block: (PreCheckoutQueryUpdate) -> T): T? = preCheckoutQueryUpdateOrNull() ?.let(block)
|
||||
|
||||
public inline fun Update.guestMessageUpdateOrNull(): GuestMessageUpdate? = this as? dev.inmo.tgbotapi.types.update.GuestMessageUpdate
|
||||
|
||||
public inline fun Update.guestMessageUpdateOrThrow(): GuestMessageUpdate = this as dev.inmo.tgbotapi.types.update.GuestMessageUpdate
|
||||
|
||||
public inline fun <T> Update.ifGuestMessageUpdate(block: (GuestMessageUpdate) -> T): T? = guestMessageUpdateOrNull() ?.let(block)
|
||||
|
||||
public inline fun Update.paidMediaPurchasedUpdateOrNull(): PaidMediaPurchasedUpdate? = this as? dev.inmo.tgbotapi.types.update.PaidMediaPurchasedUpdate
|
||||
|
||||
public inline fun Update.paidMediaPurchasedUpdateOrThrow(): PaidMediaPurchasedUpdate = this as dev.inmo.tgbotapi.types.update.PaidMediaPurchasedUpdate
|
||||
|
||||
@@ -6,9 +6,9 @@ import dev.inmo.tgbotapi.types.message.content.MessageContent
|
||||
import kotlinx.coroutines.flow.*
|
||||
|
||||
/**
|
||||
* Simple factory to convert [ContentMessage] to a [CommonMessage]
|
||||
* Simple factory to convert [ContentMessage] to a [ChatContentMessage]
|
||||
*/
|
||||
fun <C: MessageContent, T : ContentMessage<C>> Flow<T>.onlyCommonMessages() = filterIsInstance<CommonMessage<C>>()
|
||||
fun <C: MessageContent, T : ContentMessage<C>> Flow<T>.onlyCommonMessages() = filterIsInstance<ChatContentMessage<C>>()
|
||||
|
||||
/**
|
||||
* Shortcut for [onlyCommonMessages]
|
||||
@@ -17,7 +17,7 @@ fun <C: MessageContent, T : ContentMessage<C>> Flow<T>.onlyCommonMessages() = fi
|
||||
inline fun <C: MessageContent, T : ContentMessage<C>> Flow<T>.commonMessages() = onlyCommonMessages()
|
||||
|
||||
/**
|
||||
* Filter the messages and checking that incoming [CommonMessage] is [PossiblySentViaBotCommonMessage] and its
|
||||
* Filter the messages and checking that incoming [ChatContentMessage] is [PossiblySentViaBotCommonMessage] and its
|
||||
* [PossiblySentViaBotCommonMessage.senderBot] is not null
|
||||
*/
|
||||
fun <MC : MessageContent, M : ContentMessage<MC>> Flow<M>.onlySentViaBot() = mapNotNull {
|
||||
@@ -29,7 +29,7 @@ fun <MC : MessageContent, M : ContentMessage<MC>> Flow<M>.onlySentViaBot() = map
|
||||
}
|
||||
|
||||
/**
|
||||
* Filter the messages and checking that incoming [CommonMessage] not is [PossiblySentViaBotCommonMessage] or its
|
||||
* Filter the messages and checking that incoming [ChatContentMessage] not is [PossiblySentViaBotCommonMessage] or its
|
||||
* [PossiblySentViaBotCommonMessage.senderBot] is null
|
||||
*/
|
||||
fun <MC : MessageContent, M : ContentMessage<MC>> Flow<M>.withoutSentViaBot() = filter {
|
||||
|
||||
@@ -3,14 +3,13 @@
|
||||
package dev.inmo.tgbotapi.extensions.utils
|
||||
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.*
|
||||
import dev.inmo.tgbotapi.types.message.content.MediaGroupPartContent
|
||||
import dev.inmo.tgbotapi.types.message.content.MessageContent
|
||||
|
||||
inline fun <reified T : MessageContent> ContentMessage<*>.withContentOrNull() = if (content is T) { this as ContentMessage<T> } else { null }
|
||||
inline fun <reified T : MessageContent> ContentMessage<*>.withContentOrThrow() = withContentOrNull<T>()!!
|
||||
|
||||
inline fun <reified T : MessageContent> CommonMessage<*>.withContentOrNull() = if (content is T) { this as CommonMessage<T> } else { null }
|
||||
inline fun <reified T : MessageContent> CommonMessage<*>.withContentOrThrow() = withContentOrNull<T>()!!
|
||||
inline fun <reified T : MessageContent> ChatContentMessage<*>.withContentOrNull() = if (content is T) { this as ChatContentMessage<T> } else { null }
|
||||
inline fun <reified T : MessageContent> ChatContentMessage<*>.withContentOrThrow() = withContentOrNull<T>()!!
|
||||
|
||||
inline fun <reified T : MessageContent> PossiblySentViaBotCommonMessage<*>.withContentOrNull() = if (content is T) { this as PossiblySentViaBotCommonMessage<T>
|
||||
} else { null }
|
||||
|
||||
@@ -3,15 +3,13 @@
|
||||
package dev.inmo.tgbotapi.extensions.utils
|
||||
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.*
|
||||
import dev.inmo.tgbotapi.types.message.content.MediaGroupMessage
|
||||
import dev.inmo.tgbotapi.types.message.content.MediaGroupPartContent
|
||||
import dev.inmo.tgbotapi.types.message.content.MessageContent
|
||||
|
||||
inline fun <reified T : MessageContent> ContentMessage<*>.withContent() = if (content is T) { this as ContentMessage<T> } else { null }
|
||||
inline fun <reified T : MessageContent> ContentMessage<*>.requireWithContent() = withContent<T>()!!
|
||||
|
||||
inline fun <reified T : MessageContent> CommonMessage<*>.withContent() = if (content is T) { this as CommonMessage<T> } else { null }
|
||||
inline fun <reified T : MessageContent> CommonMessage<*>.requireWithContent() = withContent<T>()!!
|
||||
inline fun <reified T : MessageContent> ChatContentMessage<*>.withContent() = if (content is T) { this as ChatContentMessage<T> } else { null }
|
||||
inline fun <reified T : MessageContent> ChatContentMessage<*>.requireWithContent() = withContent<T>()!!
|
||||
|
||||
inline fun <reified T : MessageContent> PossiblySentViaBotCommonMessage<*>.withContent() = if (content is T) { this as PossiblySentViaBotCommonMessage<T>
|
||||
} else { null }
|
||||
|
||||
@@ -1,10 +1,6 @@
|
||||
package dev.inmo.tgbotapi.extensions.utils.shortcuts
|
||||
|
||||
import dev.inmo.tgbotapi.extensions.utils.aggregateFlows
|
||||
import dev.inmo.tgbotapi.extensions.utils.flatMap
|
||||
import dev.inmo.tgbotapi.extensions.utils.flatten
|
||||
import dev.inmo.tgbotapi.extensions.utils.updates.asContentMessagesFlow
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.CommonMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.content.*
|
||||
import dev.inmo.tgbotapi.types.update.abstracts.BaseSentMessageUpdate
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package dev.inmo.tgbotapi.extensions.utils.updates
|
||||
|
||||
import dev.inmo.tgbotapi.extensions.utils.*
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.CommonMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.Message
|
||||
import dev.inmo.tgbotapi.types.message.content.TextContent
|
||||
import dev.inmo.tgbotapi.types.message.textsources.BotCommandTextSource
|
||||
@@ -20,10 +20,10 @@ import dev.inmo.tgbotapi.utils.extensions.threadIdOrNull
|
||||
* }
|
||||
* ```
|
||||
*
|
||||
* @return true if this [CommonMessage] contains any commands. False otherwise.
|
||||
* @return true if this [ChatContentMessage] contains any commands. False otherwise.
|
||||
* @see hasNoCommands
|
||||
*/
|
||||
fun CommonMessage<*>.hasCommands(): Boolean = withContentOrNull<TextContent>() ?.content ?.textSources ?.any {
|
||||
fun ChatContentMessage<*>.hasCommands(): Boolean = withContentOrNull<TextContent>() ?.content ?.textSources ?.any {
|
||||
it is BotCommandTextSource
|
||||
} ?: false
|
||||
|
||||
@@ -40,10 +40,10 @@ fun CommonMessage<*>.hasCommands(): Boolean = withContentOrNull<TextContent>() ?
|
||||
* }
|
||||
* ```
|
||||
*
|
||||
* @return true if this [CommonMessage] does not contain any commands. False otherwise.
|
||||
* @return true if this [ChatContentMessage] does not contain any commands. False otherwise.
|
||||
* @see hasCommands
|
||||
*/
|
||||
fun CommonMessage<*>.hasNoCommands(): Boolean = !this.hasCommands()
|
||||
fun ChatContentMessage<*>.hasNoCommands(): Boolean = !this.hasCommands()
|
||||
|
||||
/**
|
||||
* A predicate to test that message has been sent in the forum.
|
||||
|
||||
@@ -16,10 +16,10 @@ fun <T : BaseSentMessageUpdate> Flow<T>.asContentMessagesFlow() = mapNotNull {
|
||||
}
|
||||
|
||||
/**
|
||||
* Will map incoming [BaseSentMessageUpdate]s to [CommonMessage] from [BaseSentMessageUpdate.data]
|
||||
* Will map incoming [BaseSentMessageUpdate]s to [ChatContentMessage] from [BaseSentMessageUpdate.data]
|
||||
*/
|
||||
fun <T : BaseSentMessageUpdate> Flow<T>.asCommonMessagesFlow() = mapNotNull {
|
||||
it.data as? CommonMessage<*>
|
||||
it.data as? ChatContentMessage<*>
|
||||
}
|
||||
|
||||
@Suppress("NOTHING_TO_INLINE")
|
||||
|
||||
@@ -9,7 +9,7 @@ import dev.inmo.tgbotapi.extensions.utils.updates.convertWithMediaGroupUpdates
|
||||
import dev.inmo.tgbotapi.requests.GetUpdates
|
||||
import dev.inmo.tgbotapi.requests.webhook.DeleteWebhook
|
||||
import dev.inmo.tgbotapi.types.*
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.CommonMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.content.MediaGroupContent
|
||||
import dev.inmo.tgbotapi.types.update.*
|
||||
import dev.inmo.tgbotapi.types.update.abstracts.BaseSentMessageUpdate
|
||||
@@ -102,7 +102,7 @@ fun TelegramBot.longPollingFlow(
|
||||
*/
|
||||
val updates = if (
|
||||
originalUpdates.size == getUpdatesLimit.last
|
||||
&& ((converted.last() as? BaseSentMessageUpdate)?.data as? CommonMessage<*>)?.content is MediaGroupContent<*>
|
||||
&& ((converted.last() as? BaseSentMessageUpdate)?.data as? ChatContentMessage<*>)?.content is MediaGroupContent<*>
|
||||
) {
|
||||
converted - converted.last()
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user