diff --git a/CHANGELOG.md b/CHANGELOG.md index a34d87662a..f16ba315d0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,14 @@ * `KSLog`: `1.5.2` -> `1.6.0` * `Core` + `API`: * **BREAKING CHANGES: ALL METHODS THAT PREVIOUSLY RETURNED BOOLEAN NOW RETURNS UNIT** +* `Core`: + * **BREAKING CHANGE** `SetChatTitle` init do not throw error in case when `title.length` is outside of `chatTitleLength` + * **BREAKING CHANGE** `SetStickerEmojiList` init do not throw error in case when `emojis.size` is outside of `emojisInStickerLimit` + * **BREAKING CHANGE** `DeleteMessages` init do not throw error in case when title is `messageIds.size` of `deleteMessagesLimit` + * **BREAKING CHANGE** `ForwardMessages` init do not throw error in case when `messageIds.size` is outside of `forwardMessagesLimit` + * **BREAKING CHANGE** `CopyMessages` init do not throw error in case when `messageIds.size` is outside of `copyMessagesLimit` + * **BREAKING CHANGE** `SwitchInlineQueryChosenChat` init do not throw error in case when `messageIds.size` is outside of `copyMessagesLimit` + * **BREAKING CHANGE** `SetStickerKeywords` init do not throw error in case when there are errors in `keywords` ## 31.2.0 diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/DeleteMessages.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/DeleteMessages.kt index af0d390cc3..f06bbd49d4 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/DeleteMessages.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/DeleteMessages.kt @@ -1,9 +1,11 @@ package dev.inmo.tgbotapi.requests +import dev.inmo.kslog.common.w import dev.inmo.tgbotapi.abstracts.types.MessageAction import dev.inmo.tgbotapi.abstracts.types.MessagesAction import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest import dev.inmo.tgbotapi.types.* +import dev.inmo.tgbotapi.utils.DefaultKTgBotAPIKSLog import dev.inmo.tgbotapi.utils.serializers.UnitFromBooleanSerializer import kotlinx.serialization.* import kotlinx.serialization.builtins.serializer @@ -18,8 +20,8 @@ data class DeleteMessages( override fun method(): String = "deleteMessages" init { - require(messageIds.size in deleteMessagesLimit) { - "Messages count for deleteMessages must be in $deleteMessagesLimit range" + if (messageIds.size !in deleteMessagesLimit) { + DefaultKTgBotAPIKSLog.w("DeleteMessages", "Messages count for deleteMessages must be in $deleteMessagesLimit range") } } diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/ForwardMessages.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/ForwardMessages.kt index ab47791a15..20fd8e9b80 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/ForwardMessages.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/ForwardMessages.kt @@ -1,5 +1,6 @@ package dev.inmo.tgbotapi.requests +import dev.inmo.kslog.common.w import dev.inmo.tgbotapi.abstracts.types.DisableNotification import dev.inmo.tgbotapi.abstracts.types.MessagesAction import dev.inmo.tgbotapi.abstracts.types.ProtectContent @@ -7,6 +8,7 @@ import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest import dev.inmo.tgbotapi.requests.send.abstracts.OptionallyDirectMessageThreadRequest import dev.inmo.tgbotapi.requests.send.abstracts.OptionallyMessageThreadRequest import dev.inmo.tgbotapi.types.* +import dev.inmo.tgbotapi.utils.DefaultKTgBotAPIKSLog import kotlinx.serialization.* import kotlinx.serialization.builtins.ListSerializer @@ -62,8 +64,8 @@ data class ForwardMessages ( get() = fromChatId init { - require(messageIds.size in forwardMessagesLimit) { - "Messages count for forwardMessages must be in $forwardMessagesLimit range" + if (messageIds.size !in forwardMessagesLimit) { + DefaultKTgBotAPIKSLog.w("ForwardMessages", "Messages count for forwardMessages must be in $forwardMessagesLimit range") } } diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/chat/modify/SetChatTitle.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/chat/modify/SetChatTitle.kt index 0ed17ec1b6..18db5d7b67 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/chat/modify/SetChatTitle.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/chat/modify/SetChatTitle.kt @@ -1,11 +1,12 @@ package dev.inmo.tgbotapi.requests.chat.modify +import dev.inmo.kslog.common.w import dev.inmo.tgbotapi.abstracts.types.ChatRequest import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest import dev.inmo.tgbotapi.types.* +import dev.inmo.tgbotapi.utils.DefaultKTgBotAPIKSLog import dev.inmo.tgbotapi.utils.serializers.UnitFromBooleanSerializer import kotlinx.serialization.* -import kotlinx.serialization.builtins.serializer @Serializable data class SetChatTitle ( @@ -16,7 +17,7 @@ data class SetChatTitle ( ): ChatRequest, SimpleRequest { init { if (title.length !in chatTitleLength) { - throw IllegalArgumentException("Chat title must be in $chatTitleLength range") + DefaultKTgBotAPIKSLog.w("SetChatTitle", "Chat title must be in $chatTitleLength range") } } diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/CopyMessages.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/CopyMessages.kt index 0693b3b2c3..0a65f3f23f 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/CopyMessages.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/CopyMessages.kt @@ -1,5 +1,6 @@ package dev.inmo.tgbotapi.requests.send +import dev.inmo.kslog.common.w import dev.inmo.tgbotapi.abstracts.types.* import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest import dev.inmo.tgbotapi.requests.send.abstracts.OptionallyDirectMessageThreadRequest @@ -11,6 +12,7 @@ import dev.inmo.tgbotapi.types.message.ParseMode import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup import dev.inmo.tgbotapi.types.message.* import dev.inmo.tgbotapi.types.message.toRawMessageEntities +import dev.inmo.tgbotapi.utils.DefaultKTgBotAPIKSLog import dev.inmo.tgbotapi.utils.extensions.makeString import kotlinx.serialization.* import kotlinx.serialization.builtins.ListSerializer @@ -67,8 +69,8 @@ data class CopyMessages ( get() = fromChatId init { - require(messageIds.size in copyMessagesLimit) { - "Messages count for copyMessages must be in $copyMessagesLimit range" + if (messageIds.size !in copyMessagesLimit) { + DefaultKTgBotAPIKSLog.w("CopyMessages", "Messages count for copyMessages must be in $copyMessagesLimit range") } } diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/stickers/SetStickerEmojiList.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/stickers/SetStickerEmojiList.kt index 5634f10480..9870eb162c 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/stickers/SetStickerEmojiList.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/stickers/SetStickerEmojiList.kt @@ -1,8 +1,10 @@ package dev.inmo.tgbotapi.requests.stickers +import dev.inmo.kslog.common.w import dev.inmo.tgbotapi.requests.abstracts.* import dev.inmo.tgbotapi.requests.stickers.abstracts.StickerAction import dev.inmo.tgbotapi.types.* +import dev.inmo.tgbotapi.utils.DefaultKTgBotAPIKSLog import dev.inmo.tgbotapi.utils.serializers.UnitFromBooleanSerializer import kotlinx.serialization.* import kotlinx.serialization.builtins.serializer @@ -19,8 +21,8 @@ data class SetStickerEmojiList ( constructor(sticker: FileId, vararg emojis: String) : this(sticker, emojis.toList()) init { - require(emojis.size !in emojisInStickerLimit) { - "Emojis size should be in range $emojisInStickerLimit, but was ${emojis.size}" + if (emojis.size !in emojisInStickerLimit) { + DefaultKTgBotAPIKSLog.w("SetStickerEmojiList", "Emojis size should be in range $emojisInStickerLimit, but was ${emojis.size}") } } diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/stickers/SetStickerKeywords.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/stickers/SetStickerKeywords.kt index 88edabbc6c..01946f4cd0 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/stickers/SetStickerKeywords.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/stickers/SetStickerKeywords.kt @@ -1,8 +1,10 @@ package dev.inmo.tgbotapi.requests.stickers +import dev.inmo.kslog.common.w import dev.inmo.tgbotapi.requests.abstracts.* import dev.inmo.tgbotapi.requests.stickers.abstracts.StickerAction import dev.inmo.tgbotapi.types.* +import dev.inmo.tgbotapi.utils.DefaultKTgBotAPIKSLog import dev.inmo.tgbotapi.utils.serializers.UnitFromBooleanSerializer import kotlinx.serialization.* import kotlinx.serialization.builtins.serializer @@ -19,12 +21,12 @@ data class SetStickerKeywords ( constructor(sticker: FileId, vararg keywords: String) : this(sticker, keywords.toList()) init { - require(keywords.size !in keywordsInStickerLimit) { - "Keywords list size should be in range $keywordsInStickerLimit, but was ${keywords.size}" + if (keywords.size !in keywordsInStickerLimit) { + DefaultKTgBotAPIKSLog.w("SetStickerKeywords", "Keywords list size should be in range $keywordsInStickerLimit, but was ${keywords.size}") } keywords.forEach { - require(it.length in stickerKeywordLengthLimit) { - "Keyword length should be in range $stickerKeywordLengthLimit, but was ${it.length} (word \"$it\")" + if (it.length !in stickerKeywordLengthLimit) { + DefaultKTgBotAPIKSLog.w("SetStickerKeywords", "Keyword length should be in range $stickerKeywordLengthLimit, but was ${it.length} (word \"$it\")") } } } diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/buttons/InlineKeyboardButtons/SwitchInlineQueryChosenChat.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/buttons/InlineKeyboardButtons/SwitchInlineQueryChosenChat.kt index 186a9fdb97..0aa3b0be4d 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/buttons/InlineKeyboardButtons/SwitchInlineQueryChosenChat.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/buttons/InlineKeyboardButtons/SwitchInlineQueryChosenChat.kt @@ -1,6 +1,8 @@ package dev.inmo.tgbotapi.types.buttons.InlineKeyboardButtons +import dev.inmo.kslog.common.w import dev.inmo.tgbotapi.types.* +import dev.inmo.tgbotapi.utils.DefaultKTgBotAPIKSLog import kotlinx.serialization.EncodeDefault import kotlinx.serialization.ExperimentalSerializationApi import kotlinx.serialization.SerialName @@ -25,8 +27,8 @@ data class SwitchInlineQueryChosenChat ( val allowChannels: Boolean = false, ) { init { - require(allowUsers || allowBots || allowGroups || allowChannels) { - "Bot must allow to choose at least one of available variants in choosing of inline query recipient" + if (allowUsers == false && allowBots == false && allowGroups == false && allowChannels == false) { + DefaultKTgBotAPIKSLog.w("SwitchInlineQueryChosenChat", "Bot must allow to choose at least one of available variants in choosing of inline query recipient") } } }