1
0
mirror of https://github.com/InsanusMokrassar/TelegramBotAPI.git synced 2024-11-22 16:23:48 +00:00

add support of setStickerSetTitle

This commit is contained in:
InsanusMokrassar 2023-03-10 11:16:13 +06:00
parent a0aadef31b
commit a9725eb439
6 changed files with 60 additions and 6 deletions

View File

@ -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)

View File

@ -2,6 +2,7 @@ package dev.inmo.tgbotapi.requests.stickers
import dev.inmo.tgbotapi.requests.abstracts.* import dev.inmo.tgbotapi.requests.abstracts.*
import dev.inmo.tgbotapi.requests.common.CommonMultipartFileRequest 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.requests.stickers.abstracts.StickerSetAction
import dev.inmo.tgbotapi.types.* import dev.inmo.tgbotapi.types.*
import kotlinx.serialization.* import kotlinx.serialization.*
@ -25,7 +26,7 @@ data class SetStickerSetThumb (
override val name: StickerSetName, override val name: StickerSetName,
@SerialName(thumbField) @SerialName(thumbField)
val thumb: FileId? = null val thumb: FileId? = null
) : StickerSetAction { ) : OwnerStickerSetAction {
override val requestSerializer: SerializationStrategy<*> override val requestSerializer: SerializationStrategy<*>
get() = serializer() get() = serializer()

View File

@ -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"
}

View File

@ -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
}

View File

@ -2,7 +2,7 @@ package dev.inmo.tgbotapi.requests.stickers.abstracts
import dev.inmo.tgbotapi.types.stickers.MaskPosition import dev.inmo.tgbotapi.types.stickers.MaskPosition
interface StandardStickerSetAction : StickerSetAction { interface StandardStickerSetAction : OwnerStickerSetAction {
val emojis: String // must be more than one val emojis: String // must be more than one
val maskPosition: MaskPosition? val maskPosition: MaskPosition?
} }

View File

@ -1,13 +1,13 @@
package dev.inmo.tgbotapi.requests.stickers.abstracts package dev.inmo.tgbotapi.requests.stickers.abstracts
import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest
import dev.inmo.tgbotapi.types.StickerSetName
import dev.inmo.tgbotapi.types.UserId import dev.inmo.tgbotapi.types.UserId
import kotlinx.serialization.KSerializer import kotlinx.serialization.KSerializer
import kotlinx.serialization.builtins.serializer import kotlinx.serialization.builtins.serializer
interface StickerSetAction : SimpleRequest<Boolean> { interface StickerSetAction : SimpleRequest<Boolean> {
val userId: UserId val name: StickerSetName
val name: String
override val resultDeserializer: KSerializer<Boolean> override val resultDeserializer: KSerializer<Boolean>
get() = Boolean.serializer() get() = Boolean.serializer()