1
0
mirror of https://github.com/InsanusMokrassar/TelegramBotAPI.git synced 2025-09-16 13:49:26 +00:00

StickerSetName now is value class

This commit is contained in:
2024-03-16 23:07:55 +06:00
parent d963cdae35
commit 3997af171e
15 changed files with 308 additions and 201 deletions

View File

@@ -1,6 +1,7 @@
package dev.inmo.tgbotapi.requests.get
import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest
import dev.inmo.tgbotapi.types.StickerSetName
import dev.inmo.tgbotapi.types.nameField
import dev.inmo.tgbotapi.types.stickerSetNameField
import dev.inmo.tgbotapi.types.stickers.StickerSet
@@ -9,7 +10,7 @@ import kotlinx.serialization.*
@Serializable
data class GetStickerSet(
@SerialName(nameField)
val name: String
val name: StickerSetName
): SimpleRequest<StickerSet> {
override fun method(): String = "getStickerSet"
override val resultDeserializer: DeserializationStrategy<StickerSet>

View File

@@ -8,7 +8,7 @@ import kotlinx.serialization.*
fun AddStickerToSet(
userId: UserId,
stickerSetName: String,
stickerSetName: StickerSetName,
inputSticker: InputSticker
): Request<Boolean> {
val data = AddStickerToSetData(userId, stickerSetName, inputSticker)
@@ -21,12 +21,22 @@ fun AddStickerToSet(
}
}
fun AddStickerToSet(
userId: UserId,
stickerSetName: String,
inputSticker: InputSticker
): Request<Boolean> = AddStickerToSet(
userId = userId,
stickerSetName = StickerSetName(stickerSetName),
inputSticker = inputSticker
)
@Serializable
data class AddStickerToSetData internal constructor(
@SerialName(userIdField)
override val userId: UserId,
@SerialName(nameField)
override val name: String,
override val name: StickerSetName,
@SerialName(stickerField)
override val inputSticker: InputSticker
) : StandardStickerSetAction {

View File

@@ -19,7 +19,7 @@ import kotlinx.serialization.encoding.Encoder
*/
fun CreateNewStickerSet(
userId: UserId,
name: String,
name: StickerSetName,
title: String,
stickersFormat: StickerFormat,
stickers: List<InputSticker>,
@@ -53,6 +53,28 @@ fun CreateNewStickerSet(
}
}
/**
* Will create one of [CreateNewStickerSet] types based on the first element of [stickers]
*
* @param needsRepainting Will be used only if you are creating custom emojis sticker pack (by passing [stickers] with
* type [InputSticker.WithKeywords.CustomEmoji])
*/
fun CreateNewStickerSet(
userId: UserId,
name: String,
title: String,
stickersFormat: StickerFormat,
stickers: List<InputSticker>,
needsRepainting: Boolean? = null
) = CreateNewStickerSet(
userId = userId,
name = StickerSetName(name),
title = title,
stickersFormat = stickersFormat,
stickers = stickers,
needsRepainting = needsRepainting
)
@Serializable(CreateNewStickerSetSerializer::class)
sealed interface CreateNewStickerSet : CreateStickerSetAction {
val stickerType: StickerType
@@ -69,7 +91,7 @@ sealed interface CreateNewStickerSet : CreateStickerSetAction {
@SerialName(userIdField)
override val userId: UserId,
@SerialName(nameField)
override val name: String,
override val name: StickerSetName,
@SerialName(titleField)
override val title: String,
@SerialName(stickerFormatField)
@@ -86,7 +108,7 @@ sealed interface CreateNewStickerSet : CreateStickerSetAction {
@SerialName(userIdField)
override val userId: UserId,
@SerialName(nameField)
override val name: String,
override val name: StickerSetName,
@SerialName(titleField)
override val title: String,
@SerialName(stickerFormatField)
@@ -103,7 +125,7 @@ sealed interface CreateNewStickerSet : CreateStickerSetAction {
@SerialName(userIdField)
override val userId: UserId,
@SerialName(nameField)
override val name: String,
override val name: StickerSetName,
@SerialName(titleField)
override val title: String,
@SerialName(stickerFormatField)
@@ -123,7 +145,7 @@ sealed interface CreateNewStickerSet : CreateStickerSetAction {
@SerialName(userIdField)
override val userId: UserId,
@SerialName(nameField)
override val name: String,
override val name: StickerSetName,
@SerialName(titleField)
override val title: String,
@SerialName(stickerFormatField)

View File

@@ -8,7 +8,7 @@ import kotlinx.serialization.*
fun SetStickerSetThumbnail(
userId: UserId,
stickerSetName: String,
stickerSetName: StickerSetName,
thumbnail: MultipartFile
): Request<Boolean> {
return CommonMultipartFileRequest(
@@ -17,6 +17,16 @@ fun SetStickerSetThumbnail(
)
}
fun SetStickerSetThumbnail(
userId: UserId,
stickerSetName: String,
thumbnail: MultipartFile
): Request<Boolean> = SetStickerSetThumbnail(
userId = userId,
stickerSetName = StickerSetName(stickerSetName),
thumbnail = thumbnail
)
@Serializable
data class SetStickerSetThumbnail (
@SerialName(userIdField)

View File

@@ -15,7 +15,6 @@ typealias AuthorSignature = ForwardSignature
typealias PaymentQueryIdentifier = String
typealias InvoicePayload = String
typealias StartParameter = String
typealias StickerSetName = String
typealias DiceResult = Int
typealias FoursquareId = String
typealias FoursquareType = String

View File

@@ -0,0 +1,14 @@
package dev.inmo.tgbotapi.types
import kotlinx.serialization.Serializable
import kotlin.jvm.JvmInline
@Serializable
@JvmInline
value class StickerSetName(
val string: String
) {
override fun toString(): String {
return string
}
}

View File

@@ -11,7 +11,7 @@ import kotlinx.serialization.json.JsonElement
@Serializable
data class SurrogateStickerSet(
val name: String,
val name: StickerSetName,
val title: String,
val sticker_type: StickerType,
val is_animated: Boolean? = false,
@@ -22,7 +22,7 @@ data class SurrogateStickerSet(
@Serializable(StickerSet.Serializer::class)
sealed interface StickerSet {
val name: String
val name: StickerSetName
val title: String
val stickerType: StickerType
val stickerFormat: StickerFormat
@@ -146,7 +146,7 @@ sealed interface CustomEmojiStickerSet : StickerSet
@Serializable
data class RegularSimpleStickerSet(
@SerialName(nameField)
override val name: String,
override val name: StickerSetName,
@SerialName(titleField)
override val title: String,
@SerialName(stickersField)
@@ -165,7 +165,7 @@ data class RegularSimpleStickerSet(
@Serializable
data class RegularAnimatedStickerSet(
@SerialName(nameField)
override val name: String,
override val name: StickerSetName,
@SerialName(titleField)
override val title: String,
@SerialName(stickersField)
@@ -181,7 +181,7 @@ data class RegularAnimatedStickerSet(
@Serializable
data class RegularVideoStickerSet(
@SerialName(nameField)
override val name: String,
override val name: StickerSetName,
@SerialName(titleField)
override val title: String,
@SerialName(stickersField)
@@ -197,7 +197,7 @@ data class RegularVideoStickerSet(
@Serializable
data class MaskSimpleStickerSet(
@SerialName(nameField)
override val name: String,
override val name: StickerSetName,
@SerialName(titleField)
override val title: String,
@SerialName(stickersField)
@@ -217,7 +217,7 @@ data class MaskSimpleStickerSet(
@Serializable
data class MaskAnimatedStickerSet(
@SerialName(nameField)
override val name: String,
override val name: StickerSetName,
@SerialName(titleField)
override val title: String,
@SerialName(stickersField)
@@ -233,7 +233,7 @@ data class MaskAnimatedStickerSet(
@Serializable
data class MaskVideoStickerSet(
@SerialName(nameField)
override val name: String,
override val name: StickerSetName,
@SerialName(titleField)
override val title: String,
@SerialName(stickersField)
@@ -249,7 +249,7 @@ data class MaskVideoStickerSet(
@Serializable
data class CustomEmojiSimpleStickerSet(
@SerialName(nameField)
override val name: String,
override val name: StickerSetName,
@SerialName(titleField)
override val title: String,
@SerialName(stickersField)
@@ -269,7 +269,7 @@ data class CustomEmojiSimpleStickerSet(
@Serializable
data class CustomEmojiAnimatedStickerSet(
@SerialName(nameField)
override val name: String,
override val name: StickerSetName,
@SerialName(titleField)
override val title: String,
@SerialName(stickersField)
@@ -285,7 +285,7 @@ data class CustomEmojiAnimatedStickerSet(
@Serializable
data class CustomEmojiVideoStickerSet(
@SerialName(nameField)
override val name: String,
override val name: StickerSetName,
@SerialName(titleField)
override val title: String,
@SerialName(stickersField)
@@ -301,7 +301,7 @@ data class CustomEmojiVideoStickerSet(
@Serializable
data class UnknownStickerSet(
@SerialName(nameField)
override val name: String,
override val name: StickerSetName,
@SerialName(titleField)
override val title: String,
@SerialName(stickersField)