From 5044075adf87cdb0242241e727fef9574df5ebeb Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Sat, 13 Aug 2022 13:01:09 +0600 Subject: [PATCH] add support of sticker_type for new sticker sets and rework create new sticker set requests --- .../CreateNewMaskAnimatedStickerSet.kt | 54 +++++++++ .../api/stickers/CreateNewMaskStickerSet.kt | 54 +++++++++ .../stickers/CreateNewMaskVideoStickerSet.kt | 54 +++++++++ .../CreateNewRegularAnimatedStickerSet.kt | 50 +++++++++ .../stickers/CreateNewRegularStickerSet.kt | 50 +++++++++ .../CreateNewRegularVideoStickerSet.kt | 50 +++++++++ .../stickers/CreateNewAnimatedStickerSet.kt | 20 +--- .../stickers/CreateNewStaticStickerSet.kt | 30 +---- .../requests/stickers/CreateNewStickerSet.kt | 77 +++++++++++++ .../stickers/CreateNewVideoStickerSet.kt | 20 +--- .../NewCreateNewStickerSetFunctions.kt | 105 ++++++++++++++++++ .../OldCreateNewStickerSetFunctions.kt | 80 +++++++++++++ 12 files changed, 577 insertions(+), 67 deletions(-) create mode 100644 tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/stickers/CreateNewMaskAnimatedStickerSet.kt create mode 100644 tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/stickers/CreateNewMaskStickerSet.kt create mode 100644 tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/stickers/CreateNewMaskVideoStickerSet.kt create mode 100644 tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/stickers/CreateNewRegularAnimatedStickerSet.kt create mode 100644 tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/stickers/CreateNewRegularStickerSet.kt create mode 100644 tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/stickers/CreateNewRegularVideoStickerSet.kt create mode 100644 tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/stickers/CreateNewStickerSet.kt create mode 100644 tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/stickers/NewCreateNewStickerSetFunctions.kt create mode 100644 tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/stickers/OldCreateNewStickerSetFunctions.kt diff --git a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/stickers/CreateNewMaskAnimatedStickerSet.kt b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/stickers/CreateNewMaskAnimatedStickerSet.kt new file mode 100644 index 0000000000..23dea7d300 --- /dev/null +++ b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/stickers/CreateNewMaskAnimatedStickerSet.kt @@ -0,0 +1,54 @@ +package dev.inmo.tgbotapi.extensions.api.stickers + +import dev.inmo.tgbotapi.bot.TelegramBot +import dev.inmo.tgbotapi.requests.abstracts.FileId +import dev.inmo.tgbotapi.requests.abstracts.MultipartFile +import dev.inmo.tgbotapi.requests.stickers.* +import dev.inmo.tgbotapi.types.chat.CommonUser +import dev.inmo.tgbotapi.types.UserId +import dev.inmo.tgbotapi.types.stickers.MaskPosition + +suspend fun TelegramBot.createNewMaskAnimatedStickerSet( + userId: UserId, + name: String, + title: String, + sticker: FileId, + emojis: String, + maskPosition: MaskPosition +) = execute( + CreateNewMaskAnimatedStickerSet(userId, name, title, sticker, emojis, maskPosition) +) + +suspend fun TelegramBot.createNewMaskAnimatedStickerSet( + userId: UserId, + name: String, + title: String, + sticker: MultipartFile, + emojis: String, + maskPosition: MaskPosition +) = execute( + CreateNewMaskAnimatedStickerSet(userId, name, title, sticker, emojis, maskPosition) +) + + +suspend fun TelegramBot.createNewMaskAnimatedStickerSet( + user: CommonUser, + name: String, + title: String, + sticker: FileId, + emojis: String, + maskPosition: MaskPosition +) = createNewMaskAnimatedStickerSet( + user.id, name, title, sticker, emojis, maskPosition +) + +suspend fun TelegramBot.createNewMaskAnimatedStickerSet( + user: CommonUser, + name: String, + title: String, + sticker: MultipartFile, + emojis: String, + maskPosition: MaskPosition +) = createNewMaskAnimatedStickerSet( + user.id, name, title, sticker, emojis, maskPosition +) diff --git a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/stickers/CreateNewMaskStickerSet.kt b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/stickers/CreateNewMaskStickerSet.kt new file mode 100644 index 0000000000..743f19300f --- /dev/null +++ b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/stickers/CreateNewMaskStickerSet.kt @@ -0,0 +1,54 @@ +package dev.inmo.tgbotapi.extensions.api.stickers + +import dev.inmo.tgbotapi.bot.TelegramBot +import dev.inmo.tgbotapi.requests.abstracts.FileId +import dev.inmo.tgbotapi.requests.abstracts.MultipartFile +import dev.inmo.tgbotapi.requests.stickers.* +import dev.inmo.tgbotapi.types.chat.CommonUser +import dev.inmo.tgbotapi.types.UserId +import dev.inmo.tgbotapi.types.stickers.MaskPosition + +suspend fun TelegramBot.createNewMaskStickerSet( + userId: UserId, + name: String, + title: String, + sticker: FileId, + emojis: String, + maskPosition: MaskPosition +) = execute( + CreateNewMaskStickerSet(userId, name, title, sticker, emojis, maskPosition) +) + +suspend fun TelegramBot.createNewMaskStickerSet( + userId: UserId, + name: String, + title: String, + sticker: MultipartFile, + emojis: String, + maskPosition: MaskPosition +) = execute( + CreateNewMaskStickerSet(userId, name, title, sticker, emojis, maskPosition) +) + + +suspend fun TelegramBot.createNewMaskStickerSet( + user: CommonUser, + name: String, + title: String, + sticker: FileId, + emojis: String, + maskPosition: MaskPosition +) = createNewMaskStickerSet( + user.id, name, title, sticker, emojis, maskPosition +) + +suspend fun TelegramBot.createNewMaskStickerSet( + user: CommonUser, + name: String, + title: String, + sticker: MultipartFile, + emojis: String, + maskPosition: MaskPosition +) = createNewMaskStickerSet( + user.id, name, title, sticker, emojis, maskPosition +) diff --git a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/stickers/CreateNewMaskVideoStickerSet.kt b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/stickers/CreateNewMaskVideoStickerSet.kt new file mode 100644 index 0000000000..c519ec0565 --- /dev/null +++ b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/stickers/CreateNewMaskVideoStickerSet.kt @@ -0,0 +1,54 @@ +package dev.inmo.tgbotapi.extensions.api.stickers + +import dev.inmo.tgbotapi.bot.TelegramBot +import dev.inmo.tgbotapi.requests.abstracts.FileId +import dev.inmo.tgbotapi.requests.abstracts.MultipartFile +import dev.inmo.tgbotapi.requests.stickers.* +import dev.inmo.tgbotapi.types.chat.CommonUser +import dev.inmo.tgbotapi.types.UserId +import dev.inmo.tgbotapi.types.stickers.MaskPosition + +suspend fun TelegramBot.createNewMaskVideoStickerSet( + userId: UserId, + name: String, + title: String, + sticker: FileId, + emojis: String, + maskPosition: MaskPosition +) = execute( + CreateNewMaskVideoStickerSet(userId, name, title, sticker, emojis, maskPosition) +) + +suspend fun TelegramBot.createNewMaskVideoStickerSet( + userId: UserId, + name: String, + title: String, + sticker: MultipartFile, + emojis: String, + maskPosition: MaskPosition +) = execute( + CreateNewMaskVideoStickerSet(userId, name, title, sticker, emojis, maskPosition) +) + + +suspend fun TelegramBot.createNewMaskVideoStickerSet( + user: CommonUser, + name: String, + title: String, + sticker: FileId, + emojis: String, + maskPosition: MaskPosition +) = createNewMaskVideoStickerSet( + user.id, name, title, sticker, emojis, maskPosition +) + +suspend fun TelegramBot.createNewMaskVideoStickerSet( + user: CommonUser, + name: String, + title: String, + sticker: MultipartFile, + emojis: String, + maskPosition: MaskPosition +) = createNewMaskVideoStickerSet( + user.id, name, title, sticker, emojis, maskPosition +) diff --git a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/stickers/CreateNewRegularAnimatedStickerSet.kt b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/stickers/CreateNewRegularAnimatedStickerSet.kt new file mode 100644 index 0000000000..3b64f0ea6d --- /dev/null +++ b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/stickers/CreateNewRegularAnimatedStickerSet.kt @@ -0,0 +1,50 @@ +package dev.inmo.tgbotapi.extensions.api.stickers + +import dev.inmo.tgbotapi.bot.TelegramBot +import dev.inmo.tgbotapi.requests.abstracts.FileId +import dev.inmo.tgbotapi.requests.abstracts.MultipartFile +import dev.inmo.tgbotapi.requests.stickers.* +import dev.inmo.tgbotapi.types.chat.CommonUser +import dev.inmo.tgbotapi.types.UserId +import dev.inmo.tgbotapi.types.stickers.MaskPosition + +suspend fun TelegramBot.createNewRegularAnimatedStickerSet( + userId: UserId, + name: String, + title: String, + sticker: FileId, + emojis: String +) = execute( + CreateNewRegularAnimatedStickerSet(userId, name, title, sticker, emojis) +) + +suspend fun TelegramBot.createNewRegularAnimatedStickerSet( + userId: UserId, + name: String, + title: String, + sticker: MultipartFile, + emojis: String +) = execute( + CreateNewRegularAnimatedStickerSet(userId, name, title, sticker, emojis) +) + + +suspend fun TelegramBot.createNewRegularAnimatedStickerSet( + user: CommonUser, + name: String, + title: String, + sticker: FileId, + emojis: String +) = createNewRegularAnimatedStickerSet( + user.id, name, title, sticker, emojis +) + +suspend fun TelegramBot.createNewRegularAnimatedStickerSet( + user: CommonUser, + name: String, + title: String, + sticker: MultipartFile, + emojis: String +) = createNewRegularAnimatedStickerSet( + user.id, name, title, sticker, emojis +) diff --git a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/stickers/CreateNewRegularStickerSet.kt b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/stickers/CreateNewRegularStickerSet.kt new file mode 100644 index 0000000000..a48a4d2afe --- /dev/null +++ b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/stickers/CreateNewRegularStickerSet.kt @@ -0,0 +1,50 @@ +package dev.inmo.tgbotapi.extensions.api.stickers + +import dev.inmo.tgbotapi.bot.TelegramBot +import dev.inmo.tgbotapi.requests.abstracts.FileId +import dev.inmo.tgbotapi.requests.abstracts.MultipartFile +import dev.inmo.tgbotapi.requests.stickers.* +import dev.inmo.tgbotapi.types.chat.CommonUser +import dev.inmo.tgbotapi.types.UserId +import dev.inmo.tgbotapi.types.stickers.MaskPosition + +suspend fun TelegramBot.createNewRegularStickerSet( + userId: UserId, + name: String, + title: String, + sticker: FileId, + emojis: String +) = execute( + CreateNewRegularStickerSet(userId, name, title, sticker, emojis) +) + +suspend fun TelegramBot.createNewRegularStickerSet( + userId: UserId, + name: String, + title: String, + sticker: MultipartFile, + emojis: String +) = execute( + CreateNewRegularStickerSet(userId, name, title, sticker, emojis) +) + + +suspend fun TelegramBot.createNewRegularStickerSet( + user: CommonUser, + name: String, + title: String, + sticker: FileId, + emojis: String +) = createNewRegularStickerSet( + user.id, name, title, sticker, emojis +) + +suspend fun TelegramBot.createNewRegularStickerSet( + user: CommonUser, + name: String, + title: String, + sticker: MultipartFile, + emojis: String +) = createNewRegularStickerSet( + user.id, name, title, sticker, emojis +) diff --git a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/stickers/CreateNewRegularVideoStickerSet.kt b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/stickers/CreateNewRegularVideoStickerSet.kt new file mode 100644 index 0000000000..a27c7b1e08 --- /dev/null +++ b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/stickers/CreateNewRegularVideoStickerSet.kt @@ -0,0 +1,50 @@ +package dev.inmo.tgbotapi.extensions.api.stickers + +import dev.inmo.tgbotapi.bot.TelegramBot +import dev.inmo.tgbotapi.requests.abstracts.FileId +import dev.inmo.tgbotapi.requests.abstracts.MultipartFile +import dev.inmo.tgbotapi.requests.stickers.* +import dev.inmo.tgbotapi.types.chat.CommonUser +import dev.inmo.tgbotapi.types.UserId +import dev.inmo.tgbotapi.types.stickers.MaskPosition + +suspend fun TelegramBot.createNewRegularVideoStickerSet( + userId: UserId, + name: String, + title: String, + sticker: FileId, + emojis: String +) = execute( + CreateNewRegularVideoStickerSet(userId, name, title, sticker, emojis) +) + +suspend fun TelegramBot.createNewRegularVideoStickerSet( + userId: UserId, + name: String, + title: String, + sticker: MultipartFile, + emojis: String +) = execute( + CreateNewRegularVideoStickerSet(userId, name, title, sticker, emojis) +) + + +suspend fun TelegramBot.createNewRegularVideoStickerSet( + user: CommonUser, + name: String, + title: String, + sticker: FileId, + emojis: String +) = createNewRegularVideoStickerSet( + user.id, name, title, sticker, emojis +) + +suspend fun TelegramBot.createNewRegularVideoStickerSet( + user: CommonUser, + name: String, + title: String, + sticker: MultipartFile, + emojis: String +) = createNewRegularVideoStickerSet( + user.id, name, title, sticker, emojis +) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/stickers/CreateNewAnimatedStickerSet.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/stickers/CreateNewAnimatedStickerSet.kt index 554320a551..0dbebdb595 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/stickers/CreateNewAnimatedStickerSet.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/stickers/CreateNewAnimatedStickerSet.kt @@ -8,26 +8,8 @@ import dev.inmo.tgbotapi.types.* import dev.inmo.tgbotapi.types.stickers.MaskPosition import kotlinx.serialization.* -fun CreateNewAnimatedStickerSet( - userId: UserId, - name: String, - title: String, - sticker: InputFile, - emojis: String, - containsMasks: Boolean? = null, - maskPosition: MaskPosition? = null -): Request { - val data = CreateNewAnimatedStickerSet(userId, name, title, emojis, sticker as? FileId, containsMasks, maskPosition) - return when (sticker) { - is MultipartFile -> CommonMultipartFileRequest( - data, - mapOf(tgsStickerField to sticker) - ) - is FileId -> data - } -} - @Serializable +@Deprecated("Use CreateNewStickerSet class instead") data class CreateNewAnimatedStickerSet internal constructor( @SerialName(userIdField) override val userId: UserId, diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/stickers/CreateNewStaticStickerSet.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/stickers/CreateNewStaticStickerSet.kt index 056c7cd8aa..6e12b9d012 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/stickers/CreateNewStaticStickerSet.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/stickers/CreateNewStaticStickerSet.kt @@ -8,36 +8,8 @@ import dev.inmo.tgbotapi.types.* import dev.inmo.tgbotapi.types.stickers.MaskPosition import kotlinx.serialization.* -fun CreateNewStaticStickerSet( - userId: UserId, - name: String, - title: String, - sticker: InputFile, - emojis: String, - containsMasks: Boolean? = null, - maskPosition: MaskPosition? = null -): Request { - val data = CreateNewStaticStickerSet(userId, name, title, emojis, sticker as? FileId, containsMasks, maskPosition) - return when (sticker) { - is MultipartFile -> CommonMultipartFileRequest( - data, - mapOf(pngStickerField to sticker) - ) - is FileId -> data - } -} - -fun CreateNewStickerSet( - userId: UserId, - name: String, - title: String, - sticker: InputFile, - emojis: String, - containsMasks: Boolean? = null, - maskPosition: MaskPosition? = null -): Request = CreateNewStaticStickerSet(userId, name, title, sticker, emojis, containsMasks, maskPosition) - @Serializable +@Deprecated("Use CreateNewStickerSet class instead") data class CreateNewStaticStickerSet internal constructor( @SerialName(userIdField) override val userId: UserId, diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/stickers/CreateNewStickerSet.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/stickers/CreateNewStickerSet.kt new file mode 100644 index 0000000000..537c5f70b5 --- /dev/null +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/stickers/CreateNewStickerSet.kt @@ -0,0 +1,77 @@ +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.CreateStickerSetAction +import dev.inmo.tgbotapi.types.* +import dev.inmo.tgbotapi.types.stickers.MaskPosition +import kotlinx.serialization.* + +internal fun CreateNewStickerSet( + userId: UserId, + name: String, + title: String, + emojis: String, + stickerType: StickerType = StickerType.Regular, + pngSticker: InputFile? = null, + tgsSticker: InputFile? = null, + webmSticker: InputFile? = null, + maskPosition: MaskPosition? = null +): Request { + val data = CreateNewStickerSet( + userId, + name, + title, + emojis, + stickerType, + pngSticker as? FileId, + tgsSticker as? FileId, + webmSticker as? FileId, + maskPosition + ) + return if (pngSticker is MultipartFile || tgsSticker is MultipartFile || webmSticker is MultipartFile) { + CommonMultipartFileRequest( + data, + listOfNotNull( + (pngSticker as? MultipartFile) ?.let { pngStickerField to it }, + (tgsSticker as? MultipartFile) ?.let { tgsStickerField to it }, + (webmSticker as? MultipartFile) ?.let { webmStickerField to it }, + ).toMap() + ) + } else { + data + } +} + +@Serializable +data class CreateNewStickerSet internal constructor( + @SerialName(userIdField) + override val userId: UserId, + @SerialName(nameField) + override val name: String, + @SerialName(titleField) + override val title: String, + @SerialName(emojisField) + override val emojis: String, + @SerialName(stickerTypeField) + val stickerType: StickerType = StickerType.Regular, + @SerialName(pngStickerField) + val pngSticker: FileId? = null, + @SerialName(tgsStickerField) + val tgsSticker: FileId? = null, + @SerialName(webmStickerField) + val webmSticker: FileId? = null, + @SerialName(maskPositionField) + override val maskPosition: MaskPosition? = null +) : CreateStickerSetAction { + init { + if(emojis.isEmpty()) { + throw IllegalArgumentException("Emojis must not be empty") + } + } + + override val requestSerializer: SerializationStrategy<*> + get() = serializer() + + override fun method(): String = "createNewStickerSet" +} diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/stickers/CreateNewVideoStickerSet.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/stickers/CreateNewVideoStickerSet.kt index f979557599..cfaeb78075 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/stickers/CreateNewVideoStickerSet.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/stickers/CreateNewVideoStickerSet.kt @@ -8,26 +8,8 @@ import dev.inmo.tgbotapi.types.* import dev.inmo.tgbotapi.types.stickers.MaskPosition import kotlinx.serialization.* -fun CreateNewVideoStickerSet( - userId: UserId, - linkName: String, - title: String, - sticker: InputFile, - emojis: String, - containsMasks: Boolean? = null, - maskPosition: MaskPosition? = null -): Request { - val data = CreateNewVideoStickerSet(userId, linkName, title, emojis, sticker as? FileId, containsMasks, maskPosition) - return when (sticker) { - is MultipartFile -> CommonMultipartFileRequest( - data, - mapOf(webmStickerField to sticker) - ) - is FileId -> data - } -} - @Serializable +@Deprecated("Use CreateNewStickerSet class instead") data class CreateNewVideoStickerSet internal constructor( @SerialName(userIdField) override val userId: UserId, diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/stickers/NewCreateNewStickerSetFunctions.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/stickers/NewCreateNewStickerSetFunctions.kt new file mode 100644 index 0000000000..2cd56868bf --- /dev/null +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/stickers/NewCreateNewStickerSetFunctions.kt @@ -0,0 +1,105 @@ +package dev.inmo.tgbotapi.requests.stickers + +import dev.inmo.tgbotapi.requests.abstracts.InputFile +import dev.inmo.tgbotapi.requests.abstracts.Request +import dev.inmo.tgbotapi.types.StickerType +import dev.inmo.tgbotapi.types.UserId +import dev.inmo.tgbotapi.types.stickers.MaskPosition + + +fun CreateNewRegularStickerSet( + userId: UserId, + name: String, + title: String, + sticker: InputFile, + emojis: String +): Request = CreateNewStickerSet( + userId, + name, + title, + emojis, + StickerType.Regular, + pngSticker = sticker +) + +fun CreateNewRegularVideoStickerSet( + userId: UserId, + name: String, + title: String, + sticker: InputFile, + emojis: String +): Request = CreateNewStickerSet( + userId, + name, + title, + emojis, + StickerType.Regular, + webmSticker = sticker +) + +fun CreateNewRegularAnimatedStickerSet( + userId: UserId, + name: String, + title: String, + sticker: InputFile, + emojis: String +): Request = CreateNewStickerSet( + userId, + name, + title, + emojis, + StickerType.Regular, + tgsSticker = sticker +) + + +fun CreateNewMaskStickerSet( + userId: UserId, + name: String, + title: String, + sticker: InputFile, + emojis: String, + maskPosition: MaskPosition +): Request = CreateNewStickerSet( + userId, + name, + title, + emojis, + StickerType.Mask, + pngSticker = sticker, + maskPosition = maskPosition +) + +fun CreateNewMaskVideoStickerSet( + userId: UserId, + name: String, + title: String, + sticker: InputFile, + emojis: String, + maskPosition: MaskPosition +): Request = CreateNewStickerSet( + userId, + name, + title, + emojis, + StickerType.Mask, + webmSticker = sticker, + maskPosition = maskPosition +) + +fun CreateNewMaskAnimatedStickerSet( + userId: UserId, + name: String, + title: String, + sticker: InputFile, + emojis: String, + maskPosition: MaskPosition +): Request = CreateNewStickerSet( + userId, + name, + title, + emojis, + StickerType.Mask, + tgsSticker = sticker, + maskPosition = maskPosition +) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/stickers/OldCreateNewStickerSetFunctions.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/stickers/OldCreateNewStickerSetFunctions.kt new file mode 100644 index 0000000000..69f747c53f --- /dev/null +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/stickers/OldCreateNewStickerSetFunctions.kt @@ -0,0 +1,80 @@ +package dev.inmo.tgbotapi.requests.stickers + +import dev.inmo.tgbotapi.requests.abstracts.InputFile +import dev.inmo.tgbotapi.requests.abstracts.Request +import dev.inmo.tgbotapi.types.StickerType +import dev.inmo.tgbotapi.types.UserId +import dev.inmo.tgbotapi.types.stickers.MaskPosition + + +fun CreateNewVideoStickerSet( + userId: UserId, + linkName: String, + title: String, + sticker: InputFile, + emojis: String, + containsMasks: Boolean? = null, + maskPosition: MaskPosition? = null +): Request = CreateNewStickerSet( + userId, + linkName, + title, + emojis, + if (containsMasks == true) StickerType.Mask else StickerType.Regular, + webmSticker = sticker, + maskPosition = maskPosition +) + +fun CreateNewStaticStickerSet( + userId: UserId, + name: String, + title: String, + sticker: InputFile, + emojis: String, + containsMasks: Boolean? = null, + maskPosition: MaskPosition? = null +): Request = CreateNewStickerSet( + userId, + name, + title, + emojis, + if (containsMasks == true) StickerType.Mask else StickerType.Regular, + pngSticker = sticker, + maskPosition = maskPosition +) + +fun CreateNewStickerSet( + userId: UserId, + name: String, + title: String, + sticker: InputFile, + emojis: String, + containsMasks: Boolean? = null, + maskPosition: MaskPosition? = null +): Request = CreateNewStickerSet( + userId, + name, + title, + emojis, + if (containsMasks == true) StickerType.Mask else StickerType.Regular, + pngSticker = sticker, + maskPosition = maskPosition +) + +fun CreateNewAnimatedStickerSet( + userId: UserId, + name: String, + title: String, + sticker: InputFile, + emojis: String, + containsMasks: Boolean? = null, + maskPosition: MaskPosition? = null +): Request = CreateNewStickerSet( + userId, + name, + title, + emojis, + if (containsMasks == true) StickerType.Mask else StickerType.Regular, + tgsSticker = sticker, + maskPosition = maskPosition +)