From a9725eb439ab3ead3d965a31b6985756b65544d6 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Fri, 10 Mar 2023 11:16:13 +0600 Subject: [PATCH] add support of setStickerSetTitle --- .../api/stickers/SetStickerSetTitle.kt | 22 +++++++++++++++++++ .../requests/stickers/SetStickerSetThumb.kt | 3 ++- .../requests/stickers/SetStickerSetTitle.kt | 20 +++++++++++++++++ .../abstracts/OwnerStickerSetAction.kt | 11 ++++++++++ .../abstracts/StandardStickerSetAction.kt | 4 ++-- .../stickers/abstracts/StickerSetAction.kt | 6 ++--- 6 files changed, 60 insertions(+), 6 deletions(-) create mode 100644 tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/stickers/SetStickerSetTitle.kt create mode 100644 tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/stickers/SetStickerSetTitle.kt create mode 100644 tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/stickers/abstracts/OwnerStickerSetAction.kt diff --git a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/stickers/SetStickerSetTitle.kt b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/stickers/SetStickerSetTitle.kt new file mode 100644 index 0000000000..dea01e2f61 --- /dev/null +++ b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/stickers/SetStickerSetTitle.kt @@ -0,0 +1,22 @@ +package dev.inmo.tgbotapi.extensions.api.stickers + +import dev.inmo.tgbotapi.bot.TelegramBot +import dev.inmo.tgbotapi.requests.stickers.SetStickerSetTitle +import dev.inmo.tgbotapi.types.StickerSetName +import dev.inmo.tgbotapi.types.files.Sticker +import dev.inmo.tgbotapi.types.stickers.StickerSet + +suspend fun TelegramBot.setStickerSetTitle( + name: StickerSetName, + title: String +) = execute(SetStickerSetTitle(name, title)) + +suspend fun TelegramBot.setStickerSetTitle( + sticker: Sticker, + title: String +) = setStickerSetTitle(sticker.stickerSetName ?: error("Unable to take name of sticker set from sticker $sticker"), title) + +suspend fun TelegramBot.setStickerSetTitle( + stickerSet: StickerSet, + title: String +) = setStickerSetTitle(stickerSet.name, title) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/stickers/SetStickerSetThumb.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/stickers/SetStickerSetThumb.kt index 7f5d960383..a35f2a2b87 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/stickers/SetStickerSetThumb.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/stickers/SetStickerSetThumb.kt @@ -2,6 +2,7 @@ package dev.inmo.tgbotapi.requests.stickers import dev.inmo.tgbotapi.requests.abstracts.* import dev.inmo.tgbotapi.requests.common.CommonMultipartFileRequest +import dev.inmo.tgbotapi.requests.stickers.abstracts.OwnerStickerSetAction import dev.inmo.tgbotapi.requests.stickers.abstracts.StickerSetAction import dev.inmo.tgbotapi.types.* import kotlinx.serialization.* @@ -25,7 +26,7 @@ data class SetStickerSetThumb ( override val name: StickerSetName, @SerialName(thumbField) val thumb: FileId? = null -) : StickerSetAction { +) : OwnerStickerSetAction { override val requestSerializer: SerializationStrategy<*> get() = serializer() diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/stickers/SetStickerSetTitle.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/stickers/SetStickerSetTitle.kt new file mode 100644 index 0000000000..ab042b8122 --- /dev/null +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/stickers/SetStickerSetTitle.kt @@ -0,0 +1,20 @@ +package dev.inmo.tgbotapi.requests.stickers + +import dev.inmo.tgbotapi.requests.abstracts.* +import dev.inmo.tgbotapi.requests.common.CommonMultipartFileRequest +import dev.inmo.tgbotapi.requests.stickers.abstracts.StickerSetAction +import dev.inmo.tgbotapi.types.* +import kotlinx.serialization.* + +@Serializable +data class SetStickerSetTitle ( + @SerialName(nameField) + override val name: StickerSetName, + @SerialName(titleField) + val title: String +) : StickerSetAction { + override val requestSerializer: SerializationStrategy<*> + get() = serializer() + + override fun method(): String = "setStickerSetTitle" +} diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/stickers/abstracts/OwnerStickerSetAction.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/stickers/abstracts/OwnerStickerSetAction.kt new file mode 100644 index 0000000000..2984e740f9 --- /dev/null +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/stickers/abstracts/OwnerStickerSetAction.kt @@ -0,0 +1,11 @@ +package dev.inmo.tgbotapi.requests.stickers.abstracts + +import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest +import dev.inmo.tgbotapi.types.StickerSetName +import dev.inmo.tgbotapi.types.UserId +import kotlinx.serialization.KSerializer +import kotlinx.serialization.builtins.serializer + +interface OwnerStickerSetAction : StickerSetAction { + val userId: UserId +} diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/stickers/abstracts/StandardStickerSetAction.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/stickers/abstracts/StandardStickerSetAction.kt index c829ffc1c3..ea7368cba7 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/stickers/abstracts/StandardStickerSetAction.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/stickers/abstracts/StandardStickerSetAction.kt @@ -2,7 +2,7 @@ package dev.inmo.tgbotapi.requests.stickers.abstracts import dev.inmo.tgbotapi.types.stickers.MaskPosition -interface StandardStickerSetAction : StickerSetAction { +interface StandardStickerSetAction : OwnerStickerSetAction { val emojis: String // must be more than one val maskPosition: MaskPosition? -} \ No newline at end of file +} diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/stickers/abstracts/StickerSetAction.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/stickers/abstracts/StickerSetAction.kt index 5f2ebb57ae..f2a4013521 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/stickers/abstracts/StickerSetAction.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/stickers/abstracts/StickerSetAction.kt @@ -1,14 +1,14 @@ package dev.inmo.tgbotapi.requests.stickers.abstracts import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest +import dev.inmo.tgbotapi.types.StickerSetName import dev.inmo.tgbotapi.types.UserId import kotlinx.serialization.KSerializer import kotlinx.serialization.builtins.serializer interface StickerSetAction : SimpleRequest { - val userId: UserId - val name: String + val name: StickerSetName override val resultDeserializer: KSerializer get() = Boolean.serializer() -} \ No newline at end of file +}