mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI.git
synced 2025-09-16 13:49:26 +00:00
several fixes
This commit is contained in:
@@ -122,16 +122,16 @@ inline fun SendVisualMediaGroup(
|
||||
allowSendingWithoutReply: Boolean? = null
|
||||
) = SendMediaGroup<VisualMediaGroupPartContent>(chatId, media, threadId, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply)
|
||||
|
||||
private object MessagesListSerializer: KSerializer<PossiblySentViaBotCommonMessage<MediaGroupContent>> {
|
||||
private object MessagesListSerializer: KSerializer<PossiblySentViaBotCommonMessage<MediaGroupContent<MediaGroupPartContent>>> {
|
||||
private val serializer = ListSerializer(TelegramBotAPIMessageDeserializeOnlySerializerClass<PossiblySentViaBotCommonMessage<MediaGroupPartContent>>())
|
||||
override val descriptor: SerialDescriptor = serializer.descriptor
|
||||
|
||||
override fun deserialize(decoder: Decoder): PossiblySentViaBotCommonMessage<MediaGroupContent> {
|
||||
override fun deserialize(decoder: Decoder): PossiblySentViaBotCommonMessage<MediaGroupContent<MediaGroupPartContent>> {
|
||||
val messages = serializer.deserialize(decoder)
|
||||
return messages.asMediaGroupMessage()
|
||||
}
|
||||
|
||||
override fun serialize(encoder: Encoder, value: PossiblySentViaBotCommonMessage<MediaGroupContent>) {
|
||||
override fun serialize(encoder: Encoder, value: PossiblySentViaBotCommonMessage<MediaGroupContent<MediaGroupPartContent>>) {
|
||||
serializer.serialize(encoder, value.content.group.map { it.sourceMessage })
|
||||
}
|
||||
|
||||
@@ -152,8 +152,8 @@ data class SendMediaGroupData internal constructor(
|
||||
override val replyToMessageId: MessageId? = null,
|
||||
@SerialName(allowSendingWithoutReplyField)
|
||||
override val allowSendingWithoutReply: Boolean? = null
|
||||
) : DataRequest<PossiblySentViaBotCommonMessage<MediaGroupContent>>,
|
||||
SendMessageRequest<PossiblySentViaBotCommonMessage<MediaGroupContent>> {
|
||||
) : DataRequest<PossiblySentViaBotCommonMessage<MediaGroupContent<MediaGroupPartContent>>>,
|
||||
SendMessageRequest<PossiblySentViaBotCommonMessage<MediaGroupContent<MediaGroupPartContent>>> {
|
||||
@SerialName(mediaField)
|
||||
private val convertedMedia: String
|
||||
get() = buildJsonArray {
|
||||
@@ -166,7 +166,7 @@ data class SendMediaGroupData internal constructor(
|
||||
override fun method(): String = "sendMediaGroup"
|
||||
override val requestSerializer: SerializationStrategy<*>
|
||||
get() = serializer()
|
||||
override val resultDeserializer: DeserializationStrategy<PossiblySentViaBotCommonMessage<MediaGroupContent>>
|
||||
override val resultDeserializer: DeserializationStrategy<PossiblySentViaBotCommonMessage<MediaGroupContent<MediaGroupPartContent>>>
|
||||
get() = MessagesListSerializer
|
||||
}
|
||||
|
||||
|
@@ -24,14 +24,14 @@ sealed interface DocumentMediaGroupPartContent : MediaGroupPartContent {
|
||||
|
||||
sealed interface TextedMediaContent : MediaContent, TextedInput
|
||||
|
||||
sealed interface MediaGroupCollectionContent : TextedMediaContent {
|
||||
sealed interface MediaGroupCollectionContent<T : MediaGroupPartContent> : TextedMediaContent {
|
||||
@Serializable
|
||||
data class PartWrapper(
|
||||
data class PartWrapper<T : MediaGroupPartContent>(
|
||||
val messageId: MessageId,
|
||||
val content: MediaGroupPartContent,
|
||||
val sourceMessage: PossiblySentViaBotCommonMessage<MediaGroupPartContent>
|
||||
val content: T,
|
||||
val sourceMessage: PossiblySentViaBotCommonMessage<T>
|
||||
)
|
||||
val group: List<PartWrapper>
|
||||
val group: List<PartWrapper<T>>
|
||||
val mediaGroupId: MediaGroupIdentifier
|
||||
}
|
||||
|
||||
|
@@ -14,10 +14,10 @@ import dev.inmo.tgbotapi.types.message.textsources.TextSource
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
@Serializable
|
||||
data class MediaGroupContent(
|
||||
override val group: List<MediaGroupCollectionContent.PartWrapper>,
|
||||
data class MediaGroupContent<T : MediaGroupPartContent>(
|
||||
override val group: List<MediaGroupCollectionContent.PartWrapper<T>>,
|
||||
override val mediaGroupId: MediaGroupIdentifier
|
||||
) : MediaGroupCollectionContent {
|
||||
) : MediaGroupCollectionContent<T> {
|
||||
val mainContent: MediaGroupPartContent
|
||||
get() = group.first().content
|
||||
override val media: TelegramMediaFile
|
||||
|
@@ -20,7 +20,7 @@ typealias VideoNoteMessage = CommonMessage<VideoNoteContent>
|
||||
typealias StickerMessage = CommonMessage<StickerContent>
|
||||
typealias TextedMediaMessage = CommonMessage<TextedMediaContent>
|
||||
typealias VoiceMessage = CommonMessage<VoiceContent>
|
||||
typealias MediaGroupMessage = CommonMessage<MediaGroupContent>
|
||||
typealias MediaGroupMessage<T> = CommonMessage<MediaGroupContent<T>>
|
||||
typealias AudioMediaGroupMessage = CommonMessage<AudioMediaGroupPartContent>
|
||||
typealias AudioMessage = CommonMessage<AudioContent>
|
||||
typealias DocumentMediaGroupMessage = CommonMessage<DocumentMediaGroupPartContent>
|
||||
|
@@ -27,7 +27,7 @@ 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")
|
||||
fun List<PossiblySentViaBotCommonMessage<MediaGroupPartContent>>.asMediaGroupMessage(): PossiblySentViaBotCommonMessage<MediaGroupContent> {
|
||||
fun <T : MediaGroupPartContent> List<PossiblySentViaBotCommonMessage<T>>.asMediaGroupMessage(): PossiblySentViaBotCommonMessage<MediaGroupContent<T>> {
|
||||
val sourceMessage = first()
|
||||
val content = MediaGroupContent(
|
||||
map { MediaGroupCollectionContent.PartWrapper(it.messageId, it.content, it) },
|
||||
|
Reference in New Issue
Block a user