From e43d7350eddb2b854a415279b1fc116fe0e79d24 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Wed, 8 Jan 2020 12:11:57 +0600 Subject: [PATCH 01/11] started 0.21.1 --- CHANGELOG.md | 2 ++ build.gradle | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5d3adca9cd..6618c507b8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -30,6 +30,8 @@ bot. * Klock `1.8.0` -> `1.8.6` * UUID `0.0.6` -> `0.0.7` +### 0.21.1 + ## 0.20.0 MPP Migration * Time library change: `joda-time` -> `com.soywiz.korlibs.klock:klock` diff --git a/build.gradle b/build.gradle index 4a20b41134..72975ffc57 100644 --- a/build.gradle +++ b/build.gradle @@ -17,7 +17,7 @@ plugins { id "org.jetbrains.kotlin.plugin.serialization" version "$kotlin_version" } -project.version = "0.21.0" +project.version = "0.21.1" project.group = "com.github.insanusmokrassar" apply from: "publish.gradle" From 3fa2071847a893571d3273d9a88985f705bf1c04 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Wed, 15 Jan 2020 11:17:53 +0600 Subject: [PATCH 02/11] now most part of request have changed return types --- .../TelegramBotAPI/requests/ForwardMessage.kt | 12 ++++---- .../requests/chat/UnpinChatMessage.kt | 0 .../chat/get/GetChatAdministrators.kt | 9 +++--- .../EditChatMessageLiveLocation.kt | 13 ++++++--- .../StopChatMessageLiveLocation.kt | 12 +++++--- .../ReplyMarkup/EditChatMessageReplyMarkup.kt | 12 +++++--- .../edit/abstracts/EditChatMessage.kt | 5 ++-- .../edit/caption/EditChatMessageCaption.kt | 11 +++++--- .../edit/media/EditChatMessageMedia.kt | 13 +++++---- .../requests/edit/text/EditChatMessageText.kt | 10 ++++--- .../requests/send/SendContact.kt | 14 ++++++---- .../requests/send/SendLocation.kt | 17 +++++++---- .../requests/send/SendMessage.kt | 27 ++++++++++++------ .../TelegramBotAPI/requests/send/SendPoll.kt | 14 ++++++---- .../TelegramBotAPI/requests/send/SendVenue.kt | 19 +++++++------ .../requests/send/games/SendGame.kt | 12 +++++--- .../requests/send/media/SendAnimation.kt | 28 +++++++++++-------- .../requests/send/media/SendAudio.kt | 28 +++++++++++-------- .../requests/send/media/SendDocument.kt | 24 +++++++++------- .../requests/send/media/SendMediaGroup.kt | 13 +++++---- .../requests/send/media/SendPhoto.kt | 22 +++++++++------ .../requests/send/media/SendSticker.kt | 18 +++++++----- .../requests/send/media/SendVideo.kt | 28 +++++++++++-------- .../requests/send/media/SendVideoNote.kt | 28 +++++++++++-------- .../requests/send/media/SendVoice.kt | 26 +++++++++-------- .../types/ChatMember/abstracts/ChatMember.kt | 7 +++-- .../types/message/abstracts/Message.kt | 23 +++++++++------ .../types/message/content/ContactContent.kt | 3 +- .../types/message/content/GameContent.kt | 3 +- .../types/message/content/LocationContent.kt | 3 +- .../types/message/content/PollContent.kt | 3 +- .../types/message/content/TextContent.kt | 10 ++++--- .../types/message/content/VenueContent.kt | 3 +- .../content/abstracts/ResendableContent.kt | 4 +-- .../message/content/media/AnimationContent.kt | 3 +- .../message/content/media/AudioContent.kt | 3 +- .../message/content/media/DocumentContent.kt | 3 +- .../message/content/media/PhotoContent.kt | 3 +- .../message/content/media/StickerContent.kt | 3 +- .../message/content/media/VideoContent.kt | 3 +- .../message/content/media/VideoNoteContent.kt | 5 ++-- .../message/content/media/VoiceContent.kt | 3 +- 42 files changed, 304 insertions(+), 196 deletions(-) delete mode 100644 src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/UnpinChatMessage.kt diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/ForwardMessage.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/ForwardMessage.kt index 2f58255c54..66940cb2f1 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/ForwardMessage.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/ForwardMessage.kt @@ -3,10 +3,13 @@ package com.github.insanusmokrassar.TelegramBotAPI.requests import com.github.insanusmokrassar.TelegramBotAPI.CommonAbstracts.types.MessageAction import com.github.insanusmokrassar.TelegramBotAPI.requests.abstracts.SimpleRequest import com.github.insanusmokrassar.TelegramBotAPI.types.* -import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.Message +import com.github.insanusmokrassar.TelegramBotAPI.types.message.ForwardedMessage +import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.* import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.TelegramBotAPIMessageDeserializationStrategy import kotlinx.serialization.* +private val AbleToBeForwardedMessageDeserializer = TelegramBotAPIMessageDeserializationStrategyClass() + @Serializable data class ForwardMessage( @SerialName(fromChatIdField) @@ -17,15 +20,14 @@ data class ForwardMessage( override val messageId: MessageIdentifier, @SerialName(disableNotificationField) val disableNotification: Boolean = false -): SimpleRequest, MessageAction { - @Transient +): SimpleRequest, MessageAction { override val chatId: ChatIdentifier get() = fromChatId override fun method(): String = "forwardMessage" - override val resultDeserializer: DeserializationStrategy - get() = TelegramBotAPIMessageDeserializationStrategy + override val resultDeserializer: DeserializationStrategy + get() = AbleToBeForwardedMessageDeserializer override val requestSerializer: SerializationStrategy<*> get() = serializer() } diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/UnpinChatMessage.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/UnpinChatMessage.kt deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/get/GetChatAdministrators.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/get/GetChatAdministrators.kt index efc8548b7c..f05cb93352 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/get/GetChatAdministrators.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/chat/get/GetChatAdministrators.kt @@ -3,23 +3,22 @@ package com.github.insanusmokrassar.TelegramBotAPI.requests.chat.get import com.github.insanusmokrassar.TelegramBotAPI.CommonAbstracts.types.ChatRequest import com.github.insanusmokrassar.TelegramBotAPI.requests.abstracts.SimpleRequest import com.github.insanusmokrassar.TelegramBotAPI.types.ChatIdentifier -import com.github.insanusmokrassar.TelegramBotAPI.types.ChatMember.abstracts.ChatMember -import com.github.insanusmokrassar.TelegramBotAPI.types.ChatMember.abstracts.ChatMemberSerializerWithoutDeserialization +import com.github.insanusmokrassar.TelegramBotAPI.types.ChatMember.abstracts.* import com.github.insanusmokrassar.TelegramBotAPI.types.chatIdField import kotlinx.serialization.* import kotlinx.serialization.internal.ArrayListSerializer private val chatMembersListSerializer = ArrayListSerializer( - ChatMemberSerializerWithoutDeserialization + AdministratorChatMemberSerializerWithoutDeserialization ) @Serializable data class GetChatAdministrators( @SerialName(chatIdField) override val chatId: ChatIdentifier -): ChatRequest, SimpleRequest> { +): ChatRequest, SimpleRequest> { override fun method(): String = "getChatAdministrators" - override val resultDeserializer: DeserializationStrategy> + override val resultDeserializer: DeserializationStrategy> get() = chatMembersListSerializer override val requestSerializer: SerializationStrategy<*> get() = serializer() diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/LiveLocation/EditChatMessageLiveLocation.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/LiveLocation/EditChatMessageLiveLocation.kt index 69ae5d756a..d0532f369e 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/LiveLocation/EditChatMessageLiveLocation.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/LiveLocation/EditChatMessageLiveLocation.kt @@ -3,10 +3,15 @@ package com.github.insanusmokrassar.TelegramBotAPI.requests.edit.LiveLocation import com.github.insanusmokrassar.TelegramBotAPI.requests.edit.abstracts.* import com.github.insanusmokrassar.TelegramBotAPI.types.* import com.github.insanusmokrassar.TelegramBotAPI.types.buttons.InlineKeyboardMarkup -import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.Message +import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.* import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.TelegramBotAPIMessageDeserializationStrategy +import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.TelegramBotAPIMessageDeserializationStrategyClass +import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.LocationContent +import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.TextContent import kotlinx.serialization.* +private val commonResultDeserializer = TelegramBotAPIMessageDeserializationStrategyClass>() + @Serializable data class EditChatMessageLiveLocation( @SerialName(chatIdField) @@ -19,10 +24,10 @@ data class EditChatMessageLiveLocation( override val longitude: Double, @SerialName(replyMarkupField) override val replyMarkup: InlineKeyboardMarkup? = null -) : EditChatMessage, EditReplyMessage, EditLocationMessage { +) : EditChatMessage, EditReplyMessage, EditLocationMessage { override fun method(): String = "editMessageLiveLocation" - override val resultDeserializer: DeserializationStrategy - get() = TelegramBotAPIMessageDeserializationStrategy + override val resultDeserializer: DeserializationStrategy> + get() = commonResultDeserializer override val requestSerializer: SerializationStrategy<*> get() = serializer() } diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/LiveLocation/StopChatMessageLiveLocation.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/LiveLocation/StopChatMessageLiveLocation.kt index 242606ca5f..46b6ae84e4 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/LiveLocation/StopChatMessageLiveLocation.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/LiveLocation/StopChatMessageLiveLocation.kt @@ -4,10 +4,14 @@ import com.github.insanusmokrassar.TelegramBotAPI.requests.edit.abstracts.EditCh import com.github.insanusmokrassar.TelegramBotAPI.requests.edit.abstracts.EditReplyMessage import com.github.insanusmokrassar.TelegramBotAPI.types.* import com.github.insanusmokrassar.TelegramBotAPI.types.buttons.InlineKeyboardMarkup -import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.Message +import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.* import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.TelegramBotAPIMessageDeserializationStrategy +import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.TelegramBotAPIMessageDeserializationStrategyClass +import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.LocationContent import kotlinx.serialization.* +private val commonResultDeserializer = TelegramBotAPIMessageDeserializationStrategyClass>() + @Serializable data class StopChatMessageLiveLocation( @SerialName(chatIdField) @@ -16,10 +20,10 @@ data class StopChatMessageLiveLocation( override val messageId: MessageIdentifier, @SerialName(replyMarkupField) override val replyMarkup: InlineKeyboardMarkup? = null -) : EditChatMessage, EditReplyMessage { +) : EditChatMessage, EditReplyMessage { override fun method(): String = "stopMessageLiveLocation" - override val resultDeserializer: DeserializationStrategy - get() = TelegramBotAPIMessageDeserializationStrategy + override val resultDeserializer: DeserializationStrategy> + get() = commonResultDeserializer override val requestSerializer: SerializationStrategy<*> get() = serializer() } diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/ReplyMarkup/EditChatMessageReplyMarkup.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/ReplyMarkup/EditChatMessageReplyMarkup.kt index 5518ca379f..d6a83dc7df 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/ReplyMarkup/EditChatMessageReplyMarkup.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/ReplyMarkup/EditChatMessageReplyMarkup.kt @@ -4,12 +4,16 @@ import com.github.insanusmokrassar.TelegramBotAPI.requests.edit.abstracts.EditCh import com.github.insanusmokrassar.TelegramBotAPI.requests.edit.abstracts.EditReplyMessage import com.github.insanusmokrassar.TelegramBotAPI.types.* import com.github.insanusmokrassar.TelegramBotAPI.types.buttons.InlineKeyboardMarkup -import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.Message +import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.* import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.TelegramBotAPIMessageDeserializationStrategy +import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.abstracts.MediaContent +import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.abstracts.MessageContent import kotlinx.serialization.* const val editMessageReplyMarkupMethod = "editMessageReplyMarkup" +private val commonResultDeserializer = TelegramBotAPIMessageDeserializationStrategyClass>() + @Serializable data class EditChatMessageReplyMarkup( @SerialName(chatIdField) @@ -18,11 +22,11 @@ data class EditChatMessageReplyMarkup( override val messageId: MessageIdentifier, @SerialName(replyMarkupField) override val replyMarkup: InlineKeyboardMarkup? = null -) : EditChatMessage, EditReplyMessage { +) : EditChatMessage, EditReplyMessage { override fun method(): String = editMessageReplyMarkupMethod - override val resultDeserializer: DeserializationStrategy - get() = TelegramBotAPIMessageDeserializationStrategy + override val resultDeserializer: DeserializationStrategy> + get() = commonResultDeserializer override val requestSerializer: SerializationStrategy<*> get() = serializer() } diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/abstracts/EditChatMessage.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/abstracts/EditChatMessage.kt index 967f228991..8736c10eaa 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/abstracts/EditChatMessage.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/abstracts/EditChatMessage.kt @@ -2,6 +2,7 @@ package com.github.insanusmokrassar.TelegramBotAPI.requests.edit.abstracts import com.github.insanusmokrassar.TelegramBotAPI.CommonAbstracts.types.MessageAction import com.github.insanusmokrassar.TelegramBotAPI.requests.abstracts.SimpleRequest -import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.Message +import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.ContentMessage +import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.abstracts.MessageContent -interface EditChatMessage : SimpleRequest, MessageAction +interface EditChatMessage : SimpleRequest>, MessageAction diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/caption/EditChatMessageCaption.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/caption/EditChatMessageCaption.kt index 37c7234708..3f87ceb67c 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/caption/EditChatMessageCaption.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/caption/EditChatMessageCaption.kt @@ -1,12 +1,15 @@ package com.github.insanusmokrassar.TelegramBotAPI.requests.edit.caption import com.github.insanusmokrassar.TelegramBotAPI.requests.edit.abstracts.* +import com.github.insanusmokrassar.TelegramBotAPI.requests.edit.media.MediaContentMessageResultDeserializer import com.github.insanusmokrassar.TelegramBotAPI.types.* import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.ParseMode import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.parseModeField import com.github.insanusmokrassar.TelegramBotAPI.types.buttons.InlineKeyboardMarkup -import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.Message +import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.* import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.TelegramBotAPIMessageDeserializationStrategy +import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.TextContent +import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.abstracts.MediaContent import kotlinx.serialization.* const val editMessageCaptionMethod = "editMessageCaption" @@ -23,11 +26,11 @@ data class EditChatMessageCaption( override val parseMode: ParseMode? = null, @SerialName(replyMarkupField) override val replyMarkup: InlineKeyboardMarkup? = null -) : EditChatMessage, EditTextChatMessage, EditReplyMessage { +) : EditChatMessage, EditTextChatMessage, EditReplyMessage { override fun method(): String = editMessageCaptionMethod - override val resultDeserializer: DeserializationStrategy - get() = TelegramBotAPIMessageDeserializationStrategy + override val resultDeserializer: DeserializationStrategy> + get() = MediaContentMessageResultDeserializer override val requestSerializer: SerializationStrategy<*> get() = serializer() } diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/media/EditChatMessageMedia.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/media/EditChatMessageMedia.kt index f92222f1a7..45f44f26bd 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/media/EditChatMessageMedia.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/media/EditChatMessageMedia.kt @@ -5,12 +5,15 @@ import com.github.insanusmokrassar.TelegramBotAPI.requests.edit.abstracts.* import com.github.insanusmokrassar.TelegramBotAPI.types.* import com.github.insanusmokrassar.TelegramBotAPI.types.InputMedia.InputMedia import com.github.insanusmokrassar.TelegramBotAPI.types.buttons.InlineKeyboardMarkup -import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.Message -import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.TelegramBotAPIMessageDeserializationStrategy +import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.* +import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.TelegramBotAPIMessageDeserializationStrategyClass +import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.abstracts.MediaContent import kotlinx.serialization.* const val editMessageMediaMethod = "editMessageMedia" +internal val MediaContentMessageResultDeserializer = TelegramBotAPIMessageDeserializationStrategyClass>() + @Serializable data class EditChatMessageMedia( @SerialName(chatIdField) @@ -21,7 +24,7 @@ data class EditChatMessageMedia( override val media: InputMedia, @SerialName(replyMarkupField) override val replyMarkup: InlineKeyboardMarkup? = null -) : EditChatMessage, EditReplyMessage, EditMediaMessage { +) : EditChatMessage, EditReplyMessage, EditMediaMessage { init { if (media.file is MultipartFile) { @@ -30,8 +33,8 @@ data class EditChatMessageMedia( } override fun method(): String = editMessageMediaMethod - override val resultDeserializer: DeserializationStrategy - get() = TelegramBotAPIMessageDeserializationStrategy + override val resultDeserializer: DeserializationStrategy> + get() = MediaContentMessageResultDeserializer override val requestSerializer: SerializationStrategy<*> get() = serializer() } diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/text/EditChatMessageText.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/text/EditChatMessageText.kt index ab44007a91..e410849e10 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/text/EditChatMessageText.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/edit/text/EditChatMessageText.kt @@ -1,12 +1,14 @@ package com.github.insanusmokrassar.TelegramBotAPI.requests.edit.text import com.github.insanusmokrassar.TelegramBotAPI.requests.edit.abstracts.* +import com.github.insanusmokrassar.TelegramBotAPI.requests.send.TextContentMessageResultDeserializer import com.github.insanusmokrassar.TelegramBotAPI.types.* import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.ParseMode import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.parseModeField import com.github.insanusmokrassar.TelegramBotAPI.types.buttons.InlineKeyboardMarkup -import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.Message +import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.* import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.TelegramBotAPIMessageDeserializationStrategy +import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.TextContent import kotlinx.serialization.* const val editMessageTextMethod = "editMessageText" @@ -25,11 +27,11 @@ data class EditChatMessageText( override val disableWebPagePreview: Boolean? = null, @SerialName(replyMarkupField) override val replyMarkup: InlineKeyboardMarkup? = null -) : EditChatMessage, EditTextChatMessage, EditReplyMessage, EditDisableWebPagePreviewMessage { +) : EditChatMessage, EditTextChatMessage, EditReplyMessage, EditDisableWebPagePreviewMessage { override fun method(): String = editMessageTextMethod - override val resultDeserializer: DeserializationStrategy - get() = TelegramBotAPIMessageDeserializationStrategy + override val resultDeserializer: DeserializationStrategy> + get() = TextContentMessageResultDeserializer override val requestSerializer: SerializationStrategy<*> get() = serializer() } diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/SendContact.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/SendContact.kt index 62ee0e681c..19a7e4632a 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/SendContact.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/SendContact.kt @@ -4,10 +4,14 @@ import com.github.insanusmokrassar.TelegramBotAPI.requests.send.abstracts.Replyi import com.github.insanusmokrassar.TelegramBotAPI.requests.send.abstracts.SendMessageRequest import com.github.insanusmokrassar.TelegramBotAPI.types.* import com.github.insanusmokrassar.TelegramBotAPI.types.buttons.KeyboardMarkup -import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.Message +import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.* import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.TelegramBotAPIMessageDeserializationStrategy +import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.ContactContent import kotlinx.serialization.* +private val commonResultDeserializer: DeserializationStrategy> + = TelegramBotAPIMessageDeserializationStrategyClass() + @Serializable data class SendContact( @SerialName(chatIdField) @@ -24,8 +28,8 @@ data class SendContact( override val replyToMessageId: MessageIdentifier? = null, @SerialName(replyMarkupField) override val replyMarkup: KeyboardMarkup? = null -) : SendMessageRequest, - ReplyingMarkupSendMessageRequest +) : SendMessageRequest>, + ReplyingMarkupSendMessageRequest> { constructor( chatId: ChatIdentifier, @@ -44,8 +48,8 @@ data class SendContact( ) override fun method(): String = "sendContact" - override val resultDeserializer: DeserializationStrategy - get() = TelegramBotAPIMessageDeserializationStrategy + override val resultDeserializer: DeserializationStrategy> + get() = commonResultDeserializer override val requestSerializer: SerializationStrategy<*> get() = serializer() } diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/SendLocation.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/SendLocation.kt index 156ce59a44..94c581c0c4 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/SendLocation.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/SendLocation.kt @@ -3,10 +3,15 @@ package com.github.insanusmokrassar.TelegramBotAPI.requests.send import com.github.insanusmokrassar.TelegramBotAPI.requests.send.abstracts.* import com.github.insanusmokrassar.TelegramBotAPI.types.* import com.github.insanusmokrassar.TelegramBotAPI.types.buttons.KeyboardMarkup -import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.Message +import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.* import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.TelegramBotAPIMessageDeserializationStrategy +import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.LocationContent import kotlinx.serialization.* + +private val commonResultDeserializer: DeserializationStrategy> + = TelegramBotAPIMessageDeserializationStrategyClass() + // TODO:: Add location tracker for tracking location @Serializable data class SendLocation( @@ -24,14 +29,14 @@ data class SendLocation( override val replyToMessageId: MessageIdentifier? = null, @SerialName(replyMarkupField) override val replyMarkup: KeyboardMarkup? = null -) : SendMessageRequest, - ReplyingMarkupSendMessageRequest, - PositionedSendMessageRequest +) : SendMessageRequest>, + ReplyingMarkupSendMessageRequest>, + PositionedSendMessageRequest> { override fun method(): String = "sendLocation" - override val resultDeserializer: DeserializationStrategy - get() = TelegramBotAPIMessageDeserializationStrategy + override val resultDeserializer: DeserializationStrategy> + get() = commonResultDeserializer override val requestSerializer: SerializationStrategy<*> get() = serializer() } diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/SendMessage.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/SendMessage.kt index 22e9e330ba..85e268725d 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/SendMessage.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/SendMessage.kt @@ -6,12 +6,15 @@ import com.github.insanusmokrassar.TelegramBotAPI.types.* import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.ParseMode import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.parseModeField import com.github.insanusmokrassar.TelegramBotAPI.types.buttons.KeyboardMarkup -import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.Message -import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.TelegramBotAPIMessageDeserializationStrategy +import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.* +import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.TextContent import kotlinx.serialization.* +internal val TextContentMessageResultDeserializer: DeserializationStrategy> + = TelegramBotAPIMessageDeserializationStrategyClass() + @Serializable -data class SendMessage( +data class SendTextMessage( @SerialName(chatIdField) override val chatId: ChatIdentifier, @SerialName(textField) @@ -26,9 +29,9 @@ data class SendMessage( override val replyToMessageId: MessageIdentifier? = null, @SerialName(replyMarkupField) override val replyMarkup: KeyboardMarkup? = null -) : SendMessageRequest, - ReplyingMarkupSendMessageRequest, - TextableSendMessageRequest, +) : SendMessageRequest>, + ReplyingMarkupSendMessageRequest>, + TextableSendMessageRequest>, DisableWebPagePreview { init { @@ -38,8 +41,16 @@ data class SendMessage( } override fun method(): String = "sendMessage" - override val resultDeserializer: DeserializationStrategy - get() = TelegramBotAPIMessageDeserializationStrategy + override val resultDeserializer: DeserializationStrategy> + get() = TextContentMessageResultDeserializer override val requestSerializer: SerializationStrategy<*> get() = serializer() } + +@Deprecated( + "This declaration is deprecated due violation of common naming rules", + ReplaceWith( + "SendTextMessage" + ) +) +typealias SendMessage = SendTextMessage diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/SendPoll.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/SendPoll.kt index 1ca31873a7..8141bf9197 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/SendPoll.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/SendPoll.kt @@ -4,10 +4,14 @@ import com.github.insanusmokrassar.TelegramBotAPI.requests.send.abstracts.Replyi import com.github.insanusmokrassar.TelegramBotAPI.requests.send.abstracts.SendMessageRequest import com.github.insanusmokrassar.TelegramBotAPI.types.* import com.github.insanusmokrassar.TelegramBotAPI.types.buttons.KeyboardMarkup -import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.Message +import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.* import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.TelegramBotAPIMessageDeserializationStrategy +import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.PollContent import kotlinx.serialization.* +private val commonResultDeserializer: DeserializationStrategy> + = TelegramBotAPIMessageDeserializationStrategyClass() + @Serializable data class SendPoll( @SerialName(chatIdField) @@ -22,8 +26,8 @@ data class SendPoll( override val replyToMessageId: MessageIdentifier? = null, @SerialName(replyMarkupField) override val replyMarkup: KeyboardMarkup? = null -) : SendMessageRequest, - ReplyingMarkupSendMessageRequest { +) : SendMessageRequest>, + ReplyingMarkupSendMessageRequest> { init { if (question.length !in pollQuestionTextLength) { @@ -40,8 +44,8 @@ data class SendPoll( } override fun method(): String = "sendPoll" - override val resultDeserializer: DeserializationStrategy - get() = TelegramBotAPIMessageDeserializationStrategy + override val resultDeserializer: DeserializationStrategy> + get() = commonResultDeserializer override val requestSerializer: SerializationStrategy<*> get() = serializer() } \ No newline at end of file diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/SendVenue.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/SendVenue.kt index 52d95ec5ca..dc15e9f0a8 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/SendVenue.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/SendVenue.kt @@ -3,10 +3,13 @@ package com.github.insanusmokrassar.TelegramBotAPI.requests.send import com.github.insanusmokrassar.TelegramBotAPI.requests.send.abstracts.* import com.github.insanusmokrassar.TelegramBotAPI.types.* import com.github.insanusmokrassar.TelegramBotAPI.types.buttons.KeyboardMarkup -import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.Message -import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.TelegramBotAPIMessageDeserializationStrategy +import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.* +import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.VenueContent import kotlinx.serialization.* +private val commonResultDeserializer: DeserializationStrategy> + = TelegramBotAPIMessageDeserializationStrategyClass() + @Serializable data class SendVenue( @SerialName(chatIdField) @@ -27,10 +30,10 @@ data class SendVenue( override val replyToMessageId: MessageIdentifier? = null, @SerialName(replyMarkupField) override val replyMarkup: KeyboardMarkup? = null -) : SendMessageRequest, - PositionedSendMessageRequest, - TitledSendMessageRequest, - ReplyingMarkupSendMessageRequest +) : SendMessageRequest>, + PositionedSendMessageRequest>, + TitledSendMessageRequest>, + ReplyingMarkupSendMessageRequest> { constructor( chatId: ChatIdentifier, @@ -51,8 +54,8 @@ data class SendVenue( ) override fun method(): String = "sendVenue" - override val resultDeserializer: DeserializationStrategy - get() = TelegramBotAPIMessageDeserializationStrategy + override val resultDeserializer: DeserializationStrategy> + get() = commonResultDeserializer override val requestSerializer: SerializationStrategy<*> get() = serializer() } diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/games/SendGame.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/games/SendGame.kt index a0cc92bb95..92b73996ed 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/games/SendGame.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/games/SendGame.kt @@ -4,10 +4,14 @@ import com.github.insanusmokrassar.TelegramBotAPI.CommonAbstracts.types.ReplyMar import com.github.insanusmokrassar.TelegramBotAPI.requests.send.abstracts.SendMessageRequest import com.github.insanusmokrassar.TelegramBotAPI.types.* import com.github.insanusmokrassar.TelegramBotAPI.types.buttons.KeyboardMarkup -import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.Message +import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.* import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.TelegramBotAPIMessageDeserializationStrategy +import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.GameContent import kotlinx.serialization.* +private val commonResultDeserializer: DeserializationStrategy> + = TelegramBotAPIMessageDeserializationStrategyClass() + @Serializable data class SendGame ( @SerialName(chatIdField) @@ -20,11 +24,11 @@ data class SendGame ( override val replyToMessageId: MessageIdentifier? = null, @SerialName(replyMarkupField) override val replyMarkup: KeyboardMarkup? = null -) : SendMessageRequest, +) : SendMessageRequest>, ReplyMarkup { override fun method(): String = "sendGame" - override val resultDeserializer: DeserializationStrategy - get() = TelegramBotAPIMessageDeserializationStrategy + override val resultDeserializer: DeserializationStrategy> + get() = commonResultDeserializer override val requestSerializer: SerializationStrategy<*> get() = serializer() } \ No newline at end of file diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendAnimation.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendAnimation.kt index 37abff9569..0de73f8fdc 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendAnimation.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendAnimation.kt @@ -7,8 +7,9 @@ import com.github.insanusmokrassar.TelegramBotAPI.types.* import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.ParseMode import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.parseModeField import com.github.insanusmokrassar.TelegramBotAPI.types.buttons.KeyboardMarkup -import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.Message -import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.TelegramBotAPIMessageDeserializationStrategy +import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.ContentMessage +import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.TelegramBotAPIMessageDeserializationStrategyClass +import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.media.AnimationContent import com.github.insanusmokrassar.TelegramBotAPI.utils.mapOfNotNull import kotlinx.serialization.* @@ -24,7 +25,7 @@ fun SendAnimation( disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, replyMarkup: KeyboardMarkup? = null -): Request { +): Request> { val animationAsFileId = (animation as? FileId) ?.fileId val animationAsFile = animation as? MultipartFile val thumbAsFileId = (thumb as? FileId) ?.fileId @@ -54,6 +55,9 @@ fun SendAnimation( } } +private val commonResultDeserializer: DeserializationStrategy> + = TelegramBotAPIMessageDeserializationStrategyClass() + @Serializable data class SendAnimationData internal constructor( @SerialName(chatIdField) @@ -78,13 +82,13 @@ data class SendAnimationData internal constructor( override val replyToMessageId: MessageIdentifier? = null, @SerialName(replyMarkupField) override val replyMarkup: KeyboardMarkup? = null -) : DataRequest, - SendMessageRequest, - ReplyingMarkupSendMessageRequest, - TextableSendMessageRequest, - ThumbedSendMessageRequest, - DuratedSendMessageRequest, - SizedSendMessageRequest +) : DataRequest>, + SendMessageRequest>, + ReplyingMarkupSendMessageRequest>, + TextableSendMessageRequest>, + ThumbedSendMessageRequest>, + DuratedSendMessageRequest>, + SizedSendMessageRequest> { init { text ?.let { @@ -95,8 +99,8 @@ data class SendAnimationData internal constructor( } override fun method(): String = "sendAnimation" - override val resultDeserializer: DeserializationStrategy - get() = TelegramBotAPIMessageDeserializationStrategy + override val resultDeserializer: DeserializationStrategy> + get() = commonResultDeserializer override val requestSerializer: SerializationStrategy<*> get() = serializer() } diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendAudio.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendAudio.kt index 9d4dd65b42..5facb438f5 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendAudio.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendAudio.kt @@ -8,8 +8,9 @@ import com.github.insanusmokrassar.TelegramBotAPI.types.* import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.ParseMode import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.parseModeField import com.github.insanusmokrassar.TelegramBotAPI.types.buttons.KeyboardMarkup -import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.Message -import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.TelegramBotAPIMessageDeserializationStrategy +import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.ContentMessage +import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.TelegramBotAPIMessageDeserializationStrategyClass +import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.media.AudioContent import com.github.insanusmokrassar.TelegramBotAPI.utils.mapOfNotNull import kotlinx.serialization.* @@ -25,7 +26,7 @@ fun SendAudio( disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, replyMarkup: KeyboardMarkup? = null -): Request { +): Request> { val audioAsFileId = (audio as? FileId) ?.fileId val audioAsFile = audio as? MultipartFile val thumbAsFileId = (thumb as? FileId) ?.fileId @@ -55,6 +56,9 @@ fun SendAudio( } } +private val commonResultDeserializer: DeserializationStrategy> + = TelegramBotAPIMessageDeserializationStrategyClass() + @Serializable data class SendAudioData internal constructor( @SerialName(chatIdField) @@ -79,13 +83,13 @@ data class SendAudioData internal constructor( override val replyToMessageId: MessageIdentifier? = null, @SerialName(replyMarkupField) override val replyMarkup: KeyboardMarkup? = null -) : DataRequest, - SendMessageRequest, - ReplyingMarkupSendMessageRequest, - TextableSendMessageRequest, - ThumbedSendMessageRequest, - TitledSendMessageRequest, - DuratedSendMessageRequest, +) : DataRequest>, + SendMessageRequest>, + ReplyingMarkupSendMessageRequest>, + TextableSendMessageRequest>, + ThumbedSendMessageRequest>, + TitledSendMessageRequest>, + DuratedSendMessageRequest>, Performerable { init { @@ -97,8 +101,8 @@ data class SendAudioData internal constructor( } override fun method(): String = "sendAudio" - override val resultDeserializer: DeserializationStrategy - get() = TelegramBotAPIMessageDeserializationStrategy + override val resultDeserializer: DeserializationStrategy> + get() = commonResultDeserializer override val requestSerializer: SerializationStrategy<*> get() = serializer() } diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendDocument.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendDocument.kt index 8c64aca7fc..44ff036ec2 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendDocument.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendDocument.kt @@ -7,8 +7,9 @@ import com.github.insanusmokrassar.TelegramBotAPI.types.* import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.ParseMode import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.parseModeField import com.github.insanusmokrassar.TelegramBotAPI.types.buttons.KeyboardMarkup -import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.Message -import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.TelegramBotAPIMessageDeserializationStrategy +import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.ContentMessage +import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.TelegramBotAPIMessageDeserializationStrategyClass +import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.media.DocumentContent import com.github.insanusmokrassar.TelegramBotAPI.utils.mapOfNotNull import kotlinx.serialization.* @@ -21,7 +22,7 @@ fun SendDocument( disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, replyMarkup: KeyboardMarkup? = null -): Request { +): Request> { val documentAsFileId = (document as? FileId) ?.fileId val documentAsFile = document as? MultipartFile val thumbAsFileId = (thumb as? FileId) ?.fileId @@ -48,6 +49,9 @@ fun SendDocument( } } +private val commonResultDeserializer: DeserializationStrategy> + = TelegramBotAPIMessageDeserializationStrategyClass() + @Serializable data class SendDocumentData internal constructor( @SerialName(chatIdField) @@ -66,11 +70,11 @@ data class SendDocumentData internal constructor( override val replyToMessageId: MessageIdentifier? = null, @SerialName(replyMarkupField) override val replyMarkup: KeyboardMarkup? = null -) : DataRequest, - SendMessageRequest, - ReplyingMarkupSendMessageRequest, - TextableSendMessageRequest, - ThumbedSendMessageRequest +) : DataRequest>, + SendMessageRequest>, + ReplyingMarkupSendMessageRequest>, + TextableSendMessageRequest>, + ThumbedSendMessageRequest> { init { text ?.let { @@ -81,8 +85,8 @@ data class SendDocumentData internal constructor( } override fun method(): String = "sendDocument" - override val resultDeserializer: DeserializationStrategy - get() = TelegramBotAPIMessageDeserializationStrategy + override val resultDeserializer: DeserializationStrategy> + get() = commonResultDeserializer override val requestSerializer: SerializationStrategy<*> get() = serializer() } diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendMediaGroup.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendMediaGroup.kt index 5aa46e5bf6..a19819805e 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendMediaGroup.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendMediaGroup.kt @@ -6,8 +6,8 @@ import com.github.insanusmokrassar.TelegramBotAPI.requests.send.abstracts.SendMe import com.github.insanusmokrassar.TelegramBotAPI.requests.send.media.base.* import com.github.insanusmokrassar.TelegramBotAPI.types.* import com.github.insanusmokrassar.TelegramBotAPI.types.InputMedia.* -import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.Message -import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.TelegramBotAPIMessageDeserializeOnlySerializer +import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.MediaGroupMessage +import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.TelegramBotAPIMessageDeserializeOnlySerializerClass import com.github.insanusmokrassar.TelegramBotAPI.utils.toJsonWithoutNulls import kotlinx.serialization.* import kotlinx.serialization.internal.ArrayListSerializer @@ -20,7 +20,7 @@ fun SendMediaGroup( media: List, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null -): Request> { +): Request> { if (media.size !in membersCountInMediaGroup) { throw IllegalArgumentException("Count of members for media group must be in $membersCountInMediaGroup range") } @@ -53,7 +53,8 @@ fun SendMediaGroup( } } -private val messagesListSerializer = ArrayListSerializer(TelegramBotAPIMessageDeserializeOnlySerializer) +private val messagesListSerializer: ArrayListSerializer + = ArrayListSerializer(TelegramBotAPIMessageDeserializeOnlySerializerClass()) @Serializable data class SendMediaGroupData internal constructor( @@ -64,7 +65,7 @@ data class SendMediaGroupData internal constructor( override val disableNotification: Boolean = false, @SerialName(replyToMessageIdField) override val replyToMessageId: MessageIdentifier? = null -) : DataRequest>, SendMessageRequest> { +) : DataRequest>, SendMessageRequest> { @SerialName(mediaField) private val convertedMedia: String get() = jsonArray { @@ -77,7 +78,7 @@ data class SendMediaGroupData internal constructor( override fun method(): String = "sendMediaGroup" override val requestSerializer: SerializationStrategy<*> get() = serializer() - override val resultDeserializer: DeserializationStrategy> + override val resultDeserializer: DeserializationStrategy> get() = messagesListSerializer } diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendPhoto.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendPhoto.kt index 4c09829cba..b9b005d8b4 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendPhoto.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendPhoto.kt @@ -7,8 +7,9 @@ import com.github.insanusmokrassar.TelegramBotAPI.types.* import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.ParseMode import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.parseModeField import com.github.insanusmokrassar.TelegramBotAPI.types.buttons.KeyboardMarkup -import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.Message -import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.TelegramBotAPIMessageDeserializationStrategy +import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.ContentMessage +import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.TelegramBotAPIMessageDeserializationStrategyClass +import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.media.PhotoContent import kotlinx.serialization.* fun SendPhoto( @@ -19,7 +20,7 @@ fun SendPhoto( disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, replyMarkup: KeyboardMarkup? = null -): Request { +): Request> { val data = SendPhotoData( chatId, (photo as? FileId) ?.fileId, @@ -37,6 +38,9 @@ fun SendPhoto( ) } +private val commonResultDeserializer: DeserializationStrategy> + = TelegramBotAPIMessageDeserializationStrategyClass() + @Serializable data class SendPhotoData internal constructor( @SerialName(chatIdField) @@ -53,10 +57,10 @@ data class SendPhotoData internal constructor( override val replyToMessageId: MessageIdentifier? = null, @SerialName(replyMarkupField) override val replyMarkup: KeyboardMarkup? = null -) : DataRequest, - SendMessageRequest, - ReplyingMarkupSendMessageRequest, - TextableSendMessageRequest +) : DataRequest>, + SendMessageRequest>, + ReplyingMarkupSendMessageRequest>, + TextableSendMessageRequest> { init { text ?.let { @@ -67,8 +71,8 @@ data class SendPhotoData internal constructor( } override fun method(): String = "sendPhoto" - override val resultDeserializer: DeserializationStrategy - get() = TelegramBotAPIMessageDeserializationStrategy + override val resultDeserializer: DeserializationStrategy> + get() = commonResultDeserializer override val requestSerializer: SerializationStrategy<*> get() = serializer() } diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendSticker.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendSticker.kt index 64be1d6e0b..574e3a5eac 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendSticker.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendSticker.kt @@ -5,8 +5,9 @@ import com.github.insanusmokrassar.TelegramBotAPI.requests.send.abstracts.Replyi import com.github.insanusmokrassar.TelegramBotAPI.requests.send.abstracts.SendMessageRequest import com.github.insanusmokrassar.TelegramBotAPI.types.* import com.github.insanusmokrassar.TelegramBotAPI.types.buttons.KeyboardMarkup -import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.Message -import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.TelegramBotAPIMessageDeserializationStrategy +import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.ContentMessage +import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.TelegramBotAPIMessageDeserializationStrategyClass +import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.media.StickerContent import com.github.insanusmokrassar.TelegramBotAPI.utils.toJsonWithoutNulls import kotlinx.serialization.* import kotlinx.serialization.json.JsonObject @@ -17,7 +18,7 @@ fun SendSticker( disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, replyMarkup: KeyboardMarkup? = null -): Request = SendStickerByFileId( +): Request> = SendStickerByFileId( chatId, sticker as? FileId, disableNotification, @@ -30,6 +31,9 @@ fun SendSticker( } } +private val commonResultDeserializer: DeserializationStrategy> + = TelegramBotAPIMessageDeserializationStrategyClass() + @Serializable data class SendStickerByFileId internal constructor( @SerialName(chatIdField) @@ -42,10 +46,10 @@ data class SendStickerByFileId internal constructor( override val replyToMessageId: MessageIdentifier? = null, @SerialName(replyMarkupField) override val replyMarkup: KeyboardMarkup? = null -) : SendMessageRequest, ReplyingMarkupSendMessageRequest { +) : SendMessageRequest>, ReplyingMarkupSendMessageRequest> { override fun method(): String = "sendSticker" - override val resultDeserializer: DeserializationStrategy - get() = TelegramBotAPIMessageDeserializationStrategy + override val resultDeserializer: DeserializationStrategy> + get() = commonResultDeserializer override val requestSerializer: SerializationStrategy<*> get() = serializer() } @@ -54,7 +58,7 @@ data class SendStickerByFile internal constructor( @Transient private val sendStickerByFileId: SendStickerByFileId, val sticker: MultipartFile -) : MultipartRequest, Request by sendStickerByFileId { +) : MultipartRequest>, Request> by sendStickerByFileId { override val mediaMap: Map = mapOf(stickerField to sticker) override val paramsJson: JsonObject = sendStickerByFileId.toJsonWithoutNulls(SendStickerByFileId.serializer()) } diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendVideo.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendVideo.kt index a024f9c990..97781a1f7a 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendVideo.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendVideo.kt @@ -7,8 +7,9 @@ import com.github.insanusmokrassar.TelegramBotAPI.types.* import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.ParseMode import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.parseModeField import com.github.insanusmokrassar.TelegramBotAPI.types.buttons.KeyboardMarkup -import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.Message -import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.TelegramBotAPIMessageDeserializationStrategy +import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.ContentMessage +import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.TelegramBotAPIMessageDeserializationStrategyClass +import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.media.VideoContent import com.github.insanusmokrassar.TelegramBotAPI.utils.mapOfNotNull import kotlinx.serialization.* @@ -25,7 +26,7 @@ fun SendVideo( disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, replyMarkup: KeyboardMarkup? = null -): Request { +): Request> { val videoAsFileId = (video as? FileId) ?.fileId val videoAsFile = video as? MultipartFile val thumbAsFileId = (thumb as? FileId) ?.fileId @@ -56,6 +57,9 @@ fun SendVideo( } } +private val commonResultDeserializer: DeserializationStrategy> + = TelegramBotAPIMessageDeserializationStrategyClass() + @Serializable data class SendVideoData internal constructor( @SerialName(chatIdField) @@ -82,13 +86,13 @@ data class SendVideoData internal constructor( override val replyToMessageId: MessageIdentifier? = null, @SerialName(replyMarkupField) override val replyMarkup: KeyboardMarkup? = null -) : DataRequest, - SendMessageRequest, - ReplyingMarkupSendMessageRequest, - TextableSendMessageRequest, - ThumbedSendMessageRequest, - DuratedSendMessageRequest, - SizedSendMessageRequest +) : DataRequest>, + SendMessageRequest>, + ReplyingMarkupSendMessageRequest>, + TextableSendMessageRequest>, + ThumbedSendMessageRequest>, + DuratedSendMessageRequest>, + SizedSendMessageRequest> { init { text ?.let { @@ -99,8 +103,8 @@ data class SendVideoData internal constructor( } override fun method(): String = "sendVideo" - override val resultDeserializer: DeserializationStrategy - get() = TelegramBotAPIMessageDeserializationStrategy + override val resultDeserializer: DeserializationStrategy> + get() = commonResultDeserializer override val requestSerializer: SerializationStrategy<*> get() = serializer() } diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendVideoNote.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendVideoNote.kt index 827e8b253d..e4e3d11bfd 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendVideoNote.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendVideoNote.kt @@ -7,8 +7,9 @@ import com.github.insanusmokrassar.TelegramBotAPI.types.* import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.ParseMode import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.parseModeField import com.github.insanusmokrassar.TelegramBotAPI.types.buttons.KeyboardMarkup -import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.Message -import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.TelegramBotAPIMessageDeserializationStrategy +import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.ContentMessage +import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.TelegramBotAPIMessageDeserializationStrategyClass +import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.media.VideoNoteContent import com.github.insanusmokrassar.TelegramBotAPI.utils.mapOfNotNull import kotlinx.serialization.* @@ -23,7 +24,7 @@ fun SendVideoNote( disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, replyMarkup: KeyboardMarkup? = null -): Request { +): Request> { val videoNoteAsFileId = (videoNote as? FileId) ?.fileId val videoNoteAsFile = videoNote as? MultipartFile val thumbAsFileId = (thumb as? FileId) ?.fileId @@ -52,6 +53,9 @@ fun SendVideoNote( } } +private val commonResultDeserializer: DeserializationStrategy> + = TelegramBotAPIMessageDeserializationStrategyClass() + @Serializable data class SendVideoNoteData internal constructor( @SerialName(chatIdField) @@ -74,13 +78,13 @@ data class SendVideoNoteData internal constructor( override val replyToMessageId: MessageIdentifier? = null, @SerialName(replyMarkupField) override val replyMarkup: KeyboardMarkup? = null -) : DataRequest, - SendMessageRequest, - ReplyingMarkupSendMessageRequest, - TextableSendMessageRequest, - ThumbedSendMessageRequest, - DuratedSendMessageRequest, - SizedSendMessageRequest +) : DataRequest>, + SendMessageRequest>, + ReplyingMarkupSendMessageRequest>, + TextableSendMessageRequest>, + ThumbedSendMessageRequest>, + DuratedSendMessageRequest>, + SizedSendMessageRequest> { override val height: Int? get() = width @@ -94,8 +98,8 @@ data class SendVideoNoteData internal constructor( } override fun method(): String = "sendVideoNote" - override val resultDeserializer: DeserializationStrategy - get() = TelegramBotAPIMessageDeserializationStrategy + override val resultDeserializer: DeserializationStrategy> + get() = commonResultDeserializer override val requestSerializer: SerializationStrategy<*> get() = serializer() } diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendVoice.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendVoice.kt index c96b84f197..a341372e5c 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendVoice.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendVoice.kt @@ -7,8 +7,9 @@ import com.github.insanusmokrassar.TelegramBotAPI.types.* import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.ParseMode import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.parseModeField import com.github.insanusmokrassar.TelegramBotAPI.types.buttons.KeyboardMarkup -import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.Message -import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.TelegramBotAPIMessageDeserializationStrategy +import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.ContentMessage +import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.TelegramBotAPIMessageDeserializationStrategyClass +import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.media.VoiceContent import com.github.insanusmokrassar.TelegramBotAPI.utils.mapOfNotNull import kotlinx.serialization.* @@ -22,7 +23,7 @@ fun SendVoice( disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, replyMarkup: KeyboardMarkup? = null -): Request { +): Request> { val voiceAsFileId = (voice as? FileId) ?.fileId val voiceAsFile = voice as? MultipartFile val thumbAsFileId = (thumb as? FileId) ?.fileId @@ -50,6 +51,9 @@ fun SendVoice( } } +private val commonResultDeserializer: DeserializationStrategy> + = TelegramBotAPIMessageDeserializationStrategyClass() + @Serializable data class SendVoiceData internal constructor( @SerialName(chatIdField) @@ -70,12 +74,12 @@ data class SendVoiceData internal constructor( override val replyToMessageId: MessageIdentifier? = null, @SerialName(replyMarkupField) override val replyMarkup: KeyboardMarkup? = null -) : DataRequest, - SendMessageRequest, - ReplyingMarkupSendMessageRequest, - TextableSendMessageRequest, - ThumbedSendMessageRequest, - DuratedSendMessageRequest +) : DataRequest>, + SendMessageRequest>, + ReplyingMarkupSendMessageRequest>, + TextableSendMessageRequest>, + ThumbedSendMessageRequest>, + DuratedSendMessageRequest> { init { text ?.let { @@ -86,8 +90,8 @@ data class SendVoiceData internal constructor( } override fun method(): String = "sendVoice" - override val resultDeserializer: DeserializationStrategy - get() = TelegramBotAPIMessageDeserializationStrategy + override val resultDeserializer: DeserializationStrategy> + get() = commonResultDeserializer override val requestSerializer: SerializationStrategy<*> get() = serializer() } diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/ChatMember/abstracts/ChatMember.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/ChatMember/abstracts/ChatMember.kt index aa5e457519..4137309d63 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/ChatMember/abstracts/ChatMember.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/ChatMember/abstracts/ChatMember.kt @@ -9,11 +9,12 @@ interface ChatMember { val user: User } -internal object ChatMemberSerializerWithoutDeserialization : KSerializer { +internal object AdministratorChatMemberSerializerWithoutDeserialization : KSerializer { override val descriptor: SerialDescriptor = StringDescriptor.withName("ChatMemberSerializerWithoutDeserialization") - override fun deserialize(decoder: Decoder): ChatMember = ChatMemberDeserializationStrategy.deserialize(decoder) - override fun serialize(encoder: Encoder, obj: ChatMember) = throw UnsupportedOperationException() + override fun deserialize(decoder: Decoder): AdministratorChatMember + = ChatMemberDeserializationStrategy.deserialize(decoder) as AdministratorChatMember + override fun serialize(encoder: Encoder, obj: AdministratorChatMember) = throw UnsupportedOperationException() } internal object ChatMemberDeserializationStrategy : DeserializationStrategy { diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/abstracts/Message.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/abstracts/Message.kt index f001e2d61e..555a34e96b 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/abstracts/Message.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/abstracts/Message.kt @@ -13,24 +13,29 @@ interface Message { val date: DateTime } -internal object TelegramBotAPIMessageDeserializationStrategy : DeserializationStrategy { +internal class TelegramBotAPIMessageDeserializationStrategyClass : DeserializationStrategy { override val descriptor: SerialDescriptor = StringDescriptor.withName("TelegramBotAPIMessageSerializer") - override fun patch(decoder: Decoder, old: Message): Message = throw UpdateNotSupportedException(descriptor.name) - override fun deserialize(decoder: Decoder): Message { - return RawMessage.serializer().deserialize(decoder).asMessage + override fun patch(decoder: Decoder, old: T): T = throw UpdateNotSupportedException(descriptor.name) + override fun deserialize(decoder: Decoder): T { + return RawMessage.serializer().deserialize(decoder).asMessage as T } } +internal object TelegramBotAPIMessageDeserializationStrategy + : DeserializationStrategy by TelegramBotAPIMessageDeserializationStrategyClass() -internal object TelegramBotAPIMessageDeserializeOnlySerializer : KSerializer { +internal class TelegramBotAPIMessageDeserializeOnlySerializerClass : KSerializer { + private val deserializer = TelegramBotAPIMessageDeserializationStrategyClass() override val descriptor: SerialDescriptor - get() = TelegramBotAPIMessageDeserializationStrategy.descriptor + get() = deserializer.descriptor - override fun deserialize(decoder: Decoder): Message { - return TelegramBotAPIMessageDeserializationStrategy.deserialize(decoder) + override fun deserialize(decoder: Decoder): T { + return deserializer.deserialize(decoder) } - override fun serialize(encoder: Encoder, obj: Message) { + override fun serialize(encoder: Encoder, obj: T) { throw UnsupportedOperationException("Currently, Message objects can't be serialized y this serializer") } } +internal object TelegramBotAPIMessageDeserializeOnlySerializer + : KSerializer by TelegramBotAPIMessageDeserializeOnlySerializerClass() diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/ContactContent.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/ContactContent.kt index 64cdea6bd0..d76b172cd3 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/ContactContent.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/ContactContent.kt @@ -4,6 +4,7 @@ import com.github.insanusmokrassar.TelegramBotAPI.requests.abstracts.Request import com.github.insanusmokrassar.TelegramBotAPI.requests.send.SendContact import com.github.insanusmokrassar.TelegramBotAPI.types.* import com.github.insanusmokrassar.TelegramBotAPI.types.buttons.KeyboardMarkup +import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.ContentMessage import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.Message import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.abstracts.MessageContent @@ -15,7 +16,7 @@ data class ContactContent( disableNotification: Boolean, replyToMessageId: MessageIdentifier?, replyMarkup: KeyboardMarkup? - ): Request = SendContact( + ): Request> = SendContact( chatId, contact, disableNotification, replyToMessageId, replyMarkup ) } \ No newline at end of file diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/GameContent.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/GameContent.kt index 257cd648e0..6ab8018f89 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/GameContent.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/GameContent.kt @@ -6,6 +6,7 @@ import com.github.insanusmokrassar.TelegramBotAPI.types.ChatIdentifier import com.github.insanusmokrassar.TelegramBotAPI.types.MessageIdentifier import com.github.insanusmokrassar.TelegramBotAPI.types.buttons.KeyboardMarkup import com.github.insanusmokrassar.TelegramBotAPI.types.games.Game +import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.ContentMessage import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.Message import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.abstracts.MessageContent @@ -17,7 +18,7 @@ data class GameContent( disableNotification: Boolean, replyToMessageId: MessageIdentifier?, replyMarkup: KeyboardMarkup? - ): Request = SendGame( + ): Request> = SendGame( chatId, game.title, disableNotification, diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/LocationContent.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/LocationContent.kt index 89ba7c4aab..7e3bbcb9c1 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/LocationContent.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/LocationContent.kt @@ -4,6 +4,7 @@ import com.github.insanusmokrassar.TelegramBotAPI.requests.abstracts.Request import com.github.insanusmokrassar.TelegramBotAPI.requests.send.SendLocation import com.github.insanusmokrassar.TelegramBotAPI.types.* import com.github.insanusmokrassar.TelegramBotAPI.types.buttons.KeyboardMarkup +import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.ContentMessage import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.Message import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.abstracts.MessageContent @@ -15,7 +16,7 @@ data class LocationContent( disableNotification: Boolean, replyToMessageId: MessageIdentifier?, replyMarkup: KeyboardMarkup? - ): Request = SendLocation( + ): Request> = SendLocation( chatId, location.latitude, location.longitude, diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/PollContent.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/PollContent.kt index 1b27e1278e..606a3b0837 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/PollContent.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/PollContent.kt @@ -5,6 +5,7 @@ import com.github.insanusmokrassar.TelegramBotAPI.requests.send.SendPoll import com.github.insanusmokrassar.TelegramBotAPI.types.ChatIdentifier import com.github.insanusmokrassar.TelegramBotAPI.types.MessageIdentifier import com.github.insanusmokrassar.TelegramBotAPI.types.buttons.KeyboardMarkup +import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.ContentMessage import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.Message import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.abstracts.MessageContent import com.github.insanusmokrassar.TelegramBotAPI.types.polls.Poll @@ -17,7 +18,7 @@ data class PollContent( disableNotification: Boolean, replyToMessageId: MessageIdentifier?, replyMarkup: KeyboardMarkup? - ): Request = SendPoll( + ): Request> = SendPoll( chatId, poll.question, poll.options.map { it.text }, diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/TextContent.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/TextContent.kt index 0fe6e3296c..f292198b81 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/TextContent.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/TextContent.kt @@ -3,10 +3,12 @@ package com.github.insanusmokrassar.TelegramBotAPI.types.message.content import com.github.insanusmokrassar.TelegramBotAPI.CommonAbstracts.TextPart import com.github.insanusmokrassar.TelegramBotAPI.requests.abstracts.Request import com.github.insanusmokrassar.TelegramBotAPI.requests.send.SendMessage +import com.github.insanusmokrassar.TelegramBotAPI.requests.send.SendTextMessage import com.github.insanusmokrassar.TelegramBotAPI.types.ChatIdentifier import com.github.insanusmokrassar.TelegramBotAPI.types.MessageIdentifier import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.* import com.github.insanusmokrassar.TelegramBotAPI.types.buttons.KeyboardMarkup +import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.ContentMessage import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.Message import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.abstracts.MessageContent import com.github.insanusmokrassar.TelegramBotAPI.utils.* @@ -20,7 +22,7 @@ data class TextContent( disableNotification: Boolean, replyToMessageId: MessageIdentifier?, replyMarkup: KeyboardMarkup? - ): Request = SendMessage( + ): Request> = SendTextMessage( chatId, toHtmlTexts().first(), HTMLParseMode, @@ -35,7 +37,7 @@ data class TextContent( disableNotification: Boolean, replyToMessageId: MessageIdentifier?, replyMarkup: KeyboardMarkup? - ): List> = createResends( + ): List>> = createResends( chatId, disableNotification, replyToMessageId, @@ -49,12 +51,12 @@ data class TextContent( replyToMessageId: MessageIdentifier?, replyMarkup: KeyboardMarkup?, parseMode: ParseMode = HTMLParseMode - ): List> = when (parseMode) { + ): List>> = when (parseMode) { is MarkdownParseMode -> toMarkdownTexts() is MarkdownV2ParseMode -> toMarkdownV2Texts() is HTMLParseMode -> toHtmlTexts() }.map { - SendMessage( + SendTextMessage( chatId, it, parseMode, diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/VenueContent.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/VenueContent.kt index 671937ebef..e4d7b2da59 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/VenueContent.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/VenueContent.kt @@ -4,6 +4,7 @@ import com.github.insanusmokrassar.TelegramBotAPI.requests.abstracts.Request import com.github.insanusmokrassar.TelegramBotAPI.requests.send.SendVenue import com.github.insanusmokrassar.TelegramBotAPI.types.* import com.github.insanusmokrassar.TelegramBotAPI.types.buttons.KeyboardMarkup +import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.ContentMessage import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.Message import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.abstracts.MessageContent @@ -15,7 +16,7 @@ data class VenueContent( disableNotification: Boolean, replyToMessageId: MessageIdentifier?, replyMarkup: KeyboardMarkup? - ): Request = SendVenue( + ): Request> = SendVenue( chatId, venue, disableNotification, replyToMessageId, replyMarkup ) } \ No newline at end of file diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/abstracts/ResendableContent.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/abstracts/ResendableContent.kt index 69fd38aa35..d2fc35ac98 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/abstracts/ResendableContent.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/abstracts/ResendableContent.kt @@ -12,12 +12,12 @@ interface ResendableContent { disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, replyMarkup: KeyboardMarkup? = null - ): Request + ): Request fun createResends( chatId: ChatIdentifier, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, replyMarkup: KeyboardMarkup? = null - ): List> = listOf(createResend(chatId, disableNotification, replyToMessageId, replyMarkup)) + ): List> = listOf(createResend(chatId, disableNotification, replyToMessageId, replyMarkup)) } \ No newline at end of file diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/AnimationContent.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/AnimationContent.kt index 04227b8c05..007157e500 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/AnimationContent.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/AnimationContent.kt @@ -10,6 +10,7 @@ import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.HTMLParseMode import com.github.insanusmokrassar.TelegramBotAPI.types.buttons.KeyboardMarkup import com.github.insanusmokrassar.TelegramBotAPI.types.files.AnimationFile import com.github.insanusmokrassar.TelegramBotAPI.types.files.DocumentFile +import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.ContentMessage import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.Message import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.abstracts.MediaContent import com.github.insanusmokrassar.TelegramBotAPI.utils.toHtmlCaptions @@ -25,7 +26,7 @@ data class AnimationContent( disableNotification: Boolean, replyToMessageId: MessageIdentifier?, replyMarkup: KeyboardMarkup? - ): Request = SendAnimation( + ): Request> = SendAnimation( chatId, media.fileId, media.thumb ?.fileId, diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/AudioContent.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/AudioContent.kt index ff78e9c9a1..5a7846cfb0 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/AudioContent.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/AudioContent.kt @@ -9,6 +9,7 @@ import com.github.insanusmokrassar.TelegramBotAPI.types.MessageIdentifier import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.HTMLParseMode import com.github.insanusmokrassar.TelegramBotAPI.types.buttons.KeyboardMarkup import com.github.insanusmokrassar.TelegramBotAPI.types.files.AudioFile +import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.ContentMessage import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.Message import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.abstracts.MediaContent import com.github.insanusmokrassar.TelegramBotAPI.utils.toHtmlCaptions @@ -23,7 +24,7 @@ data class AudioContent( disableNotification: Boolean, replyToMessageId: MessageIdentifier?, replyMarkup: KeyboardMarkup? - ): Request = SendAudio( + ): Request> = SendAudio( chatId, media.fileId, media.thumb ?.fileId, diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/DocumentContent.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/DocumentContent.kt index 219859ce03..b1f4ed37ce 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/DocumentContent.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/DocumentContent.kt @@ -9,6 +9,7 @@ import com.github.insanusmokrassar.TelegramBotAPI.types.MessageIdentifier import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.HTMLParseMode import com.github.insanusmokrassar.TelegramBotAPI.types.buttons.KeyboardMarkup import com.github.insanusmokrassar.TelegramBotAPI.types.files.DocumentFile +import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.ContentMessage import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.Message import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.abstracts.MediaContent import com.github.insanusmokrassar.TelegramBotAPI.utils.toHtmlCaptions @@ -23,7 +24,7 @@ data class DocumentContent( disableNotification: Boolean, replyToMessageId: MessageIdentifier?, replyMarkup: KeyboardMarkup? - ): Request = SendDocument( + ): Request> = SendDocument( chatId, media.fileId, media.thumb ?.fileId, diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/PhotoContent.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/PhotoContent.kt index 8a03bd47c0..be200dc210 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/PhotoContent.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/PhotoContent.kt @@ -11,6 +11,7 @@ import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.HTMLParseMode import com.github.insanusmokrassar.TelegramBotAPI.types.buttons.KeyboardMarkup import com.github.insanusmokrassar.TelegramBotAPI.types.files.PhotoSize import com.github.insanusmokrassar.TelegramBotAPI.types.files.biggest +import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.ContentMessage import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.Message import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.abstracts.MediaCollectionContent import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.abstracts.MediaGroupContent @@ -28,7 +29,7 @@ data class PhotoContent( disableNotification: Boolean, replyToMessageId: MessageIdentifier?, replyMarkup: KeyboardMarkup? - ): Request = SendPhoto( + ): Request> = SendPhoto( chatId, media.fileId, toHtmlCaptions().firstOrNull(), diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/StickerContent.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/StickerContent.kt index 9fccfee65f..5932235d01 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/StickerContent.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/StickerContent.kt @@ -6,6 +6,7 @@ import com.github.insanusmokrassar.TelegramBotAPI.types.ChatIdentifier import com.github.insanusmokrassar.TelegramBotAPI.types.MessageIdentifier import com.github.insanusmokrassar.TelegramBotAPI.types.buttons.KeyboardMarkup import com.github.insanusmokrassar.TelegramBotAPI.types.files.Sticker +import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.ContentMessage import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.Message import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.abstracts.MediaContent @@ -17,7 +18,7 @@ data class StickerContent( disableNotification: Boolean, replyToMessageId: MessageIdentifier?, replyMarkup: KeyboardMarkup? - ): Request = SendSticker( + ): Request> = SendSticker( chatId, media.fileId, disableNotification, diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/VideoContent.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/VideoContent.kt index ff7210e201..be862e3d80 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/VideoContent.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/VideoContent.kt @@ -10,6 +10,7 @@ import com.github.insanusmokrassar.TelegramBotAPI.types.MessageIdentifier import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.HTMLParseMode import com.github.insanusmokrassar.TelegramBotAPI.types.buttons.KeyboardMarkup import com.github.insanusmokrassar.TelegramBotAPI.types.files.VideoFile +import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.ContentMessage import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.Message import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.abstracts.MediaGroupContent import com.github.insanusmokrassar.TelegramBotAPI.utils.toHtmlCaptions @@ -24,7 +25,7 @@ data class VideoContent( disableNotification: Boolean, replyToMessageId: MessageIdentifier?, replyMarkup: KeyboardMarkup? - ): Request = SendVideo( + ): Request> = SendVideo( chatId, media.fileId, media.thumb ?.fileId, diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/VideoNoteContent.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/VideoNoteContent.kt index 422b9b0910..6918131b0b 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/VideoNoteContent.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/VideoNoteContent.kt @@ -7,6 +7,7 @@ import com.github.insanusmokrassar.TelegramBotAPI.types.MessageIdentifier import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.ParseMode import com.github.insanusmokrassar.TelegramBotAPI.types.buttons.KeyboardMarkup import com.github.insanusmokrassar.TelegramBotAPI.types.files.VideoNoteFile +import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.ContentMessage import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.Message import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.abstracts.MediaContent @@ -18,7 +19,7 @@ data class VideoNoteContent( disableNotification: Boolean, replyToMessageId: MessageIdentifier?, replyMarkup: KeyboardMarkup? - ): Request = createResend(chatId, null, null, disableNotification, replyToMessageId, replyMarkup) + ): Request> = createResend(chatId, null, null, disableNotification, replyToMessageId, replyMarkup) fun createResend( chatId: ChatIdentifier, @@ -27,7 +28,7 @@ data class VideoNoteContent( disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, replyMarkup: KeyboardMarkup? = null - ): Request = SendVideoNote( + ): Request> = SendVideoNote( chatId, media.fileId, media.thumb ?.fileId, diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/VoiceContent.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/VoiceContent.kt index 61ab4290b6..ec78bf3f32 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/VoiceContent.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/VoiceContent.kt @@ -9,6 +9,7 @@ import com.github.insanusmokrassar.TelegramBotAPI.types.MessageIdentifier import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.HTMLParseMode import com.github.insanusmokrassar.TelegramBotAPI.types.buttons.KeyboardMarkup import com.github.insanusmokrassar.TelegramBotAPI.types.files.VoiceFile +import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.ContentMessage import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.Message import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.abstracts.MediaContent import com.github.insanusmokrassar.TelegramBotAPI.utils.toHtmlCaptions @@ -23,7 +24,7 @@ data class VoiceContent( disableNotification: Boolean, replyToMessageId: MessageIdentifier?, replyMarkup: KeyboardMarkup? - ): Request = SendVoice( + ): Request> = SendVoice( chatId, media.fileId, null, From e1082c3741c6c99fac2ad145ada407dd65890b60 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Wed, 15 Jan 2020 11:48:44 +0600 Subject: [PATCH 03/11] update README --- CHANGELOG.md | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6618c507b8..482eac1e9d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -32,6 +32,56 @@ bot. ### 0.21.1 +* `SendMessage` was renamed to `SendTextMessage` and previous `SendMessage` is deprecated +* Most part of requests have changed return type. They are listed below: +
+ + * `ForwardMessage` + * `GetChatAdministrators` + * `EditChatMessageLiveLocation` + * `StopChatMessageLiveLocation` + * `EditChatMessageText` + * `EditChatMessageCaption` + * `EditChatMessageMedia` + * `EditChatMessageReplyMarkup` + * `SendAnimation` + * `SendAudio` + * `SendContact` + * `SendLocation` + * `SendTextMessage` + * `SendPoll` + * `SendVenue` + * `SendGame` + * `SendDocument` + * `SendMediaGroup` + * `SendPhoto` + * `SendVideo` + * `SendVideoNote` + * `SendVoice` + * `SendSticker` + +
+* Changed type of `createResend` +
+ + * `ResendableContent` + * `GameContent` + * `LocationContent` + * `PollContent` + * `TextContent` + * `VenueContent` + * `AnimationContent` + * `AudioContent` + * `DocumentContent` + * `ContactContent` + * `PhotoContent` + * `VideoContent` + * `VideoNoteContent` + * `VoiceContent` + * `StickerContent` + +
+ ## 0.20.0 MPP Migration * Time library change: `joda-time` -> `com.soywiz.korlibs.klock:klock` From e98e61747c31ba9a6da80d7f9756ce697ef7c0c6 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Wed, 15 Jan 2020 11:49:55 +0600 Subject: [PATCH 04/11] update README --- CHANGELOG.md | 1 - 1 file changed, 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 482eac1e9d..0b62e8b97a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -64,7 +64,6 @@ bot. * Changed type of `createResend`
- * `ResendableContent` * `GameContent` * `LocationContent` * `PollContent` From 562459f0b77572e9123323c94bf035486a051277 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Wed, 15 Jan 2020 12:28:06 +0600 Subject: [PATCH 05/11] update ktor --- CHANGELOG.md | 3 ++ gradle.properties | 2 +- .../bot/Ktor/KtorCallFactory.kt | 3 +- .../bot/Ktor/KtorRequestsExecutor.kt | 18 +++++------ .../Ktor/base/AbstractRequestCallFactory.kt | 30 ++++++++++--------- .../TelegramBotAPI/bot/RequestsExecutor.kt | 2 +- .../TelegramBotAPI/bot/UpdatesPoller.kt | 2 +- .../bot/exceptions/RequestException.kt | 7 ++--- .../TelegramBotAPI/utils/StorageFile.kt | 2 +- .../TelegramBotAPI/utils/StorageFile.kt | 2 +- .../TelegramBotAPI/utils/StorageFile.kt | 4 +-- 11 files changed, 39 insertions(+), 36 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0b62e8b97a..1732a4dada 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -32,6 +32,7 @@ bot. ### 0.21.1 +* **`KtorCallFactory` must return `HttpStatement` instead of `HttpClientCall`** * `SendMessage` was renamed to `SendTextMessage` and previous `SendMessage` is deprecated * Most part of requests have changed return type. They are listed below:
@@ -80,6 +81,8 @@ bot. * `StickerContent`
+* Version updates: + * Ktor `1.2.6` -> `1.3.0` ## 0.20.0 MPP Migration diff --git a/gradle.properties b/gradle.properties index 6291c88e99..dcebaeb8c3 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,7 +4,7 @@ kotlin_coroutines_version=1.3.3 kotlin_serialisation_runtime_version=0.14.0 klock_version=1.8.6 uuid_version=0.0.7 -ktor_version=1.2.6 +ktor_version=1.3.0 gradle_bintray_plugin_version=1.8.4 diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/bot/Ktor/KtorCallFactory.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/bot/Ktor/KtorCallFactory.kt index e2aa6cfaeb..a4dda435ff 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/bot/Ktor/KtorCallFactory.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/bot/Ktor/KtorCallFactory.kt @@ -3,11 +3,12 @@ package com.github.insanusmokrassar.TelegramBotAPI.bot.Ktor import com.github.insanusmokrassar.TelegramBotAPI.requests.abstracts.Request import io.ktor.client.HttpClient import io.ktor.client.call.HttpClientCall +import io.ktor.client.statement.HttpStatement interface KtorCallFactory { suspend fun prepareCall( client: HttpClient, baseUrl: String, request: Request - ) : HttpClientCall? + ) : HttpStatement? } diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/bot/Ktor/KtorRequestsExecutor.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/bot/Ktor/KtorRequestsExecutor.kt index c75eb8bf95..ee184dcf90 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/bot/Ktor/KtorRequestsExecutor.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/bot/Ktor/KtorRequestsExecutor.kt @@ -11,10 +11,10 @@ import com.github.insanusmokrassar.TelegramBotAPI.types.Response import com.github.insanusmokrassar.TelegramBotAPI.types.RetryAfterError import com.github.insanusmokrassar.TelegramBotAPI.utils.TelegramAPIUrlsKeeper import io.ktor.client.HttpClient -import io.ktor.client.call.HttpClientCall import io.ktor.client.call.receive import io.ktor.client.features.ClientRequestException -import io.ktor.client.response.readText +import io.ktor.client.statement.HttpStatement +import io.ktor.client.statement.readText import kotlinx.coroutines.delay import kotlinx.serialization.json.Json @@ -36,22 +36,20 @@ class KtorRequestsExecutor( override suspend fun execute(request: Request): T { return requestsLimiter.limit { - var call: HttpClientCall? = null + var statement: HttpStatement? = null for (factory in callsFactories) { - call = factory.prepareCall( + statement = factory.prepareCall( client, telegramAPIUrlsKeeper.commonAPIUrl, request ) - if (call != null) { + if (statement != null) { break } } - if (call == null) { - throw IllegalArgumentException("Can't execute request: $request") - } try { - val content = call.response.receive() + val response = statement ?.execute() ?: throw IllegalArgumentException("Can't execute request: $request") + val content = response.receive() val responseObject = jsonFormatter.parse(Response.serializer(), content) (responseObject.result?.let { @@ -64,7 +62,7 @@ class KtorRequestsExecutor( } else { null } - } ?: call.let { + } ?: response.let { throw newRequestException( responseObject, content, diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/bot/Ktor/base/AbstractRequestCallFactory.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/bot/Ktor/base/AbstractRequestCallFactory.kt index 4e8fb1f428..ff3a6b0661 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/bot/Ktor/base/AbstractRequestCallFactory.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/bot/Ktor/base/AbstractRequestCallFactory.kt @@ -4,9 +4,8 @@ import com.github.insanusmokrassar.TelegramBotAPI.bot.Ktor.KtorCallFactory import com.github.insanusmokrassar.TelegramBotAPI.requests.abstracts.Request import io.ktor.client.HttpClient import io.ktor.client.call.HttpClientCall -import io.ktor.client.call.call -import io.ktor.client.request.accept -import io.ktor.client.request.url +import io.ktor.client.request.* +import io.ktor.client.statement.HttpStatement import io.ktor.http.ContentType import io.ktor.http.HttpMethod import kotlin.collections.set @@ -17,20 +16,23 @@ abstract class AbstractRequestCallFactory : KtorCallFactory { client: HttpClient, baseUrl: String, request: Request - ): HttpClientCall? { + ): HttpStatement? { val preparedBody = prepareCallBody(client, baseUrl, request) ?: return null - return client.call { - url( - methodsCache[request.method()] ?: "$baseUrl/${request.method()}".also { - methodsCache[request.method()] = it - } - ) - method = HttpMethod.Post - accept(ContentType.Application.Json) + return HttpStatement( + HttpRequestBuilder().apply { + url( + methodsCache[request.method()] ?: "$baseUrl/${request.method()}".also { + methodsCache[request.method()] = it + } + ) + method = HttpMethod.Post + accept(ContentType.Application.Json) - body = preparedBody - } + body = preparedBody + }, + client + ) } protected abstract fun prepareCallBody( diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/bot/RequestsExecutor.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/bot/RequestsExecutor.kt index 862cf0d754..285793254b 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/bot/RequestsExecutor.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/bot/RequestsExecutor.kt @@ -1,7 +1,7 @@ package com.github.insanusmokrassar.TelegramBotAPI.bot import com.github.insanusmokrassar.TelegramBotAPI.requests.abstracts.Request -import kotlinx.io.core.Closeable +import io.ktor.utils.io.core.Closeable interface RequestsExecutor : Closeable { /** diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/bot/UpdatesPoller.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/bot/UpdatesPoller.kt index e7e78cb867..cf53676cb2 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/bot/UpdatesPoller.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/bot/UpdatesPoller.kt @@ -1,8 +1,8 @@ package com.github.insanusmokrassar.TelegramBotAPI.bot +import io.ktor.utils.io.core.Closeable import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers -import kotlinx.io.core.Closeable interface UpdatesPoller : Closeable { fun start(scope: CoroutineScope = CoroutineScope(Dispatchers.Default)) diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/bot/exceptions/RequestException.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/bot/exceptions/RequestException.kt index e44d24356e..4ec766ec53 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/bot/exceptions/RequestException.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/bot/exceptions/RequestException.kt @@ -1,7 +1,7 @@ package com.github.insanusmokrassar.TelegramBotAPI.bot.exceptions import com.github.insanusmokrassar.TelegramBotAPI.types.Response -import kotlinx.io.errors.IOException +import kotlinx.io.IOException fun newRequestException( response: Response, @@ -22,10 +22,9 @@ sealed class RequestException constructor( val response: Response, val plainAnswer: String, message: String? = null, - cause: Throwable? = null + override val cause: Throwable? = null ) : IOException( - message ?: "Something went wrong", - cause + message ?: "Something went wrong" ) class CommonRequestException(response: Response, plainAnswer: String, message: String?, cause: Throwable?) : diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/utils/StorageFile.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/utils/StorageFile.kt index eacc026511..c9fcf6700f 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/utils/StorageFile.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/utils/StorageFile.kt @@ -1,6 +1,6 @@ package com.github.insanusmokrassar.TelegramBotAPI.utils -import kotlinx.io.core.Input +import io.ktor.utils.io.core.Input import kotlinx.serialization.Serializable @Serializable diff --git a/src/jsMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/utils/StorageFile.kt b/src/jsMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/utils/StorageFile.kt index 8f236a770f..17bc529db9 100644 --- a/src/jsMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/utils/StorageFile.kt +++ b/src/jsMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/utils/StorageFile.kt @@ -1,7 +1,7 @@ package com.github.insanusmokrassar.TelegramBotAPI.utils import com.benasher44.uuid.uuid4 -import kotlinx.io.core.Input +import io.ktor.utils.io.core.Input import kotlinx.serialization.Serializable import kotlinx.serialization.Transient diff --git a/src/jvmMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/utils/StorageFile.kt b/src/jvmMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/utils/StorageFile.kt index 03ea499383..878b534f0c 100644 --- a/src/jvmMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/utils/StorageFile.kt +++ b/src/jvmMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/utils/StorageFile.kt @@ -1,8 +1,8 @@ package com.github.insanusmokrassar.TelegramBotAPI.utils import com.benasher44.uuid.uuid4 -import kotlinx.io.core.Input -import kotlinx.io.streams.asInput +import io.ktor.utils.io.core.Input +import io.ktor.utils.io.streams.asInput import kotlinx.serialization.Serializable import kotlinx.serialization.Transient import java.io.File From e3117f3679148c34ffc19f8b0429ee84906420d0 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Wed, 15 Jan 2020 12:31:17 +0600 Subject: [PATCH 06/11] migrate 0.21.1 -> 0.22.0 --- CHANGELOG.md | 62 ++++++++++++++++++++++++++-------------------------- build.gradle | 2 +- 2 files changed, 32 insertions(+), 32 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1732a4dada..eae79d019f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,36 +1,6 @@ # TelegramBotAPI changelog -## 0.21.0 TelegramBotAPI 4.5 - -* _**All `MessageEntity`'es now are replaced with `TextPart`**_ -* Added support of strikethrough and underline - * Added `UnderlineTextSource` - * Added `StrikethroughTextSource` - * Added support in `RawMessageEntity` -* Added support of `MarkdownV2` -* Now will not be thrown exception when there is income unknown type of `RawMessageEntity`. Instead of this will be -created `RegularTextSource` with the same text -* Fixed problem that usually string formatting did not trigger escaping of control characters -* Actualized work with `pre` type of text - now it is possible to use `language` for formatting of text -* Removed constructor of `TextMentionTextSource`, which was deprecated previously -* All `TelegramMediaFile` instances now have field `fileUniqueId`, which represents `file_unique_id` field from API -* Now `ChatPhoto` have two additional fields: `smallFileUniqueId` and `bigFileUniqueId` -* Now any administrator object instance have `customTitle` nullable field -* Added the new request `SetChatAdministratorCustomTitle` to manage the custom titles of administrators promoted by the -bot. -* Added the field `slowModeDelay` to the `ExtendedSupergroupChat` objects. - -* `CaptionedInput` now have extension `fullEntitiesList` which will return list of `TextPart` with `RegularSource`'s -* `TextPart` added - it will be used as part of some text and can be not related to telegram bot -* `MultilevelTextSource` was added - it is type of `TextSource`, which can have subsources as parts of this text -* In all `TextSource`s all fields now are lazy for avoiding of potential risk for performance issues - -* Updates in versions: - * Coroutines `1.3.2` -> `1.3.3` - * Klock `1.8.0` -> `1.8.6` - * UUID `0.0.6` -> `0.0.7` - -### 0.21.1 +### 0.22.0 * **`KtorCallFactory` must return `HttpStatement` instead of `HttpClientCall`** * `SendMessage` was renamed to `SendTextMessage` and previous `SendMessage` is deprecated @@ -84,6 +54,36 @@ bot. * Version updates: * Ktor `1.2.6` -> `1.3.0` +## 0.21.0 TelegramBotAPI 4.5 + +* _**All `MessageEntity`'es now are replaced with `TextPart`**_ +* Added support of strikethrough and underline + * Added `UnderlineTextSource` + * Added `StrikethroughTextSource` + * Added support in `RawMessageEntity` +* Added support of `MarkdownV2` +* Now will not be thrown exception when there is income unknown type of `RawMessageEntity`. Instead of this will be +created `RegularTextSource` with the same text +* Fixed problem that usually string formatting did not trigger escaping of control characters +* Actualized work with `pre` type of text - now it is possible to use `language` for formatting of text +* Removed constructor of `TextMentionTextSource`, which was deprecated previously +* All `TelegramMediaFile` instances now have field `fileUniqueId`, which represents `file_unique_id` field from API +* Now `ChatPhoto` have two additional fields: `smallFileUniqueId` and `bigFileUniqueId` +* Now any administrator object instance have `customTitle` nullable field +* Added the new request `SetChatAdministratorCustomTitle` to manage the custom titles of administrators promoted by the +bot. +* Added the field `slowModeDelay` to the `ExtendedSupergroupChat` objects. + +* `CaptionedInput` now have extension `fullEntitiesList` which will return list of `TextPart` with `RegularSource`'s +* `TextPart` added - it will be used as part of some text and can be not related to telegram bot +* `MultilevelTextSource` was added - it is type of `TextSource`, which can have subsources as parts of this text +* In all `TextSource`s all fields now are lazy for avoiding of potential risk for performance issues + +* Updates in versions: + * Coroutines `1.3.2` -> `1.3.3` + * Klock `1.8.0` -> `1.8.6` + * UUID `0.0.6` -> `0.0.7` + ## 0.20.0 MPP Migration * Time library change: `joda-time` -> `com.soywiz.korlibs.klock:klock` diff --git a/build.gradle b/build.gradle index 72975ffc57..bd7757769b 100644 --- a/build.gradle +++ b/build.gradle @@ -17,7 +17,7 @@ plugins { id "org.jetbrains.kotlin.plugin.serialization" version "$kotlin_version" } -project.version = "0.21.1" +project.version = "0.22.0" project.group = "com.github.insanusmokrassar" apply from: "publish.gradle" From 3fe7bd13829e07050f0a021b0baa97352f665602 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Wed, 15 Jan 2020 12:52:52 +0600 Subject: [PATCH 07/11] AbleToBe -> Possibly and ForwardedMessage -> ForwardInfo --- CHANGELOG.md | 10 ++++ .../TelegramBotAPI/requests/ForwardMessage.kt | 8 +-- .../types/message/ChannelMediaGroupMessage.kt | 2 +- .../types/message/ChannelMessage.kt | 2 +- .../types/message/CommonMediaGroupMessage.kt | 2 +- .../types/message/CommonMessageImpl.kt | 2 +- .../types/message/ForwardInfo.kt | 57 +++++++++++++++++++ .../types/message/ForwardedMessage.kt | 25 -------- .../types/message/RawMessage.kt | 8 +-- .../abstracts/AbleToBeForwardedMessage.kt | 7 --- .../types/message/abstracts/CommonMessage.kt | 8 +-- ...tedMessage.kt => PossiblyEditedMessage.kt} | 2 +- .../abstracts/PossiblyForwardedMessage.kt | 13 +++++ ...bleToBeMarkedUp.kt => PossiblyMarkedUp.kt} | 2 +- ...edMessage.kt => PossiblyPaymentMessage.kt} | 2 +- ...eplyMessage.kt => PossiblyReplyMessage.kt} | 2 +- .../TelegramBotAPI/utils/MediaGroupList.kt | 8 +-- 17 files changed, 103 insertions(+), 57 deletions(-) create mode 100644 src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/ForwardInfo.kt delete mode 100644 src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/ForwardedMessage.kt delete mode 100644 src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/abstracts/AbleToBeForwardedMessage.kt rename src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/abstracts/{AbleToBeEditedMessage.kt => PossiblyEditedMessage.kt} (75%) create mode 100644 src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/abstracts/PossiblyForwardedMessage.kt rename src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/abstracts/{AbleToBeMarkedUp.kt => PossiblyMarkedUp.kt} (87%) rename src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/abstracts/{AbleToBePaymentedMessage.kt => PossiblyPaymentMessage.kt} (81%) rename src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/abstracts/{AbleToReplyMessage.kt => PossiblyReplyMessage.kt} (75%) diff --git a/CHANGELOG.md b/CHANGELOG.md index eae79d019f..6216320bc9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,16 @@ * **`KtorCallFactory` must return `HttpStatement` instead of `HttpClientCall`** * `SendMessage` was renamed to `SendTextMessage` and previous `SendMessage` is deprecated +* All `AbleToBe*` interfaces was renamed to `Possibly*` + * `AbleToBeEditedMessage` -> `PossiblyEditedMessage` + * `AbleToBeForwardedMessage` -> `PossiblyForwardedMessage` + * `AbleToBeMarkedUp` -> `PossiblyMarkedUp` + * `AbleToBeEditedMessage` -> `PossiblyEditedMessage` +* `ForwardedMessage` type was renamed to `ForwardInfo` + * `AnonymousForwardedMessage` -> `AnonymousForwardInfo` + * `UserForwardedMessage` -> `UserForwardInfo` + * `ForwardedFromChannelMessage` -> `ForwardFromChannelInfo` + * `PossiblyForwardedMessage#forwarded` field now renamed to `forwardInfo` * Most part of requests have changed return type. They are listed below:
diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/ForwardMessage.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/ForwardMessage.kt index 66940cb2f1..ad9b12c266 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/ForwardMessage.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/ForwardMessage.kt @@ -3,12 +3,10 @@ package com.github.insanusmokrassar.TelegramBotAPI.requests import com.github.insanusmokrassar.TelegramBotAPI.CommonAbstracts.types.MessageAction import com.github.insanusmokrassar.TelegramBotAPI.requests.abstracts.SimpleRequest import com.github.insanusmokrassar.TelegramBotAPI.types.* -import com.github.insanusmokrassar.TelegramBotAPI.types.message.ForwardedMessage import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.* -import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.TelegramBotAPIMessageDeserializationStrategy import kotlinx.serialization.* -private val AbleToBeForwardedMessageDeserializer = TelegramBotAPIMessageDeserializationStrategyClass() +private val AbleToBeForwardedMessageDeserializer = TelegramBotAPIMessageDeserializationStrategyClass() @Serializable data class ForwardMessage( @@ -20,13 +18,13 @@ data class ForwardMessage( override val messageId: MessageIdentifier, @SerialName(disableNotificationField) val disableNotification: Boolean = false -): SimpleRequest, MessageAction { +): SimpleRequest, MessageAction { override val chatId: ChatIdentifier get() = fromChatId override fun method(): String = "forwardMessage" - override val resultDeserializer: DeserializationStrategy + override val resultDeserializer: DeserializationStrategy get() = AbleToBeForwardedMessageDeserializer override val requestSerializer: SerializationStrategy<*> get() = serializer() diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/ChannelMediaGroupMessage.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/ChannelMediaGroupMessage.kt index b6f84d2a02..dffb332367 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/ChannelMediaGroupMessage.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/ChannelMediaGroupMessage.kt @@ -16,7 +16,7 @@ data class ChannelMediaGroupMessage( override val mediaGroupId: MediaGroupIdentifier, override val content: MediaGroupContent, override val editDate: DateTime?, - override val forwarded: ForwardedMessage?, + override val forwardInfo: ForwardInfo?, override val replyTo: Message?, override val replyMarkup: InlineKeyboardMarkup? ) : MediaGroupMessage diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/ChannelMessage.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/ChannelMessage.kt index 4129da66fc..990804d6b1 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/ChannelMessage.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/ChannelMessage.kt @@ -15,7 +15,7 @@ data class ChannelMessage( override val content: T, override val date: DateTime, override val editDate: DateTime?, - override val forwarded: ForwardedMessage?, + override val forwardInfo: ForwardInfo?, override val replyTo: Message?, override val replyMarkup: InlineKeyboardMarkup?, val authorSignature: AuthorSignature? diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/CommonMediaGroupMessage.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/CommonMediaGroupMessage.kt index 026469d707..cc4c0307cc 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/CommonMediaGroupMessage.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/CommonMediaGroupMessage.kt @@ -15,7 +15,7 @@ data class CommonMediaGroupMessage( override val mediaGroupId: MediaGroupIdentifier, override val content: MediaGroupContent, override val editDate: DateTime?, - override val forwarded: ForwardedMessage?, + override val forwardInfo: ForwardInfo?, override val replyTo: Message?, override val replyMarkup: InlineKeyboardMarkup? ) : MediaGroupMessage, FromUserMessage diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/CommonMessageImpl.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/CommonMessageImpl.kt index e58b5f6852..d54fcec119 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/CommonMessageImpl.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/CommonMessageImpl.kt @@ -16,7 +16,7 @@ data class CommonMessageImpl( override val content: T, override val date: DateTime, override val editDate: DateTime?, - override val forwarded: ForwardedMessage?, + override val forwardInfo: ForwardInfo?, override val replyTo: Message?, override val replyMarkup: InlineKeyboardMarkup?, val paymentInfo: PaymentInfo? diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/ForwardInfo.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/ForwardInfo.kt new file mode 100644 index 0000000000..662987f39a --- /dev/null +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/ForwardInfo.kt @@ -0,0 +1,57 @@ +package com.github.insanusmokrassar.TelegramBotAPI.types.message + +import com.github.insanusmokrassar.TelegramBotAPI.types.* +import com.github.insanusmokrassar.TelegramBotAPI.types.chat.abstracts.Chat + +@Deprecated( + "Renamed", + ReplaceWith( + "ForwardInfo", + "com.github.insanusmokrassar.TelegramBotAPI.types.message.ForwardInfo" + ) +) +typealias ForwardedMessage = ForwardInfo +sealed class ForwardInfo { + abstract val dateOfOriginal: TelegramDate +} + +@Deprecated( + "Renamed", + ReplaceWith( + "AnonymousForwardInfo", + "com.github.insanusmokrassar.TelegramBotAPI.types.message.AnonymousForwardInfo" + ) +) +typealias AnonymousForwardedMessage = AnonymousForwardInfo +data class AnonymousForwardInfo( + override val dateOfOriginal: TelegramDate, + val senderName: String +) : ForwardInfo() + +@Deprecated( + "Renamed", + ReplaceWith( + "UserForwardInfo", + "com.github.insanusmokrassar.TelegramBotAPI.types.message.UserForwardInfo" + ) +) +typealias UserForwardedMessage = UserForwardInfo +data class UserForwardInfo( + override val dateOfOriginal: TelegramDate, + val from: User +) : ForwardInfo() + +@Deprecated( + "Renamed", + ReplaceWith( + "ForwardFromChannelInfo", + "com.github.insanusmokrassar.TelegramBotAPI.types.message.ForwardFromChannelInfo" + ) +) +typealias ForwardedFromChannelMessage = ForwardFromChannelInfo +data class ForwardFromChannelInfo( + override val dateOfOriginal: TelegramDate, + val messageId: MessageIdentifier, + val channelChat: Chat, + val signature: String? = null +) : ForwardInfo() diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/ForwardedMessage.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/ForwardedMessage.kt deleted file mode 100644 index 7d6b370c41..0000000000 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/ForwardedMessage.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.github.insanusmokrassar.TelegramBotAPI.types.message - -import com.github.insanusmokrassar.TelegramBotAPI.types.* -import com.github.insanusmokrassar.TelegramBotAPI.types.chat.abstracts.Chat - -sealed class ForwardedMessage { - abstract val dateOfOriginal: TelegramDate -} - -data class AnonymousForwardedMessage( - override val dateOfOriginal: TelegramDate, - val senderName: String -) : ForwardedMessage() - -data class UserForwardedMessage( - override val dateOfOriginal: TelegramDate, - val from: User -) : ForwardedMessage() - -data class ForwardedFromChannelMessage( - override val dateOfOriginal: TelegramDate, - val messageId: MessageIdentifier, - val channelChat: Chat, - val signature: String? = null -) : ForwardedMessage() diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/RawMessage.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/RawMessage.kt index 1a48869f16..ef6537a122 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/RawMessage.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/RawMessage.kt @@ -134,20 +134,20 @@ internal data class RawMessage( } @Transient - private val forwarded: ForwardedMessage? by lazy { + private val forwarded: ForwardInfo? by lazy { forward_date ?: return@lazy null // According to the documentation, now any forwarded message contains this field when { - forward_sender_name != null -> AnonymousForwardedMessage( + forward_sender_name != null -> AnonymousForwardInfo( forward_date, forward_sender_name ) - forward_from_chat != null -> ForwardedFromChannelMessage( + forward_from_chat != null -> ForwardFromChannelInfo( forward_date, forward_from_message_id ?: throw IllegalStateException("Channel forwarded message must contain message id, but was not"), forward_from_chat, forward_signature ) - forward_from != null -> UserForwardedMessage( + forward_from != null -> UserForwardInfo( forward_date, forward_from ) diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/abstracts/AbleToBeForwardedMessage.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/abstracts/AbleToBeForwardedMessage.kt deleted file mode 100644 index c1acd3a459..0000000000 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/abstracts/AbleToBeForwardedMessage.kt +++ /dev/null @@ -1,7 +0,0 @@ -package com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts - -import com.github.insanusmokrassar.TelegramBotAPI.types.message.ForwardedMessage - -interface AbleToBeForwardedMessage : Message { - val forwarded: ForwardedMessage? -} \ No newline at end of file diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/abstracts/CommonMessage.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/abstracts/CommonMessage.kt index ba53e0cfac..80b56bdc20 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/abstracts/CommonMessage.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/abstracts/CommonMessage.kt @@ -3,8 +3,8 @@ package com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.abstracts.MessageContent interface CommonMessage : Message, - AbleToBeForwardedMessage, - AbleToBeEditedMessage, - AbleToReplyMessage, - AbleToBeMarkedUp, + PossiblyForwardedMessage, + PossiblyEditedMessage, + PossiblyReplyMessage, + PossiblyMarkedUp, ContentMessage diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/abstracts/AbleToBeEditedMessage.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/abstracts/PossiblyEditedMessage.kt similarity index 75% rename from src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/abstracts/AbleToBeEditedMessage.kt rename to src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/abstracts/PossiblyEditedMessage.kt index 1c94dd56ae..710889181b 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/abstracts/AbleToBeEditedMessage.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/abstracts/PossiblyEditedMessage.kt @@ -2,6 +2,6 @@ package com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts import com.soywiz.klock.DateTime -interface AbleToBeEditedMessage : Message { +interface PossiblyEditedMessage : Message { val editDate: DateTime? } \ No newline at end of file diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/abstracts/PossiblyForwardedMessage.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/abstracts/PossiblyForwardedMessage.kt new file mode 100644 index 0000000000..01e2b58768 --- /dev/null +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/abstracts/PossiblyForwardedMessage.kt @@ -0,0 +1,13 @@ +package com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts + +import com.github.insanusmokrassar.TelegramBotAPI.types.message.ForwardInfo + +interface PossiblyForwardedMessage : Message { + val forwardInfo: ForwardInfo? + @Deprecated( + "Renamed", + ReplaceWith("forwardInfo") + ) + val forwarded: ForwardInfo? + get() = forwardInfo +} \ No newline at end of file diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/abstracts/AbleToBeMarkedUp.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/abstracts/PossiblyMarkedUp.kt similarity index 87% rename from src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/abstracts/AbleToBeMarkedUp.kt rename to src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/abstracts/PossiblyMarkedUp.kt index aa0d969786..7e2e89ee42 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/abstracts/AbleToBeMarkedUp.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/abstracts/PossiblyMarkedUp.kt @@ -2,6 +2,6 @@ package com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts import com.github.insanusmokrassar.TelegramBotAPI.types.buttons.InlineKeyboardMarkup -interface AbleToBeMarkedUp { +interface PossiblyMarkedUp { val replyMarkup: InlineKeyboardMarkup? } \ No newline at end of file diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/abstracts/AbleToBePaymentedMessage.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/abstracts/PossiblyPaymentMessage.kt similarity index 81% rename from src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/abstracts/AbleToBePaymentedMessage.kt rename to src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/abstracts/PossiblyPaymentMessage.kt index 5a879b9e9c..ab2a5d5b29 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/abstracts/AbleToBePaymentedMessage.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/abstracts/PossiblyPaymentMessage.kt @@ -2,6 +2,6 @@ package com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts import com.github.insanusmokrassar.TelegramBotAPI.types.message.payments.abstracts.PaymentInfo -interface AbleToBePaymentedMessage : Message { +interface PossiblyPaymentMessage : Message { val paymentInfo: PaymentInfo? } \ No newline at end of file diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/abstracts/AbleToReplyMessage.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/abstracts/PossiblyReplyMessage.kt similarity index 75% rename from src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/abstracts/AbleToReplyMessage.kt rename to src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/abstracts/PossiblyReplyMessage.kt index 3cbe77739e..a68494790e 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/abstracts/AbleToReplyMessage.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/abstracts/PossiblyReplyMessage.kt @@ -1,5 +1,5 @@ package com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts -interface AbleToReplyMessage { +interface PossiblyReplyMessage { val replyTo: Message? } \ No newline at end of file diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/utils/MediaGroupList.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/utils/MediaGroupList.kt index 3f8961013c..bdfd2313ce 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/utils/MediaGroupList.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/utils/MediaGroupList.kt @@ -2,18 +2,18 @@ package com.github.insanusmokrassar.TelegramBotAPI.utils import com.github.insanusmokrassar.TelegramBotAPI.types.MediaGroupIdentifier import com.github.insanusmokrassar.TelegramBotAPI.types.chat.abstracts.Chat -import com.github.insanusmokrassar.TelegramBotAPI.types.message.ForwardedMessage +import com.github.insanusmokrassar.TelegramBotAPI.types.message.ForwardInfo import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.* import com.github.insanusmokrassar.TelegramBotAPI.types.update.abstracts.BaseMessageUpdate -val List.forwarded: ForwardedMessage? +val List.forwarded: ForwardInfo? get() = first().let { - (it as? AbleToBeForwardedMessage) ?.forwarded + (it as? PossiblyForwardedMessage) ?.forwardInfo } val List.replyTo: Message? get() = first().let { - (it as? AbleToReplyMessage) ?.replyTo + (it as? PossiblyReplyMessage) ?.replyTo } val List.chat: Chat? From 12496f826173539c4be71f323ba395dd150988a5 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Wed, 15 Jan 2020 13:03:42 +0600 Subject: [PATCH 08/11] make all serializers are internal --- CHANGELOG.md | 2 ++ .../TelegramBotAPI/requests/abstracts/InputFile.kt | 2 +- .../TelegramBotAPI/requests/answers/AnswerInlineQuery.kt | 2 +- .../requests/answers/payments/AnswerShippingQuery.kt | 2 +- .../requests/games/abstracts/GetGameHighScores.kt | 2 +- .../serializers/InlineQueryResultSerializer.kt | 2 +- .../types/InlineQueries/InputMessageContentSerializer.kt | 2 +- .../TelegramBotAPI/types/InputMedia/InputMediaSerializer.kt | 2 +- .../types/InputMedia/MediaGroupMemberInputMediaSerializer.kt | 2 +- .../TelegramBotAPI/types/UserProfilePhotos.kt | 2 +- .../InlineKeyboardButtons/InlineKeyboardButtonSerializer.kt | 2 +- .../TelegramBotAPI/types/buttons/KeyboardMarkupSerializer.kt | 2 +- .../TelegramBotAPI/types/chat/ChatSerializers.kt | 4 ++-- .../insanusmokrassar/TelegramBotAPI/types/files/PhotoSize.kt | 2 +- .../TelegramBotAPI/types/payments/ShippingOption.kt | 2 +- .../insanusmokrassar/TelegramBotAPI/types/polls/PollOption.kt | 2 +- 16 files changed, 18 insertions(+), 16 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6216320bc9..660e7d2e5b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,8 @@ * `UserForwardedMessage` -> `UserForwardInfo` * `ForwardedFromChannelMessage` -> `ForwardFromChannelInfo` * `PossiblyForwardedMessage#forwarded` field now renamed to `forwardInfo` +* All serializers in library now are `internal`. **If you have used some of them or I have marked as internal by a +mistake - don't hesitate to say this.** * Most part of requests have changed return type. They are listed below:
diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/abstracts/InputFile.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/abstracts/InputFile.kt index 2c5fbd5b94..6c2f6c96d9 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/abstracts/InputFile.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/abstracts/InputFile.kt @@ -21,7 +21,7 @@ data class FileId( fun String.toInputFile(): InputFile = FileId(this) @Serializer(InputFile::class) -object InputFileSerializer : KSerializer { +internal object InputFileSerializer : KSerializer { override val descriptor: SerialDescriptor = StringDescriptor.withName(FileId::class.toString()) override fun serialize(encoder: Encoder, obj: InputFile) = encoder.encodeString(obj.fileId) override fun deserialize(decoder: Decoder): FileId = FileId(decoder.decodeString()) diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/answers/AnswerInlineQuery.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/answers/AnswerInlineQuery.kt index 21fba40d00..e31f1c7eb0 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/answers/AnswerInlineQuery.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/answers/AnswerInlineQuery.kt @@ -51,6 +51,6 @@ fun InlineQuery.createAnswer( switchPmParameter ) -object InlineQueryAnswersResultsSerializer: KSerializer> by ArrayListSerializer( +internal object InlineQueryAnswersResultsSerializer: KSerializer> by ArrayListSerializer( InlineQueryResultSerializer ) diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/answers/payments/AnswerShippingQuery.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/answers/payments/AnswerShippingQuery.kt index 2439e5f41d..70d9d8626c 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/answers/payments/AnswerShippingQuery.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/answers/payments/AnswerShippingQuery.kt @@ -21,7 +21,7 @@ data class AnswerShippingQueryOk( get() = serializer() } -object ShippingOptionsSerializer : KSerializer> by ArrayListSerializer( +internal object ShippingOptionsSerializer : KSerializer> by ArrayListSerializer( ShippingOption.serializer() ) diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/games/abstracts/GetGameHighScores.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/games/abstracts/GetGameHighScores.kt index 216cdfb9e9..0915454e86 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/games/abstracts/GetGameHighScores.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/games/abstracts/GetGameHighScores.kt @@ -15,4 +15,4 @@ interface GetGameHighScores : SimpleRequest> { get() = GameHighScoresSerializer } -object GameHighScoresSerializer : KSerializer> by ArrayListSerializer(GameHighScore.serializer()) +internal object GameHighScoresSerializer : KSerializer> by ArrayListSerializer(GameHighScore.serializer()) diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/InlineQueries/InlineQueryResult/serializers/InlineQueryResultSerializer.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/InlineQueries/InlineQueryResult/serializers/InlineQueryResultSerializer.kt index 8b346927a9..e114e76a84 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/InlineQueries/InlineQueryResult/serializers/InlineQueryResultSerializer.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/InlineQueries/InlineQueryResult/serializers/InlineQueryResultSerializer.kt @@ -6,7 +6,7 @@ import kotlinx.serialization.* import kotlinx.serialization.internal.StringDescriptor @Serializer(InlineQueryResult::class) -object InlineQueryResultSerializer : KSerializer { +internal object InlineQueryResultSerializer : KSerializer { override val descriptor: SerialDescriptor = StringDescriptor.withName(InlineQueryResult::class.toString()) override fun serialize(encoder: Encoder, obj: InlineQueryResult) { when(obj) { diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/InlineQueries/InputMessageContentSerializer.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/InlineQueries/InputMessageContentSerializer.kt index 77c3fa4486..4eca591bbe 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/InlineQueries/InputMessageContentSerializer.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/InlineQueries/InputMessageContentSerializer.kt @@ -6,7 +6,7 @@ import kotlinx.serialization.* import kotlinx.serialization.internal.StringDescriptor @Serializer(InputMessageContent::class) -object InputMessageContentSerializer : KSerializer { +internal object InputMessageContentSerializer : KSerializer { override val descriptor: SerialDescriptor = StringDescriptor.withName(InputMessageContent::class.toString()) override fun serialize(encoder: Encoder, obj: InputMessageContent) { when (obj) { diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/InputMedia/InputMediaSerializer.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/InputMedia/InputMediaSerializer.kt index fd4b3f9266..72b2f98050 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/InputMedia/InputMediaSerializer.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/InputMedia/InputMediaSerializer.kt @@ -4,7 +4,7 @@ import kotlinx.serialization.* import kotlinx.serialization.internal.StringDescriptor @Serializer(InputMedia::class) -object InputMediaSerializer : KSerializer { +internal object InputMediaSerializer : KSerializer { override val descriptor: SerialDescriptor = StringDescriptor.withName(InputMedia::class.toString()) override fun serialize(encoder: Encoder, obj: InputMedia) { when (obj) { diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/InputMedia/MediaGroupMemberInputMediaSerializer.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/InputMedia/MediaGroupMemberInputMediaSerializer.kt index c435bef316..235b67e871 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/InputMedia/MediaGroupMemberInputMediaSerializer.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/InputMedia/MediaGroupMemberInputMediaSerializer.kt @@ -4,7 +4,7 @@ import kotlinx.serialization.* import kotlinx.serialization.internal.StringDescriptor @Serializer(MediaGroupMemberInputMedia::class) -object MediaGroupMemberInputMediaSerializer : KSerializer { +internal object MediaGroupMemberInputMediaSerializer : KSerializer { override val descriptor: SerialDescriptor = StringDescriptor.withName(MediaGroupMemberInputMedia::class.toString()) override fun serialize(encoder: Encoder, obj: MediaGroupMemberInputMedia) { when (obj) { diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/UserProfilePhotos.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/UserProfilePhotos.kt index f54cf75787..133610427b 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/UserProfilePhotos.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/UserProfilePhotos.kt @@ -13,6 +13,6 @@ data class UserProfilePhotos ( val photos: List ) -object UserProfilePhotosPhotosSerializer : KSerializer> by ArrayListSerializer( +internal object UserProfilePhotosPhotosSerializer : KSerializer> by ArrayListSerializer( PhotoSerializer ) diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/buttons/InlineKeyboardButtons/InlineKeyboardButtonSerializer.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/buttons/InlineKeyboardButtons/InlineKeyboardButtonSerializer.kt index 4ee83f2133..317cc57901 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/buttons/InlineKeyboardButtons/InlineKeyboardButtonSerializer.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/buttons/InlineKeyboardButtons/InlineKeyboardButtonSerializer.kt @@ -5,7 +5,7 @@ import kotlinx.serialization.* import kotlinx.serialization.internal.StringDescriptor import kotlinx.serialization.json.* -object InlineKeyboardButtonSerializer : KSerializer { +internal object InlineKeyboardButtonSerializer : KSerializer { override val descriptor: SerialDescriptor = StringDescriptor.withName("com.github.insanusmokrassar.TelegramBotAPI.types.buttons.InlineKeyboardButtons.InlineKeyboardButton") private fun resolveSerializer(json: JsonObject): KSerializer { diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/buttons/KeyboardMarkupSerializer.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/buttons/KeyboardMarkupSerializer.kt index d69825d7c2..aabea0e57a 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/buttons/KeyboardMarkupSerializer.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/buttons/KeyboardMarkupSerializer.kt @@ -4,7 +4,7 @@ import kotlinx.serialization.* import kotlinx.serialization.internal.StringDescriptor @Serializer(KeyboardMarkup::class) -object KeyboardMarkupSerializer : KSerializer { +internal object KeyboardMarkupSerializer : KSerializer { override val descriptor: SerialDescriptor = StringDescriptor.withName(KeyboardMarkup::class.toString()) override fun serialize(encoder: Encoder, obj: KeyboardMarkup) { when(obj) { diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/chat/ChatSerializers.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/chat/ChatSerializers.kt index 9745f0c2da..9eaa11d5d8 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/chat/ChatSerializers.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/chat/ChatSerializers.kt @@ -11,7 +11,7 @@ import kotlinx.serialization.json.JsonObjectSerializer private val formatter = Json.nonstrict -object PreviewChatSerializer : KSerializer { +internal object PreviewChatSerializer : KSerializer { override val descriptor: SerialDescriptor = StringDescriptor.withName("PreviewChatSerializer") override fun deserialize(decoder: Decoder): Chat { @@ -39,7 +39,7 @@ object PreviewChatSerializer : KSerializer { } } -object ExtendedChatSerializer : KSerializer { +internal object ExtendedChatSerializer : KSerializer { override val descriptor: SerialDescriptor = StringDescriptor.withName("PreviewChatSerializer") override fun deserialize(decoder: Decoder): ExtendedChat { diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/files/PhotoSize.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/files/PhotoSize.kt index d42e3c4669..93f9ae1b39 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/files/PhotoSize.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/files/PhotoSize.kt @@ -13,7 +13,7 @@ fun Photo.biggest(): PhotoSize? = maxBy { it.resolution } -object PhotoSerializer : KSerializer by ArrayListSerializer( +internal object PhotoSerializer : KSerializer by ArrayListSerializer( PhotoSize.serializer() ) diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/payments/ShippingOption.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/payments/ShippingOption.kt index ebdc3866db..95ab6ca48a 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/payments/ShippingOption.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/payments/ShippingOption.kt @@ -16,6 +16,6 @@ data class ShippingOption( override val prices: List ) : Priced -object LabeledPricesSerializer : KSerializer> by ArrayListSerializer( +internal object LabeledPricesSerializer : KSerializer> by ArrayListSerializer( LabeledPrice.serializer() ) diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/polls/PollOption.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/polls/PollOption.kt index c29522aeb5..63eef91eaf 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/polls/PollOption.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/polls/PollOption.kt @@ -19,7 +19,7 @@ data class AnonymousPollOption ( override val votes: Int ) : PollOption() -object PollOptionSerializer : KSerializer { +internal object PollOptionSerializer : KSerializer { override val descriptor: SerialDescriptor = StringDescriptor.withName(PollOption::class.simpleName ?: "PollOption") override fun deserialize(decoder: Decoder): PollOption = AnonymousPollOption.serializer().deserialize( From 0c9f9f59c18b61d90200a36ca664369c585bc193 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Wed, 15 Jan 2020 13:12:35 +0600 Subject: [PATCH 09/11] update changelog 0.22.0 type of title --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 660e7d2e5b..83a19fb5d0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # TelegramBotAPI changelog -### 0.22.0 +## 0.22.0 * **`KtorCallFactory` must return `HttpStatement` instead of `HttpClientCall`** * `SendMessage` was renamed to `SendTextMessage` and previous `SendMessage` is deprecated From 40eaffb8e39876ffa788164f5d10522fd5c88511 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Wed, 15 Jan 2020 13:27:29 +0600 Subject: [PATCH 10/11] EditChatMessage change fill in changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 83a19fb5d0..d4266f8673 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,7 @@ * `PossiblyForwardedMessage#forwarded` field now renamed to `forwardInfo` * All serializers in library now are `internal`. **If you have used some of them or I have marked as internal by a mistake - don't hesitate to say this.** +* `EditChatMessage` now have generic type and extends `SimpleRequest>` * Most part of requests have changed return type. They are listed below:
From f80bb18ca5616894931a89d3ab735926d65c45d8 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Wed, 15 Jan 2020 13:30:28 +0600 Subject: [PATCH 11/11] ResendableContent change fill in changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d4266f8673..cb378514ff 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ * All serializers in library now are `internal`. **If you have used some of them or I have marked as internal by a mistake - don't hesitate to say this.** * `EditChatMessage` now have generic type and extends `SimpleRequest>` +* `ResendableContent` now extends `Request` instead of `Request` * Most part of requests have changed return type. They are listed below: