1
0
mirror of https://github.com/InsanusMokrassar/TelegramBotAPI.git synced 2026-04-16 23:12:33 +00:00

fix of username encoding in KeyboardButtonRequestManagedBot

This commit is contained in:
2026-04-14 17:26:37 +06:00
parent 57fa6fd597
commit 5337f8c7cc
3 changed files with 41 additions and 0 deletions

View File

@@ -35061,3 +35061,12 @@ public final class dev/inmo/tgbotapi/utils/serializers/UnitFromBooleanSerializer
public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lkotlin/Unit;)V
}
public final class dev/inmo/tgbotapi/utils/serializers/UsernameAtLessSerializer : kotlinx/serialization/KSerializer {
public static final field INSTANCE Ldev/inmo/tgbotapi/utils/serializers/UsernameAtLessSerializer;
public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object;
public fun deserialize-BnpbnlE (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/String;
public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor;
public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V
public fun serialize-eC7Nk8U (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/String;)V
}

View File

@@ -2,6 +2,7 @@ package dev.inmo.tgbotapi.types.buttons
import dev.inmo.tgbotapi.types.*
import dev.inmo.tgbotapi.types.request.RequestId
import dev.inmo.tgbotapi.utils.serializers.UsernameAtLessSerializer
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
@@ -17,6 +18,16 @@ data class KeyboardButtonRequestManagedBot(
@SerialName(suggestedNameField)
val suggestedName: String? = null,
@SerialName(suggestedUsernameField)
@Serializable(UsernameAtLessSerializer::class)
val suggestedUsername: Username? = null
)
/**
* A type alias for the `KeyboardButtonRequestManagedBot` class representing the parameters
* for managing a bot request in a keyboard button.
*
* This type encapsulates properties such as:
* - A unique request identifier (`requestId`).
* - Suggested name and username for the bot (`suggestedName` and `suggestedUsername`).
*/
typealias RequestManagedBotParameters = KeyboardButtonRequestManagedBot

View File

@@ -0,0 +1,21 @@
package dev.inmo.tgbotapi.utils.serializers
import dev.inmo.tgbotapi.types.Username
import kotlinx.serialization.KSerializer
import kotlinx.serialization.builtins.serializer
import kotlinx.serialization.descriptors.SerialDescriptor
import kotlinx.serialization.encoding.Decoder
import kotlinx.serialization.encoding.Encoder
object UsernameAtLessSerializer : KSerializer<Username> {
override val descriptor: SerialDescriptor
get() = String.serializer().descriptor
override fun serialize(encoder: Encoder, value: Username) {
value.withoutAt.let(encoder::encodeString)
}
override fun deserialize(decoder: Decoder): Username {
return Username.prepare(decoder.decodeString())
}
}