Skip to content

Commit

Permalink
Version 7.2.1
Browse files Browse the repository at this point in the history
  • Loading branch information
Omar Miatello committed Apr 30, 2024
1 parent 9897c09 commit 224341c
Show file tree
Hide file tree
Showing 7 changed files with 104 additions and 51 deletions.
2 changes: 1 addition & 1 deletion data/telegramapi.html
Original file line number Diff line number Diff line change
Expand Up @@ -13191,4 +13191,4 @@ <h5><a href="//telegram.org/press">Press</a></h5>
</script>
</body>
</html>
<!-- page generated in 64.85ms -->
<!-- page generated in 69.76ms -->
48 changes: 27 additions & 21 deletions example/TelegramModels.kt
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,13 @@
ReactionTypeSerializer::class,
MessageOriginSerializer::class,
ChatBoostSourceSerializer::class,
MenuButtonSerializer::class,
InputFileOrStringSerializer::class,
IntegerOrStringSerializer::class,
KeyboardOptionSerializer::class,
MaybeInaccessibleMessageSerializer::class,
VoiceChatStartedSerializer::class,
VideoChatStartedSerializer::class,
MenuButtonSerializer::class,
)

package com.github.omarmiatello.telegram
Expand Down Expand Up @@ -57,15 +57,21 @@ object InputMediaSerializer : KSerializer<InputMedia> {
sealed class InputMessageContent : TelegramModel()
object InputMessageContentSerializer : KSerializer<InputMessageContent> {
override val descriptor: SerialDescriptor = InputMessageContent.serializer().descriptor
override fun serialize(encoder: Encoder, value: InputMessageContent) = TODO()
override fun serialize(encoder: Encoder, value: InputMessageContent) = when (value) {
is InputTextMessageContent -> encoder.encodeSerializableValue(serializer(), value)
is InputLocationMessageContent -> encoder.encodeSerializableValue(serializer(), value)
is InputVenueMessageContent -> encoder.encodeSerializableValue(serializer(), value)
is InputContactMessageContent -> encoder.encodeSerializableValue(serializer(), value)
is InputInvoiceMessageContent -> encoder.encodeSerializableValue(serializer(), value)
}

override fun deserialize(decoder: Decoder): InputMessageContent = TODO()
}
@Serializable
sealed class InlineQueryResult : TelegramModel()
object InlineQueryResultSerializer : KSerializer<InlineQueryResult> {
override val descriptor: SerialDescriptor = InlineQueryResult.serializer().descriptor
override fun serialize(encoder: Encoder, value: InlineQueryResult) = when (value) {
is InlineQueryResultsButton -> encoder.encodeSerializableValue(serializer(), value)
is InlineQueryResultArticle -> encoder.encodeSerializableValue(serializer(), value)
is InlineQueryResultPhoto -> encoder.encodeSerializableValue(serializer(), value)
is InlineQueryResultGif -> encoder.encodeSerializableValue(serializer(), value)
Expand Down Expand Up @@ -177,6 +183,18 @@ object ChatBoostSourceSerializer : KSerializer<ChatBoostSource> {
override fun deserialize(decoder: Decoder): ChatBoostSource = TODO()
}
@Serializable
sealed class MenuButton : TelegramModel()
object MenuButtonSerializer : KSerializer<MenuButton> {
override val descriptor: SerialDescriptor = MenuButton.serializer().descriptor
override fun serialize(encoder: Encoder, value: MenuButton) = when (value) {
is MenuButtonCommands -> encoder.encodeSerializableValue(serializer(), value)
is MenuButtonWebApp -> encoder.encodeSerializableValue(serializer(), value)
is MenuButtonDefault -> encoder.encodeSerializableValue(serializer(), value)
}

override fun deserialize(decoder: Decoder): MenuButton = TODO()
}
@Serializable
sealed class InputFileOrString : TelegramModel()
object InputFileOrStringSerializer : KSerializer<InputFileOrString> {
override val descriptor: SerialDescriptor = InputFileOrString.serializer().descriptor
Expand Down Expand Up @@ -229,18 +247,6 @@ object VideoChatStartedSerializer : KSerializer<VideoChatStarted> {
override fun deserialize(decoder: Decoder): VideoChatStarted = TODO()
}
@Serializable
sealed class MenuButton : TelegramModel()
object MenuButtonSerializer : KSerializer<MenuButton> {
override val descriptor: SerialDescriptor = MenuButton.serializer().descriptor
override fun serialize(encoder: Encoder, value: MenuButton) = when (value) {
is MenuButtonCommands -> encoder.encodeSerializableValue(serializer(), value)
is MenuButtonWebApp -> encoder.encodeSerializableValue(serializer(), value)
is MenuButtonDefault -> encoder.encodeSerializableValue(serializer(), value)
}

override fun deserialize(decoder: Decoder): MenuButton = TODO()
}
@Serializable
data class TelegramResponse<T>(val ok: Boolean, val result: T? = null)

// --- Utility ---
Expand Down Expand Up @@ -3511,7 +3517,7 @@ data class InlineQueryResultsButton(
val text: String,
val web_app: WebAppInfo? = null,
val start_parameter: String? = null,
) : InlineQueryResult() {
) : TelegramModel() {
override fun toJson() = json.encodeToString(serializer(), this)
companion object {
fun fromJson(string: String) = json.decodeFromString(serializer(), string)
Expand Down Expand Up @@ -4268,7 +4274,7 @@ data class InputTextMessageContent(
val parse_mode: ParseMode? = null,
val entities: List<MessageEntity>? = null,
val link_preview_options: LinkPreviewOptions? = null,
) : TelegramModel() {
) : InputMessageContent() {
override fun toJson() = json.encodeToString(serializer(), this)
companion object {
fun fromJson(string: String) = json.decodeFromString(serializer(), string)
Expand All @@ -4295,7 +4301,7 @@ data class InputLocationMessageContent(
val live_period: Long? = null,
val heading: Long? = null,
val proximity_alert_radius: Long? = null,
) : TelegramModel() {
) : InputMessageContent() {
override fun toJson() = json.encodeToString(serializer(), this)
companion object {
fun fromJson(string: String) = json.decodeFromString(serializer(), string)
Expand Down Expand Up @@ -4326,7 +4332,7 @@ data class InputVenueMessageContent(
val foursquare_type: String? = null,
val google_place_id: String? = null,
val google_place_type: String? = null,
) : TelegramModel() {
) : InputMessageContent() {
override fun toJson() = json.encodeToString(serializer(), this)
companion object {
fun fromJson(string: String) = json.decodeFromString(serializer(), string)
Expand All @@ -4349,7 +4355,7 @@ data class InputContactMessageContent(
val first_name: String,
val last_name: String? = null,
val vcard: String? = null,
) : TelegramModel() {
) : InputMessageContent() {
override fun toJson() = json.encodeToString(serializer(), this)
companion object {
fun fromJson(string: String) = json.decodeFromString(serializer(), string)
Expand Down Expand Up @@ -4404,7 +4410,7 @@ data class InputInvoiceMessageContent(
val send_phone_number_to_provider: Boolean? = null,
val send_email_to_provider: Boolean? = null,
val is_flexible: Boolean? = null,
) : TelegramModel() {
) : InputMessageContent() {
override fun toJson() = json.encodeToString(serializer(), this)
companion object {
fun fromJson(string: String) = json.decodeFromString(serializer(), string)
Expand Down
14 changes: 7 additions & 7 deletions example/TelegramModelsOnly.kt
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,13 @@ sealed class BotCommandScope : TelegramModel()
sealed class ReactionType : TelegramModel()
sealed class MessageOrigin : TelegramModel()
sealed class ChatBoostSource : TelegramModel()
sealed class MenuButton : TelegramModel()
sealed class InputFileOrString : TelegramModel()
sealed class IntegerOrString : TelegramModel()
sealed class KeyboardOption : TelegramModel()
sealed class MaybeInaccessibleMessage : TelegramModel()
sealed class VoiceChatStarted : TelegramModel()
sealed class VideoChatStarted : TelegramModel()
sealed class MenuButton : TelegramModel()
data class TelegramResponse<T>(val ok: Boolean, val result: T? = null)

// --- Utility ---
Expand Down Expand Up @@ -2565,7 +2565,7 @@ data class InlineQueryResultsButton(
val text: String,
val web_app: WebAppInfo? = null,
val start_parameter: String? = null,
) : InlineQueryResult()
) : TelegramModel()

/**
* <p>Represents a link to an article or web page.</p>
Expand Down Expand Up @@ -3196,7 +3196,7 @@ data class InputTextMessageContent(
val parse_mode: ParseMode? = null,
val entities: List<MessageEntity>? = null,
val link_preview_options: LinkPreviewOptions? = null,
) : TelegramModel()
) : InputMessageContent()

/**
* <p>Represents the <a href="#inputmessagecontent">content</a> of a location message to be sent as the result of an inline query.</p>
Expand All @@ -3217,7 +3217,7 @@ data class InputLocationMessageContent(
val live_period: Long? = null,
val heading: Long? = null,
val proximity_alert_radius: Long? = null,
) : TelegramModel()
) : InputMessageContent()

/**
* <p>Represents the <a href="#inputmessagecontent">content</a> of a venue message to be sent as the result of an inline query.</p>
Expand All @@ -3242,7 +3242,7 @@ data class InputVenueMessageContent(
val foursquare_type: String? = null,
val google_place_id: String? = null,
val google_place_type: String? = null,
) : TelegramModel()
) : InputMessageContent()

/**
* <p>Represents the <a href="#inputmessagecontent">content</a> of a contact message to be sent as the result of an inline query.</p>
Expand All @@ -3259,7 +3259,7 @@ data class InputContactMessageContent(
val first_name: String,
val last_name: String? = null,
val vcard: String? = null,
) : TelegramModel()
) : InputMessageContent()

/**
* <p>Represents the <a href="#inputmessagecontent">content</a> of an invoice message to be sent as the result of an inline query.</p>
Expand Down Expand Up @@ -3308,7 +3308,7 @@ data class InputInvoiceMessageContent(
val send_phone_number_to_provider: Boolean? = null,
val send_email_to_provider: Boolean? = null,
val is_flexible: Boolean? = null,
) : TelegramModel()
) : InputMessageContent()

/**
* <p>Represents a <a href="#inlinequeryresult">result</a> of an inline query that was chosen by the user and sent to their chat partner.</p><p><strong>Note:</strong> It is necessary to enable <a href="/bots/inline#collecting-feedback">inline feedback</a> via <a href="https://t.me/botfather">@BotFather</a> in order to receive these objects in updates.</p>
Expand Down
Loading

0 comments on commit 224341c

Please sign in to comment.