2022-11-06 08:07:31 +00:00
|
|
|
package dev.inmo.tgbotapi.utils.extensions
|
|
|
|
|
2024-04-16 10:00:15 +00:00
|
|
|
import dev.inmo.tgbotapi.types.message.*
|
|
|
|
import dev.inmo.tgbotapi.types.message.abstracts.*
|
2022-11-06 08:07:31 +00:00
|
|
|
import dev.inmo.tgbotapi.types.message.content.MediaGroupCollectionContent
|
|
|
|
import dev.inmo.tgbotapi.types.message.content.MediaGroupContent
|
|
|
|
import dev.inmo.tgbotapi.types.message.content.MediaGroupPartContent
|
|
|
|
import dev.inmo.tgbotapi.utils.RiskFeature
|
|
|
|
|
|
|
|
@RiskFeature("This API is experimental and can be changed without any notice, use with caution")
|
2022-11-07 20:50:22 +00:00
|
|
|
fun <T : MediaGroupPartContent> List<PossiblySentViaBotCommonMessage<T>>.asMediaGroupMessage(): PossiblySentViaBotCommonMessage<MediaGroupContent<T>> {
|
2022-11-07 19:51:27 +00:00
|
|
|
val sourceMessage = first()
|
2022-11-06 08:07:31 +00:00
|
|
|
val content = MediaGroupContent(
|
|
|
|
map { MediaGroupCollectionContent.PartWrapper(it.messageId, it.content, it) },
|
2022-11-07 19:51:27 +00:00
|
|
|
sourceMessage.mediaGroupId ?: error("Can't create media group message with the first message without media group id")
|
2022-11-06 08:07:31 +00:00
|
|
|
)
|
2022-11-07 19:51:27 +00:00
|
|
|
return when (sourceMessage) {
|
2022-11-06 08:07:31 +00:00
|
|
|
is ChannelContentMessage -> ChannelContentMessageImpl(
|
|
|
|
sourceMessage.messageId,
|
|
|
|
sourceMessage.chat,
|
|
|
|
content,
|
|
|
|
sourceMessage.date,
|
|
|
|
sourceMessage.editDate,
|
|
|
|
sourceMessage.hasProtectedContent,
|
2024-01-07 11:12:37 +00:00
|
|
|
sourceMessage.forwardOrigin,
|
2024-01-07 13:38:22 +00:00
|
|
|
sourceMessage.replyInfo,
|
2022-11-06 08:07:31 +00:00
|
|
|
sourceMessage.replyMarkup,
|
|
|
|
sourceMessage.senderBot,
|
2022-11-07 19:51:27 +00:00
|
|
|
sourceMessage.authorSignature,
|
|
|
|
sourceMessage.mediaGroupId
|
2022-11-06 08:07:31 +00:00
|
|
|
)
|
2024-04-16 10:00:15 +00:00
|
|
|
is BusinessContentMessage -> BusinessContentMessageImpl(
|
|
|
|
sourceMessage.messageId,
|
|
|
|
sourceMessage.user,
|
|
|
|
sourceMessage.chat,
|
|
|
|
sourceMessage.businessConnectionId,
|
|
|
|
content,
|
|
|
|
sourceMessage.date,
|
|
|
|
sourceMessage.editDate,
|
|
|
|
sourceMessage.hasProtectedContent,
|
|
|
|
sourceMessage.forwardOrigin,
|
|
|
|
sourceMessage.replyInfo,
|
|
|
|
sourceMessage.replyMarkup,
|
|
|
|
sourceMessage.senderBot,
|
2024-04-16 12:37:04 +00:00
|
|
|
sourceMessage.mediaGroupId,
|
|
|
|
sourceMessage.senderBusinessBot
|
2024-04-16 10:00:15 +00:00
|
|
|
)
|
2022-11-06 08:07:31 +00:00
|
|
|
is PrivateContentMessage -> PrivateContentMessageImpl(
|
|
|
|
sourceMessage.messageId,
|
|
|
|
sourceMessage.user,
|
|
|
|
sourceMessage.chat,
|
|
|
|
content,
|
|
|
|
sourceMessage.date,
|
|
|
|
sourceMessage.editDate,
|
|
|
|
sourceMessage.hasProtectedContent,
|
2024-01-07 11:12:37 +00:00
|
|
|
sourceMessage.forwardOrigin,
|
2024-01-07 13:38:22 +00:00
|
|
|
sourceMessage.replyInfo,
|
2022-11-06 08:07:31 +00:00
|
|
|
sourceMessage.replyMarkup,
|
2022-11-07 19:51:27 +00:00
|
|
|
sourceMessage.senderBot,
|
|
|
|
sourceMessage.mediaGroupId
|
2022-11-06 08:07:31 +00:00
|
|
|
)
|
|
|
|
is AnonymousGroupContentMessage -> AnonymousGroupContentMessageImpl(
|
|
|
|
sourceMessage.chat,
|
|
|
|
sourceMessage.messageId,
|
|
|
|
sourceMessage.date,
|
2024-01-07 11:12:37 +00:00
|
|
|
sourceMessage.forwardOrigin,
|
2022-11-06 08:07:31 +00:00
|
|
|
sourceMessage.editDate,
|
|
|
|
sourceMessage.hasProtectedContent,
|
2024-01-07 13:38:22 +00:00
|
|
|
sourceMessage.replyInfo,
|
2022-11-06 08:07:31 +00:00
|
|
|
sourceMessage.replyMarkup,
|
|
|
|
content,
|
|
|
|
sourceMessage.senderBot,
|
2022-11-07 19:51:27 +00:00
|
|
|
sourceMessage.authorSignature,
|
|
|
|
sourceMessage.mediaGroupId
|
2022-11-06 08:07:31 +00:00
|
|
|
)
|
|
|
|
is CommonGroupContentMessage -> CommonGroupContentMessageImpl(
|
|
|
|
sourceMessage.chat,
|
|
|
|
sourceMessage.messageId,
|
|
|
|
sourceMessage.user,
|
|
|
|
sourceMessage.date,
|
2024-01-07 11:12:37 +00:00
|
|
|
sourceMessage.forwardOrigin,
|
2022-11-06 08:07:31 +00:00
|
|
|
sourceMessage.editDate,
|
|
|
|
sourceMessage.hasProtectedContent,
|
2024-01-07 13:38:22 +00:00
|
|
|
sourceMessage.replyInfo,
|
2022-11-06 08:07:31 +00:00
|
|
|
sourceMessage.replyMarkup,
|
|
|
|
content,
|
2022-11-07 19:51:27 +00:00
|
|
|
sourceMessage.senderBot,
|
2024-02-16 15:38:28 +00:00
|
|
|
sourceMessage.mediaGroupId,
|
|
|
|
sourceMessage.senderBoostsCount
|
2022-11-06 08:07:31 +00:00
|
|
|
)
|
|
|
|
is ConnectedFromChannelGroupContentMessage -> ConnectedFromChannelGroupContentMessageImpl(
|
|
|
|
sourceMessage.chat,
|
|
|
|
sourceMessage.channel,
|
|
|
|
sourceMessage.messageId,
|
|
|
|
sourceMessage.date,
|
2024-01-07 11:12:37 +00:00
|
|
|
sourceMessage.forwardOrigin,
|
2022-11-06 08:07:31 +00:00
|
|
|
sourceMessage.editDate,
|
|
|
|
sourceMessage.hasProtectedContent,
|
2024-01-07 13:38:22 +00:00
|
|
|
sourceMessage.replyInfo,
|
2022-11-06 08:07:31 +00:00
|
|
|
sourceMessage.replyMarkup,
|
|
|
|
content,
|
|
|
|
sourceMessage.senderBot,
|
2022-11-07 19:51:27 +00:00
|
|
|
sourceMessage.authorSignature,
|
|
|
|
sourceMessage.mediaGroupId
|
2022-11-06 08:07:31 +00:00
|
|
|
)
|
|
|
|
is UnconnectedFromChannelGroupContentMessage -> UnconnectedFromChannelGroupContentMessageImpl(
|
|
|
|
sourceMessage.chat,
|
|
|
|
sourceMessage.channel,
|
|
|
|
sourceMessage.messageId,
|
|
|
|
sourceMessage.date,
|
2024-01-07 11:12:37 +00:00
|
|
|
sourceMessage.forwardOrigin,
|
2022-11-06 08:07:31 +00:00
|
|
|
sourceMessage.editDate,
|
|
|
|
sourceMessage.hasProtectedContent,
|
2024-01-07 13:38:22 +00:00
|
|
|
sourceMessage.replyInfo,
|
2022-11-06 08:07:31 +00:00
|
|
|
sourceMessage.replyMarkup,
|
|
|
|
content,
|
|
|
|
sourceMessage.senderBot,
|
2022-11-07 19:51:27 +00:00
|
|
|
sourceMessage.authorSignature,
|
|
|
|
sourceMessage.mediaGroupId
|
2022-11-06 08:07:31 +00:00
|
|
|
)
|
|
|
|
is AnonymousForumContentMessage -> AnonymousForumContentMessageImpl(
|
|
|
|
sourceMessage.chat,
|
|
|
|
sourceMessage.messageId,
|
|
|
|
sourceMessage.threadId,
|
|
|
|
sourceMessage.date,
|
2024-01-07 11:12:37 +00:00
|
|
|
sourceMessage.forwardOrigin,
|
2022-11-06 08:07:31 +00:00
|
|
|
sourceMessage.editDate,
|
|
|
|
sourceMessage.hasProtectedContent,
|
2024-01-07 13:38:22 +00:00
|
|
|
sourceMessage.replyInfo,
|
2022-11-06 08:07:31 +00:00
|
|
|
sourceMessage.replyMarkup,
|
|
|
|
content,
|
|
|
|
sourceMessage.senderBot,
|
2022-11-07 19:51:27 +00:00
|
|
|
sourceMessage.authorSignature,
|
|
|
|
sourceMessage.mediaGroupId
|
2022-11-06 08:07:31 +00:00
|
|
|
)
|
|
|
|
is CommonForumContentMessage -> CommonForumContentMessageImpl(
|
|
|
|
sourceMessage.chat,
|
|
|
|
sourceMessage.messageId,
|
|
|
|
sourceMessage.threadId,
|
|
|
|
sourceMessage.user,
|
|
|
|
sourceMessage.date,
|
2024-01-07 11:12:37 +00:00
|
|
|
sourceMessage.forwardOrigin,
|
2022-11-06 08:07:31 +00:00
|
|
|
sourceMessage.editDate,
|
|
|
|
sourceMessage.hasProtectedContent,
|
2024-01-07 13:38:22 +00:00
|
|
|
sourceMessage.replyInfo,
|
2022-11-06 08:07:31 +00:00
|
|
|
sourceMessage.replyMarkup,
|
|
|
|
content,
|
2022-11-07 19:51:27 +00:00
|
|
|
sourceMessage.senderBot,
|
2024-02-16 15:38:28 +00:00
|
|
|
sourceMessage.mediaGroupId,
|
|
|
|
sourceMessage.senderBoostsCount
|
2022-11-06 08:07:31 +00:00
|
|
|
)
|
|
|
|
is FromChannelForumContentMessage -> FromChannelForumContentMessageImpl(
|
|
|
|
sourceMessage.chat,
|
|
|
|
sourceMessage.channel,
|
|
|
|
sourceMessage.messageId,
|
|
|
|
sourceMessage.threadId,
|
|
|
|
sourceMessage.date,
|
2024-01-07 11:12:37 +00:00
|
|
|
sourceMessage.forwardOrigin,
|
2022-11-06 08:07:31 +00:00
|
|
|
sourceMessage.editDate,
|
|
|
|
sourceMessage.hasProtectedContent,
|
2024-01-07 13:38:22 +00:00
|
|
|
sourceMessage.replyInfo,
|
2022-11-06 08:07:31 +00:00
|
|
|
sourceMessage.replyMarkup,
|
|
|
|
content,
|
|
|
|
sourceMessage.senderBot,
|
2022-11-07 19:51:27 +00:00
|
|
|
sourceMessage.authorSignature,
|
|
|
|
sourceMessage.mediaGroupId
|
2022-11-06 08:07:31 +00:00
|
|
|
)
|
|
|
|
}
|
|
|
|
}
|