From 54c55d2dc628fe479431b4c8f69319767cb9d2aa Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Thu, 17 Jan 2019 10:19:33 +0800 Subject: [PATCH] Added "ResendableContent" --- CHANGELOG | 9 +++++ .../abstracts/DuratedSendMessageRequest.kt | 2 +- .../requests/send/media/SendAnimation.kt | 4 +- .../requests/send/media/SendAudio.kt | 4 +- .../requests/send/media/SendVideo.kt | 4 +- .../requests/send/media/SendVideoNote.kt | 4 +- .../requests/send/media/SendVoice.kt | 4 +- .../abstracts/MediaCollectionContent.kt | 2 +- .../message/content/abstracts/MediaContent.kt | 2 +- .../content/abstracts/ResendableContent.kt | 16 ++++++++ .../message/content/media/AnimationContent.kt | 38 ++++++++++++++++++- .../message/content/media/AudioContent.kt | 29 +++++++++++++- .../message/content/media/DocumentContent.kt | 26 ++++++++++++- .../message/content/media/PhotoContent.kt | 26 ++++++++++++- .../message/content/media/StickerContent.kt | 21 +++++++++- .../message/content/media/VideoContent.kt | 30 ++++++++++++++- .../message/content/media/VideoNoteContent.kt | 36 +++++++++++++++++- .../message/content/media/VoiceContent.kt | 27 ++++++++++++- 18 files changed, 263 insertions(+), 21 deletions(-) create mode 100644 src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/abstracts/ResendableContent.kt diff --git a/CHANGELOG b/CHANGELOG index b49e4d2a2b..db7c67a9b7 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -19,3 +19,12 @@ ## 0.8.4 * Added `createMarkdownText` and extensions for `CaptionedMediaContent` and `TextContent` +* Added `ResendableContent` and realize in different contents + * Animation + * Audio + * Document + * Photo + * Sticker + * Video + * VideoNote + * Voice diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/abstracts/DuratedSendMessageRequest.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/abstracts/DuratedSendMessageRequest.kt index 43c746c2fb..200eefdba2 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/abstracts/DuratedSendMessageRequest.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/abstracts/DuratedSendMessageRequest.kt @@ -4,5 +4,5 @@ interface DuratedSendMessageRequest: SendMessageRequest { /** * Duration of media, usually in seconds */ - val duration: Int? + val duration: Long? } \ No newline at end of file diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendAnimation.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendAnimation.kt index f4842d455c..414657fe85 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendAnimation.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendAnimation.kt @@ -17,7 +17,7 @@ fun SendAnimation( thumb: InputFile?, caption: String? = null, parseMode: ParseMode? = null, - duration: Int? = null, + duration: Long? = null, width: Int? = null, height: Int? = null, disableNotification: Boolean = false, @@ -71,7 +71,7 @@ data class SendAnimationData internal constructor( override val parseMode: ParseMode? = null, @SerialName(durationField) @Optional - override val duration: Int? = null, + override val duration: Long? = null, @SerialName(widthField) @Optional override val width: Int? = null, diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendAudio.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendAudio.kt index 5f19b644fb..45a5c62f8c 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendAudio.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendAudio.kt @@ -17,7 +17,7 @@ fun SendAudio( thumb: InputFile?, caption: String? = null, parseMode: ParseMode? = null, - duration: Int? = null, + duration: Long? = null, performer: String? = null, title: String? = null, disableNotification: Boolean = false, @@ -71,7 +71,7 @@ data class SendAudioData internal constructor( override val parseMode: ParseMode? = null, @SerialName(durationField) @Optional - override val duration: Int? = null, + override val duration: Long? = null, @SerialName(performerField) @Optional val performer: String? = null, diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendVideo.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendVideo.kt index bb47ea2b2c..d512abf48e 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendVideo.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendVideo.kt @@ -17,7 +17,7 @@ fun SendVideo( thumb: InputFile?, caption: String? = null, parseMode: ParseMode? = null, - duration: Int? = null, + duration: Long? = null, width: Int? = null, height: Int? = null, supportStreaming: Boolean? = null, @@ -73,7 +73,7 @@ data class SendVideoData internal constructor( override val parseMode: ParseMode? = null, @SerialName(durationField) @Optional - override val duration: Int? = null, + override val duration: Long? = null, @SerialName(widthField) @Optional override val width: Int? = null, diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendVideoNote.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendVideoNote.kt index 33c423f3c6..01a3d0d7ec 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendVideoNote.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendVideoNote.kt @@ -17,7 +17,7 @@ fun SendVideoNote( thumb: InputFile?, caption: String? = null, parseMode: ParseMode? = null, - duration: Int? = null, + duration: Long? = null, size: Int? = null, // in documentation - length (size of video side) disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, @@ -69,7 +69,7 @@ data class SendVideoNoteData internal constructor( override val parseMode: ParseMode? = null, @SerialName(durationField) @Optional - override val duration: Int? = null, + override val duration: Long? = null, @SerialName(lengthField) @Optional override val width: Int? = null, diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendVoice.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendVoice.kt index e859a0dbc3..fe1c02a9ea 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendVoice.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/requests/send/media/SendVoice.kt @@ -17,7 +17,7 @@ fun SendVoice( thumb: InputFile?, caption: String? = null, parseMode: ParseMode? = null, - duration: Int? = null, + duration: Long? = null, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, replyMarkup: KeyboardMarkup? = null @@ -67,7 +67,7 @@ data class SendVoiceData internal constructor( override val parseMode: ParseMode? = null, @SerialName(durationField) @Optional - override val duration: Int? = null, + override val duration: Long? = null, @SerialName(disableNotificationField) @Optional override val disableNotification: Boolean = false, diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/abstracts/MediaCollectionContent.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/abstracts/MediaCollectionContent.kt index a815289302..e999eaa336 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/abstracts/MediaCollectionContent.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/abstracts/MediaCollectionContent.kt @@ -2,6 +2,6 @@ package com.github.insanusmokrassar.TelegramBotAPI.types.message.content.abstrac import com.github.insanusmokrassar.TelegramBotAPI.types.files.abstracts.TelegramMediaFile -interface MediaCollectionContent: MessageContent { +interface MediaCollectionContent: MessageContent, ResendableContent { val media: List } diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/abstracts/MediaContent.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/abstracts/MediaContent.kt index fe3d48b712..b63b2fd42b 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/abstracts/MediaContent.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/abstracts/MediaContent.kt @@ -2,6 +2,6 @@ package com.github.insanusmokrassar.TelegramBotAPI.types.message.content.abstrac import com.github.insanusmokrassar.TelegramBotAPI.types.files.abstracts.TelegramMediaFile -interface MediaContent: MessageContent { +interface MediaContent: MessageContent, ResendableContent { val media: T } diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/abstracts/ResendableContent.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/abstracts/ResendableContent.kt new file mode 100644 index 0000000000..0ad2ccf49d --- /dev/null +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/abstracts/ResendableContent.kt @@ -0,0 +1,16 @@ +package com.github.insanusmokrassar.TelegramBotAPI.types.message.content.abstracts + +import com.github.insanusmokrassar.TelegramBotAPI.requests.abstracts.Request +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.RawMessage + +interface ResendableContent { + fun createResend( + chatId: ChatIdentifier, + disableNotification: Boolean = false, + replyToMessageId: MessageIdentifier? = null, + replyMarkup: KeyboardMarkup? = null + ): Request +} \ No newline at end of file diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/AnimationContent.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/AnimationContent.kt index c6c67fb264..f62e601938 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/AnimationContent.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/AnimationContent.kt @@ -1,10 +1,46 @@ 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.SendAnimation +import com.github.insanusmokrassar.TelegramBotAPI.types.ChatIdentifier +import com.github.insanusmokrassar.TelegramBotAPI.types.MessageIdentifier +import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.MarkdownParseMode +import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.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 +import com.github.insanusmokrassar.TelegramBotAPI.types.message.RawMessage import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.abstracts.MediaContent data class AnimationContent( override val media: AnimationFile, val includedDocument: DocumentFile? -) : MediaContent \ No newline at end of file +) : MediaContent { + override fun createResend( + chatId: ChatIdentifier, + disableNotification: Boolean, + replyToMessageId: MessageIdentifier?, + replyMarkup: KeyboardMarkup? + ): Request = createResend(chatId, null, null, disableNotification, replyToMessageId, replyMarkup) + + fun createResend( + chatId: ChatIdentifier, + caption: String?, + parseMode: ParseMode? = null, + disableNotification: Boolean = false, + replyToMessageId: MessageIdentifier? = null, + replyMarkup: KeyboardMarkup? = null + ): Request = SendAnimation( + chatId, + media.fileId, + media.thumb ?.fileId, + caption, + parseMode, + media.duration, + media.width, + media.height, + disableNotification, + replyToMessageId, + replyMarkup + ) +} \ No newline at end of file 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 e2c048f82b..e9aa329313 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 @@ -1,12 +1,39 @@ 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.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.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.toMarkdownCaption data class AudioContent( override val media: AudioFile, override val caption: String? = null, override val captionEntities: List = emptyList() -) : MediaContent, CaptionedMediaContent +) : MediaContent, CaptionedMediaContent { + override fun createResend( + chatId: ChatIdentifier, + disableNotification: Boolean, + replyToMessageId: MessageIdentifier?, + replyMarkup: KeyboardMarkup? + ): Request = SendAudio( + chatId, + media.fileId, + media.thumb ?.fileId, + toMarkdownCaption(), + MarkdownParseMode, + media.duration, + media.performer, + media.title, + disableNotification, + replyToMessageId, + replyMarkup + ) +} 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 dc9607adc4..1ceed1fa24 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 @@ -1,12 +1,36 @@ 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.SendDocument +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.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.toMarkdownCaption data class DocumentContent( override val media: DocumentFile, override val caption: String? = null, override val captionEntities: List = emptyList() -) : MediaContent, CaptionedMediaContent +) : MediaContent, CaptionedMediaContent { + override fun createResend( + chatId: ChatIdentifier, + disableNotification: Boolean, + replyToMessageId: MessageIdentifier?, + replyMarkup: KeyboardMarkup? + ): Request = SendDocument( + chatId, + media.fileId, + media.thumb ?.fileId, + toMarkdownCaption(), + MarkdownParseMode, + 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 1fa526eb78..6a2a562660 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 @@ -1,11 +1,35 @@ 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.SendPhoto +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.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.toMarkdownCaption data class PhotoContent( override val media: List, override val caption: String? = null, override val captionEntities: List = emptyList() -) : MediaCollectionContent, CaptionedMediaContent, MediaGroupContent +) : MediaCollectionContent, CaptionedMediaContent, MediaGroupContent { + override fun createResend( + chatId: ChatIdentifier, + disableNotification: Boolean, + replyToMessageId: MessageIdentifier?, + replyMarkup: KeyboardMarkup? + ): Request = SendPhoto( + chatId, + media.biggest() ?.fileId ?: throw IllegalStateException("Empty list of media"), + toMarkdownCaption(), + MarkdownParseMode, + disableNotification, + replyToMessageId, + replyMarkup + ) +} diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/StickerContent.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/StickerContent.kt index bf7bc4e48c..d326e63521 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/StickerContent.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/StickerContent.kt @@ -1,8 +1,27 @@ 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.MessageIdentifier +import com.github.insanusmokrassar.TelegramBotAPI.types.buttons.KeyboardMarkup import com.github.insanusmokrassar.TelegramBotAPI.types.files.Sticker +import com.github.insanusmokrassar.TelegramBotAPI.types.message.RawMessage import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.abstracts.MediaContent data class StickerContent( override val media: Sticker -) : MediaContent +) : MediaContent { + override fun createResend( + chatId: ChatIdentifier, + disableNotification: Boolean, + replyToMessageId: MessageIdentifier?, + replyMarkup: KeyboardMarkup? + ): Request = SendSticker( + chatId, + media.fileId, + disableNotification, + replyToMessageId, + replyMarkup + ) +} 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 edf2c4ae38..efa50707ff 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 @@ -1,11 +1,39 @@ 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.SendVideo +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.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.toMarkdownCaption data class VideoContent( override val media: VideoFile, override val caption: String? = null, override val captionEntities: List = emptyList() -) : MediaContent, CaptionedMediaContent, MediaGroupContent +) : MediaContent, CaptionedMediaContent, MediaGroupContent { + override fun createResend( + chatId: ChatIdentifier, + disableNotification: Boolean, + replyToMessageId: MessageIdentifier?, + replyMarkup: KeyboardMarkup? + ): Request = SendVideo( + chatId, + media.fileId, + media.thumb ?.fileId, + toMarkdownCaption(), + MarkdownParseMode, + media.duration, + media.width, + media.height, + null, + disableNotification, + replyToMessageId, + replyMarkup + ) +} diff --git a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/VideoNoteContent.kt b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/VideoNoteContent.kt index ab5020d1b1..9e0ba9731b 100644 --- a/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/VideoNoteContent.kt +++ b/src/main/kotlin/com/github/insanusmokrassar/TelegramBotAPI/types/message/content/media/VideoNoteContent.kt @@ -1,8 +1,42 @@ 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.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.RawMessage import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.abstracts.MediaContent data class VideoNoteContent( override val media: VideoNoteFile -) : MediaContent +) : MediaContent { + override fun createResend( + chatId: ChatIdentifier, + disableNotification: Boolean, + replyToMessageId: MessageIdentifier?, + replyMarkup: KeyboardMarkup? + ): Request = createResend(chatId, null, null, disableNotification, replyToMessageId, replyMarkup) + + fun createResend( + chatId: ChatIdentifier, + caption: String?, + parseMode: ParseMode? = null, + disableNotification: Boolean = false, + replyToMessageId: MessageIdentifier? = null, + replyMarkup: KeyboardMarkup? = null + ): Request = SendVideoNote( + chatId, + media.fileId, + media.thumb ?.fileId, + caption, + parseMode, + media.duration, + media.width, + disableNotification, + replyToMessageId, + replyMarkup + ) +} 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 a54bb148c9..b61c4fc2cd 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 @@ -1,12 +1,37 @@ 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.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.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.toMarkdownCaption data class VoiceContent( override val media: VoiceFile, override val caption: String? = null, override val captionEntities: List = emptyList() -) : MediaContent, CaptionedMediaContent +) : MediaContent, CaptionedMediaContent { + override fun createResend( + chatId: ChatIdentifier, + disableNotification: Boolean, + replyToMessageId: MessageIdentifier?, + replyMarkup: KeyboardMarkup? + ): Request = SendVoice( + chatId, + media.fileId, + null, + toMarkdownCaption(), + MarkdownParseMode, + media.duration, + disableNotification, + replyToMessageId, + replyMarkup + ) +}