1
0
mirror of https://github.com/InsanusMokrassar/TelegramBotAPI.git synced 2024-06-14 22:05:28 +00:00
tgbotapi/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/utils/extensions/MediaGroupContentMessageCreator.kt

180 lines
6.8 KiB
Kotlin
Raw Normal View History

2022-11-06 08:07:31 +00:00
package dev.inmo.tgbotapi.utils.extensions
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,
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,
sourceMessage.fromOffline
2022-11-06 08:07:31 +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,
sourceMessage.fromOffline
)
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,
sourceMessage.replyInfo,
2022-11-06 08:07:31 +00:00
sourceMessage.replyMarkup,
2022-11-07 19:51:27 +00:00
sourceMessage.senderBot,
sourceMessage.mediaGroupId,
sourceMessage.fromOffline
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,
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,
sourceMessage.fromOffline
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,
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,
sourceMessage.fromOffline
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,
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,
sourceMessage.fromOffline
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,
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,
sourceMessage.fromOffline
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,
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,
sourceMessage.fromOffline
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,
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,
sourceMessage.fromOffline
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,
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,
sourceMessage.fromOffline
2022-11-06 08:07:31 +00:00
)
}
}