mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI.git
synced 2024-12-22 16:47:13 +00:00
fixes in files and filling of changelog
This commit is contained in:
parent
5dd7207e09
commit
f0e9267664
40
CHANGELOG.md
40
CHANGELOG.md
@ -6,13 +6,41 @@
|
||||
* Version updates:
|
||||
* `Serialization`: `1.0.0` -> `1.0.1`
|
||||
* `Core`:
|
||||
* New annotation `RiskFeature`. This annotation will be applied to the things which contains unsafe types usage
|
||||
* `SendMediaGroup` factory now marked with `RiskFeature`
|
||||
* Media groups updates:
|
||||
* New functions `SendPlaylist`
|
||||
* New functions `SendDocumentsGroup`
|
||||
* New functions `SendVisualMediaGroup`
|
||||
* New type `VisualMediaGroupMemberInputMedia : MediaGroupMemberInputMedia`
|
||||
* `InputMediaPhoto` now implements `VisualMediaGroupMemberInputMedia` instead of `MediaGroupMemberInputMedia`
|
||||
* `InputMediaVideo` now implements `VisualMediaGroupMemberInputMedia` instead of `MediaGroupMemberInputMedia`
|
||||
* New type `VisualMediaGroupContent : MediaGroupContent`
|
||||
* `PhotoContent` now implements `VisualMediaGroupContent` instead of `MediaGroupContent`
|
||||
* `VideoContent` now implements `VisualMediaGroupContent` instead of `MediaGroupContent`
|
||||
* New type `AudioMediaGroupContent : MediaGroupContent`
|
||||
* `AudioContent` now implements `AudioMediaGroupContent` instead of `MediaContent` and `CaptionedInput`
|
||||
* New type `DocumentMediaGroupContent : MediaGroupContent`
|
||||
* `DocumentContent` now implements `DocumentMediaGroupContent` instead of `MediaContent` and `CaptionedInput`
|
||||
* New type `AudioMediaGroupMemberInputMedia : MediaGroupMemberInputMedia`
|
||||
* `InputMediaAudio` now implements `AudioMediaGroupMemberInputMedia`
|
||||
* New type `DocumentMediaGroupMemberInputMedia : MediaGroupMemberInputMedia`
|
||||
* `InputMediaDocument` now implements `DocumentMediaGroupMemberInputMedia`
|
||||
* New extension `AudioFile#toInputMediaAudio`
|
||||
* `AudioContent` now implements `MediaGroupContent`
|
||||
* New extension `DocumentFile#toInputMediaDocument`
|
||||
* `DocumentContent` now implements `MediaGroupContent`
|
||||
* New dice type `SlotMachineDiceAnimationType`
|
||||
* `InputMediaAudio` now implements `MediaGroupMemberInputMedia`
|
||||
* New extension `AudioFile#toInputMediaAudio`
|
||||
* `AudioContent` now implements `MediaGroupContent`
|
||||
* `InputMediaDocument` now implements `MediaGroupMemberInputMedia`
|
||||
* New extension `DocumentFile#toInputMediaDocument`
|
||||
* `DocumentContent` now implements `MediaGroupContent`
|
||||
* New extension `TelegramMediaFile#asDocumentFile`
|
||||
* New extension `VideoFile#toInputMediaVideo`
|
||||
* `API`:
|
||||
* New extensions for media groups:
|
||||
* `TelegramBot#sendPlaylist`
|
||||
* `TelegramBot#replyWithPlaylist`
|
||||
* `TelegramBot#sendDocumentsGroup`
|
||||
* `TelegramBot#replyWithDocumentsGroup`
|
||||
* `TelegramBot#sendVisualMediaGroup`
|
||||
* `TelegramBot#replyWithVisualMediaGroup`
|
||||
|
||||
## 0.29.2
|
||||
|
||||
|
@ -23,7 +23,8 @@ data class DocumentFile(
|
||||
override val fileName: String? = null
|
||||
) : TelegramMediaFile, MimedMediaFile, ThumbedMediaFile, CustomNamedMediaFile
|
||||
|
||||
inline fun <reified T : TelegramMediaFile> T.asDocumentFile() = DocumentFile(
|
||||
@Suppress("NOTHING_TO_INLINE")
|
||||
inline fun TelegramMediaFile.asDocumentFile() = DocumentFile(
|
||||
fileId,
|
||||
fileUniqueId,
|
||||
fileSize,
|
||||
|
@ -2,9 +2,13 @@ package dev.inmo.tgbotapi.types.files
|
||||
|
||||
import dev.inmo.tgbotapi.requests.abstracts.FileId
|
||||
import dev.inmo.tgbotapi.types.FileUniqueId
|
||||
import dev.inmo.tgbotapi.types.InputMedia.InputMediaVideo
|
||||
import dev.inmo.tgbotapi.types.ParseMode.HTMLParseMode
|
||||
import dev.inmo.tgbotapi.types.ParseMode.ParseMode
|
||||
import dev.inmo.tgbotapi.types.fileUniqueIdField
|
||||
import dev.inmo.tgbotapi.types.files.abstracts.*
|
||||
import dev.inmo.tgbotapi.utils.MimeType
|
||||
import dev.inmo.tgbotapi.utils.toHtmlCaptions
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
@ -23,3 +27,17 @@ data class VideoFile(
|
||||
@SerialName(fileSizeField)
|
||||
override val fileSize: Long? = null
|
||||
) : TelegramMediaFile, MimedMediaFile, ThumbedMediaFile, PlayableMediaFile, SizedMediaFile
|
||||
|
||||
@Suppress("NOTHING_TO_INLINE")
|
||||
inline fun VideoFile.toInputMediaVideo(
|
||||
caption: String? = null,
|
||||
parseMode: ParseMode? = null
|
||||
) = InputMediaVideo(
|
||||
fileId,
|
||||
caption,
|
||||
parseMode,
|
||||
width,
|
||||
height,
|
||||
duration,
|
||||
thumb ?.fileId
|
||||
)
|
||||
|
@ -39,18 +39,10 @@ data class AudioContent(
|
||||
replyMarkup
|
||||
)
|
||||
|
||||
override fun toMediaGroupMemberInputMedia(): InputMediaAudio = media.toInputMediaAudio(
|
||||
override fun toMediaGroupMemberInputMedia(): InputMediaAudio = asInputMedia()
|
||||
|
||||
override fun asInputMedia(): InputMediaAudio = media.toInputMediaAudio(
|
||||
toHtmlCaptions().firstOrNull(),
|
||||
HTMLParseMode
|
||||
)
|
||||
|
||||
override fun asInputMedia(): InputMediaAudio = InputMediaAudio(
|
||||
media.fileId,
|
||||
toMarkdownV2Captions().firstOrNull(),
|
||||
MarkdownV2,
|
||||
media.duration,
|
||||
media.performer,
|
||||
media.title,
|
||||
media.thumb ?.fileId
|
||||
)
|
||||
}
|
||||
|
@ -38,20 +38,16 @@ data class DocumentContent(
|
||||
replyMarkup
|
||||
)
|
||||
|
||||
override fun toMediaGroupMemberInputMedia(): InputMediaDocument = media.toInputMediaDocument(
|
||||
override fun toMediaGroupMemberInputMedia(): InputMediaDocument = asInputMedia()
|
||||
|
||||
override fun asInputMedia(): InputMediaDocument = media.toInputMediaDocument(
|
||||
toHtmlCaptions().firstOrNull(),
|
||||
HTMLParseMode
|
||||
)
|
||||
|
||||
override fun asInputMedia(): InputMediaDocument = InputMediaDocument(
|
||||
media.fileId,
|
||||
toMarkdownV2Captions().firstOrNull(),
|
||||
MarkdownV2,
|
||||
media.thumb ?.fileId
|
||||
)
|
||||
}
|
||||
|
||||
inline fun <reified T : MediaContent> T.asDocumentContent() = when (this) {
|
||||
@Suppress("NOTHING_TO_INLINE")
|
||||
inline fun MediaContent.asDocumentContent() = when (this) {
|
||||
is CaptionedInput -> DocumentContent(
|
||||
media.asDocumentFile(),
|
||||
caption,
|
||||
|
@ -4,8 +4,7 @@ import dev.inmo.tgbotapi.CommonAbstracts.TextPart
|
||||
import dev.inmo.tgbotapi.requests.abstracts.Request
|
||||
import dev.inmo.tgbotapi.requests.send.media.SendPhoto
|
||||
import dev.inmo.tgbotapi.types.ChatIdentifier
|
||||
import dev.inmo.tgbotapi.types.InputMedia.InputMediaPhoto
|
||||
import dev.inmo.tgbotapi.types.InputMedia.MediaGroupMemberInputMedia
|
||||
import dev.inmo.tgbotapi.types.InputMedia.*
|
||||
import dev.inmo.tgbotapi.types.MessageIdentifier
|
||||
import dev.inmo.tgbotapi.types.ParseMode.HTMLParseMode
|
||||
import dev.inmo.tgbotapi.types.ParseMode.MarkdownV2
|
||||
@ -38,15 +37,10 @@ data class PhotoContent(
|
||||
replyMarkup
|
||||
)
|
||||
|
||||
override fun toMediaGroupMemberInputMedia(): InputMediaPhoto = InputMediaPhoto(
|
||||
media.fileId,
|
||||
override fun toMediaGroupMemberInputMedia(): InputMediaPhoto = asInputMedia()
|
||||
|
||||
override fun asInputMedia(): InputMediaPhoto = media.toInputMediaPhoto(
|
||||
toHtmlCaptions().firstOrNull(),
|
||||
HTMLParseMode
|
||||
)
|
||||
|
||||
override fun asInputMedia(): InputMediaPhoto = InputMediaPhoto(
|
||||
media.fileId,
|
||||
toMarkdownV2Captions().firstOrNull(),
|
||||
MarkdownV2
|
||||
)
|
||||
}
|
||||
|
@ -11,6 +11,7 @@ import dev.inmo.tgbotapi.types.ParseMode.HTMLParseMode
|
||||
import dev.inmo.tgbotapi.types.ParseMode.MarkdownV2
|
||||
import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup
|
||||
import dev.inmo.tgbotapi.types.files.VideoFile
|
||||
import dev.inmo.tgbotapi.types.files.toInputMediaVideo
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.content.abstracts.MediaGroupContent
|
||||
import dev.inmo.tgbotapi.types.message.content.abstracts.VisualMediaGroupContent
|
||||
@ -42,23 +43,10 @@ data class VideoContent(
|
||||
replyMarkup
|
||||
)
|
||||
|
||||
override fun toMediaGroupMemberInputMedia(): InputMediaVideo = InputMediaVideo(
|
||||
media.fileId,
|
||||
toHtmlCaptions().firstOrNull(),
|
||||
HTMLParseMode,
|
||||
media.width,
|
||||
media.height,
|
||||
media.duration,
|
||||
media.thumb ?.fileId
|
||||
)
|
||||
override fun toMediaGroupMemberInputMedia(): InputMediaVideo = asInputMedia()
|
||||
|
||||
override fun asInputMedia(): InputMediaVideo = InputMediaVideo(
|
||||
media.fileId,
|
||||
toMarkdownV2Captions().firstOrNull(),
|
||||
MarkdownV2,
|
||||
media.width,
|
||||
media.height,
|
||||
media.duration,
|
||||
media.thumb ?.fileId
|
||||
override fun asInputMedia(): InputMediaVideo = media.toInputMediaVideo(
|
||||
toHtmlCaptions().firstOrNull(),
|
||||
HTMLParseMode
|
||||
)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user