1
0
mirror of https://github.com/InsanusMokrassar/TelegramBotAPI.git synced 2026-04-07 10:32:44 +00:00

complete support of ManagedBotCreated and ManagedBotUpdated, add getManagedBotToken and replaceManagedBotToken

This commit is contained in:
2026-04-06 15:47:38 +06:00
parent b37dda6f47
commit de13ddeb54
21 changed files with 333 additions and 2 deletions

View File

@@ -5741,6 +5741,66 @@ public final class dev/inmo/tgbotapi/requests/local/LogOut : dev/inmo/tgbotapi/r
public final fun serializer ()Lkotlinx/serialization/KSerializer;
}
public final class dev/inmo/tgbotapi/requests/managed_bots/GetManagedBotToken : dev/inmo/tgbotapi/requests/abstracts/SimpleRequest {
public static final field Companion Ldev/inmo/tgbotapi/requests/managed_bots/GetManagedBotToken$Companion;
public synthetic fun <init> (JLkotlin/jvm/internal/DefaultConstructorMarker;)V
public final fun component1-tHkBKVM ()J
public final fun copy-HZVsHAI (J)Ldev/inmo/tgbotapi/requests/managed_bots/GetManagedBotToken;
public static synthetic fun copy-HZVsHAI$default (Ldev/inmo/tgbotapi/requests/managed_bots/GetManagedBotToken;JILjava/lang/Object;)Ldev/inmo/tgbotapi/requests/managed_bots/GetManagedBotToken;
public fun equals (Ljava/lang/Object;)Z
public fun getRequestSerializer ()Lkotlinx/serialization/SerializationStrategy;
public fun getResultDeserializer ()Lkotlinx/serialization/DeserializationStrategy;
public final fun getUserId-tHkBKVM ()J
public fun hashCode ()I
public fun method ()Ljava/lang/String;
public fun toString ()Ljava/lang/String;
}
public final synthetic class dev/inmo/tgbotapi/requests/managed_bots/GetManagedBotToken$$serializer : kotlinx/serialization/internal/GeneratedSerializer {
public static final field INSTANCE Ldev/inmo/tgbotapi/requests/managed_bots/GetManagedBotToken$$serializer;
public final fun childSerializers ()[Lkotlinx/serialization/KSerializer;
public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/inmo/tgbotapi/requests/managed_bots/GetManagedBotToken;
public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object;
public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor;
public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Ldev/inmo/tgbotapi/requests/managed_bots/GetManagedBotToken;)V
public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V
public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer;
}
public final class dev/inmo/tgbotapi/requests/managed_bots/GetManagedBotToken$Companion {
public final fun serializer ()Lkotlinx/serialization/KSerializer;
}
public final class dev/inmo/tgbotapi/requests/managed_bots/ReplaceManagedBotToken : dev/inmo/tgbotapi/requests/abstracts/SimpleRequest {
public static final field Companion Ldev/inmo/tgbotapi/requests/managed_bots/ReplaceManagedBotToken$Companion;
public synthetic fun <init> (JLkotlin/jvm/internal/DefaultConstructorMarker;)V
public final fun component1-tHkBKVM ()J
public final fun copy-HZVsHAI (J)Ldev/inmo/tgbotapi/requests/managed_bots/ReplaceManagedBotToken;
public static synthetic fun copy-HZVsHAI$default (Ldev/inmo/tgbotapi/requests/managed_bots/ReplaceManagedBotToken;JILjava/lang/Object;)Ldev/inmo/tgbotapi/requests/managed_bots/ReplaceManagedBotToken;
public fun equals (Ljava/lang/Object;)Z
public fun getRequestSerializer ()Lkotlinx/serialization/SerializationStrategy;
public fun getResultDeserializer ()Lkotlinx/serialization/DeserializationStrategy;
public final fun getUserId-tHkBKVM ()J
public fun hashCode ()I
public fun method ()Ljava/lang/String;
public fun toString ()Ljava/lang/String;
}
public final synthetic class dev/inmo/tgbotapi/requests/managed_bots/ReplaceManagedBotToken$$serializer : kotlinx/serialization/internal/GeneratedSerializer {
public static final field INSTANCE Ldev/inmo/tgbotapi/requests/managed_bots/ReplaceManagedBotToken$$serializer;
public final fun childSerializers ()[Lkotlinx/serialization/KSerializer;
public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/inmo/tgbotapi/requests/managed_bots/ReplaceManagedBotToken;
public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object;
public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor;
public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Ldev/inmo/tgbotapi/requests/managed_bots/ReplaceManagedBotToken;)V
public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V
public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer;
}
public final class dev/inmo/tgbotapi/requests/managed_bots/ReplaceManagedBotToken$Companion {
public final fun serializer ()Lkotlinx/serialization/KSerializer;
}
public final class dev/inmo/tgbotapi/requests/send/CopyMessage : dev/inmo/tgbotapi/abstracts/TextedOutput, dev/inmo/tgbotapi/abstracts/WithCustomStartMediaData, dev/inmo/tgbotapi/abstracts/types/MessageAction, dev/inmo/tgbotapi/abstracts/types/OptionallyWithEffectId, dev/inmo/tgbotapi/abstracts/types/ProtectContent, dev/inmo/tgbotapi/requests/abstracts/SimpleRequest, dev/inmo/tgbotapi/requests/send/abstracts/OptionallyMessageThreadRequest, dev/inmo/tgbotapi/requests/send/abstracts/ReplyingMarkupSendMessageRequest, dev/inmo/tgbotapi/requests/send/abstracts/WithCustomizableCaptionRequest {
public static final field Companion Ldev/inmo/tgbotapi/requests/send/CopyMessage$Companion;
public synthetic fun <init> (Ldev/inmo/tgbotapi/types/ChatIdentifier;Ldev/inmo/tgbotapi/types/ChatIdentifier;JLjava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;Ljava/util/List;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/Integer;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
@@ -9954,6 +10014,36 @@ public final class dev/inmo/tgbotapi/types/BotShortDescription$Companion {
public final fun serializer ()Lkotlinx/serialization/KSerializer;
}
public final class dev/inmo/tgbotapi/types/BotToken {
public static final field Companion Ldev/inmo/tgbotapi/types/BotToken$Companion;
public static final synthetic fun box-impl (Ljava/lang/String;)Ldev/inmo/tgbotapi/types/BotToken;
public static fun constructor-impl (Ljava/lang/String;)Ljava/lang/String;
public fun equals (Ljava/lang/Object;)Z
public static fun equals-impl (Ljava/lang/String;Ljava/lang/Object;)Z
public static final fun equals-impl0 (Ljava/lang/String;Ljava/lang/String;)Z
public final fun getString ()Ljava/lang/String;
public fun hashCode ()I
public static fun hashCode-impl (Ljava/lang/String;)I
public fun toString ()Ljava/lang/String;
public static fun toString-impl (Ljava/lang/String;)Ljava/lang/String;
public final synthetic fun unbox-impl ()Ljava/lang/String;
}
public final synthetic class dev/inmo/tgbotapi/types/BotToken$$serializer : kotlinx/serialization/internal/GeneratedSerializer {
public static final field INSTANCE Ldev/inmo/tgbotapi/types/BotToken$$serializer;
public final fun childSerializers ()[Lkotlinx/serialization/KSerializer;
public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object;
public final fun deserialize-Xc4KczI (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/String;
public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor;
public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V
public final fun serialize-Y8d-Zco (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/String;)V
public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer;
}
public final class dev/inmo/tgbotapi/types/BotToken$Companion {
public final fun serializer ()Lkotlinx/serialization/KSerializer;
}
public final class dev/inmo/tgbotapi/types/BusinessChatId : dev/inmo/tgbotapi/types/IdChatIdentifier {
public static final field Companion Ldev/inmo/tgbotapi/types/BusinessChatId$Companion;
public static final synthetic fun box-impl (Lkotlin/Pair;)Ldev/inmo/tgbotapi/types/BusinessChatId;
@@ -14557,6 +14647,7 @@ public final class dev/inmo/tgbotapi/types/UpdateTypesKt {
public static final field UPDATE_EDITED_CHANNEL_POST Ljava/lang/String;
public static final field UPDATE_EDITED_MESSAGE Ljava/lang/String;
public static final field UPDATE_INLINE_QUERY Ljava/lang/String;
public static final field UPDATE_MANAGED_BOT Ljava/lang/String;
public static final field UPDATE_MESSAGE Ljava/lang/String;
public static final field UPDATE_MESSAGE_REACTION Ljava/lang/String;
public static final field UPDATE_MESSAGE_REACTION_COUNT Ljava/lang/String;
@@ -33604,6 +33695,36 @@ public final class dev/inmo/tgbotapi/types/update/InlineQueryUpdate : dev/inmo/t
public fun toString ()Ljava/lang/String;
}
public final class dev/inmo/tgbotapi/types/update/ManagedBotUpdate : dev/inmo/tgbotapi/types/update/abstracts/Update {
public static final field Companion Ldev/inmo/tgbotapi/types/update/ManagedBotUpdate$Companion;
public synthetic fun <init> (JLdev/inmo/tgbotapi/types/managed_bots/ManagedBotUpdated;Lkotlin/jvm/internal/DefaultConstructorMarker;)V
public final fun component1-4k5XoGU ()J
public final fun component2 ()Ldev/inmo/tgbotapi/types/managed_bots/ManagedBotUpdated;
public final fun copy-VElHuNg (JLdev/inmo/tgbotapi/types/managed_bots/ManagedBotUpdated;)Ldev/inmo/tgbotapi/types/update/ManagedBotUpdate;
public static synthetic fun copy-VElHuNg$default (Ldev/inmo/tgbotapi/types/update/ManagedBotUpdate;JLdev/inmo/tgbotapi/types/managed_bots/ManagedBotUpdated;ILjava/lang/Object;)Ldev/inmo/tgbotapi/types/update/ManagedBotUpdate;
public fun equals (Ljava/lang/Object;)Z
public fun getData ()Ldev/inmo/tgbotapi/types/managed_bots/ManagedBotUpdated;
public synthetic fun getData ()Ljava/lang/Object;
public fun getUpdateId-4k5XoGU ()J
public fun hashCode ()I
public fun toString ()Ljava/lang/String;
}
public final synthetic class dev/inmo/tgbotapi/types/update/ManagedBotUpdate$$serializer : kotlinx/serialization/internal/GeneratedSerializer {
public static final field INSTANCE Ldev/inmo/tgbotapi/types/update/ManagedBotUpdate$$serializer;
public final fun childSerializers ()[Lkotlinx/serialization/KSerializer;
public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/inmo/tgbotapi/types/update/ManagedBotUpdate;
public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object;
public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor;
public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Ldev/inmo/tgbotapi/types/update/ManagedBotUpdate;)V
public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V
public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer;
}
public final class dev/inmo/tgbotapi/types/update/ManagedBotUpdate$Companion {
public final fun serializer ()Lkotlinx/serialization/KSerializer;
}
public final class dev/inmo/tgbotapi/types/update/MessageUpdate : dev/inmo/tgbotapi/types/update/abstracts/BaseSentMessageUpdate {
public synthetic fun <init> (JLdev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Lkotlin/jvm/internal/DefaultConstructorMarker;)V
public final fun component1-4k5XoGU ()J
@@ -33891,6 +34012,7 @@ public abstract class dev/inmo/tgbotapi/updateshandlers/AbstractFlowsUpdatesFilt
public fun getEditedMessageMediaGroupsFlow ()Lkotlinx/coroutines/flow/Flow;
public fun getEditedMessagesFlow ()Lkotlinx/coroutines/flow/Flow;
public fun getInlineQueriesFlow ()Lkotlinx/coroutines/flow/Flow;
public fun getManagedBotUpdatesFlow ()Lkotlinx/coroutines/flow/Flow;
public fun getMessageMediaGroupsFlow ()Lkotlinx/coroutines/flow/Flow;
public fun getMessagesFlow ()Lkotlinx/coroutines/flow/Flow;
public fun getMyChatMemberUpdatesFlow ()Lkotlinx/coroutines/flow/Flow;
@@ -33932,6 +34054,7 @@ public abstract interface class dev/inmo/tgbotapi/updateshandlers/FlowsUpdatesFi
public fun getEditedMessageMediaGroupsFlow ()Lkotlinx/coroutines/flow/Flow;
public abstract fun getEditedMessagesFlow ()Lkotlinx/coroutines/flow/Flow;
public abstract fun getInlineQueriesFlow ()Lkotlinx/coroutines/flow/Flow;
public abstract fun getManagedBotUpdatesFlow ()Lkotlinx/coroutines/flow/Flow;
public fun getMessageMediaGroupsFlow ()Lkotlinx/coroutines/flow/Flow;
public abstract fun getMessagesFlow ()Lkotlinx/coroutines/flow/Flow;
public abstract fun getMyChatMemberUpdatesFlow ()Lkotlinx/coroutines/flow/Flow;

View File

@@ -0,0 +1,19 @@
package dev.inmo.tgbotapi.requests.managed_bots
import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest
import dev.inmo.tgbotapi.types.BotToken
import dev.inmo.tgbotapi.types.ChatId
import dev.inmo.tgbotapi.types.userIdField
import kotlinx.serialization.*
@Serializable
data class GetManagedBotToken(
@SerialName(userIdField)
val userId: ChatId
) : SimpleRequest<BotToken> {
override fun method(): String = "getManagedBotToken"
override val resultDeserializer: DeserializationStrategy<BotToken>
get() = BotToken.serializer()
override val requestSerializer: SerializationStrategy<*>
get() = serializer()
}

View File

@@ -0,0 +1,19 @@
package dev.inmo.tgbotapi.requests.managed_bots
import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest
import dev.inmo.tgbotapi.types.BotToken
import dev.inmo.tgbotapi.types.ChatId
import dev.inmo.tgbotapi.types.userIdField
import kotlinx.serialization.*
@Serializable
data class ReplaceManagedBotToken(
@SerialName(userIdField)
val userId: ChatId
) : SimpleRequest<BotToken> {
override fun method(): String = "replaceManagedBotToken"
override val resultDeserializer: DeserializationStrategy<BotToken>
get() = BotToken.serializer()
override val requestSerializer: SerializationStrategy<*>
get() = serializer()
}

View File

@@ -0,0 +1,8 @@
package dev.inmo.tgbotapi.types
import kotlinx.serialization.Serializable
import kotlin.jvm.JvmInline
@Serializable
@JvmInline
value class BotToken(val string: String)

View File

@@ -24,6 +24,8 @@ const val UPDATE_BUSINESS_MESSAGE = "business_message"
const val UPDATE_EDITED_BUSINESS_MESSAGE = "edited_business_message"
const val UPDATE_DELETED_BUSINESS_MESSAGES = "deleted_business_messages"
const val UPDATE_MANAGED_BOT = "managed_bot"
val ALL_UPDATES_LIST_WITHOUT_REACTIONS = listOf(
UPDATE_MESSAGE,
UPDATE_EDITED_MESSAGE,
@@ -57,6 +59,8 @@ val ALL_UPDATES_LIST_WITHOUT_REACTIONS = listOf(
UPDATE_CHAT_BOOST,
UPDATE_REMOVE_CHAT_BOOST,
UPDATE_MANAGED_BOT,
)
val ALL_UPDATES_LIST = ALL_UPDATES_LIST_WITHOUT_REACTIONS + listOf(

View File

@@ -18,6 +18,7 @@ import dev.inmo.tgbotapi.types.gifts.GiftSentOrReceivedEvent
import dev.inmo.tgbotapi.types.giveaway.*
import dev.inmo.tgbotapi.types.message.content.GiveawayContent
import dev.inmo.tgbotapi.types.location.Location
import dev.inmo.tgbotapi.types.managed_bots.ManagedBotCreated
import dev.inmo.tgbotapi.types.managed_bots.ManagedBotUpdated
import dev.inmo.tgbotapi.types.message.ChatEvents.*
import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.*
@@ -206,7 +207,7 @@ internal data class RawMessage(
private val gift_upgrade_sent: GiftSentOrReceivedEvent.RegularGift? = null,
private val chat_owner_left: ChatOwnerLeft? = null,
private val chat_owner_changed: ChatOwnerChanged? = null,
private val managed_bot_updated: ManagedBotUpdated? = null
private val managed_bot_created: ManagedBotCreated? = null
) {
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
private val checkedFrom = from ?.takeIf { !it.isFakeTelegramUser() }
@@ -345,7 +346,7 @@ internal data class RawMessage(
suggested_post_declined != null -> suggested_post_declined
suggested_post_paid != null -> suggested_post_paid
suggested_post_refunded != null -> suggested_post_refunded
managed_bot_updated != null -> managed_bot_updated
managed_bot_created != null -> managed_bot_created
else -> null
}
}

View File

@@ -0,0 +1,13 @@
package dev.inmo.tgbotapi.types.update
import dev.inmo.tgbotapi.types.UpdateId
import dev.inmo.tgbotapi.types.managed_bots.ManagedBotUpdated
import dev.inmo.tgbotapi.types.update.abstracts.Update
import kotlinx.serialization.Serializable
@Serializable
data class ManagedBotUpdate(
override val updateId: UpdateId,
override val data: ManagedBotUpdated
) : Update {
}

View File

@@ -12,6 +12,7 @@ import dev.inmo.tgbotapi.types.chat.ChatJoinRequest
import dev.inmo.tgbotapi.types.chat.ChatMessageReactionUpdated
import dev.inmo.tgbotapi.types.chat.ChatMessageReactionsCountUpdated
import dev.inmo.tgbotapi.types.chat.member.ChatMemberUpdated
import dev.inmo.tgbotapi.types.managed_bots.ManagedBotUpdated
import dev.inmo.tgbotapi.types.message.abstracts.*
import dev.inmo.tgbotapi.types.message.payments.PaidMediaPurchased
import dev.inmo.tgbotapi.types.payments.PreCheckoutQuery
@@ -64,6 +65,7 @@ internal data class RawUpdate constructor(
private val edited_business_message: BusinessContentMessage<*>? = null,
private val deleted_business_messages: BusinessMessagesDeleted? = null,
private val purchased_paid_media: PaidMediaPurchased? = null,
private val managed_bot: ManagedBotUpdated? = null,
) {
@Transient
private var initedUpdate: Update? = null
@@ -100,6 +102,7 @@ internal data class RawUpdate constructor(
edited_business_message != null -> EditBusinessMessageUpdate(updateId, edited_business_message)
deleted_business_messages != null -> DeletedBusinessMessageUpdate(updateId, deleted_business_messages)
purchased_paid_media != null -> PaidMediaPurchasedUpdate(updateId, purchased_paid_media)
managed_bot != null -> ManagedBotUpdate(updateId, managed_bot)
else -> UnknownUpdate(
updateId,
raw

View File

@@ -45,6 +45,7 @@ interface FlowsUpdatesFilter : UpdatesFilter {
val editBusinessMessageUpdatesFlow: Flow<EditBusinessMessageUpdate>
val deleteBusinessMessageUpdatesFlow: Flow<DeletedBusinessMessageUpdate>
val paidMediaPurchasedUpdatesFlow: Flow<PaidMediaPurchasedUpdate>
val managedBotUpdatesFlow: Flow<ManagedBotUpdate>
val unknownUpdatesFlow: Flow<UnknownUpdate>
}
@@ -73,6 +74,7 @@ abstract class AbstractFlowsUpdatesFilter : FlowsUpdatesFilter {
override val editBusinessMessageUpdatesFlow: Flow<EditBusinessMessageUpdate> by lazy { allUpdatesFlow.filterIsInstance() }
override val deleteBusinessMessageUpdatesFlow: Flow<DeletedBusinessMessageUpdate> by lazy { allUpdatesFlow.filterIsInstance() }
override val paidMediaPurchasedUpdatesFlow: Flow<PaidMediaPurchasedUpdate> by lazy { allUpdatesFlow.filterIsInstance() }
override val managedBotUpdatesFlow: Flow<ManagedBotUpdate> by lazy { allUpdatesFlow.filterIsInstance() }
}
/**