From 0e481c3dd9624b032c606195ab42a3eddef79273 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Wed, 15 Apr 2026 16:13:37 +0600 Subject: [PATCH] fix of custom emoji icons passing in setParams of WebApp and rewrite init errors to warnings in SendQuizPoll --- .../inmo/tgbotapi/requests/send/polls/SendQuizPoll.kt | 11 ++++++++--- .../kotlin/dev/inmo/tgbotapi/webapps/BottomButton.kt | 2 +- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/polls/SendQuizPoll.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/polls/SendQuizPoll.kt index d7a48951bb..7b6fc60228 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/polls/SendQuizPoll.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/polls/SendQuizPoll.kt @@ -1,5 +1,6 @@ package dev.inmo.tgbotapi.requests.send.polls +import dev.inmo.kslog.common.w import dev.inmo.tgbotapi.types.* import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup @@ -13,6 +14,7 @@ import dev.inmo.tgbotapi.types.polls.ApproximateScheduledCloseInfo import dev.inmo.tgbotapi.types.polls.ExactScheduledCloseInfo import dev.inmo.tgbotapi.types.polls.InputPollOption import dev.inmo.tgbotapi.types.polls.ScheduledCloseInfo +import dev.inmo.tgbotapi.utils.DefaultKTgBotAPIKSLog import dev.inmo.tgbotapi.utils.extensions.makeSourceString import kotlinx.serialization.EncodeDefault import kotlinx.serialization.ExperimentalSerializationApi @@ -342,16 +344,19 @@ class SendQuizPoll internal constructor( checkPollInfo(question, options) closeInfo?.checkSendData() val correctOptionIdsRange = 0 until options.size - correctOptionIds?.forEach { id -> + correctOptionIds.forEach { id -> if (id !in correctOptionIdsRange) { - throw IllegalArgumentException("Correct option id must be in range of $correctOptionIdsRange, but actual " + + DefaultKTgBotAPIKSLog.w("SendQuizPoll", "Correct option id must be in range of $correctOptionIdsRange, but actual " + "value is $id") } } if (explanation != null && explanation.length !in explanationLimit) { - error("Quiz poll explanation size must be in range $explanationLimit," + + DefaultKTgBotAPIKSLog.w("SendQuizPoll", "Quiz poll explanation size must be in range $explanationLimit," + "but actual explanation contains ${text.length} symbols") } + if (allowMultipleAnswers == false && correctOptionIds.size > 1) { + DefaultKTgBotAPIKSLog.w("SendQuizPoll", "Multiple answers are disabled for current sendQuizPoll, but multiple correct options passed") + } } } diff --git a/tgbotapi.webapps/src/jsMain/kotlin/dev/inmo/tgbotapi/webapps/BottomButton.kt b/tgbotapi.webapps/src/jsMain/kotlin/dev/inmo/tgbotapi/webapps/BottomButton.kt index 6f0accb140..f9295606cb 100644 --- a/tgbotapi.webapps/src/jsMain/kotlin/dev/inmo/tgbotapi/webapps/BottomButton.kt +++ b/tgbotapi.webapps/src/jsMain/kotlin/dev/inmo/tgbotapi/webapps/BottomButton.kt @@ -47,7 +47,7 @@ data class BottomButtonParams( fun BottomButton.setParams(params: BottomButtonParams) = setParams( json( *listOfNotNull( - params.iconCustomEmojiId ?.let { "icon_custom_emoji_id" to params.iconCustomEmojiId }, + params.iconCustomEmojiId ?.let { "icon_custom_emoji_id" to params.iconCustomEmojiId.string }, params.text ?.let { "text" to params.text }, params.color ?.let { "color" to params.color }, params.textColor ?.let { "text_color" to params.textColor },