From 63e0f5c054350ec85b666d03ad70032f5254d54d Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Mon, 20 Jan 2020 14:42:38 +0600 Subject: [PATCH] 0.22.1 --- CHANGELOG.md | 4 ++++ build.gradle | 2 +- .../message/content/abstracts/MediaContent.kt | 2 ++ .../message/content/media/AnimationContent.kt | 17 +++++++++++++++-- .../types/message/content/media/AudioContent.kt | 14 ++++++++++++++ .../message/content/media/DocumentContent.kt | 11 +++++++++++ .../types/message/content/media/PhotoContent.kt | 11 +++++++++-- .../message/content/media/StickerContent.kt | 8 ++++++++ .../types/message/content/media/VideoContent.kt | 15 +++++++++++++-- .../message/content/media/VideoNoteContent.kt | 10 ++++++++++ .../types/message/content/media/VoiceContent.kt | 11 +++++++++++ 11 files changed, 98 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cb378514ff..841d33b4b8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -68,6 +68,10 @@ mistake - don't hesitate to say this.** * Version updates: * Ktor `1.2.6` -> `1.3.0` +### 0.22.1 MediaContent#asInputMedia + +* All `MediaContent` instances now can create their `InputMedia` analog + ## 0.21.0 TelegramBotAPI 4.5 * _**All `MessageEntity`'es now are replaced with `TextPart`**_ diff --git a/build.gradle b/build.gradle index bd7757769b..477d57c158 100644 --- a/build.gradle +++ b/build.gradle @@ -17,7 +17,7 @@ plugins { id "org.jetbrains.kotlin.plugin.serialization" version "$kotlin_version" } -project.version = "0.22.0" +project.version = "0.22.1" project.group = "com.github.insanusmokrassar" apply from: "publish.gradle" diff --git a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/abstracts/MediaContent.kt b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/abstracts/MediaContent.kt index 9248dc721a..d163813030 100644 --- a/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/abstracts/MediaContent.kt +++ b/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/abstracts/MediaContent.kt @@ -1,7 +1,9 @@ package com.github.insanusmokrassar.TelegramBotAPI.types.message.content.abstracts +import com.github.insanusmokrassar.TelegramBotAPI.types.InputMedia.InputMedia import com.github.insanusmokrassar.TelegramBotAPI.types.files.abstracts.TelegramMediaFile interface MediaContent: MessageContent { val media: TelegramMediaFile + fun asInputMedia(): InputMedia } 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 007157e500..6c67d897a3 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 @@ -5,8 +5,10 @@ import com.github.insanusmokrassar.TelegramBotAPI.CommonAbstracts.TextPart import com.github.insanusmokrassar.TelegramBotAPI.requests.abstracts.Request import com.github.insanusmokrassar.TelegramBotAPI.requests.send.media.SendAnimation import com.github.insanusmokrassar.TelegramBotAPI.types.ChatIdentifier +import com.github.insanusmokrassar.TelegramBotAPI.types.InputMedia.InputMedia +import com.github.insanusmokrassar.TelegramBotAPI.types.InputMedia.InputMediaAnimation import com.github.insanusmokrassar.TelegramBotAPI.types.MessageIdentifier -import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.HTMLParseMode +import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.* import com.github.insanusmokrassar.TelegramBotAPI.types.buttons.KeyboardMarkup import com.github.insanusmokrassar.TelegramBotAPI.types.files.AnimationFile import com.github.insanusmokrassar.TelegramBotAPI.types.files.DocumentFile @@ -14,6 +16,7 @@ import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.Conten 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 +import com.github.insanusmokrassar.TelegramBotAPI.utils.toMarkdownV2Captions data class AnimationContent( override val media: AnimationFile, @@ -39,4 +42,14 @@ data class AnimationContent( replyToMessageId, replyMarkup ) -} \ No newline at end of file + + override fun asInputMedia(): InputMediaAnimation = InputMediaAnimation( + media.fileId, + toMarkdownV2Captions().first(), + MarkdownV2, + media.width, + media.height, + media.duration, + 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 5a7846cfb0..35e47a691b 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 @@ -5,14 +5,18 @@ import com.github.insanusmokrassar.TelegramBotAPI.CommonAbstracts.TextPart import com.github.insanusmokrassar.TelegramBotAPI.requests.abstracts.Request import com.github.insanusmokrassar.TelegramBotAPI.requests.send.media.SendAudio import com.github.insanusmokrassar.TelegramBotAPI.types.ChatIdentifier +import com.github.insanusmokrassar.TelegramBotAPI.types.InputMedia.InputMedia +import com.github.insanusmokrassar.TelegramBotAPI.types.InputMedia.InputMediaAudio import com.github.insanusmokrassar.TelegramBotAPI.types.MessageIdentifier import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.HTMLParseMode +import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.MarkdownV2 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 +import com.github.insanusmokrassar.TelegramBotAPI.utils.toMarkdownV2Captions data class AudioContent( override val media: AudioFile, @@ -37,4 +41,14 @@ data class AudioContent( replyToMessageId, replyMarkup ) + + override fun asInputMedia(): InputMediaAudio = InputMediaAudio( + media.fileId, + toMarkdownV2Captions().first(), + MarkdownV2, + media.duration, + media.performer, + media.title, + 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 b1f4ed37ce..2b7b196828 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 @@ -5,14 +5,18 @@ import com.github.insanusmokrassar.TelegramBotAPI.CommonAbstracts.TextPart import com.github.insanusmokrassar.TelegramBotAPI.requests.abstracts.Request import com.github.insanusmokrassar.TelegramBotAPI.requests.send.media.SendDocument import com.github.insanusmokrassar.TelegramBotAPI.types.ChatIdentifier +import com.github.insanusmokrassar.TelegramBotAPI.types.InputMedia.InputMedia +import com.github.insanusmokrassar.TelegramBotAPI.types.InputMedia.InputMediaDocument import com.github.insanusmokrassar.TelegramBotAPI.types.MessageIdentifier import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.HTMLParseMode +import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.MarkdownV2 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 +import com.github.insanusmokrassar.TelegramBotAPI.utils.toMarkdownV2Captions data class DocumentContent( override val media: DocumentFile, @@ -34,4 +38,11 @@ data class DocumentContent( replyToMessageId, replyMarkup ) + + override fun asInputMedia(): InputMediaDocument = InputMediaDocument( + media.fileId, + toMarkdownV2Captions().first(), + MarkdownV2, + 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 be200dc210..c8cbd20969 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 @@ -4,10 +4,10 @@ import com.github.insanusmokrassar.TelegramBotAPI.CommonAbstracts.TextPart import com.github.insanusmokrassar.TelegramBotAPI.requests.abstracts.Request import com.github.insanusmokrassar.TelegramBotAPI.requests.send.media.SendPhoto import com.github.insanusmokrassar.TelegramBotAPI.types.ChatIdentifier -import com.github.insanusmokrassar.TelegramBotAPI.types.InputMedia.InputMediaPhoto -import com.github.insanusmokrassar.TelegramBotAPI.types.InputMedia.MediaGroupMemberInputMedia +import com.github.insanusmokrassar.TelegramBotAPI.types.InputMedia.* import com.github.insanusmokrassar.TelegramBotAPI.types.MessageIdentifier import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.HTMLParseMode +import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.MarkdownV2 import com.github.insanusmokrassar.TelegramBotAPI.types.buttons.KeyboardMarkup import com.github.insanusmokrassar.TelegramBotAPI.types.files.PhotoSize import com.github.insanusmokrassar.TelegramBotAPI.types.files.biggest @@ -16,6 +16,7 @@ import com.github.insanusmokrassar.TelegramBotAPI.types.message.abstracts.Messag import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.abstracts.MediaCollectionContent import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.abstracts.MediaGroupContent import com.github.insanusmokrassar.TelegramBotAPI.utils.toHtmlCaptions +import com.github.insanusmokrassar.TelegramBotAPI.utils.toMarkdownV2Captions data class PhotoContent( override val mediaCollection: List, @@ -44,4 +45,10 @@ data class PhotoContent( toHtmlCaptions().firstOrNull(), HTMLParseMode ) + + override fun asInputMedia(): InputMediaPhoto = InputMediaPhoto( + media.fileId, + toMarkdownV2Captions().first(), + MarkdownV2 + ) } 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 5932235d01..48dca1b404 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 @@ -3,12 +3,14 @@ package com.github.insanusmokrassar.TelegramBotAPI.types.message.content.media import com.github.insanusmokrassar.TelegramBotAPI.requests.abstracts.Request import com.github.insanusmokrassar.TelegramBotAPI.requests.send.media.SendSticker import com.github.insanusmokrassar.TelegramBotAPI.types.ChatIdentifier +import com.github.insanusmokrassar.TelegramBotAPI.types.InputMedia.InputMediaDocument 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 +import com.github.insanusmokrassar.TelegramBotAPI.utils.toMarkdownV2Captions data class StickerContent( override val media: Sticker @@ -25,4 +27,10 @@ data class StickerContent( replyToMessageId, replyMarkup ) + + override fun asInputMedia(): InputMediaDocument = InputMediaDocument( + media.fileId, + null, + thumb = media.thumb ?.fileId + ) } 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 be862e3d80..f7ca32c856 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 @@ -4,16 +4,17 @@ import com.github.insanusmokrassar.TelegramBotAPI.CommonAbstracts.TextPart import com.github.insanusmokrassar.TelegramBotAPI.requests.abstracts.Request import com.github.insanusmokrassar.TelegramBotAPI.requests.send.media.SendVideo import com.github.insanusmokrassar.TelegramBotAPI.types.ChatIdentifier -import com.github.insanusmokrassar.TelegramBotAPI.types.InputMedia.InputMediaVideo -import com.github.insanusmokrassar.TelegramBotAPI.types.InputMedia.MediaGroupMemberInputMedia +import com.github.insanusmokrassar.TelegramBotAPI.types.InputMedia.* import com.github.insanusmokrassar.TelegramBotAPI.types.MessageIdentifier import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.HTMLParseMode +import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.MarkdownV2 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 +import com.github.insanusmokrassar.TelegramBotAPI.utils.toMarkdownV2Captions data class VideoContent( override val media: VideoFile, @@ -49,4 +50,14 @@ data class VideoContent( media.duration, media.thumb ?.fileId ) + + override fun asInputMedia(): InputMediaVideo = InputMediaVideo( + media.fileId, + toMarkdownV2Captions().first(), + MarkdownV2, + media.width, + media.height, + media.duration, + 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 6918131b0b..73dfaceba4 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 @@ -3,6 +3,7 @@ package com.github.insanusmokrassar.TelegramBotAPI.types.message.content.media import com.github.insanusmokrassar.TelegramBotAPI.requests.abstracts.Request import com.github.insanusmokrassar.TelegramBotAPI.requests.send.media.SendVideoNote import com.github.insanusmokrassar.TelegramBotAPI.types.ChatIdentifier +import com.github.insanusmokrassar.TelegramBotAPI.types.InputMedia.InputMediaVideo import com.github.insanusmokrassar.TelegramBotAPI.types.MessageIdentifier import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.ParseMode import com.github.insanusmokrassar.TelegramBotAPI.types.buttons.KeyboardMarkup @@ -10,6 +11,7 @@ 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 +import com.github.insanusmokrassar.TelegramBotAPI.utils.toMarkdownV2Captions data class VideoNoteContent( override val media: VideoNoteFile @@ -40,4 +42,12 @@ data class VideoNoteContent( replyToMessageId, replyMarkup ) + + override fun asInputMedia(): InputMediaVideo = InputMediaVideo( + media.fileId, + width = media.width, + height = media.height, + duration = media.duration, + thumb = 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 ec78bf3f32..26b8fa523f 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 @@ -5,14 +5,18 @@ import com.github.insanusmokrassar.TelegramBotAPI.CommonAbstracts.TextPart import com.github.insanusmokrassar.TelegramBotAPI.requests.abstracts.Request import com.github.insanusmokrassar.TelegramBotAPI.requests.send.media.SendVoice import com.github.insanusmokrassar.TelegramBotAPI.types.ChatIdentifier +import com.github.insanusmokrassar.TelegramBotAPI.types.InputMedia.InputMedia +import com.github.insanusmokrassar.TelegramBotAPI.types.InputMedia.InputMediaAudio import com.github.insanusmokrassar.TelegramBotAPI.types.MessageIdentifier import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.HTMLParseMode +import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.MarkdownV2 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 +import com.github.insanusmokrassar.TelegramBotAPI.utils.toMarkdownV2Captions data class VoiceContent( override val media: VoiceFile, @@ -35,4 +39,11 @@ data class VoiceContent( replyToMessageId, replyMarkup ) + + override fun asInputMedia(): InputMediaAudio = InputMediaAudio( + media.fileId, + toMarkdownV2Captions().first(), + MarkdownV2, + media.duration + ) }