From 997f9ce4110045e900d6fc51e490e115b766c3fb Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Sat, 30 Mar 2019 20:12:00 +0800 Subject: [PATCH] message content resend by default using HTMLParseMode --- CHANGELOG.md | 2 ++ .../types/message/content/TextContent.kt | 28 +++++++++++++++---- .../message/content/media/AudioContent.kt | 6 ++-- .../message/content/media/DocumentContent.kt | 6 ++-- .../message/content/media/PhotoContent.kt | 10 ++++--- .../message/content/media/VideoContent.kt | 10 ++++--- .../message/content/media/VoiceContent.kt | 6 ++-- 7 files changed, 49 insertions(+), 19 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2bc405cef3..b0e1a36261 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -55,6 +55,8 @@ media for present out) * Add `CommonLimiter` * Add `MessageEntity#asHtmlSource` and `String#toHtml` * Add tools for work with html captions and texts +* `MessageContent` which using captions or text now have default parse mode `HTMLParseMode` due to issue with escaping +of `]` in links titles ## 0.11.0 diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/TextContent.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/TextContent.kt index b84bd17791..1676614d7c 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/TextContent.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/TextContent.kt @@ -5,10 +5,11 @@ import com.github.insanusmokrassar.TelegramBotAPI.requests.send.SendMessage import com.github.insanusmokrassar.TelegramBotAPI.types.ChatIdentifier import com.github.insanusmokrassar.TelegramBotAPI.types.MessageEntity.MessageEntity import com.github.insanusmokrassar.TelegramBotAPI.types.MessageIdentifier -import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.MarkdownParseMode +import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.* import com.github.insanusmokrassar.TelegramBotAPI.types.buttons.KeyboardMarkup import com.github.insanusmokrassar.TelegramBotAPI.types.message.RawMessage import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.abstracts.MessageContent +import com.github.insanusmokrassar.TelegramBotAPI.utils.toHtmlTexts import com.github.insanusmokrassar.TelegramBotAPI.utils.toMarkdownTexts data class TextContent( @@ -22,8 +23,8 @@ data class TextContent( replyMarkup: KeyboardMarkup? ): Request = SendMessage( chatId, - toMarkdownTexts().first(), - MarkdownParseMode, + toHtmlTexts().first(), + HTMLParseMode, false, disableNotification, replyToMessageId, @@ -35,11 +36,28 @@ data class TextContent( disableNotification: Boolean, replyToMessageId: MessageIdentifier?, replyMarkup: KeyboardMarkup? - ): List> = toMarkdownTexts().map { + ): List> = createResends( + chatId, + disableNotification, + replyToMessageId, + replyMarkup, + HTMLParseMode + ) + + fun createResends( + chatId: ChatIdentifier, + disableNotification: Boolean, + replyToMessageId: MessageIdentifier?, + replyMarkup: KeyboardMarkup?, + parseMode: ParseMode = HTMLParseMode + ): List> = when (parseMode) { + is MarkdownParseMode -> toMarkdownTexts() + is HTMLParseMode -> toHtmlTexts() + }.map { SendMessage( chatId, it, - MarkdownParseMode, + parseMode, false, disableNotification, replyToMessageId, diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/AudioContent.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/AudioContent.kt index 204a371a47..71137c1427 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/AudioContent.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/AudioContent.kt @@ -5,12 +5,14 @@ import com.github.insanusmokrassar.TelegramBotAPI.requests.send.media.SendAudio import com.github.insanusmokrassar.TelegramBotAPI.types.ChatIdentifier import com.github.insanusmokrassar.TelegramBotAPI.types.MessageEntity.MessageEntity import com.github.insanusmokrassar.TelegramBotAPI.types.MessageIdentifier +import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.HTMLParseMode import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.MarkdownParseMode import com.github.insanusmokrassar.TelegramBotAPI.types.buttons.KeyboardMarkup import com.github.insanusmokrassar.TelegramBotAPI.types.files.AudioFile import com.github.insanusmokrassar.TelegramBotAPI.types.message.RawMessage import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.abstracts.CaptionedMediaContent import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.abstracts.MediaContent +import com.github.insanusmokrassar.TelegramBotAPI.utils.toHtmlCaptions import com.github.insanusmokrassar.TelegramBotAPI.utils.toMarkdownCaptions data class AudioContent( @@ -27,8 +29,8 @@ data class AudioContent( chatId, media.fileId, media.thumb ?.fileId, - toMarkdownCaptions().firstOrNull(), - MarkdownParseMode, + toHtmlCaptions().firstOrNull(), + HTMLParseMode, media.duration, media.performer, media.title, diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/DocumentContent.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/DocumentContent.kt index 73e79fde97..7316ce0d8f 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/DocumentContent.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/DocumentContent.kt @@ -5,12 +5,14 @@ import com.github.insanusmokrassar.TelegramBotAPI.requests.send.media.SendDocume import com.github.insanusmokrassar.TelegramBotAPI.types.ChatIdentifier import com.github.insanusmokrassar.TelegramBotAPI.types.MessageEntity.MessageEntity import com.github.insanusmokrassar.TelegramBotAPI.types.MessageIdentifier +import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.HTMLParseMode import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.MarkdownParseMode import com.github.insanusmokrassar.TelegramBotAPI.types.buttons.KeyboardMarkup import com.github.insanusmokrassar.TelegramBotAPI.types.files.DocumentFile import com.github.insanusmokrassar.TelegramBotAPI.types.message.RawMessage import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.abstracts.CaptionedMediaContent import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.abstracts.MediaContent +import com.github.insanusmokrassar.TelegramBotAPI.utils.toHtmlCaptions import com.github.insanusmokrassar.TelegramBotAPI.utils.toMarkdownCaptions data class DocumentContent( @@ -27,8 +29,8 @@ data class DocumentContent( chatId, media.fileId, media.thumb ?.fileId, - toMarkdownCaptions().firstOrNull(), - MarkdownParseMode, + toHtmlCaptions().firstOrNull(), + HTMLParseMode, disableNotification, replyToMessageId, replyMarkup diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/PhotoContent.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/PhotoContent.kt index de31836ac8..0a906181f4 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/PhotoContent.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/PhotoContent.kt @@ -7,12 +7,14 @@ import com.github.insanusmokrassar.TelegramBotAPI.types.InputMedia.InputMediaPho import com.github.insanusmokrassar.TelegramBotAPI.types.InputMedia.MediaGroupMemberInputMedia import com.github.insanusmokrassar.TelegramBotAPI.types.MessageEntity.MessageEntity import com.github.insanusmokrassar.TelegramBotAPI.types.MessageIdentifier +import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.HTMLParseMode import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.MarkdownParseMode 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.RawMessage import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.abstracts.* +import com.github.insanusmokrassar.TelegramBotAPI.utils.toHtmlCaptions import com.github.insanusmokrassar.TelegramBotAPI.utils.toMarkdownCaptions data class PhotoContent( @@ -30,8 +32,8 @@ data class PhotoContent( ): Request = SendPhoto( chatId, media.fileId, - toMarkdownCaptions().firstOrNull(), - MarkdownParseMode, + toHtmlCaptions().firstOrNull(), + HTMLParseMode, disableNotification, replyToMessageId, replyMarkup @@ -39,7 +41,7 @@ data class PhotoContent( override fun toMediaGroupMemberInputMedia(): MediaGroupMemberInputMedia = InputMediaPhoto( media.fileId, - toMarkdownCaptions().firstOrNull(), - MarkdownParseMode + toHtmlCaptions().firstOrNull(), + HTMLParseMode ) } diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/VideoContent.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/VideoContent.kt index 44db88818c..af82fef1d9 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/VideoContent.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/VideoContent.kt @@ -7,11 +7,13 @@ import com.github.insanusmokrassar.TelegramBotAPI.types.InputMedia.InputMediaVid import com.github.insanusmokrassar.TelegramBotAPI.types.InputMedia.MediaGroupMemberInputMedia import com.github.insanusmokrassar.TelegramBotAPI.types.MessageEntity.MessageEntity import com.github.insanusmokrassar.TelegramBotAPI.types.MessageIdentifier +import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.HTMLParseMode import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.MarkdownParseMode import com.github.insanusmokrassar.TelegramBotAPI.types.buttons.KeyboardMarkup import com.github.insanusmokrassar.TelegramBotAPI.types.files.VideoFile import com.github.insanusmokrassar.TelegramBotAPI.types.message.RawMessage import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.abstracts.* +import com.github.insanusmokrassar.TelegramBotAPI.utils.toHtmlCaptions import com.github.insanusmokrassar.TelegramBotAPI.utils.toMarkdownCaptions data class VideoContent( @@ -28,8 +30,8 @@ data class VideoContent( chatId, media.fileId, media.thumb ?.fileId, - toMarkdownCaptions().firstOrNull(), - MarkdownParseMode, + toHtmlCaptions().firstOrNull(), + HTMLParseMode, media.duration, media.width, media.height, @@ -41,8 +43,8 @@ data class VideoContent( override fun toMediaGroupMemberInputMedia(): MediaGroupMemberInputMedia = InputMediaVideo( media.fileId, - toMarkdownCaptions().firstOrNull(), - MarkdownParseMode, + toHtmlCaptions().firstOrNull(), + HTMLParseMode, media.width, media.height, media.duration, diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/VoiceContent.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/VoiceContent.kt index 86f1fba9b7..687e27a25e 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/VoiceContent.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/VoiceContent.kt @@ -5,12 +5,14 @@ import com.github.insanusmokrassar.TelegramBotAPI.requests.send.media.SendVoice import com.github.insanusmokrassar.TelegramBotAPI.types.ChatIdentifier import com.github.insanusmokrassar.TelegramBotAPI.types.MessageEntity.MessageEntity import com.github.insanusmokrassar.TelegramBotAPI.types.MessageIdentifier +import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.HTMLParseMode import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.MarkdownParseMode import com.github.insanusmokrassar.TelegramBotAPI.types.buttons.KeyboardMarkup import com.github.insanusmokrassar.TelegramBotAPI.types.files.VoiceFile import com.github.insanusmokrassar.TelegramBotAPI.types.message.RawMessage import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.abstracts.CaptionedMediaContent import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.abstracts.MediaContent +import com.github.insanusmokrassar.TelegramBotAPI.utils.toHtmlCaptions import com.github.insanusmokrassar.TelegramBotAPI.utils.toMarkdownCaptions data class VoiceContent( @@ -27,8 +29,8 @@ data class VoiceContent( chatId, media.fileId, null, - toMarkdownCaptions().firstOrNull(), - MarkdownParseMode, + toHtmlCaptions().firstOrNull(), + HTMLParseMode, media.duration, disableNotification, replyToMessageId,