mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI.git
synced 2026-04-10 03:52:33 +00:00
add support of PollOptionAdded and PolloptionDeleted
This commit is contained in:
@@ -10899,7 +10899,10 @@ public final class dev/inmo/tgbotapi/types/CommonKt {
|
||||
public static final field openingHoursField Ljava/lang/String;
|
||||
public static final field openingMinuteField Ljava/lang/String;
|
||||
public static final field optionIdsField Ljava/lang/String;
|
||||
public static final field optionPersistentIdField Ljava/lang/String;
|
||||
public static final field optionPersistentIdsField Ljava/lang/String;
|
||||
public static final field optionTextEntitiesField Ljava/lang/String;
|
||||
public static final field optionTextField Ljava/lang/String;
|
||||
public static final field optionsField Ljava/lang/String;
|
||||
public static final field orderInfoField Ljava/lang/String;
|
||||
public static final field originField Ljava/lang/String;
|
||||
@@ -10936,6 +10939,7 @@ public final class dev/inmo/tgbotapi/types/CommonKt {
|
||||
public static final field pngStickerField Ljava/lang/String;
|
||||
public static final field pointField Ljava/lang/String;
|
||||
public static final field pollIdField Ljava/lang/String;
|
||||
public static final field pollMessageField Ljava/lang/String;
|
||||
public static final field positionField Ljava/lang/String;
|
||||
public static final field postCodeField Ljava/lang/String;
|
||||
public static final field postToChatPageField Ljava/lang/String;
|
||||
@@ -31998,6 +32002,62 @@ public final class dev/inmo/tgbotapi/types/polls/PollOption$Simple$Companion {
|
||||
public final fun serializer ()Lkotlinx/serialization/KSerializer;
|
||||
}
|
||||
|
||||
public final class dev/inmo/tgbotapi/types/polls/PollOptionAdded : dev/inmo/tgbotapi/types/message/ChatEvents/abstracts/CommonEvent {
|
||||
public static final field Companion Ldev/inmo/tgbotapi/types/polls/PollOptionAdded$Companion;
|
||||
public synthetic fun <init> (Ldev/inmo/tgbotapi/types/message/abstracts/Message;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
|
||||
public synthetic fun <init> (Ldev/inmo/tgbotapi/types/message/abstracts/Message;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lkotlin/jvm/internal/DefaultConstructorMarker;)V
|
||||
public final fun component1 ()Ldev/inmo/tgbotapi/types/message/abstracts/Message;
|
||||
public final fun component2--sSIB8c ()Ljava/lang/String;
|
||||
public final fun component3 ()Ljava/lang/String;
|
||||
public final fun component4 ()Ljava/util/List;
|
||||
public final fun copy-W9ZM0iI (Ldev/inmo/tgbotapi/types/message/abstracts/Message;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)Ldev/inmo/tgbotapi/types/polls/PollOptionAdded;
|
||||
public static synthetic fun copy-W9ZM0iI$default (Ldev/inmo/tgbotapi/types/polls/PollOptionAdded;Ldev/inmo/tgbotapi/types/message/abstracts/Message;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;ILjava/lang/Object;)Ldev/inmo/tgbotapi/types/polls/PollOptionAdded;
|
||||
public fun equals (Ljava/lang/Object;)Z
|
||||
public final fun getOptionPersistentId--sSIB8c ()Ljava/lang/String;
|
||||
public final fun getOptionText ()Ljava/lang/String;
|
||||
public final fun getOptionTextSources ()Ljava/util/List;
|
||||
public final fun getPollMessage ()Ldev/inmo/tgbotapi/types/message/abstracts/Message;
|
||||
public fun hashCode ()I
|
||||
public fun toString ()Ljava/lang/String;
|
||||
}
|
||||
|
||||
public final class dev/inmo/tgbotapi/types/polls/PollOptionAdded$Companion : kotlinx/serialization/KSerializer {
|
||||
public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/inmo/tgbotapi/types/polls/PollOptionAdded;
|
||||
public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object;
|
||||
public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor;
|
||||
public fun serialize (Lkotlinx/serialization/encoding/Encoder;Ldev/inmo/tgbotapi/types/polls/PollOptionAdded;)V
|
||||
public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V
|
||||
public final fun serializer ()Lkotlinx/serialization/KSerializer;
|
||||
}
|
||||
|
||||
public final class dev/inmo/tgbotapi/types/polls/PollOptionDeleted : dev/inmo/tgbotapi/types/message/ChatEvents/abstracts/CommonEvent {
|
||||
public static final field Companion Ldev/inmo/tgbotapi/types/polls/PollOptionDeleted$Companion;
|
||||
public synthetic fun <init> (Ldev/inmo/tgbotapi/types/message/abstracts/Message;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
|
||||
public synthetic fun <init> (Ldev/inmo/tgbotapi/types/message/abstracts/Message;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lkotlin/jvm/internal/DefaultConstructorMarker;)V
|
||||
public final fun component1 ()Ldev/inmo/tgbotapi/types/message/abstracts/Message;
|
||||
public final fun component2--sSIB8c ()Ljava/lang/String;
|
||||
public final fun component3 ()Ljava/lang/String;
|
||||
public final fun component4 ()Ljava/util/List;
|
||||
public final fun copy-W9ZM0iI (Ldev/inmo/tgbotapi/types/message/abstracts/Message;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)Ldev/inmo/tgbotapi/types/polls/PollOptionDeleted;
|
||||
public static synthetic fun copy-W9ZM0iI$default (Ldev/inmo/tgbotapi/types/polls/PollOptionDeleted;Ldev/inmo/tgbotapi/types/message/abstracts/Message;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;ILjava/lang/Object;)Ldev/inmo/tgbotapi/types/polls/PollOptionDeleted;
|
||||
public fun equals (Ljava/lang/Object;)Z
|
||||
public final fun getOptionPersistentId--sSIB8c ()Ljava/lang/String;
|
||||
public final fun getOptionText ()Ljava/lang/String;
|
||||
public final fun getOptionTextSources ()Ljava/util/List;
|
||||
public final fun getPollMessage ()Ldev/inmo/tgbotapi/types/message/abstracts/Message;
|
||||
public fun hashCode ()I
|
||||
public fun toString ()Ljava/lang/String;
|
||||
}
|
||||
|
||||
public final class dev/inmo/tgbotapi/types/polls/PollOptionDeleted$Companion : kotlinx/serialization/KSerializer {
|
||||
public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/inmo/tgbotapi/types/polls/PollOptionDeleted;
|
||||
public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object;
|
||||
public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor;
|
||||
public fun serialize (Lkotlinx/serialization/encoding/Encoder;Ldev/inmo/tgbotapi/types/polls/PollOptionDeleted;)V
|
||||
public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V
|
||||
public final fun serializer ()Lkotlinx/serialization/KSerializer;
|
||||
}
|
||||
|
||||
public final class dev/inmo/tgbotapi/types/polls/PollOptionPersistentId {
|
||||
public static final field Companion Ldev/inmo/tgbotapi/types/polls/PollOptionPersistentId$Companion;
|
||||
public static final synthetic fun box-impl (Ljava/lang/String;)Ldev/inmo/tgbotapi/types/polls/PollOptionPersistentId;
|
||||
|
||||
@@ -323,6 +323,10 @@ const val activeUsernamesField = "active_usernames"
|
||||
const val customTitleField = "custom_title"
|
||||
const val optionIdsField = "option_ids"
|
||||
const val optionPersistentIdsField = "option_persistent_ids"
|
||||
const val optionPersistentIdField = "option_persistent_id"
|
||||
const val optionTextField = "option_text"
|
||||
const val optionTextEntitiesField = "option_text_entities"
|
||||
const val pollMessageField = "poll_message"
|
||||
const val parentChatField = "parent_chat"
|
||||
const val voterChatField = "voter_chat"
|
||||
const val ipAddressField = "ip_address"
|
||||
|
||||
@@ -20,6 +20,8 @@ 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.polls.PollOptionAdded
|
||||
import dev.inmo.tgbotapi.types.polls.PollOptionDeleted
|
||||
import dev.inmo.tgbotapi.types.message.ChatEvents.*
|
||||
import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.*
|
||||
import dev.inmo.tgbotapi.types.message.ChatEvents.forum.ForumTopicClosed
|
||||
@@ -207,7 +209,9 @@ 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_created: ManagedBotCreated? = null
|
||||
private val managed_bot_created: ManagedBotCreated? = null,
|
||||
private val poll_option_added: PollOptionAdded? = null,
|
||||
private val poll_option_deleted: PollOptionDeleted? = null,
|
||||
) {
|
||||
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
|
||||
private val checkedFrom = from ?.takeIf { !it.isFakeTelegramUser() }
|
||||
@@ -347,6 +351,8 @@ internal data class RawMessage(
|
||||
suggested_post_paid != null -> suggested_post_paid
|
||||
suggested_post_refunded != null -> suggested_post_refunded
|
||||
managed_bot_created != null -> managed_bot_created
|
||||
poll_option_added != null -> poll_option_added
|
||||
poll_option_deleted != null -> poll_option_deleted
|
||||
else -> null
|
||||
}
|
||||
}
|
||||
|
||||
@@ -60,7 +60,7 @@ sealed interface PollOption : TextedInput {
|
||||
|
||||
@Serializable(PollOption.LatelyAdded.Companion::class)
|
||||
sealed interface LatelyAdded : PollOption {
|
||||
val additionDate: TelegramDate?
|
||||
val additionDate: TelegramDate
|
||||
|
||||
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
|
||||
@Serializable(PollOption.LatelyAdded.Companion::class)
|
||||
@@ -77,7 +77,7 @@ sealed interface PollOption : TextedInput {
|
||||
val addedByUser: User,
|
||||
@Serializable(TelegramDateSerializer::class)
|
||||
@SerialName(additionDateField)
|
||||
override val additionDate: TelegramDate? = null
|
||||
override val additionDate: TelegramDate
|
||||
) : LatelyAdded {
|
||||
override fun asInput(): InputPollOption = InputPollOption(text, null, textSources)
|
||||
}
|
||||
@@ -97,7 +97,7 @@ sealed interface PollOption : TextedInput {
|
||||
val addedByChat: Chat,
|
||||
@Serializable(TelegramDateSerializer::class)
|
||||
@SerialName(additionDateField)
|
||||
override val additionDate: TelegramDate? = null
|
||||
override val additionDate: TelegramDate
|
||||
) : LatelyAdded {
|
||||
override fun asInput(): InputPollOption = InputPollOption(text, null, textSources)
|
||||
}
|
||||
@@ -110,13 +110,21 @@ sealed interface PollOption : TextedInput {
|
||||
val surrogate = PollOptionSurrogate.serializer().deserialize(decoder)
|
||||
val textSources = surrogate.textEntities.asTextSources(surrogate.text)
|
||||
return when {
|
||||
surrogate.addedByUser != null -> AddedByUser(
|
||||
surrogate.id, surrogate.text, textSources, surrogate.votes,
|
||||
surrogate.addedByUser, surrogate.additionDate
|
||||
surrogate.addedByUser != null && surrogate.additionDate != null -> AddedByUser(
|
||||
id = surrogate.id,
|
||||
text = surrogate.text,
|
||||
textSources = textSources,
|
||||
votes = surrogate.votes,
|
||||
addedByUser = surrogate.addedByUser,
|
||||
additionDate = surrogate.additionDate
|
||||
)
|
||||
surrogate.addedByChat != null -> AddedByChat(
|
||||
surrogate.id, surrogate.text, textSources, surrogate.votes,
|
||||
surrogate.addedByChat, surrogate.additionDate
|
||||
surrogate.addedByChat != null && surrogate.additionDate != null -> AddedByChat(
|
||||
id = surrogate.id,
|
||||
text = surrogate.text,
|
||||
textSources = textSources,
|
||||
votes = surrogate.votes,
|
||||
addedByChat = surrogate.addedByChat,
|
||||
additionDate = surrogate.additionDate
|
||||
)
|
||||
else -> error("LatelyAdded poll option must have either added_by_user or added_by_chat")
|
||||
}
|
||||
@@ -177,7 +185,7 @@ sealed interface PollOption : TextedInput {
|
||||
val surrogate = PollOptionSurrogate.serializer().deserialize(decoder)
|
||||
val textSources = surrogate.textEntities.asTextSources(surrogate.text)
|
||||
return when {
|
||||
surrogate.addedByUser != null -> LatelyAdded.AddedByUser(
|
||||
surrogate.addedByUser != null && surrogate.additionDate != null -> LatelyAdded.AddedByUser(
|
||||
id = surrogate.id,
|
||||
text = surrogate.text,
|
||||
textSources = textSources,
|
||||
@@ -185,7 +193,7 @@ sealed interface PollOption : TextedInput {
|
||||
addedByUser = surrogate.addedByUser,
|
||||
additionDate = surrogate.additionDate
|
||||
)
|
||||
surrogate.addedByChat != null -> LatelyAdded.AddedByChat(
|
||||
surrogate.addedByChat != null && surrogate.additionDate != null -> LatelyAdded.AddedByChat(
|
||||
id = surrogate.id,
|
||||
text = surrogate.text,
|
||||
textSources = textSources,
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
package dev.inmo.tgbotapi.types.polls
|
||||
|
||||
import dev.inmo.tgbotapi.types.*
|
||||
import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.CommonEvent
|
||||
import dev.inmo.tgbotapi.types.message.RawMessageEntity
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.Message
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.TelegramBotAPIMessageDeserializeOnlySerializerClass
|
||||
import dev.inmo.tgbotapi.types.message.asTextSources
|
||||
import dev.inmo.tgbotapi.types.message.textsources.TextSource
|
||||
import dev.inmo.tgbotapi.types.message.toRawMessageEntities
|
||||
import kotlinx.serialization.KSerializer
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.descriptors.SerialDescriptor
|
||||
import kotlinx.serialization.encoding.Decoder
|
||||
import kotlinx.serialization.encoding.Encoder
|
||||
|
||||
@Serializable(PollOptionAdded.Companion::class)
|
||||
data class PollOptionAdded(
|
||||
@SerialName(pollMessageField)
|
||||
val pollMessage: Message? = null,
|
||||
@SerialName(optionPersistentIdField)
|
||||
val optionPersistentId: PollOptionPersistentId,
|
||||
@SerialName(optionTextField)
|
||||
val optionText: String,
|
||||
@SerialName(optionTextEntitiesField)
|
||||
val optionTextSources: List<TextSource> = emptyList(),
|
||||
) : CommonEvent {
|
||||
companion object : KSerializer<PollOptionAdded> {
|
||||
@Serializable
|
||||
private data class Surrogate(
|
||||
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
|
||||
@SerialName(pollMessageField)
|
||||
@Serializable(TelegramBotAPIMessageDeserializeOnlySerializerClass::class)
|
||||
val pollMessage: Message? = null,
|
||||
@SerialName(optionPersistentIdField)
|
||||
val optionPersistentId: PollOptionPersistentId,
|
||||
@SerialName(optionTextField)
|
||||
val optionText: String,
|
||||
@SerialName(optionTextEntitiesField)
|
||||
val optionTextEntities: List<RawMessageEntity> = emptyList(),
|
||||
)
|
||||
|
||||
override val descriptor: SerialDescriptor
|
||||
get() = Surrogate.serializer().descriptor
|
||||
|
||||
override fun deserialize(decoder: Decoder): PollOptionAdded {
|
||||
val surrogate = Surrogate.serializer().deserialize(decoder)
|
||||
return PollOptionAdded(
|
||||
pollMessage = surrogate.pollMessage,
|
||||
optionPersistentId = surrogate.optionPersistentId,
|
||||
optionText = surrogate.optionText,
|
||||
optionTextSources = surrogate.optionTextEntities.asTextSources(surrogate.optionText),
|
||||
)
|
||||
}
|
||||
|
||||
override fun serialize(encoder: Encoder, value: PollOptionAdded) {
|
||||
Surrogate.serializer().serialize(
|
||||
encoder,
|
||||
Surrogate(
|
||||
pollMessage = value.pollMessage,
|
||||
optionPersistentId = value.optionPersistentId,
|
||||
optionText = value.optionText,
|
||||
optionTextEntities = value.optionTextSources.toRawMessageEntities(),
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
package dev.inmo.tgbotapi.types.polls
|
||||
|
||||
import dev.inmo.tgbotapi.types.*
|
||||
import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.CommonEvent
|
||||
import dev.inmo.tgbotapi.types.message.RawMessageEntity
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.Message
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.TelegramBotAPIMessageDeserializeOnlySerializerClass
|
||||
import dev.inmo.tgbotapi.types.message.asTextSources
|
||||
import dev.inmo.tgbotapi.types.message.textsources.TextSource
|
||||
import dev.inmo.tgbotapi.types.message.toRawMessageEntities
|
||||
import kotlinx.serialization.KSerializer
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.descriptors.SerialDescriptor
|
||||
import kotlinx.serialization.encoding.Decoder
|
||||
import kotlinx.serialization.encoding.Encoder
|
||||
|
||||
@Serializable(PollOptionDeleted.Companion::class)
|
||||
data class PollOptionDeleted(
|
||||
@SerialName(pollMessageField)
|
||||
val pollMessage: Message? = null,
|
||||
@SerialName(optionPersistentIdField)
|
||||
val optionPersistentId: PollOptionPersistentId,
|
||||
@SerialName(optionTextField)
|
||||
val optionText: String,
|
||||
@SerialName(optionTextEntitiesField)
|
||||
val optionTextSources: List<TextSource> = emptyList(),
|
||||
) : CommonEvent {
|
||||
companion object : KSerializer<PollOptionDeleted> {
|
||||
@Serializable
|
||||
private data class Surrogate(
|
||||
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
|
||||
@SerialName(pollMessageField)
|
||||
@Serializable(TelegramBotAPIMessageDeserializeOnlySerializerClass::class)
|
||||
val pollMessage: Message? = null,
|
||||
@SerialName(optionPersistentIdField)
|
||||
val optionPersistentId: PollOptionPersistentId,
|
||||
@SerialName(optionTextField)
|
||||
val optionText: String,
|
||||
@SerialName(optionTextEntitiesField)
|
||||
val optionTextEntities: List<RawMessageEntity> = emptyList(),
|
||||
)
|
||||
|
||||
override val descriptor: SerialDescriptor
|
||||
get() = Surrogate.serializer().descriptor
|
||||
|
||||
override fun deserialize(decoder: Decoder): PollOptionDeleted {
|
||||
val surrogate = Surrogate.serializer().deserialize(decoder)
|
||||
return PollOptionDeleted(
|
||||
pollMessage = surrogate.pollMessage,
|
||||
optionPersistentId = surrogate.optionPersistentId,
|
||||
optionText = surrogate.optionText,
|
||||
optionTextSources = surrogate.optionTextEntities.asTextSources(surrogate.optionText),
|
||||
)
|
||||
}
|
||||
|
||||
override fun serialize(encoder: Encoder, value: PollOptionDeleted) {
|
||||
Surrogate.serializer().serialize(
|
||||
encoder,
|
||||
Surrogate(
|
||||
pollMessage = value.pollMessage,
|
||||
optionPersistentId = value.optionPersistentId,
|
||||
optionText = value.optionText,
|
||||
optionTextEntities = value.optionTextSources.toRawMessageEntities(),
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user