From f2e1742634a1ef0defc179942d760b5c0eddb061 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Wed, 20 Mar 2019 08:52:36 +0800 Subject: [PATCH 01/10] start 0.12.3 --- CHANGELOG.md | 2 ++ build.gradle | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index abff925ce9..b5886316e2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -38,6 +38,8 @@ * `UpdatesFilter` and other objects now work with `UpdateReceiver` as common supertype for receivers. +### 0.12.3 Cleaning + ## 0.11.0 * Kotlin `1.3.11` -> `1.3.21` diff --git a/build.gradle b/build.gradle index ce0d1adb5c..d5c823b65a 100644 --- a/build.gradle +++ b/build.gradle @@ -1,4 +1,4 @@ -project.version = "0.12.2" +project.version = "0.12.3" project.group = "com.github.insanusmokrassar" buildscript { From 03bacc59efa1f2748126dfdd6366774166541672 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Wed, 20 Mar 2019 08:52:58 +0800 Subject: [PATCH 02/10] remove redundant ImplicitReflectionSerializer --- .../TelegramBotAPI/bot/Ktor/base/MultipartRequestCallFactory.kt | 1 - .../TelegramBotAPI/bot/Ktor/base/SimpleRequestCallFactory.kt | 1 - 2 files changed, 2 deletions(-) diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/bot/Ktor/base/MultipartRequestCallFactory.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/bot/Ktor/base/MultipartRequestCallFactory.kt index b4b992ab7f..de448f73dc 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/bot/Ktor/base/MultipartRequestCallFactory.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/bot/Ktor/base/MultipartRequestCallFactory.kt @@ -14,7 +14,6 @@ import io.ktor.http.* import kotlinx.serialization.ImplicitReflectionSerializer class MultipartRequestCallFactory : KtorCallFactory { - @ImplicitReflectionSerializer override suspend fun prepareCall( client: HttpClient, baseUrl: String, diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/bot/Ktor/base/SimpleRequestCallFactory.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/bot/Ktor/base/SimpleRequestCallFactory.kt index 48b4d7e21a..93affbdd92 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/bot/Ktor/base/SimpleRequestCallFactory.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/bot/Ktor/base/SimpleRequestCallFactory.kt @@ -14,7 +14,6 @@ import io.ktor.http.content.TextContent import kotlinx.serialization.ImplicitReflectionSerializer class SimpleRequestCallFactory : KtorCallFactory { - @ImplicitReflectionSerializer override suspend fun prepareCall( client: HttpClient, baseUrl: String, From eabb094ea5feda06d891b64cb5614bd1564372a3 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Wed, 20 Mar 2019 08:53:37 +0800 Subject: [PATCH 03/10] fill CHANGELOG --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b5886316e2..326a5160f4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -40,6 +40,8 @@ for receivers. ### 0.12.3 Cleaning +* Refactor, optimizing and cleaning of code + ## 0.11.0 * Kotlin `1.3.11` -> `1.3.21` From e303a43d36dacc218caae9baea1c8449f758d451 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Wed, 20 Mar 2019 08:55:46 +0800 Subject: [PATCH 04/10] complete ImplicitReflectionSerializer removing --- CHANGELOG.md | 1 + .../requests/common/CommonMultipartFileRequest.kt | 1 - .../requests/send/media/base/MultipartRequestImpl.kt | 1 - .../github/insanusmokrassar/TelegramBotAPI/utils/JSON.kt | 6 ------ 4 files changed, 1 insertion(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 326a5160f4..0ce86e956b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -41,6 +41,7 @@ for receivers. ### 0.12.3 Cleaning * Refactor, optimizing and cleaning of code +* Removed deprecated method `T#toJsonWithoutNulls()` ## 0.11.0 diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/common/CommonMultipartFileRequest.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/common/CommonMultipartFileRequest.kt index efa5240cbd..eb3c012b2f 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/common/CommonMultipartFileRequest.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/common/CommonMultipartFileRequest.kt @@ -8,6 +8,5 @@ data class CommonMultipartFileRequest( val data: Request, override val mediaMap: Map ) : MultipartRequest, Request by data { - @ImplicitReflectionSerializer override val paramsJson: JsonObject = data.json() } diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/base/MultipartRequestImpl.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/base/MultipartRequestImpl.kt index bc5488a504..c52e68181f 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/base/MultipartRequestImpl.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/base/MultipartRequestImpl.kt @@ -15,7 +15,6 @@ class MultipartRequestImpl, F: Files, R: Any>( ) : MultipartRequest { override fun method(): String = data.method() override fun resultSerializer(): KSerializer = data.resultSerializer() - @ImplicitReflectionSerializer override val paramsJson: JsonObject = data.json() override val mediaMap: Map = files } diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/utils/JSON.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/utils/JSON.kt index e8c0583fac..bd571eed1f 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/utils/JSON.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/utils/JSON.kt @@ -4,12 +4,6 @@ import kotlinx.serialization.ImplicitReflectionSerializer import kotlinx.serialization.KSerializer import kotlinx.serialization.json.* -@Deprecated("This method can throw exceptions") -@ImplicitReflectionSerializer -inline fun T.toJsonWithoutNulls(): JsonObject = Json.nonstrict.toJson( - this -).jsonObject.withoutNulls() - inline fun T.toJsonWithoutNulls(serializer: KSerializer): JsonObject = toJson(serializer).withoutNulls() inline fun T.toJson(serializer: KSerializer): JsonObject = Json.nonstrict.toJson( From 15686f742a4b5fac2792dd0e8206a9730d721411 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Wed, 20 Mar 2019 09:05:02 +0800 Subject: [PATCH 05/10] optimize imports --- .../TelegramBotAPI/bot/Ktor/base/MultipartRequestCallFactory.kt | 1 - .../TelegramBotAPI/bot/Ktor/base/SimpleRequestCallFactory.kt | 1 - .../TelegramBotAPI/requests/common/CommonMultipartFileRequest.kt | 1 - .../requests/send/media/base/MultipartRequestImpl.kt | 1 - .../com/github/insanusmokrassar/TelegramBotAPI/utils/JSON.kt | 1 - 5 files changed, 5 deletions(-) diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/bot/Ktor/base/MultipartRequestCallFactory.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/bot/Ktor/base/MultipartRequestCallFactory.kt index de448f73dc..e7c16717e7 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/bot/Ktor/base/MultipartRequestCallFactory.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/bot/Ktor/base/MultipartRequestCallFactory.kt @@ -11,7 +11,6 @@ import io.ktor.client.request.forms.MultiPartFormDataContent import io.ktor.client.request.forms.formData import io.ktor.client.request.url import io.ktor.http.* -import kotlinx.serialization.ImplicitReflectionSerializer class MultipartRequestCallFactory : KtorCallFactory { override suspend fun prepareCall( diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/bot/Ktor/base/SimpleRequestCallFactory.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/bot/Ktor/base/SimpleRequestCallFactory.kt index 93affbdd92..3e91948a34 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/bot/Ktor/base/SimpleRequestCallFactory.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/bot/Ktor/base/SimpleRequestCallFactory.kt @@ -11,7 +11,6 @@ import io.ktor.client.request.url import io.ktor.http.ContentType import io.ktor.http.HttpMethod import io.ktor.http.content.TextContent -import kotlinx.serialization.ImplicitReflectionSerializer class SimpleRequestCallFactory : KtorCallFactory { override suspend fun prepareCall( diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/common/CommonMultipartFileRequest.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/common/CommonMultipartFileRequest.kt index eb3c012b2f..be59fe4131 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/common/CommonMultipartFileRequest.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/common/CommonMultipartFileRequest.kt @@ -1,7 +1,6 @@ package com.github.insanusmokrassar.TelegramBotAPI.requests.common import com.github.insanusmokrassar.TelegramBotAPI.requests.abstracts.* -import kotlinx.serialization.ImplicitReflectionSerializer import kotlinx.serialization.json.JsonObject data class CommonMultipartFileRequest( diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/base/MultipartRequestImpl.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/base/MultipartRequestImpl.kt index c52e68181f..c00917c99a 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/base/MultipartRequestImpl.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/base/MultipartRequestImpl.kt @@ -2,7 +2,6 @@ package com.github.insanusmokrassar.TelegramBotAPI.requests.send.media.base import com.github.insanusmokrassar.TelegramBotAPI.requests.abstracts.MultipartFile import com.github.insanusmokrassar.TelegramBotAPI.requests.abstracts.MultipartRequest -import kotlinx.serialization.ImplicitReflectionSerializer import kotlinx.serialization.KSerializer import kotlinx.serialization.json.JsonObject diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/utils/JSON.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/utils/JSON.kt index bd571eed1f..9273319a5c 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/utils/JSON.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/utils/JSON.kt @@ -1,6 +1,5 @@ package com.github.insanusmokrassar.TelegramBotAPI.utils -import kotlinx.serialization.ImplicitReflectionSerializer import kotlinx.serialization.KSerializer import kotlinx.serialization.json.* From ed341c231d8120fc154641134d40efd54f612cdd Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Thu, 21 Mar 2019 08:45:51 +0800 Subject: [PATCH 06/10] media group messages refactoring --- CHANGELOG.md | 2 ++ .../{MediaGroupMessage.kt => ChannelMediaGroupMessage.kt} | 4 ++-- .../TelegramBotAPI/types/message/CommonMediaGroupMessage.kt | 2 +- .../TelegramBotAPI/types/message/RawMessage.kt | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) rename src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/{MediaGroupMessage.kt => ChannelMediaGroupMessage.kt} (93%) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0ce86e956b..65bdf0e602 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -42,6 +42,8 @@ for receivers. * Refactor, optimizing and cleaning of code * Removed deprecated method `T#toJsonWithoutNulls()` +* Renamed instances of `MediaGroupMessage`s and refactored their interfaces. `ChannelMediaGroupMessage` +will not contain `user` field (but `CommonMediaGroupMessage` will have) ## 0.11.0 diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/MediaGroupMessage.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/ChannelMediaGroupMessage.kt similarity index 93% rename from src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/MediaGroupMessage.kt rename to src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/ChannelMediaGroupMessage.kt index 904cda00d6..1a10980a8c 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/MediaGroupMessage.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/ChannelMediaGroupMessage.kt @@ -8,7 +8,7 @@ import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.Messag import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.abstracts.MediaGroupContent import org.joda.time.DateTime -data class MediaGroupMessage( +data class ChannelMediaGroupMessage( override val messageId: MessageIdentifier, override val chat: Chat, override val date: DateTime, @@ -17,4 +17,4 @@ data class MediaGroupMessage( override val editDate: DateTime?, override val forwarded: ForwardedMessage?, override val replyTo: Message? -) : Message, MediaGroupMessage +) : MediaGroupMessage diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/CommonMediaGroupMessage.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/CommonMediaGroupMessage.kt index 878dc837c4..9e4e35a3ac 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/CommonMediaGroupMessage.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/CommonMediaGroupMessage.kt @@ -17,4 +17,4 @@ data class CommonMediaGroupMessage( override val editDate: DateTime?, override val forwarded: ForwardedMessage?, override val replyTo: Message? -) : Message, MediaGroupMessage, FromUserMessage +) : MediaGroupMessage, FromUserMessage diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/RawMessage.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/RawMessage.kt index d42a935102..19b54b86d2 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/RawMessage.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/RawMessage.kt @@ -210,7 +210,7 @@ data class RawMessage( content -> media_group_id ?.let { when (from) { - null -> MediaGroupMessage( + null -> ChannelMediaGroupMessage( messageId, chat, date.asDate, From da6caf183472a33e4438ee9a8c04fdd7e25f10ac Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Thu, 21 Mar 2019 08:46:26 +0800 Subject: [PATCH 07/10] optimize imports --- .../TelegramBotAPI/types/message/CommonMediaGroupMessage.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/CommonMediaGroupMessage.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/CommonMediaGroupMessage.kt index 9e4e35a3ac..736eba1fc9 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/CommonMediaGroupMessage.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/CommonMediaGroupMessage.kt @@ -3,7 +3,6 @@ package com.github.insanusmokrassar.TelegramBotAPI.types.message import com.github.insanusmokrassar.TelegramBotAPI.types.* import com.github.insanusmokrassar.TelegramBotAPI.types.chat.Chat import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.* -import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.MediaGroupMessage import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.abstracts.MediaGroupContent import org.joda.time.DateTime From bf3356bea9d9e159f41b26e73c06d4832cd52623 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Thu, 21 Mar 2019 08:51:52 +0800 Subject: [PATCH 08/10] remove redundant part of maven.publish.gradle --- gradle.properties | 3 +++ maven.publish.gradle | 24 ++---------------------- 2 files changed, 5 insertions(+), 22 deletions(-) diff --git a/gradle.properties b/gradle.properties index 30d76e621e..20f62f9d7f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -7,4 +7,7 @@ ktor_version=1.1.2 gradle_bintray_plugin_version=1.8.4 +project_public_name=Telegram Bot API +project_public_description=It is one more project which wish to be useful and full Telegram Bots API bridge for Kotlin + disableImplicitReflectionSerializerAnnotation=-Xexperimental=kotlinx.serialization.ImplicitReflectionSerializer diff --git a/maven.publish.gradle b/maven.publish.gradle index 1c3ce7ee3b..f0237c2947 100644 --- a/maven.publish.gradle +++ b/maven.publish.gradle @@ -1,26 +1,6 @@ apply plugin: 'maven-publish' apply plugin: 'signing' -def pomConfig = { - licenses { - license { - name "The Apache Software License, Version 2.0" - url "http://www.apache.org/licenses/LICENSE-2.0.txt" - distribution "repo" - } - } - developers { - developer { - name "Ovsiannikov Aleksei" - email "ovsyannikov.alexey95@gmail.com" - } - } - - scm { - url "https://github.com/InsanusMokrassar/${project.name}" - } -} - task sourcesJar(type: Jar) { from sourceSets.main.allSource classifier = 'sources' @@ -45,8 +25,8 @@ publishing { pom.withXml { asNode().children().last() + { resolveStrategy = Closure.DELEGATE_FIRST - name 'Telegram Bot API' - description 'It is one more project which wish to be useful and full Telegram Bots API bridge for Kotlin' + name "${project_public_name}" + description "${project_public_description}" url "https://insanusmokrassar.github.io/${project.name}" scm { From 7d7a6ccf805beeabe052acc2cdb57b31dbc5277a Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Thu, 21 Mar 2019 09:18:54 +0800 Subject: [PATCH 09/10] MediaCollectionContent as MediaContent --- CHANGELOG.md | 3 +++ .../message/content/abstracts/MediaCollectionContent.kt | 4 ++-- .../types/message/content/media/PhotoContent.kt | 8 +++++--- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 65bdf0e602..992462dc57 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -44,6 +44,9 @@ for receivers. * Removed deprecated method `T#toJsonWithoutNulls()` * Renamed instances of `MediaGroupMessage`s and refactored their interfaces. `ChannelMediaGroupMessage` will not contain `user` field (but `CommonMediaGroupMessage` will have) +* Now `MediaCollectionContent` is `MediaContent` (classes of this interface must choose best +media for present out) + * `PhotoContent` now choose biggest photo size from its collection as `media` ## 0.11.0 diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/abstracts/MediaCollectionContent.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/abstracts/MediaCollectionContent.kt index a815289302..7e673c624b 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/abstracts/MediaCollectionContent.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/abstracts/MediaCollectionContent.kt @@ -2,6 +2,6 @@ package com.github.insanusmokrassar.TelegramBotAPI.types.message.content.abstrac import com.github.insanusmokrassar.TelegramBotAPI.types.files.abstracts.TelegramMediaFile -interface MediaCollectionContent: MessageContent { - val media: List +interface MediaCollectionContent: MessageContent, MediaContent { + val mediaCollection: List } diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/PhotoContent.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/PhotoContent.kt index 3a15314fb5..de31836ac8 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/PhotoContent.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/PhotoContent.kt @@ -16,10 +16,12 @@ import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.abstract import com.github.insanusmokrassar.TelegramBotAPI.utils.toMarkdownCaptions data class PhotoContent( - override val media: List, + override val mediaCollection: List, override val caption: String? = null, override val captionEntities: List = emptyList() ) : MediaCollectionContent, CaptionedMediaContent, MediaGroupContent { + override val media: PhotoSize = mediaCollection.biggest() ?: throw IllegalStateException("Can't locate any photo size for this content") + override fun createResend( chatId: ChatIdentifier, disableNotification: Boolean, @@ -27,7 +29,7 @@ data class PhotoContent( replyMarkup: KeyboardMarkup? ): Request = SendPhoto( chatId, - media.biggest() ?.fileId ?: throw IllegalStateException("Empty list of media"), + media.fileId, toMarkdownCaptions().firstOrNull(), MarkdownParseMode, disableNotification, @@ -36,7 +38,7 @@ data class PhotoContent( ) override fun toMediaGroupMemberInputMedia(): MediaGroupMemberInputMedia = InputMediaPhoto( - media.biggest() ?.fileId ?: throw IllegalStateException("Can't locate any photo size for this content"), + media.fileId, toMarkdownCaptions().firstOrNull(), MarkdownParseMode ) From 37c112f6abbdcd40e3ace322cabcce41b17a59f4 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Fri, 22 Mar 2019 09:07:09 +0800 Subject: [PATCH 10/10] media group messages order --- CHANGELOG.md | 1 + .../utils/BaseMessageUpdateToMediaGroupUpdate.kt | 9 +++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 992462dc57..54fec73005 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -47,6 +47,7 @@ will not contain `user` field (but `CommonMediaGroupMessage` will have) * Now `MediaCollectionContent` is `MediaContent` (classes of this interface must choose best media for present out) * `PhotoContent` now choose biggest photo size from its collection as `media` +* Fix in order of media group messages which was received by webhooks ## 0.11.0 diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/utils/BaseMessageUpdateToMediaGroupUpdate.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/utils/BaseMessageUpdateToMediaGroupUpdate.kt index e94d4af561..bf9ffd359e 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/utils/BaseMessageUpdateToMediaGroupUpdate.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/utils/BaseMessageUpdateToMediaGroupUpdate.kt @@ -5,11 +5,12 @@ import com.github.insanusmokrassar.TelegramBotAPI.types.update.MediaGroupUpdates import com.github.insanusmokrassar.TelegramBotAPI.types.update.abstracts.BaseMessageUpdate fun List.toMediaGroupUpdate(): MediaGroupUpdate? = (this as? MediaGroupUpdate) ?: let { + val resultList = sortedBy { it.updateId } when (first()) { - is MessageUpdate -> MessageMediaGroupUpdate(this) - is EditMessageUpdate -> EditMessageMediaGroupUpdate(this) - is ChannelPostUpdate -> ChannelPostMediaGroupUpdate(this) - is EditChannelPostUpdate -> EditChannelPostMediaGroupUpdate(this) + is MessageUpdate -> MessageMediaGroupUpdate(resultList) + is EditMessageUpdate -> EditMessageMediaGroupUpdate(resultList) + is ChannelPostUpdate -> ChannelPostMediaGroupUpdate(resultList) + is EditChannelPostUpdate -> EditChannelPostMediaGroupUpdate(resultList) else -> null } }