mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI.git
synced 2024-11-22 16:23:48 +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:
|
* Version updates:
|
||||||
* `Serialization`: `1.0.0` -> `1.0.1`
|
* `Serialization`: `1.0.0` -> `1.0.1`
|
||||||
* `Core`:
|
* `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`
|
* New dice type `SlotMachineDiceAnimationType`
|
||||||
* `InputMediaAudio` now implements `MediaGroupMemberInputMedia`
|
* New extension `TelegramMediaFile#asDocumentFile`
|
||||||
* New extension `AudioFile#toInputMediaAudio`
|
* New extension `VideoFile#toInputMediaVideo`
|
||||||
* `AudioContent` now implements `MediaGroupContent`
|
* `API`:
|
||||||
* `InputMediaDocument` now implements `MediaGroupMemberInputMedia`
|
* New extensions for media groups:
|
||||||
* New extension `DocumentFile#toInputMediaDocument`
|
* `TelegramBot#sendPlaylist`
|
||||||
* `DocumentContent` now implements `MediaGroupContent`
|
* `TelegramBot#replyWithPlaylist`
|
||||||
|
* `TelegramBot#sendDocumentsGroup`
|
||||||
|
* `TelegramBot#replyWithDocumentsGroup`
|
||||||
|
* `TelegramBot#sendVisualMediaGroup`
|
||||||
|
* `TelegramBot#replyWithVisualMediaGroup`
|
||||||
|
|
||||||
## 0.29.2
|
## 0.29.2
|
||||||
|
|
||||||
|
@ -23,7 +23,8 @@ data class DocumentFile(
|
|||||||
override val fileName: String? = null
|
override val fileName: String? = null
|
||||||
) : TelegramMediaFile, MimedMediaFile, ThumbedMediaFile, CustomNamedMediaFile
|
) : TelegramMediaFile, MimedMediaFile, ThumbedMediaFile, CustomNamedMediaFile
|
||||||
|
|
||||||
inline fun <reified T : TelegramMediaFile> T.asDocumentFile() = DocumentFile(
|
@Suppress("NOTHING_TO_INLINE")
|
||||||
|
inline fun TelegramMediaFile.asDocumentFile() = DocumentFile(
|
||||||
fileId,
|
fileId,
|
||||||
fileUniqueId,
|
fileUniqueId,
|
||||||
fileSize,
|
fileSize,
|
||||||
|
@ -2,9 +2,13 @@ package dev.inmo.tgbotapi.types.files
|
|||||||
|
|
||||||
import dev.inmo.tgbotapi.requests.abstracts.FileId
|
import dev.inmo.tgbotapi.requests.abstracts.FileId
|
||||||
import dev.inmo.tgbotapi.types.FileUniqueId
|
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.fileUniqueIdField
|
||||||
import dev.inmo.tgbotapi.types.files.abstracts.*
|
import dev.inmo.tgbotapi.types.files.abstracts.*
|
||||||
import dev.inmo.tgbotapi.utils.MimeType
|
import dev.inmo.tgbotapi.utils.MimeType
|
||||||
|
import dev.inmo.tgbotapi.utils.toHtmlCaptions
|
||||||
import kotlinx.serialization.SerialName
|
import kotlinx.serialization.SerialName
|
||||||
import kotlinx.serialization.Serializable
|
import kotlinx.serialization.Serializable
|
||||||
|
|
||||||
@ -23,3 +27,17 @@ data class VideoFile(
|
|||||||
@SerialName(fileSizeField)
|
@SerialName(fileSizeField)
|
||||||
override val fileSize: Long? = null
|
override val fileSize: Long? = null
|
||||||
) : TelegramMediaFile, MimedMediaFile, ThumbedMediaFile, PlayableMediaFile, SizedMediaFile
|
) : 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
|
replyMarkup
|
||||||
)
|
)
|
||||||
|
|
||||||
override fun toMediaGroupMemberInputMedia(): InputMediaAudio = media.toInputMediaAudio(
|
override fun toMediaGroupMemberInputMedia(): InputMediaAudio = asInputMedia()
|
||||||
|
|
||||||
|
override fun asInputMedia(): InputMediaAudio = media.toInputMediaAudio(
|
||||||
toHtmlCaptions().firstOrNull(),
|
toHtmlCaptions().firstOrNull(),
|
||||||
HTMLParseMode
|
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
|
replyMarkup
|
||||||
)
|
)
|
||||||
|
|
||||||
override fun toMediaGroupMemberInputMedia(): InputMediaDocument = media.toInputMediaDocument(
|
override fun toMediaGroupMemberInputMedia(): InputMediaDocument = asInputMedia()
|
||||||
|
|
||||||
|
override fun asInputMedia(): InputMediaDocument = media.toInputMediaDocument(
|
||||||
toHtmlCaptions().firstOrNull(),
|
toHtmlCaptions().firstOrNull(),
|
||||||
HTMLParseMode
|
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(
|
is CaptionedInput -> DocumentContent(
|
||||||
media.asDocumentFile(),
|
media.asDocumentFile(),
|
||||||
caption,
|
caption,
|
||||||
|
@ -4,8 +4,7 @@ import dev.inmo.tgbotapi.CommonAbstracts.TextPart
|
|||||||
import dev.inmo.tgbotapi.requests.abstracts.Request
|
import dev.inmo.tgbotapi.requests.abstracts.Request
|
||||||
import dev.inmo.tgbotapi.requests.send.media.SendPhoto
|
import dev.inmo.tgbotapi.requests.send.media.SendPhoto
|
||||||
import dev.inmo.tgbotapi.types.ChatIdentifier
|
import dev.inmo.tgbotapi.types.ChatIdentifier
|
||||||
import dev.inmo.tgbotapi.types.InputMedia.InputMediaPhoto
|
import dev.inmo.tgbotapi.types.InputMedia.*
|
||||||
import dev.inmo.tgbotapi.types.InputMedia.MediaGroupMemberInputMedia
|
|
||||||
import dev.inmo.tgbotapi.types.MessageIdentifier
|
import dev.inmo.tgbotapi.types.MessageIdentifier
|
||||||
import dev.inmo.tgbotapi.types.ParseMode.HTMLParseMode
|
import dev.inmo.tgbotapi.types.ParseMode.HTMLParseMode
|
||||||
import dev.inmo.tgbotapi.types.ParseMode.MarkdownV2
|
import dev.inmo.tgbotapi.types.ParseMode.MarkdownV2
|
||||||
@ -38,15 +37,10 @@ data class PhotoContent(
|
|||||||
replyMarkup
|
replyMarkup
|
||||||
)
|
)
|
||||||
|
|
||||||
override fun toMediaGroupMemberInputMedia(): InputMediaPhoto = InputMediaPhoto(
|
override fun toMediaGroupMemberInputMedia(): InputMediaPhoto = asInputMedia()
|
||||||
media.fileId,
|
|
||||||
|
override fun asInputMedia(): InputMediaPhoto = media.toInputMediaPhoto(
|
||||||
toHtmlCaptions().firstOrNull(),
|
toHtmlCaptions().firstOrNull(),
|
||||||
HTMLParseMode
|
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.ParseMode.MarkdownV2
|
||||||
import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup
|
import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup
|
||||||
import dev.inmo.tgbotapi.types.files.VideoFile
|
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.abstracts.ContentMessage
|
||||||
import dev.inmo.tgbotapi.types.message.content.abstracts.MediaGroupContent
|
import dev.inmo.tgbotapi.types.message.content.abstracts.MediaGroupContent
|
||||||
import dev.inmo.tgbotapi.types.message.content.abstracts.VisualMediaGroupContent
|
import dev.inmo.tgbotapi.types.message.content.abstracts.VisualMediaGroupContent
|
||||||
@ -42,23 +43,10 @@ data class VideoContent(
|
|||||||
replyMarkup
|
replyMarkup
|
||||||
)
|
)
|
||||||
|
|
||||||
override fun toMediaGroupMemberInputMedia(): InputMediaVideo = InputMediaVideo(
|
override fun toMediaGroupMemberInputMedia(): InputMediaVideo = asInputMedia()
|
||||||
media.fileId,
|
|
||||||
toHtmlCaptions().firstOrNull(),
|
|
||||||
HTMLParseMode,
|
|
||||||
media.width,
|
|
||||||
media.height,
|
|
||||||
media.duration,
|
|
||||||
media.thumb ?.fileId
|
|
||||||
)
|
|
||||||
|
|
||||||
override fun asInputMedia(): InputMediaVideo = InputMediaVideo(
|
override fun asInputMedia(): InputMediaVideo = media.toInputMediaVideo(
|
||||||
media.fileId,
|
toHtmlCaptions().firstOrNull(),
|
||||||
toMarkdownV2Captions().firstOrNull(),
|
HTMLParseMode
|
||||||
MarkdownV2,
|
|
||||||
media.width,
|
|
||||||
media.height,
|
|
||||||
media.duration,
|
|
||||||
media.thumb ?.fileId
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user