From 760e8b04916275a51093dc566627a458515e4bb3 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Tue, 2 Jul 2024 14:55:12 +0600 Subject: [PATCH 01/47] start 15.1.0 --- CHANGELOG.md | 2 ++ gradle.properties | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3db43d5bb2..1cad33ffe9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,7 @@ # TelegramBotAPI changelog +## 15.1.0 + ## 15.0.0 **THIS UPDATE CONTAINS BREAKING CHANGES** diff --git a/gradle.properties b/gradle.properties index e49142cf57..b9514d3953 100644 --- a/gradle.properties +++ b/gradle.properties @@ -6,4 +6,4 @@ kotlin.incremental=true kotlin.incremental.js=true library_group=dev.inmo -library_version=15.0.0 +library_version=15.1.0 From 47a8739db580d71670b88ca1841f0eb66a0b9ec3 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Tue, 2 Jul 2024 15:24:35 +0600 Subject: [PATCH 02/47] update microutils --- CHANGELOG.md | 3 +++ gradle/libs.versions.toml | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1cad33ffe9..2e7bfacb9b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ ## 15.1.0 +* `Version`: + * `MicroUtils`: `0.21.1` -> `0.21.2` + ## 15.0.0 **THIS UPDATE CONTAINS BREAKING CHANGES** diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index ed26264e64..ae72b5fdf6 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -13,7 +13,7 @@ ktor = "2.3.11" ksp = "1.9.23-1.0.20" kotlin-poet = "1.16.0" -microutils = "0.21.1" +microutils = "0.21.2" kslog = "1.3.4" versions = "0.51.0" From e02f74d77d3663104e74436003ad6b56aea400cf Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Tue, 2 Jul 2024 23:18:36 +0600 Subject: [PATCH 03/47] start implement PaidMedia --- .../types/payments/stars/PaidMedia.kt | 105 ++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/payments/stars/PaidMedia.kt diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/payments/stars/PaidMedia.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/payments/stars/PaidMedia.kt new file mode 100644 index 0000000000..03c80ce259 --- /dev/null +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/payments/stars/PaidMedia.kt @@ -0,0 +1,105 @@ +package dev.inmo.tgbotapi.types.payments.stars + +import dev.inmo.tgbotapi.types.* +import dev.inmo.tgbotapi.types.files.PhotoSize +import kotlinx.serialization.EncodeDefault +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 + +sealed interface PaidMedia { + val type: String + + @Serializable + data class Preview( + @SerialName(widthField) + val width: Int? = null, + @SerialName(heightField) + val height: Int? = null, + @SerialName(durationField) + val duration: Int? = null + ) : PaidMedia { + @EncodeDefault + @SerialName(typeField) + override val type: String = Companion.type + + companion object { + val type: String = "preview" + } + } + + @Serializable + data class Photo( + @SerialName(photoField) + val photo: Photo + ) : PaidMedia { + @EncodeDefault + @SerialName(typeField) + override val type: String = Companion.type + + companion object { + val type: String = "photo" + } + } + + @Serializable + data class Video( + @SerialName(videoField) + val video: Video + ) : PaidMedia { + @EncodeDefault + @SerialName(typeField) + override val type: String = Companion.type + + companion object { + val type: String = "video" + } + } + + @Serializable + data class Video( + @SerialName(videoField) + val video: Video + ) : PaidMedia { + @EncodeDefault + @SerialName(typeField) + override val type: String = Companion.type + + companion object { + val type: String = "video" + } + } + + companion object : KSerializer { + @Serializable + private class Surrogate( + @SerialName(typeField) + val type: String, + @SerialName(widthField) + val width: Int? = null, + @SerialName(heightField) + val height: Int? = null, + @SerialName(durationField) + val duration: Int? = null, + @SerialName(photoField) + val photo: Photo? = null, + @SerialName(videoField) + val video: Video? = null + ) + + override val descriptor: SerialDescriptor + get() = TODO("Not yet implemented") + + override fun deserialize(decoder: Decoder): PaidMedia { + TODO("Not yet implemented") + } + + override fun serialize(encoder: Encoder, value: PaidMedia) { + TODO("Not yet implemented") + } + + } +} From 0d4452d0f58eb9ab3334fe2acedbb44aa2c386d4 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Sat, 6 Jul 2024 21:45:15 +0600 Subject: [PATCH 04/47] update PaidMedia --- .../types/payments/stars/PaidMedia.kt | 55 ++++++++++++++----- 1 file changed, 40 insertions(+), 15 deletions(-) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/payments/stars/PaidMedia.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/payments/stars/PaidMedia.kt index 03c80ce259..15db1ad1fd 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/payments/stars/PaidMedia.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/payments/stars/PaidMedia.kt @@ -2,6 +2,7 @@ package dev.inmo.tgbotapi.types.payments.stars import dev.inmo.tgbotapi.types.* import dev.inmo.tgbotapi.types.files.PhotoSize +import dev.inmo.tgbotapi.utils.decodeDataAndJson import kotlinx.serialization.EncodeDefault import kotlinx.serialization.KSerializer import kotlinx.serialization.SerialName @@ -9,7 +10,9 @@ import kotlinx.serialization.Serializable import kotlinx.serialization.descriptors.SerialDescriptor import kotlinx.serialization.encoding.Decoder import kotlinx.serialization.encoding.Encoder +import kotlinx.serialization.json.JsonElement +@Serializable(PaidMedia.Companion::class) sealed interface PaidMedia { val type: String @@ -59,19 +62,12 @@ sealed interface PaidMedia { } } - @Serializable - data class Video( - @SerialName(videoField) - val video: Video - ) : PaidMedia { - @EncodeDefault + @Serializable(PaidMedia.Companion::class) + data class Unknown( @SerialName(typeField) - override val type: String = Companion.type - - companion object { - val type: String = "video" - } - } + override val type: String, + val raw: JsonElement? + ) : PaidMedia companion object : KSerializer { @Serializable @@ -91,14 +87,43 @@ sealed interface PaidMedia { ) override val descriptor: SerialDescriptor - get() = TODO("Not yet implemented") + get() = Surrogate.serializer().descriptor override fun deserialize(decoder: Decoder): PaidMedia { - TODO("Not yet implemented") + val (data, json) = decoder.decodeDataAndJson(Surrogate.serializer()) + val unknown by lazy { + Unknown(data.type, json) + } + return when (data.type) { + Preview.type -> Preview( + data.width, + data.height, + data.duration + ) + Photo.type -> Photo( + data.photo ?: return unknown + ) + Video.type -> Video( + data.video ?: return unknown + ) + else -> unknown + } } override fun serialize(encoder: Encoder, value: PaidMedia) { - TODO("Not yet implemented") + if (value is Unknown && value.raw != null) { + JsonElement.serializer().serialize(encoder, value.raw) + } else { + val surrogate = Surrogate( + value.type, + (value as? Preview) ?.width, + (value as? Preview) ?.height, + (value as? Preview) ?.duration, + (value as? Photo) ?.photo, + (value as? Video) ?.video, + ) + Surrogate.serializer().serialize(encoder, surrogate) + } } } From 6edf4662202a03d54e2e99c04ed73dcc7285ade3 Mon Sep 17 00:00:00 2001 From: bpavuk Date: Sun, 7 Jul 2024 17:45:59 +0300 Subject: [PATCH 05/47] Bot API 7.7 implemented minor changes regarding refunded payments --- .../inmo/tgbotapi/types/message/RawMessage.kt | 2 ++ .../types/payments/RefundedPayment.kt | 23 +++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/payments/RefundedPayment.kt diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/RawMessage.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/RawMessage.kt index d369a13ae3..55d1bf34ec 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/RawMessage.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/RawMessage.kt @@ -30,6 +30,7 @@ import dev.inmo.tgbotapi.types.message.content.MessageContent import dev.inmo.tgbotapi.types.message.payments.* import dev.inmo.tgbotapi.types.passport.PassportData import dev.inmo.tgbotapi.types.payments.Invoice +import dev.inmo.tgbotapi.types.payments.RefundedPayment import dev.inmo.tgbotapi.types.payments.SuccessfulPayment import dev.inmo.tgbotapi.types.polls.Poll import dev.inmo.tgbotapi.types.request.ChatShared @@ -98,6 +99,7 @@ internal data class RawMessage( private val invoice: Invoice? = null, private val dice: Dice? = null, private val successful_payment: SuccessfulPayment? = null, + private val refunded_payment: RefundedPayment? = null, private val giveaway: Giveaway? = null, private val giveaway_winners: GiveawayResults? = null, private val sender_boost_count: Int? = null, diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/payments/RefundedPayment.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/payments/RefundedPayment.kt new file mode 100644 index 0000000000..38d852ea1e --- /dev/null +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/payments/RefundedPayment.kt @@ -0,0 +1,23 @@ +package dev.inmo.tgbotapi.types.payments + +import dev.inmo.tgbotapi.types.* +import dev.inmo.tgbotapi.types.payments.abstracts.Amounted +import dev.inmo.tgbotapi.types.payments.abstracts.Currencied +import dev.inmo.tgbotapi.types.payments.abstracts.Currency +import dev.inmo.tgbotapi.types.payments.abstracts.TelegramPaymentChargeId +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +data class RefundedPayment( + @SerialName(currencyField) + override val currency: Currency, + @SerialName(totalAmountField) + override val amount: Long, + @SerialName(invoicePayloadField) + val invoicePayload: String, + @SerialName(telegramPaymentChargeIdField) + val telegramPaymentChargeId: TelegramPaymentChargeId, + @SerialName(providerPaymentChargeIdField) + val providerPaymentChargeId: String +): Amounted, Currencied From cb33176e8b0f0d95b86422744b849545256543f8 Mon Sep 17 00:00:00 2001 From: bpavuk Date: Sun, 7 Jul 2024 19:48:37 +0300 Subject: [PATCH 06/47] Bot API 7.7 implemented scanQrPopupClosed event --- .../dev/inmo/tgbotapi/webapps/EventType.kt | 1 + .../dev/inmo/tgbotapi/webapps/WebApp.kt | 19 ++++++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/tgbotapi.webapps/src/jsMain/kotlin/dev/inmo/tgbotapi/webapps/EventType.kt b/tgbotapi.webapps/src/jsMain/kotlin/dev/inmo/tgbotapi/webapps/EventType.kt index d40cd1cb85..fc2b32ecc4 100644 --- a/tgbotapi.webapps/src/jsMain/kotlin/dev/inmo/tgbotapi/webapps/EventType.kt +++ b/tgbotapi.webapps/src/jsMain/kotlin/dev/inmo/tgbotapi/webapps/EventType.kt @@ -12,4 +12,5 @@ sealed class EventType(val typeName: String) { object ClipboardTextReceived : EventType("clipboardTextReceived") object WriteAccessRequested : EventType("writeAccessRequested") object ContactRequested : EventType("contactRequested") + object ScanQRPopupClosed : EventType("scanQrPopupClosed") } diff --git a/tgbotapi.webapps/src/jsMain/kotlin/dev/inmo/tgbotapi/webapps/WebApp.kt b/tgbotapi.webapps/src/jsMain/kotlin/dev/inmo/tgbotapi/webapps/WebApp.kt index fe8738feb9..25cbc020d2 100644 --- a/tgbotapi.webapps/src/jsMain/kotlin/dev/inmo/tgbotapi/webapps/WebApp.kt +++ b/tgbotapi.webapps/src/jsMain/kotlin/dev/inmo/tgbotapi/webapps/WebApp.kt @@ -6,7 +6,6 @@ import dev.inmo.tgbotapi.webapps.cloud.CloudStorage import dev.inmo.tgbotapi.webapps.haptic.HapticFeedback import dev.inmo.tgbotapi.webapps.invoice.InvoiceClosedInfo import dev.inmo.tgbotapi.webapps.popup.* -import kotlin.js.Json external class WebApp { val version: String @@ -78,6 +77,8 @@ external class WebApp { internal fun onEventWithContactRequested(type: String, callback: (RequestStatus) -> Unit) @JsName("onEvent") internal fun onEventWithSettingsButtonClicked(type: String, callback: () -> Unit) + @JsName("onEvent") + internal fun onEventWithScanQRPopupClosed(type: String, callback: () -> Unit) fun offEvent(type: String, callback: () -> Unit) @JsName("offEvent") @@ -215,6 +216,18 @@ fun WebApp.onEvent(type: EventType.SettingsButtonClicked, eventHandler: EventHan ) } +/** + * @return The callback which should be used in case you want to turn off events handling + */ +fun WebApp.onEvent(type: EventType.ScanQRPopupClosed, eventHandler: EventHandler) = { + eventHandler(js("this").unsafeCast()) +}.also { + onEventWithScanQRPopupClosed( + type.typeName, + callback = it + ) +} + /** * @return The callback which should be used in case you want to turn off events handling */ @@ -259,6 +272,10 @@ fun WebApp.onWriteAccessRequested(eventHandler: WriteAccessRequestedHandler) = o * @return The callback which should be used in case you want to turn off events handling */ fun WebApp.onContactRequested(eventHandler: ContactRequestedHandler) = onEvent(EventType.ContactRequested, eventHandler) +/** + * @return The callback which should be used in case you want to turn off events handling + */ +fun WebApp.onScanQRPopupClosed(eventHandler: EventHandler) = onEvent(EventType.ScanQRPopupClosed, eventHandler) fun WebApp.isInitDataSafe(botToken: String) = TelegramAPIUrlsKeeper(botToken).checkWebAppData( initData, From b7d3d849eb4b7fd81d3cd2487f98ad79db20e742 Mon Sep 17 00:00:00 2001 From: bpavuk Date: Sun, 7 Jul 2024 19:50:28 +0300 Subject: [PATCH 07/47] optimization and conventions converted some objects with purpose to hold the data to data objects --- .../dev/inmo/tgbotapi/webapps/EventType.kt | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/tgbotapi.webapps/src/jsMain/kotlin/dev/inmo/tgbotapi/webapps/EventType.kt b/tgbotapi.webapps/src/jsMain/kotlin/dev/inmo/tgbotapi/webapps/EventType.kt index fc2b32ecc4..048e99ad16 100644 --- a/tgbotapi.webapps/src/jsMain/kotlin/dev/inmo/tgbotapi/webapps/EventType.kt +++ b/tgbotapi.webapps/src/jsMain/kotlin/dev/inmo/tgbotapi/webapps/EventType.kt @@ -1,16 +1,16 @@ package dev.inmo.tgbotapi.webapps sealed class EventType(val typeName: String) { - object ThemeChanged : EventType("themeChanged") - object ViewportChanged : EventType("viewportChanged") - object MainButtonClicked : EventType("mainButtonClicked") - object BackButtonClicked : EventType("backButtonClicked") - object SettingsButtonClicked : EventType("settingsButtonClicked") - object InvoiceClosed : EventType("invoiceClosed") - object PopupClosed : EventType("popupClosed") - object QRTextReceived : EventType("qrTextReceived") - object ClipboardTextReceived : EventType("clipboardTextReceived") - object WriteAccessRequested : EventType("writeAccessRequested") - object ContactRequested : EventType("contactRequested") - object ScanQRPopupClosed : EventType("scanQrPopupClosed") + data object ThemeChanged : EventType("themeChanged") + data object ViewportChanged : EventType("viewportChanged") + data object MainButtonClicked : EventType("mainButtonClicked") + data object BackButtonClicked : EventType("backButtonClicked") + data object SettingsButtonClicked : EventType("settingsButtonClicked") + data object InvoiceClosed : EventType("invoiceClosed") + data object PopupClosed : EventType("popupClosed") + data object QRTextReceived : EventType("qrTextReceived") + data object ClipboardTextReceived : EventType("clipboardTextReceived") + data object WriteAccessRequested : EventType("writeAccessRequested") + data object ContactRequested : EventType("contactRequested") + data object ScanQRPopupClosed : EventType("scanQrPopupClosed") } From d4698301ad600daf517a40689cb9df366eca9d8c Mon Sep 17 00:00:00 2001 From: bpavuk Date: Sun, 7 Jul 2024 20:05:24 +0300 Subject: [PATCH 08/47] Bot API 7.7 fixed event handler for onScanQRPopupClosed event --- .../src/jsMain/kotlin/dev/inmo/tgbotapi/webapps/EventHandler.kt | 1 + .../src/jsMain/kotlin/dev/inmo/tgbotapi/webapps/WebApp.kt | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/tgbotapi.webapps/src/jsMain/kotlin/dev/inmo/tgbotapi/webapps/EventHandler.kt b/tgbotapi.webapps/src/jsMain/kotlin/dev/inmo/tgbotapi/webapps/EventHandler.kt index ae62aaf2b9..584d54221c 100644 --- a/tgbotapi.webapps/src/jsMain/kotlin/dev/inmo/tgbotapi/webapps/EventHandler.kt +++ b/tgbotapi.webapps/src/jsMain/kotlin/dev/inmo/tgbotapi/webapps/EventHandler.kt @@ -10,3 +10,4 @@ typealias QRTextReceivedEventHandler = WebApp.(String) -> Boolean typealias TextReceivedEventHandler = WebApp.(String) -> Unit typealias WriteAccessRequestedHandler = WebApp.(Boolean) -> Unit typealias ContactRequestedHandler = WebApp.(Boolean) -> Unit +typealias onScanQRPopupClosedHandler = WebApp.() -> Unit diff --git a/tgbotapi.webapps/src/jsMain/kotlin/dev/inmo/tgbotapi/webapps/WebApp.kt b/tgbotapi.webapps/src/jsMain/kotlin/dev/inmo/tgbotapi/webapps/WebApp.kt index 25cbc020d2..8ef1569ca8 100644 --- a/tgbotapi.webapps/src/jsMain/kotlin/dev/inmo/tgbotapi/webapps/WebApp.kt +++ b/tgbotapi.webapps/src/jsMain/kotlin/dev/inmo/tgbotapi/webapps/WebApp.kt @@ -275,7 +275,7 @@ fun WebApp.onContactRequested(eventHandler: ContactRequestedHandler) = onEvent(E /** * @return The callback which should be used in case you want to turn off events handling */ -fun WebApp.onScanQRPopupClosed(eventHandler: EventHandler) = onEvent(EventType.ScanQRPopupClosed, eventHandler) +fun WebApp.onScanQRPopupClosed(eventHandler: onScanQRPopupClosedHandler) = onEvent(EventType.ScanQRPopupClosed, eventHandler) fun WebApp.isInitDataSafe(botToken: String) = TelegramAPIUrlsKeeper(botToken).checkWebAppData( initData, From 44a81868306abd00cb088e07d4c63d8d96e2f001 Mon Sep 17 00:00:00 2001 From: bpavuk Date: Sun, 7 Jul 2024 20:28:18 +0300 Subject: [PATCH 09/47] Bot API 7.7 now WebApp class supports vertical swipes to close and/or minimize the app --- .../src/jsMain/kotlin/dev/inmo/tgbotapi/webapps/WebApp.kt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tgbotapi.webapps/src/jsMain/kotlin/dev/inmo/tgbotapi/webapps/WebApp.kt b/tgbotapi.webapps/src/jsMain/kotlin/dev/inmo/tgbotapi/webapps/WebApp.kt index 8ef1569ca8..47465ef96b 100644 --- a/tgbotapi.webapps/src/jsMain/kotlin/dev/inmo/tgbotapi/webapps/WebApp.kt +++ b/tgbotapi.webapps/src/jsMain/kotlin/dev/inmo/tgbotapi/webapps/WebApp.kt @@ -30,6 +30,10 @@ external class WebApp { val viewportHeight: Float val viewportStableHeight: Float + val isVerticalSwipesEnabled: Boolean + fun enableVerticalSwipes() + fun disableVerticalSwipes() + val isClosingConfirmationEnabled: Boolean fun enableClosingConfirmation() From 8c9f0ae92217e4696019d2ca79376d569033b89d Mon Sep 17 00:00:00 2001 From: bpavuk Date: Sun, 7 Jul 2024 20:46:58 +0300 Subject: [PATCH 10/47] Bot API 7.7 fixed RefundedPayment data class. providerPaymentChargeId is optional --- .../kotlin/dev/inmo/tgbotapi/types/payments/RefundedPayment.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/payments/RefundedPayment.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/payments/RefundedPayment.kt index 38d852ea1e..57da599239 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/payments/RefundedPayment.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/payments/RefundedPayment.kt @@ -19,5 +19,5 @@ data class RefundedPayment( @SerialName(telegramPaymentChargeIdField) val telegramPaymentChargeId: TelegramPaymentChargeId, @SerialName(providerPaymentChargeIdField) - val providerPaymentChargeId: String + val providerPaymentChargeId: String? = null ): Amounted, Currencied From 0457792d9973c64a0fb914d8a96443d2ca8d758d Mon Sep 17 00:00:00 2001 From: bpavuk Date: Sun, 7 Jul 2024 20:56:17 +0300 Subject: [PATCH 11/47] Bot API 7.7 added RefundedPaymentEvent --- .../types/message/payments/RefundedPaymentEvent.kt | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/payments/RefundedPaymentEvent.kt diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/payments/RefundedPaymentEvent.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/payments/RefundedPaymentEvent.kt new file mode 100644 index 0000000000..6e010222c6 --- /dev/null +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/payments/RefundedPaymentEvent.kt @@ -0,0 +1,9 @@ +package dev.inmo.tgbotapi.types.message.payments + +import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.CommonEvent +import dev.inmo.tgbotapi.types.message.payments.abstracts.PaymentInfo +import dev.inmo.tgbotapi.types.payments.RefundedPayment + +data class RefundedPaymentEvent( + val payment: RefundedPayment +) : PaymentInfo, CommonEvent From 1eef5bb239c9d7de1675ba17130939676060b614 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Mon, 8 Jul 2024 00:18:54 +0600 Subject: [PATCH 12/47] temporal progress on adding support of paid media --- .../tgbotapi/extensions/api/edit/Edits.kt | 8 +- .../extensions/api/edit/InlineEdits.kt | 4 +- .../api/edit/media/EditChatMessageMedia.kt | 8 +- .../api/edit/media/EditInlineMessageMedia.kt | 4 +- .../edit/abstracts/EditMediaMessage.kt | 4 +- .../edit/media/EditChatMessageMedia.kt | 4 +- .../edit/media/EditInlineMessageMedia.kt | 4 +- .../requests/send/media/SendMediaGroup.kt | 3 +- .../requests/send/media/SendPaidMediaGroup.kt | 209 ++++++++++++++++++ .../kotlin/dev/inmo/tgbotapi/types/Common.kt | 1 + .../inmo/tgbotapi/types/files/PhotoSize.kt | 2 +- .../types/files/UsefulAsPaidMediaFile.kt | 3 + .../inmo/tgbotapi/types/files/VideoFile.kt | 11 +- ...GroupMemberTelegramFreeMediaSerializer.kt} | 8 +- .../media/MediaGroupMemberTelegramMedia.kt | 30 +-- ...aGroupMemberTelegramPaidMediaSerializer.kt | 38 ++++ .../{payments/stars => media}/PaidMedia.kt | 12 +- .../tgbotapi/types/media/TelegramFreeMedia.kt | 9 + .../types/media/TelegramMediaAnimation.kt | 2 +- .../types/media/TelegramMediaAudio.kt | 2 +- .../types/media/TelegramMediaDocument.kt | 2 +- .../types/media/TelegramMediaPhoto.kt | 2 +- .../types/media/TelegramMediaSerializer.kt | 2 + .../types/media/TelegramMediaVideo.kt | 2 +- .../tgbotapi/types/media/TelegramPaidMedia.kt | 9 + .../types/media/TelegramPaidMediaPhoto.kt | 33 +++ .../types/media/TelegramPaidMediaVideo.kt | 38 ++++ .../types/message/content/Abstracts.kt | 1 + .../message/content/MediaGroupContent.kt | 4 +- .../message/content/PaidMediaInfoContent.kt | 40 ++++ .../dev/inmo/tgbotapi/SimpleInputFilesTest.kt | 6 +- .../tgbotapi/extensions/utils/ClassCasts.kt | 78 +++---- .../extensions/utils/ClassCastsNew.kt | 92 ++++---- 33 files changed, 535 insertions(+), 140 deletions(-) create mode 100644 tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendPaidMediaGroup.kt create mode 100644 tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/files/UsefulAsPaidMediaFile.kt rename tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/{MediaGroupMemberTelegramMediaSerializer.kt => MediaGroupMemberTelegramFreeMediaSerializer.kt} (88%) create mode 100644 tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/MediaGroupMemberTelegramPaidMediaSerializer.kt rename tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/{payments/stars => media}/PaidMedia.kt (94%) create mode 100644 tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramFreeMedia.kt create mode 100644 tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramPaidMedia.kt create mode 100644 tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramPaidMediaPhoto.kt create mode 100644 tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramPaidMediaVideo.kt create mode 100644 tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/PaidMediaInfoContent.kt diff --git a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/edit/Edits.kt b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/edit/Edits.kt index 5b7480c5b6..09666ed92c 100644 --- a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/edit/Edits.kt +++ b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/edit/Edits.kt @@ -12,7 +12,7 @@ import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId import dev.inmo.tgbotapi.types.buttons.InlineKeyboardMarkup import dev.inmo.tgbotapi.types.chat.Chat import dev.inmo.tgbotapi.types.location.LiveLocation -import dev.inmo.tgbotapi.types.media.TelegramMedia +import dev.inmo.tgbotapi.types.media.TelegramFreeMedia import dev.inmo.tgbotapi.types.message.ParseMode import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage import dev.inmo.tgbotapi.types.message.abstracts.AccessibleMessage @@ -145,7 +145,7 @@ suspend fun TelegramBot.edit( suspend fun TelegramBot.edit( chatId: ChatIdentifier, messageId: MessageId, - media: TelegramMedia, + media: TelegramFreeMedia, businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId, replyMarkup: InlineKeyboardMarkup? = null ) = editMessageMedia(chatId, messageId, media, businessConnectionId, replyMarkup) @@ -157,7 +157,7 @@ suspend fun TelegramBot.edit( suspend fun TelegramBot.edit( chat: Chat, messageId: MessageId, - media: TelegramMedia, + media: TelegramFreeMedia, businessConnectionId: BusinessConnectionId? = chat.id.businessConnectionId, replyMarkup: InlineKeyboardMarkup? = null ) = editMessageMedia(chat, messageId, media, businessConnectionId, replyMarkup) @@ -168,7 +168,7 @@ suspend fun TelegramBot.edit( */ suspend fun TelegramBot.edit( message: ContentMessage, - media: TelegramMedia, + media: TelegramFreeMedia, businessConnectionId: BusinessConnectionId? = message.chat.id.businessConnectionId, replyMarkup: InlineKeyboardMarkup? = null ) = editMessageMedia(message, media, businessConnectionId, replyMarkup) diff --git a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/edit/InlineEdits.kt b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/edit/InlineEdits.kt index 1c202a886b..70429696e9 100644 --- a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/edit/InlineEdits.kt +++ b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/edit/InlineEdits.kt @@ -8,7 +8,7 @@ import dev.inmo.tgbotapi.extensions.api.edit.text.editMessageText import dev.inmo.tgbotapi.types.* import dev.inmo.tgbotapi.types.buttons.InlineKeyboardMarkup import dev.inmo.tgbotapi.types.location.LiveLocation -import dev.inmo.tgbotapi.types.media.TelegramMedia +import dev.inmo.tgbotapi.types.media.TelegramFreeMedia import dev.inmo.tgbotapi.types.message.ParseMode import dev.inmo.tgbotapi.types.message.textsources.TextSource import dev.inmo.tgbotapi.types.message.textsources.TextSourcesList @@ -47,7 +47,7 @@ suspend fun TelegramBot.edit( */ suspend fun TelegramBot.edit( messageId: InlineMessageId, - media: TelegramMedia, + media: TelegramFreeMedia, replyMarkup: InlineKeyboardMarkup? = null ) = editMessageMedia(messageId, media, replyMarkup) diff --git a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/edit/media/EditChatMessageMedia.kt b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/edit/media/EditChatMessageMedia.kt index f8aed69af4..8611e6e6c5 100644 --- a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/edit/media/EditChatMessageMedia.kt +++ b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/edit/media/EditChatMessageMedia.kt @@ -3,7 +3,7 @@ package dev.inmo.tgbotapi.extensions.api.edit.media import dev.inmo.tgbotapi.bot.TelegramBot import dev.inmo.tgbotapi.requests.edit.media.EditChatMessageMedia import dev.inmo.tgbotapi.types.ChatIdentifier -import dev.inmo.tgbotapi.types.media.TelegramMedia +import dev.inmo.tgbotapi.types.media.TelegramFreeMedia import dev.inmo.tgbotapi.types.MessageId import dev.inmo.tgbotapi.types.businessConnectionId import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId @@ -19,7 +19,7 @@ import dev.inmo.tgbotapi.types.message.content.MediaContent suspend fun TelegramBot.editMessageMedia( chatId: ChatIdentifier, messageId: MessageId, - media: TelegramMedia, + media: TelegramFreeMedia, businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId, replyMarkup: InlineKeyboardMarkup? = null ) = execute( @@ -33,7 +33,7 @@ suspend fun TelegramBot.editMessageMedia( suspend fun TelegramBot.editMessageMedia( chat: Chat, messageId: MessageId, - media: TelegramMedia, + media: TelegramFreeMedia, businessConnectionId: BusinessConnectionId? = chat.id.businessConnectionId, replyMarkup: InlineKeyboardMarkup? = null ) = editMessageMedia(chat.id, messageId, media, businessConnectionId, replyMarkup) @@ -44,7 +44,7 @@ suspend fun TelegramBot.editMessageMedia( */ suspend fun TelegramBot.editMessageMedia( message: ContentMessage, - media: TelegramMedia, + media: TelegramFreeMedia, businessConnectionId: BusinessConnectionId? = message.chat.id.businessConnectionId, replyMarkup: InlineKeyboardMarkup? = null ) = editMessageMedia(message.chat.id, message.messageId, media, businessConnectionId, replyMarkup) diff --git a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/edit/media/EditInlineMessageMedia.kt b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/edit/media/EditInlineMessageMedia.kt index 000f2d5b6d..3272f78db6 100644 --- a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/edit/media/EditInlineMessageMedia.kt +++ b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/edit/media/EditInlineMessageMedia.kt @@ -3,7 +3,7 @@ package dev.inmo.tgbotapi.extensions.api.edit.media import dev.inmo.tgbotapi.bot.TelegramBot import dev.inmo.tgbotapi.requests.edit.media.EditInlineMessageMedia import dev.inmo.tgbotapi.types.InlineMessageId -import dev.inmo.tgbotapi.types.media.TelegramMedia +import dev.inmo.tgbotapi.types.media.TelegramFreeMedia import dev.inmo.tgbotapi.types.buttons.InlineKeyboardMarkup /** @@ -12,6 +12,6 @@ import dev.inmo.tgbotapi.types.buttons.InlineKeyboardMarkup */ suspend fun TelegramBot.editMessageMedia( inlineMessageId: InlineMessageId, - media: TelegramMedia, + media: TelegramFreeMedia, replyMarkup: InlineKeyboardMarkup? = null ) = execute(EditInlineMessageMedia(inlineMessageId, media, replyMarkup)) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/edit/abstracts/EditMediaMessage.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/edit/abstracts/EditMediaMessage.kt index ec68b4aff0..5edd956590 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/edit/abstracts/EditMediaMessage.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/edit/abstracts/EditMediaMessage.kt @@ -1,7 +1,7 @@ package dev.inmo.tgbotapi.requests.edit.abstracts -import dev.inmo.tgbotapi.types.media.TelegramMedia +import dev.inmo.tgbotapi.types.media.TelegramFreeMedia interface EditMediaMessage { - val media: TelegramMedia + val media: TelegramFreeMedia } diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/edit/media/EditChatMessageMedia.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/edit/media/EditChatMessageMedia.kt index 6df690d2f6..a5afd389a5 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/edit/media/EditChatMessageMedia.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/edit/media/EditChatMessageMedia.kt @@ -4,7 +4,7 @@ import dev.inmo.tgbotapi.requests.abstracts.MultipartFile import dev.inmo.tgbotapi.requests.edit.abstracts.* import dev.inmo.tgbotapi.types.* import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId -import dev.inmo.tgbotapi.types.media.TelegramMedia +import dev.inmo.tgbotapi.types.media.TelegramFreeMedia import dev.inmo.tgbotapi.types.buttons.InlineKeyboardMarkup import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage import dev.inmo.tgbotapi.types.message.abstracts.TelegramBotAPIMessageDeserializationStrategyClass @@ -22,7 +22,7 @@ data class EditChatMessageMedia( @SerialName(messageIdField) override val messageId: MessageId, @SerialName(mediaField) - override val media: TelegramMedia, + override val media: TelegramFreeMedia, @SerialName(businessConnectionIdField) override val businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId, @SerialName(replyMarkupField) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/edit/media/EditInlineMessageMedia.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/edit/media/EditInlineMessageMedia.kt index 2f04cfd043..a6a8fecfa6 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/edit/media/EditInlineMessageMedia.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/edit/media/EditInlineMessageMedia.kt @@ -3,7 +3,7 @@ package dev.inmo.tgbotapi.requests.edit.media import dev.inmo.tgbotapi.requests.abstracts.MultipartFile import dev.inmo.tgbotapi.requests.edit.abstracts.* import dev.inmo.tgbotapi.types.* -import dev.inmo.tgbotapi.types.media.TelegramMedia +import dev.inmo.tgbotapi.types.media.TelegramFreeMedia import dev.inmo.tgbotapi.types.buttons.InlineKeyboardMarkup import kotlinx.serialization.* @@ -12,7 +12,7 @@ data class EditInlineMessageMedia( @SerialName(inlineMessageIdField) override val inlineMessageId: InlineMessageId, @SerialName(mediaField) - override val media: TelegramMedia, + override val media: TelegramFreeMedia, @SerialName(replyMarkupField) override val replyMarkup: InlineKeyboardMarkup? = null ) : EditInlineMessage, EditReplyMessage, EditMediaMessage { diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendMediaGroup.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendMediaGroup.kt index 360d8fb440..236f062036 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendMediaGroup.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendMediaGroup.kt @@ -4,7 +4,6 @@ import dev.inmo.tgbotapi.requests.abstracts.MultipartFile import dev.inmo.tgbotapi.requests.abstracts.Request import dev.inmo.tgbotapi.requests.common.CommonMultipartFileRequest import dev.inmo.tgbotapi.requests.send.abstracts.SendContentMessageRequest -import dev.inmo.tgbotapi.requests.send.abstracts.SendMessageRequest import dev.inmo.tgbotapi.requests.send.media.base.* import dev.inmo.tgbotapi.types.* import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId @@ -193,7 +192,7 @@ data class SendMediaGroupData internal constructor( private val convertedMedia: String get() = buildJsonArray { media.forEach { - add(it.toJsonWithoutNulls(MediaGroupMemberTelegramMediaSerializer)) + add(it.toJsonWithoutNulls(MediaGroupMemberTelegramFreeMediaSerializer)) } }.toString() diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendPaidMediaGroup.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendPaidMediaGroup.kt new file mode 100644 index 0000000000..ed2433d964 --- /dev/null +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendPaidMediaGroup.kt @@ -0,0 +1,209 @@ +package dev.inmo.tgbotapi.requests.send.media + +import dev.inmo.tgbotapi.requests.abstracts.MultipartFile +import dev.inmo.tgbotapi.requests.abstracts.Request +import dev.inmo.tgbotapi.requests.common.CommonMultipartFileRequest +import dev.inmo.tgbotapi.requests.send.abstracts.SendContentMessageRequest +import dev.inmo.tgbotapi.requests.send.media.base.* +import dev.inmo.tgbotapi.types.* +import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId +import dev.inmo.tgbotapi.types.media.* +import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage +import dev.inmo.tgbotapi.types.message.abstracts.PossiblySentViaBotCommonMessage +import dev.inmo.tgbotapi.types.message.abstracts.TelegramBotAPIMessageDeserializeOnlySerializerClass +import dev.inmo.tgbotapi.types.message.content.MediaGroupPartContent +import dev.inmo.tgbotapi.types.message.content.VisualMediaGroupPartContent +import dev.inmo.tgbotapi.types.message.content.AudioContent +import dev.inmo.tgbotapi.types.message.content.DocumentContent +import dev.inmo.tgbotapi.types.message.content.MediaGroupContent +import dev.inmo.tgbotapi.utils.* +import dev.inmo.tgbotapi.utils.extensions.asMediaGroupMessage +import kotlinx.serialization.* +import kotlinx.serialization.builtins.ListSerializer +import kotlinx.serialization.descriptors.SerialDescriptor +import kotlinx.serialization.encoding.Decoder +import kotlinx.serialization.encoding.Encoder +import kotlinx.serialization.json.buildJsonArray + +const val rawSendingMediaGroupsWarning = "Media groups contains restrictions related to combinations of media" + + " types. Currently it is possible to combine photo + video OR audio OR documents" + +@RiskFeature(rawSendingMediaGroupsWarning) +fun SendMediaGroup( + chatId: ChatIdentifier, + media: List, + threadId: MessageThreadId? = chatId.threadId, + businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId, + disableNotification: Boolean = false, + protectContent: Boolean = false, + effectId: EffectId? = null, + replyParameters: ReplyParameters? = null +): Request>> { + if (media.size !in mediaCountInMediaGroup) { + throwRangeError("Count of members in media group", mediaCountInMediaGroup, media.size) + } + + val files: List = media.flatMap { + listOfNotNull( + it.file as? MultipartFile, + if (it is ThumbedTelegramMedia) { + it.thumb as? MultipartFile + } else { + null + } + ) + } + + val data = SendMediaGroupData( + chatId = chatId, + media = media, + threadId = threadId, + businessConnectionId = businessConnectionId, + disableNotification = disableNotification, + protectContent = protectContent, + effectId = effectId, + replyParameters = replyParameters + ) + + return (if (files.isEmpty()) { + data + } else { + CommonMultipartFileRequest( + data, + files.associateBy { it.fileId } + ) + }) as Request>> +} + +/** + * Use this method to be sure that you are correctly sending playlist with audios + * + * @see TelegramMediaAudio + */ +@Suppress("NOTHING_TO_INLINE") +inline fun SendPlaylist( + chatId: ChatIdentifier, + media: List, + threadId: MessageThreadId? = chatId.threadId, + businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId, + disableNotification: Boolean = false, + protectContent: Boolean = false, + effectId: EffectId? = null, + replyParameters: ReplyParameters? = null +) = SendMediaGroup( + chatId = chatId, + media = media, + threadId = threadId, + businessConnectionId = businessConnectionId, + disableNotification = disableNotification, + protectContent = protectContent, + effectId = effectId, + replyParameters = replyParameters +) + +/** + * Use this method to be sure that you are correctly sending documents media group + * + * @see TelegramMediaDocument + */ +@Suppress("NOTHING_TO_INLINE") +inline fun SendDocumentsGroup( + chatId: ChatIdentifier, + media: List, + threadId: MessageThreadId? = chatId.threadId, + businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId, + disableNotification: Boolean = false, + protectContent: Boolean = false, + effectId: EffectId? = null, + replyParameters: ReplyParameters? = null +) = SendMediaGroup( + chatId = chatId, + media = media, + threadId = threadId, + businessConnectionId = businessConnectionId, + disableNotification = disableNotification, + protectContent = protectContent, + effectId = effectId, + replyParameters = replyParameters +) + +/** + * Use this method to be sure that you are correctly sending visual media group + * + * @see TelegramMediaPhoto + * @see TelegramMediaVideo + */ +@Suppress("NOTHING_TO_INLINE") +inline fun SendVisualMediaGroup( + chatId: ChatIdentifier, + media: List, + threadId: MessageThreadId? = chatId.threadId, + businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId, + disableNotification: Boolean = false, + protectContent: Boolean = false, + effectId: EffectId? = null, + replyParameters: ReplyParameters? = null, +) = SendMediaGroup( + chatId = chatId, + media = media, + threadId = threadId, + businessConnectionId = businessConnectionId, + disableNotification = disableNotification, + protectContent = protectContent, + effectId = effectId, + replyParameters = replyParameters +) + +private object MessagesListSerializer: KSerializer>> { + private val serializer = ListSerializer(TelegramBotAPIMessageDeserializeOnlySerializerClass>()) + override val descriptor: SerialDescriptor = serializer.descriptor + + override fun deserialize(decoder: Decoder): PossiblySentViaBotCommonMessage> { + val messages = serializer.deserialize(decoder) + return messages.asMediaGroupMessage() + } + + override fun serialize(encoder: Encoder, value: PossiblySentViaBotCommonMessage>) { + serializer.serialize(encoder, value.content.group.map { it.sourceMessage }) + } + +} + +@Serializable +data class SendMediaGroupData internal constructor( + @SerialName(chatIdField) + override val chatId: ChatIdentifier, + val media: List = emptyList(), + @SerialName(messageThreadIdField) + override val threadId: MessageThreadId? = chatId.threadId, + @SerialName(businessConnectionIdField) + override val businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId, + @SerialName(disableNotificationField) + override val disableNotification: Boolean = false, + @SerialName(protectContentField) + override val protectContent: Boolean = false, + @SerialName(messageEffectIdField) + override val effectId: EffectId? = null, + @SerialName(replyParametersField) + override val replyParameters: ReplyParameters? = null, +) : DataRequest>>, + SendContentMessageRequest>> { + @SerialName(mediaField) + private val convertedMedia: String + get() = buildJsonArray { + media.forEach { + add(it.toJsonWithoutNulls(MediaGroupMemberTelegramFreeMediaSerializer)) + } + }.toString() + + + override fun method(): String = "sendMediaGroup" + override val requestSerializer: SerializationStrategy<*> + get() = serializer() + override val resultDeserializer: DeserializationStrategy>> + get() = MessagesListSerializer +} + +data class SendMediaGroupFiles internal constructor( + val files: List +) : Files by (files.map { it.fileId to it }.toMap()) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/Common.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/Common.kt index 806e814634..6fa5e357b5 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/Common.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/Common.kt @@ -229,6 +229,7 @@ const val canDeleteStoriesField = "can_delete_stories" const val captionEntitiesField = "caption_entities" const val hasSpoilerField = "has_spoiler" const val showCaptionAboveMediaField = "show_caption_above_media" +const val supportsStreamingField = "supports_streaming" const val loginUrlField = "login_url" const val forwardTextField = "forward_text" const val botUsernameField = "bot_username" diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/files/PhotoSize.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/files/PhotoSize.kt index 01341aeba6..3fe521be27 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/files/PhotoSize.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/files/PhotoSize.kt @@ -10,7 +10,7 @@ import kotlin.jvm.JvmInline @JvmInline value class Photo( val photos: List -) : List by photos, MediaContentVariant { +) : List by photos, MediaContentVariant, UsefulAsPaidMediaFile { val biggest: PhotoSize get() = biggest()!! override val fileId: FileId diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/files/UsefulAsPaidMediaFile.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/files/UsefulAsPaidMediaFile.kt new file mode 100644 index 0000000000..dd443dcc9e --- /dev/null +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/files/UsefulAsPaidMediaFile.kt @@ -0,0 +1,3 @@ +package dev.inmo.tgbotapi.types.files + +sealed interface UsefulAsPaidMediaFile : MediaContentVariant diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/files/VideoFile.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/files/VideoFile.kt index 846fc7ca91..e9d492ff5f 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/files/VideoFile.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/files/VideoFile.kt @@ -3,6 +3,7 @@ package dev.inmo.tgbotapi.types.files import dev.inmo.tgbotapi.requests.abstracts.FileId import dev.inmo.tgbotapi.types.* import dev.inmo.tgbotapi.types.media.TelegramMediaVideo +import dev.inmo.tgbotapi.types.media.TelegramPaidMediaVideo import dev.inmo.tgbotapi.types.message.textsources.TextSourcesList import dev.inmo.tgbotapi.types.message.ParseMode import dev.inmo.tgbotapi.utils.MimeType @@ -30,7 +31,7 @@ data class VideoFile( @SerialName(fileSizeField) override val fileSize: Long? = null ) : TelegramMediaFile, CustomNamedMediaFile, MimedMediaFile, ThumbedMediaFile, PlayableMediaFile, SizedMediaFile, - MediaContentVariant + MediaContentVariant, UsefulAsPaidMediaFile @Suppress("NOTHING_TO_INLINE") inline fun VideoFile.toTelegramMediaVideo( @@ -65,3 +66,11 @@ inline fun VideoFile.toTelegramMediaVideo( duration = duration, thumb = thumbnail ?.fileId ) +@Suppress("NOTHING_TO_INLINE") +inline fun VideoFile.toTelegramPaidMediaVideo() = TelegramPaidMediaVideo( + file = fileId, + width = width, + height = height, + duration = duration, + thumb = thumbnail ?.fileId +) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/MediaGroupMemberTelegramMediaSerializer.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/MediaGroupMemberTelegramFreeMediaSerializer.kt similarity index 88% rename from tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/MediaGroupMemberTelegramMediaSerializer.kt rename to tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/MediaGroupMemberTelegramFreeMediaSerializer.kt index 19c9124d52..285049b722 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/MediaGroupMemberTelegramMediaSerializer.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/MediaGroupMemberTelegramFreeMediaSerializer.kt @@ -11,10 +11,10 @@ import kotlinx.serialization.encoding.Encoder import kotlinx.serialization.json.* @RiskFeature -object MediaGroupMemberTelegramMediaSerializer : KSerializer { +object MediaGroupMemberTelegramFreeMediaSerializer : KSerializer { @OptIn(InternalSerializationApi::class) override val descriptor: SerialDescriptor = buildSerialDescriptor(MediaGroupMemberTelegramMedia::class.toString(), PolymorphicKind.OPEN) - override fun serialize(encoder: Encoder, value: MediaGroupMemberTelegramMedia) { + override fun serialize(encoder: Encoder, value: MediaGroupMemberTelegramFreeMedia) { when (value) { is TelegramMediaPhoto -> TelegramMediaPhoto.serializer().serialize(encoder, value) is TelegramMediaVideo -> TelegramMediaVideo.serializer().serialize(encoder, value) @@ -23,7 +23,7 @@ object MediaGroupMemberTelegramMediaSerializer : KSerializer { + @OptIn(InternalSerializationApi::class) + override val descriptor: SerialDescriptor = + buildSerialDescriptor(MediaGroupMemberTelegramMedia::class.toString(), PolymorphicKind.OPEN) + override fun serialize(encoder: Encoder, value: MediaGroupMemberTelegramPaidMedia) { + when (value) { + is TelegramPaidMediaPhoto -> TelegramPaidMediaPhoto.serializer().serialize(encoder, value) + is TelegramPaidMediaVideo -> TelegramPaidMediaVideo.serializer().serialize(encoder, value) + } + } + + override fun deserialize(decoder: Decoder): MediaGroupMemberTelegramPaidMedia { + val json = JsonObject.serializer().deserialize(decoder) + + return when (json[typeField] ?.jsonPrimitive ?.contentOrNull) { + photoTelegramPaidMediaType -> nonstrictJsonFormat.decodeFromJsonElement(TelegramPaidMediaPhoto.serializer(), json) + videoTelegramPaidMediaType -> nonstrictJsonFormat.decodeFromJsonElement(TelegramPaidMediaVideo.serializer(), json) + else -> error("Illegal type of incoming MediaGroupMemberTelegramMedia") + } + } +} \ No newline at end of file diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/payments/stars/PaidMedia.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/PaidMedia.kt similarity index 94% rename from tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/payments/stars/PaidMedia.kt rename to tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/PaidMedia.kt index 15db1ad1fd..0c98d4893b 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/payments/stars/PaidMedia.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/PaidMedia.kt @@ -1,7 +1,7 @@ -package dev.inmo.tgbotapi.types.payments.stars +package dev.inmo.tgbotapi.types.media import dev.inmo.tgbotapi.types.* -import dev.inmo.tgbotapi.types.files.PhotoSize +import dev.inmo.tgbotapi.types.files.VideoFile import dev.inmo.tgbotapi.utils.decodeDataAndJson import kotlinx.serialization.EncodeDefault import kotlinx.serialization.KSerializer @@ -13,9 +13,7 @@ import kotlinx.serialization.encoding.Encoder import kotlinx.serialization.json.JsonElement @Serializable(PaidMedia.Companion::class) -sealed interface PaidMedia { - val type: String - +sealed interface PaidMedia : TelegramMedia { @Serializable data class Preview( @SerialName(widthField) @@ -51,7 +49,7 @@ sealed interface PaidMedia { @Serializable data class Video( @SerialName(videoField) - val video: Video + val video: VideoFile ) : PaidMedia { @EncodeDefault @SerialName(typeField) @@ -62,7 +60,7 @@ sealed interface PaidMedia { } } - @Serializable(PaidMedia.Companion::class) + @Serializable(Companion::class) data class Unknown( @SerialName(typeField) override val type: String, diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramFreeMedia.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramFreeMedia.kt new file mode 100644 index 0000000000..80f0d87efb --- /dev/null +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramFreeMedia.kt @@ -0,0 +1,9 @@ +package dev.inmo.tgbotapi.types.media + +import dev.inmo.tgbotapi.utils.internal.ClassCastsIncluded +import dev.inmo.tgbotapi.requests.abstracts.InputFile +import kotlinx.serialization.Serializable + +@Serializable(TelegramMediaSerializer::class) +@ClassCastsIncluded +sealed interface TelegramFreeMedia : TelegramMedia diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramMediaAnimation.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramMediaAnimation.kt index f3fafe6f6c..31cd7ab371 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramMediaAnimation.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramMediaAnimation.kt @@ -65,7 +65,7 @@ data class TelegramMediaAnimation internal constructor( override val height: Int? = null, override val duration: Long? = null, override val thumb: InputFile? = null -) : TelegramMedia, SizedTelegramMedia, DuratedTelegramMedia, ThumbedTelegramMedia, TextedOutput, SpoilerableTelegramMedia, WithCustomizableCaptionTelegramMedia { +) : TelegramFreeMedia, SizedTelegramMedia, DuratedTelegramMedia, ThumbedTelegramMedia, TextedOutput, SpoilerableTelegramMedia, WithCustomizableCaptionTelegramMedia { override val type: String = "animation" override val textSources: TextSourcesList? by lazy { rawEntities ?.asTextSources(text ?: return@lazy null) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramMediaAudio.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramMediaAudio.kt index 9a21b6ca1d..d9da215565 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramMediaAudio.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramMediaAudio.kt @@ -52,7 +52,7 @@ data class TelegramMediaAudio internal constructor( override val performer: String? = null, override val title: String? = null, override val thumb: InputFile? = null -) : TelegramMedia, AudioMediaGroupMemberTelegramMedia, DuratedTelegramMedia, ThumbedTelegramMedia, TitledTelegramMedia, +) : TelegramFreeMedia, AudioMediaGroupMemberTelegramMedia, DuratedTelegramMedia, ThumbedTelegramMedia, TitledTelegramMedia, Performerable { override val type: String = audioTelegramMediaType override val textSources: TextSourcesList? by lazy { diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramMediaDocument.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramMediaDocument.kt index 8049a4b692..109a6cd687 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramMediaDocument.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramMediaDocument.kt @@ -58,7 +58,7 @@ data class TelegramMediaDocument internal constructor( override val thumb: InputFile? = null, @SerialName(disableContentTypeDetectionField) val disableContentTypeDetection: Boolean? = null -) : TelegramMedia, DocumentMediaGroupMemberTelegramMedia, ThumbedTelegramMedia { +) : TelegramFreeMedia, DocumentMediaGroupMemberTelegramMedia, ThumbedTelegramMedia { override val type: String = documentTelegramMediaType override val textSources: TextSourcesList? by lazy { rawEntities ?.asTextSources(text ?: return@lazy null) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramMediaPhoto.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramMediaPhoto.kt index f7eaa6320c..564875ee53 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramMediaPhoto.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramMediaPhoto.kt @@ -43,7 +43,7 @@ data class TelegramMediaPhoto internal constructor( override val spoilered: Boolean = false, @SerialName(showCaptionAboveMediaField) override val showCaptionAboveMedia: Boolean = false, -) : TelegramMedia, VisualMediaGroupMemberTelegramMedia { +) : TelegramFreeMedia, VisualMediaGroupMemberTelegramFreeMedia { override val type: String = photoTelegramMediaType override val textSources: TextSourcesList? by lazy { rawEntities ?.asTextSources(text ?: return@lazy null) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramMediaSerializer.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramMediaSerializer.kt index 989f5bbb9a..47291efd32 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramMediaSerializer.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramMediaSerializer.kt @@ -18,6 +18,8 @@ object TelegramMediaSerializer : KSerializer { is TelegramMediaPhoto -> TelegramMediaPhoto.serializer().serialize(encoder, value) is TelegramMediaAnimation -> TelegramMediaAnimation.serializer().serialize(encoder, value) is TelegramMediaDocument -> TelegramMediaDocument.serializer().serialize(encoder, value) + is TelegramPaidMediaVideo -> TelegramPaidMediaVideo.serializer().serialize(encoder, value) + is TelegramPaidMediaPhoto -> TelegramPaidMediaPhoto.serializer().serialize(encoder, value) } } diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramMediaVideo.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramMediaVideo.kt index 1871adb345..d63119662f 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramMediaVideo.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramMediaVideo.kt @@ -76,7 +76,7 @@ data class TelegramMediaVideo internal constructor ( override val height: Int? = null, override val duration: Long? = null, override val thumb: InputFile? = null -) : TelegramMedia, SizedTelegramMedia, DuratedTelegramMedia, ThumbedTelegramMedia, VisualMediaGroupMemberTelegramMedia { +) : TelegramFreeMedia, SizedTelegramMedia, DuratedTelegramMedia, ThumbedTelegramMedia, VisualMediaGroupMemberTelegramFreeMedia { override val type: String = videoTelegramMediaType override val textSources: TextSourcesList? by lazy { rawEntities ?.asTextSources(text ?: return@lazy null) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramPaidMedia.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramPaidMedia.kt new file mode 100644 index 0000000000..1e57918e11 --- /dev/null +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramPaidMedia.kt @@ -0,0 +1,9 @@ +package dev.inmo.tgbotapi.types.media + +import dev.inmo.tgbotapi.utils.internal.ClassCastsIncluded +import dev.inmo.tgbotapi.requests.abstracts.InputFile +import kotlinx.serialization.Serializable + +@Serializable(TelegramMediaSerializer::class) +@ClassCastsIncluded +sealed interface TelegramPaidMedia : TelegramMedia diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramPaidMediaPhoto.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramPaidMediaPhoto.kt new file mode 100644 index 0000000000..b230fabd8f --- /dev/null +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramPaidMediaPhoto.kt @@ -0,0 +1,33 @@ +package dev.inmo.tgbotapi.types.media + +import dev.inmo.tgbotapi.requests.abstracts.InputFile +import dev.inmo.tgbotapi.requests.abstracts.fileIdToSend +import dev.inmo.tgbotapi.types.* +import dev.inmo.tgbotapi.types.message.textsources.TextSourcesList +import dev.inmo.tgbotapi.types.message.ParseMode +import dev.inmo.tgbotapi.types.message.parseModeField +import dev.inmo.tgbotapi.types.files.PhotoSize +import dev.inmo.tgbotapi.types.message.* +import dev.inmo.tgbotapi.types.message.RawMessageEntity +import dev.inmo.tgbotapi.types.message.toRawMessageEntities +import dev.inmo.tgbotapi.utils.extensions.makeString +import kotlinx.serialization.* + +internal const val photoTelegramPaidMediaType = "photo" + +@Serializable +data class TelegramPaidMediaPhoto internal constructor( + override val file: InputFile, +) : TelegramPaidMedia, VisualMediaGroupMemberTelegramPaidMedia { + override val type: String = photoTelegramPaidMediaType + + override fun serialize(format: StringFormat): String = format.encodeToString(serializer(), this) + + @SerialName(mediaField) + override val media: String + init { media = file.fileIdToSend } // crutch until js compiling will be fixed +} + +fun PhotoSize.toTelegramPaidMediaPhoto(): TelegramPaidMediaPhoto = TelegramPaidMediaPhoto( + file = fileId, +) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramPaidMediaVideo.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramPaidMediaVideo.kt new file mode 100644 index 0000000000..576a7a52b6 --- /dev/null +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramPaidMediaVideo.kt @@ -0,0 +1,38 @@ +package dev.inmo.tgbotapi.types.media + +import dev.inmo.tgbotapi.requests.abstracts.InputFile +import dev.inmo.tgbotapi.requests.abstracts.fileIdToSend +import dev.inmo.tgbotapi.types.* +import dev.inmo.tgbotapi.types.files.VideoFile +import kotlinx.serialization.* + +internal const val videoTelegramPaidMediaType = "video" + +@Serializable +data class TelegramPaidMediaVideo ( + override val file: InputFile, + override val thumb: InputFile? = null, + override val width: Int? = null, + override val height: Int? = null, + override val duration: Long? = null, + @SerialName(supportsStreamingField) + val supportsStreaming: Boolean = false, +) : TelegramPaidMedia, SizedTelegramMedia, DuratedTelegramMedia, ThumbedTelegramMedia, VisualMediaGroupMemberTelegramPaidMedia { + override val type: String = videoTelegramPaidMediaType + + override fun serialize(format: StringFormat): String = format.encodeToString(serializer(), this) + + @SerialName(mediaField) + override val media: String + init { media = file.fileIdToSend } // crutch until js compiling will be fixed +} + +fun VideoFile.toTelegramPaidMediaVideo(): TelegramPaidMediaVideo = TelegramPaidMediaVideo( + file = fileId, + thumb = thumbnail ?.fileId, + width = width, + height = height, + duration = duration +) + +fun PaidMedia.Video.toTelegramPaidMediaVideo(): TelegramPaidMediaVideo = video.toTelegramPaidMediaVideo() diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/Abstracts.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/Abstracts.kt index 752cfe4fef..1556f45a5b 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/Abstracts.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/Abstracts.kt @@ -9,6 +9,7 @@ import dev.inmo.tgbotapi.types.* import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup import dev.inmo.tgbotapi.types.files.TelegramMediaFile +import dev.inmo.tgbotapi.types.media.TelegramFreeMedia import dev.inmo.tgbotapi.types.media.TelegramMedia import dev.inmo.tgbotapi.types.message.abstracts.* import dev.inmo.tgbotapi.utils.RiskFeature diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/MediaGroupContent.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/MediaGroupContent.kt index 6d75745a59..66406ededb 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/MediaGroupContent.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/MediaGroupContent.kt @@ -7,7 +7,7 @@ import dev.inmo.tgbotapi.types.abstracts.WithOptionalQuoteInfo import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup import dev.inmo.tgbotapi.types.files.TelegramMediaFile -import dev.inmo.tgbotapi.types.media.TelegramMedia +import dev.inmo.tgbotapi.types.media.TelegramFreeMedia import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage import dev.inmo.tgbotapi.types.message.textsources.TextSource import kotlinx.serialization.Serializable @@ -29,7 +29,7 @@ data class MediaGroupContent( override val text: String? get() = mainContent.text - override fun asTelegramMedia(): TelegramMedia = mainContent.asTelegramMedia() + override fun asTelegramMedia(): TelegramFreeMedia = mainContent.asTelegramMedia() override fun createResend( chatId: ChatIdentifier, diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/PaidMediaInfoContent.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/PaidMediaInfoContent.kt new file mode 100644 index 0000000000..fc02655356 --- /dev/null +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/PaidMediaInfoContent.kt @@ -0,0 +1,40 @@ +package dev.inmo.tgbotapi.types.message.content + +import dev.inmo.tgbotapi.requests.abstracts.Request +import dev.inmo.tgbotapi.types.* +import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId +import dev.inmo.tgbotapi.types.message.textsources.TextSourcesList +import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup +import dev.inmo.tgbotapi.types.files.* +import dev.inmo.tgbotapi.types.media.PaidMedia +import dev.inmo.tgbotapi.types.media.TelegramPaidMedia +import dev.inmo.tgbotapi.types.media.toTelegramMediaPhoto +import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage +import kotlinx.serialization.Serializable + +@Serializable +data class PaidMediaInfoContent( + override val mediaCollection: List, + override val text: String? = null, + override val textSources: TextSourcesList = emptyList(), + override val quote: TextQuote? = null, + override val showCaptionAboveMedia: Boolean = false +) : MediaCollectionContent, TextedMediaContent, WithCustomizedCaptionMediaContent { + override val media: UsefulAsPaidMediaFile + get() = mediaCollection.first() + override fun asTelegramMedia(): TelegramPaidMedia = when (val media = media) { + is VideoFile -> media.toTelegramPaidMediaVideo() + is Photo -> media.biggest.toTelegramMediaPhoto() + } + + override fun createResend( + chatId: ChatIdentifier, + messageThreadId: MessageThreadId?, + businessConnectionId: BusinessConnectionId?, + disableNotification: Boolean, + protectContent: Boolean, + effectId: EffectId?, + replyParameters: ReplyParameters?, + replyMarkup: KeyboardMarkup? + ): Request> = TODO() +} diff --git a/tgbotapi.core/src/commonTest/kotlin/dev/inmo/tgbotapi/SimpleInputFilesTest.kt b/tgbotapi.core/src/commonTest/kotlin/dev/inmo/tgbotapi/SimpleInputFilesTest.kt index 789bfca0d4..559317c294 100644 --- a/tgbotapi.core/src/commonTest/kotlin/dev/inmo/tgbotapi/SimpleInputFilesTest.kt +++ b/tgbotapi.core/src/commonTest/kotlin/dev/inmo/tgbotapi/SimpleInputFilesTest.kt @@ -3,7 +3,7 @@ package dev.inmo.tgbotapi import dev.inmo.tgbotapi.requests.abstracts.toInputFile import dev.inmo.tgbotapi.types.TgFileUniqueId import dev.inmo.tgbotapi.types.files.Photo -import dev.inmo.tgbotapi.types.media.MediaGroupMemberTelegramMediaSerializer +import dev.inmo.tgbotapi.types.media.MediaGroupMemberTelegramFreeMediaSerializer import dev.inmo.tgbotapi.types.files.PhotoSize import dev.inmo.tgbotapi.types.message.content.PhotoContent import kotlinx.serialization.json.Json @@ -31,13 +31,13 @@ class SimpleInputFilesTest { val inputMedia = photoContent.toMediaGroupMemberTelegramMedia() assertEquals(photoContent.media.fileId, inputMedia.file) val encoded = nonstrictJsonFormat.encodeToString( - MediaGroupMemberTelegramMediaSerializer, + MediaGroupMemberTelegramFreeMediaSerializer, inputMedia ) assertEquals( inputMedia, nonstrictJsonFormat.decodeFromString( - MediaGroupMemberTelegramMediaSerializer, + MediaGroupMemberTelegramFreeMediaSerializer, encoded ) ) diff --git a/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/ClassCasts.kt b/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/ClassCasts.kt index ccb25f7023..4d228c08b0 100644 --- a/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/ClassCasts.kt +++ b/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/ClassCasts.kt @@ -1999,141 +1999,141 @@ inline fun ChatMember.asSpecialRightsChatMember(): SpecialRightsChatMember? = th inline fun ChatMember.requireSpecialRightsChatMember(): SpecialRightsChatMember = this as SpecialRightsChatMember @PreviewFeature -inline fun TelegramMedia.whenAudioMediaGroupMemberTelegramMedia(block: (AudioMediaGroupMemberTelegramMedia) -> T) = +inline fun TelegramFreeMedia.whenAudioMediaGroupMemberTelegramMedia(block: (AudioMediaGroupMemberTelegramMedia) -> T) = asAudioMediaGroupMemberTelegramMedia()?.let(block) @PreviewFeature -inline fun TelegramMedia.asAudioMediaGroupMemberTelegramMedia(): AudioMediaGroupMemberTelegramMedia? = +inline fun TelegramFreeMedia.asAudioMediaGroupMemberTelegramMedia(): AudioMediaGroupMemberTelegramMedia? = this as? AudioMediaGroupMemberTelegramMedia @PreviewFeature -inline fun TelegramMedia.requireAudioMediaGroupMemberTelegramMedia(): AudioMediaGroupMemberTelegramMedia = +inline fun TelegramFreeMedia.requireAudioMediaGroupMemberTelegramMedia(): AudioMediaGroupMemberTelegramMedia = this as AudioMediaGroupMemberTelegramMedia @PreviewFeature -inline fun TelegramMedia.whenDocumentMediaGroupMemberTelegramMedia(block: (DocumentMediaGroupMemberTelegramMedia) -> T) = +inline fun TelegramFreeMedia.whenDocumentMediaGroupMemberTelegramMedia(block: (DocumentMediaGroupMemberTelegramMedia) -> T) = asDocumentMediaGroupMemberTelegramMedia()?.let(block) @PreviewFeature -inline fun TelegramMedia.asDocumentMediaGroupMemberTelegramMedia(): DocumentMediaGroupMemberTelegramMedia? = +inline fun TelegramFreeMedia.asDocumentMediaGroupMemberTelegramMedia(): DocumentMediaGroupMemberTelegramMedia? = this as? DocumentMediaGroupMemberTelegramMedia @PreviewFeature -inline fun TelegramMedia.requireDocumentMediaGroupMemberTelegramMedia(): DocumentMediaGroupMemberTelegramMedia = +inline fun TelegramFreeMedia.requireDocumentMediaGroupMemberTelegramMedia(): DocumentMediaGroupMemberTelegramMedia = this as DocumentMediaGroupMemberTelegramMedia @PreviewFeature -inline fun TelegramMedia.whenDuratedTelegramMedia(block: (DuratedTelegramMedia) -> T) = +inline fun TelegramFreeMedia.whenDuratedTelegramMedia(block: (DuratedTelegramMedia) -> T) = asDuratedTelegramMedia()?.let(block) @PreviewFeature -inline fun TelegramMedia.asDuratedTelegramMedia(): DuratedTelegramMedia? = this as? DuratedTelegramMedia +inline fun TelegramFreeMedia.asDuratedTelegramMedia(): DuratedTelegramMedia? = this as? DuratedTelegramMedia @PreviewFeature -inline fun TelegramMedia.requireDuratedTelegramMedia(): DuratedTelegramMedia = this as DuratedTelegramMedia +inline fun TelegramFreeMedia.requireDuratedTelegramMedia(): DuratedTelegramMedia = this as DuratedTelegramMedia @PreviewFeature -inline fun TelegramMedia.whenTelegramMediaAnimation(block: (TelegramMediaAnimation) -> T) = +inline fun TelegramFreeMedia.whenTelegramMediaAnimation(block: (TelegramMediaAnimation) -> T) = asTelegramMediaAnimation()?.let(block) @PreviewFeature -inline fun TelegramMedia.asTelegramMediaAnimation(): TelegramMediaAnimation? = this as? TelegramMediaAnimation +inline fun TelegramFreeMedia.asTelegramMediaAnimation(): TelegramMediaAnimation? = this as? TelegramMediaAnimation @PreviewFeature -inline fun TelegramMedia.requireTelegramMediaAnimation(): TelegramMediaAnimation = this as TelegramMediaAnimation +inline fun TelegramFreeMedia.requireTelegramMediaAnimation(): TelegramMediaAnimation = this as TelegramMediaAnimation @PreviewFeature -inline fun TelegramMedia.whenTelegramMediaAudio(block: (TelegramMediaAudio) -> T) = +inline fun TelegramFreeMedia.whenTelegramMediaAudio(block: (TelegramMediaAudio) -> T) = asTelegramMediaAudio()?.let(block) @PreviewFeature -inline fun TelegramMedia.asTelegramMediaAudio(): TelegramMediaAudio? = this as? TelegramMediaAudio +inline fun TelegramFreeMedia.asTelegramMediaAudio(): TelegramMediaAudio? = this as? TelegramMediaAudio @PreviewFeature -inline fun TelegramMedia.requireTelegramMediaAudio(): TelegramMediaAudio = this as TelegramMediaAudio +inline fun TelegramFreeMedia.requireTelegramMediaAudio(): TelegramMediaAudio = this as TelegramMediaAudio @PreviewFeature -inline fun TelegramMedia.whenTelegramMediaDocument(block: (TelegramMediaDocument) -> T) = +inline fun TelegramFreeMedia.whenTelegramMediaDocument(block: (TelegramMediaDocument) -> T) = asTelegramMediaDocument()?.let(block) @PreviewFeature -inline fun TelegramMedia.asTelegramMediaDocument(): TelegramMediaDocument? = this as? TelegramMediaDocument +inline fun TelegramFreeMedia.asTelegramMediaDocument(): TelegramMediaDocument? = this as? TelegramMediaDocument @PreviewFeature -inline fun TelegramMedia.requireTelegramMediaDocument(): TelegramMediaDocument = this as TelegramMediaDocument +inline fun TelegramFreeMedia.requireTelegramMediaDocument(): TelegramMediaDocument = this as TelegramMediaDocument @PreviewFeature -inline fun TelegramMedia.whenTelegramMediaPhoto(block: (TelegramMediaPhoto) -> T) = +inline fun TelegramFreeMedia.whenTelegramMediaPhoto(block: (TelegramMediaPhoto) -> T) = asTelegramMediaPhoto()?.let(block) @PreviewFeature -inline fun TelegramMedia.asTelegramMediaPhoto(): TelegramMediaPhoto? = this as? TelegramMediaPhoto +inline fun TelegramFreeMedia.asTelegramMediaPhoto(): TelegramMediaPhoto? = this as? TelegramMediaPhoto @PreviewFeature -inline fun TelegramMedia.requireTelegramMediaPhoto(): TelegramMediaPhoto = this as TelegramMediaPhoto +inline fun TelegramFreeMedia.requireTelegramMediaPhoto(): TelegramMediaPhoto = this as TelegramMediaPhoto @PreviewFeature -inline fun TelegramMedia.whenTelegramMediaVideo(block: (TelegramMediaVideo) -> T) = +inline fun TelegramFreeMedia.whenTelegramMediaVideo(block: (TelegramMediaVideo) -> T) = asTelegramMediaVideo()?.let(block) @PreviewFeature -inline fun TelegramMedia.asTelegramMediaVideo(): TelegramMediaVideo? = this as? TelegramMediaVideo +inline fun TelegramFreeMedia.asTelegramMediaVideo(): TelegramMediaVideo? = this as? TelegramMediaVideo @PreviewFeature -inline fun TelegramMedia.requireTelegramMediaVideo(): TelegramMediaVideo = this as TelegramMediaVideo +inline fun TelegramFreeMedia.requireTelegramMediaVideo(): TelegramMediaVideo = this as TelegramMediaVideo @PreviewFeature -inline fun TelegramMedia.whenMediaGroupMemberTelegramMedia(block: (MediaGroupMemberTelegramMedia) -> T) = +inline fun TelegramFreeMedia.whenMediaGroupMemberTelegramMedia(block: (MediaGroupMemberTelegramMedia) -> T) = asMediaGroupMemberTelegramMedia()?.let(block) @PreviewFeature -inline fun TelegramMedia.asMediaGroupMemberTelegramMedia(): MediaGroupMemberTelegramMedia? = +inline fun TelegramFreeMedia.asMediaGroupMemberTelegramMedia(): MediaGroupMemberTelegramMedia? = this as? MediaGroupMemberTelegramMedia @PreviewFeature -inline fun TelegramMedia.requireMediaGroupMemberTelegramMedia(): MediaGroupMemberTelegramMedia = +inline fun TelegramFreeMedia.requireMediaGroupMemberTelegramMedia(): MediaGroupMemberTelegramMedia = this as MediaGroupMemberTelegramMedia @PreviewFeature -inline fun TelegramMedia.whenSizedTelegramMedia(block: (SizedTelegramMedia) -> T) = +inline fun TelegramFreeMedia.whenSizedTelegramMedia(block: (SizedTelegramMedia) -> T) = asSizedTelegramMedia()?.let(block) @PreviewFeature -inline fun TelegramMedia.asSizedTelegramMedia(): SizedTelegramMedia? = this as? SizedTelegramMedia +inline fun TelegramFreeMedia.asSizedTelegramMedia(): SizedTelegramMedia? = this as? SizedTelegramMedia @PreviewFeature -inline fun TelegramMedia.requireSizedTelegramMedia(): SizedTelegramMedia = this as SizedTelegramMedia +inline fun TelegramFreeMedia.requireSizedTelegramMedia(): SizedTelegramMedia = this as SizedTelegramMedia @PreviewFeature -inline fun TelegramMedia.whenThumbedTelegramMedia(block: (ThumbedTelegramMedia) -> T) = +inline fun TelegramFreeMedia.whenThumbedTelegramMedia(block: (ThumbedTelegramMedia) -> T) = asThumbedTelegramMedia()?.let(block) @PreviewFeature -inline fun TelegramMedia.asThumbedTelegramMedia(): ThumbedTelegramMedia? = this as? ThumbedTelegramMedia +inline fun TelegramFreeMedia.asThumbedTelegramMedia(): ThumbedTelegramMedia? = this as? ThumbedTelegramMedia @PreviewFeature -inline fun TelegramMedia.requireThumbedTelegramMedia(): ThumbedTelegramMedia = this as ThumbedTelegramMedia +inline fun TelegramFreeMedia.requireThumbedTelegramMedia(): ThumbedTelegramMedia = this as ThumbedTelegramMedia @PreviewFeature -inline fun TelegramMedia.whenTitledTelegramMedia(block: (TitledTelegramMedia) -> T) = +inline fun TelegramFreeMedia.whenTitledTelegramMedia(block: (TitledTelegramMedia) -> T) = asTitledTelegramMedia()?.let(block) @PreviewFeature -inline fun TelegramMedia.asTitledTelegramMedia(): TitledTelegramMedia? = this as? TitledTelegramMedia +inline fun TelegramFreeMedia.asTitledTelegramMedia(): TitledTelegramMedia? = this as? TitledTelegramMedia @PreviewFeature -inline fun TelegramMedia.requireTitledTelegramMedia(): TitledTelegramMedia = this as TitledTelegramMedia +inline fun TelegramFreeMedia.requireTitledTelegramMedia(): TitledTelegramMedia = this as TitledTelegramMedia @PreviewFeature -inline fun TelegramMedia.whenVisualMediaGroupMemberTelegramMedia(block: (VisualMediaGroupMemberTelegramMedia) -> T) = +inline fun TelegramFreeMedia.whenVisualMediaGroupMemberTelegramMedia(block: (VisualMediaGroupMemberTelegramMedia) -> T) = asVisualMediaGroupMemberTelegramMedia()?.let(block) @PreviewFeature -inline fun TelegramMedia.asVisualMediaGroupMemberTelegramMedia(): VisualMediaGroupMemberTelegramMedia? = +inline fun TelegramFreeMedia.asVisualMediaGroupMemberTelegramMedia(): VisualMediaGroupMemberTelegramMedia? = this as? VisualMediaGroupMemberTelegramMedia @PreviewFeature -inline fun TelegramMedia.requireVisualMediaGroupMemberTelegramMedia(): VisualMediaGroupMemberTelegramMedia = +inline fun TelegramFreeMedia.requireVisualMediaGroupMemberTelegramMedia(): VisualMediaGroupMemberTelegramMedia = this as VisualMediaGroupMemberTelegramMedia @PreviewFeature diff --git a/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/ClassCastsNew.kt b/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/ClassCastsNew.kt index e9ead34db5..ba7dcb4aa8 100644 --- a/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/ClassCastsNew.kt +++ b/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/ClassCastsNew.kt @@ -220,7 +220,7 @@ import dev.inmo.tgbotapi.types.media.DuratedTelegramMedia import dev.inmo.tgbotapi.types.media.MediaGroupMemberTelegramMedia import dev.inmo.tgbotapi.types.media.SizedTelegramMedia import dev.inmo.tgbotapi.types.media.SpoilerableTelegramMedia -import dev.inmo.tgbotapi.types.media.TelegramMedia +import dev.inmo.tgbotapi.types.media.TelegramFreeMedia import dev.inmo.tgbotapi.types.media.TelegramMediaAnimation import dev.inmo.tgbotapi.types.media.TelegramMediaAudio import dev.inmo.tgbotapi.types.media.TelegramMediaDocument @@ -2945,155 +2945,155 @@ public inline fun Location.liveLocationOrThrow(): LiveLocation = this as public inline fun Location.ifLiveLocation(block: (LiveLocation) -> T): T? = liveLocationOrNull() ?.let(block) -public inline fun TelegramMedia.duratedTelegramMediaOrNull(): DuratedTelegramMedia? = this as? +public inline fun TelegramFreeMedia.duratedTelegramMediaOrNull(): DuratedTelegramMedia? = this as? dev.inmo.tgbotapi.types.media.DuratedTelegramMedia -public inline fun TelegramMedia.duratedTelegramMediaOrThrow(): DuratedTelegramMedia = this as +public inline fun TelegramFreeMedia.duratedTelegramMediaOrThrow(): DuratedTelegramMedia = this as dev.inmo.tgbotapi.types.media.DuratedTelegramMedia -public inline fun TelegramMedia.ifDuratedTelegramMedia(block: (DuratedTelegramMedia) -> T): T? = +public inline fun TelegramFreeMedia.ifDuratedTelegramMedia(block: (DuratedTelegramMedia) -> T): T? = duratedTelegramMediaOrNull() ?.let(block) -public inline fun TelegramMedia.mediaGroupMemberTelegramMediaOrNull(): +public inline fun TelegramFreeMedia.mediaGroupMemberTelegramMediaOrNull(): MediaGroupMemberTelegramMedia? = this as? dev.inmo.tgbotapi.types.media.MediaGroupMemberTelegramMedia -public inline fun TelegramMedia.mediaGroupMemberTelegramMediaOrThrow(): +public inline fun TelegramFreeMedia.mediaGroupMemberTelegramMediaOrThrow(): MediaGroupMemberTelegramMedia = this as dev.inmo.tgbotapi.types.media.MediaGroupMemberTelegramMedia public inline fun - TelegramMedia.ifMediaGroupMemberTelegramMedia(block: (MediaGroupMemberTelegramMedia) -> T): T? = + TelegramFreeMedia.ifMediaGroupMemberTelegramMedia(block: (MediaGroupMemberTelegramMedia) -> T): T? = mediaGroupMemberTelegramMediaOrNull() ?.let(block) -public inline fun TelegramMedia.audioMediaGroupMemberTelegramMediaOrNull(): +public inline fun TelegramFreeMedia.audioMediaGroupMemberTelegramMediaOrNull(): AudioMediaGroupMemberTelegramMedia? = this as? dev.inmo.tgbotapi.types.media.AudioMediaGroupMemberTelegramMedia -public inline fun TelegramMedia.audioMediaGroupMemberTelegramMediaOrThrow(): +public inline fun TelegramFreeMedia.audioMediaGroupMemberTelegramMediaOrThrow(): AudioMediaGroupMemberTelegramMedia = this as dev.inmo.tgbotapi.types.media.AudioMediaGroupMemberTelegramMedia public inline fun - TelegramMedia.ifAudioMediaGroupMemberTelegramMedia(block: (AudioMediaGroupMemberTelegramMedia) -> T): + TelegramFreeMedia.ifAudioMediaGroupMemberTelegramMedia(block: (AudioMediaGroupMemberTelegramMedia) -> T): T? = audioMediaGroupMemberTelegramMediaOrNull() ?.let(block) -public inline fun TelegramMedia.documentMediaGroupMemberTelegramMediaOrNull(): +public inline fun TelegramFreeMedia.documentMediaGroupMemberTelegramMediaOrNull(): DocumentMediaGroupMemberTelegramMedia? = this as? dev.inmo.tgbotapi.types.media.DocumentMediaGroupMemberTelegramMedia -public inline fun TelegramMedia.documentMediaGroupMemberTelegramMediaOrThrow(): +public inline fun TelegramFreeMedia.documentMediaGroupMemberTelegramMediaOrThrow(): DocumentMediaGroupMemberTelegramMedia = this as dev.inmo.tgbotapi.types.media.DocumentMediaGroupMemberTelegramMedia public inline fun - TelegramMedia.ifDocumentMediaGroupMemberTelegramMedia(block: (DocumentMediaGroupMemberTelegramMedia) -> T): + TelegramFreeMedia.ifDocumentMediaGroupMemberTelegramMedia(block: (DocumentMediaGroupMemberTelegramMedia) -> T): T? = documentMediaGroupMemberTelegramMediaOrNull() ?.let(block) -public inline fun TelegramMedia.visualMediaGroupMemberTelegramMediaOrNull(): +public inline fun TelegramFreeMedia.visualMediaGroupMemberTelegramMediaOrNull(): VisualMediaGroupMemberTelegramMedia? = this as? dev.inmo.tgbotapi.types.media.VisualMediaGroupMemberTelegramMedia -public inline fun TelegramMedia.visualMediaGroupMemberTelegramMediaOrThrow(): +public inline fun TelegramFreeMedia.visualMediaGroupMemberTelegramMediaOrThrow(): VisualMediaGroupMemberTelegramMedia = this as dev.inmo.tgbotapi.types.media.VisualMediaGroupMemberTelegramMedia public inline fun - TelegramMedia.ifVisualMediaGroupMemberTelegramMedia(block: (VisualMediaGroupMemberTelegramMedia) -> T): + TelegramFreeMedia.ifVisualMediaGroupMemberTelegramMedia(block: (VisualMediaGroupMemberTelegramMedia) -> T): T? = visualMediaGroupMemberTelegramMediaOrNull() ?.let(block) -public inline fun TelegramMedia.sizedTelegramMediaOrNull(): SizedTelegramMedia? = this as? +public inline fun TelegramFreeMedia.sizedTelegramMediaOrNull(): SizedTelegramMedia? = this as? dev.inmo.tgbotapi.types.media.SizedTelegramMedia -public inline fun TelegramMedia.sizedTelegramMediaOrThrow(): SizedTelegramMedia = this as +public inline fun TelegramFreeMedia.sizedTelegramMediaOrThrow(): SizedTelegramMedia = this as dev.inmo.tgbotapi.types.media.SizedTelegramMedia -public inline fun TelegramMedia.ifSizedTelegramMedia(block: (SizedTelegramMedia) -> T): T? = +public inline fun TelegramFreeMedia.ifSizedTelegramMedia(block: (SizedTelegramMedia) -> T): T? = sizedTelegramMediaOrNull() ?.let(block) -public inline fun TelegramMedia.spoilerableTelegramMediaOrNull(): SpoilerableTelegramMedia? = this +public inline fun TelegramFreeMedia.spoilerableTelegramMediaOrNull(): SpoilerableTelegramMedia? = this as? dev.inmo.tgbotapi.types.media.SpoilerableTelegramMedia -public inline fun TelegramMedia.spoilerableTelegramMediaOrThrow(): SpoilerableTelegramMedia = this +public inline fun TelegramFreeMedia.spoilerableTelegramMediaOrThrow(): SpoilerableTelegramMedia = this as dev.inmo.tgbotapi.types.media.SpoilerableTelegramMedia public inline fun - TelegramMedia.ifSpoilerableTelegramMedia(block: (SpoilerableTelegramMedia) -> T): T? = + TelegramFreeMedia.ifSpoilerableTelegramMedia(block: (SpoilerableTelegramMedia) -> T): T? = spoilerableTelegramMediaOrNull() ?.let(block) -public inline fun TelegramMedia.telegramMediaAnimationOrNull(): TelegramMediaAnimation? = this as? +public inline fun TelegramFreeMedia.telegramMediaAnimationOrNull(): TelegramMediaAnimation? = this as? dev.inmo.tgbotapi.types.media.TelegramMediaAnimation -public inline fun TelegramMedia.telegramMediaAnimationOrThrow(): TelegramMediaAnimation = this as +public inline fun TelegramFreeMedia.telegramMediaAnimationOrThrow(): TelegramMediaAnimation = this as dev.inmo.tgbotapi.types.media.TelegramMediaAnimation -public inline fun TelegramMedia.ifTelegramMediaAnimation(block: (TelegramMediaAnimation) -> T): +public inline fun TelegramFreeMedia.ifTelegramMediaAnimation(block: (TelegramMediaAnimation) -> T): T? = telegramMediaAnimationOrNull() ?.let(block) -public inline fun TelegramMedia.telegramMediaAudioOrNull(): TelegramMediaAudio? = this as? +public inline fun TelegramFreeMedia.telegramMediaAudioOrNull(): TelegramMediaAudio? = this as? dev.inmo.tgbotapi.types.media.TelegramMediaAudio -public inline fun TelegramMedia.telegramMediaAudioOrThrow(): TelegramMediaAudio = this as +public inline fun TelegramFreeMedia.telegramMediaAudioOrThrow(): TelegramMediaAudio = this as dev.inmo.tgbotapi.types.media.TelegramMediaAudio -public inline fun TelegramMedia.ifTelegramMediaAudio(block: (TelegramMediaAudio) -> T): T? = +public inline fun TelegramFreeMedia.ifTelegramMediaAudio(block: (TelegramMediaAudio) -> T): T? = telegramMediaAudioOrNull() ?.let(block) -public inline fun TelegramMedia.telegramMediaDocumentOrNull(): TelegramMediaDocument? = this as? +public inline fun TelegramFreeMedia.telegramMediaDocumentOrNull(): TelegramMediaDocument? = this as? dev.inmo.tgbotapi.types.media.TelegramMediaDocument -public inline fun TelegramMedia.telegramMediaDocumentOrThrow(): TelegramMediaDocument = this as +public inline fun TelegramFreeMedia.telegramMediaDocumentOrThrow(): TelegramMediaDocument = this as dev.inmo.tgbotapi.types.media.TelegramMediaDocument -public inline fun TelegramMedia.ifTelegramMediaDocument(block: (TelegramMediaDocument) -> T): T? +public inline fun TelegramFreeMedia.ifTelegramMediaDocument(block: (TelegramMediaDocument) -> T): T? = telegramMediaDocumentOrNull() ?.let(block) -public inline fun TelegramMedia.telegramMediaPhotoOrNull(): TelegramMediaPhoto? = this as? +public inline fun TelegramFreeMedia.telegramMediaPhotoOrNull(): TelegramMediaPhoto? = this as? dev.inmo.tgbotapi.types.media.TelegramMediaPhoto -public inline fun TelegramMedia.telegramMediaPhotoOrThrow(): TelegramMediaPhoto = this as +public inline fun TelegramFreeMedia.telegramMediaPhotoOrThrow(): TelegramMediaPhoto = this as dev.inmo.tgbotapi.types.media.TelegramMediaPhoto -public inline fun TelegramMedia.ifTelegramMediaPhoto(block: (TelegramMediaPhoto) -> T): T? = +public inline fun TelegramFreeMedia.ifTelegramMediaPhoto(block: (TelegramMediaPhoto) -> T): T? = telegramMediaPhotoOrNull() ?.let(block) -public inline fun TelegramMedia.telegramMediaVideoOrNull(): TelegramMediaVideo? = this as? +public inline fun TelegramFreeMedia.telegramMediaVideoOrNull(): TelegramMediaVideo? = this as? dev.inmo.tgbotapi.types.media.TelegramMediaVideo -public inline fun TelegramMedia.telegramMediaVideoOrThrow(): TelegramMediaVideo = this as +public inline fun TelegramFreeMedia.telegramMediaVideoOrThrow(): TelegramMediaVideo = this as dev.inmo.tgbotapi.types.media.TelegramMediaVideo -public inline fun TelegramMedia.ifTelegramMediaVideo(block: (TelegramMediaVideo) -> T): T? = +public inline fun TelegramFreeMedia.ifTelegramMediaVideo(block: (TelegramMediaVideo) -> T): T? = telegramMediaVideoOrNull() ?.let(block) -public inline fun TelegramMedia.thumbedTelegramMediaOrNull(): ThumbedTelegramMedia? = this as? +public inline fun TelegramFreeMedia.thumbedTelegramMediaOrNull(): ThumbedTelegramMedia? = this as? dev.inmo.tgbotapi.types.media.ThumbedTelegramMedia -public inline fun TelegramMedia.thumbedTelegramMediaOrThrow(): ThumbedTelegramMedia = this as +public inline fun TelegramFreeMedia.thumbedTelegramMediaOrThrow(): ThumbedTelegramMedia = this as dev.inmo.tgbotapi.types.media.ThumbedTelegramMedia -public inline fun TelegramMedia.ifThumbedTelegramMedia(block: (ThumbedTelegramMedia) -> T): T? = +public inline fun TelegramFreeMedia.ifThumbedTelegramMedia(block: (ThumbedTelegramMedia) -> T): T? = thumbedTelegramMediaOrNull() ?.let(block) -public inline fun TelegramMedia.titledTelegramMediaOrNull(): TitledTelegramMedia? = this as? +public inline fun TelegramFreeMedia.titledTelegramMediaOrNull(): TitledTelegramMedia? = this as? dev.inmo.tgbotapi.types.media.TitledTelegramMedia -public inline fun TelegramMedia.titledTelegramMediaOrThrow(): TitledTelegramMedia = this as +public inline fun TelegramFreeMedia.titledTelegramMediaOrThrow(): TitledTelegramMedia = this as dev.inmo.tgbotapi.types.media.TitledTelegramMedia -public inline fun TelegramMedia.ifTitledTelegramMedia(block: (TitledTelegramMedia) -> T): T? = +public inline fun TelegramFreeMedia.ifTitledTelegramMedia(block: (TitledTelegramMedia) -> T): T? = titledTelegramMediaOrNull() ?.let(block) -public inline fun TelegramMedia.withCustomizableCaptionTelegramMediaOrNull(): +public inline fun TelegramFreeMedia.withCustomizableCaptionTelegramMediaOrNull(): WithCustomizableCaptionTelegramMedia? = this as? dev.inmo.tgbotapi.types.media.WithCustomizableCaptionTelegramMedia -public inline fun TelegramMedia.withCustomizableCaptionTelegramMediaOrThrow(): +public inline fun TelegramFreeMedia.withCustomizableCaptionTelegramMediaOrThrow(): WithCustomizableCaptionTelegramMedia = this as dev.inmo.tgbotapi.types.media.WithCustomizableCaptionTelegramMedia public inline fun - TelegramMedia.ifWithCustomizableCaptionTelegramMedia(block: (WithCustomizableCaptionTelegramMedia) -> T): + TelegramFreeMedia.ifWithCustomizableCaptionTelegramMedia(block: (WithCustomizableCaptionTelegramMedia) -> T): T? = withCustomizableCaptionTelegramMediaOrNull() ?.let(block) public inline fun ChatEvent.chatBackgroundOrNull(): ChatBackground? = this as? From d865a601518080c5b615a3a47ae7a4dd22caef32 Mon Sep 17 00:00:00 2001 From: bpavuk Date: Sun, 7 Jul 2024 21:25:19 +0300 Subject: [PATCH 13/47] Bot API 7.7 added waiters, triggers, and class casts for refunded payment event. added property handler in RawMessage. --- .../behaviour_builder/expectations/WaitEventAction.kt | 5 +++++ .../expectations/WaitEventActionMessages.kt | 5 +++++ .../triggers_handling/EventTriggers.kt | 9 +++++++++ .../dev/inmo/tgbotapi/types/message/RawMessage.kt | 1 + .../dev/inmo/tgbotapi/extensions/utils/ClassCasts.kt | 11 +++++++++++ .../inmo/tgbotapi/extensions/utils/ClassCastsNew.kt | 10 ++++++++++ .../extensions/utils/shortcuts/EventsShortcuts.kt | 9 +++++++++ 7 files changed, 50 insertions(+) diff --git a/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/expectations/WaitEventAction.kt b/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/expectations/WaitEventAction.kt index 8db0996f95..5c45d40caf 100644 --- a/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/expectations/WaitEventAction.kt +++ b/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/expectations/WaitEventAction.kt @@ -17,6 +17,7 @@ import dev.inmo.tgbotapi.types.message.ChatEvents.forum.GeneralForumTopicUnhidde import dev.inmo.tgbotapi.types.message.ChatEvents.forum.WriteAccessAllowed import dev.inmo.tgbotapi.types.message.ChatEvents.voice.* import dev.inmo.tgbotapi.types.message.abstracts.ChatEventMessage +import dev.inmo.tgbotapi.types.message.payments.RefundedPaymentEvent import dev.inmo.tgbotapi.types.message.payments.SuccessfulPaymentEvent import dev.inmo.tgbotapi.types.request.ChatShared import dev.inmo.tgbotapi.types.request.ChatSharedRequest @@ -140,6 +141,10 @@ suspend fun BehaviourContext.waitSuccessfulPaymentEvents( initRequest: Request<*>? = null, errorFactory: NullableRequestBuilder<*> = { null } ) = waitEvents(initRequest, errorFactory) +suspend fun BehaviourContext.waitRefundedPaymentEvents( + initRequest: Request<*>? = null, + errorFactory: NullableRequestBuilder<*> = { null } +) = waitEvents(initRequest, errorFactory) suspend fun BehaviourContext.waitUserLoggedInEvents( initRequest: Request<*>? = null, errorFactory: NullableRequestBuilder<*> = { null } diff --git a/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/expectations/WaitEventActionMessages.kt b/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/expectations/WaitEventActionMessages.kt index 9805e194bc..9756b2017f 100644 --- a/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/expectations/WaitEventActionMessages.kt +++ b/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/expectations/WaitEventActionMessages.kt @@ -17,6 +17,7 @@ import dev.inmo.tgbotapi.types.message.ChatEvents.forum.GeneralForumTopicUnhidde import dev.inmo.tgbotapi.types.message.ChatEvents.forum.WriteAccessAllowed import dev.inmo.tgbotapi.types.message.ChatEvents.voice.* import dev.inmo.tgbotapi.types.message.abstracts.ChatEventMessage +import dev.inmo.tgbotapi.types.message.payments.RefundedPaymentEvent import dev.inmo.tgbotapi.types.message.payments.SuccessfulPaymentEvent import dev.inmo.tgbotapi.types.request.ChatShared import dev.inmo.tgbotapi.types.request.ChatSharedRequest @@ -137,6 +138,10 @@ suspend fun BehaviourContext.waitSuccessfulPaymentEventsMessages( initRequest: Request<*>? = null, errorFactory: NullableRequestBuilder<*> = { null } ) = waitEventsMessages(initRequest, errorFactory) +suspend fun BehaviourContext.waitRefundedPaymentEventsMessages( + initRequest: Request<*>? = null, + errorFactory: NullableRequestBuilder<*> = { null } +) = waitEventsMessages(initRequest, errorFactory) suspend fun BehaviourContext.waitUserLoggedInEventsMessages( initRequest: Request<*>? = null, errorFactory: NullableRequestBuilder<*> = { null } diff --git a/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/triggers_handling/EventTriggers.kt b/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/triggers_handling/EventTriggers.kt index 8ff4fc5aaa..8cd2033b82 100644 --- a/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/triggers_handling/EventTriggers.kt +++ b/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/triggers_handling/EventTriggers.kt @@ -24,6 +24,7 @@ import dev.inmo.tgbotapi.types.message.ChatEvents.voice.* import dev.inmo.tgbotapi.types.message.PrivateEventMessage import dev.inmo.tgbotapi.types.message.abstracts.ChatEventMessage import dev.inmo.tgbotapi.types.message.abstracts.SupergroupEventMessage +import dev.inmo.tgbotapi.types.message.payments.RefundedPaymentEvent import dev.inmo.tgbotapi.types.message.payments.SuccessfulPaymentEvent import dev.inmo.tgbotapi.types.request.ChatShared import dev.inmo.tgbotapi.types.request.ChatSharedRequest @@ -513,6 +514,14 @@ suspend fun BC.onSuccessfulPayment( scenarioReceiver: CustomBehaviourContextAndTypeReceiver> ) = onEvent(initialFilter, subcontextUpdatesFilter, markerFactory, scenarioReceiver) +// TODO: add documentation +suspend fun BC.onRefundedPayment( + initialFilter: SimpleFilter>? = null, + subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver, Update>? = MessageFilterByChat, + markerFactory: MarkerFactory, Any>? = ByChatMessageMarkerFactory, + scenarioReceiver: CustomBehaviourContextAndTypeReceiver> +) = onEvent(initialFilter, subcontextUpdatesFilter, markerFactory, scenarioReceiver) + /** * @param initialFilter This filter will be called to remove unnecessary data BEFORE [scenarioReceiver] call * @param subcontextUpdatesFilter This filter will be applied to each update inside of [scenarioReceiver]. For example, diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/RawMessage.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/RawMessage.kt index 55d1bf34ec..8aca07a40d 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/RawMessage.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/RawMessage.kt @@ -264,6 +264,7 @@ internal data class RawMessage( pinned_message != null -> PinnedMessage(pinned_message.asMessage) proximity_alert_triggered != null -> proximity_alert_triggered successful_payment != null -> SuccessfulPaymentEvent(successful_payment) + refunded_payment != null -> RefundedPaymentEvent(refunded_payment) connected_website != null -> UserLoggedIn(connected_website) web_app_data != null -> web_app_data users_shared != null -> users_shared diff --git a/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/ClassCasts.kt b/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/ClassCasts.kt index ccb25f7023..0e3572da79 100644 --- a/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/ClassCasts.kt +++ b/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/ClassCasts.kt @@ -34,6 +34,7 @@ import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.* import dev.inmo.tgbotapi.types.message.ChatEvents.voice.* import dev.inmo.tgbotapi.types.message.abstracts.* import dev.inmo.tgbotapi.types.message.content.* +import dev.inmo.tgbotapi.types.message.payments.RefundedPaymentEvent import dev.inmo.tgbotapi.types.message.payments.SuccessfulPaymentEvent import dev.inmo.tgbotapi.types.message.textsources.* import dev.inmo.tgbotapi.types.passport.* @@ -3225,6 +3226,16 @@ inline fun ChatEvent.asSuccessfulPaymentEvent(): SuccessfulPaymentEvent? = this @PreviewFeature inline fun ChatEvent.requireSuccessfulPaymentEvent(): SuccessfulPaymentEvent = this as SuccessfulPaymentEvent +@PreviewFeature +inline fun ChatEvent.whenRefundedPaymentEvent(block: (RefundedPaymentEvent) -> T) = + asRefundedPaymentEvent()?.let(block) + +@PreviewFeature +inline fun ChatEvent.asRefundedPaymentEvent(): RefundedPaymentEvent? = this as? RefundedPaymentEvent + +@PreviewFeature +inline fun ChatEvent.requireRefundedPaymentEvent(): RefundedPaymentEvent = this as RefundedPaymentEvent + @PreviewFeature inline fun ChatEvent.whenProximityAlertTriggered(block: (ProximityAlertTriggered) -> T) = asProximityAlertTriggered()?.let(block) diff --git a/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/ClassCastsNew.kt b/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/ClassCastsNew.kt index e9ead34db5..1a95fb2584 100644 --- a/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/ClassCastsNew.kt +++ b/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/ClassCastsNew.kt @@ -340,6 +340,7 @@ import dev.inmo.tgbotapi.types.message.content.VideoNoteContent import dev.inmo.tgbotapi.types.message.content.VisualMediaGroupPartContent import dev.inmo.tgbotapi.types.message.content.VoiceContent import dev.inmo.tgbotapi.types.message.content.WithCustomizedCaptionMediaContent +import dev.inmo.tgbotapi.types.message.payments.RefundedPaymentEvent import dev.inmo.tgbotapi.types.message.payments.SuccessfulPaymentEvent import dev.inmo.tgbotapi.types.message.textsources.BlockquoteTextSource import dev.inmo.tgbotapi.types.message.textsources.BoldTextSource @@ -3441,6 +3442,15 @@ public inline fun ChatEvent.successfulPaymentEventOrThrow(): SuccessfulPaymentEv public inline fun ChatEvent.ifSuccessfulPaymentEvent(block: (SuccessfulPaymentEvent) -> T): T? = successfulPaymentEventOrNull() ?.let(block) +public inline fun ChatEvent.refundedPaymentEventOrNull(): RefundedPaymentEvent? = this as? + dev.inmo.tgbotapi.types.message.payments.RefundedPaymentEvent + +public inline fun ChatEvent.refundedPaymentEventOrThrow(): RefundedPaymentEvent = this as + dev.inmo.tgbotapi.types.message.payments.RefundedPaymentEvent + +public inline fun ChatEvent.ifRefundedPaymentEvent(block: (RefundedPaymentEvent) -> T): T? = + refundedPaymentEventOrNull() ?.let(block) + public inline fun ChatEvent.chatSharedOrNull(): ChatShared? = this as? dev.inmo.tgbotapi.types.request.ChatShared diff --git a/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/shortcuts/EventsShortcuts.kt b/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/shortcuts/EventsShortcuts.kt index 93255bcf59..b3366ac685 100644 --- a/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/shortcuts/EventsShortcuts.kt +++ b/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/shortcuts/EventsShortcuts.kt @@ -8,6 +8,7 @@ import dev.inmo.tgbotapi.types.message.ChatEvents.* import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.* import dev.inmo.tgbotapi.types.message.PrivateEventMessage import dev.inmo.tgbotapi.types.message.abstracts.* +import dev.inmo.tgbotapi.types.message.payments.RefundedPaymentEvent import dev.inmo.tgbotapi.types.message.payments.SuccessfulPaymentEvent import dev.inmo.tgbotapi.updateshandlers.FlowsUpdatesFilter import dev.inmo.tgbotapi.utils.RiskFeature @@ -60,6 +61,8 @@ inline fun Flow>.newChannelPinnedMessageEvents() = filterCha inline fun FlowsUpdatesFilter.newChannelPinnedMessageEvents() = filterChannelEvents() inline fun Flow>.successfulPaymentInChannelEvents() = filterChannelEvents() inline fun FlowsUpdatesFilter.successfulPaymentInChannelEvents() = filterChannelEvents() +inline fun Flow>.refundedPaymentInChannelEvents() = filterChannelEvents() +inline fun FlowsUpdatesFilter.refundedPaymentInChannelEvents() = filterChannelEvents() inline fun Flow>.channelEvents() = filterChannelEvents() @RiskFeature("Use with caution") @@ -84,6 +87,8 @@ inline fun Flow>.proximityAlertTriggeredInGroupEvents() = fi inline fun FlowsUpdatesFilter.proximityAlertTriggeredInGroupEvents() = filterGroupEvents() inline fun Flow>.successfulPaymentInGroupEvents() = filterGroupEvents() inline fun FlowsUpdatesFilter.successfulPaymentInGroupEvents() = filterGroupEvents() +inline fun Flow>.refundedPaymentInGroupEvents() = filterGroupEvents() +inline fun FlowsUpdatesFilter.refundedPaymentInGroupEvents() = filterGroupEvents() inline fun Flow>.groupEvents() = filterGroupEvents() @@ -109,6 +114,8 @@ inline fun Flow>.proximityAlertTriggeredInSupergroupEvents() inline fun FlowsUpdatesFilter.proximityAlertTriggeredInSupergroupEvents() = filterSupergroupEvents() inline fun Flow>.successfulPaymentInSupergroupEvents() = filterSupergroupEvents() inline fun FlowsUpdatesFilter.successfulPaymentInSupergroupEvents() = filterSupergroupEvents() +inline fun Flow>.refundedPaymentInSupergroupEvents() = filterSupergroupEvents() +inline fun FlowsUpdatesFilter.refundedPaymentInSupergroupEvents() = filterSupergroupEvents() inline fun Flow>.supergroupEvents() = filterSupergroupEvents() @RiskFeature("Use with caution") @@ -117,6 +124,8 @@ inline fun Flow>.filterPrivateEve inline fun FlowsUpdatesFilter.filterPrivateEvents() = privateEvents().filterByChatEvent>() inline fun Flow>.successfulPaymentInPrivateEvents() = filterPrivateEvents() inline fun FlowsUpdatesFilter.successfulPaymentInPrivateEvents() = filterPrivateEvents() +inline fun Flow>.refundedPaymentInPrivateEvents() = filterPrivateEvents() +inline fun FlowsUpdatesFilter.refundedPaymentInPrivateEvents() = filterPrivateEvents() inline fun Flow>.newPrivatePinnedMessageEvents() = filterPrivateEvents() inline fun FlowsUpdatesFilter.newPrivatePinnedMessageEvents() = filterPrivateEvents() inline fun Flow>.privateEvents() = filterPrivateEvents() From 00aefefc3179f05ec70f0f067e1a1f154a48d423 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Mon, 8 Jul 2024 02:51:09 +0600 Subject: [PATCH 14/47] progress on addinf of paid media --- .../tgbotapi/extensions/api/send/Replies.kt | 4 ++-- .../api/send/RepliesWithChatsAndMessages.kt | 4 ++-- .../tgbotapi/extensions/api/send/Sends.kt | 8 +++---- .../extensions/api/send/media/SendPhoto.kt | 8 +++---- .../kotlin/dev/inmo/tgbotapi/types/Common.kt | 2 ++ .../dev/inmo/tgbotapi/types/ReplyInfo.kt | 2 +- .../inmo/tgbotapi/types/UserProfilePhotos.kt | 6 ++--- .../tgbotapi/types/files/PaidMediaInfo.kt | 15 +++++++++++++ .../inmo/tgbotapi/types/files/PhotoSize.kt | 8 ++++--- .../dev/inmo/tgbotapi/types/games/Game.kt | 4 ++-- .../dev/inmo/tgbotapi/types/games/RawGame.kt | 2 +- .../types/media/TelegramPaidMediaVideo.kt | 1 + .../types/message/ChatEvents/NewChatPhoto.kt | 4 ++-- .../inmo/tgbotapi/types/message/RawMessage.kt | 11 ++++++++-- .../message/content/PaidMediaInfoContent.kt | 22 ++++++++++--------- .../types/message/content/PhotoContent.kt | 2 +- .../{media => message/payments}/PaidMedia.kt | 14 +++++++----- .../inmo/tgbotapi/types/request/ChatShared.kt | 4 ++-- .../inmo/tgbotapi/types/request/SharedUser.kt | 4 ++-- .../dev/inmo/tgbotapi/SimpleInputFilesTest.kt | 4 ++-- .../extensions/utils/ClassCastsNew.kt | 12 +++++----- .../utils/extensions/raw/Message.kt | 4 ++-- 22 files changed, 89 insertions(+), 56 deletions(-) create mode 100644 tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/files/PaidMediaInfo.kt rename tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/{media => message/payments}/PaidMedia.kt (92%) diff --git a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/Replies.kt b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/Replies.kt index 0142e95a6b..fc3b589fdb 100644 --- a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/Replies.kt +++ b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/Replies.kt @@ -855,7 +855,7 @@ suspend inline fun TelegramBot.replyWithPhoto( suspend inline fun TelegramBot.reply( to: AccessibleMessage, - photo: Photo, + photo: PhotoFile, text: String? = null, parseMode: ParseMode? = null, showCaptionAboveMedia: Boolean = false, @@ -947,7 +947,7 @@ suspend inline fun TelegramBot.replyWithPhoto( suspend inline fun TelegramBot.reply( to: AccessibleMessage, - photo: Photo, + photo: PhotoFile, entities: TextSourcesList, showCaptionAboveMedia: Boolean = false, spoilered: Boolean = false, diff --git a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/RepliesWithChatsAndMessages.kt b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/RepliesWithChatsAndMessages.kt index 5ebd5a5175..78a5205637 100644 --- a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/RepliesWithChatsAndMessages.kt +++ b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/RepliesWithChatsAndMessages.kt @@ -806,7 +806,7 @@ suspend inline fun TelegramBot.replyWithPhoto( suspend inline fun TelegramBot.reply( toChatId: IdChatIdentifier, toMessageId: MessageId, - photo: Photo, + photo: PhotoFile, text: String? = null, parseMode: ParseMode? = null, showCaptionAboveMedia: Boolean = false, @@ -860,7 +860,7 @@ suspend inline fun TelegramBot.replyWithPhoto( suspend inline fun TelegramBot.reply( toChatId: IdChatIdentifier, toMessageId: MessageId, - photo: Photo, + photo: PhotoFile, entities: TextSourcesList, showCaptionAboveMedia: Boolean = false, spoilered: Boolean = false, diff --git a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/Sends.kt b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/Sends.kt index 07ce2f0508..e5a98f7791 100644 --- a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/Sends.kt +++ b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/Sends.kt @@ -726,7 +726,7 @@ suspend fun TelegramBot.send( */ suspend fun TelegramBot.send( chatId: ChatIdentifier, - photo: Photo, + photo: PhotoFile, text: String? = null, parseMode: ParseMode? = null, showCaptionAboveMedia: Boolean = false, @@ -747,7 +747,7 @@ suspend fun TelegramBot.send( */ suspend fun TelegramBot.send( chat: Chat, - photo: Photo, + photo: PhotoFile, text: String? = null, parseMode: ParseMode? = null, showCaptionAboveMedia: Boolean = false, @@ -810,7 +810,7 @@ suspend fun TelegramBot.send( */ suspend inline fun TelegramBot.send( chatId: ChatIdentifier, - photo: Photo, + photo: PhotoFile, entities: TextSourcesList, showCaptionAboveMedia: Boolean = false, spoilered: Boolean = false, @@ -830,7 +830,7 @@ suspend inline fun TelegramBot.send( */ suspend inline fun TelegramBot.send( chat: Chat, - photo: Photo, + photo: PhotoFile, entities: TextSourcesList, showCaptionAboveMedia: Boolean = false, spoilered: Boolean = false, diff --git a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendPhoto.kt b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendPhoto.kt index 944d47c7ce..b86be33f9e 100644 --- a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendPhoto.kt +++ b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendPhoto.kt @@ -87,7 +87,7 @@ suspend fun TelegramBot.sendPhoto( */ suspend fun TelegramBot.sendPhoto( chatId: ChatIdentifier, - photo: Photo, + photo: PhotoFile, text: String? = null, parseMode: ParseMode? = null, showCaptionAboveMedia: Boolean = false, @@ -121,7 +121,7 @@ suspend fun TelegramBot.sendPhoto( */ suspend fun TelegramBot.sendPhoto( chat: Chat, - photo: Photo, + photo: PhotoFile, text: String? = null, parseMode: ParseMode? = null, showCaptionAboveMedia: Boolean = false, @@ -290,7 +290,7 @@ suspend inline fun TelegramBot.sendPhoto( */ suspend inline fun TelegramBot.sendPhoto( chatId: ChatIdentifier, - photo: Photo, + photo: PhotoFile, entities: TextSourcesList, showCaptionAboveMedia: Boolean = false, spoilered: Boolean = false, @@ -322,7 +322,7 @@ suspend inline fun TelegramBot.sendPhoto( */ suspend inline fun TelegramBot.sendPhoto( chat: Chat, - photo: Photo, + photo: PhotoFile, entities: TextSourcesList, showCaptionAboveMedia: Boolean = false, spoilered: Boolean = false, diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/Common.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/Common.kt index 6fa5e357b5..98b33a2611 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/Common.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/Common.kt @@ -606,6 +606,8 @@ const val additionalChatCountField = "additional_chat_count" const val unclaimedPrizeCountField = "unclaimed_prize_count" const val wasRefundedField = "was_refunded" const val isManualField = "is_manual" +const val starCountField = "star_count" +const val paidMediaField = "paid_media" const val businessConnectionIdField = "business_connection_id" const val businessIntroField = "business_intro" diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/ReplyInfo.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/ReplyInfo.kt index 445749a753..fbef4dbbd8 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/ReplyInfo.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/ReplyInfo.kt @@ -92,7 +92,7 @@ sealed interface ReplyInfo { private val animation: AnimationFile? = null, private val game: RawGame? = null, @Serializable(PhotoSerializer::class) - private val photo: Photo? = null, + private val photo: PhotoFile? = null, private val sticker: Sticker? = null, private val video: VideoFile? = null, private val voice: VoiceFile? = null, diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/UserProfilePhotos.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/UserProfilePhotos.kt index 2b677b27e7..bce5e91391 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/UserProfilePhotos.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/UserProfilePhotos.kt @@ -1,6 +1,6 @@ package dev.inmo.tgbotapi.types -import dev.inmo.tgbotapi.types.files.Photo +import dev.inmo.tgbotapi.types.files.PhotoFile import dev.inmo.tgbotapi.types.files.PhotoSerializer import dev.inmo.tgbotapi.utils.RiskFeature import kotlinx.serialization.* @@ -11,10 +11,10 @@ data class UserProfilePhotos ( @SerialName("total_count") val count: Int, @Serializable(UserProfilePhotosPhotosSerializer::class) - val photos: List + val photos: List ) @RiskFeature -object UserProfilePhotosPhotosSerializer : KSerializer> by ListSerializer( +object UserProfilePhotosPhotosSerializer : KSerializer> by ListSerializer( PhotoSerializer ) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/files/PaidMediaInfo.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/files/PaidMediaInfo.kt new file mode 100644 index 0000000000..87b7a92117 --- /dev/null +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/files/PaidMediaInfo.kt @@ -0,0 +1,15 @@ +package dev.inmo.tgbotapi.types.files + +import dev.inmo.tgbotapi.types.message.payments.PaidMedia +import dev.inmo.tgbotapi.types.paidMediaField +import dev.inmo.tgbotapi.types.starCountField +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +data class PaidMediaInfo( + @SerialName(starCountField) + val stars: Int, + @SerialName(paidMediaField) + val media: List +) \ No newline at end of file diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/files/PhotoSize.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/files/PhotoSize.kt index 3fe521be27..e6ec6e806c 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/files/PhotoSize.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/files/PhotoSize.kt @@ -8,7 +8,7 @@ import kotlin.jvm.JvmInline @Serializable @JvmInline -value class Photo( +value class PhotoFile( val photos: List ) : List by photos, MediaContentVariant, UsefulAsPaidMediaFile { val biggest: PhotoSize @@ -27,12 +27,14 @@ value class Photo( } } -fun Photo.biggest(): PhotoSize? = maxByOrNull { +typealias Photo = PhotoFile + +fun PhotoFile.biggest(): PhotoSize? = maxByOrNull { it.resolution } @RiskFeature -object PhotoSerializer : KSerializer by Photo.serializer() +object PhotoSerializer : KSerializer by PhotoFile.serializer() @Serializable data class PhotoSize( diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/games/Game.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/games/Game.kt index c2e9d15275..4c8bad9a9a 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/games/Game.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/games/Game.kt @@ -5,14 +5,14 @@ import dev.inmo.tgbotapi.abstracts.Titled import dev.inmo.tgbotapi.types.ReplyInfo import dev.inmo.tgbotapi.types.message.textsources.TextSourcesList import dev.inmo.tgbotapi.types.files.AnimationFile -import dev.inmo.tgbotapi.types.files.Photo +import dev.inmo.tgbotapi.types.files.PhotoFile import kotlinx.serialization.Serializable @Serializable data class Game( override val title: String, val description: String, - val photo: Photo, + val photo: PhotoFile, override val text: String? = null, override val textSources: TextSourcesList = emptyList(), val animation: AnimationFile? = null diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/games/RawGame.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/games/RawGame.kt index 1c676c8aec..28faab99a5 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/games/RawGame.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/games/RawGame.kt @@ -14,7 +14,7 @@ internal data class RawGame( private val description: String, @Serializable(PhotoSerializer::class) @SerialName(photoField) - private val photo: Photo, + private val photo: PhotoFile, @SerialName(textField) private val text: String? = null, @SerialName(textEntitiesField) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramPaidMediaVideo.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramPaidMediaVideo.kt index 576a7a52b6..bc048dc062 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramPaidMediaVideo.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramPaidMediaVideo.kt @@ -4,6 +4,7 @@ import dev.inmo.tgbotapi.requests.abstracts.InputFile import dev.inmo.tgbotapi.requests.abstracts.fileIdToSend import dev.inmo.tgbotapi.types.* import dev.inmo.tgbotapi.types.files.VideoFile +import dev.inmo.tgbotapi.types.message.payments.PaidMedia import kotlinx.serialization.* internal const val videoTelegramPaidMediaType = "video" diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/ChatEvents/NewChatPhoto.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/ChatEvents/NewChatPhoto.kt index 9b89ff7702..83dce481f8 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/ChatEvents/NewChatPhoto.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/ChatEvents/NewChatPhoto.kt @@ -1,8 +1,8 @@ package dev.inmo.tgbotapi.types.message.ChatEvents -import dev.inmo.tgbotapi.types.files.Photo +import dev.inmo.tgbotapi.types.files.PhotoFile import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.PublicChatEvent data class NewChatPhoto( - val photo: Photo + val photo: PhotoFile ): PublicChatEvent diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/RawMessage.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/RawMessage.kt index d369a13ae3..b2abf991ee 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/RawMessage.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/RawMessage.kt @@ -71,10 +71,11 @@ internal data class RawMessage( private val story: Story? = null, private val audio: AudioFile? = null, private val document: DocumentFile? = null, + private val paid_media: PaidMediaInfoContent? = null, private val animation: AnimationFile? = null, private val game: RawGame? = null, @Serializable(PhotoSerializer::class) - private val photo: Photo? = null, + private val photo: PhotoFile? = null, private val sticker: Sticker? = null, private val video: VideoFile? = null, private val voice: VoiceFile? = null, @@ -87,7 +88,7 @@ internal data class RawMessage( private val left_chat_member: User? = null, private val new_chat_title: String? = null, @Serializable(PhotoSerializer::class) - private val new_chat_photo: Photo? = null, + private val new_chat_photo: PhotoFile? = null, private val delete_chat_photo: Boolean = false, private val group_chat_created: Boolean = false, private val supergroup_chat_created: Boolean = false, @@ -198,6 +199,12 @@ internal data class RawMessage( adaptedCaptionEntities, quote ) + paid_media != null -> PaidMediaInfoContent( + document, + caption, + adaptedCaptionEntities, + quote + ) voice != null -> VoiceContent( voice, caption, diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/PaidMediaInfoContent.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/PaidMediaInfoContent.kt index fc02655356..95af5e536d 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/PaidMediaInfoContent.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/PaidMediaInfoContent.kt @@ -6,25 +6,27 @@ import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId import dev.inmo.tgbotapi.types.message.textsources.TextSourcesList import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup import dev.inmo.tgbotapi.types.files.* -import dev.inmo.tgbotapi.types.media.PaidMedia -import dev.inmo.tgbotapi.types.media.TelegramPaidMedia -import dev.inmo.tgbotapi.types.media.toTelegramMediaPhoto +import dev.inmo.tgbotapi.types.files.toTelegramPaidMediaVideo +import dev.inmo.tgbotapi.types.media.* import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage +import dev.inmo.tgbotapi.types.message.payments.PaidMedia import kotlinx.serialization.Serializable @Serializable data class PaidMediaInfoContent( - override val mediaCollection: List, + val paidMediaInfo: PaidMediaInfo, override val text: String? = null, override val textSources: TextSourcesList = emptyList(), override val quote: TextQuote? = null, override val showCaptionAboveMedia: Boolean = false -) : MediaCollectionContent, TextedMediaContent, WithCustomizedCaptionMediaContent { - override val media: UsefulAsPaidMediaFile - get() = mediaCollection.first() - override fun asTelegramMedia(): TelegramPaidMedia = when (val media = media) { - is VideoFile -> media.toTelegramPaidMediaVideo() - is Photo -> media.biggest.toTelegramMediaPhoto() +) : TextedMediaContent, WithCustomizedCaptionMediaContent { + override val media: TelegramMediaFile + get() = paidMediaInfo.media.fir + override fun asTelegramMedia(): TelegramMediaFile = when (val media = media) { + is PaidMedia.Photo -> media.photo.biggest.toTelegramPaidMediaPhoto() + is PaidMedia.Preview, + is PaidMedia.Unknown -> error("Unable to create telegram media out of $media") + is PaidMedia.Video -> media.video.toTelegramPaidMediaVideo() } override fun createResend( diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/PhotoContent.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/PhotoContent.kt index 2a45078ffd..9d8a1da96d 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/PhotoContent.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/PhotoContent.kt @@ -15,7 +15,7 @@ import kotlinx.serialization.Serializable @Serializable data class PhotoContent( - override val mediaCollection: Photo, + override val mediaCollection: PhotoFile, override val text: String? = null, override val textSources: TextSourcesList = emptyList(), override val spoilered: Boolean = false, diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/PaidMedia.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/payments/PaidMedia.kt similarity index 92% rename from tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/PaidMedia.kt rename to tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/payments/PaidMedia.kt index 0c98d4893b..00a7d69597 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/PaidMedia.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/payments/PaidMedia.kt @@ -1,6 +1,8 @@ -package dev.inmo.tgbotapi.types.media +package dev.inmo.tgbotapi.types.message.payments import dev.inmo.tgbotapi.types.* +import dev.inmo.tgbotapi.types.files.PhotoFile +import dev.inmo.tgbotapi.types.files.TelegramMediaFile import dev.inmo.tgbotapi.types.files.VideoFile import dev.inmo.tgbotapi.utils.decodeDataAndJson import kotlinx.serialization.EncodeDefault @@ -13,7 +15,9 @@ import kotlinx.serialization.encoding.Encoder import kotlinx.serialization.json.JsonElement @Serializable(PaidMedia.Companion::class) -sealed interface PaidMedia : TelegramMedia { +sealed interface PaidMedia { + val type: String + @Serializable data class Preview( @SerialName(widthField) @@ -35,7 +39,7 @@ sealed interface PaidMedia : TelegramMedia { @Serializable data class Photo( @SerialName(photoField) - val photo: Photo + val photo: PhotoFile ) : PaidMedia { @EncodeDefault @SerialName(typeField) @@ -79,9 +83,9 @@ sealed interface PaidMedia : TelegramMedia { @SerialName(durationField) val duration: Int? = null, @SerialName(photoField) - val photo: Photo? = null, + val photo: PhotoFile? = null, @SerialName(videoField) - val video: Video? = null + val video: VideoFile? = null ) override val descriptor: SerialDescriptor diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/request/ChatShared.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/request/ChatShared.kt index 0e793c92c8..354cc8bea9 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/request/ChatShared.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/request/ChatShared.kt @@ -1,7 +1,7 @@ package dev.inmo.tgbotapi.types.request import dev.inmo.tgbotapi.types.* -import dev.inmo.tgbotapi.types.files.Photo +import dev.inmo.tgbotapi.types.files.PhotoFile import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable @@ -16,5 +16,5 @@ data class ChatShared( @SerialName(usernameField) val username: Username? = null, @SerialName(photoField) - val photo: Photo? = null + val photo: PhotoFile? = null ) : ChatSharedRequest diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/request/SharedUser.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/request/SharedUser.kt index 08d168cb22..b7b861e3b7 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/request/SharedUser.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/request/SharedUser.kt @@ -1,7 +1,7 @@ package dev.inmo.tgbotapi.types.request import dev.inmo.tgbotapi.types.* -import dev.inmo.tgbotapi.types.files.Photo +import dev.inmo.tgbotapi.types.files.PhotoFile import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable @@ -16,5 +16,5 @@ data class SharedUser( @SerialName(usernameField) val username: Username? = null, @SerialName(photoField) - val photo: Photo? = null, + val photo: PhotoFile? = null, ) diff --git a/tgbotapi.core/src/commonTest/kotlin/dev/inmo/tgbotapi/SimpleInputFilesTest.kt b/tgbotapi.core/src/commonTest/kotlin/dev/inmo/tgbotapi/SimpleInputFilesTest.kt index 559317c294..4a7546aa41 100644 --- a/tgbotapi.core/src/commonTest/kotlin/dev/inmo/tgbotapi/SimpleInputFilesTest.kt +++ b/tgbotapi.core/src/commonTest/kotlin/dev/inmo/tgbotapi/SimpleInputFilesTest.kt @@ -2,7 +2,7 @@ package dev.inmo.tgbotapi import dev.inmo.tgbotapi.requests.abstracts.toInputFile import dev.inmo.tgbotapi.types.TgFileUniqueId -import dev.inmo.tgbotapi.types.files.Photo +import dev.inmo.tgbotapi.types.files.PhotoFile import dev.inmo.tgbotapi.types.media.MediaGroupMemberTelegramFreeMediaSerializer import dev.inmo.tgbotapi.types.files.PhotoSize import dev.inmo.tgbotapi.types.message.content.PhotoContent @@ -22,7 +22,7 @@ class SimpleInputFilesTest { @Test fun test_that_creating_of_photo_and_converting_to_input_media_working_correctly() { val photoContent = PhotoContent( - Photo( + PhotoFile( listOf( PhotoSize("example_file_id".toInputFile(), TgFileUniqueId("example_unique_file_id"), 100, 100, 100) ) diff --git a/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/ClassCastsNew.kt b/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/ClassCastsNew.kt index ba7dcb4aa8..5815150494 100644 --- a/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/ClassCastsNew.kt +++ b/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/ClassCastsNew.kt @@ -193,7 +193,7 @@ import dev.inmo.tgbotapi.types.files.MediaContentVariant import dev.inmo.tgbotapi.types.files.MimedMediaFile import dev.inmo.tgbotapi.types.files.PassportFile import dev.inmo.tgbotapi.types.files.PathedFile -import dev.inmo.tgbotapi.types.files.Photo +import dev.inmo.tgbotapi.types.files.PhotoFile import dev.inmo.tgbotapi.types.files.PhotoSize import dev.inmo.tgbotapi.types.files.PlayableMediaFile import dev.inmo.tgbotapi.types.files.RegularAnimatedSticker @@ -2707,13 +2707,13 @@ public inline fun TelegramMediaFile.pathedFileOrThrow(): PathedFile = this as public inline fun TelegramMediaFile.ifPathedFile(block: (PathedFile) -> T): T? = pathedFileOrNull() ?.let(block) -public inline fun TelegramMediaFile.photoOrNull(): Photo? = this as? - dev.inmo.tgbotapi.types.files.Photo +public inline fun TelegramMediaFile.photoOrNull(): PhotoFile? = this as? + dev.inmo.tgbotapi.types.files.PhotoFile -public inline fun TelegramMediaFile.photoOrThrow(): Photo = this as - dev.inmo.tgbotapi.types.files.Photo +public inline fun TelegramMediaFile.photoOrThrow(): PhotoFile = this as + dev.inmo.tgbotapi.types.files.PhotoFile -public inline fun TelegramMediaFile.ifPhoto(block: (Photo) -> T): T? = photoOrNull() +public inline fun TelegramMediaFile.ifPhoto(block: (PhotoFile) -> T): T? = photoOrNull() ?.let(block) public inline fun TelegramMediaFile.photoSizeOrNull(): PhotoSize? = this as? diff --git a/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/extensions/raw/Message.kt b/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/extensions/raw/Message.kt index d8865bc84a..eff8b72812 100644 --- a/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/extensions/raw/Message.kt +++ b/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/extensions/raw/Message.kt @@ -103,7 +103,7 @@ inline val Message.animation: AnimationFile? inline val Message.game: Game? get() = asContentMessage() ?.content ?.asGameContent() ?.game @RiskFeature(RawFieldsUsageWarning) -inline val Message.photo: Photo? +inline val Message.photo: PhotoFile? get() = asContentMessage() ?.content ?.asPhotoContent() ?.mediaCollection @RiskFeature(RawFieldsUsageWarning) inline val Message.sticker: Sticker? @@ -145,7 +145,7 @@ inline val Message.left_chat_member: User? inline val Message.new_chat_title: String? get() = asChatEventMessage() ?.chatEvent ?.asNewChatTitle() ?.title @RiskFeature(RawFieldsUsageWarning) -inline val Message.new_chat_photo: Photo? +inline val Message.new_chat_photo: PhotoFile? get() = asChatEventMessage() ?.chatEvent ?.asNewChatPhoto() ?.photo @RiskFeature(RawFieldsUsageWarning) inline val Message.delete_chat_photo: Boolean From f8066431d3ec141084037df1892215779e9f7aa4 Mon Sep 17 00:00:00 2001 From: bpavuk Date: Mon, 8 Jul 2024 21:31:49 +0300 Subject: [PATCH 15/47] Bot API 7.7 added docs for event trigger --- .../triggers_handling/EventTriggers.kt | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/triggers_handling/EventTriggers.kt b/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/triggers_handling/EventTriggers.kt index 8cd2033b82..71c3c0d371 100644 --- a/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/triggers_handling/EventTriggers.kt +++ b/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/triggers_handling/EventTriggers.kt @@ -514,7 +514,22 @@ suspend fun BC.onSuccessfulPayment( scenarioReceiver: CustomBehaviourContextAndTypeReceiver> ) = onEvent(initialFilter, subcontextUpdatesFilter, markerFactory, scenarioReceiver) -// TODO: add documentation +/** + * Please, remember that [RefundedPaymentEvent] will be retrieved only in case you will correctly handle + * [dev.inmo.tgbotapi.types.payments.PreCheckoutQuery] (via [onPreCheckoutQuery], for example) + * + * @param initialFilter This filter will be called to remove unnecessary data BEFORE [scenarioReceiver] call + * @param subcontextUpdatesFilter This filter will be applied to each update inside of [scenarioReceiver]. For example, + * this filter will be used if you will call [dev.inmo.tgbotapi.extensions.behaviour_builder.expectations.waitContentMessage]. + * Use [dev.inmo.tgbotapi.extensions.behaviour_builder.BehaviourContextAndTwoTypesReceiver] function to create your own. + * Use [dev.inmo.tgbotapi.extensions.behaviour_builder.utils.plus] or [dev.inmo.tgbotapi.extensions.behaviour_builder.utils.times] + * to combinate several filters + * @param [markerFactory] **Pass null to handle requests fully parallel**. Will be used to identify different "stream". + * [scenarioReceiver] will be called synchronously in one "stream". Output of [markerFactory] will be used as a key for + * "stream" + * @param scenarioReceiver Main callback which will be used to handle incoming data if [initialFilter] will pass that + * data + */ suspend fun BC.onRefundedPayment( initialFilter: SimpleFilter>? = null, subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver, Update>? = MessageFilterByChat, From 873905a288d7f9ec37e5196e98d7f8b5b6efc938 Mon Sep 17 00:00:00 2001 From: bpavuk Date: Mon, 8 Jul 2024 21:34:19 +0300 Subject: [PATCH 16/47] Bot API 7.7 deleted unneeded warning in docs --- .../behaviour_builder/triggers_handling/EventTriggers.kt | 3 --- 1 file changed, 3 deletions(-) diff --git a/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/triggers_handling/EventTriggers.kt b/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/triggers_handling/EventTriggers.kt index 71c3c0d371..bf2cf33f95 100644 --- a/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/triggers_handling/EventTriggers.kt +++ b/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/triggers_handling/EventTriggers.kt @@ -515,9 +515,6 @@ suspend fun BC.onSuccessfulPayment( ) = onEvent(initialFilter, subcontextUpdatesFilter, markerFactory, scenarioReceiver) /** - * Please, remember that [RefundedPaymentEvent] will be retrieved only in case you will correctly handle - * [dev.inmo.tgbotapi.types.payments.PreCheckoutQuery] (via [onPreCheckoutQuery], for example) - * * @param initialFilter This filter will be called to remove unnecessary data BEFORE [scenarioReceiver] call * @param subcontextUpdatesFilter This filter will be applied to each update inside of [scenarioReceiver]. For example, * this filter will be used if you will call [dev.inmo.tgbotapi.extensions.behaviour_builder.expectations.waitContentMessage]. From 051922b4c2752cb3463344c17e1ac87a23c01340 Mon Sep 17 00:00:00 2001 From: bpavuk Date: Mon, 8 Jul 2024 22:46:26 +0300 Subject: [PATCH 17/47] Bot API 7.6 added invoice payload field to TransactionPartner.User --- .../types/payments/stars/TransactionPartner.kt | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/payments/stars/TransactionPartner.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/payments/stars/TransactionPartner.kt index 2986c53927..fe53028254 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/payments/stars/TransactionPartner.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/payments/stars/TransactionPartner.kt @@ -1,6 +1,8 @@ package dev.inmo.tgbotapi.types.payments.stars +import dev.inmo.tgbotapi.types.InvoicePayload import dev.inmo.tgbotapi.types.chat.PreviewUser +import dev.inmo.tgbotapi.types.invoicePayloadField import dev.inmo.tgbotapi.types.userField import dev.inmo.tgbotapi.types.withdrawalStateField import dev.inmo.tgbotapi.utils.decodeDataAndJson @@ -35,7 +37,9 @@ sealed interface TransactionPartner { @Serializable(TransactionPartner.Companion::class) data class User( @SerialName(userField) - val user: PreviewUser + val user: PreviewUser, + @SerialName(invoicePayloadField) + val invoicePayload: InvoicePayload? = null ) : TransactionPartner { override val type: String get() = Companion.type @@ -61,7 +65,9 @@ sealed interface TransactionPartner { private data class Surrogate( val type: String, val withdrawal_state: RevenueWithdrawalState? = null, - val user: PreviewUser? = null + val user: PreviewUser? = null, + @SerialName(invoicePayloadField) + val invoicePayload: InvoicePayload? = null ) override val descriptor: SerialDescriptor From bfff55ab084d57da9146880d7e1765500c6ff3f0 Mon Sep 17 00:00:00 2001 From: bpavuk Date: Mon, 8 Jul 2024 22:49:35 +0300 Subject: [PATCH 18/47] Bot API 7.6 added section_separator_color field to theme params in Bot Webapps --- .../src/jsMain/kotlin/dev/inmo/tgbotapi/webapps/ThemeParams.kt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tgbotapi.webapps/src/jsMain/kotlin/dev/inmo/tgbotapi/webapps/ThemeParams.kt b/tgbotapi.webapps/src/jsMain/kotlin/dev/inmo/tgbotapi/webapps/ThemeParams.kt index e9d19c273a..754e6e881a 100644 --- a/tgbotapi.webapps/src/jsMain/kotlin/dev/inmo/tgbotapi/webapps/ThemeParams.kt +++ b/tgbotapi.webapps/src/jsMain/kotlin/dev/inmo/tgbotapi/webapps/ThemeParams.kt @@ -43,4 +43,6 @@ external interface ThemeParams { val subtitleTextColor: Color.Hex? @JsName("destructive_text_color") val destructiveTextColor: Color.Hex? + @JsName("section_separator_color") + val sectionSeparatorColor: Color.Hex? } From 5baa09f0c10a98b95d667920078e808f4c16fb15 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Tue, 9 Jul 2024 01:56:53 +0600 Subject: [PATCH 19/47] add sendPaidMedia, refactor telegram media, fix build --- tgbotapi.api/api/tgbotapi.api.api | 95 +-- .../tgbotapi/extensions/api/send/Sends.kt | 40 ++ .../api/send/media/SendPaidMedia.kt | 140 ++++ .../api/tgbotapi.behaviour_builder.api | 6 + tgbotapi.core/api/tgbotapi.core.api | 621 +++++++++++++++--- .../requests/send/media/SendMediaGroup.kt | 2 +- .../requests/send/media/SendPaidMedia.kt | 165 +++++ .../requests/send/media/SendPaidMediaGroup.kt | 209 ------ .../kotlin/dev/inmo/tgbotapi/types/Common.kt | 1 + .../dev/inmo/tgbotapi/types/chat/Extended.kt | 2 + .../tgbotapi/types/chat/ExtendedAbstracts.kt | 1 + .../media/MediaGroupMemberTelegramMedia.kt | 23 +- ...ediaGroupMemberTelegramMediaSerializer.kt} | 8 +- ...aGroupMemberTelegramPaidMediaSerializer.kt | 38 -- .../tgbotapi/types/media/TelegramFreeMedia.kt | 1 - .../types/media/TelegramMediaPhoto.kt | 2 +- .../types/media/TelegramMediaVideo.kt | 2 +- .../tgbotapi/types/media/TelegramPaidMedia.kt | 4 +- .../types/media/TelegramPaidMediaPhoto.kt | 4 +- .../types/media/TelegramPaidMediaVideo.kt | 4 +- .../inmo/tgbotapi/types/message/RawMessage.kt | 4 +- .../types/message/content/Abstracts.kt | 2 +- .../message/content/PaidMediaInfoContent.kt | 33 +- .../payments/stars/TransactionPartner.kt | 11 + .../dev/inmo/tgbotapi/SimpleInputFilesTest.kt | 6 +- tgbotapi.utils/api/tgbotapi.utils.api | 122 ++-- .../extensions/utils/ClassCastsNew.kt | 195 ++++-- 27 files changed, 1231 insertions(+), 510 deletions(-) create mode 100644 tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendPaidMedia.kt create mode 100644 tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendPaidMedia.kt delete mode 100644 tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendPaidMediaGroup.kt rename tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/{MediaGroupMemberTelegramFreeMediaSerializer.kt => MediaGroupMemberTelegramMediaSerializer.kt} (88%) delete mode 100644 tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/MediaGroupMemberTelegramPaidMediaSerializer.kt diff --git a/tgbotapi.api/api/tgbotapi.api.api b/tgbotapi.api/api/tgbotapi.api.api index abb2e5f4bc..2cbec522fa 100644 --- a/tgbotapi.api/api/tgbotapi.api.api +++ b/tgbotapi.api/api/tgbotapi.api.api @@ -741,13 +741,13 @@ public final class dev/inmo/tgbotapi/extensions/api/edit/EditsKt { public static synthetic fun edit-TGui-ok$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/ContentMessage;Ljava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/LinkPreviewOptions;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static synthetic fun edit-TGui-ok$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/ContentMessage;Ljava/util/List;Ljava/lang/String;ZLdev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun edit-aaeEne8 (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;JLdev/inmo/tgbotapi/types/location/LiveLocation;Ljava/lang/String;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; - public static final fun edit-aaeEne8 (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;JLdev/inmo/tgbotapi/types/media/TelegramMedia;Ljava/lang/String;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun edit-aaeEne8 (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;JLdev/inmo/tgbotapi/types/media/TelegramFreeMedia;Ljava/lang/String;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static final fun edit-aaeEne8 (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;JLdev/inmo/tgbotapi/types/location/LiveLocation;Ljava/lang/String;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; - public static final fun edit-aaeEne8 (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;JLdev/inmo/tgbotapi/types/media/TelegramMedia;Ljava/lang/String;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun edit-aaeEne8 (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;JLdev/inmo/tgbotapi/types/media/TelegramFreeMedia;Ljava/lang/String;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun edit-aaeEne8$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;JLdev/inmo/tgbotapi/types/location/LiveLocation;Ljava/lang/String;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; - public static synthetic fun edit-aaeEne8$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;JLdev/inmo/tgbotapi/types/media/TelegramMedia;Ljava/lang/String;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static synthetic fun edit-aaeEne8$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;JLdev/inmo/tgbotapi/types/media/TelegramFreeMedia;Ljava/lang/String;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static synthetic fun edit-aaeEne8$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;JLdev/inmo/tgbotapi/types/location/LiveLocation;Ljava/lang/String;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; - public static synthetic fun edit-aaeEne8$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;JLdev/inmo/tgbotapi/types/media/TelegramMedia;Ljava/lang/String;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static synthetic fun edit-aaeEne8$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;JLdev/inmo/tgbotapi/types/media/TelegramFreeMedia;Ljava/lang/String;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun edit-dGH9i-g (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/ContentMessage;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;Ljava/lang/String;Ldev/inmo/tgbotapi/types/LinkPreviewOptions;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static final fun edit-dGH9i-g (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/ContentMessage;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;Ljava/lang/String;ZLdev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun edit-dGH9i-g$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/ContentMessage;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;Ljava/lang/String;Ldev/inmo/tgbotapi/types/LinkPreviewOptions;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; @@ -759,9 +759,9 @@ public final class dev/inmo/tgbotapi/extensions/api/edit/EditsKt { public static synthetic fun edit-mZNP5so$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/ContentMessage;Ldev/inmo/tgbotapi/types/message/textsources/TextSource;Ljava/lang/String;Ldev/inmo/tgbotapi/types/LinkPreviewOptions;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static synthetic fun edit-mZNP5so$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/ContentMessage;Ljava/lang/String;Ljava/lang/String;Ldev/inmo/tgbotapi/types/LinkPreviewOptions;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun edit-qvzigsQ (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/ContentMessage;Ldev/inmo/tgbotapi/types/location/LiveLocation;Ljava/lang/String;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; - public static final fun edit-qvzigsQ (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/ContentMessage;Ldev/inmo/tgbotapi/types/media/TelegramMedia;Ljava/lang/String;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun edit-qvzigsQ (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/ContentMessage;Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia;Ljava/lang/String;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun edit-qvzigsQ$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/ContentMessage;Ldev/inmo/tgbotapi/types/location/LiveLocation;Ljava/lang/String;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; - public static synthetic fun edit-qvzigsQ$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/ContentMessage;Ldev/inmo/tgbotapi/types/media/TelegramMedia;Ljava/lang/String;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static synthetic fun edit-qvzigsQ$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/ContentMessage;Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia;Ljava/lang/String;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun edit-qwFTcfQ (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;JLdev/inmo/tgbotapi/types/message/textsources/TextSource;Ljava/lang/String;Ldev/inmo/tgbotapi/types/LinkPreviewOptions;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static final fun edit-qwFTcfQ (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;JLjava/lang/String;Ljava/lang/String;Ldev/inmo/tgbotapi/types/LinkPreviewOptions;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun edit-qwFTcfQ$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;JLdev/inmo/tgbotapi/types/message/textsources/TextSource;Ljava/lang/String;Ldev/inmo/tgbotapi/types/LinkPreviewOptions;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; @@ -790,9 +790,9 @@ public final class dev/inmo/tgbotapi/extensions/api/edit/InlineEditsKt { public static synthetic fun edit-9-2TYKY$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ljava/lang/String;Ljava/lang/String;ZLdev/inmo/tgbotapi/types/LinkPreviewOptions;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static synthetic fun edit-9-2TYKY$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ljava/lang/String;ZLdev/inmo/tgbotapi/types/message/textsources/TextSource;Ldev/inmo/tgbotapi/types/LinkPreviewOptions;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun edit-FrLM24I (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ljava/lang/String;Ldev/inmo/tgbotapi/types/location/LiveLocation;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; - public static final fun edit-FrLM24I (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ljava/lang/String;Ldev/inmo/tgbotapi/types/media/TelegramMedia;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun edit-FrLM24I (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ljava/lang/String;Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun edit-FrLM24I$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ljava/lang/String;Ldev/inmo/tgbotapi/types/location/LiveLocation;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; - public static synthetic fun edit-FrLM24I$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ljava/lang/String;Ldev/inmo/tgbotapi/types/media/TelegramMedia;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static synthetic fun edit-FrLM24I$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ljava/lang/String;Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun edit-QHra4TU (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ljava/lang/String;DDLjava/lang/Float;Ljava/lang/Integer;Ljava/lang/Float;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun edit-QHra4TU$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ljava/lang/String;DDLjava/lang/Float;Ljava/lang/Integer;Ljava/lang/Float;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun edit-vJR7F_U (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ljava/lang/String;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; @@ -860,17 +860,17 @@ public final class dev/inmo/tgbotapi/extensions/api/edit/location/live/StopInlin } public final class dev/inmo/tgbotapi/extensions/api/edit/media/EditChatMessageMediaKt { - public static final fun editMessageMedia-aaeEne8 (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;JLdev/inmo/tgbotapi/types/media/TelegramMedia;Ljava/lang/String;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; - public static final fun editMessageMedia-aaeEne8 (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;JLdev/inmo/tgbotapi/types/media/TelegramMedia;Ljava/lang/String;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; - public static synthetic fun editMessageMedia-aaeEne8$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;JLdev/inmo/tgbotapi/types/media/TelegramMedia;Ljava/lang/String;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; - public static synthetic fun editMessageMedia-aaeEne8$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;JLdev/inmo/tgbotapi/types/media/TelegramMedia;Ljava/lang/String;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; - public static final fun editMessageMedia-qvzigsQ (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/ContentMessage;Ldev/inmo/tgbotapi/types/media/TelegramMedia;Ljava/lang/String;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; - public static synthetic fun editMessageMedia-qvzigsQ$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/ContentMessage;Ldev/inmo/tgbotapi/types/media/TelegramMedia;Ljava/lang/String;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun editMessageMedia-aaeEne8 (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;JLdev/inmo/tgbotapi/types/media/TelegramFreeMedia;Ljava/lang/String;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun editMessageMedia-aaeEne8 (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;JLdev/inmo/tgbotapi/types/media/TelegramFreeMedia;Ljava/lang/String;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun editMessageMedia-aaeEne8$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;JLdev/inmo/tgbotapi/types/media/TelegramFreeMedia;Ljava/lang/String;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static synthetic fun editMessageMedia-aaeEne8$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;JLdev/inmo/tgbotapi/types/media/TelegramFreeMedia;Ljava/lang/String;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun editMessageMedia-qvzigsQ (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/ContentMessage;Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia;Ljava/lang/String;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun editMessageMedia-qvzigsQ$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/ContentMessage;Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia;Ljava/lang/String;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; } public final class dev/inmo/tgbotapi/extensions/api/edit/media/EditInlineMessageMediaKt { - public static final fun editMessageMedia-FrLM24I (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ljava/lang/String;Ldev/inmo/tgbotapi/types/media/TelegramMedia;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; - public static synthetic fun editMessageMedia-FrLM24I$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ljava/lang/String;Ldev/inmo/tgbotapi/types/media/TelegramMedia;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun editMessageMedia-FrLM24I (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ljava/lang/String;Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun editMessageMedia-FrLM24I$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ljava/lang/String;Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; } public final class dev/inmo/tgbotapi/extensions/api/edit/reply_markup/EditChatMessageReplyMarkupKt { @@ -1122,8 +1122,6 @@ public final class dev/inmo/tgbotapi/extensions/api/send/CopyMessagesKt { } public final class dev/inmo/tgbotapi/extensions/api/send/RepliesKt { - public static final fun reply-1otGUnY (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ljava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; - public static synthetic fun reply-1otGUnY$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ljava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun reply-40MSv6s (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/files/DocumentFile;Ljava/util/List;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static final fun reply-40MSv6s (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/message/textsources/TextSource;Ldev/inmo/tgbotapi/types/LinkPreviewOptions;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static final fun reply-40MSv6s (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ljava/lang/String;Ldev/inmo/tgbotapi/types/LinkPreviewOptions;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; @@ -1154,8 +1152,6 @@ public final class dev/inmo/tgbotapi/extensions/api/send/RepliesKt { public static final fun reply-H5QpsKU (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/chat/Chat;JLjava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;ZZLjava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun reply-H5QpsKU$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/ChatIdentifier;JLjava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;ZZLjava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static synthetic fun reply-H5QpsKU$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/chat/Chat;JLjava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;ZZLjava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; - public static final fun reply-NSSj8Hs (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ljava/util/List;Ljava/util/List;ZZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; - public static synthetic fun reply-NSSj8Hs$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ljava/util/List;Ljava/util/List;ZZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun reply-QoHPY0M (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;ZZLjava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun reply-QoHPY0M$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;ZZLjava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun reply-SFtPMII (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/files/AudioFile;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;Ljava/lang/String;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; @@ -1164,6 +1160,8 @@ public final class dev/inmo/tgbotapi/extensions/api/send/RepliesKt { public static synthetic fun reply-SFtPMII$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/files/AudioFile;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;Ljava/lang/String;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static synthetic fun reply-SFtPMII$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/files/PhotoSize;Ljava/util/List;ZZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static synthetic fun reply-SFtPMII$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/files/VideoFile;Ljava/util/List;ZZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun reply-XnhO3bE (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ljava/util/List;Ljava/util/List;ZZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun reply-XnhO3bE$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ljava/util/List;Ljava/util/List;ZZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun reply-XtSywpo (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/files/PhotoSize;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static final fun reply-XtSywpo (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/files/VideoFile;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun reply-XtSywpo$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/files/PhotoSize;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; @@ -1228,6 +1226,8 @@ public final class dev/inmo/tgbotapi/extensions/api/send/RepliesKt { public static synthetic fun reply-xleuolY$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/polls/QuizPoll;Ljava/lang/String;Ljava/util/List;IZZLdev/inmo/tgbotapi/types/message/ParseMode;Ljava/util/List;Ldev/inmo/tgbotapi/types/polls/ScheduledCloseInfo;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static synthetic fun reply-xleuolY$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/polls/QuizPoll;Ljava/lang/String;Ljava/util/List;Ljava/util/List;IZZLdev/inmo/tgbotapi/types/message/ParseMode;Ldev/inmo/tgbotapi/types/polls/ScheduledCloseInfo;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static synthetic fun reply-xleuolY$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ljava/lang/String;Ljava/util/List;ILjava/lang/String;ZZLdev/inmo/tgbotapi/types/message/ParseMode;Ldev/inmo/tgbotapi/types/message/ParseMode;Ldev/inmo/tgbotapi/types/polls/ScheduledCloseInfo;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun reply-xnQKYlY (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ljava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun reply-xnQKYlY$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ljava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun replyLiveLocationWithLatLong (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Lkotlinx/coroutines/flow/Flow;JLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun replyLiveLocationWithLatLong$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Lkotlinx/coroutines/flow/Flow;JLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun replyLiveLocationWithLocation (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Lkotlinx/coroutines/flow/Flow;JLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; @@ -1277,6 +1277,8 @@ public final class dev/inmo/tgbotapi/extensions/api/send/RepliesKt { } public final class dev/inmo/tgbotapi/extensions/api/send/RepliesWithChatsAndMessagesKt { + public static final fun reply-3TJJgtw (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLjava/util/List;Ljava/util/List;ZZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun reply-3TJJgtw$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLjava/util/List;Ljava/util/List;ZZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun reply-7yi0qPQ (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLdev/inmo/tgbotapi/types/files/AnimationFile;Ljava/util/List;ZZLjava/lang/Long;Ljava/lang/Integer;Ljava/lang/Integer;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static final fun reply-7yi0qPQ (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLdev/inmo/tgbotapi/types/location/StaticLocation;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static final fun reply-7yi0qPQ (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLdev/inmo/tgbotapi/types/polls/RegularPoll;Ljava/util/List;Ljava/util/List;ZZZLdev/inmo/tgbotapi/types/polls/ScheduledCloseInfo;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; @@ -1289,8 +1291,6 @@ public final class dev/inmo/tgbotapi/extensions/api/send/RepliesWithChatsAndMess public static synthetic fun reply-7yi0qPQ$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLjava/util/List;Ljava/util/List;IZZLjava/util/List;Ldev/inmo/tgbotapi/types/polls/ScheduledCloseInfo;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun reply-ADPoDyM (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/Integer;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;ZZZZZZZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun reply-ADPoDyM$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/Integer;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;ZZZZZZZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; - public static final fun reply-CZclKDo (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLjava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; - public static synthetic fun reply-CZclKDo$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLjava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun reply-CnG2l1Y (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLdev/inmo/tgbotapi/types/Contact;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static final fun reply-CnG2l1Y (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLdev/inmo/tgbotapi/types/dice/DiceAnimationType;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static final fun reply-CnG2l1Y (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLdev/inmo/tgbotapi/types/files/TelegramMediaFile;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; @@ -1317,6 +1317,8 @@ public final class dev/inmo/tgbotapi/extensions/api/send/RepliesWithChatsAndMess public static final fun reply-EqjfWUE (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLdev/inmo/tgbotapi/types/chat/Chat;JLjava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;ZZLjava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun reply-EqjfWUE$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLdev/inmo/tgbotapi/types/ChatIdentifier;JLjava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;ZZLjava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static synthetic fun reply-EqjfWUE$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLdev/inmo/tgbotapi/types/chat/Chat;JLjava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;ZZLjava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun reply-H8D-plY (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLjava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun reply-H8D-plY$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLjava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun reply-IwimU_w (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLdev/inmo/tgbotapi/types/files/DocumentFile;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun reply-IwimU_w$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLdev/inmo/tgbotapi/types/files/DocumentFile;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun reply-PKzUTs4 (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLdev/inmo/tgbotapi/types/files/AudioFile;Ljava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; @@ -1341,8 +1343,6 @@ public final class dev/inmo/tgbotapi/extensions/api/send/RepliesWithChatsAndMess public static synthetic fun reply-Uo5bMtk$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLjava/util/List;Ldev/inmo/tgbotapi/types/LinkPreviewOptions;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun reply-_C_mO4Q (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLdev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;ZZLjava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun reply-_C_mO4Q$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLdev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;ZZLjava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; - public static final fun reply-aoP32Tw (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLjava/util/List;Ljava/util/List;ZZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; - public static synthetic fun reply-aoP32Tw$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLjava/util/List;Ljava/util/List;ZZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun reply-cght-2w (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLkotlinx/coroutines/flow/Flow;JLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun reply-cght-2w$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLkotlinx/coroutines/flow/Flow;JLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun reply-gV8EhO8 (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLdev/inmo/tgbotapi/types/polls/QuizPoll;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;IZZLdev/inmo/tgbotapi/types/message/ParseMode;Ldev/inmo/tgbotapi/types/message/ParseMode;Ldev/inmo/tgbotapi/types/polls/ScheduledCloseInfo;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; @@ -1670,10 +1670,6 @@ public final class dev/inmo/tgbotapi/extensions/api/send/SendsKt { public static final fun send-40MSv6s (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ldev/inmo/tgbotapi/types/files/DocumentFile;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun send-40MSv6s$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ldev/inmo/tgbotapi/types/files/DocumentFile;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static synthetic fun send-40MSv6s$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ldev/inmo/tgbotapi/types/files/DocumentFile;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; - public static final fun send-6kPLSig (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ljava/util/List;Ljava/util/List;ZZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; - public static final fun send-6kPLSig (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ljava/util/List;Ljava/util/List;ZZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; - public static synthetic fun send-6kPLSig$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ljava/util/List;Ljava/util/List;ZZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; - public static synthetic fun send-6kPLSig$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ljava/util/List;Ljava/util/List;ZZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun send-CmRSTE8 (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ljava/lang/String;Ljava/util/List;ILdev/inmo/tgbotapi/types/message/ParseMode;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;Ldev/inmo/tgbotapi/types/polls/ScheduledCloseInfo;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static final fun send-CmRSTE8 (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;ZLdev/inmo/tgbotapi/types/polls/QuizPoll;Ljava/lang/String;Ljava/util/List;Ldev/inmo/tgbotapi/types/message/ParseMode;Ljava/util/List;IZLdev/inmo/tgbotapi/types/polls/ScheduledCloseInfo;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static final fun send-CmRSTE8 (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;ZLdev/inmo/tgbotapi/types/polls/QuizPoll;Ljava/util/List;Ljava/util/List;IZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;Ldev/inmo/tgbotapi/types/polls/ScheduledCloseInfo;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; @@ -1686,6 +1682,10 @@ public final class dev/inmo/tgbotapi/extensions/api/send/SendsKt { public static synthetic fun send-CmRSTE8$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ljava/lang/String;Ljava/util/List;ILdev/inmo/tgbotapi/types/message/ParseMode;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;Ldev/inmo/tgbotapi/types/polls/ScheduledCloseInfo;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static synthetic fun send-CmRSTE8$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;ZLdev/inmo/tgbotapi/types/polls/QuizPoll;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;Ljava/util/List;Ljava/util/List;IZLdev/inmo/tgbotapi/types/polls/ScheduledCloseInfo;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static synthetic fun send-CmRSTE8$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;ZLdev/inmo/tgbotapi/types/polls/QuizPoll;Ljava/util/List;Ljava/util/List;IZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;Ldev/inmo/tgbotapi/types/polls/ScheduledCloseInfo;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun send-G8VHqmM (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ljava/util/List;Ljava/util/List;ZZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun send-G8VHqmM (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ljava/util/List;Ljava/util/List;ZZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun send-G8VHqmM$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ljava/util/List;Ljava/util/List;ZZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static synthetic fun send-G8VHqmM$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ljava/util/List;Ljava/util/List;ZZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun send-GDopve4 (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ldev/inmo/tgbotapi/types/files/AnimationFile;Ljava/util/List;ZZLjava/lang/Long;Ljava/lang/Integer;Ljava/lang/Integer;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static final fun send-GDopve4 (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ldev/inmo/tgbotapi/types/location/StaticLocation;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static final fun send-GDopve4 (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ldev/inmo/tgbotapi/types/polls/RegularPoll;Ljava/util/List;ZLjava/util/List;ZZLdev/inmo/tgbotapi/types/polls/ScheduledCloseInfo;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; @@ -1708,10 +1708,6 @@ public final class dev/inmo/tgbotapi/extensions/api/send/SendsKt { public static synthetic fun send-GDopve4$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ljava/util/List;Ljava/util/List;ILjava/util/List;ZZLdev/inmo/tgbotapi/types/polls/ScheduledCloseInfo;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun send-NCwJssg (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/Integer;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;ZZZZZZZLdev/inmo/tgbotapi/types/MessageThreadId;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun send-NCwJssg$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/Integer;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;ZZZZZZZLdev/inmo/tgbotapi/types/MessageThreadId;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; - public static final fun send-NSSj8Hs (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ljava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; - public static final fun send-NSSj8Hs (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ljava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; - public static synthetic fun send-NSSj8Hs$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ljava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; - public static synthetic fun send-NSSj8Hs$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ljava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun send-SFtPMII (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ldev/inmo/tgbotapi/types/files/PhotoSize;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static final fun send-SFtPMII (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ldev/inmo/tgbotapi/types/files/VideoFile;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static final fun send-SFtPMII (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ldev/inmo/tgbotapi/types/location/Location;ILjava/lang/Float;Ljava/lang/Integer;Ljava/lang/Float;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; @@ -1724,6 +1720,10 @@ public final class dev/inmo/tgbotapi/extensions/api/send/SendsKt { public static synthetic fun send-SFtPMII$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ldev/inmo/tgbotapi/types/files/PhotoSize;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static synthetic fun send-SFtPMII$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ldev/inmo/tgbotapi/types/files/VideoFile;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static synthetic fun send-SFtPMII$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ldev/inmo/tgbotapi/types/location/Location;ILjava/lang/Float;Ljava/lang/Integer;Ljava/lang/Float;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun send-XnhO3bE (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ljava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun send-XnhO3bE (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ljava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun send-XnhO3bE$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ljava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static synthetic fun send-XnhO3bE$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ljava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun send-XtSywpo (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;DDILjava/lang/Float;Ljava/lang/Integer;Ljava/lang/Float;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static final fun send-XtSywpo (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ljava/util/List;Ljava/util/List;ZZZLdev/inmo/tgbotapi/types/polls/ScheduledCloseInfo;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static final fun send-XtSywpo (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;DDILjava/lang/Float;Ljava/lang/Integer;Ljava/lang/Float;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; @@ -1820,6 +1820,10 @@ public final class dev/inmo/tgbotapi/extensions/api/send/SendsKt { public static synthetic fun send-sx10buk$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun send-tXTtQSU (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/CommonUser;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/Integer;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;ZZZZZZZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun send-tXTtQSU$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/CommonUser;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/Integer;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;ZZZZZZZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun send-uCdAg00 (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;ILjava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLdev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun send-uCdAg00 (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;ILjava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLdev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun send-uCdAg00$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;ILjava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLdev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static synthetic fun send-uCdAg00$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;ILjava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLdev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun send-xleuolY (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;ZLdev/inmo/tgbotapi/types/polls/QuizPoll;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;Ljava/util/List;IZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;Ldev/inmo/tgbotapi/types/polls/ScheduledCloseInfo;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static final fun send-xleuolY (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;ZLdev/inmo/tgbotapi/types/polls/QuizPoll;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;Ljava/util/List;IZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;Ldev/inmo/tgbotapi/types/polls/ScheduledCloseInfo;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun send-xleuolY$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;ZLdev/inmo/tgbotapi/types/polls/QuizPoll;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;Ljava/util/List;IZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;Ldev/inmo/tgbotapi/types/polls/ScheduledCloseInfo;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; @@ -1996,15 +2000,22 @@ public final class dev/inmo/tgbotapi/extensions/api/send/media/SendMediaGroupKt public static synthetic fun sendVisualMediaGroupByContent$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ljava/util/List;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; } +public final class dev/inmo/tgbotapi/extensions/api/send/media/SendPaidMediaKt { + public static final fun sendPaidMedia-T1eFeO4 (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;ILjava/util/List;Ljava/util/List;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLdev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun sendPaidMedia-T1eFeO4 (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;ILjava/util/List;Ljava/util/List;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLdev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendPaidMedia-T1eFeO4$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;ILjava/util/List;Ljava/util/List;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLdev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static synthetic fun sendPaidMedia-T1eFeO4$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;ILjava/util/List;Ljava/util/List;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLdev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendPaidMedia-uCdAg00 (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;ILjava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLdev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun sendPaidMedia-uCdAg00 (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;ILjava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLdev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendPaidMedia-uCdAg00$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;ILjava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLdev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static synthetic fun sendPaidMedia-uCdAg00$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;ILjava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLdev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; +} + public final class dev/inmo/tgbotapi/extensions/api/send/media/SendPhotoKt { - public static final fun sendPhoto-6kPLSig (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ljava/util/List;Ljava/util/List;ZZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; - public static final fun sendPhoto-6kPLSig (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ljava/util/List;Ljava/util/List;ZZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; - public static synthetic fun sendPhoto-6kPLSig$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ljava/util/List;Ljava/util/List;ZZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; - public static synthetic fun sendPhoto-6kPLSig$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ljava/util/List;Ljava/util/List;ZZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; - public static final fun sendPhoto-NSSj8Hs (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ljava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; - public static final fun sendPhoto-NSSj8Hs (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ljava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; - public static synthetic fun sendPhoto-NSSj8Hs$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ljava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; - public static synthetic fun sendPhoto-NSSj8Hs$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ljava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendPhoto-G8VHqmM (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ljava/util/List;Ljava/util/List;ZZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun sendPhoto-G8VHqmM (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ljava/util/List;Ljava/util/List;ZZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendPhoto-G8VHqmM$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ljava/util/List;Ljava/util/List;ZZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static synthetic fun sendPhoto-G8VHqmM$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ljava/util/List;Ljava/util/List;ZZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun sendPhoto-SFtPMII (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ldev/inmo/tgbotapi/requests/abstracts/InputFile;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static final fun sendPhoto-SFtPMII (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ldev/inmo/tgbotapi/types/files/PhotoSize;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static final fun sendPhoto-SFtPMII (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ldev/inmo/tgbotapi/requests/abstracts/InputFile;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; @@ -2013,6 +2024,10 @@ public final class dev/inmo/tgbotapi/extensions/api/send/media/SendPhotoKt { public static synthetic fun sendPhoto-SFtPMII$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ldev/inmo/tgbotapi/types/files/PhotoSize;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static synthetic fun sendPhoto-SFtPMII$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ldev/inmo/tgbotapi/requests/abstracts/InputFile;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static synthetic fun sendPhoto-SFtPMII$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ldev/inmo/tgbotapi/types/files/PhotoSize;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendPhoto-XnhO3bE (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ljava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun sendPhoto-XnhO3bE (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ljava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendPhoto-XnhO3bE$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ljava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static synthetic fun sendPhoto-XnhO3bE$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ljava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun sendPhoto-kyX8lJA (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ldev/inmo/tgbotapi/requests/abstracts/InputFile;Ljava/util/List;ZZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static final fun sendPhoto-kyX8lJA (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ldev/inmo/tgbotapi/types/files/PhotoSize;Ljava/util/List;ZZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static final fun sendPhoto-kyX8lJA (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ldev/inmo/tgbotapi/requests/abstracts/InputFile;Ljava/util/List;ZZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; diff --git a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/Sends.kt b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/Sends.kt index e5a98f7791..d200d9e132 100644 --- a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/Sends.kt +++ b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/Sends.kt @@ -740,6 +740,46 @@ suspend fun TelegramBot.send( replyMarkup: KeyboardMarkup? = null ) = sendPhoto(chatId, photo, text, parseMode, showCaptionAboveMedia, spoilered, threadId, businessConnectionId, disableNotification, protectContent, effectId, replyParameters, replyMarkup) +/** + * Will execute [sendPaidMedia] request + * @param replyMarkup Some of [KeyboardMarkup]. See [dev.inmo.tgbotapi.extensions.utils.types.buttons.replyKeyboard] or + * [dev.inmo.tgbotapi.extensions.utils.types.buttons.inlineKeyboard] as a builders for that param + */ +suspend fun TelegramBot.send( + chat: Chat, + starCount: Int, + media: List, + text: String? = null, + parseMode: ParseMode? = null, + showCaptionAboveMedia: Boolean = false, + threadId: MessageThreadId? = chat.id.threadId, + businessConnectionId: BusinessConnectionId? = chat.id.businessConnectionId, + disableNotification: Boolean = false, + protectContent: Boolean = false, + replyParameters: ReplyParameters? = null, + replyMarkup: KeyboardMarkup? = null +) = sendPaidMedia(chat, starCount, media, text, parseMode, showCaptionAboveMedia, threadId, businessConnectionId, disableNotification, protectContent, replyParameters, replyMarkup) + +/** + * Will execute [sendPaidMedia] request + * @param replyMarkup Some of [KeyboardMarkup]. See [dev.inmo.tgbotapi.extensions.utils.types.buttons.replyKeyboard] or + * [dev.inmo.tgbotapi.extensions.utils.types.buttons.inlineKeyboard] as a builders for that param + */ +suspend fun TelegramBot.send( + chatId: ChatIdentifier, + starCount: Int, + media: List, + text: String? = null, + parseMode: ParseMode? = null, + showCaptionAboveMedia: Boolean = false, + threadId: MessageThreadId? = chatId.threadId, + businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId, + disableNotification: Boolean = false, + protectContent: Boolean = false, + replyParameters: ReplyParameters? = null, + replyMarkup: KeyboardMarkup? = null +) = sendPaidMedia(chatId, starCount, media, text, parseMode, showCaptionAboveMedia, threadId, businessConnectionId, disableNotification, protectContent, replyParameters, replyMarkup) + /** * Will execute [sendPhoto] request * @param replyMarkup Some of [KeyboardMarkup]. See [dev.inmo.tgbotapi.extensions.utils.types.buttons.replyKeyboard] or diff --git a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendPaidMedia.kt b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendPaidMedia.kt new file mode 100644 index 0000000000..87904da651 --- /dev/null +++ b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendPaidMedia.kt @@ -0,0 +1,140 @@ +package dev.inmo.tgbotapi.extensions.api.send.media + +import dev.inmo.tgbotapi.bot.TelegramBot +import dev.inmo.tgbotapi.requests.send.media.SendPaidMedia +import dev.inmo.tgbotapi.types.* +import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId +import dev.inmo.tgbotapi.types.message.textsources.TextSourcesList +import dev.inmo.tgbotapi.types.message.ParseMode +import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup +import dev.inmo.tgbotapi.types.chat.Chat +import dev.inmo.tgbotapi.types.media.TelegramPaidMedia + +/** + * @param replyMarkup Some of [KeyboardMarkup]. See [dev.inmo.tgbotapi.extensions.utils.types.buttons.replyKeyboard] or + * [dev.inmo.tgbotapi.extensions.utils.types.buttons.inlineKeyboard] as a builders for that param + */ +suspend fun TelegramBot.sendPaidMedia( + chatId: ChatIdentifier, + starCount: Int, + media: List, + text: String? = null, + parseMode: ParseMode? = null, + showCaptionAboveMedia: Boolean = false, + threadId: MessageThreadId? = chatId.threadId, + businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId, + disableNotification: Boolean = false, + protectContent: Boolean = false, + replyParameters: ReplyParameters? = null, + replyMarkup: KeyboardMarkup? = null +) = execute( + SendPaidMedia( + chatId = chatId, + starCount = starCount, + media = media, + text = text, + parseMode = parseMode, + showCaptionAboveMedia = showCaptionAboveMedia, + threadId = threadId, + businessConnectionId = businessConnectionId, + disableNotification = disableNotification, + protectContent = protectContent, + replyParameters = replyParameters, + replyMarkup = replyMarkup + ) +) + +/** + * @param replyMarkup Some of [KeyboardMarkup]. See [dev.inmo.tgbotapi.extensions.utils.types.buttons.replyKeyboard] or + * [dev.inmo.tgbotapi.extensions.utils.types.buttons.inlineKeyboard] as a builders for that param + */ +suspend fun TelegramBot.sendPaidMedia( + chat: Chat, + starCount: Int, + media: List, + text: String? = null, + parseMode: ParseMode? = null, + showCaptionAboveMedia: Boolean = false, + threadId: MessageThreadId? = chat.id.threadId, + businessConnectionId: BusinessConnectionId? = chat.id.businessConnectionId, + disableNotification: Boolean = false, + protectContent: Boolean = false, + replyParameters: ReplyParameters? = null, + replyMarkup: KeyboardMarkup? = null +) = sendPaidMedia( + chatId = chat.id, + starCount = starCount, + media = media, + text = text, + parseMode = parseMode, + showCaptionAboveMedia = showCaptionAboveMedia, + threadId = threadId, + businessConnectionId = businessConnectionId, + disableNotification = disableNotification, + protectContent = protectContent, + replyParameters = replyParameters, + replyMarkup = replyMarkup +) + + +/** + * @param replyMarkup Some of [KeyboardMarkup]. See [dev.inmo.tgbotapi.extensions.utils.types.buttons.replyKeyboard] or + * [dev.inmo.tgbotapi.extensions.utils.types.buttons.inlineKeyboard] as a builders for that param + */ +suspend inline fun TelegramBot.sendPaidMedia( + chatId: ChatIdentifier, + starCount: Int, + media: List, + entities: TextSourcesList, + showCaptionAboveMedia: Boolean = false, + threadId: MessageThreadId? = chatId.threadId, + businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId, + disableNotification: Boolean = false, + protectContent: Boolean = false, + replyParameters: ReplyParameters? = null, + replyMarkup: KeyboardMarkup? = null +) = execute( + SendPaidMedia( + chatId = chatId, + starCount = starCount, + media = media, + entities = entities, + showCaptionAboveMedia = showCaptionAboveMedia, + threadId = threadId, + businessConnectionId = businessConnectionId, + disableNotification = disableNotification, + protectContent = protectContent, + replyParameters = replyParameters, + replyMarkup = replyMarkup + ) +) + +/** + * @param replyMarkup Some of [KeyboardMarkup]. See [dev.inmo.tgbotapi.extensions.utils.types.buttons.replyKeyboard] or + * [dev.inmo.tgbotapi.extensions.utils.types.buttons.inlineKeyboard] as a builders for that param + */ +suspend inline fun TelegramBot.sendPaidMedia( + chat: Chat, + starCount: Int, + media: List, + entities: TextSourcesList, + showCaptionAboveMedia: Boolean = false, + threadId: MessageThreadId? = chat.id.threadId, + businessConnectionId: BusinessConnectionId? = chat.id.businessConnectionId, + disableNotification: Boolean = false, + protectContent: Boolean = false, + replyParameters: ReplyParameters? = null, + replyMarkup: KeyboardMarkup? = null +) = sendPaidMedia( + chatId = chat.id, + starCount = starCount, + media = media, + entities = entities, + showCaptionAboveMedia = showCaptionAboveMedia, + threadId = threadId, + businessConnectionId = businessConnectionId, + disableNotification = disableNotification, + protectContent = protectContent, + replyParameters = replyParameters, + replyMarkup = replyMarkup +) diff --git a/tgbotapi.behaviour_builder/api/tgbotapi.behaviour_builder.api b/tgbotapi.behaviour_builder/api/tgbotapi.behaviour_builder.api index 7a5cf4894c..bf32c5647c 100644 --- a/tgbotapi.behaviour_builder/api/tgbotapi.behaviour_builder.api +++ b/tgbotapi.behaviour_builder/api/tgbotapi.behaviour_builder.api @@ -501,6 +501,8 @@ public final class dev/inmo/tgbotapi/extensions/behaviour_builder/expectations/W public static synthetic fun waitProximityAlertTriggeredEvents$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun waitPublicChatEvents (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun waitPublicChatEvents$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun waitRefundedPaymentEvents (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun waitRefundedPaymentEvents$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun waitSuccessfulPaymentEvents (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun waitSuccessfulPaymentEvents$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun waitSupergroupChatCreatedEvents (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; @@ -588,6 +590,8 @@ public final class dev/inmo/tgbotapi/extensions/behaviour_builder/expectations/W public static synthetic fun waitProximityAlertTriggeredEventsMessages$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun waitPublicChatEventsMessages (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun waitPublicChatEventsMessages$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun waitRefundedPaymentEventsMessages (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun waitRefundedPaymentEventsMessages$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun waitSuccessfulPaymentEventsMessages (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun waitSuccessfulPaymentEventsMessages$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun waitSupergroupChatCreatedEventsMessages (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; @@ -1062,6 +1066,8 @@ public final class dev/inmo/tgbotapi/extensions/behaviour_builder/triggers_handl public static synthetic fun onProximityAlertTriggered$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/SimpleFilter;Lkotlin/jvm/functions/Function4;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/marker_factories/MarkerFactory;Lkotlin/jvm/functions/Function3;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun onPublicChatEvent (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/SimpleFilter;Lkotlin/jvm/functions/Function4;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/marker_factories/MarkerFactory;Lkotlin/jvm/functions/Function3;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun onPublicChatEvent$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/SimpleFilter;Lkotlin/jvm/functions/Function4;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/marker_factories/MarkerFactory;Lkotlin/jvm/functions/Function3;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun onRefundedPayment (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/SimpleFilter;Lkotlin/jvm/functions/Function4;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/marker_factories/MarkerFactory;Lkotlin/jvm/functions/Function3;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun onRefundedPayment$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/SimpleFilter;Lkotlin/jvm/functions/Function4;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/marker_factories/MarkerFactory;Lkotlin/jvm/functions/Function3;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun onSuccessfulPayment (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/SimpleFilter;Lkotlin/jvm/functions/Function4;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/marker_factories/MarkerFactory;Lkotlin/jvm/functions/Function3;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun onSuccessfulPayment$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/SimpleFilter;Lkotlin/jvm/functions/Function4;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/marker_factories/MarkerFactory;Lkotlin/jvm/functions/Function3;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun onSupergroupChatCreated (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/SimpleFilter;Lkotlin/jvm/functions/Function4;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/marker_factories/MarkerFactory;Lkotlin/jvm/functions/Function3;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; diff --git a/tgbotapi.core/api/tgbotapi.core.api b/tgbotapi.core/api/tgbotapi.core.api index 1c6ff00ceb..e29a61defa 100644 --- a/tgbotapi.core/api/tgbotapi.core.api +++ b/tgbotapi.core/api/tgbotapi.core.api @@ -3455,7 +3455,7 @@ public abstract interface class dev/inmo/tgbotapi/requests/edit/abstracts/EditLo } public abstract interface class dev/inmo/tgbotapi/requests/edit/abstracts/EditMediaMessage { - public abstract fun getMedia ()Ldev/inmo/tgbotapi/types/media/TelegramMedia; + public abstract fun getMedia ()Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia; } public abstract interface class dev/inmo/tgbotapi/requests/edit/abstracts/EditReplyMessage : dev/inmo/tgbotapi/abstracts/types/WithReplyMarkup { @@ -3745,19 +3745,19 @@ public final class dev/inmo/tgbotapi/requests/edit/location/live/StopInlineMessa public final class dev/inmo/tgbotapi/requests/edit/media/EditChatMessageMedia : dev/inmo/tgbotapi/requests/edit/abstracts/EditChatMessage, dev/inmo/tgbotapi/requests/edit/abstracts/EditMediaMessage, dev/inmo/tgbotapi/requests/edit/abstracts/EditReplyMessage { public static final field Companion Ldev/inmo/tgbotapi/requests/edit/media/EditChatMessageMedia$Companion; - public synthetic fun (Ldev/inmo/tgbotapi/types/ChatIdentifier;JLdev/inmo/tgbotapi/types/media/TelegramMedia;Ljava/lang/String;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public synthetic fun (Ldev/inmo/tgbotapi/types/ChatIdentifier;JLdev/inmo/tgbotapi/types/media/TelegramMedia;Ljava/lang/String;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ldev/inmo/tgbotapi/types/ChatIdentifier;JLdev/inmo/tgbotapi/types/media/TelegramFreeMedia;Ljava/lang/String;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ldev/inmo/tgbotapi/types/ChatIdentifier;JLdev/inmo/tgbotapi/types/media/TelegramFreeMedia;Ljava/lang/String;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Ldev/inmo/tgbotapi/types/ChatIdentifier; public final fun component2-APLFQys ()J - public final fun component3 ()Ldev/inmo/tgbotapi/types/media/TelegramMedia; + public final fun component3 ()Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia; public final fun component4-nXr5wdE ()Ljava/lang/String; public final fun component5 ()Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup; - public final fun copy-FG4LXhY (Ldev/inmo/tgbotapi/types/ChatIdentifier;JLdev/inmo/tgbotapi/types/media/TelegramMedia;Ljava/lang/String;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;)Ldev/inmo/tgbotapi/requests/edit/media/EditChatMessageMedia; - public static synthetic fun copy-FG4LXhY$default (Ldev/inmo/tgbotapi/requests/edit/media/EditChatMessageMedia;Ldev/inmo/tgbotapi/types/ChatIdentifier;JLdev/inmo/tgbotapi/types/media/TelegramMedia;Ljava/lang/String;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;ILjava/lang/Object;)Ldev/inmo/tgbotapi/requests/edit/media/EditChatMessageMedia; + public final fun copy-FG4LXhY (Ldev/inmo/tgbotapi/types/ChatIdentifier;JLdev/inmo/tgbotapi/types/media/TelegramFreeMedia;Ljava/lang/String;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;)Ldev/inmo/tgbotapi/requests/edit/media/EditChatMessageMedia; + public static synthetic fun copy-FG4LXhY$default (Ldev/inmo/tgbotapi/requests/edit/media/EditChatMessageMedia;Ldev/inmo/tgbotapi/types/ChatIdentifier;JLdev/inmo/tgbotapi/types/media/TelegramFreeMedia;Ljava/lang/String;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;ILjava/lang/Object;)Ldev/inmo/tgbotapi/requests/edit/media/EditChatMessageMedia; public fun equals (Ljava/lang/Object;)Z public fun getBusinessConnectionId-nXr5wdE ()Ljava/lang/String; public fun getChatId ()Ldev/inmo/tgbotapi/types/ChatIdentifier; - public fun getMedia ()Ldev/inmo/tgbotapi/types/media/TelegramMedia; + public fun getMedia ()Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia; public fun getMessageId-APLFQys ()J public fun getReplyMarkup ()Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup; public synthetic fun getReplyMarkup ()Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup; @@ -3789,16 +3789,16 @@ public final class dev/inmo/tgbotapi/requests/edit/media/EditChatMessageMediaKt public final class dev/inmo/tgbotapi/requests/edit/media/EditInlineMessageMedia : dev/inmo/tgbotapi/requests/edit/abstracts/EditInlineMessage, dev/inmo/tgbotapi/requests/edit/abstracts/EditMediaMessage, dev/inmo/tgbotapi/requests/edit/abstracts/EditReplyMessage { public static final field Companion Ldev/inmo/tgbotapi/requests/edit/media/EditInlineMessageMedia$Companion; - public synthetic fun (Ljava/lang/String;Ldev/inmo/tgbotapi/types/media/TelegramMedia;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public synthetic fun (Ljava/lang/String;Ldev/inmo/tgbotapi/types/media/TelegramMedia;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1-u1p_GH0 ()Ljava/lang/String; - public final fun component2 ()Ldev/inmo/tgbotapi/types/media/TelegramMedia; + public final fun component2 ()Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia; public final fun component3 ()Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup; - public final fun copy-3bQJ72M (Ljava/lang/String;Ldev/inmo/tgbotapi/types/media/TelegramMedia;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;)Ldev/inmo/tgbotapi/requests/edit/media/EditInlineMessageMedia; - public static synthetic fun copy-3bQJ72M$default (Ldev/inmo/tgbotapi/requests/edit/media/EditInlineMessageMedia;Ljava/lang/String;Ldev/inmo/tgbotapi/types/media/TelegramMedia;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;ILjava/lang/Object;)Ldev/inmo/tgbotapi/requests/edit/media/EditInlineMessageMedia; + public final fun copy-3bQJ72M (Ljava/lang/String;Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;)Ldev/inmo/tgbotapi/requests/edit/media/EditInlineMessageMedia; + public static synthetic fun copy-3bQJ72M$default (Ldev/inmo/tgbotapi/requests/edit/media/EditInlineMessageMedia;Ljava/lang/String;Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;ILjava/lang/Object;)Ldev/inmo/tgbotapi/requests/edit/media/EditInlineMessageMedia; public fun equals (Ljava/lang/Object;)Z public fun getInlineMessageId-u1p_GH0 ()Ljava/lang/String; - public fun getMedia ()Ldev/inmo/tgbotapi/types/media/TelegramMedia; + public fun getMedia ()Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia; public fun getReplyMarkup ()Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup; public synthetic fun getReplyMarkup ()Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup; public fun getRequestSerializer ()Lkotlinx/serialization/SerializationStrategy; @@ -5529,6 +5529,118 @@ public final class dev/inmo/tgbotapi/requests/send/media/SendMediaGroupKt { public static synthetic fun SendVisualMediaGroup-R3NzaxY$default (Ldev/inmo/tgbotapi/types/ChatIdentifier;Ljava/util/List;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;ILjava/lang/Object;)Ldev/inmo/tgbotapi/requests/abstracts/Request; } +public final class dev/inmo/tgbotapi/requests/send/media/SendPaidMediaData : dev/inmo/tgbotapi/requests/send/abstracts/ReplyingMarkupSendMessageRequest, dev/inmo/tgbotapi/requests/send/abstracts/SendContentMessageRequest, dev/inmo/tgbotapi/requests/send/abstracts/TextableSendMessageRequest, dev/inmo/tgbotapi/requests/send/abstracts/WithCustomizableCaptionRequest, dev/inmo/tgbotapi/requests/send/media/base/DataRequest { + public static final field Companion Ldev/inmo/tgbotapi/requests/send/media/SendPaidMediaData$Companion; + public synthetic fun (Ldev/inmo/tgbotapi/types/ChatIdentifier;ILjava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;Ljava/util/List;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLdev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ldev/inmo/tgbotapi/types/ChatIdentifier; + public final fun component10 ()Z + public final fun component11 ()Z + public final fun component12 ()Ldev/inmo/tgbotapi/types/ReplyParameters; + public final fun component13 ()Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup; + public final fun component2 ()I + public final fun component3 ()Ljava/util/List; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Ldev/inmo/tgbotapi/types/message/ParseMode; + public final fun component7 ()Z + public final fun component8-S3HF-10 ()Ldev/inmo/tgbotapi/types/MessageThreadId; + public final fun component9-nXr5wdE ()Ljava/lang/String; + public final fun copy-MhrEbnM (Ldev/inmo/tgbotapi/types/ChatIdentifier;ILjava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;Ljava/util/List;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLdev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;)Ldev/inmo/tgbotapi/requests/send/media/SendPaidMediaData; + public static synthetic fun copy-MhrEbnM$default (Ldev/inmo/tgbotapi/requests/send/media/SendPaidMediaData;Ldev/inmo/tgbotapi/types/ChatIdentifier;ILjava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;Ljava/util/List;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLdev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;ILjava/lang/Object;)Ldev/inmo/tgbotapi/requests/send/media/SendPaidMediaData; + public fun equals (Ljava/lang/Object;)Z + public fun getAllowSendingWithoutReply ()Ljava/lang/Boolean; + public fun getBusinessConnectionId-nXr5wdE ()Ljava/lang/String; + public fun getChatId ()Ldev/inmo/tgbotapi/types/ChatIdentifier; + public fun getDisableNotification ()Z + public fun getEffectId-Ts0V7ak ()Ljava/lang/String; + public fun getEntities ()Ljava/util/List; + public final fun getMedia ()Ljava/util/List; + public fun getParseMode ()Ldev/inmo/tgbotapi/types/message/ParseMode; + public fun getProtectContent ()Z + public fun getReplyMarkup ()Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup; + public fun getReplyParameters ()Ldev/inmo/tgbotapi/types/ReplyParameters; + public fun getReplyToMessageId-CigXjpw ()Ldev/inmo/tgbotapi/types/MessageId; + public fun getRequestSerializer ()Lkotlinx/serialization/SerializationStrategy; + public fun getResultDeserializer ()Lkotlinx/serialization/DeserializationStrategy; + public fun getShowCaptionAboveMedia ()Z + public final fun getStarCount ()I + public fun getText ()Ljava/lang/String; + public fun getTextSources ()Ljava/util/List; + public fun getThreadId-S3HF-10 ()Ldev/inmo/tgbotapi/types/MessageThreadId; + public fun hashCode ()I + public fun method ()Ljava/lang/String; + public fun toString ()Ljava/lang/String; +} + +public final class dev/inmo/tgbotapi/requests/send/media/SendPaidMediaData$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Ldev/inmo/tgbotapi/requests/send/media/SendPaidMediaData$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/inmo/tgbotapi/requests/send/media/SendPaidMediaData; + 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/requests/send/media/SendPaidMediaData;)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/send/media/SendPaidMediaData$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class dev/inmo/tgbotapi/requests/send/media/SendPaidMediaFiles : java/util/Map, kotlin/jvm/internal/markers/KMappedMarker { + public fun clear ()V + public final fun component1 ()Ldev/inmo/tgbotapi/requests/abstracts/MultipartFile; + public synthetic fun compute (Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object; + public fun compute (Ljava/lang/String;Ljava/util/function/BiFunction;)Ldev/inmo/tgbotapi/requests/abstracts/MultipartFile; + public synthetic fun computeIfAbsent (Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object; + public fun computeIfAbsent (Ljava/lang/String;Ljava/util/function/Function;)Ldev/inmo/tgbotapi/requests/abstracts/MultipartFile; + public synthetic fun computeIfPresent (Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object; + public fun computeIfPresent (Ljava/lang/String;Ljava/util/function/BiFunction;)Ldev/inmo/tgbotapi/requests/abstracts/MultipartFile; + public final fun containsKey (Ljava/lang/Object;)Z + public fun containsKey (Ljava/lang/String;)Z + public fun containsValue (Ldev/inmo/tgbotapi/requests/abstracts/MultipartFile;)Z + public final fun containsValue (Ljava/lang/Object;)Z + public final fun copy (Ldev/inmo/tgbotapi/requests/abstracts/MultipartFile;)Ldev/inmo/tgbotapi/requests/send/media/SendPaidMediaFiles; + public static synthetic fun copy$default (Ldev/inmo/tgbotapi/requests/send/media/SendPaidMediaFiles;Ldev/inmo/tgbotapi/requests/abstracts/MultipartFile;ILjava/lang/Object;)Ldev/inmo/tgbotapi/requests/send/media/SendPaidMediaFiles; + public final fun entrySet ()Ljava/util/Set; + public fun equals (Ljava/lang/Object;)Z + public final fun get (Ljava/lang/Object;)Ldev/inmo/tgbotapi/requests/abstracts/MultipartFile; + public final synthetic fun get (Ljava/lang/Object;)Ljava/lang/Object; + public fun get (Ljava/lang/String;)Ldev/inmo/tgbotapi/requests/abstracts/MultipartFile; + public fun getEntries ()Ljava/util/Set; + public fun getKeys ()Ljava/util/Set; + public final fun getPhoto ()Ldev/inmo/tgbotapi/requests/abstracts/MultipartFile; + public fun getSize ()I + public fun getValues ()Ljava/util/Collection; + public fun hashCode ()I + public fun isEmpty ()Z + public final fun keySet ()Ljava/util/Set; + public synthetic fun merge (Ljava/lang/Object;Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object; + public fun merge (Ljava/lang/String;Ldev/inmo/tgbotapi/requests/abstracts/MultipartFile;Ljava/util/function/BiFunction;)Ldev/inmo/tgbotapi/requests/abstracts/MultipartFile; + public synthetic fun put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + public fun put (Ljava/lang/String;Ldev/inmo/tgbotapi/requests/abstracts/MultipartFile;)Ldev/inmo/tgbotapi/requests/abstracts/MultipartFile; + public fun putAll (Ljava/util/Map;)V + public synthetic fun putIfAbsent (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + public fun putIfAbsent (Ljava/lang/String;Ldev/inmo/tgbotapi/requests/abstracts/MultipartFile;)Ldev/inmo/tgbotapi/requests/abstracts/MultipartFile; + public fun remove (Ljava/lang/Object;)Ldev/inmo/tgbotapi/requests/abstracts/MultipartFile; + public synthetic fun remove (Ljava/lang/Object;)Ljava/lang/Object; + public fun remove (Ljava/lang/Object;Ljava/lang/Object;)Z + public synthetic fun replace (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + public synthetic fun replace (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z + public fun replace (Ljava/lang/String;Ldev/inmo/tgbotapi/requests/abstracts/MultipartFile;)Ldev/inmo/tgbotapi/requests/abstracts/MultipartFile; + public fun replace (Ljava/lang/String;Ldev/inmo/tgbotapi/requests/abstracts/MultipartFile;Ldev/inmo/tgbotapi/requests/abstracts/MultipartFile;)Z + public fun replaceAll (Ljava/util/function/BiFunction;)V + public final fun size ()I + public fun toString ()Ljava/lang/String; + public final fun values ()Ljava/util/Collection; +} + +public final class dev/inmo/tgbotapi/requests/send/media/SendPaidMediaKt { + public static final fun SendPaidMedia-gfEr68Q (Ldev/inmo/tgbotapi/types/ChatIdentifier;ILjava/util/List;Ljava/util/List;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLdev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;)Ldev/inmo/tgbotapi/requests/abstracts/Request; + public static synthetic fun SendPaidMedia-gfEr68Q$default (Ldev/inmo/tgbotapi/types/ChatIdentifier;ILjava/util/List;Ljava/util/List;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLdev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;ILjava/lang/Object;)Ldev/inmo/tgbotapi/requests/abstracts/Request; + public static final fun SendPaidMedia-tjNSJyc (Ldev/inmo/tgbotapi/types/ChatIdentifier;ILjava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLdev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;)Ldev/inmo/tgbotapi/requests/abstracts/Request; + public static synthetic fun SendPaidMedia-tjNSJyc$default (Ldev/inmo/tgbotapi/types/ChatIdentifier;ILjava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLdev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;ILjava/lang/Object;)Ldev/inmo/tgbotapi/requests/abstracts/Request; +} + public final class dev/inmo/tgbotapi/requests/send/media/SendPhotoData : dev/inmo/tgbotapi/requests/send/abstracts/OptionallyWithSpoilerRequest, dev/inmo/tgbotapi/requests/send/abstracts/ReplyingMarkupSendMessageRequest, dev/inmo/tgbotapi/requests/send/abstracts/SendContentMessageRequest, dev/inmo/tgbotapi/requests/send/abstracts/TextableSendMessageRequest, dev/inmo/tgbotapi/requests/send/abstracts/WithCustomizableCaptionRequest, dev/inmo/tgbotapi/requests/send/media/base/DataRequest { public static final field Companion Ldev/inmo/tgbotapi/requests/send/media/SendPhotoData$Companion; public synthetic fun (Ldev/inmo/tgbotapi/types/ChatIdentifier;Ldev/inmo/tgbotapi/requests/abstracts/InputFile;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;Ljava/util/List;ZZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;ILkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -8263,6 +8375,7 @@ public final class dev/inmo/tgbotapi/types/CommonKt { public static final field canSendDocumentsField Ljava/lang/String; public static final field canSendMessagesField Ljava/lang/String; public static final field canSendOtherMessagesField Ljava/lang/String; + public static final field canSendPaidMediaField Ljava/lang/String; public static final field canSendPhotosField Ljava/lang/String; public static final field canSendPollsField Ljava/lang/String; public static final field canSendVideoNotesField Ljava/lang/String; @@ -8470,6 +8583,7 @@ public final class dev/inmo/tgbotapi/types/CommonKt { public static final field optionsField Ljava/lang/String; public static final field orderInfoField Ljava/lang/String; public static final field originField Ljava/lang/String; + public static final field paidMediaField Ljava/lang/String; public static final field passportField Ljava/lang/String; public static final field passportRegistrationField Ljava/lang/String; public static final field payField Ljava/lang/String; @@ -8577,6 +8691,7 @@ public final class dev/inmo/tgbotapi/types/CommonKt { public static final field smallFileIdField Ljava/lang/String; public static final field smallFileUniqueIdField Ljava/lang/String; public static final field sourceField Ljava/lang/String; + public static final field starCountField Ljava/lang/String; public static final field startDateField Ljava/lang/String; public static final field startParameterField Ljava/lang/String; public static final field stateField Ljava/lang/String; @@ -8591,6 +8706,7 @@ public final class dev/inmo/tgbotapi/types/CommonKt { public static final field suggestedTipAmountsField Ljava/lang/String; public static final field supportInlineQueriesField Ljava/lang/String; public static final field supportStreamingField Ljava/lang/String; + public static final field supportsStreamingField Ljava/lang/String; public static final field switchInlineQueryChosenChatField Ljava/lang/String; public static final field switchInlineQueryCurrentChatField Ljava/lang/String; public static final field switchInlineQueryField Ljava/lang/String; @@ -14424,6 +14540,7 @@ public final class dev/inmo/tgbotapi/types/chat/ExtendedBusinessChatImpl$Compani public abstract interface class dev/inmo/tgbotapi/types/chat/ExtendedChannelChat : dev/inmo/tgbotapi/types/chat/ChannelChat, dev/inmo/tgbotapi/types/chat/ExtendedChatWithUsername, dev/inmo/tgbotapi/types/chat/ExtendedPublicChat { public static final field Companion Ldev/inmo/tgbotapi/types/chat/ExtendedChannelChat$Companion; + public abstract fun getCanSendPaidMedia ()Z public abstract fun getLinkedGroupChatId ()Ldev/inmo/tgbotapi/types/IdChatIdentifier; } @@ -14433,34 +14550,36 @@ public final class dev/inmo/tgbotapi/types/chat/ExtendedChannelChat$Companion { public final class dev/inmo/tgbotapi/types/chat/ExtendedChannelChatImpl : dev/inmo/tgbotapi/types/chat/ExtendedChannelChat { public static final field Companion Ldev/inmo/tgbotapi/types/chat/ExtendedChannelChatImpl$Companion; - public synthetic fun (JLjava/lang/String;Ljava/lang/String;Ljava/util/List;Ldev/inmo/tgbotapi/types/ChatPhoto;Ljava/lang/String;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/abstracts/Message;Ldev/inmo/tgbotapi/types/IdChatIdentifier;ZLjava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/TelegramDate;ILdev/inmo/tgbotapi/types/colors/ColorId;Ljava/lang/String;Ljava/lang/String;ZIILkotlin/jvm/internal/DefaultConstructorMarker;)V - public synthetic fun (JLjava/lang/String;Ljava/lang/String;Ljava/util/List;Ldev/inmo/tgbotapi/types/ChatPhoto;Ljava/lang/String;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/abstracts/Message;Ldev/inmo/tgbotapi/types/IdChatIdentifier;ZLjava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/TelegramDate;ILdev/inmo/tgbotapi/types/colors/ColorId;Ljava/lang/String;Ljava/lang/String;ZILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/lang/String;Ljava/lang/String;Ljava/util/List;Ldev/inmo/tgbotapi/types/ChatPhoto;Ljava/lang/String;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/abstracts/Message;ZLdev/inmo/tgbotapi/types/IdChatIdentifier;ZLjava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/TelegramDate;ILdev/inmo/tgbotapi/types/colors/ColorId;Ljava/lang/String;Ljava/lang/String;ZIILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/lang/String;Ljava/lang/String;Ljava/util/List;Ldev/inmo/tgbotapi/types/ChatPhoto;Ljava/lang/String;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/abstracts/Message;ZLdev/inmo/tgbotapi/types/IdChatIdentifier;ZLjava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/TelegramDate;ILdev/inmo/tgbotapi/types/colors/ColorId;Ljava/lang/String;Ljava/lang/String;ZILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1-tHkBKVM ()J - public final fun component10 ()Z - public final fun component11 ()Ljava/util/List; - public final fun component12-GbmMWyQ ()Ljava/lang/String; - public final fun component13 ()Ldev/inmo/tgbotapi/types/TelegramDate; - public final fun component14-f3WtEc0 ()I - public final fun component15-mg_h9nU ()Ldev/inmo/tgbotapi/types/colors/ColorId; - public final fun component16-GbmMWyQ ()Ljava/lang/String; + public final fun component10 ()Ldev/inmo/tgbotapi/types/IdChatIdentifier; + public final fun component11 ()Z + public final fun component12 ()Ljava/util/List; + public final fun component13-GbmMWyQ ()Ljava/lang/String; + public final fun component14 ()Ldev/inmo/tgbotapi/types/TelegramDate; + public final fun component15-f3WtEc0 ()I + public final fun component16-mg_h9nU ()Ldev/inmo/tgbotapi/types/colors/ColorId; public final fun component17-GbmMWyQ ()Ljava/lang/String; - public final fun component18 ()Z - public final fun component19 ()I + public final fun component18-GbmMWyQ ()Ljava/lang/String; + public final fun component19 ()Z public final fun component2 ()Ljava/lang/String; + public final fun component20 ()I public final fun component3-san03mo ()Ljava/lang/String; public final fun component4 ()Ljava/util/List; public final fun component5 ()Ldev/inmo/tgbotapi/types/ChatPhoto; public final fun component6 ()Ljava/lang/String; public final fun component7 ()Ljava/lang/String; public final fun component8 ()Ldev/inmo/tgbotapi/types/message/abstracts/Message; - public final fun component9 ()Ldev/inmo/tgbotapi/types/IdChatIdentifier; - public final fun copy-5wRq-w4 (JLjava/lang/String;Ljava/lang/String;Ljava/util/List;Ldev/inmo/tgbotapi/types/ChatPhoto;Ljava/lang/String;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/abstracts/Message;Ldev/inmo/tgbotapi/types/IdChatIdentifier;ZLjava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/TelegramDate;ILdev/inmo/tgbotapi/types/colors/ColorId;Ljava/lang/String;Ljava/lang/String;ZI)Ldev/inmo/tgbotapi/types/chat/ExtendedChannelChatImpl; - public static synthetic fun copy-5wRq-w4$default (Ldev/inmo/tgbotapi/types/chat/ExtendedChannelChatImpl;JLjava/lang/String;Ljava/lang/String;Ljava/util/List;Ldev/inmo/tgbotapi/types/ChatPhoto;Ljava/lang/String;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/abstracts/Message;Ldev/inmo/tgbotapi/types/IdChatIdentifier;ZLjava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/TelegramDate;ILdev/inmo/tgbotapi/types/colors/ColorId;Ljava/lang/String;Ljava/lang/String;ZIILjava/lang/Object;)Ldev/inmo/tgbotapi/types/chat/ExtendedChannelChatImpl; + public final fun component9 ()Z + public final fun copy-nJ3zSvE (JLjava/lang/String;Ljava/lang/String;Ljava/util/List;Ldev/inmo/tgbotapi/types/ChatPhoto;Ljava/lang/String;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/abstracts/Message;ZLdev/inmo/tgbotapi/types/IdChatIdentifier;ZLjava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/TelegramDate;ILdev/inmo/tgbotapi/types/colors/ColorId;Ljava/lang/String;Ljava/lang/String;ZI)Ldev/inmo/tgbotapi/types/chat/ExtendedChannelChatImpl; + public static synthetic fun copy-nJ3zSvE$default (Ldev/inmo/tgbotapi/types/chat/ExtendedChannelChatImpl;JLjava/lang/String;Ljava/lang/String;Ljava/util/List;Ldev/inmo/tgbotapi/types/ChatPhoto;Ljava/lang/String;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/abstracts/Message;ZLdev/inmo/tgbotapi/types/IdChatIdentifier;ZLjava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/TelegramDate;ILdev/inmo/tgbotapi/types/colors/ColorId;Ljava/lang/String;Ljava/lang/String;ZIILjava/lang/Object;)Ldev/inmo/tgbotapi/types/chat/ExtendedChannelChatImpl; public fun equals (Ljava/lang/Object;)Z public fun getAccentColorId-f3WtEc0 ()I public fun getActiveUsernames ()Ljava/util/List; public fun getAvailableReactions ()Ljava/util/List; public fun getBackgroundCustomEmojiId-GbmMWyQ ()Ljava/lang/String; + public fun getCanSendPaidMedia ()Z public fun getChatPhoto ()Ldev/inmo/tgbotapi/types/ChatPhoto; public fun getDescription ()Ljava/lang/String; public synthetic fun getId ()Ldev/inmo/tgbotapi/types/IdChatIdentifier; @@ -16619,6 +16738,35 @@ public abstract interface class dev/inmo/tgbotapi/types/files/MediaContentVarian public abstract interface class dev/inmo/tgbotapi/types/files/MimedMediaFile : dev/inmo/tgbotapi/abstracts/MimeTyped, dev/inmo/tgbotapi/types/files/TelegramMediaFile { } +public final class dev/inmo/tgbotapi/types/files/PaidMediaInfo { + public static final field Companion Ldev/inmo/tgbotapi/types/files/PaidMediaInfo$Companion; + public fun (ILjava/util/List;)V + public final fun component1 ()I + public final fun component2 ()Ljava/util/List; + public final fun copy (ILjava/util/List;)Ldev/inmo/tgbotapi/types/files/PaidMediaInfo; + public static synthetic fun copy$default (Ldev/inmo/tgbotapi/types/files/PaidMediaInfo;ILjava/util/List;ILjava/lang/Object;)Ldev/inmo/tgbotapi/types/files/PaidMediaInfo; + public fun equals (Ljava/lang/Object;)Z + public final fun getMedia ()Ljava/util/List; + public final fun getStars ()I + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class dev/inmo/tgbotapi/types/files/PaidMediaInfo$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Ldev/inmo/tgbotapi/types/files/PaidMediaInfo$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/inmo/tgbotapi/types/files/PaidMediaInfo; + 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/files/PaidMediaInfo;)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/files/PaidMediaInfo$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class dev/inmo/tgbotapi/types/files/PassportFile : dev/inmo/tgbotapi/types/files/TelegramMediaFile { public static final field Companion Ldev/inmo/tgbotapi/types/files/PassportFile$Companion; public synthetic fun (Ldev/inmo/tgbotapi/requests/abstracts/FileId;Ljava/lang/String;Ldev/inmo/tgbotapi/types/TelegramDate;Ljava/lang/Long;ILkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -16693,15 +16841,15 @@ public final class dev/inmo/tgbotapi/types/files/PathedFileKt { public static final fun resolveFileURL (Ldev/inmo/tgbotapi/utils/TelegramAPIUrlsKeeper;Ldev/inmo/tgbotapi/types/files/PathedFile;)Ljava/lang/String; } -public final class dev/inmo/tgbotapi/types/files/Photo : dev/inmo/tgbotapi/types/files/MediaContentVariant, java/util/List, kotlin/jvm/internal/markers/KMappedMarker { - public static final field Companion Ldev/inmo/tgbotapi/types/files/Photo$Companion; +public final class dev/inmo/tgbotapi/types/files/PhotoFile : dev/inmo/tgbotapi/types/files/MediaContentVariant, dev/inmo/tgbotapi/types/files/UsefulAsPaidMediaFile, java/util/List, kotlin/jvm/internal/markers/KMappedMarker { + public static final field Companion Ldev/inmo/tgbotapi/types/files/PhotoFile$Companion; public fun add (ILdev/inmo/tgbotapi/types/files/PhotoSize;)V public synthetic fun add (ILjava/lang/Object;)V public fun add (Ldev/inmo/tgbotapi/types/files/PhotoSize;)Z public synthetic fun add (Ljava/lang/Object;)Z public fun addAll (ILjava/util/Collection;)Z public fun addAll (Ljava/util/Collection;)Z - public static final synthetic fun box-impl (Ljava/util/List;)Ldev/inmo/tgbotapi/types/files/Photo; + public static final synthetic fun box-impl (Ljava/util/List;)Ldev/inmo/tgbotapi/types/files/PhotoFile; public fun clear ()V public static fun constructor-impl (Ljava/util/List;)Ljava/util/List; public fun contains (Ldev/inmo/tgbotapi/types/files/PhotoSize;)Z @@ -16760,28 +16908,28 @@ public final class dev/inmo/tgbotapi/types/files/Photo : dev/inmo/tgbotapi/types public final synthetic fun unbox-impl ()Ljava/util/List; } -public final class dev/inmo/tgbotapi/types/files/Photo$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Ldev/inmo/tgbotapi/types/files/Photo$$serializer; +public final class dev/inmo/tgbotapi/types/files/PhotoFile$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Ldev/inmo/tgbotapi/types/files/PhotoFile$$serializer; public fun childSerializers ()[Lkotlinx/serialization/KSerializer; public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public fun deserialize-MIDtP88 (Lkotlinx/serialization/encoding/Decoder;)Ljava/util/List; + public fun deserialize-GWYoeJk (Lkotlinx/serialization/encoding/Decoder;)Ljava/util/List; public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun serialize-jwlu-Bc (Lkotlinx/serialization/encoding/Encoder;Ljava/util/List;)V + public fun serialize-0S8sMjU (Lkotlinx/serialization/encoding/Encoder;Ljava/util/List;)V public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; } -public final class dev/inmo/tgbotapi/types/files/Photo$Companion { +public final class dev/inmo/tgbotapi/types/files/PhotoFile$Companion { public final fun serializer ()Lkotlinx/serialization/KSerializer; } public final class dev/inmo/tgbotapi/types/files/PhotoSerializer : kotlinx/serialization/KSerializer { public static final field INSTANCE Ldev/inmo/tgbotapi/types/files/PhotoSerializer; public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public fun deserialize-MIDtP88 (Lkotlinx/serialization/encoding/Decoder;)Ljava/util/List; + public fun deserialize-GWYoeJk (Lkotlinx/serialization/encoding/Decoder;)Ljava/util/List; public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V - public fun serialize-jwlu-Bc (Lkotlinx/serialization/encoding/Encoder;Ljava/util/List;)V + public fun serialize-0S8sMjU (Lkotlinx/serialization/encoding/Encoder;Ljava/util/List;)V } public final class dev/inmo/tgbotapi/types/files/PhotoSize : dev/inmo/tgbotapi/types/files/SizedMediaFile { @@ -16822,7 +16970,7 @@ public final class dev/inmo/tgbotapi/types/files/PhotoSize$Companion { } public final class dev/inmo/tgbotapi/types/files/PhotoSizeKt { - public static final fun biggest-0SdUJeU (Ljava/util/List;)Ldev/inmo/tgbotapi/types/files/PhotoSize; + public static final fun biggest-GRrcKy8 (Ljava/util/List;)Ldev/inmo/tgbotapi/types/files/PhotoSize; } public abstract interface class dev/inmo/tgbotapi/types/files/PlayableMediaFile : dev/inmo/tgbotapi/types/files/TelegramMediaFile { @@ -17157,7 +17305,10 @@ public final class dev/inmo/tgbotapi/types/files/UnknownSticker$Companion { public final fun serializer ()Lkotlinx/serialization/KSerializer; } -public final class dev/inmo/tgbotapi/types/files/VideoFile : dev/inmo/tgbotapi/types/files/CustomNamedMediaFile, dev/inmo/tgbotapi/types/files/MediaContentVariant, dev/inmo/tgbotapi/types/files/MimedMediaFile, dev/inmo/tgbotapi/types/files/PlayableMediaFile, dev/inmo/tgbotapi/types/files/SizedMediaFile, dev/inmo/tgbotapi/types/files/TelegramMediaFile, dev/inmo/tgbotapi/types/files/ThumbedMediaFile { +public abstract interface class dev/inmo/tgbotapi/types/files/UsefulAsPaidMediaFile : dev/inmo/tgbotapi/types/files/MediaContentVariant { +} + +public final class dev/inmo/tgbotapi/types/files/VideoFile : dev/inmo/tgbotapi/types/files/CustomNamedMediaFile, dev/inmo/tgbotapi/types/files/MediaContentVariant, dev/inmo/tgbotapi/types/files/MimedMediaFile, dev/inmo/tgbotapi/types/files/PlayableMediaFile, dev/inmo/tgbotapi/types/files/SizedMediaFile, dev/inmo/tgbotapi/types/files/TelegramMediaFile, dev/inmo/tgbotapi/types/files/ThumbedMediaFile, dev/inmo/tgbotapi/types/files/UsefulAsPaidMediaFile { public static final field Companion Ldev/inmo/tgbotapi/types/files/VideoFile$Companion; public synthetic fun (Ldev/inmo/tgbotapi/requests/abstracts/FileId;Ljava/lang/String;IILjava/lang/Long;Ldev/inmo/tgbotapi/types/files/PhotoSize;Ljava/lang/String;Ldev/inmo/tgbotapi/utils/MimeType;Ljava/lang/Long;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public synthetic fun (Ldev/inmo/tgbotapi/requests/abstracts/FileId;Ljava/lang/String;IILjava/lang/Long;Ldev/inmo/tgbotapi/types/files/PhotoSize;Ljava/lang/String;Ldev/inmo/tgbotapi/utils/MimeType;Ljava/lang/Long;Lkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -17206,6 +17357,7 @@ public final class dev/inmo/tgbotapi/types/files/VideoFileKt { public static final fun toTelegramMediaVideo (Ldev/inmo/tgbotapi/types/files/VideoFile;Ljava/util/List;ZZ)Ldev/inmo/tgbotapi/types/media/TelegramMediaVideo; public static synthetic fun toTelegramMediaVideo$default (Ldev/inmo/tgbotapi/types/files/VideoFile;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZZILjava/lang/Object;)Ldev/inmo/tgbotapi/types/media/TelegramMediaVideo; public static synthetic fun toTelegramMediaVideo$default (Ldev/inmo/tgbotapi/types/files/VideoFile;Ljava/util/List;ZZILjava/lang/Object;)Ldev/inmo/tgbotapi/types/media/TelegramMediaVideo; + public static final fun toTelegramPaidMediaVideo (Ldev/inmo/tgbotapi/types/files/VideoFile;)Ldev/inmo/tgbotapi/types/media/TelegramPaidMediaVideo; } public final class dev/inmo/tgbotapi/types/files/VideoNoteFile : dev/inmo/tgbotapi/types/files/MediaContentVariant, dev/inmo/tgbotapi/types/files/PlayableMediaFile, dev/inmo/tgbotapi/types/files/SizedMediaFile, dev/inmo/tgbotapi/types/files/TelegramMediaFile, dev/inmo/tgbotapi/types/files/ThumbedMediaFile { @@ -17315,16 +17467,16 @@ public final class dev/inmo/tgbotapi/types/games/Game : dev/inmo/tgbotapi/abstra public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/util/List;Ldev/inmo/tgbotapi/types/files/AnimationFile;Lkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Ljava/lang/String; public final fun component2 ()Ljava/lang/String; - public final fun component3-JgpfRvE ()Ljava/util/List; + public final fun component3-bGlShw4 ()Ljava/util/List; public final fun component4 ()Ljava/lang/String; public final fun component5 ()Ljava/util/List; public final fun component6 ()Ldev/inmo/tgbotapi/types/files/AnimationFile; - public final fun copy-UO5UiK8 (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/util/List;Ldev/inmo/tgbotapi/types/files/AnimationFile;)Ldev/inmo/tgbotapi/types/games/Game; - public static synthetic fun copy-UO5UiK8$default (Ldev/inmo/tgbotapi/types/games/Game;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/util/List;Ldev/inmo/tgbotapi/types/files/AnimationFile;ILjava/lang/Object;)Ldev/inmo/tgbotapi/types/games/Game; + public final fun copy-WGqjr3s (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/util/List;Ldev/inmo/tgbotapi/types/files/AnimationFile;)Ldev/inmo/tgbotapi/types/games/Game; + public static synthetic fun copy-WGqjr3s$default (Ldev/inmo/tgbotapi/types/games/Game;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/util/List;Ldev/inmo/tgbotapi/types/files/AnimationFile;ILjava/lang/Object;)Ldev/inmo/tgbotapi/types/games/Game; public fun equals (Ljava/lang/Object;)Z public final fun getAnimation ()Ldev/inmo/tgbotapi/types/files/AnimationFile; public final fun getDescription ()Ljava/lang/String; - public final fun getPhoto-JgpfRvE ()Ljava/util/List; + public final fun getPhoto-bGlShw4 ()Ljava/util/List; public fun getText ()Ljava/lang/String; public fun getTextSources ()Ljava/util/List; public fun getTitle ()Ljava/lang/String; @@ -17721,6 +17873,14 @@ public abstract interface class dev/inmo/tgbotapi/types/media/SizedTelegramMedia public abstract interface class dev/inmo/tgbotapi/types/media/SpoilerableTelegramMedia : dev/inmo/tgbotapi/abstracts/SpoilerableData, dev/inmo/tgbotapi/types/media/TelegramMedia { } +public abstract interface class dev/inmo/tgbotapi/types/media/TelegramFreeMedia : dev/inmo/tgbotapi/types/media/TelegramMedia { + public static final field Companion Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia$Companion; +} + +public final class dev/inmo/tgbotapi/types/media/TelegramFreeMedia$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public abstract interface class dev/inmo/tgbotapi/types/media/TelegramMedia { public static final field Companion Ldev/inmo/tgbotapi/types/media/TelegramMedia$Companion; public abstract fun getFile ()Ldev/inmo/tgbotapi/requests/abstracts/InputFile; @@ -17732,7 +17892,7 @@ public final class dev/inmo/tgbotapi/types/media/TelegramMedia$Companion { public final fun serializer ()Lkotlinx/serialization/KSerializer; } -public final class dev/inmo/tgbotapi/types/media/TelegramMediaAnimation : dev/inmo/tgbotapi/abstracts/TextedOutput, dev/inmo/tgbotapi/types/media/DuratedTelegramMedia, dev/inmo/tgbotapi/types/media/SizedTelegramMedia, dev/inmo/tgbotapi/types/media/SpoilerableTelegramMedia, dev/inmo/tgbotapi/types/media/TelegramMedia, dev/inmo/tgbotapi/types/media/ThumbedTelegramMedia, dev/inmo/tgbotapi/types/media/WithCustomizableCaptionTelegramMedia { +public final class dev/inmo/tgbotapi/types/media/TelegramMediaAnimation : dev/inmo/tgbotapi/abstracts/TextedOutput, dev/inmo/tgbotapi/types/media/DuratedTelegramMedia, dev/inmo/tgbotapi/types/media/SizedTelegramMedia, dev/inmo/tgbotapi/types/media/SpoilerableTelegramMedia, dev/inmo/tgbotapi/types/media/TelegramFreeMedia, dev/inmo/tgbotapi/types/media/ThumbedTelegramMedia, dev/inmo/tgbotapi/types/media/WithCustomizableCaptionTelegramMedia { public static final field Companion Ldev/inmo/tgbotapi/types/media/TelegramMediaAnimation$Companion; public final fun component1 ()Ldev/inmo/tgbotapi/requests/abstracts/InputFile; public final fun component10 ()Ldev/inmo/tgbotapi/requests/abstracts/InputFile; @@ -17785,7 +17945,7 @@ public final class dev/inmo/tgbotapi/types/media/TelegramMediaAnimationKt { public static synthetic fun TelegramMediaAnimation$default (Ldev/inmo/tgbotapi/requests/abstracts/InputFile;Ljava/util/List;ZZLjava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Long;Ldev/inmo/tgbotapi/requests/abstracts/InputFile;ILjava/lang/Object;)Ldev/inmo/tgbotapi/types/media/TelegramMediaAnimation; } -public final class dev/inmo/tgbotapi/types/media/TelegramMediaAudio : dev/inmo/tgbotapi/abstracts/Performerable, dev/inmo/tgbotapi/types/media/AudioMediaGroupMemberTelegramMedia, dev/inmo/tgbotapi/types/media/DuratedTelegramMedia, dev/inmo/tgbotapi/types/media/TelegramMedia, dev/inmo/tgbotapi/types/media/ThumbedTelegramMedia, dev/inmo/tgbotapi/types/media/TitledTelegramMedia { +public final class dev/inmo/tgbotapi/types/media/TelegramMediaAudio : dev/inmo/tgbotapi/abstracts/Performerable, dev/inmo/tgbotapi/types/media/AudioMediaGroupMemberTelegramMedia, dev/inmo/tgbotapi/types/media/DuratedTelegramMedia, dev/inmo/tgbotapi/types/media/TelegramFreeMedia, dev/inmo/tgbotapi/types/media/ThumbedTelegramMedia, dev/inmo/tgbotapi/types/media/TitledTelegramMedia { public static final field Companion Ldev/inmo/tgbotapi/types/media/TelegramMediaAudio$Companion; public final fun component1 ()Ldev/inmo/tgbotapi/requests/abstracts/InputFile; public final fun component2 ()Ljava/lang/String; @@ -17839,7 +17999,7 @@ public final class dev/inmo/tgbotapi/types/media/TelegramMediaAudioKt { public static synthetic fun toTelegramMediaAudio$default (Ldev/inmo/tgbotapi/types/files/AudioFile;Ljava/util/List;Ljava/lang/String;ILjava/lang/Object;)Ldev/inmo/tgbotapi/types/media/TelegramMediaAudio; } -public final class dev/inmo/tgbotapi/types/media/TelegramMediaDocument : dev/inmo/tgbotapi/types/media/DocumentMediaGroupMemberTelegramMedia, dev/inmo/tgbotapi/types/media/TelegramMedia, dev/inmo/tgbotapi/types/media/ThumbedTelegramMedia { +public final class dev/inmo/tgbotapi/types/media/TelegramMediaDocument : dev/inmo/tgbotapi/types/media/DocumentMediaGroupMemberTelegramMedia, dev/inmo/tgbotapi/types/media/TelegramFreeMedia, dev/inmo/tgbotapi/types/media/ThumbedTelegramMedia { public static final field Companion Ldev/inmo/tgbotapi/types/media/TelegramMediaDocument$Companion; public final fun component1 ()Ldev/inmo/tgbotapi/requests/abstracts/InputFile; public final fun component2 ()Ljava/lang/String; @@ -17889,7 +18049,7 @@ public final class dev/inmo/tgbotapi/types/media/TelegramMediaDocumentKt { public static synthetic fun toTelegramMediaDocument$default (Ldev/inmo/tgbotapi/types/files/DocumentFile;Ljava/util/List;ILjava/lang/Object;)Ldev/inmo/tgbotapi/types/media/TelegramMediaDocument; } -public final class dev/inmo/tgbotapi/types/media/TelegramMediaPhoto : dev/inmo/tgbotapi/types/media/TelegramMedia, dev/inmo/tgbotapi/types/media/VisualMediaGroupMemberTelegramMedia { +public final class dev/inmo/tgbotapi/types/media/TelegramMediaPhoto : dev/inmo/tgbotapi/types/media/TelegramFreeMedia, dev/inmo/tgbotapi/types/media/VisualMediaGroupMemberTelegramMedia { public static final field Companion Ldev/inmo/tgbotapi/types/media/TelegramMediaPhoto$Companion; public final fun component1 ()Ldev/inmo/tgbotapi/requests/abstracts/InputFile; public final fun component2 ()Ljava/lang/String; @@ -17948,7 +18108,7 @@ public final class dev/inmo/tgbotapi/types/media/TelegramMediaSerializer : kotli public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V } -public final class dev/inmo/tgbotapi/types/media/TelegramMediaVideo : dev/inmo/tgbotapi/types/media/DuratedTelegramMedia, dev/inmo/tgbotapi/types/media/SizedTelegramMedia, dev/inmo/tgbotapi/types/media/TelegramMedia, dev/inmo/tgbotapi/types/media/ThumbedTelegramMedia, dev/inmo/tgbotapi/types/media/VisualMediaGroupMemberTelegramMedia { +public final class dev/inmo/tgbotapi/types/media/TelegramMediaVideo : dev/inmo/tgbotapi/types/media/DuratedTelegramMedia, dev/inmo/tgbotapi/types/media/SizedTelegramMedia, dev/inmo/tgbotapi/types/media/TelegramFreeMedia, dev/inmo/tgbotapi/types/media/ThumbedTelegramMedia, dev/inmo/tgbotapi/types/media/VisualMediaGroupMemberTelegramMedia { public static final field Companion Ldev/inmo/tgbotapi/types/media/TelegramMediaVideo$Companion; public final fun component1 ()Ldev/inmo/tgbotapi/requests/abstracts/InputFile; public final fun component10 ()Ldev/inmo/tgbotapi/requests/abstracts/InputFile; @@ -18002,6 +18162,91 @@ public final class dev/inmo/tgbotapi/types/media/TelegramMediaVideoKt { public static synthetic fun TelegramMediaVideo$default (Ldev/inmo/tgbotapi/requests/abstracts/InputFile;Ljava/util/List;ZZLjava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Long;Ldev/inmo/tgbotapi/requests/abstracts/InputFile;ILjava/lang/Object;)Ldev/inmo/tgbotapi/types/media/TelegramMediaVideo; } +public abstract interface class dev/inmo/tgbotapi/types/media/TelegramPaidMedia : dev/inmo/tgbotapi/types/media/TelegramMedia { + public static final field Companion Ldev/inmo/tgbotapi/types/media/TelegramPaidMedia$Companion; +} + +public final class dev/inmo/tgbotapi/types/media/TelegramPaidMedia$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class dev/inmo/tgbotapi/types/media/TelegramPaidMediaPhoto : dev/inmo/tgbotapi/types/media/VisualTelegramPaidMedia { + public static final field Companion Ldev/inmo/tgbotapi/types/media/TelegramPaidMediaPhoto$Companion; + public final fun component1 ()Ldev/inmo/tgbotapi/requests/abstracts/InputFile; + public final fun copy (Ldev/inmo/tgbotapi/requests/abstracts/InputFile;)Ldev/inmo/tgbotapi/types/media/TelegramPaidMediaPhoto; + public static synthetic fun copy$default (Ldev/inmo/tgbotapi/types/media/TelegramPaidMediaPhoto;Ldev/inmo/tgbotapi/requests/abstracts/InputFile;ILjava/lang/Object;)Ldev/inmo/tgbotapi/types/media/TelegramPaidMediaPhoto; + public fun equals (Ljava/lang/Object;)Z + public fun getFile ()Ldev/inmo/tgbotapi/requests/abstracts/InputFile; + public fun getMedia ()Ljava/lang/String; + public fun getType ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class dev/inmo/tgbotapi/types/media/TelegramPaidMediaPhoto$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Ldev/inmo/tgbotapi/types/media/TelegramPaidMediaPhoto$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/inmo/tgbotapi/types/media/TelegramPaidMediaPhoto; + 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/media/TelegramPaidMediaPhoto;)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/media/TelegramPaidMediaPhoto$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class dev/inmo/tgbotapi/types/media/TelegramPaidMediaPhotoKt { + public static final fun toTelegramPaidMediaPhoto (Ldev/inmo/tgbotapi/types/files/PhotoSize;)Ldev/inmo/tgbotapi/types/media/TelegramPaidMediaPhoto; +} + +public final class dev/inmo/tgbotapi/types/media/TelegramPaidMediaVideo : dev/inmo/tgbotapi/types/media/DuratedTelegramMedia, dev/inmo/tgbotapi/types/media/SizedTelegramMedia, dev/inmo/tgbotapi/types/media/TelegramPaidMedia, dev/inmo/tgbotapi/types/media/ThumbedTelegramMedia, dev/inmo/tgbotapi/types/media/VisualTelegramPaidMedia { + public static final field Companion Ldev/inmo/tgbotapi/types/media/TelegramPaidMediaVideo$Companion; + public fun (Ldev/inmo/tgbotapi/requests/abstracts/InputFile;Ldev/inmo/tgbotapi/requests/abstracts/InputFile;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Long;Z)V + public synthetic fun (Ldev/inmo/tgbotapi/requests/abstracts/InputFile;Ldev/inmo/tgbotapi/requests/abstracts/InputFile;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Long;ZILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ldev/inmo/tgbotapi/requests/abstracts/InputFile; + public final fun component2 ()Ldev/inmo/tgbotapi/requests/abstracts/InputFile; + public final fun component3 ()Ljava/lang/Integer; + public final fun component4 ()Ljava/lang/Integer; + public final fun component5 ()Ljava/lang/Long; + public final fun component6 ()Z + public final fun copy (Ldev/inmo/tgbotapi/requests/abstracts/InputFile;Ldev/inmo/tgbotapi/requests/abstracts/InputFile;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Long;Z)Ldev/inmo/tgbotapi/types/media/TelegramPaidMediaVideo; + public static synthetic fun copy$default (Ldev/inmo/tgbotapi/types/media/TelegramPaidMediaVideo;Ldev/inmo/tgbotapi/requests/abstracts/InputFile;Ldev/inmo/tgbotapi/requests/abstracts/InputFile;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Long;ZILjava/lang/Object;)Ldev/inmo/tgbotapi/types/media/TelegramPaidMediaVideo; + public fun equals (Ljava/lang/Object;)Z + public fun getDuration ()Ljava/lang/Long; + public fun getFile ()Ldev/inmo/tgbotapi/requests/abstracts/InputFile; + public fun getHeight ()Ljava/lang/Integer; + public fun getMedia ()Ljava/lang/String; + public final fun getSupportsStreaming ()Z + public fun getThumb ()Ldev/inmo/tgbotapi/requests/abstracts/InputFile; + public fun getType ()Ljava/lang/String; + public fun getWidth ()Ljava/lang/Integer; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class dev/inmo/tgbotapi/types/media/TelegramPaidMediaVideo$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Ldev/inmo/tgbotapi/types/media/TelegramPaidMediaVideo$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/inmo/tgbotapi/types/media/TelegramPaidMediaVideo; + 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/media/TelegramPaidMediaVideo;)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/media/TelegramPaidMediaVideo$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class dev/inmo/tgbotapi/types/media/TelegramPaidMediaVideoKt { + public static final fun toTelegramPaidMediaVideo (Ldev/inmo/tgbotapi/types/files/VideoFile;)Ldev/inmo/tgbotapi/types/media/TelegramPaidMediaVideo; + public static final fun toTelegramPaidMediaVideo (Ldev/inmo/tgbotapi/types/message/payments/PaidMedia$Video;)Ldev/inmo/tgbotapi/types/media/TelegramPaidMediaVideo; +} + public abstract interface class dev/inmo/tgbotapi/types/media/ThumbedTelegramMedia : dev/inmo/tgbotapi/types/media/TelegramMedia { public abstract fun getThumb ()Ldev/inmo/tgbotapi/requests/abstracts/InputFile; } @@ -18022,6 +18267,14 @@ public final class dev/inmo/tgbotapi/types/media/VisualMediaGroupMemberTelegramM public static fun getEntities (Ldev/inmo/tgbotapi/types/media/VisualMediaGroupMemberTelegramMedia;)Ljava/util/List; } +public abstract interface class dev/inmo/tgbotapi/types/media/VisualTelegramPaidMedia : dev/inmo/tgbotapi/types/media/TelegramPaidMedia { + public static final field Companion Ldev/inmo/tgbotapi/types/media/VisualTelegramPaidMedia$Companion; +} + +public final class dev/inmo/tgbotapi/types/media/VisualTelegramPaidMedia$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public abstract interface class dev/inmo/tgbotapi/types/media/WithCustomizableCaptionTelegramMedia : dev/inmo/tgbotapi/abstracts/WithCustomizableCaption, dev/inmo/tgbotapi/types/media/TelegramMedia { } @@ -18340,11 +18593,11 @@ public final class dev/inmo/tgbotapi/types/message/ChatEvents/NewChatMembers : d public final class dev/inmo/tgbotapi/types/message/ChatEvents/NewChatPhoto : dev/inmo/tgbotapi/types/message/ChatEvents/abstracts/PublicChatEvent { public synthetic fun (Ljava/util/List;Lkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1-JgpfRvE ()Ljava/util/List; - public final fun copy-0SdUJeU (Ljava/util/List;)Ldev/inmo/tgbotapi/types/message/ChatEvents/NewChatPhoto; - public static synthetic fun copy-0SdUJeU$default (Ldev/inmo/tgbotapi/types/message/ChatEvents/NewChatPhoto;Ljava/util/List;ILjava/lang/Object;)Ldev/inmo/tgbotapi/types/message/ChatEvents/NewChatPhoto; + public final fun component1-bGlShw4 ()Ljava/util/List; + public final fun copy-GRrcKy8 (Ljava/util/List;)Ldev/inmo/tgbotapi/types/message/ChatEvents/NewChatPhoto; + public static synthetic fun copy-GRrcKy8$default (Ldev/inmo/tgbotapi/types/message/ChatEvents/NewChatPhoto;Ljava/util/List;ILjava/lang/Object;)Ldev/inmo/tgbotapi/types/message/ChatEvents/NewChatPhoto; public fun equals (Ljava/lang/Object;)Z - public final fun getPhoto-JgpfRvE ()Ljava/util/List; + public final fun getPhoto-bGlShw4 ()Ljava/util/List; public fun hashCode ()I public fun toString ()Ljava/lang/String; } @@ -19899,7 +20152,7 @@ public final class dev/inmo/tgbotapi/types/message/content/AnimationContent : de public static final field Companion Ldev/inmo/tgbotapi/types/message/content/AnimationContent$Companion; public fun (Ldev/inmo/tgbotapi/types/files/AnimationFile;Ldev/inmo/tgbotapi/types/files/DocumentFile;Ljava/lang/String;Ljava/util/List;ZLdev/inmo/tgbotapi/types/TextQuote;Z)V public synthetic fun (Ldev/inmo/tgbotapi/types/files/AnimationFile;Ldev/inmo/tgbotapi/types/files/DocumentFile;Ljava/lang/String;Ljava/util/List;ZLdev/inmo/tgbotapi/types/TextQuote;ZILkotlin/jvm/internal/DefaultConstructorMarker;)V - public synthetic fun asTelegramMedia ()Ldev/inmo/tgbotapi/types/media/TelegramMedia; + public synthetic fun asTelegramMedia ()Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia; public fun asTelegramMedia ()Ldev/inmo/tgbotapi/types/media/TelegramMediaAnimation; public final fun component1 ()Ldev/inmo/tgbotapi/types/files/AnimationFile; public final fun component2 ()Ldev/inmo/tgbotapi/types/files/DocumentFile; @@ -19944,7 +20197,7 @@ public final class dev/inmo/tgbotapi/types/message/content/AudioContent : dev/in public static final field Companion Ldev/inmo/tgbotapi/types/message/content/AudioContent$Companion; public fun (Ldev/inmo/tgbotapi/types/files/AudioFile;Ljava/lang/String;Ljava/util/List;Ldev/inmo/tgbotapi/types/TextQuote;)V public synthetic fun (Ldev/inmo/tgbotapi/types/files/AudioFile;Ljava/lang/String;Ljava/util/List;Ldev/inmo/tgbotapi/types/TextQuote;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public synthetic fun asTelegramMedia ()Ldev/inmo/tgbotapi/types/media/TelegramMedia; + public synthetic fun asTelegramMedia ()Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia; public fun asTelegramMedia ()Ldev/inmo/tgbotapi/types/media/TelegramMediaAudio; public final fun component1 ()Ldev/inmo/tgbotapi/types/files/AudioFile; public final fun component2 ()Ljava/lang/String; @@ -20053,7 +20306,7 @@ public final class dev/inmo/tgbotapi/types/message/content/DocumentContent : dev public static final field Companion Ldev/inmo/tgbotapi/types/message/content/DocumentContent$Companion; public fun (Ldev/inmo/tgbotapi/types/files/DocumentFile;Ljava/lang/String;Ljava/util/List;Ldev/inmo/tgbotapi/types/TextQuote;)V public synthetic fun (Ldev/inmo/tgbotapi/types/files/DocumentFile;Ljava/lang/String;Ljava/util/List;Ldev/inmo/tgbotapi/types/TextQuote;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public synthetic fun asTelegramMedia ()Ldev/inmo/tgbotapi/types/media/TelegramMedia; + public synthetic fun asTelegramMedia ()Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia; public fun asTelegramMedia ()Ldev/inmo/tgbotapi/types/media/TelegramMediaDocument; public final fun component1 ()Ldev/inmo/tgbotapi/types/files/DocumentFile; public final fun component2 ()Ljava/lang/String; @@ -20286,7 +20539,7 @@ public final class dev/inmo/tgbotapi/types/message/content/MediaCollectionConten } public abstract interface class dev/inmo/tgbotapi/types/message/content/MediaContent : dev/inmo/tgbotapi/types/message/content/MessageContent { - public abstract fun asTelegramMedia ()Ldev/inmo/tgbotapi/types/media/TelegramMedia; + public abstract fun asTelegramMedia ()Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia; public abstract fun getMedia ()Ldev/inmo/tgbotapi/types/files/TelegramMediaFile; } @@ -20337,7 +20590,7 @@ public final class dev/inmo/tgbotapi/types/message/content/MediaGroupCollectionC public final class dev/inmo/tgbotapi/types/message/content/MediaGroupContent : dev/inmo/tgbotapi/types/abstracts/WithOptionalQuoteInfo, dev/inmo/tgbotapi/types/message/content/MediaGroupCollectionContent { public static final field Companion Ldev/inmo/tgbotapi/types/message/content/MediaGroupContent$Companion; public synthetic fun (Ljava/util/List;Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V - public fun asTelegramMedia ()Ldev/inmo/tgbotapi/types/media/TelegramMedia; + public fun asTelegramMedia ()Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia; public final fun component1 ()Ljava/util/List; public final fun component2-Aktaoms ()Ljava/lang/String; public final fun copy-AblidI4 (Ljava/util/List;Ljava/lang/String;)Ldev/inmo/tgbotapi/types/message/content/MediaGroupContent; @@ -20393,27 +20646,65 @@ public final class dev/inmo/tgbotapi/types/message/content/MessageContent$Defaul public static fun createResend-TQdYFvU (Ldev/inmo/tgbotapi/types/message/content/MessageContent;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/MessageId;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;)Ldev/inmo/tgbotapi/requests/abstracts/Request; } +public final class dev/inmo/tgbotapi/types/message/content/PaidMediaInfoContent : dev/inmo/tgbotapi/abstracts/WithCustomizableCaption, dev/inmo/tgbotapi/types/abstracts/WithOptionalQuoteInfo, dev/inmo/tgbotapi/types/message/content/MessageContent, dev/inmo/tgbotapi/types/message/content/TextedContent { + public static final field Companion Ldev/inmo/tgbotapi/types/message/content/PaidMediaInfoContent$Companion; + public fun (Ldev/inmo/tgbotapi/types/files/PaidMediaInfo;Ljava/lang/String;Ljava/util/List;Ldev/inmo/tgbotapi/types/TextQuote;Z)V + public synthetic fun (Ldev/inmo/tgbotapi/types/files/PaidMediaInfo;Ljava/lang/String;Ljava/util/List;Ldev/inmo/tgbotapi/types/TextQuote;ZILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ldev/inmo/tgbotapi/types/files/PaidMediaInfo; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/util/List; + public final fun component4 ()Ldev/inmo/tgbotapi/types/TextQuote; + public final fun component5 ()Z + public final fun copy (Ldev/inmo/tgbotapi/types/files/PaidMediaInfo;Ljava/lang/String;Ljava/util/List;Ldev/inmo/tgbotapi/types/TextQuote;Z)Ldev/inmo/tgbotapi/types/message/content/PaidMediaInfoContent; + public static synthetic fun copy$default (Ldev/inmo/tgbotapi/types/message/content/PaidMediaInfoContent;Ldev/inmo/tgbotapi/types/files/PaidMediaInfo;Ljava/lang/String;Ljava/util/List;Ldev/inmo/tgbotapi/types/TextQuote;ZILjava/lang/Object;)Ldev/inmo/tgbotapi/types/message/content/PaidMediaInfoContent; + public fun createResend-TQdYFvU (Ldev/inmo/tgbotapi/types/ChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/MessageId;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;)Ldev/inmo/tgbotapi/requests/abstracts/Request; + public fun createResend-wqsdrEQ (Ldev/inmo/tgbotapi/types/ChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;)Ldev/inmo/tgbotapi/requests/abstracts/Request; + public fun equals (Ljava/lang/Object;)Z + public final fun getPaidMediaInfo ()Ldev/inmo/tgbotapi/types/files/PaidMediaInfo; + public fun getQuote ()Ldev/inmo/tgbotapi/types/TextQuote; + public fun getShowCaptionAboveMedia ()Z + public fun getText ()Ljava/lang/String; + public fun getTextSources ()Ljava/util/List; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class dev/inmo/tgbotapi/types/message/content/PaidMediaInfoContent$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Ldev/inmo/tgbotapi/types/message/content/PaidMediaInfoContent$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/inmo/tgbotapi/types/message/content/PaidMediaInfoContent; + 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/message/content/PaidMediaInfoContent;)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/message/content/PaidMediaInfoContent$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class dev/inmo/tgbotapi/types/message/content/PhotoContent : dev/inmo/tgbotapi/types/abstracts/WithOptionalQuoteInfo, dev/inmo/tgbotapi/types/message/content/MediaCollectionContent, dev/inmo/tgbotapi/types/message/content/VisualMediaGroupPartContent { public static final field Companion Ldev/inmo/tgbotapi/types/message/content/PhotoContent$Companion; public synthetic fun (Ljava/util/List;Ljava/lang/String;Ljava/util/List;ZLdev/inmo/tgbotapi/types/TextQuote;ZILkotlin/jvm/internal/DefaultConstructorMarker;)V public synthetic fun (Ljava/util/List;Ljava/lang/String;Ljava/util/List;ZLdev/inmo/tgbotapi/types/TextQuote;ZLkotlin/jvm/internal/DefaultConstructorMarker;)V - public synthetic fun asTelegramMedia ()Ldev/inmo/tgbotapi/types/media/TelegramMedia; + public synthetic fun asTelegramMedia ()Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia; public fun asTelegramMedia ()Ldev/inmo/tgbotapi/types/media/TelegramMediaPhoto; - public final fun component1-JgpfRvE ()Ljava/util/List; + public final fun component1-bGlShw4 ()Ljava/util/List; public final fun component2 ()Ljava/lang/String; public final fun component3 ()Ljava/util/List; public final fun component4 ()Z public final fun component5 ()Ldev/inmo/tgbotapi/types/TextQuote; public final fun component6 ()Z - public final fun copy-hbpOX6c (Ljava/util/List;Ljava/lang/String;Ljava/util/List;ZLdev/inmo/tgbotapi/types/TextQuote;Z)Ldev/inmo/tgbotapi/types/message/content/PhotoContent; - public static synthetic fun copy-hbpOX6c$default (Ldev/inmo/tgbotapi/types/message/content/PhotoContent;Ljava/util/List;Ljava/lang/String;Ljava/util/List;ZLdev/inmo/tgbotapi/types/TextQuote;ZILjava/lang/Object;)Ldev/inmo/tgbotapi/types/message/content/PhotoContent; + public final fun copy-1nzFbdA (Ljava/util/List;Ljava/lang/String;Ljava/util/List;ZLdev/inmo/tgbotapi/types/TextQuote;Z)Ldev/inmo/tgbotapi/types/message/content/PhotoContent; + public static synthetic fun copy-1nzFbdA$default (Ldev/inmo/tgbotapi/types/message/content/PhotoContent;Ljava/util/List;Ljava/lang/String;Ljava/util/List;ZLdev/inmo/tgbotapi/types/TextQuote;ZILjava/lang/Object;)Ldev/inmo/tgbotapi/types/message/content/PhotoContent; public fun createResend-TQdYFvU (Ldev/inmo/tgbotapi/types/ChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/MessageId;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;)Ldev/inmo/tgbotapi/requests/abstracts/Request; public fun createResend-wqsdrEQ (Ldev/inmo/tgbotapi/types/ChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;)Ldev/inmo/tgbotapi/requests/abstracts/Request; public fun equals (Ljava/lang/Object;)Z public fun getMedia ()Ldev/inmo/tgbotapi/types/files/PhotoSize; public synthetic fun getMedia ()Ldev/inmo/tgbotapi/types/files/TelegramMediaFile; public synthetic fun getMediaCollection ()Ljava/util/List; - public fun getMediaCollection-JgpfRvE ()Ljava/util/List; + public fun getMediaCollection-bGlShw4 ()Ljava/util/List; public fun getQuote ()Ldev/inmo/tgbotapi/types/TextQuote; public fun getShowCaptionAboveMedia ()Z public fun getSpoilered ()Z @@ -20522,7 +20813,7 @@ public final class dev/inmo/tgbotapi/types/message/content/StaticLocationContent public final class dev/inmo/tgbotapi/types/message/content/StickerContent : dev/inmo/tgbotapi/types/message/content/MediaContent { public static final field Companion Ldev/inmo/tgbotapi/types/message/content/StickerContent$Companion; public fun (Ldev/inmo/tgbotapi/types/files/Sticker;)V - public synthetic fun asTelegramMedia ()Ldev/inmo/tgbotapi/types/media/TelegramMedia; + public synthetic fun asTelegramMedia ()Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia; public fun asTelegramMedia ()Ldev/inmo/tgbotapi/types/media/TelegramMediaDocument; public final fun component1 ()Ldev/inmo/tgbotapi/types/files/Sticker; public final fun copy (Ldev/inmo/tgbotapi/types/files/Sticker;)Ldev/inmo/tgbotapi/types/message/content/StickerContent; @@ -20663,7 +20954,7 @@ public final class dev/inmo/tgbotapi/types/message/content/VideoContent : dev/in public static final field Companion Ldev/inmo/tgbotapi/types/message/content/VideoContent$Companion; public fun (Ldev/inmo/tgbotapi/types/files/VideoFile;Ljava/lang/String;Ljava/util/List;ZLdev/inmo/tgbotapi/types/TextQuote;Z)V public synthetic fun (Ldev/inmo/tgbotapi/types/files/VideoFile;Ljava/lang/String;Ljava/util/List;ZLdev/inmo/tgbotapi/types/TextQuote;ZILkotlin/jvm/internal/DefaultConstructorMarker;)V - public synthetic fun asTelegramMedia ()Ldev/inmo/tgbotapi/types/media/TelegramMedia; + public synthetic fun asTelegramMedia ()Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia; public fun asTelegramMedia ()Ldev/inmo/tgbotapi/types/media/TelegramMediaVideo; public final fun component1 ()Ldev/inmo/tgbotapi/types/files/VideoFile; public final fun component2 ()Ljava/lang/String; @@ -20708,7 +20999,7 @@ public final class dev/inmo/tgbotapi/types/message/content/VideoContent$Companio public final class dev/inmo/tgbotapi/types/message/content/VideoNoteContent : dev/inmo/tgbotapi/types/message/content/MediaContent { public static final field Companion Ldev/inmo/tgbotapi/types/message/content/VideoNoteContent$Companion; public fun (Ldev/inmo/tgbotapi/types/files/VideoNoteFile;)V - public synthetic fun asTelegramMedia ()Ldev/inmo/tgbotapi/types/media/TelegramMedia; + public synthetic fun asTelegramMedia ()Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia; public fun asTelegramMedia ()Ldev/inmo/tgbotapi/types/media/TelegramMediaVideo; public final fun component1 ()Ldev/inmo/tgbotapi/types/files/VideoNoteFile; public final fun copy (Ldev/inmo/tgbotapi/types/files/VideoNoteFile;)Ldev/inmo/tgbotapi/types/message/content/VideoNoteContent; @@ -20749,7 +21040,7 @@ public final class dev/inmo/tgbotapi/types/message/content/VoiceContent : dev/in public static final field Companion Ldev/inmo/tgbotapi/types/message/content/VoiceContent$Companion; public fun (Ldev/inmo/tgbotapi/types/files/VoiceFile;Ljava/lang/String;Ljava/util/List;Ldev/inmo/tgbotapi/types/TextQuote;)V public synthetic fun (Ldev/inmo/tgbotapi/types/files/VoiceFile;Ljava/lang/String;Ljava/util/List;Ldev/inmo/tgbotapi/types/TextQuote;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public synthetic fun asTelegramMedia ()Ldev/inmo/tgbotapi/types/media/TelegramMedia; + public synthetic fun asTelegramMedia ()Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia; public fun asTelegramMedia ()Ldev/inmo/tgbotapi/types/media/TelegramMediaAudio; public final fun component1 ()Ldev/inmo/tgbotapi/types/files/VoiceFile; public final fun component2 ()Ljava/lang/String; @@ -20791,6 +21082,142 @@ public final class dev/inmo/tgbotapi/types/message/content/WithCustomizedCaption public static fun createResend-TQdYFvU (Ldev/inmo/tgbotapi/types/message/content/WithCustomizedCaptionMediaContent;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/MessageId;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;)Ldev/inmo/tgbotapi/requests/abstracts/Request; } +public abstract interface class dev/inmo/tgbotapi/types/message/payments/PaidMedia { + public static final field Companion Ldev/inmo/tgbotapi/types/message/payments/PaidMedia$Companion; + public abstract fun getType ()Ljava/lang/String; +} + +public final class dev/inmo/tgbotapi/types/message/payments/PaidMedia$Companion : kotlinx/serialization/KSerializer { + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/inmo/tgbotapi/types/message/payments/PaidMedia; + 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/message/payments/PaidMedia;)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/message/payments/PaidMedia$Photo : dev/inmo/tgbotapi/types/message/payments/PaidMedia { + public static final field Companion Ldev/inmo/tgbotapi/types/message/payments/PaidMedia$Photo$Companion; + public synthetic fun (Ljava/util/List;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-bGlShw4 ()Ljava/util/List; + public final fun copy-GRrcKy8 (Ljava/util/List;)Ldev/inmo/tgbotapi/types/message/payments/PaidMedia$Photo; + public static synthetic fun copy-GRrcKy8$default (Ldev/inmo/tgbotapi/types/message/payments/PaidMedia$Photo;Ljava/util/List;ILjava/lang/Object;)Ldev/inmo/tgbotapi/types/message/payments/PaidMedia$Photo; + public fun equals (Ljava/lang/Object;)Z + public final fun getPhoto-bGlShw4 ()Ljava/util/List; + public fun getType ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class dev/inmo/tgbotapi/types/message/payments/PaidMedia$Photo$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Ldev/inmo/tgbotapi/types/message/payments/PaidMedia$Photo$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/inmo/tgbotapi/types/message/payments/PaidMedia$Photo; + 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/message/payments/PaidMedia$Photo;)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/message/payments/PaidMedia$Photo$Companion { + public final fun getType ()Ljava/lang/String; + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class dev/inmo/tgbotapi/types/message/payments/PaidMedia$Preview : dev/inmo/tgbotapi/types/message/payments/PaidMedia { + public static final field Companion Ldev/inmo/tgbotapi/types/message/payments/PaidMedia$Preview$Companion; + public fun ()V + public fun (Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V + public synthetic fun (Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/Integer; + public final fun component2 ()Ljava/lang/Integer; + public final fun component3 ()Ljava/lang/Integer; + public final fun copy (Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)Ldev/inmo/tgbotapi/types/message/payments/PaidMedia$Preview; + public static synthetic fun copy$default (Ldev/inmo/tgbotapi/types/message/payments/PaidMedia$Preview;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;ILjava/lang/Object;)Ldev/inmo/tgbotapi/types/message/payments/PaidMedia$Preview; + public fun equals (Ljava/lang/Object;)Z + public final fun getDuration ()Ljava/lang/Integer; + public final fun getHeight ()Ljava/lang/Integer; + public fun getType ()Ljava/lang/String; + public final fun getWidth ()Ljava/lang/Integer; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class dev/inmo/tgbotapi/types/message/payments/PaidMedia$Preview$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Ldev/inmo/tgbotapi/types/message/payments/PaidMedia$Preview$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/inmo/tgbotapi/types/message/payments/PaidMedia$Preview; + 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/message/payments/PaidMedia$Preview;)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/message/payments/PaidMedia$Preview$Companion { + public final fun getType ()Ljava/lang/String; + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class dev/inmo/tgbotapi/types/message/payments/PaidMedia$Unknown : dev/inmo/tgbotapi/types/message/payments/PaidMedia { + public static final field Companion Ldev/inmo/tgbotapi/types/message/payments/PaidMedia$Unknown$Companion; + public fun (Ljava/lang/String;Lkotlinx/serialization/json/JsonElement;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Lkotlinx/serialization/json/JsonElement; + public final fun copy (Ljava/lang/String;Lkotlinx/serialization/json/JsonElement;)Ldev/inmo/tgbotapi/types/message/payments/PaidMedia$Unknown; + public static synthetic fun copy$default (Ldev/inmo/tgbotapi/types/message/payments/PaidMedia$Unknown;Ljava/lang/String;Lkotlinx/serialization/json/JsonElement;ILjava/lang/Object;)Ldev/inmo/tgbotapi/types/message/payments/PaidMedia$Unknown; + public fun equals (Ljava/lang/Object;)Z + public final fun getRaw ()Lkotlinx/serialization/json/JsonElement; + public fun getType ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class dev/inmo/tgbotapi/types/message/payments/PaidMedia$Unknown$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class dev/inmo/tgbotapi/types/message/payments/PaidMedia$Video : dev/inmo/tgbotapi/types/message/payments/PaidMedia { + public static final field Companion Ldev/inmo/tgbotapi/types/message/payments/PaidMedia$Video$Companion; + public fun (Ldev/inmo/tgbotapi/types/files/VideoFile;)V + public final fun component1 ()Ldev/inmo/tgbotapi/types/files/VideoFile; + public final fun copy (Ldev/inmo/tgbotapi/types/files/VideoFile;)Ldev/inmo/tgbotapi/types/message/payments/PaidMedia$Video; + public static synthetic fun copy$default (Ldev/inmo/tgbotapi/types/message/payments/PaidMedia$Video;Ldev/inmo/tgbotapi/types/files/VideoFile;ILjava/lang/Object;)Ldev/inmo/tgbotapi/types/message/payments/PaidMedia$Video; + public fun equals (Ljava/lang/Object;)Z + public fun getType ()Ljava/lang/String; + public final fun getVideo ()Ldev/inmo/tgbotapi/types/files/VideoFile; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class dev/inmo/tgbotapi/types/message/payments/PaidMedia$Video$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Ldev/inmo/tgbotapi/types/message/payments/PaidMedia$Video$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/inmo/tgbotapi/types/message/payments/PaidMedia$Video; + 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/message/payments/PaidMedia$Video;)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/message/payments/PaidMedia$Video$Companion { + public final fun getType ()Ljava/lang/String; + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class dev/inmo/tgbotapi/types/message/payments/RefundedPaymentEvent : dev/inmo/tgbotapi/types/message/ChatEvents/abstracts/CommonEvent, dev/inmo/tgbotapi/types/message/payments/abstracts/PaymentInfo { + public fun (Ldev/inmo/tgbotapi/types/payments/RefundedPayment;)V + public final fun component1 ()Ldev/inmo/tgbotapi/types/payments/RefundedPayment; + public final fun copy (Ldev/inmo/tgbotapi/types/payments/RefundedPayment;)Ldev/inmo/tgbotapi/types/message/payments/RefundedPaymentEvent; + public static synthetic fun copy$default (Ldev/inmo/tgbotapi/types/message/payments/RefundedPaymentEvent;Ldev/inmo/tgbotapi/types/payments/RefundedPayment;ILjava/lang/Object;)Ldev/inmo/tgbotapi/types/message/payments/RefundedPaymentEvent; + public fun equals (Ljava/lang/Object;)Z + public final fun getPayment ()Ldev/inmo/tgbotapi/types/payments/RefundedPayment; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + public final class dev/inmo/tgbotapi/types/message/payments/SuccessfulPaymentEvent : dev/inmo/tgbotapi/types/message/ChatEvents/abstracts/CommonEvent, dev/inmo/tgbotapi/types/message/payments/abstracts/PaymentInfo { public fun (Ldev/inmo/tgbotapi/types/payments/SuccessfulPayment;)V public final fun component1 ()Ldev/inmo/tgbotapi/types/payments/SuccessfulPayment; @@ -23366,6 +23793,43 @@ public final class dev/inmo/tgbotapi/types/payments/PreCheckoutQuery$Companion { public final fun serializer ()Lkotlinx/serialization/KSerializer; } +public final class dev/inmo/tgbotapi/types/payments/RefundedPayment : dev/inmo/tgbotapi/types/payments/abstracts/Amounted, dev/inmo/tgbotapi/types/payments/abstracts/Currencied { + public static final field Companion Ldev/inmo/tgbotapi/types/payments/RefundedPayment$Companion; + public synthetic fun (Ljava/lang/String;JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()J + public final fun component3 ()Ljava/lang/String; + public final fun component4-voYifgM ()Ljava/lang/String; + public final fun component5 ()Ljava/lang/String; + public final fun copy-UXlMM8c (Ljava/lang/String;JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ldev/inmo/tgbotapi/types/payments/RefundedPayment; + public static synthetic fun copy-UXlMM8c$default (Ldev/inmo/tgbotapi/types/payments/RefundedPayment;Ljava/lang/String;JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Ldev/inmo/tgbotapi/types/payments/RefundedPayment; + public fun equals (Ljava/lang/Object;)Z + public fun getAdaptedMajorityTotalAmount ()D + public fun getAmount ()J + public fun getCurrency ()Ljava/lang/String; + public final fun getInvoicePayload ()Ljava/lang/String; + public final fun getProviderPaymentChargeId ()Ljava/lang/String; + public final fun getTelegramPaymentChargeId-voYifgM ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class dev/inmo/tgbotapi/types/payments/RefundedPayment$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Ldev/inmo/tgbotapi/types/payments/RefundedPayment$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/inmo/tgbotapi/types/payments/RefundedPayment; + 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/payments/RefundedPayment;)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/payments/RefundedPayment$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class dev/inmo/tgbotapi/types/payments/ShippingAddress { public static final field Companion Ldev/inmo/tgbotapi/types/payments/ShippingAddress$Companion; public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V @@ -23757,6 +24221,15 @@ public abstract interface class dev/inmo/tgbotapi/types/payments/stars/Transacti public abstract fun getType ()Ljava/lang/String; } +public final class dev/inmo/tgbotapi/types/payments/stars/TransactionPartner$Ads : dev/inmo/tgbotapi/types/payments/stars/TransactionPartner { + public static final field INSTANCE Ldev/inmo/tgbotapi/types/payments/stars/TransactionPartner$Ads; + public fun equals (Ljava/lang/Object;)Z + public fun getType ()Ljava/lang/String; + public fun hashCode ()I + public final fun serializer ()Lkotlinx/serialization/KSerializer; + public fun toString ()Ljava/lang/String; +} + public final class dev/inmo/tgbotapi/types/payments/stars/TransactionPartner$Companion : kotlinx/serialization/KSerializer { public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/inmo/tgbotapi/types/payments/stars/TransactionPartner; public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; @@ -24536,13 +25009,13 @@ public final class dev/inmo/tgbotapi/types/request/ChatShared : dev/inmo/tgbotap public final fun component2-tHkBKVM ()J public final fun component3 ()Ljava/lang/String; public final fun component4-san03mo ()Ljava/lang/String; - public final fun component5-qN01djY ()Ljava/util/List; - public final fun copy-X4Qs_4s (SJLjava/lang/String;Ljava/lang/String;Ljava/util/List;)Ldev/inmo/tgbotapi/types/request/ChatShared; - public static synthetic fun copy-X4Qs_4s$default (Ldev/inmo/tgbotapi/types/request/ChatShared;SJLjava/lang/String;Ljava/lang/String;Ljava/util/List;ILjava/lang/Object;)Ldev/inmo/tgbotapi/types/request/ChatShared; + public final fun component5-oW4O2Ik ()Ljava/util/List; + public final fun copy-nCk4Nb0 (SJLjava/lang/String;Ljava/lang/String;Ljava/util/List;)Ldev/inmo/tgbotapi/types/request/ChatShared; + public static synthetic fun copy-nCk4Nb0$default (Ldev/inmo/tgbotapi/types/request/ChatShared;SJLjava/lang/String;Ljava/lang/String;Ljava/util/List;ILjava/lang/Object;)Ldev/inmo/tgbotapi/types/request/ChatShared; public fun equals (Ljava/lang/Object;)Z public synthetic fun getChatId ()Ldev/inmo/tgbotapi/types/ChatIdentifier; public fun getChatId-tHkBKVM ()J - public final fun getPhoto-qN01djY ()Ljava/util/List; + public final fun getPhoto-oW4O2Ik ()Ljava/util/List; public fun getRequestId-2_3u2Cg ()S public final fun getTitle ()Ljava/lang/String; public final fun getUsername-san03mo ()Ljava/lang/String; @@ -24613,14 +25086,14 @@ public final class dev/inmo/tgbotapi/types/request/SharedUser { public final fun component2 ()Ljava/lang/String; public final fun component3 ()Ljava/lang/String; public final fun component4-san03mo ()Ljava/lang/String; - public final fun component5-qN01djY ()Ljava/util/List; - public final fun copy-pGtpnOE (JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)Ldev/inmo/tgbotapi/types/request/SharedUser; - public static synthetic fun copy-pGtpnOE$default (Ldev/inmo/tgbotapi/types/request/SharedUser;JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;ILjava/lang/Object;)Ldev/inmo/tgbotapi/types/request/SharedUser; + public final fun component5-oW4O2Ik ()Ljava/util/List; + public final fun copy-SWCZU9g (JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)Ldev/inmo/tgbotapi/types/request/SharedUser; + public static synthetic fun copy-SWCZU9g$default (Ldev/inmo/tgbotapi/types/request/SharedUser;JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;ILjava/lang/Object;)Ldev/inmo/tgbotapi/types/request/SharedUser; public fun equals (Ljava/lang/Object;)Z public final fun getFirstName ()Ljava/lang/String; public final fun getId-tHkBKVM ()J public final fun getLastName ()Ljava/lang/String; - public final fun getPhoto-qN01djY ()Ljava/util/List; + public final fun getPhoto-oW4O2Ik ()Ljava/util/List; public final fun getUsername-san03mo ()Ljava/lang/String; public fun hashCode ()I public fun toString ()Ljava/lang/String; diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendMediaGroup.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendMediaGroup.kt index 236f062036..40e92b54a0 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendMediaGroup.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendMediaGroup.kt @@ -192,7 +192,7 @@ data class SendMediaGroupData internal constructor( private val convertedMedia: String get() = buildJsonArray { media.forEach { - add(it.toJsonWithoutNulls(MediaGroupMemberTelegramFreeMediaSerializer)) + add(it.toJsonWithoutNulls(MediaGroupMemberTelegramMediaSerializer)) } }.toString() diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendPaidMedia.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendPaidMedia.kt new file mode 100644 index 0000000000..13582dd3d4 --- /dev/null +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendPaidMedia.kt @@ -0,0 +1,165 @@ +package dev.inmo.tgbotapi.requests.send.media + +import dev.inmo.tgbotapi.types.media.TelegramPaidMedia +import dev.inmo.tgbotapi.types.message.content.PaidMediaInfoContent +import dev.inmo.tgbotapi.requests.abstracts.* +import dev.inmo.tgbotapi.requests.common.CommonMultipartFileRequest +import dev.inmo.tgbotapi.requests.send.abstracts.* +import dev.inmo.tgbotapi.requests.send.media.base.* +import dev.inmo.tgbotapi.types.* +import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId +import dev.inmo.tgbotapi.types.message.textsources.TextSourcesList +import dev.inmo.tgbotapi.types.message.ParseMode +import dev.inmo.tgbotapi.types.message.parseModeField +import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup +import dev.inmo.tgbotapi.types.message.* +import dev.inmo.tgbotapi.types.message.RawMessageEntity +import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage +import dev.inmo.tgbotapi.types.message.abstracts.TelegramBotAPIMessageDeserializationStrategyClass +import dev.inmo.tgbotapi.types.message.toRawMessageEntities +import dev.inmo.tgbotapi.utils.extensions.makeString +import dev.inmo.tgbotapi.utils.throwRangeError +import kotlinx.serialization.* + +fun SendPaidMedia( + chatId: ChatIdentifier, + starCount: Int, + media: List, + text: String? = null, + parseMode: ParseMode? = null, + showCaptionAboveMedia: Boolean = false, + threadId: MessageThreadId? = chatId.threadId, + businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId, + disableNotification: Boolean = false, + protectContent: Boolean = false, + replyParameters: ReplyParameters? = null, + replyMarkup: KeyboardMarkup? = null +): Request> { + val data = SendPaidMediaData( + chatId = chatId, + starCount = starCount, + media = media, + text = text, + parseMode = parseMode, + rawEntities = null, + showCaptionAboveMedia = showCaptionAboveMedia, + threadId = threadId, + businessConnectionId = businessConnectionId, + disableNotification = disableNotification, + protectContent = protectContent, + replyParameters = replyParameters, + replyMarkup = replyMarkup + ) + + return if (media.any { it.file is MultipartFile }) { + CommonMultipartFileRequest( + data, + media.mapNotNull { it.media to (it.file as? MultipartFile ?: return@mapNotNull null) }.toMap() + ) + } else { + data + } +} + +fun SendPaidMedia( + chatId: ChatIdentifier, + starCount: Int, + media: List, + entities: TextSourcesList, + showCaptionAboveMedia: Boolean = false, + threadId: MessageThreadId? = chatId.threadId, + businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId, + disableNotification: Boolean = false, + protectContent: Boolean = false, + replyParameters: ReplyParameters? = null, + replyMarkup: KeyboardMarkup? = null +): Request> { + val data = SendPaidMediaData( + chatId = chatId, + starCount = starCount, + media = media, + text = entities.makeString(), + parseMode = null, + rawEntities = entities.toRawMessageEntities(), + showCaptionAboveMedia = showCaptionAboveMedia, + threadId = threadId, + businessConnectionId = businessConnectionId, + disableNotification = disableNotification, + protectContent = protectContent, + replyParameters = replyParameters, + replyMarkup = replyMarkup + ) + + return if (media.any { it.file is MultipartFile }) { + CommonMultipartFileRequest( + data, + media.mapNotNull { it.media to (it.file as? MultipartFile ?: return@mapNotNull null) }.toMap() + ) + } else { + data + } +} + +private val commonResultDeserializer: DeserializationStrategy> + = TelegramBotAPIMessageDeserializationStrategyClass() + +@Serializable +data class SendPaidMediaData internal constructor( + @SerialName(chatIdField) + override val chatId: ChatIdentifier, + @SerialName(starCountField) + val starCount: Int, + @SerialName(mediaField) + val media: List, + @SerialName(captionField) + override val text: String? = null, + @SerialName(parseModeField) + override val parseMode: ParseMode? = null, + @SerialName(captionEntitiesField) + private val rawEntities: List? = null, + @SerialName(showCaptionAboveMediaField) + override val showCaptionAboveMedia: Boolean = false, + @SerialName(messageThreadIdField) + override val threadId: MessageThreadId? = chatId.threadId, + @SerialName(businessConnectionIdField) + override val businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId, + @SerialName(disableNotificationField) + override val disableNotification: Boolean = false, + @SerialName(protectContentField) + override val protectContent: Boolean = false, + @SerialName(replyParametersField) + override val replyParameters: ReplyParameters? = null, + @SerialName(replyMarkupField) + override val replyMarkup: KeyboardMarkup? = null +) : DataRequest>, + SendContentMessageRequest>, + ReplyingMarkupSendMessageRequest>, + TextableSendMessageRequest>, + WithCustomizableCaptionRequest> +{ + override val textSources: TextSourcesList? by lazy { + rawEntities ?.asTextSources(text ?: return@lazy null) + } + override val effectId: EffectId? + get() = null + + init { + text ?.let { + if (it.length !in captionLength) { + throwRangeError("Caption length", captionLength, it.length) + } + } + } + + override fun method(): String = "sendPaidMedia" + override val resultDeserializer: DeserializationStrategy> + get() = commonResultDeserializer + override val requestSerializer: SerializationStrategy<*> + get() = serializer() +} + +data class SendPaidMediaFiles internal constructor( + val photo: MultipartFile +) : Files by mapOf( + photoField to photo +) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendPaidMediaGroup.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendPaidMediaGroup.kt deleted file mode 100644 index ed2433d964..0000000000 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendPaidMediaGroup.kt +++ /dev/null @@ -1,209 +0,0 @@ -package dev.inmo.tgbotapi.requests.send.media - -import dev.inmo.tgbotapi.requests.abstracts.MultipartFile -import dev.inmo.tgbotapi.requests.abstracts.Request -import dev.inmo.tgbotapi.requests.common.CommonMultipartFileRequest -import dev.inmo.tgbotapi.requests.send.abstracts.SendContentMessageRequest -import dev.inmo.tgbotapi.requests.send.media.base.* -import dev.inmo.tgbotapi.types.* -import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId -import dev.inmo.tgbotapi.types.media.* -import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage -import dev.inmo.tgbotapi.types.message.abstracts.PossiblySentViaBotCommonMessage -import dev.inmo.tgbotapi.types.message.abstracts.TelegramBotAPIMessageDeserializeOnlySerializerClass -import dev.inmo.tgbotapi.types.message.content.MediaGroupPartContent -import dev.inmo.tgbotapi.types.message.content.VisualMediaGroupPartContent -import dev.inmo.tgbotapi.types.message.content.AudioContent -import dev.inmo.tgbotapi.types.message.content.DocumentContent -import dev.inmo.tgbotapi.types.message.content.MediaGroupContent -import dev.inmo.tgbotapi.utils.* -import dev.inmo.tgbotapi.utils.extensions.asMediaGroupMessage -import kotlinx.serialization.* -import kotlinx.serialization.builtins.ListSerializer -import kotlinx.serialization.descriptors.SerialDescriptor -import kotlinx.serialization.encoding.Decoder -import kotlinx.serialization.encoding.Encoder -import kotlinx.serialization.json.buildJsonArray - -const val rawSendingMediaGroupsWarning = "Media groups contains restrictions related to combinations of media" + - " types. Currently it is possible to combine photo + video OR audio OR documents" - -@RiskFeature(rawSendingMediaGroupsWarning) -fun SendMediaGroup( - chatId: ChatIdentifier, - media: List, - threadId: MessageThreadId? = chatId.threadId, - businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId, - disableNotification: Boolean = false, - protectContent: Boolean = false, - effectId: EffectId? = null, - replyParameters: ReplyParameters? = null -): Request>> { - if (media.size !in mediaCountInMediaGroup) { - throwRangeError("Count of members in media group", mediaCountInMediaGroup, media.size) - } - - val files: List = media.flatMap { - listOfNotNull( - it.file as? MultipartFile, - if (it is ThumbedTelegramMedia) { - it.thumb as? MultipartFile - } else { - null - } - ) - } - - val data = SendMediaGroupData( - chatId = chatId, - media = media, - threadId = threadId, - businessConnectionId = businessConnectionId, - disableNotification = disableNotification, - protectContent = protectContent, - effectId = effectId, - replyParameters = replyParameters - ) - - return (if (files.isEmpty()) { - data - } else { - CommonMultipartFileRequest( - data, - files.associateBy { it.fileId } - ) - }) as Request>> -} - -/** - * Use this method to be sure that you are correctly sending playlist with audios - * - * @see TelegramMediaAudio - */ -@Suppress("NOTHING_TO_INLINE") -inline fun SendPlaylist( - chatId: ChatIdentifier, - media: List, - threadId: MessageThreadId? = chatId.threadId, - businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId, - disableNotification: Boolean = false, - protectContent: Boolean = false, - effectId: EffectId? = null, - replyParameters: ReplyParameters? = null -) = SendMediaGroup( - chatId = chatId, - media = media, - threadId = threadId, - businessConnectionId = businessConnectionId, - disableNotification = disableNotification, - protectContent = protectContent, - effectId = effectId, - replyParameters = replyParameters -) - -/** - * Use this method to be sure that you are correctly sending documents media group - * - * @see TelegramMediaDocument - */ -@Suppress("NOTHING_TO_INLINE") -inline fun SendDocumentsGroup( - chatId: ChatIdentifier, - media: List, - threadId: MessageThreadId? = chatId.threadId, - businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId, - disableNotification: Boolean = false, - protectContent: Boolean = false, - effectId: EffectId? = null, - replyParameters: ReplyParameters? = null -) = SendMediaGroup( - chatId = chatId, - media = media, - threadId = threadId, - businessConnectionId = businessConnectionId, - disableNotification = disableNotification, - protectContent = protectContent, - effectId = effectId, - replyParameters = replyParameters -) - -/** - * Use this method to be sure that you are correctly sending visual media group - * - * @see TelegramMediaPhoto - * @see TelegramMediaVideo - */ -@Suppress("NOTHING_TO_INLINE") -inline fun SendVisualMediaGroup( - chatId: ChatIdentifier, - media: List, - threadId: MessageThreadId? = chatId.threadId, - businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId, - disableNotification: Boolean = false, - protectContent: Boolean = false, - effectId: EffectId? = null, - replyParameters: ReplyParameters? = null, -) = SendMediaGroup( - chatId = chatId, - media = media, - threadId = threadId, - businessConnectionId = businessConnectionId, - disableNotification = disableNotification, - protectContent = protectContent, - effectId = effectId, - replyParameters = replyParameters -) - -private object MessagesListSerializer: KSerializer>> { - private val serializer = ListSerializer(TelegramBotAPIMessageDeserializeOnlySerializerClass>()) - override val descriptor: SerialDescriptor = serializer.descriptor - - override fun deserialize(decoder: Decoder): PossiblySentViaBotCommonMessage> { - val messages = serializer.deserialize(decoder) - return messages.asMediaGroupMessage() - } - - override fun serialize(encoder: Encoder, value: PossiblySentViaBotCommonMessage>) { - serializer.serialize(encoder, value.content.group.map { it.sourceMessage }) - } - -} - -@Serializable -data class SendMediaGroupData internal constructor( - @SerialName(chatIdField) - override val chatId: ChatIdentifier, - val media: List = emptyList(), - @SerialName(messageThreadIdField) - override val threadId: MessageThreadId? = chatId.threadId, - @SerialName(businessConnectionIdField) - override val businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId, - @SerialName(disableNotificationField) - override val disableNotification: Boolean = false, - @SerialName(protectContentField) - override val protectContent: Boolean = false, - @SerialName(messageEffectIdField) - override val effectId: EffectId? = null, - @SerialName(replyParametersField) - override val replyParameters: ReplyParameters? = null, -) : DataRequest>>, - SendContentMessageRequest>> { - @SerialName(mediaField) - private val convertedMedia: String - get() = buildJsonArray { - media.forEach { - add(it.toJsonWithoutNulls(MediaGroupMemberTelegramFreeMediaSerializer)) - } - }.toString() - - - override fun method(): String = "sendMediaGroup" - override val requestSerializer: SerializationStrategy<*> - get() = serializer() - override val resultDeserializer: DeserializationStrategy>> - get() = MessagesListSerializer -} - -data class SendMediaGroupFiles internal constructor( - val files: List -) : Files by (files.map { it.fileId to it }.toMap()) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/Common.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/Common.kt index 98b33a2611..4abe77e2e3 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/Common.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/Common.kt @@ -242,6 +242,7 @@ const val inviteLinkField = "invite_link" const val viaChatFolderInviteLinkField = "via_chat_folder_invite_link" const val viaJoinRequestField = "via_join_request" const val pinnedMessageField = "pinned_message" +const val canSendPaidMediaField = "can_send_paid_media" const val activeUsernamesField = "active_usernames" const val customTitleField = "custom_title" const val optionIdsField = "option_ids" diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/chat/Extended.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/chat/Extended.kt index 98c6542df9..58419106df 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/chat/Extended.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/chat/Extended.kt @@ -34,6 +34,8 @@ data class ExtendedChannelChatImpl( @SerialName(pinnedMessageField) @Serializable(TelegramBotAPIMessageDeserializeOnlySerializer::class) override val pinnedMessage: Message? = null, + @SerialName(canSendPaidMediaField) + override val canSendPaidMedia: Boolean = false, @SerialName(linkedChatIdField) override val linkedGroupChatId: IdChatIdentifier? = null, @SerialName(hasHiddenMembersField) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/chat/ExtendedAbstracts.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/chat/ExtendedAbstracts.kt index 830e12334a..a4048d92b1 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/chat/ExtendedAbstracts.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/chat/ExtendedAbstracts.kt @@ -30,6 +30,7 @@ sealed interface ExtendedNonBotChat : ExtendedChat { @Serializable(ExtendedChatSerializer.Companion::class) sealed interface ExtendedChannelChat : ChannelChat, ExtendedPublicChat, ExtendedChatWithUsername { val linkedGroupChatId: IdChatIdentifier? + val canSendPaidMedia: Boolean } @Serializable(ExtendedChatSerializer.Companion::class) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/MediaGroupMemberTelegramMedia.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/MediaGroupMemberTelegramMedia.kt index 1fa174f442..292ffe40b3 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/MediaGroupMemberTelegramMedia.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/MediaGroupMemberTelegramMedia.kt @@ -4,24 +4,13 @@ import dev.inmo.tgbotapi.abstracts.TextedOutput import kotlinx.serialization.Serializable import kotlinx.serialization.StringFormat -@Serializable(MediaGroupMemberTelegramFreeMediaSerializer::class) -sealed interface MediaGroupMemberTelegramMedia : TelegramMedia { +@Serializable(MediaGroupMemberTelegramMediaSerializer::class) +sealed interface MediaGroupMemberTelegramMedia : TelegramMedia, TextedOutput { fun serialize(format: StringFormat): String } -@Serializable(MediaGroupMemberTelegramFreeMediaSerializer::class) -sealed interface MediaGroupMemberTelegramFreeMedia : MediaGroupMemberTelegramMedia, TextedOutput -@Serializable(MediaGroupMemberTelegramFreeMediaSerializer::class) -sealed interface MediaGroupMemberTelegramPaidMedia : MediaGroupMemberTelegramMedia +sealed interface AudioMediaGroupMemberTelegramMedia: MediaGroupMemberTelegramMedia +sealed interface DocumentMediaGroupMemberTelegramMedia: MediaGroupMemberTelegramMedia -sealed interface AudioMediaGroupMemberTelegramMedia: MediaGroupMemberTelegramFreeMedia -sealed interface DocumentMediaGroupMemberTelegramMedia: MediaGroupMemberTelegramFreeMedia - -@Serializable(MediaGroupMemberTelegramFreeMediaSerializer::class) -sealed interface VisualMediaGroupMemberTelegramMedia : MediaGroupMemberTelegramMedia - -@Serializable(MediaGroupMemberTelegramFreeMediaSerializer::class) -sealed interface VisualMediaGroupMemberTelegramFreeMedia : MediaGroupMemberTelegramFreeMedia, VisualMediaGroupMemberTelegramMedia, SpoilerableTelegramMedia, WithCustomizableCaptionTelegramMedia - -@Serializable(MediaGroupMemberTelegramPaidMediaSerializer::class) -sealed interface VisualMediaGroupMemberTelegramPaidMedia : MediaGroupMemberTelegramPaidMedia, VisualMediaGroupMemberTelegramMedia +@Serializable(MediaGroupMemberTelegramMediaSerializer::class) +sealed interface VisualMediaGroupMemberTelegramMedia : MediaGroupMemberTelegramMedia, SpoilerableTelegramMedia, WithCustomizableCaptionTelegramMedia diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/MediaGroupMemberTelegramFreeMediaSerializer.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/MediaGroupMemberTelegramMediaSerializer.kt similarity index 88% rename from tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/MediaGroupMemberTelegramFreeMediaSerializer.kt rename to tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/MediaGroupMemberTelegramMediaSerializer.kt index 285049b722..19c9124d52 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/MediaGroupMemberTelegramFreeMediaSerializer.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/MediaGroupMemberTelegramMediaSerializer.kt @@ -11,10 +11,10 @@ import kotlinx.serialization.encoding.Encoder import kotlinx.serialization.json.* @RiskFeature -object MediaGroupMemberTelegramFreeMediaSerializer : KSerializer { +object MediaGroupMemberTelegramMediaSerializer : KSerializer { @OptIn(InternalSerializationApi::class) override val descriptor: SerialDescriptor = buildSerialDescriptor(MediaGroupMemberTelegramMedia::class.toString(), PolymorphicKind.OPEN) - override fun serialize(encoder: Encoder, value: MediaGroupMemberTelegramFreeMedia) { + override fun serialize(encoder: Encoder, value: MediaGroupMemberTelegramMedia) { when (value) { is TelegramMediaPhoto -> TelegramMediaPhoto.serializer().serialize(encoder, value) is TelegramMediaVideo -> TelegramMediaVideo.serializer().serialize(encoder, value) @@ -23,7 +23,7 @@ object MediaGroupMemberTelegramFreeMediaSerializer : KSerializer { - @OptIn(InternalSerializationApi::class) - override val descriptor: SerialDescriptor = - buildSerialDescriptor(MediaGroupMemberTelegramMedia::class.toString(), PolymorphicKind.OPEN) - override fun serialize(encoder: Encoder, value: MediaGroupMemberTelegramPaidMedia) { - when (value) { - is TelegramPaidMediaPhoto -> TelegramPaidMediaPhoto.serializer().serialize(encoder, value) - is TelegramPaidMediaVideo -> TelegramPaidMediaVideo.serializer().serialize(encoder, value) - } - } - - override fun deserialize(decoder: Decoder): MediaGroupMemberTelegramPaidMedia { - val json = JsonObject.serializer().deserialize(decoder) - - return when (json[typeField] ?.jsonPrimitive ?.contentOrNull) { - photoTelegramPaidMediaType -> nonstrictJsonFormat.decodeFromJsonElement(TelegramPaidMediaPhoto.serializer(), json) - videoTelegramPaidMediaType -> nonstrictJsonFormat.decodeFromJsonElement(TelegramPaidMediaVideo.serializer(), json) - else -> error("Illegal type of incoming MediaGroupMemberTelegramMedia") - } - } -} \ No newline at end of file diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramFreeMedia.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramFreeMedia.kt index 80f0d87efb..e44ee39146 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramFreeMedia.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramFreeMedia.kt @@ -5,5 +5,4 @@ import dev.inmo.tgbotapi.requests.abstracts.InputFile import kotlinx.serialization.Serializable @Serializable(TelegramMediaSerializer::class) -@ClassCastsIncluded sealed interface TelegramFreeMedia : TelegramMedia diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramMediaPhoto.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramMediaPhoto.kt index 564875ee53..1ef3055b99 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramMediaPhoto.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramMediaPhoto.kt @@ -43,7 +43,7 @@ data class TelegramMediaPhoto internal constructor( override val spoilered: Boolean = false, @SerialName(showCaptionAboveMediaField) override val showCaptionAboveMedia: Boolean = false, -) : TelegramFreeMedia, VisualMediaGroupMemberTelegramFreeMedia { +) : TelegramFreeMedia, VisualMediaGroupMemberTelegramMedia { override val type: String = photoTelegramMediaType override val textSources: TextSourcesList? by lazy { rawEntities ?.asTextSources(text ?: return@lazy null) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramMediaVideo.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramMediaVideo.kt index d63119662f..8bfef8cdce 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramMediaVideo.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramMediaVideo.kt @@ -76,7 +76,7 @@ data class TelegramMediaVideo internal constructor ( override val height: Int? = null, override val duration: Long? = null, override val thumb: InputFile? = null -) : TelegramFreeMedia, SizedTelegramMedia, DuratedTelegramMedia, ThumbedTelegramMedia, VisualMediaGroupMemberTelegramFreeMedia { +) : TelegramFreeMedia, SizedTelegramMedia, DuratedTelegramMedia, ThumbedTelegramMedia, VisualMediaGroupMemberTelegramMedia { override val type: String = videoTelegramMediaType override val textSources: TextSourcesList? by lazy { rawEntities ?.asTextSources(text ?: return@lazy null) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramPaidMedia.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramPaidMedia.kt index 1e57918e11..5fb8de028c 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramPaidMedia.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramPaidMedia.kt @@ -5,5 +5,7 @@ import dev.inmo.tgbotapi.requests.abstracts.InputFile import kotlinx.serialization.Serializable @Serializable(TelegramMediaSerializer::class) -@ClassCastsIncluded sealed interface TelegramPaidMedia : TelegramMedia + +@Serializable(TelegramMediaSerializer::class) +sealed interface VisualTelegramPaidMedia : TelegramPaidMedia diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramPaidMediaPhoto.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramPaidMediaPhoto.kt index b230fabd8f..3e7f843ad4 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramPaidMediaPhoto.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramPaidMediaPhoto.kt @@ -18,11 +18,9 @@ internal const val photoTelegramPaidMediaType = "photo" @Serializable data class TelegramPaidMediaPhoto internal constructor( override val file: InputFile, -) : TelegramPaidMedia, VisualMediaGroupMemberTelegramPaidMedia { +) : VisualTelegramPaidMedia { override val type: String = photoTelegramPaidMediaType - override fun serialize(format: StringFormat): String = format.encodeToString(serializer(), this) - @SerialName(mediaField) override val media: String init { media = file.fileIdToSend } // crutch until js compiling will be fixed diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramPaidMediaVideo.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramPaidMediaVideo.kt index bc048dc062..4968f9b21e 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramPaidMediaVideo.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramPaidMediaVideo.kt @@ -18,11 +18,9 @@ data class TelegramPaidMediaVideo ( override val duration: Long? = null, @SerialName(supportsStreamingField) val supportsStreaming: Boolean = false, -) : TelegramPaidMedia, SizedTelegramMedia, DuratedTelegramMedia, ThumbedTelegramMedia, VisualMediaGroupMemberTelegramPaidMedia { +) : TelegramPaidMedia, SizedTelegramMedia, DuratedTelegramMedia, ThumbedTelegramMedia, VisualTelegramPaidMedia { override val type: String = videoTelegramPaidMediaType - override fun serialize(format: StringFormat): String = format.encodeToString(serializer(), this) - @SerialName(mediaField) override val media: String init { media = file.fileIdToSend } // crutch until js compiling will be fixed diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/RawMessage.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/RawMessage.kt index febe0248c1..2c42e9e2f0 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/RawMessage.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/RawMessage.kt @@ -72,7 +72,7 @@ internal data class RawMessage( private val story: Story? = null, private val audio: AudioFile? = null, private val document: DocumentFile? = null, - private val paid_media: PaidMediaInfoContent? = null, + private val paid_media: PaidMediaInfo? = null, private val animation: AnimationFile? = null, private val game: RawGame? = null, @Serializable(PhotoSerializer::class) @@ -202,7 +202,7 @@ internal data class RawMessage( quote ) paid_media != null -> PaidMediaInfoContent( - document, + paid_media, caption, adaptedCaptionEntities, quote diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/Abstracts.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/Abstracts.kt index 1556f45a5b..e4504f7ab6 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/Abstracts.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/Abstracts.kt @@ -140,7 +140,7 @@ sealed interface TextedContent : MessageContent, TextedInput sealed interface MediaContent: MessageContent { val media: TelegramMediaFile - fun asTelegramMedia(): TelegramMedia + fun asTelegramMedia(): TelegramFreeMedia } sealed interface SpoilerableMediaContent : MediaContent, SpoilerableData diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/PaidMediaInfoContent.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/PaidMediaInfoContent.kt index 95af5e536d..ed404ab20e 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/PaidMediaInfoContent.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/PaidMediaInfoContent.kt @@ -1,7 +1,10 @@ package dev.inmo.tgbotapi.types.message.content +import dev.inmo.tgbotapi.abstracts.WithCustomizableCaption import dev.inmo.tgbotapi.requests.abstracts.Request +import dev.inmo.tgbotapi.requests.send.media.SendPaidMedia import dev.inmo.tgbotapi.types.* +import dev.inmo.tgbotapi.types.abstracts.WithOptionalQuoteInfo import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId import dev.inmo.tgbotapi.types.message.textsources.TextSourcesList import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup @@ -19,16 +22,7 @@ data class PaidMediaInfoContent( override val textSources: TextSourcesList = emptyList(), override val quote: TextQuote? = null, override val showCaptionAboveMedia: Boolean = false -) : TextedMediaContent, WithCustomizedCaptionMediaContent { - override val media: TelegramMediaFile - get() = paidMediaInfo.media.fir - override fun asTelegramMedia(): TelegramMediaFile = when (val media = media) { - is PaidMedia.Photo -> media.photo.biggest.toTelegramPaidMediaPhoto() - is PaidMedia.Preview, - is PaidMedia.Unknown -> error("Unable to create telegram media out of $media") - is PaidMedia.Video -> media.video.toTelegramPaidMediaVideo() - } - +) : MessageContent, TextedContent, WithCustomizableCaption, WithOptionalQuoteInfo { override fun createResend( chatId: ChatIdentifier, messageThreadId: MessageThreadId?, @@ -38,5 +32,22 @@ data class PaidMediaInfoContent( effectId: EffectId?, replyParameters: ReplyParameters?, replyMarkup: KeyboardMarkup? - ): Request> = TODO() + ): Request> = SendPaidMedia( + chatId, + paidMediaInfo.stars, + paidMediaInfo.media.mapNotNull { + when (it) { + is PaidMedia.Photo -> it.photo.biggest.toTelegramPaidMediaPhoto() + is PaidMedia.Preview -> null + is PaidMedia.Unknown -> null + is PaidMedia.Video -> it.video.toTelegramPaidMediaVideo() + } + }.ifEmpty { + error("Unable to create resend for paid media content without any revealed content") + }, + textSources, + showCaptionAboveMedia, + messageThreadId, + businessConnectionId, disableNotification, protectContent, replyParameters, replyMarkup + ) } diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/payments/stars/TransactionPartner.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/payments/stars/TransactionPartner.kt index 2986c53927..d3b1cd601e 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/payments/stars/TransactionPartner.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/payments/stars/TransactionPartner.kt @@ -5,6 +5,7 @@ import dev.inmo.tgbotapi.types.userField import dev.inmo.tgbotapi.types.withdrawalStateField import dev.inmo.tgbotapi.utils.decodeDataAndJson import dev.inmo.tgbotapi.utils.internal.ClassCastsIncluded +import kotlinx.serialization.EncodeDefault import kotlinx.serialization.KSerializer import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable @@ -24,6 +25,7 @@ sealed interface TransactionPartner { @SerialName(withdrawalStateField) val withdrawalState: RevenueWithdrawalState ) : TransactionPartner { + @EncodeDefault override val type: String get() = Companion.type @@ -45,8 +47,15 @@ sealed interface TransactionPartner { } } + @Serializable(TransactionPartner.Companion::class) + data object Ads : TransactionPartner { + @EncodeDefault + override val type: String = "telegram_ads" + } + @Serializable(TransactionPartner.Companion::class) data object Other : TransactionPartner { + @EncodeDefault override val type: String = "other" } @@ -78,6 +87,7 @@ sealed interface TransactionPartner { User.type -> User( data.user ?: return unknown, ) + Ads.type -> Ads Fragment.type -> Fragment( data.withdrawal_state ?: return unknown, ) @@ -88,6 +98,7 @@ sealed interface TransactionPartner { override fun serialize(encoder: Encoder, value: TransactionPartner) { val surrogate = when (value) { Other -> Surrogate(value.type) + Ads -> Surrogate(value.type) is User -> Surrogate(value.type, user = value.user) is Fragment -> Surrogate( value.type, diff --git a/tgbotapi.core/src/commonTest/kotlin/dev/inmo/tgbotapi/SimpleInputFilesTest.kt b/tgbotapi.core/src/commonTest/kotlin/dev/inmo/tgbotapi/SimpleInputFilesTest.kt index 4a7546aa41..946c902d84 100644 --- a/tgbotapi.core/src/commonTest/kotlin/dev/inmo/tgbotapi/SimpleInputFilesTest.kt +++ b/tgbotapi.core/src/commonTest/kotlin/dev/inmo/tgbotapi/SimpleInputFilesTest.kt @@ -3,7 +3,7 @@ package dev.inmo.tgbotapi import dev.inmo.tgbotapi.requests.abstracts.toInputFile import dev.inmo.tgbotapi.types.TgFileUniqueId import dev.inmo.tgbotapi.types.files.PhotoFile -import dev.inmo.tgbotapi.types.media.MediaGroupMemberTelegramFreeMediaSerializer +import dev.inmo.tgbotapi.types.media.MediaGroupMemberTelegramMediaSerializer import dev.inmo.tgbotapi.types.files.PhotoSize import dev.inmo.tgbotapi.types.message.content.PhotoContent import kotlinx.serialization.json.Json @@ -31,13 +31,13 @@ class SimpleInputFilesTest { val inputMedia = photoContent.toMediaGroupMemberTelegramMedia() assertEquals(photoContent.media.fileId, inputMedia.file) val encoded = nonstrictJsonFormat.encodeToString( - MediaGroupMemberTelegramFreeMediaSerializer, + MediaGroupMemberTelegramMediaSerializer, inputMedia ) assertEquals( inputMedia, nonstrictJsonFormat.decodeFromString( - MediaGroupMemberTelegramFreeMediaSerializer, + MediaGroupMemberTelegramMediaSerializer, encoded ) ) diff --git a/tgbotapi.utils/api/tgbotapi.utils.api b/tgbotapi.utils/api/tgbotapi.utils.api index 4bd349eb07..0a148c9968 100644 --- a/tgbotapi.utils/api/tgbotapi.utils.api +++ b/tgbotapi.utils/api/tgbotapi.utils.api @@ -17,7 +17,7 @@ public final class dev/inmo/tgbotapi/extensions/utils/ClassCastsKt { public static final fun asAudioContent (Ldev/inmo/tgbotapi/types/message/content/ResendableContent;)Ldev/inmo/tgbotapi/types/message/content/AudioContent; public static final fun asAudioFile (Ldev/inmo/tgbotapi/types/files/TelegramMediaFile;)Ldev/inmo/tgbotapi/types/files/AudioFile; public static final fun asAudioMediaGroupContent (Ldev/inmo/tgbotapi/types/message/content/ResendableContent;)Ldev/inmo/tgbotapi/types/message/content/AudioMediaGroupPartContent; - public static final fun asAudioMediaGroupMemberTelegramMedia (Ldev/inmo/tgbotapi/types/media/TelegramMedia;)Ldev/inmo/tgbotapi/types/media/AudioMediaGroupMemberTelegramMedia; + public static final fun asAudioMediaGroupMemberTelegramMedia (Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia;)Ldev/inmo/tgbotapi/types/media/AudioMediaGroupMemberTelegramMedia; public static final fun asBankStatement (Ldev/inmo/tgbotapi/types/passport/encrypted/abstracts/EncryptedPassportElement;)Ldev/inmo/tgbotapi/types/passport/encrypted/BankStatement; public static final fun asBankStatementSecureValue (Ldev/inmo/tgbotapi/types/passport/decrypted/abstracts/SecureValue;)Ldev/inmo/tgbotapi/types/passport/decrypted/BankStatementSecureValue; public static final fun asBannedChatMember (Ldev/inmo/tgbotapi/types/chat/member/ChatMember;)Ldev/inmo/tgbotapi/types/chat/member/BannedChatMember; @@ -75,10 +75,10 @@ public final class dev/inmo/tgbotapi/extensions/utils/ClassCastsKt { public static final fun asDocumentContent (Ldev/inmo/tgbotapi/types/message/content/ResendableContent;)Ldev/inmo/tgbotapi/types/message/content/DocumentContent; public static final fun asDocumentFile (Ldev/inmo/tgbotapi/types/files/TelegramMediaFile;)Ldev/inmo/tgbotapi/types/files/DocumentFile; public static final fun asDocumentMediaGroupContent (Ldev/inmo/tgbotapi/types/message/content/ResendableContent;)Ldev/inmo/tgbotapi/types/message/content/DocumentMediaGroupPartContent; - public static final fun asDocumentMediaGroupMemberTelegramMedia (Ldev/inmo/tgbotapi/types/media/TelegramMedia;)Ldev/inmo/tgbotapi/types/media/DocumentMediaGroupMemberTelegramMedia; + public static final fun asDocumentMediaGroupMemberTelegramMedia (Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia;)Ldev/inmo/tgbotapi/types/media/DocumentMediaGroupMemberTelegramMedia; public static final fun asDriverLicense (Ldev/inmo/tgbotapi/types/passport/encrypted/abstracts/EncryptedPassportElement;)Ldev/inmo/tgbotapi/types/passport/encrypted/DriverLicense; public static final fun asDriverLicenseSecureValue (Ldev/inmo/tgbotapi/types/passport/decrypted/abstracts/SecureValue;)Ldev/inmo/tgbotapi/types/passport/decrypted/DriverLicenseSecureValue; - public static final fun asDuratedTelegramMedia (Ldev/inmo/tgbotapi/types/media/TelegramMedia;)Ldev/inmo/tgbotapi/types/media/DuratedTelegramMedia; + public static final fun asDuratedTelegramMedia (Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia;)Ldev/inmo/tgbotapi/types/media/DuratedTelegramMedia; public static final fun asEMailTextSource (Ldev/inmo/tgbotapi/types/message/textsources/TextSource;)Ldev/inmo/tgbotapi/types/message/textsources/EMailTextSource; public static final fun asEditChannelPostUpdate (Ldev/inmo/tgbotapi/types/update/abstracts/Update;)Ldev/inmo/tgbotapi/types/update/EditChannelPostUpdate; public static final fun asEditMessageUpdate (Ldev/inmo/tgbotapi/types/update/abstracts/Update;)Ldev/inmo/tgbotapi/types/update/EditMessageUpdate; @@ -177,7 +177,7 @@ public final class dev/inmo/tgbotapi/extensions/utils/ClassCastsKt { public static final fun asMediaCollectionContent (Ldev/inmo/tgbotapi/types/message/content/ResendableContent;)Ldev/inmo/tgbotapi/types/message/content/MediaCollectionContent; public static final fun asMediaContent (Ldev/inmo/tgbotapi/types/message/content/ResendableContent;)Ldev/inmo/tgbotapi/types/message/content/MediaContent; public static final fun asMediaGroupContent (Ldev/inmo/tgbotapi/types/message/content/ResendableContent;)Ldev/inmo/tgbotapi/types/message/content/MediaGroupPartContent; - public static final fun asMediaGroupMemberTelegramMedia (Ldev/inmo/tgbotapi/types/media/TelegramMedia;)Ldev/inmo/tgbotapi/types/media/MediaGroupMemberTelegramMedia; + public static final fun asMediaGroupMemberTelegramMedia (Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia;)Ldev/inmo/tgbotapi/types/media/MediaGroupMemberTelegramMedia; public static final fun asMediaGroupMessage (Ldev/inmo/tgbotapi/types/message/abstracts/Message;)Ldev/inmo/tgbotapi/types/message/abstracts/CommonMessage; public static final fun asMemberChatMember (Ldev/inmo/tgbotapi/types/chat/member/ChatMember;)Ldev/inmo/tgbotapi/types/chat/member/MemberChatMember; public static final fun asMentionTextSource (Ldev/inmo/tgbotapi/types/message/textsources/TextSource;)Ldev/inmo/tgbotapi/types/message/textsources/MentionTextSource; @@ -249,6 +249,7 @@ public final class dev/inmo/tgbotapi/extensions/utils/ClassCastsKt { public static final fun asRecordVideoAction (Ldev/inmo/tgbotapi/types/actions/BotAction;)Ldev/inmo/tgbotapi/types/actions/RecordVideoAction; public static final fun asRecordVideoNoteAction (Ldev/inmo/tgbotapi/types/actions/BotAction;)Ldev/inmo/tgbotapi/types/actions/RecordVideoNoteAction; public static final fun asRecordVoiceAction (Ldev/inmo/tgbotapi/types/actions/BotAction;)Ldev/inmo/tgbotapi/types/actions/RecordVoiceAction; + public static final fun asRefundedPaymentEvent (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/message/payments/RefundedPaymentEvent; public static final fun asRegularPoll (Ldev/inmo/tgbotapi/types/polls/Poll;)Ldev/inmo/tgbotapi/types/polls/RegularPoll; public static final fun asRegularTextSource (Ldev/inmo/tgbotapi/types/message/textsources/TextSource;)Ldev/inmo/tgbotapi/types/message/textsources/RegularTextSource; public static final fun asRentalAgreement (Ldev/inmo/tgbotapi/types/passport/encrypted/abstracts/EncryptedPassportElement;)Ldev/inmo/tgbotapi/types/passport/encrypted/RentalAgreement; @@ -267,7 +268,7 @@ public final class dev/inmo/tgbotapi/extensions/utils/ClassCastsKt { public static final fun asSignedMessage (Ldev/inmo/tgbotapi/types/message/abstracts/Message;)Ldev/inmo/tgbotapi/types/message/abstracts/SignedMessage; public static final fun asSizedInlineQueryResult (Ldev/inmo/tgbotapi/types/InlineQueries/InlineQueryResult/abstracts/InlineQueryResult;)Ldev/inmo/tgbotapi/types/InlineQueries/InlineQueryResult/abstracts/SizedInlineQueryResult; public static final fun asSizedMediaFile (Ldev/inmo/tgbotapi/types/files/TelegramMediaFile;)Ldev/inmo/tgbotapi/types/files/SizedMediaFile; - public static final fun asSizedTelegramMedia (Ldev/inmo/tgbotapi/types/media/TelegramMedia;)Ldev/inmo/tgbotapi/types/media/SizedTelegramMedia; + public static final fun asSizedTelegramMedia (Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia;)Ldev/inmo/tgbotapi/types/media/SizedTelegramMedia; public static final fun asSlotMachineDiceAnimationType (Ldev/inmo/tgbotapi/types/dice/DiceAnimationType;)Ldev/inmo/tgbotapi/types/dice/SlotMachineDiceAnimationType; public static final fun asSpecialRightsChatMember (Ldev/inmo/tgbotapi/types/chat/member/ChatMember;)Ldev/inmo/tgbotapi/types/chat/member/SpecialRightsChatMember; public static final fun asStaticLocation (Ldev/inmo/tgbotapi/types/location/Location;)Ldev/inmo/tgbotapi/types/location/StaticLocation; @@ -283,11 +284,11 @@ public final class dev/inmo/tgbotapi/extensions/utils/ClassCastsKt { public static final fun asSupergroupEventMessage (Ldev/inmo/tgbotapi/types/message/abstracts/Message;)Ldev/inmo/tgbotapi/types/message/abstracts/SupergroupEventMessage; public static final fun asSwitchInlineQueryCurrentChatInlineKeyboardButton (Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardButtons/InlineKeyboardButton;)Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardButtons/SwitchInlineQueryCurrentChatInlineKeyboardButton; public static final fun asSwitchInlineQueryInlineKeyboardButton (Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardButtons/InlineKeyboardButton;)Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardButtons/SwitchInlineQueryInlineKeyboardButton; - public static final fun asTelegramMediaAnimation (Ldev/inmo/tgbotapi/types/media/TelegramMedia;)Ldev/inmo/tgbotapi/types/media/TelegramMediaAnimation; - public static final fun asTelegramMediaAudio (Ldev/inmo/tgbotapi/types/media/TelegramMedia;)Ldev/inmo/tgbotapi/types/media/TelegramMediaAudio; - public static final fun asTelegramMediaDocument (Ldev/inmo/tgbotapi/types/media/TelegramMedia;)Ldev/inmo/tgbotapi/types/media/TelegramMediaDocument; - public static final fun asTelegramMediaPhoto (Ldev/inmo/tgbotapi/types/media/TelegramMedia;)Ldev/inmo/tgbotapi/types/media/TelegramMediaPhoto; - public static final fun asTelegramMediaVideo (Ldev/inmo/tgbotapi/types/media/TelegramMedia;)Ldev/inmo/tgbotapi/types/media/TelegramMediaVideo; + public static final fun asTelegramMediaAnimation (Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia;)Ldev/inmo/tgbotapi/types/media/TelegramMediaAnimation; + public static final fun asTelegramMediaAudio (Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia;)Ldev/inmo/tgbotapi/types/media/TelegramMediaAudio; + public static final fun asTelegramMediaDocument (Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia;)Ldev/inmo/tgbotapi/types/media/TelegramMediaDocument; + public static final fun asTelegramMediaPhoto (Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia;)Ldev/inmo/tgbotapi/types/media/TelegramMediaPhoto; + public static final fun asTelegramMediaVideo (Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia;)Ldev/inmo/tgbotapi/types/media/TelegramMediaVideo; public static final fun asTemporalRegistrationSecureValue (Ldev/inmo/tgbotapi/types/passport/decrypted/abstracts/SecureValue;)Ldev/inmo/tgbotapi/types/passport/decrypted/TemporalRegistrationSecureValue; public static final fun asTemporaryRegistration (Ldev/inmo/tgbotapi/types/passport/encrypted/abstracts/EncryptedPassportElement;)Ldev/inmo/tgbotapi/types/passport/encrypted/TemporaryRegistration; public static final fun asTextContent (Ldev/inmo/tgbotapi/types/message/content/ResendableContent;)Ldev/inmo/tgbotapi/types/message/content/TextContent; @@ -298,10 +299,10 @@ public final class dev/inmo/tgbotapi/extensions/utils/ClassCastsKt { public static final fun asThumbSizedInlineQueryResult (Ldev/inmo/tgbotapi/types/InlineQueries/InlineQueryResult/abstracts/InlineQueryResult;)Ldev/inmo/tgbotapi/types/InlineQueries/InlineQueryResult/abstracts/ThumbSizedInlineQueryResult; public static final fun asThumbedInlineQueryResult (Ldev/inmo/tgbotapi/types/InlineQueries/InlineQueryResult/abstracts/InlineQueryResult;)Ldev/inmo/tgbotapi/types/InlineQueries/InlineQueryResult/abstracts/ThumbedInlineQueryResult; public static final fun asThumbedMediaFile (Ldev/inmo/tgbotapi/types/files/TelegramMediaFile;)Ldev/inmo/tgbotapi/types/files/ThumbedMediaFile; - public static final fun asThumbedTelegramMedia (Ldev/inmo/tgbotapi/types/media/TelegramMedia;)Ldev/inmo/tgbotapi/types/media/ThumbedTelegramMedia; + public static final fun asThumbedTelegramMedia (Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia;)Ldev/inmo/tgbotapi/types/media/ThumbedTelegramMedia; public static final fun asThumbedWithMimeTypeInlineQueryResult (Ldev/inmo/tgbotapi/types/InlineQueries/InlineQueryResult/abstracts/InlineQueryResult;)Ldev/inmo/tgbotapi/types/InlineQueries/InlineQueryResult/abstracts/ThumbedWithMimeTypeInlineQueryResult; public static final fun asTitledInlineQueryResult (Ldev/inmo/tgbotapi/types/InlineQueries/InlineQueryResult/abstracts/InlineQueryResult;)Ldev/inmo/tgbotapi/types/InlineQueries/InlineQueryResult/abstracts/TitledInlineQueryResult; - public static final fun asTitledTelegramMedia (Ldev/inmo/tgbotapi/types/media/TelegramMedia;)Ldev/inmo/tgbotapi/types/media/TitledTelegramMedia; + public static final fun asTitledTelegramMedia (Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia;)Ldev/inmo/tgbotapi/types/media/TitledTelegramMedia; public static final fun asTypingAction (Ldev/inmo/tgbotapi/types/actions/BotAction;)Ldev/inmo/tgbotapi/types/actions/TypingAction; public static final fun asURLInlineKeyboardButton (Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardButtons/InlineKeyboardButton;)Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardButtons/URLInlineKeyboardButton; public static final fun asURLTextSource (Ldev/inmo/tgbotapi/types/message/textsources/TextSource;)Ldev/inmo/tgbotapi/types/message/textsources/URLTextSource; @@ -339,7 +340,7 @@ public final class dev/inmo/tgbotapi/extensions/utils/ClassCastsKt { public static final fun asVideoNoteFile (Ldev/inmo/tgbotapi/types/files/TelegramMediaFile;)Ldev/inmo/tgbotapi/types/files/VideoNoteFile; public static final fun asVideoSticker (Ldev/inmo/tgbotapi/types/files/TelegramMediaFile;)Ldev/inmo/tgbotapi/types/files/VideoSticker; public static final fun asVisualMediaGroupContent (Ldev/inmo/tgbotapi/types/message/content/ResendableContent;)Ldev/inmo/tgbotapi/types/message/content/VisualMediaGroupPartContent; - public static final fun asVisualMediaGroupMemberTelegramMedia (Ldev/inmo/tgbotapi/types/media/TelegramMedia;)Ldev/inmo/tgbotapi/types/media/VisualMediaGroupMemberTelegramMedia; + public static final fun asVisualMediaGroupMemberTelegramMedia (Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia;)Ldev/inmo/tgbotapi/types/media/VisualMediaGroupMemberTelegramMedia; public static final fun asVoiceContent (Ldev/inmo/tgbotapi/types/message/content/ResendableContent;)Ldev/inmo/tgbotapi/types/message/content/VoiceContent; public static final fun asVoiceFile (Ldev/inmo/tgbotapi/types/files/TelegramMediaFile;)Ldev/inmo/tgbotapi/types/files/VoiceFile; public static final fun asWebAppKeyboardButton (Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardButtons/InlineKeyboardButton;)Ldev/inmo/tgbotapi/types/buttons/WebAppKeyboardButton; @@ -359,7 +360,7 @@ public final class dev/inmo/tgbotapi/extensions/utils/ClassCastsKt { public static final fun requireAudioContent (Ldev/inmo/tgbotapi/types/message/content/ResendableContent;)Ldev/inmo/tgbotapi/types/message/content/AudioContent; public static final fun requireAudioFile (Ldev/inmo/tgbotapi/types/files/TelegramMediaFile;)Ldev/inmo/tgbotapi/types/files/AudioFile; public static final fun requireAudioMediaGroupContent (Ldev/inmo/tgbotapi/types/message/content/ResendableContent;)Ldev/inmo/tgbotapi/types/message/content/AudioMediaGroupPartContent; - public static final fun requireAudioMediaGroupMemberTelegramMedia (Ldev/inmo/tgbotapi/types/media/TelegramMedia;)Ldev/inmo/tgbotapi/types/media/AudioMediaGroupMemberTelegramMedia; + public static final fun requireAudioMediaGroupMemberTelegramMedia (Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia;)Ldev/inmo/tgbotapi/types/media/AudioMediaGroupMemberTelegramMedia; public static final fun requireBankStatement (Ldev/inmo/tgbotapi/types/passport/encrypted/abstracts/EncryptedPassportElement;)Ldev/inmo/tgbotapi/types/passport/encrypted/BankStatement; public static final fun requireBankStatementSecureValue (Ldev/inmo/tgbotapi/types/passport/decrypted/abstracts/SecureValue;)Ldev/inmo/tgbotapi/types/passport/decrypted/BankStatementSecureValue; public static final fun requireBannedChatMember (Ldev/inmo/tgbotapi/types/chat/member/ChatMember;)Ldev/inmo/tgbotapi/types/chat/member/BannedChatMember; @@ -417,10 +418,10 @@ public final class dev/inmo/tgbotapi/extensions/utils/ClassCastsKt { public static final fun requireDocumentContent (Ldev/inmo/tgbotapi/types/message/content/ResendableContent;)Ldev/inmo/tgbotapi/types/message/content/DocumentContent; public static final fun requireDocumentFile (Ldev/inmo/tgbotapi/types/files/TelegramMediaFile;)Ldev/inmo/tgbotapi/types/files/DocumentFile; public static final fun requireDocumentMediaGroupContent (Ldev/inmo/tgbotapi/types/message/content/ResendableContent;)Ldev/inmo/tgbotapi/types/message/content/DocumentMediaGroupPartContent; - public static final fun requireDocumentMediaGroupMemberTelegramMedia (Ldev/inmo/tgbotapi/types/media/TelegramMedia;)Ldev/inmo/tgbotapi/types/media/DocumentMediaGroupMemberTelegramMedia; + public static final fun requireDocumentMediaGroupMemberTelegramMedia (Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia;)Ldev/inmo/tgbotapi/types/media/DocumentMediaGroupMemberTelegramMedia; public static final fun requireDriverLicense (Ldev/inmo/tgbotapi/types/passport/encrypted/abstracts/EncryptedPassportElement;)Ldev/inmo/tgbotapi/types/passport/encrypted/DriverLicense; public static final fun requireDriverLicenseSecureValue (Ldev/inmo/tgbotapi/types/passport/decrypted/abstracts/SecureValue;)Ldev/inmo/tgbotapi/types/passport/decrypted/DriverLicenseSecureValue; - public static final fun requireDuratedTelegramMedia (Ldev/inmo/tgbotapi/types/media/TelegramMedia;)Ldev/inmo/tgbotapi/types/media/DuratedTelegramMedia; + public static final fun requireDuratedTelegramMedia (Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia;)Ldev/inmo/tgbotapi/types/media/DuratedTelegramMedia; public static final fun requireEMailTextSource (Ldev/inmo/tgbotapi/types/message/textsources/TextSource;)Ldev/inmo/tgbotapi/types/message/textsources/EMailTextSource; public static final fun requireEditChannelPostUpdate (Ldev/inmo/tgbotapi/types/update/abstracts/Update;)Ldev/inmo/tgbotapi/types/update/EditChannelPostUpdate; public static final fun requireEditMessageUpdate (Ldev/inmo/tgbotapi/types/update/abstracts/Update;)Ldev/inmo/tgbotapi/types/update/EditMessageUpdate; @@ -519,7 +520,7 @@ public final class dev/inmo/tgbotapi/extensions/utils/ClassCastsKt { public static final fun requireMediaCollectionContent (Ldev/inmo/tgbotapi/types/message/content/ResendableContent;)Ldev/inmo/tgbotapi/types/message/content/MediaCollectionContent; public static final fun requireMediaContent (Ldev/inmo/tgbotapi/types/message/content/ResendableContent;)Ldev/inmo/tgbotapi/types/message/content/MediaContent; public static final fun requireMediaGroupContent (Ldev/inmo/tgbotapi/types/message/content/ResendableContent;)Ldev/inmo/tgbotapi/types/message/content/MediaGroupPartContent; - public static final fun requireMediaGroupMemberTelegramMedia (Ldev/inmo/tgbotapi/types/media/TelegramMedia;)Ldev/inmo/tgbotapi/types/media/MediaGroupMemberTelegramMedia; + public static final fun requireMediaGroupMemberTelegramMedia (Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia;)Ldev/inmo/tgbotapi/types/media/MediaGroupMemberTelegramMedia; public static final fun requireMediaGroupMessage (Ldev/inmo/tgbotapi/types/message/abstracts/Message;)Ldev/inmo/tgbotapi/types/message/abstracts/CommonMessage; public static final fun requireMemberChatMember (Ldev/inmo/tgbotapi/types/chat/member/ChatMember;)Ldev/inmo/tgbotapi/types/chat/member/MemberChatMember; public static final fun requireMentionTextSource (Ldev/inmo/tgbotapi/types/message/textsources/TextSource;)Ldev/inmo/tgbotapi/types/message/textsources/MentionTextSource; @@ -591,6 +592,7 @@ public final class dev/inmo/tgbotapi/extensions/utils/ClassCastsKt { public static final fun requireRecordVideoAction (Ldev/inmo/tgbotapi/types/actions/BotAction;)Ldev/inmo/tgbotapi/types/actions/RecordVideoAction; public static final fun requireRecordVideoNoteAction (Ldev/inmo/tgbotapi/types/actions/BotAction;)Ldev/inmo/tgbotapi/types/actions/RecordVideoNoteAction; public static final fun requireRecordVoiceAction (Ldev/inmo/tgbotapi/types/actions/BotAction;)Ldev/inmo/tgbotapi/types/actions/RecordVoiceAction; + public static final fun requireRefundedPaymentEvent (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/message/payments/RefundedPaymentEvent; public static final fun requireRegularPoll (Ldev/inmo/tgbotapi/types/polls/Poll;)Ldev/inmo/tgbotapi/types/polls/RegularPoll; public static final fun requireRegularTextSource (Ldev/inmo/tgbotapi/types/message/textsources/TextSource;)Ldev/inmo/tgbotapi/types/message/textsources/RegularTextSource; public static final fun requireRentalAgreement (Ldev/inmo/tgbotapi/types/passport/encrypted/abstracts/EncryptedPassportElement;)Ldev/inmo/tgbotapi/types/passport/encrypted/RentalAgreement; @@ -609,7 +611,7 @@ public final class dev/inmo/tgbotapi/extensions/utils/ClassCastsKt { public static final fun requireSignedMessage (Ldev/inmo/tgbotapi/types/message/abstracts/Message;)Ldev/inmo/tgbotapi/types/message/abstracts/SignedMessage; public static final fun requireSizedInlineQueryResult (Ldev/inmo/tgbotapi/types/InlineQueries/InlineQueryResult/abstracts/InlineQueryResult;)Ldev/inmo/tgbotapi/types/InlineQueries/InlineQueryResult/abstracts/SizedInlineQueryResult; public static final fun requireSizedMediaFile (Ldev/inmo/tgbotapi/types/files/TelegramMediaFile;)Ldev/inmo/tgbotapi/types/files/SizedMediaFile; - public static final fun requireSizedTelegramMedia (Ldev/inmo/tgbotapi/types/media/TelegramMedia;)Ldev/inmo/tgbotapi/types/media/SizedTelegramMedia; + public static final fun requireSizedTelegramMedia (Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia;)Ldev/inmo/tgbotapi/types/media/SizedTelegramMedia; public static final fun requireSlotMachineDiceAnimationType (Ldev/inmo/tgbotapi/types/dice/DiceAnimationType;)Ldev/inmo/tgbotapi/types/dice/SlotMachineDiceAnimationType; public static final fun requireSpecialRightsChatMember (Ldev/inmo/tgbotapi/types/chat/member/ChatMember;)Ldev/inmo/tgbotapi/types/chat/member/SpecialRightsChatMember; public static final fun requireStaticLocation (Ldev/inmo/tgbotapi/types/location/Location;)Ldev/inmo/tgbotapi/types/location/StaticLocation; @@ -625,11 +627,11 @@ public final class dev/inmo/tgbotapi/extensions/utils/ClassCastsKt { public static final fun requireSupergroupEventMessage (Ldev/inmo/tgbotapi/types/message/abstracts/Message;)Ldev/inmo/tgbotapi/types/message/abstracts/SupergroupEventMessage; public static final fun requireSwitchInlineQueryCurrentChatInlineKeyboardButton (Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardButtons/InlineKeyboardButton;)Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardButtons/SwitchInlineQueryCurrentChatInlineKeyboardButton; public static final fun requireSwitchInlineQueryInlineKeyboardButton (Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardButtons/InlineKeyboardButton;)Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardButtons/SwitchInlineQueryInlineKeyboardButton; - public static final fun requireTelegramMediaAnimation (Ldev/inmo/tgbotapi/types/media/TelegramMedia;)Ldev/inmo/tgbotapi/types/media/TelegramMediaAnimation; - public static final fun requireTelegramMediaAudio (Ldev/inmo/tgbotapi/types/media/TelegramMedia;)Ldev/inmo/tgbotapi/types/media/TelegramMediaAudio; - public static final fun requireTelegramMediaDocument (Ldev/inmo/tgbotapi/types/media/TelegramMedia;)Ldev/inmo/tgbotapi/types/media/TelegramMediaDocument; - public static final fun requireTelegramMediaPhoto (Ldev/inmo/tgbotapi/types/media/TelegramMedia;)Ldev/inmo/tgbotapi/types/media/TelegramMediaPhoto; - public static final fun requireTelegramMediaVideo (Ldev/inmo/tgbotapi/types/media/TelegramMedia;)Ldev/inmo/tgbotapi/types/media/TelegramMediaVideo; + public static final fun requireTelegramMediaAnimation (Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia;)Ldev/inmo/tgbotapi/types/media/TelegramMediaAnimation; + public static final fun requireTelegramMediaAudio (Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia;)Ldev/inmo/tgbotapi/types/media/TelegramMediaAudio; + public static final fun requireTelegramMediaDocument (Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia;)Ldev/inmo/tgbotapi/types/media/TelegramMediaDocument; + public static final fun requireTelegramMediaPhoto (Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia;)Ldev/inmo/tgbotapi/types/media/TelegramMediaPhoto; + public static final fun requireTelegramMediaVideo (Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia;)Ldev/inmo/tgbotapi/types/media/TelegramMediaVideo; public static final fun requireTemporalRegistrationSecureValue (Ldev/inmo/tgbotapi/types/passport/decrypted/abstracts/SecureValue;)Ldev/inmo/tgbotapi/types/passport/decrypted/TemporalRegistrationSecureValue; public static final fun requireTemporaryRegistration (Ldev/inmo/tgbotapi/types/passport/encrypted/abstracts/EncryptedPassportElement;)Ldev/inmo/tgbotapi/types/passport/encrypted/TemporaryRegistration; public static final fun requireTextContent (Ldev/inmo/tgbotapi/types/message/content/ResendableContent;)Ldev/inmo/tgbotapi/types/message/content/TextContent; @@ -640,10 +642,10 @@ public final class dev/inmo/tgbotapi/extensions/utils/ClassCastsKt { public static final fun requireThumbSizedInlineQueryResult (Ldev/inmo/tgbotapi/types/InlineQueries/InlineQueryResult/abstracts/InlineQueryResult;)Ldev/inmo/tgbotapi/types/InlineQueries/InlineQueryResult/abstracts/ThumbSizedInlineQueryResult; public static final fun requireThumbedInlineQueryResult (Ldev/inmo/tgbotapi/types/InlineQueries/InlineQueryResult/abstracts/InlineQueryResult;)Ldev/inmo/tgbotapi/types/InlineQueries/InlineQueryResult/abstracts/ThumbedInlineQueryResult; public static final fun requireThumbedMediaFile (Ldev/inmo/tgbotapi/types/files/TelegramMediaFile;)Ldev/inmo/tgbotapi/types/files/ThumbedMediaFile; - public static final fun requireThumbedTelegramMedia (Ldev/inmo/tgbotapi/types/media/TelegramMedia;)Ldev/inmo/tgbotapi/types/media/ThumbedTelegramMedia; + public static final fun requireThumbedTelegramMedia (Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia;)Ldev/inmo/tgbotapi/types/media/ThumbedTelegramMedia; public static final fun requireThumbedWithMimeTypeInlineQueryResult (Ldev/inmo/tgbotapi/types/InlineQueries/InlineQueryResult/abstracts/InlineQueryResult;)Ldev/inmo/tgbotapi/types/InlineQueries/InlineQueryResult/abstracts/ThumbedWithMimeTypeInlineQueryResult; public static final fun requireTitledInlineQueryResult (Ldev/inmo/tgbotapi/types/InlineQueries/InlineQueryResult/abstracts/InlineQueryResult;)Ldev/inmo/tgbotapi/types/InlineQueries/InlineQueryResult/abstracts/TitledInlineQueryResult; - public static final fun requireTitledTelegramMedia (Ldev/inmo/tgbotapi/types/media/TelegramMedia;)Ldev/inmo/tgbotapi/types/media/TitledTelegramMedia; + public static final fun requireTitledTelegramMedia (Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia;)Ldev/inmo/tgbotapi/types/media/TitledTelegramMedia; public static final fun requireTypingAction (Ldev/inmo/tgbotapi/types/actions/BotAction;)Ldev/inmo/tgbotapi/types/actions/TypingAction; public static final fun requireURLInlineKeyboardButton (Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardButtons/InlineKeyboardButton;)Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardButtons/URLInlineKeyboardButton; public static final fun requireURLTextSource (Ldev/inmo/tgbotapi/types/message/textsources/TextSource;)Ldev/inmo/tgbotapi/types/message/textsources/URLTextSource; @@ -681,7 +683,7 @@ public final class dev/inmo/tgbotapi/extensions/utils/ClassCastsKt { public static final fun requireVideoNoteFile (Ldev/inmo/tgbotapi/types/files/TelegramMediaFile;)Ldev/inmo/tgbotapi/types/files/VideoNoteFile; public static final fun requireVideoSticker (Ldev/inmo/tgbotapi/types/files/TelegramMediaFile;)Ldev/inmo/tgbotapi/types/files/VideoSticker; public static final fun requireVisualMediaGroupContent (Ldev/inmo/tgbotapi/types/message/content/ResendableContent;)Ldev/inmo/tgbotapi/types/message/content/VisualMediaGroupPartContent; - public static final fun requireVisualMediaGroupMemberTelegramMedia (Ldev/inmo/tgbotapi/types/media/TelegramMedia;)Ldev/inmo/tgbotapi/types/media/VisualMediaGroupMemberTelegramMedia; + public static final fun requireVisualMediaGroupMemberTelegramMedia (Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia;)Ldev/inmo/tgbotapi/types/media/VisualMediaGroupMemberTelegramMedia; public static final fun requireVoiceContent (Ldev/inmo/tgbotapi/types/message/content/ResendableContent;)Ldev/inmo/tgbotapi/types/message/content/VoiceContent; public static final fun requireVoiceFile (Ldev/inmo/tgbotapi/types/files/TelegramMediaFile;)Ldev/inmo/tgbotapi/types/files/VoiceFile; public static final fun requireWebAppKeyboardButton (Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardButtons/InlineKeyboardButton;)Ldev/inmo/tgbotapi/types/buttons/WebAppKeyboardButton; @@ -701,7 +703,7 @@ public final class dev/inmo/tgbotapi/extensions/utils/ClassCastsKt { public static final fun whenAudioContent (Ldev/inmo/tgbotapi/types/message/content/ResendableContent;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun whenAudioFile (Ldev/inmo/tgbotapi/types/files/TelegramMediaFile;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun whenAudioMediaGroupContent (Ldev/inmo/tgbotapi/types/message/content/ResendableContent;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; - public static final fun whenAudioMediaGroupMemberTelegramMedia (Ldev/inmo/tgbotapi/types/media/TelegramMedia;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; + public static final fun whenAudioMediaGroupMemberTelegramMedia (Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun whenBankStatement (Ldev/inmo/tgbotapi/types/passport/encrypted/abstracts/EncryptedPassportElement;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun whenBankStatementSecureValue (Ldev/inmo/tgbotapi/types/passport/decrypted/abstracts/SecureValue;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun whenBannedChatMember (Ldev/inmo/tgbotapi/types/chat/member/ChatMember;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; @@ -759,10 +761,10 @@ public final class dev/inmo/tgbotapi/extensions/utils/ClassCastsKt { public static final fun whenDocumentContent (Ldev/inmo/tgbotapi/types/message/content/ResendableContent;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun whenDocumentFile (Ldev/inmo/tgbotapi/types/files/TelegramMediaFile;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun whenDocumentMediaGroupContent (Ldev/inmo/tgbotapi/types/message/content/ResendableContent;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; - public static final fun whenDocumentMediaGroupMemberTelegramMedia (Ldev/inmo/tgbotapi/types/media/TelegramMedia;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; + public static final fun whenDocumentMediaGroupMemberTelegramMedia (Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun whenDriverLicense (Ldev/inmo/tgbotapi/types/passport/encrypted/abstracts/EncryptedPassportElement;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun whenDriverLicenseSecureValue (Ldev/inmo/tgbotapi/types/passport/decrypted/abstracts/SecureValue;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; - public static final fun whenDuratedTelegramMedia (Ldev/inmo/tgbotapi/types/media/TelegramMedia;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; + public static final fun whenDuratedTelegramMedia (Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun whenEMailTextSource (Ldev/inmo/tgbotapi/types/message/textsources/TextSource;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun whenEditChannelPostUpdate (Ldev/inmo/tgbotapi/types/update/abstracts/Update;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun whenEditMessageUpdate (Ldev/inmo/tgbotapi/types/update/abstracts/Update;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; @@ -861,7 +863,7 @@ public final class dev/inmo/tgbotapi/extensions/utils/ClassCastsKt { public static final fun whenMediaCollectionContent (Ldev/inmo/tgbotapi/types/message/content/ResendableContent;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun whenMediaContent (Ldev/inmo/tgbotapi/types/message/content/ResendableContent;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun whenMediaGroupContent (Ldev/inmo/tgbotapi/types/message/content/ResendableContent;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; - public static final fun whenMediaGroupMemberTelegramMedia (Ldev/inmo/tgbotapi/types/media/TelegramMedia;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; + public static final fun whenMediaGroupMemberTelegramMedia (Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun whenMediaGroupMessage (Ldev/inmo/tgbotapi/types/message/abstracts/Message;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun whenMemberChatMember (Ldev/inmo/tgbotapi/types/chat/member/ChatMember;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun whenMentionTextSource (Ldev/inmo/tgbotapi/types/message/textsources/TextSource;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; @@ -933,6 +935,7 @@ public final class dev/inmo/tgbotapi/extensions/utils/ClassCastsKt { public static final fun whenRecordVideoAction (Ldev/inmo/tgbotapi/types/actions/BotAction;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun whenRecordVideoNoteAction (Ldev/inmo/tgbotapi/types/actions/BotAction;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun whenRecordVoiceAction (Ldev/inmo/tgbotapi/types/actions/BotAction;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; + public static final fun whenRefundedPaymentEvent (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun whenRegularPoll (Ldev/inmo/tgbotapi/types/polls/Poll;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun whenRegularTextSource (Ldev/inmo/tgbotapi/types/message/textsources/TextSource;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun whenRentalAgreement (Ldev/inmo/tgbotapi/types/passport/encrypted/abstracts/EncryptedPassportElement;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; @@ -951,7 +954,7 @@ public final class dev/inmo/tgbotapi/extensions/utils/ClassCastsKt { public static final fun whenSignedMessage (Ldev/inmo/tgbotapi/types/message/abstracts/Message;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun whenSizedInlineQueryResult (Ldev/inmo/tgbotapi/types/InlineQueries/InlineQueryResult/abstracts/InlineQueryResult;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun whenSizedMediaFile (Ldev/inmo/tgbotapi/types/files/TelegramMediaFile;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; - public static final fun whenSizedTelegramMedia (Ldev/inmo/tgbotapi/types/media/TelegramMedia;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; + public static final fun whenSizedTelegramMedia (Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun whenSlotMachineDiceAnimationType (Ldev/inmo/tgbotapi/types/dice/DiceAnimationType;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun whenSpecialRightsChatMember (Ldev/inmo/tgbotapi/types/chat/member/ChatMember;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun whenStaticLocation (Ldev/inmo/tgbotapi/types/location/Location;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; @@ -967,11 +970,11 @@ public final class dev/inmo/tgbotapi/extensions/utils/ClassCastsKt { public static final fun whenSupergroupEventMessage (Ldev/inmo/tgbotapi/types/message/abstracts/Message;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun whenSwitchInlineQueryCurrentChatInlineKeyboardButton (Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardButtons/InlineKeyboardButton;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun whenSwitchInlineQueryInlineKeyboardButton (Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardButtons/InlineKeyboardButton;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; - public static final fun whenTelegramMediaAnimation (Ldev/inmo/tgbotapi/types/media/TelegramMedia;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; - public static final fun whenTelegramMediaAudio (Ldev/inmo/tgbotapi/types/media/TelegramMedia;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; - public static final fun whenTelegramMediaDocument (Ldev/inmo/tgbotapi/types/media/TelegramMedia;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; - public static final fun whenTelegramMediaPhoto (Ldev/inmo/tgbotapi/types/media/TelegramMedia;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; - public static final fun whenTelegramMediaVideo (Ldev/inmo/tgbotapi/types/media/TelegramMedia;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; + public static final fun whenTelegramMediaAnimation (Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; + public static final fun whenTelegramMediaAudio (Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; + public static final fun whenTelegramMediaDocument (Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; + public static final fun whenTelegramMediaPhoto (Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; + public static final fun whenTelegramMediaVideo (Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun whenTemporalRegistrationSecureValue (Ldev/inmo/tgbotapi/types/passport/decrypted/abstracts/SecureValue;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun whenTemporaryRegistration (Ldev/inmo/tgbotapi/types/passport/encrypted/abstracts/EncryptedPassportElement;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun whenTextContent (Ldev/inmo/tgbotapi/types/message/content/ResendableContent;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; @@ -982,10 +985,10 @@ public final class dev/inmo/tgbotapi/extensions/utils/ClassCastsKt { public static final fun whenThumbSizedInlineQueryResult (Ldev/inmo/tgbotapi/types/InlineQueries/InlineQueryResult/abstracts/InlineQueryResult;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun whenThumbedInlineQueryResult (Ldev/inmo/tgbotapi/types/InlineQueries/InlineQueryResult/abstracts/InlineQueryResult;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun whenThumbedMediaFile (Ldev/inmo/tgbotapi/types/files/TelegramMediaFile;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; - public static final fun whenThumbedTelegramMedia (Ldev/inmo/tgbotapi/types/media/TelegramMedia;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; + public static final fun whenThumbedTelegramMedia (Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun whenThumbedWithMimeTypeInlineQueryResult (Ldev/inmo/tgbotapi/types/InlineQueries/InlineQueryResult/abstracts/InlineQueryResult;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun whenTitledInlineQueryResult (Ldev/inmo/tgbotapi/types/InlineQueries/InlineQueryResult/abstracts/InlineQueryResult;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; - public static final fun whenTitledTelegramMedia (Ldev/inmo/tgbotapi/types/media/TelegramMedia;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; + public static final fun whenTitledTelegramMedia (Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun whenTypingAction (Ldev/inmo/tgbotapi/types/actions/BotAction;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun whenURLInlineKeyboardButton (Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardButtons/InlineKeyboardButton;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun whenURLTextSource (Ldev/inmo/tgbotapi/types/message/textsources/TextSource;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; @@ -1023,7 +1026,7 @@ public final class dev/inmo/tgbotapi/extensions/utils/ClassCastsKt { public static final fun whenVideoNoteFile (Ldev/inmo/tgbotapi/types/files/TelegramMediaFile;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun whenVideoSticker (Ldev/inmo/tgbotapi/types/files/TelegramMediaFile;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun whenVisualMediaGroupContent (Ldev/inmo/tgbotapi/types/message/content/ResendableContent;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; - public static final fun whenVisualMediaGroupMemberTelegramMedia (Ldev/inmo/tgbotapi/types/media/TelegramMedia;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; + public static final fun whenVisualMediaGroupMemberTelegramMedia (Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun whenVoiceContent (Ldev/inmo/tgbotapi/types/message/content/ResendableContent;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun whenVoiceFile (Ldev/inmo/tgbotapi/types/files/TelegramMediaFile;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun whenWebAppKeyboardButton (Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardButtons/InlineKeyboardButton;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; @@ -1055,6 +1058,8 @@ public final class dev/inmo/tgbotapi/extensions/utils/ClassCastsNewKt { public static final fun addressSecureValueOrThrow (Ldev/inmo/tgbotapi/types/passport/decrypted/abstracts/SecureValue;)Ldev/inmo/tgbotapi/types/passport/decrypted/AddressSecureValue; public static final fun administratorChatMemberOrNull (Ldev/inmo/tgbotapi/abstracts/WithUser;)Ldev/inmo/tgbotapi/types/chat/member/AdministratorChatMember; public static final fun administratorChatMemberOrThrow (Ldev/inmo/tgbotapi/abstracts/WithUser;)Ldev/inmo/tgbotapi/types/chat/member/AdministratorChatMember; + public static final fun adsOrNull (Ldev/inmo/tgbotapi/types/payments/stars/TransactionPartner;)Ldev/inmo/tgbotapi/types/payments/stars/TransactionPartner$Ads; + public static final fun adsOrThrow (Ldev/inmo/tgbotapi/types/payments/stars/TransactionPartner;)Ldev/inmo/tgbotapi/types/payments/stars/TransactionPartner$Ads; public static final fun animatedStickerOrNull (Ldev/inmo/tgbotapi/types/files/TelegramMediaFile;)Ldev/inmo/tgbotapi/types/files/AnimatedSticker; public static final fun animatedStickerOrThrow (Ldev/inmo/tgbotapi/types/files/TelegramMediaFile;)Ldev/inmo/tgbotapi/types/files/AnimatedSticker; public static final fun animationContentOrNull (Ldev/inmo/tgbotapi/types/message/content/ResendableContent;)Ldev/inmo/tgbotapi/types/message/content/AnimationContent; @@ -1460,6 +1465,7 @@ public final class dev/inmo/tgbotapi/extensions/utils/ClassCastsNewKt { public static final fun ifAccessibleMessage (Ldev/inmo/tgbotapi/types/message/abstracts/Message;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifAddressSecureValue (Ldev/inmo/tgbotapi/types/passport/decrypted/abstracts/SecureValue;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifAdministratorChatMember (Ldev/inmo/tgbotapi/abstracts/WithUser;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; + public static final fun ifAds (Ldev/inmo/tgbotapi/types/payments/stars/TransactionPartner;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifAnimatedSticker (Ldev/inmo/tgbotapi/types/files/TelegramMediaFile;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifAnimationContent (Ldev/inmo/tgbotapi/types/message/content/ResendableContent;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifAnimationFile (Ldev/inmo/tgbotapi/types/files/TelegramMediaFile;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; @@ -1754,6 +1760,7 @@ public final class dev/inmo/tgbotapi/extensions/utils/ClassCastsNewKt { public static final fun ifOtherDocumentsSecureValue (Ldev/inmo/tgbotapi/types/passport/decrypted/abstracts/SecureValue;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifOutgoing (Ldev/inmo/tgbotapi/types/payments/stars/StarTransaction;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifOwnerChatMember (Ldev/inmo/tgbotapi/abstracts/WithUser;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; + public static final fun ifPaidMediaInfoContent (Ldev/inmo/tgbotapi/types/message/content/ResendableContent;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifPassport (Ldev/inmo/tgbotapi/types/passport/encrypted/abstracts/EncryptedPassportElement;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifPassportElementErrorDataField (Ldev/inmo/tgbotapi/types/passport/PassportElementError;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifPassportElementErrorFile (Ldev/inmo/tgbotapi/types/passport/PassportElementError;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; @@ -1781,8 +1788,8 @@ public final class dev/inmo/tgbotapi/extensions/utils/ClassCastsNewKt { public static final fun ifPersonalDetailsSecureValue (Ldev/inmo/tgbotapi/types/passport/decrypted/abstracts/SecureValue;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifPhoneNumber (Ldev/inmo/tgbotapi/types/passport/encrypted/abstracts/EncryptedPassportElement;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifPhoneNumberTextSource (Ldev/inmo/tgbotapi/types/message/textsources/TextSource;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; - public static final fun ifPhoto (Ldev/inmo/tgbotapi/types/files/TelegramMediaFile;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifPhotoContent (Ldev/inmo/tgbotapi/types/message/content/ResendableContent;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; + public static final fun ifPhotoFile (Ldev/inmo/tgbotapi/types/files/TelegramMediaFile;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifPhotoSize (Ldev/inmo/tgbotapi/types/files/TelegramMediaFile;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifPinnedMessage (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifPlayableMediaFile (Ldev/inmo/tgbotapi/types/files/TelegramMediaFile;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; @@ -1831,6 +1838,7 @@ public final class dev/inmo/tgbotapi/extensions/utils/ClassCastsNewKt { public static final fun ifRecordVideoAction (Ldev/inmo/tgbotapi/types/actions/BotAction;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifRecordVideoNoteAction (Ldev/inmo/tgbotapi/types/actions/BotAction;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifRecordVoiceAction (Ldev/inmo/tgbotapi/types/actions/BotAction;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; + public static final fun ifRefundedPaymentEvent (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifRegular (Ldev/inmo/tgbotapi/requests/stickers/InputSticker;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifRegularAnimatedSticker (Ldev/inmo/tgbotapi/types/files/TelegramMediaFile;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifRegularPoll (Ldev/inmo/tgbotapi/types/polls/Poll;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; @@ -1883,11 +1891,15 @@ public final class dev/inmo/tgbotapi/extensions/utils/ClassCastsNewKt { public static final fun ifSwitchInlineQueryChosenChatInlineKeyboardButton (Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardButtons/InlineKeyboardButton;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifSwitchInlineQueryCurrentChatInlineKeyboardButton (Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardButtons/InlineKeyboardButton;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifSwitchInlineQueryInlineKeyboardButton (Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardButtons/InlineKeyboardButton;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; + public static final fun ifTelegramFreeMedia (Ldev/inmo/tgbotapi/types/media/TelegramMedia;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifTelegramMediaAnimation (Ldev/inmo/tgbotapi/types/media/TelegramMedia;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifTelegramMediaAudio (Ldev/inmo/tgbotapi/types/media/TelegramMedia;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifTelegramMediaDocument (Ldev/inmo/tgbotapi/types/media/TelegramMedia;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifTelegramMediaPhoto (Ldev/inmo/tgbotapi/types/media/TelegramMedia;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifTelegramMediaVideo (Ldev/inmo/tgbotapi/types/media/TelegramMedia;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; + public static final fun ifTelegramPaidMedia (Ldev/inmo/tgbotapi/types/media/TelegramMedia;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; + public static final fun ifTelegramPaidMediaPhoto (Ldev/inmo/tgbotapi/types/media/TelegramMedia;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; + public static final fun ifTelegramPaidMediaVideo (Ldev/inmo/tgbotapi/types/media/TelegramMedia;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifTemporalRegistrationSecureValue (Ldev/inmo/tgbotapi/types/passport/decrypted/abstracts/SecureValue;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifTemporaryRegistration (Ldev/inmo/tgbotapi/types/passport/encrypted/abstracts/EncryptedPassportElement;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifText (Ldev/inmo/tgbotapi/types/ReplyInfo;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; @@ -1935,6 +1947,7 @@ public final class dev/inmo/tgbotapi/extensions/utils/ClassCastsNewKt { public static final fun ifUploadVideoNoteAction (Ldev/inmo/tgbotapi/types/actions/BotAction;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifUploadVoiceAction (Ldev/inmo/tgbotapi/types/actions/BotAction;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifUrlInlineQueryResult (Ldev/inmo/tgbotapi/types/InlineQueries/InlineQueryResult/abstracts/InlineQueryResult;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; + public static final fun ifUsefulAsPaidMediaFile (Ldev/inmo/tgbotapi/types/files/TelegramMediaFile;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifUser (Ldev/inmo/tgbotapi/types/chat/Chat;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifUser (Ldev/inmo/tgbotapi/types/payments/stars/TransactionPartner;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifUserLoggedIn (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; @@ -1957,6 +1970,7 @@ public final class dev/inmo/tgbotapi/extensions/utils/ClassCastsNewKt { public static final fun ifVideoSticker (Ldev/inmo/tgbotapi/types/files/TelegramMediaFile;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifVisualMediaGroupMemberTelegramMedia (Ldev/inmo/tgbotapi/types/media/TelegramMedia;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifVisualMediaGroupPartContent (Ldev/inmo/tgbotapi/types/message/content/ResendableContent;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; + public static final fun ifVisualTelegramPaidMedia (Ldev/inmo/tgbotapi/types/media/TelegramMedia;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifVoiceContent (Ldev/inmo/tgbotapi/types/message/content/ResendableContent;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifVoiceFile (Ldev/inmo/tgbotapi/types/files/TelegramMediaFile;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; public static final fun ifWallpaper (Ldev/inmo/tgbotapi/types/BackgroundType;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object; @@ -2158,6 +2172,8 @@ public final class dev/inmo/tgbotapi/extensions/utils/ClassCastsNewKt { public static final fun outgoingOrThrow (Ldev/inmo/tgbotapi/types/payments/stars/StarTransaction;)Ldev/inmo/tgbotapi/types/payments/stars/StarTransaction$Outgoing; public static final fun ownerChatMemberOrNull (Ldev/inmo/tgbotapi/abstracts/WithUser;)Ldev/inmo/tgbotapi/types/chat/member/OwnerChatMember; public static final fun ownerChatMemberOrThrow (Ldev/inmo/tgbotapi/abstracts/WithUser;)Ldev/inmo/tgbotapi/types/chat/member/OwnerChatMember; + public static final fun paidMediaInfoContentOrNull (Ldev/inmo/tgbotapi/types/message/content/ResendableContent;)Ldev/inmo/tgbotapi/types/message/content/PaidMediaInfoContent; + public static final fun paidMediaInfoContentOrThrow (Ldev/inmo/tgbotapi/types/message/content/ResendableContent;)Ldev/inmo/tgbotapi/types/message/content/PaidMediaInfoContent; public static final fun passportElementErrorDataFieldOrNull (Ldev/inmo/tgbotapi/types/passport/PassportElementError;)Ldev/inmo/tgbotapi/types/passport/PassportElementErrorDataField; public static final fun passportElementErrorDataFieldOrThrow (Ldev/inmo/tgbotapi/types/passport/PassportElementError;)Ldev/inmo/tgbotapi/types/passport/PassportElementErrorDataField; public static final fun passportElementErrorFileOrNull (Ldev/inmo/tgbotapi/types/passport/PassportElementError;)Ldev/inmo/tgbotapi/types/passport/PassportElementErrorFile; @@ -2214,8 +2230,8 @@ public final class dev/inmo/tgbotapi/extensions/utils/ClassCastsNewKt { public static final fun phoneNumberTextSourceOrThrow (Ldev/inmo/tgbotapi/types/message/textsources/TextSource;)Ldev/inmo/tgbotapi/types/message/textsources/PhoneNumberTextSource; public static final fun photoContentOrNull (Ldev/inmo/tgbotapi/types/message/content/ResendableContent;)Ldev/inmo/tgbotapi/types/message/content/PhotoContent; public static final fun photoContentOrThrow (Ldev/inmo/tgbotapi/types/message/content/ResendableContent;)Ldev/inmo/tgbotapi/types/message/content/PhotoContent; - public static final fun photoOrNull (Ldev/inmo/tgbotapi/types/files/TelegramMediaFile;)Ljava/util/List; - public static final fun photoOrThrow (Ldev/inmo/tgbotapi/types/files/TelegramMediaFile;)Ljava/util/List; + public static final fun photoFileOrNull (Ldev/inmo/tgbotapi/types/files/TelegramMediaFile;)Ljava/util/List; + public static final fun photoFileOrThrow (Ldev/inmo/tgbotapi/types/files/TelegramMediaFile;)Ljava/util/List; public static final fun photoSizeOrNull (Ldev/inmo/tgbotapi/types/files/TelegramMediaFile;)Ldev/inmo/tgbotapi/types/files/PhotoSize; public static final fun photoSizeOrThrow (Ldev/inmo/tgbotapi/types/files/TelegramMediaFile;)Ldev/inmo/tgbotapi/types/files/PhotoSize; public static final fun pinnedMessageOrNull (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/message/ChatEvents/PinnedMessage; @@ -2312,6 +2328,8 @@ public final class dev/inmo/tgbotapi/extensions/utils/ClassCastsNewKt { public static final fun recordVideoNoteActionOrThrow (Ldev/inmo/tgbotapi/types/actions/BotAction;)Ldev/inmo/tgbotapi/types/actions/RecordVideoNoteAction; public static final fun recordVoiceActionOrNull (Ldev/inmo/tgbotapi/types/actions/BotAction;)Ldev/inmo/tgbotapi/types/actions/RecordVoiceAction; public static final fun recordVoiceActionOrThrow (Ldev/inmo/tgbotapi/types/actions/BotAction;)Ldev/inmo/tgbotapi/types/actions/RecordVoiceAction; + public static final fun refundedPaymentEventOrNull (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/message/payments/RefundedPaymentEvent; + public static final fun refundedPaymentEventOrThrow (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/message/payments/RefundedPaymentEvent; public static final fun regularAnimatedStickerOrNull (Ldev/inmo/tgbotapi/types/files/TelegramMediaFile;)Ldev/inmo/tgbotapi/types/files/RegularAnimatedSticker; public static final fun regularAnimatedStickerOrThrow (Ldev/inmo/tgbotapi/types/files/TelegramMediaFile;)Ldev/inmo/tgbotapi/types/files/RegularAnimatedSticker; public static final fun regularOrNull (Ldev/inmo/tgbotapi/requests/stickers/InputSticker;)Ldev/inmo/tgbotapi/requests/stickers/InputSticker$WithKeywords$Regular; @@ -2416,6 +2434,8 @@ public final class dev/inmo/tgbotapi/extensions/utils/ClassCastsNewKt { public static final fun switchInlineQueryCurrentChatInlineKeyboardButtonOrThrow (Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardButtons/InlineKeyboardButton;)Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardButtons/SwitchInlineQueryCurrentChatInlineKeyboardButton; public static final fun switchInlineQueryInlineKeyboardButtonOrNull (Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardButtons/InlineKeyboardButton;)Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardButtons/SwitchInlineQueryInlineKeyboardButton; public static final fun switchInlineQueryInlineKeyboardButtonOrThrow (Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardButtons/InlineKeyboardButton;)Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardButtons/SwitchInlineQueryInlineKeyboardButton; + public static final fun telegramFreeMediaOrNull (Ldev/inmo/tgbotapi/types/media/TelegramMedia;)Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia; + public static final fun telegramFreeMediaOrThrow (Ldev/inmo/tgbotapi/types/media/TelegramMedia;)Ldev/inmo/tgbotapi/types/media/TelegramFreeMedia; public static final fun telegramMediaAnimationOrNull (Ldev/inmo/tgbotapi/types/media/TelegramMedia;)Ldev/inmo/tgbotapi/types/media/TelegramMediaAnimation; public static final fun telegramMediaAnimationOrThrow (Ldev/inmo/tgbotapi/types/media/TelegramMedia;)Ldev/inmo/tgbotapi/types/media/TelegramMediaAnimation; public static final fun telegramMediaAudioOrNull (Ldev/inmo/tgbotapi/types/media/TelegramMedia;)Ldev/inmo/tgbotapi/types/media/TelegramMediaAudio; @@ -2426,6 +2446,12 @@ public final class dev/inmo/tgbotapi/extensions/utils/ClassCastsNewKt { public static final fun telegramMediaPhotoOrThrow (Ldev/inmo/tgbotapi/types/media/TelegramMedia;)Ldev/inmo/tgbotapi/types/media/TelegramMediaPhoto; public static final fun telegramMediaVideoOrNull (Ldev/inmo/tgbotapi/types/media/TelegramMedia;)Ldev/inmo/tgbotapi/types/media/TelegramMediaVideo; public static final fun telegramMediaVideoOrThrow (Ldev/inmo/tgbotapi/types/media/TelegramMedia;)Ldev/inmo/tgbotapi/types/media/TelegramMediaVideo; + public static final fun telegramPaidMediaOrNull (Ldev/inmo/tgbotapi/types/media/TelegramMedia;)Ldev/inmo/tgbotapi/types/media/TelegramPaidMedia; + public static final fun telegramPaidMediaOrThrow (Ldev/inmo/tgbotapi/types/media/TelegramMedia;)Ldev/inmo/tgbotapi/types/media/TelegramPaidMedia; + public static final fun telegramPaidMediaPhotoOrNull (Ldev/inmo/tgbotapi/types/media/TelegramMedia;)Ldev/inmo/tgbotapi/types/media/TelegramPaidMediaPhoto; + public static final fun telegramPaidMediaPhotoOrThrow (Ldev/inmo/tgbotapi/types/media/TelegramMedia;)Ldev/inmo/tgbotapi/types/media/TelegramPaidMediaPhoto; + public static final fun telegramPaidMediaVideoOrNull (Ldev/inmo/tgbotapi/types/media/TelegramMedia;)Ldev/inmo/tgbotapi/types/media/TelegramPaidMediaVideo; + public static final fun telegramPaidMediaVideoOrThrow (Ldev/inmo/tgbotapi/types/media/TelegramMedia;)Ldev/inmo/tgbotapi/types/media/TelegramPaidMediaVideo; public static final fun temporalRegistrationSecureValueOrNull (Ldev/inmo/tgbotapi/types/passport/decrypted/abstracts/SecureValue;)Ldev/inmo/tgbotapi/types/passport/decrypted/TemporalRegistrationSecureValue; public static final fun temporalRegistrationSecureValueOrThrow (Ldev/inmo/tgbotapi/types/passport/decrypted/abstracts/SecureValue;)Ldev/inmo/tgbotapi/types/passport/decrypted/TemporalRegistrationSecureValue; public static final fun temporaryRegistrationOrNull (Ldev/inmo/tgbotapi/types/passport/encrypted/abstracts/EncryptedPassportElement;)Ldev/inmo/tgbotapi/types/passport/encrypted/TemporaryRegistration; @@ -2520,6 +2546,8 @@ public final class dev/inmo/tgbotapi/extensions/utils/ClassCastsNewKt { public static final fun uploadVoiceActionOrThrow (Ldev/inmo/tgbotapi/types/actions/BotAction;)Ldev/inmo/tgbotapi/types/actions/UploadVoiceAction; public static final fun urlInlineQueryResultOrNull (Ldev/inmo/tgbotapi/types/InlineQueries/InlineQueryResult/abstracts/InlineQueryResult;)Ldev/inmo/tgbotapi/types/InlineQueries/InlineQueryResult/abstracts/UrlInlineQueryResult; public static final fun urlInlineQueryResultOrThrow (Ldev/inmo/tgbotapi/types/InlineQueries/InlineQueryResult/abstracts/InlineQueryResult;)Ldev/inmo/tgbotapi/types/InlineQueries/InlineQueryResult/abstracts/UrlInlineQueryResult; + public static final fun usefulAsPaidMediaFileOrNull (Ldev/inmo/tgbotapi/types/files/TelegramMediaFile;)Ldev/inmo/tgbotapi/types/files/UsefulAsPaidMediaFile; + public static final fun usefulAsPaidMediaFileOrThrow (Ldev/inmo/tgbotapi/types/files/TelegramMediaFile;)Ldev/inmo/tgbotapi/types/files/UsefulAsPaidMediaFile; public static final fun userLoggedInOrNull (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/message/ChatEvents/UserLoggedIn; public static final fun userLoggedInOrThrow (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/message/ChatEvents/UserLoggedIn; public static final fun userOrNull (Ldev/inmo/tgbotapi/types/chat/Chat;)Ldev/inmo/tgbotapi/types/chat/User; @@ -2564,6 +2592,8 @@ public final class dev/inmo/tgbotapi/extensions/utils/ClassCastsNewKt { public static final fun visualMediaGroupMemberTelegramMediaOrThrow (Ldev/inmo/tgbotapi/types/media/TelegramMedia;)Ldev/inmo/tgbotapi/types/media/VisualMediaGroupMemberTelegramMedia; public static final fun visualMediaGroupPartContentOrNull (Ldev/inmo/tgbotapi/types/message/content/ResendableContent;)Ldev/inmo/tgbotapi/types/message/content/VisualMediaGroupPartContent; public static final fun visualMediaGroupPartContentOrThrow (Ldev/inmo/tgbotapi/types/message/content/ResendableContent;)Ldev/inmo/tgbotapi/types/message/content/VisualMediaGroupPartContent; + public static final fun visualTelegramPaidMediaOrNull (Ldev/inmo/tgbotapi/types/media/TelegramMedia;)Ldev/inmo/tgbotapi/types/media/VisualTelegramPaidMedia; + public static final fun visualTelegramPaidMediaOrThrow (Ldev/inmo/tgbotapi/types/media/TelegramMedia;)Ldev/inmo/tgbotapi/types/media/VisualTelegramPaidMedia; public static final fun voiceContentOrNull (Ldev/inmo/tgbotapi/types/message/content/ResendableContent;)Ldev/inmo/tgbotapi/types/message/content/VoiceContent; public static final fun voiceContentOrThrow (Ldev/inmo/tgbotapi/types/message/content/ResendableContent;)Ldev/inmo/tgbotapi/types/message/content/VoiceContent; public static final fun voiceFileOrNull (Ldev/inmo/tgbotapi/types/files/TelegramMediaFile;)Ldev/inmo/tgbotapi/types/files/VoiceFile; @@ -3167,6 +3197,14 @@ public final class dev/inmo/tgbotapi/extensions/utils/shortcuts/EventsShortcutsK public static final fun proximityAlertTriggeredInGroupEvents (Lkotlinx/coroutines/flow/Flow;)Lkotlinx/coroutines/flow/Flow; public static final fun proximityAlertTriggeredInSupergroupEvents (Ldev/inmo/tgbotapi/updateshandlers/FlowsUpdatesFilter;)Lkotlinx/coroutines/flow/Flow; public static final fun proximityAlertTriggeredInSupergroupEvents (Lkotlinx/coroutines/flow/Flow;)Lkotlinx/coroutines/flow/Flow; + public static final fun refundedPaymentInChannelEvents (Ldev/inmo/tgbotapi/updateshandlers/FlowsUpdatesFilter;)Lkotlinx/coroutines/flow/Flow; + public static final fun refundedPaymentInChannelEvents (Lkotlinx/coroutines/flow/Flow;)Lkotlinx/coroutines/flow/Flow; + public static final fun refundedPaymentInGroupEvents (Ldev/inmo/tgbotapi/updateshandlers/FlowsUpdatesFilter;)Lkotlinx/coroutines/flow/Flow; + public static final fun refundedPaymentInGroupEvents (Lkotlinx/coroutines/flow/Flow;)Lkotlinx/coroutines/flow/Flow; + public static final fun refundedPaymentInPrivateEvents (Ldev/inmo/tgbotapi/updateshandlers/FlowsUpdatesFilter;)Lkotlinx/coroutines/flow/Flow; + public static final fun refundedPaymentInPrivateEvents (Lkotlinx/coroutines/flow/Flow;)Lkotlinx/coroutines/flow/Flow; + public static final fun refundedPaymentInSupergroupEvents (Ldev/inmo/tgbotapi/updateshandlers/FlowsUpdatesFilter;)Lkotlinx/coroutines/flow/Flow; + public static final fun refundedPaymentInSupergroupEvents (Lkotlinx/coroutines/flow/Flow;)Lkotlinx/coroutines/flow/Flow; public static final fun successfulPaymentInChannelEvents (Ldev/inmo/tgbotapi/updateshandlers/FlowsUpdatesFilter;)Lkotlinx/coroutines/flow/Flow; public static final fun successfulPaymentInChannelEvents (Lkotlinx/coroutines/flow/Flow;)Lkotlinx/coroutines/flow/Flow; public static final fun successfulPaymentInGroupEvents (Ldev/inmo/tgbotapi/updateshandlers/FlowsUpdatesFilter;)Lkotlinx/coroutines/flow/Flow; diff --git a/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/ClassCastsNew.kt b/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/ClassCastsNew.kt index ac52bfa613..e1059824f9 100644 --- a/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/ClassCastsNew.kt +++ b/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/ClassCastsNew.kt @@ -205,6 +205,7 @@ import dev.inmo.tgbotapi.types.files.Sticker import dev.inmo.tgbotapi.types.files.TelegramMediaFile import dev.inmo.tgbotapi.types.files.ThumbedMediaFile import dev.inmo.tgbotapi.types.files.UnknownSticker +import dev.inmo.tgbotapi.types.files.UsefulAsPaidMediaFile import dev.inmo.tgbotapi.types.files.VideoFile import dev.inmo.tgbotapi.types.files.VideoNoteFile import dev.inmo.tgbotapi.types.files.VideoSticker @@ -221,14 +222,19 @@ import dev.inmo.tgbotapi.types.media.MediaGroupMemberTelegramMedia import dev.inmo.tgbotapi.types.media.SizedTelegramMedia import dev.inmo.tgbotapi.types.media.SpoilerableTelegramMedia import dev.inmo.tgbotapi.types.media.TelegramFreeMedia +import dev.inmo.tgbotapi.types.media.TelegramMedia import dev.inmo.tgbotapi.types.media.TelegramMediaAnimation import dev.inmo.tgbotapi.types.media.TelegramMediaAudio import dev.inmo.tgbotapi.types.media.TelegramMediaDocument import dev.inmo.tgbotapi.types.media.TelegramMediaPhoto import dev.inmo.tgbotapi.types.media.TelegramMediaVideo +import dev.inmo.tgbotapi.types.media.TelegramPaidMedia +import dev.inmo.tgbotapi.types.media.TelegramPaidMediaPhoto +import dev.inmo.tgbotapi.types.media.TelegramPaidMediaVideo import dev.inmo.tgbotapi.types.media.ThumbedTelegramMedia import dev.inmo.tgbotapi.types.media.TitledTelegramMedia import dev.inmo.tgbotapi.types.media.VisualMediaGroupMemberTelegramMedia +import dev.inmo.tgbotapi.types.media.VisualTelegramPaidMedia import dev.inmo.tgbotapi.types.media.WithCustomizableCaptionTelegramMedia import dev.inmo.tgbotapi.types.message.ChannelEventMessage import dev.inmo.tgbotapi.types.message.ChatEvents.ChannelChatCreated @@ -324,6 +330,7 @@ import dev.inmo.tgbotapi.types.message.content.MediaGroupCollectionContent import dev.inmo.tgbotapi.types.message.content.MediaGroupContent import dev.inmo.tgbotapi.types.message.content.MediaGroupPartContent import dev.inmo.tgbotapi.types.message.content.MessageContent +import dev.inmo.tgbotapi.types.message.content.PaidMediaInfoContent import dev.inmo.tgbotapi.types.message.content.PhotoContent import dev.inmo.tgbotapi.types.message.content.PollContent import dev.inmo.tgbotapi.types.message.content.ResendableContent @@ -2708,13 +2715,13 @@ public inline fun TelegramMediaFile.pathedFileOrThrow(): PathedFile = this as public inline fun TelegramMediaFile.ifPathedFile(block: (PathedFile) -> T): T? = pathedFileOrNull() ?.let(block) -public inline fun TelegramMediaFile.photoOrNull(): PhotoFile? = this as? +public inline fun TelegramMediaFile.photoFileOrNull(): PhotoFile? = this as? dev.inmo.tgbotapi.types.files.PhotoFile -public inline fun TelegramMediaFile.photoOrThrow(): PhotoFile = this as +public inline fun TelegramMediaFile.photoFileOrThrow(): PhotoFile = this as dev.inmo.tgbotapi.types.files.PhotoFile -public inline fun TelegramMediaFile.ifPhoto(block: (PhotoFile) -> T): T? = photoOrNull() +public inline fun TelegramMediaFile.ifPhotoFile(block: (PhotoFile) -> T): T? = photoFileOrNull() ?.let(block) public inline fun TelegramMediaFile.photoSizeOrNull(): PhotoSize? = this as? @@ -2901,6 +2908,16 @@ public inline fun TelegramMediaFile.thumbedMediaFileOrThrow(): ThumbedMediaFile public inline fun TelegramMediaFile.ifThumbedMediaFile(block: (ThumbedMediaFile) -> T): T? = thumbedMediaFileOrNull() ?.let(block) +public inline fun TelegramMediaFile.usefulAsPaidMediaFileOrNull(): UsefulAsPaidMediaFile? = this as? + dev.inmo.tgbotapi.types.files.UsefulAsPaidMediaFile + +public inline fun TelegramMediaFile.usefulAsPaidMediaFileOrThrow(): UsefulAsPaidMediaFile = this as + dev.inmo.tgbotapi.types.files.UsefulAsPaidMediaFile + +public inline fun + TelegramMediaFile.ifUsefulAsPaidMediaFile(block: (UsefulAsPaidMediaFile) -> T): T? = + usefulAsPaidMediaFileOrNull() ?.let(block) + public inline fun TelegramMediaFile.videoFileOrNull(): VideoFile? = this as? dev.inmo.tgbotapi.types.files.VideoFile @@ -2946,155 +2963,201 @@ public inline fun Location.liveLocationOrThrow(): LiveLocation = this as public inline fun Location.ifLiveLocation(block: (LiveLocation) -> T): T? = liveLocationOrNull() ?.let(block) -public inline fun TelegramFreeMedia.duratedTelegramMediaOrNull(): DuratedTelegramMedia? = this as? +public inline fun TelegramMedia.duratedTelegramMediaOrNull(): DuratedTelegramMedia? = this as? dev.inmo.tgbotapi.types.media.DuratedTelegramMedia -public inline fun TelegramFreeMedia.duratedTelegramMediaOrThrow(): DuratedTelegramMedia = this as +public inline fun TelegramMedia.duratedTelegramMediaOrThrow(): DuratedTelegramMedia = this as dev.inmo.tgbotapi.types.media.DuratedTelegramMedia -public inline fun TelegramFreeMedia.ifDuratedTelegramMedia(block: (DuratedTelegramMedia) -> T): T? = +public inline fun TelegramMedia.ifDuratedTelegramMedia(block: (DuratedTelegramMedia) -> T): T? = duratedTelegramMediaOrNull() ?.let(block) -public inline fun TelegramFreeMedia.mediaGroupMemberTelegramMediaOrNull(): +public inline fun TelegramMedia.mediaGroupMemberTelegramMediaOrNull(): MediaGroupMemberTelegramMedia? = this as? dev.inmo.tgbotapi.types.media.MediaGroupMemberTelegramMedia -public inline fun TelegramFreeMedia.mediaGroupMemberTelegramMediaOrThrow(): +public inline fun TelegramMedia.mediaGroupMemberTelegramMediaOrThrow(): MediaGroupMemberTelegramMedia = this as dev.inmo.tgbotapi.types.media.MediaGroupMemberTelegramMedia public inline fun - TelegramFreeMedia.ifMediaGroupMemberTelegramMedia(block: (MediaGroupMemberTelegramMedia) -> T): T? = + TelegramMedia.ifMediaGroupMemberTelegramMedia(block: (MediaGroupMemberTelegramMedia) -> T): T? = mediaGroupMemberTelegramMediaOrNull() ?.let(block) -public inline fun TelegramFreeMedia.audioMediaGroupMemberTelegramMediaOrNull(): +public inline fun TelegramMedia.audioMediaGroupMemberTelegramMediaOrNull(): AudioMediaGroupMemberTelegramMedia? = this as? dev.inmo.tgbotapi.types.media.AudioMediaGroupMemberTelegramMedia -public inline fun TelegramFreeMedia.audioMediaGroupMemberTelegramMediaOrThrow(): +public inline fun TelegramMedia.audioMediaGroupMemberTelegramMediaOrThrow(): AudioMediaGroupMemberTelegramMedia = this as dev.inmo.tgbotapi.types.media.AudioMediaGroupMemberTelegramMedia public inline fun - TelegramFreeMedia.ifAudioMediaGroupMemberTelegramMedia(block: (AudioMediaGroupMemberTelegramMedia) -> T): + TelegramMedia.ifAudioMediaGroupMemberTelegramMedia(block: (AudioMediaGroupMemberTelegramMedia) -> T): T? = audioMediaGroupMemberTelegramMediaOrNull() ?.let(block) -public inline fun TelegramFreeMedia.documentMediaGroupMemberTelegramMediaOrNull(): +public inline fun TelegramMedia.documentMediaGroupMemberTelegramMediaOrNull(): DocumentMediaGroupMemberTelegramMedia? = this as? dev.inmo.tgbotapi.types.media.DocumentMediaGroupMemberTelegramMedia -public inline fun TelegramFreeMedia.documentMediaGroupMemberTelegramMediaOrThrow(): +public inline fun TelegramMedia.documentMediaGroupMemberTelegramMediaOrThrow(): DocumentMediaGroupMemberTelegramMedia = this as dev.inmo.tgbotapi.types.media.DocumentMediaGroupMemberTelegramMedia public inline fun - TelegramFreeMedia.ifDocumentMediaGroupMemberTelegramMedia(block: (DocumentMediaGroupMemberTelegramMedia) -> T): + TelegramMedia.ifDocumentMediaGroupMemberTelegramMedia(block: (DocumentMediaGroupMemberTelegramMedia) -> T): T? = documentMediaGroupMemberTelegramMediaOrNull() ?.let(block) -public inline fun TelegramFreeMedia.visualMediaGroupMemberTelegramMediaOrNull(): +public inline fun TelegramMedia.visualMediaGroupMemberTelegramMediaOrNull(): VisualMediaGroupMemberTelegramMedia? = this as? dev.inmo.tgbotapi.types.media.VisualMediaGroupMemberTelegramMedia -public inline fun TelegramFreeMedia.visualMediaGroupMemberTelegramMediaOrThrow(): +public inline fun TelegramMedia.visualMediaGroupMemberTelegramMediaOrThrow(): VisualMediaGroupMemberTelegramMedia = this as dev.inmo.tgbotapi.types.media.VisualMediaGroupMemberTelegramMedia public inline fun - TelegramFreeMedia.ifVisualMediaGroupMemberTelegramMedia(block: (VisualMediaGroupMemberTelegramMedia) -> T): + TelegramMedia.ifVisualMediaGroupMemberTelegramMedia(block: (VisualMediaGroupMemberTelegramMedia) -> T): T? = visualMediaGroupMemberTelegramMediaOrNull() ?.let(block) -public inline fun TelegramFreeMedia.sizedTelegramMediaOrNull(): SizedTelegramMedia? = this as? +public inline fun TelegramMedia.sizedTelegramMediaOrNull(): SizedTelegramMedia? = this as? dev.inmo.tgbotapi.types.media.SizedTelegramMedia -public inline fun TelegramFreeMedia.sizedTelegramMediaOrThrow(): SizedTelegramMedia = this as +public inline fun TelegramMedia.sizedTelegramMediaOrThrow(): SizedTelegramMedia = this as dev.inmo.tgbotapi.types.media.SizedTelegramMedia -public inline fun TelegramFreeMedia.ifSizedTelegramMedia(block: (SizedTelegramMedia) -> T): T? = +public inline fun TelegramMedia.ifSizedTelegramMedia(block: (SizedTelegramMedia) -> T): T? = sizedTelegramMediaOrNull() ?.let(block) -public inline fun TelegramFreeMedia.spoilerableTelegramMediaOrNull(): SpoilerableTelegramMedia? = this +public inline fun TelegramMedia.spoilerableTelegramMediaOrNull(): SpoilerableTelegramMedia? = this as? dev.inmo.tgbotapi.types.media.SpoilerableTelegramMedia -public inline fun TelegramFreeMedia.spoilerableTelegramMediaOrThrow(): SpoilerableTelegramMedia = this +public inline fun TelegramMedia.spoilerableTelegramMediaOrThrow(): SpoilerableTelegramMedia = this as dev.inmo.tgbotapi.types.media.SpoilerableTelegramMedia public inline fun - TelegramFreeMedia.ifSpoilerableTelegramMedia(block: (SpoilerableTelegramMedia) -> T): T? = + TelegramMedia.ifSpoilerableTelegramMedia(block: (SpoilerableTelegramMedia) -> T): T? = spoilerableTelegramMediaOrNull() ?.let(block) -public inline fun TelegramFreeMedia.telegramMediaAnimationOrNull(): TelegramMediaAnimation? = this as? +public inline fun TelegramMedia.telegramFreeMediaOrNull(): TelegramFreeMedia? = this as? + dev.inmo.tgbotapi.types.media.TelegramFreeMedia + +public inline fun TelegramMedia.telegramFreeMediaOrThrow(): TelegramFreeMedia = this as + dev.inmo.tgbotapi.types.media.TelegramFreeMedia + +public inline fun TelegramMedia.ifTelegramFreeMedia(block: (TelegramFreeMedia) -> T): T? = + telegramFreeMediaOrNull() ?.let(block) + +public inline fun TelegramMedia.telegramMediaAnimationOrNull(): TelegramMediaAnimation? = this as? dev.inmo.tgbotapi.types.media.TelegramMediaAnimation -public inline fun TelegramFreeMedia.telegramMediaAnimationOrThrow(): TelegramMediaAnimation = this as +public inline fun TelegramMedia.telegramMediaAnimationOrThrow(): TelegramMediaAnimation = this as dev.inmo.tgbotapi.types.media.TelegramMediaAnimation -public inline fun TelegramFreeMedia.ifTelegramMediaAnimation(block: (TelegramMediaAnimation) -> T): +public inline fun TelegramMedia.ifTelegramMediaAnimation(block: (TelegramMediaAnimation) -> T): T? = telegramMediaAnimationOrNull() ?.let(block) -public inline fun TelegramFreeMedia.telegramMediaAudioOrNull(): TelegramMediaAudio? = this as? +public inline fun TelegramMedia.telegramMediaAudioOrNull(): TelegramMediaAudio? = this as? dev.inmo.tgbotapi.types.media.TelegramMediaAudio -public inline fun TelegramFreeMedia.telegramMediaAudioOrThrow(): TelegramMediaAudio = this as +public inline fun TelegramMedia.telegramMediaAudioOrThrow(): TelegramMediaAudio = this as dev.inmo.tgbotapi.types.media.TelegramMediaAudio -public inline fun TelegramFreeMedia.ifTelegramMediaAudio(block: (TelegramMediaAudio) -> T): T? = +public inline fun TelegramMedia.ifTelegramMediaAudio(block: (TelegramMediaAudio) -> T): T? = telegramMediaAudioOrNull() ?.let(block) -public inline fun TelegramFreeMedia.telegramMediaDocumentOrNull(): TelegramMediaDocument? = this as? +public inline fun TelegramMedia.telegramMediaDocumentOrNull(): TelegramMediaDocument? = this as? dev.inmo.tgbotapi.types.media.TelegramMediaDocument -public inline fun TelegramFreeMedia.telegramMediaDocumentOrThrow(): TelegramMediaDocument = this as +public inline fun TelegramMedia.telegramMediaDocumentOrThrow(): TelegramMediaDocument = this as dev.inmo.tgbotapi.types.media.TelegramMediaDocument -public inline fun TelegramFreeMedia.ifTelegramMediaDocument(block: (TelegramMediaDocument) -> T): T? +public inline fun TelegramMedia.ifTelegramMediaDocument(block: (TelegramMediaDocument) -> T): T? = telegramMediaDocumentOrNull() ?.let(block) -public inline fun TelegramFreeMedia.telegramMediaPhotoOrNull(): TelegramMediaPhoto? = this as? +public inline fun TelegramMedia.telegramMediaPhotoOrNull(): TelegramMediaPhoto? = this as? dev.inmo.tgbotapi.types.media.TelegramMediaPhoto -public inline fun TelegramFreeMedia.telegramMediaPhotoOrThrow(): TelegramMediaPhoto = this as +public inline fun TelegramMedia.telegramMediaPhotoOrThrow(): TelegramMediaPhoto = this as dev.inmo.tgbotapi.types.media.TelegramMediaPhoto -public inline fun TelegramFreeMedia.ifTelegramMediaPhoto(block: (TelegramMediaPhoto) -> T): T? = +public inline fun TelegramMedia.ifTelegramMediaPhoto(block: (TelegramMediaPhoto) -> T): T? = telegramMediaPhotoOrNull() ?.let(block) -public inline fun TelegramFreeMedia.telegramMediaVideoOrNull(): TelegramMediaVideo? = this as? +public inline fun TelegramMedia.telegramMediaVideoOrNull(): TelegramMediaVideo? = this as? dev.inmo.tgbotapi.types.media.TelegramMediaVideo -public inline fun TelegramFreeMedia.telegramMediaVideoOrThrow(): TelegramMediaVideo = this as +public inline fun TelegramMedia.telegramMediaVideoOrThrow(): TelegramMediaVideo = this as dev.inmo.tgbotapi.types.media.TelegramMediaVideo -public inline fun TelegramFreeMedia.ifTelegramMediaVideo(block: (TelegramMediaVideo) -> T): T? = +public inline fun TelegramMedia.ifTelegramMediaVideo(block: (TelegramMediaVideo) -> T): T? = telegramMediaVideoOrNull() ?.let(block) -public inline fun TelegramFreeMedia.thumbedTelegramMediaOrNull(): ThumbedTelegramMedia? = this as? +public inline fun TelegramMedia.telegramPaidMediaOrNull(): TelegramPaidMedia? = this as? + dev.inmo.tgbotapi.types.media.TelegramPaidMedia + +public inline fun TelegramMedia.telegramPaidMediaOrThrow(): TelegramPaidMedia = this as + dev.inmo.tgbotapi.types.media.TelegramPaidMedia + +public inline fun TelegramMedia.ifTelegramPaidMedia(block: (TelegramPaidMedia) -> T): T? = + telegramPaidMediaOrNull() ?.let(block) + +public inline fun TelegramMedia.visualTelegramPaidMediaOrNull(): VisualTelegramPaidMedia? = this as? + dev.inmo.tgbotapi.types.media.VisualTelegramPaidMedia + +public inline fun TelegramMedia.visualTelegramPaidMediaOrThrow(): VisualTelegramPaidMedia = this as + dev.inmo.tgbotapi.types.media.VisualTelegramPaidMedia + +public inline fun + TelegramMedia.ifVisualTelegramPaidMedia(block: (VisualTelegramPaidMedia) -> T): T? = + visualTelegramPaidMediaOrNull() ?.let(block) + +public inline fun TelegramMedia.telegramPaidMediaPhotoOrNull(): TelegramPaidMediaPhoto? = this as? + dev.inmo.tgbotapi.types.media.TelegramPaidMediaPhoto + +public inline fun TelegramMedia.telegramPaidMediaPhotoOrThrow(): TelegramPaidMediaPhoto = this as + dev.inmo.tgbotapi.types.media.TelegramPaidMediaPhoto + +public inline fun TelegramMedia.ifTelegramPaidMediaPhoto(block: (TelegramPaidMediaPhoto) -> T): + T? = telegramPaidMediaPhotoOrNull() ?.let(block) + +public inline fun TelegramMedia.telegramPaidMediaVideoOrNull(): TelegramPaidMediaVideo? = this as? + dev.inmo.tgbotapi.types.media.TelegramPaidMediaVideo + +public inline fun TelegramMedia.telegramPaidMediaVideoOrThrow(): TelegramPaidMediaVideo = this as + dev.inmo.tgbotapi.types.media.TelegramPaidMediaVideo + +public inline fun TelegramMedia.ifTelegramPaidMediaVideo(block: (TelegramPaidMediaVideo) -> T): + T? = telegramPaidMediaVideoOrNull() ?.let(block) + +public inline fun TelegramMedia.thumbedTelegramMediaOrNull(): ThumbedTelegramMedia? = this as? dev.inmo.tgbotapi.types.media.ThumbedTelegramMedia -public inline fun TelegramFreeMedia.thumbedTelegramMediaOrThrow(): ThumbedTelegramMedia = this as +public inline fun TelegramMedia.thumbedTelegramMediaOrThrow(): ThumbedTelegramMedia = this as dev.inmo.tgbotapi.types.media.ThumbedTelegramMedia -public inline fun TelegramFreeMedia.ifThumbedTelegramMedia(block: (ThumbedTelegramMedia) -> T): T? = +public inline fun TelegramMedia.ifThumbedTelegramMedia(block: (ThumbedTelegramMedia) -> T): T? = thumbedTelegramMediaOrNull() ?.let(block) -public inline fun TelegramFreeMedia.titledTelegramMediaOrNull(): TitledTelegramMedia? = this as? +public inline fun TelegramMedia.titledTelegramMediaOrNull(): TitledTelegramMedia? = this as? dev.inmo.tgbotapi.types.media.TitledTelegramMedia -public inline fun TelegramFreeMedia.titledTelegramMediaOrThrow(): TitledTelegramMedia = this as +public inline fun TelegramMedia.titledTelegramMediaOrThrow(): TitledTelegramMedia = this as dev.inmo.tgbotapi.types.media.TitledTelegramMedia -public inline fun TelegramFreeMedia.ifTitledTelegramMedia(block: (TitledTelegramMedia) -> T): T? = +public inline fun TelegramMedia.ifTitledTelegramMedia(block: (TitledTelegramMedia) -> T): T? = titledTelegramMediaOrNull() ?.let(block) -public inline fun TelegramFreeMedia.withCustomizableCaptionTelegramMediaOrNull(): +public inline fun TelegramMedia.withCustomizableCaptionTelegramMediaOrNull(): WithCustomizableCaptionTelegramMedia? = this as? dev.inmo.tgbotapi.types.media.WithCustomizableCaptionTelegramMedia -public inline fun TelegramFreeMedia.withCustomizableCaptionTelegramMediaOrThrow(): +public inline fun TelegramMedia.withCustomizableCaptionTelegramMediaOrThrow(): WithCustomizableCaptionTelegramMedia = this as dev.inmo.tgbotapi.types.media.WithCustomizableCaptionTelegramMedia public inline fun - TelegramFreeMedia.ifWithCustomizableCaptionTelegramMedia(block: (WithCustomizableCaptionTelegramMedia) -> T): + TelegramMedia.ifWithCustomizableCaptionTelegramMedia(block: (WithCustomizableCaptionTelegramMedia) -> T): T? = withCustomizableCaptionTelegramMediaOrNull() ?.let(block) public inline fun ChatEvent.chatBackgroundOrNull(): ChatBackground? = this as? @@ -3433,15 +3496,6 @@ public inline fun ChatEvent.videoChatStartedOrThrow(): VideoChatStarted = this a public inline fun ChatEvent.ifVideoChatStarted(block: (VideoChatStarted) -> T): T? = videoChatStartedOrNull() ?.let(block) -public inline fun ChatEvent.successfulPaymentEventOrNull(): SuccessfulPaymentEvent? = this as? - dev.inmo.tgbotapi.types.message.payments.SuccessfulPaymentEvent - -public inline fun ChatEvent.successfulPaymentEventOrThrow(): SuccessfulPaymentEvent = this as - dev.inmo.tgbotapi.types.message.payments.SuccessfulPaymentEvent - -public inline fun ChatEvent.ifSuccessfulPaymentEvent(block: (SuccessfulPaymentEvent) -> T): T? = - successfulPaymentEventOrNull() ?.let(block) - public inline fun ChatEvent.refundedPaymentEventOrNull(): RefundedPaymentEvent? = this as? dev.inmo.tgbotapi.types.message.payments.RefundedPaymentEvent @@ -3451,6 +3505,15 @@ public inline fun ChatEvent.refundedPaymentEventOrThrow(): RefundedPaymentEvent public inline fun ChatEvent.ifRefundedPaymentEvent(block: (RefundedPaymentEvent) -> T): T? = refundedPaymentEventOrNull() ?.let(block) +public inline fun ChatEvent.successfulPaymentEventOrNull(): SuccessfulPaymentEvent? = this as? + dev.inmo.tgbotapi.types.message.payments.SuccessfulPaymentEvent + +public inline fun ChatEvent.successfulPaymentEventOrThrow(): SuccessfulPaymentEvent = this as + dev.inmo.tgbotapi.types.message.payments.SuccessfulPaymentEvent + +public inline fun ChatEvent.ifSuccessfulPaymentEvent(block: (SuccessfulPaymentEvent) -> T): T? = + successfulPaymentEventOrNull() ?.let(block) + public inline fun ChatEvent.chatSharedOrNull(): ChatShared? = this as? dev.inmo.tgbotapi.types.request.ChatShared @@ -4188,6 +4251,15 @@ public inline fun ResendableContent.ifMediaGroupContent(block: (MediaGroupContent) -> T): T? = mediaGroupContentOrNull() ?.let(block) +public inline fun ResendableContent.paidMediaInfoContentOrNull(): PaidMediaInfoContent? = this as? + dev.inmo.tgbotapi.types.message.content.PaidMediaInfoContent + +public inline fun ResendableContent.paidMediaInfoContentOrThrow(): PaidMediaInfoContent = this as + dev.inmo.tgbotapi.types.message.content.PaidMediaInfoContent + +public inline fun ResendableContent.ifPaidMediaInfoContent(block: (PaidMediaInfoContent) -> T): + T? = paidMediaInfoContentOrNull() ?.let(block) + public inline fun ResendableContent.photoContentOrNull(): PhotoContent? = this as? dev.inmo.tgbotapi.types.message.content.PhotoContent @@ -5139,6 +5211,15 @@ public inline fun StarTransaction.unknownOrThrow(): StarTransaction.Unknown = th public inline fun StarTransaction.ifUnknown(block: (StarTransaction.Unknown) -> T): T? = unknownOrNull() ?.let(block) +public inline fun TransactionPartner.adsOrNull(): TransactionPartner.Ads? = this as? + dev.inmo.tgbotapi.types.payments.stars.TransactionPartner.Ads + +public inline fun TransactionPartner.adsOrThrow(): TransactionPartner.Ads = this as + dev.inmo.tgbotapi.types.payments.stars.TransactionPartner.Ads + +public inline fun TransactionPartner.ifAds(block: (TransactionPartner.Ads) -> T): T? = + adsOrNull() ?.let(block) + public inline fun TransactionPartner.fragmentOrNull(): TransactionPartner.Fragment? = this as? dev.inmo.tgbotapi.types.payments.stars.TransactionPartner.Fragment From b27efd118ba5603b464355db169e86a269fc6369 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Tue, 9 Jul 2024 02:15:49 +0600 Subject: [PATCH 20/47] add paid media into reply info --- tgbotapi.core/api/tgbotapi.core.api | 2 +- .../src/commonMain/kotlin/dev/inmo/tgbotapi/types/ReplyInfo.kt | 2 ++ .../kotlin/dev/inmo/tgbotapi/types/files/PaidMediaInfo.kt | 3 ++- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/tgbotapi.core/api/tgbotapi.core.api b/tgbotapi.core/api/tgbotapi.core.api index e29a61defa..651670e91b 100644 --- a/tgbotapi.core/api/tgbotapi.core.api +++ b/tgbotapi.core/api/tgbotapi.core.api @@ -16738,7 +16738,7 @@ public abstract interface class dev/inmo/tgbotapi/types/files/MediaContentVarian public abstract interface class dev/inmo/tgbotapi/types/files/MimedMediaFile : dev/inmo/tgbotapi/abstracts/MimeTyped, dev/inmo/tgbotapi/types/files/TelegramMediaFile { } -public final class dev/inmo/tgbotapi/types/files/PaidMediaInfo { +public final class dev/inmo/tgbotapi/types/files/PaidMediaInfo : dev/inmo/tgbotapi/types/ReplyInfo$External$ContentVariant { public static final field Companion Ldev/inmo/tgbotapi/types/files/PaidMediaInfo$Companion; public fun (ILjava/util/List;)V public final fun component1 ()I diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/ReplyInfo.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/ReplyInfo.kt index fbef4dbbd8..6d796eb1cb 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/ReplyInfo.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/ReplyInfo.kt @@ -89,6 +89,7 @@ sealed interface ReplyInfo { private val story: Story? = null, private val audio: AudioFile? = null, private val document: DocumentFile? = null, + private val paid_media: PaidMediaInfo? = null, private val animation: AnimationFile? = null, private val game: RawGame? = null, @Serializable(PhotoSerializer::class) @@ -123,6 +124,7 @@ sealed interface ReplyInfo { video_note != null -> video_note animation != null -> animation document != null -> document + paid_media != null -> paid_media voice != null -> voice photo != null -> photo sticker != null -> sticker diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/files/PaidMediaInfo.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/files/PaidMediaInfo.kt index 87b7a92117..2c47a868f0 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/files/PaidMediaInfo.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/files/PaidMediaInfo.kt @@ -1,5 +1,6 @@ package dev.inmo.tgbotapi.types.files +import dev.inmo.tgbotapi.types.ReplyInfo import dev.inmo.tgbotapi.types.message.payments.PaidMedia import dev.inmo.tgbotapi.types.paidMediaField import dev.inmo.tgbotapi.types.starCountField @@ -12,4 +13,4 @@ data class PaidMediaInfo( val stars: Int, @SerialName(paidMediaField) val media: List -) \ No newline at end of file +) : ReplyInfo.External.ContentVariant From 83352dd284b124dcf7f95b7ebf7d8c5970b0f556 Mon Sep 17 00:00:00 2001 From: bpavuk Date: Tue, 9 Jul 2024 13:32:00 +0300 Subject: [PATCH 21/47] Bot API 7.6 removed @SerialName annotations from TransactionPartner.User data class fields --- .../inmo/tgbotapi/types/payments/stars/TransactionPartner.kt | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/payments/stars/TransactionPartner.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/payments/stars/TransactionPartner.kt index 86b8ac9948..0aa2b9dd5d 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/payments/stars/TransactionPartner.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/payments/stars/TransactionPartner.kt @@ -38,10 +38,8 @@ sealed interface TransactionPartner { @Serializable(TransactionPartner.Companion::class) data class User( - @SerialName(userField) val user: PreviewUser, - @SerialName(invoicePayloadField) - val invoicePayload: InvoicePayload? = null + val invoice_payload: InvoicePayload? = null ) : TransactionPartner { override val type: String get() = Companion.type From 3383bcaff3fe11c41a9d62a05da3e9da784d3fef Mon Sep 17 00:00:00 2001 From: bpavuk Date: Tue, 9 Jul 2024 13:52:53 +0300 Subject: [PATCH 22/47] Bot API 7.6 i am sleepyhead (: --- .../tgbotapi/types/payments/stars/TransactionPartner.kt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/payments/stars/TransactionPartner.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/payments/stars/TransactionPartner.kt index 0aa2b9dd5d..11c1e20722 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/payments/stars/TransactionPartner.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/payments/stars/TransactionPartner.kt @@ -38,8 +38,10 @@ sealed interface TransactionPartner { @Serializable(TransactionPartner.Companion::class) data class User( + @SerialName(userField) val user: PreviewUser, - val invoice_payload: InvoicePayload? = null + @SerialName(invoicePayloadField) + val invoicePayload: InvoicePayload? = null ) : TransactionPartner { override val type: String get() = Companion.type @@ -73,8 +75,7 @@ sealed interface TransactionPartner { val type: String, val withdrawal_state: RevenueWithdrawalState? = null, val user: PreviewUser? = null, - @SerialName(invoicePayloadField) - val invoicePayload: InvoicePayload? = null + val invoice_payload: InvoicePayload? = null ) override val descriptor: SerialDescriptor From 610ada505f16635e7285128ae123ca67c702dc56 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Tue, 9 Jul 2024 17:35:10 +0600 Subject: [PATCH 23/47] add notice about privacy handling --- .../behaviour_builder/BehaviourBuilders.kt | 5 +++++ .../kotlin/dev/inmo/tgbotapi/utils/DefaultKSLog.kt | 12 ++++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourBuilders.kt b/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourBuilders.kt index 1990b89eba..2681cbbe06 100644 --- a/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourBuilders.kt +++ b/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourBuilders.kt @@ -1,5 +1,6 @@ package dev.inmo.tgbotapi.extensions.behaviour_builder +import dev.inmo.kslog.common.e import dev.inmo.micro_utils.coroutines.ContextSafelyExceptionHandler import dev.inmo.micro_utils.coroutines.ExceptionHandler import dev.inmo.tgbotapi.bot.TelegramBot @@ -8,6 +9,7 @@ import dev.inmo.tgbotapi.extensions.utils.updates.retrieving.startGettingOfUpdat import dev.inmo.tgbotapi.extensions.utils.updates.retrieving.updateHandlerWithMediaGroupsAdaptation import dev.inmo.tgbotapi.types.Seconds import dev.inmo.tgbotapi.updateshandlers.FlowsUpdatesFilter +import dev.inmo.tgbotapi.utils.DefaultKTgBotAPIKSLog import kotlinx.coroutines.* /** @@ -70,6 +72,9 @@ suspend fun TelegramBot.buildBehaviourWithLongPolling( defaultExceptionsHandler = defaultExceptionsHandler, block = block ) + if (!behaviourContext.triggersHolder.handleableCommandsHolder.isHandled("privacy")) { + DefaultKTgBotAPIKSLog.e { "For some or bots there is no handling \"privacy\" command. According to https://telegram.org/tos/bot-developers#4-privacy it may lead to bot deactivation or removing" } + } return longPolling( behaviourContext, scope = behaviourContext, diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/utils/DefaultKSLog.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/utils/DefaultKSLog.kt index a7736691f3..8ac4a4baa7 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/utils/DefaultKSLog.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/utils/DefaultKSLog.kt @@ -1,11 +1,19 @@ package dev.inmo.tgbotapi.utils import dev.inmo.kslog.common.KSLog +import dev.inmo.kslog.common.LogLevel import dev.inmo.kslog.common.TagLogger +/** + * Default tag for [DefaultKTgBotAPIKSLog]. You may change it and tag will be changed since the near logging + */ +var DefaultKTgBotAPIKSLogSystemTag: String = "KTgBot" /** * Default realization of [KSLog] which will be used everywhere where there is no some custom variant of [KSLog] * - * By default, uses [TagLogger] with tag `KTgBot` (which in fact falling back to [KSLog.default] with `KTgBot` default tag) + * By default, uses [KSLog] factory with lambda and tag [DefaultKTgBotAPIKSLogSystemTag] (which in fact falling back to + * [KSLog.default] with `KTgBot` default tag) */ -var DefaultKTgBotAPIKSLog: KSLog = TagLogger("KTgBot") +var DefaultKTgBotAPIKSLog: KSLog = KSLog { level: LogLevel, tag: String?, message: Any, throwable: Throwable? -> + TagLogger(DefaultKTgBotAPIKSLogSystemTag).performLog(level, tag, message, throwable) +} From 8883a9ee5150bf8516ceea61f8b8744a267a4176 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Tue, 9 Jul 2024 22:59:46 +0600 Subject: [PATCH 24/47] fix of build --- tgbotapi.core/api/tgbotapi.core.api | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/tgbotapi.core/api/tgbotapi.core.api b/tgbotapi.core/api/tgbotapi.core.api index 651670e91b..f33e0ea0c5 100644 --- a/tgbotapi.core/api/tgbotapi.core.api +++ b/tgbotapi.core/api/tgbotapi.core.api @@ -24287,11 +24287,14 @@ public final class dev/inmo/tgbotapi/types/payments/stars/TransactionPartner$Unk public final class dev/inmo/tgbotapi/types/payments/stars/TransactionPartner$User : dev/inmo/tgbotapi/types/payments/stars/TransactionPartner { public static final field Companion Ldev/inmo/tgbotapi/types/payments/stars/TransactionPartner$User$Companion; public static final field type Ljava/lang/String; - public fun (Ldev/inmo/tgbotapi/types/chat/PreviewUser;)V + public fun (Ldev/inmo/tgbotapi/types/chat/PreviewUser;Ljava/lang/String;)V + public synthetic fun (Ldev/inmo/tgbotapi/types/chat/PreviewUser;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Ldev/inmo/tgbotapi/types/chat/PreviewUser; - public final fun copy (Ldev/inmo/tgbotapi/types/chat/PreviewUser;)Ldev/inmo/tgbotapi/types/payments/stars/TransactionPartner$User; - public static synthetic fun copy$default (Ldev/inmo/tgbotapi/types/payments/stars/TransactionPartner$User;Ldev/inmo/tgbotapi/types/chat/PreviewUser;ILjava/lang/Object;)Ldev/inmo/tgbotapi/types/payments/stars/TransactionPartner$User; + public final fun component2 ()Ljava/lang/String; + public final fun copy (Ldev/inmo/tgbotapi/types/chat/PreviewUser;Ljava/lang/String;)Ldev/inmo/tgbotapi/types/payments/stars/TransactionPartner$User; + public static synthetic fun copy$default (Ldev/inmo/tgbotapi/types/payments/stars/TransactionPartner$User;Ldev/inmo/tgbotapi/types/chat/PreviewUser;Ljava/lang/String;ILjava/lang/Object;)Ldev/inmo/tgbotapi/types/payments/stars/TransactionPartner$User; public fun equals (Ljava/lang/Object;)Z + public final fun getInvoicePayload ()Ljava/lang/String; public fun getType ()Ljava/lang/String; public final fun getUser ()Ldev/inmo/tgbotapi/types/chat/PreviewUser; public fun hashCode ()I @@ -26134,7 +26137,9 @@ public final class dev/inmo/tgbotapi/utils/ByteReadChannelAllocatorDeserializati public final class dev/inmo/tgbotapi/utils/DefaultKSLogKt { public static final fun getDefaultKTgBotAPIKSLog ()Ldev/inmo/kslog/common/KSLog; + public static final fun getDefaultKTgBotAPIKSLogSystemTag ()Ljava/lang/String; public static final fun setDefaultKTgBotAPIKSLog (Ldev/inmo/kslog/common/KSLog;)V + public static final fun setDefaultKTgBotAPIKSLogSystemTag (Ljava/lang/String;)V } public final class dev/inmo/tgbotapi/utils/EntitiesBuilder { From 91a5340b234ddf3f5439a88d4cf303c96c32758a Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Wed, 10 Jul 2024 16:31:33 +0600 Subject: [PATCH 25/47] make TelegramPaidMediaPhoto constructor public --- .../dev/inmo/tgbotapi/types/media/TelegramPaidMediaPhoto.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramPaidMediaPhoto.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramPaidMediaPhoto.kt index 3e7f843ad4..f35707e8ac 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramPaidMediaPhoto.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramPaidMediaPhoto.kt @@ -16,7 +16,7 @@ import kotlinx.serialization.* internal const val photoTelegramPaidMediaType = "photo" @Serializable -data class TelegramPaidMediaPhoto internal constructor( +data class TelegramPaidMediaPhoto ( override val file: InputFile, ) : VisualTelegramPaidMedia { override val type: String = photoTelegramPaidMediaType From 6f64ed1032603bae2f7a760914133ab59b142e5c Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Wed, 10 Jul 2024 16:36:48 +0600 Subject: [PATCH 26/47] update api dump --- tgbotapi.core/api/tgbotapi.core.api | 1 + 1 file changed, 1 insertion(+) diff --git a/tgbotapi.core/api/tgbotapi.core.api b/tgbotapi.core/api/tgbotapi.core.api index f33e0ea0c5..0db680840d 100644 --- a/tgbotapi.core/api/tgbotapi.core.api +++ b/tgbotapi.core/api/tgbotapi.core.api @@ -18172,6 +18172,7 @@ public final class dev/inmo/tgbotapi/types/media/TelegramPaidMedia$Companion { public final class dev/inmo/tgbotapi/types/media/TelegramPaidMediaPhoto : dev/inmo/tgbotapi/types/media/VisualTelegramPaidMedia { public static final field Companion Ldev/inmo/tgbotapi/types/media/TelegramPaidMediaPhoto$Companion; + public fun (Ldev/inmo/tgbotapi/requests/abstracts/InputFile;)V public final fun component1 ()Ldev/inmo/tgbotapi/requests/abstracts/InputFile; public final fun copy (Ldev/inmo/tgbotapi/requests/abstracts/InputFile;)Ldev/inmo/tgbotapi/types/media/TelegramPaidMediaPhoto; public static synthetic fun copy$default (Ldev/inmo/tgbotapi/types/media/TelegramPaidMediaPhoto;Ldev/inmo/tgbotapi/requests/abstracts/InputFile;ILjava/lang/Object;)Ldev/inmo/tgbotapi/types/media/TelegramPaidMediaPhoto; From fb1ff6e4fde3d83ad4f039b939f6708fc476a3d8 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Wed, 10 Jul 2024 16:53:16 +0600 Subject: [PATCH 27/47] fixes in send paid media --- tgbotapi.core/api/tgbotapi.core.api | 2 +- .../ktor/base/AbstractRequestCallFactory.kt | 1 + .../requests/send/media/SendPaidMedia.kt | 31 ++++++++++++++++--- .../types/media/TelegramPaidMediaVideo.kt | 2 +- 4 files changed, 30 insertions(+), 6 deletions(-) diff --git a/tgbotapi.core/api/tgbotapi.core.api b/tgbotapi.core/api/tgbotapi.core.api index 0db680840d..37fff023f2 100644 --- a/tgbotapi.core/api/tgbotapi.core.api +++ b/tgbotapi.core/api/tgbotapi.core.api @@ -18203,7 +18203,7 @@ public final class dev/inmo/tgbotapi/types/media/TelegramPaidMediaPhotoKt { public static final fun toTelegramPaidMediaPhoto (Ldev/inmo/tgbotapi/types/files/PhotoSize;)Ldev/inmo/tgbotapi/types/media/TelegramPaidMediaPhoto; } -public final class dev/inmo/tgbotapi/types/media/TelegramPaidMediaVideo : dev/inmo/tgbotapi/types/media/DuratedTelegramMedia, dev/inmo/tgbotapi/types/media/SizedTelegramMedia, dev/inmo/tgbotapi/types/media/TelegramPaidMedia, dev/inmo/tgbotapi/types/media/ThumbedTelegramMedia, dev/inmo/tgbotapi/types/media/VisualTelegramPaidMedia { +public final class dev/inmo/tgbotapi/types/media/TelegramPaidMediaVideo : dev/inmo/tgbotapi/types/media/DuratedTelegramMedia, dev/inmo/tgbotapi/types/media/SizedTelegramMedia, dev/inmo/tgbotapi/types/media/ThumbedTelegramMedia, dev/inmo/tgbotapi/types/media/VisualTelegramPaidMedia { public static final field Companion Ldev/inmo/tgbotapi/types/media/TelegramPaidMediaVideo$Companion; public fun (Ldev/inmo/tgbotapi/requests/abstracts/InputFile;Ldev/inmo/tgbotapi/requests/abstracts/InputFile;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Long;Z)V public synthetic fun (Ldev/inmo/tgbotapi/requests/abstracts/InputFile;Ldev/inmo/tgbotapi/requests/abstracts/InputFile;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Long;ZILkotlin/jvm/internal/DefaultConstructorMarker;)V diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/bot/ktor/base/AbstractRequestCallFactory.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/bot/ktor/base/AbstractRequestCallFactory.kt index 9a633f38a5..ee90d69256 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/bot/ktor/base/AbstractRequestCallFactory.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/bot/ktor/base/AbstractRequestCallFactory.kt @@ -15,6 +15,7 @@ import dev.inmo.tgbotapi.utils.TelegramAPIUrlsKeeper import io.ktor.client.HttpClient import io.ktor.client.plugins.timeout import io.ktor.client.request.* +import io.ktor.client.request.forms.* import io.ktor.client.statement.bodyAsText import io.ktor.http.ContentType import io.ktor.http.content.* diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendPaidMedia.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendPaidMedia.kt index 13582dd3d4..6933fcda9a 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendPaidMedia.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendPaidMedia.kt @@ -12,6 +12,7 @@ import dev.inmo.tgbotapi.types.message.textsources.TextSourcesList import dev.inmo.tgbotapi.types.message.ParseMode import dev.inmo.tgbotapi.types.message.parseModeField import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup +import dev.inmo.tgbotapi.types.media.ThumbedTelegramMedia import dev.inmo.tgbotapi.types.message.* import dev.inmo.tgbotapi.types.message.RawMessageEntity import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage @@ -51,10 +52,21 @@ fun SendPaidMedia( replyMarkup = replyMarkup ) - return if (media.any { it.file is MultipartFile }) { + val files: List = media.flatMap { + listOfNotNull( + it.file as? MultipartFile, + if (it is ThumbedTelegramMedia) { + it.thumb as? MultipartFile + } else { + null + } + ) + } + + return if (files.isNotEmpty()) { CommonMultipartFileRequest( data, - media.mapNotNull { it.media to (it.file as? MultipartFile ?: return@mapNotNull null) }.toMap() + files.associateBy { it.fileId } ) } else { data @@ -90,10 +102,21 @@ fun SendPaidMedia( replyMarkup = replyMarkup ) - return if (media.any { it.file is MultipartFile }) { + val files: List = media.flatMap { + listOfNotNull( + it.file as? MultipartFile, + if (it is ThumbedTelegramMedia) { + it.thumb as? MultipartFile + } else { + null + } + ) + } + + return if (files.isNotEmpty()) { CommonMultipartFileRequest( data, - media.mapNotNull { it.media to (it.file as? MultipartFile ?: return@mapNotNull null) }.toMap() + files.associateBy { it.fileId } ) } else { data diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramPaidMediaVideo.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramPaidMediaVideo.kt index 4968f9b21e..01c6f73a12 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramPaidMediaVideo.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/media/TelegramPaidMediaVideo.kt @@ -18,7 +18,7 @@ data class TelegramPaidMediaVideo ( override val duration: Long? = null, @SerialName(supportsStreamingField) val supportsStreaming: Boolean = false, -) : TelegramPaidMedia, SizedTelegramMedia, DuratedTelegramMedia, ThumbedTelegramMedia, VisualTelegramPaidMedia { +) : VisualTelegramPaidMedia, SizedTelegramMedia, DuratedTelegramMedia, ThumbedTelegramMedia { override val type: String = videoTelegramPaidMediaType @SerialName(mediaField) From a0fdebd13e72cacc3f0b036ae84cfcf4c3285c4c Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Wed, 10 Jul 2024 16:58:19 +0600 Subject: [PATCH 28/47] upgrade sends --- tgbotapi.api/api/tgbotapi.api.api | 4 ++ .../tgbotapi/extensions/api/send/Sends.kt | 38 +++++++++++++++++++ 2 files changed, 42 insertions(+) diff --git a/tgbotapi.api/api/tgbotapi.api.api b/tgbotapi.api/api/tgbotapi.api.api index 2cbec522fa..0f661a49cb 100644 --- a/tgbotapi.api/api/tgbotapi.api.api +++ b/tgbotapi.api/api/tgbotapi.api.api @@ -1720,6 +1720,10 @@ public final class dev/inmo/tgbotapi/extensions/api/send/SendsKt { public static synthetic fun send-SFtPMII$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ldev/inmo/tgbotapi/types/files/PhotoSize;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static synthetic fun send-SFtPMII$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ldev/inmo/tgbotapi/types/files/VideoFile;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static synthetic fun send-SFtPMII$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ldev/inmo/tgbotapi/types/location/Location;ILjava/lang/Float;Ljava/lang/Integer;Ljava/lang/Float;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun send-T1eFeO4 (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;ILjava/util/List;Ljava/util/List;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLdev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun send-T1eFeO4 (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;ILjava/util/List;Ljava/util/List;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLdev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun send-T1eFeO4$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;ILjava/util/List;Ljava/util/List;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLdev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static synthetic fun send-T1eFeO4$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;ILjava/util/List;Ljava/util/List;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLdev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun send-XnhO3bE (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ljava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static final fun send-XnhO3bE (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ljava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun send-XnhO3bE$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ljava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; diff --git a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/Sends.kt b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/Sends.kt index d200d9e132..eac023fe7a 100644 --- a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/Sends.kt +++ b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/Sends.kt @@ -780,6 +780,44 @@ suspend fun TelegramBot.send( replyMarkup: KeyboardMarkup? = null ) = sendPaidMedia(chatId, starCount, media, text, parseMode, showCaptionAboveMedia, threadId, businessConnectionId, disableNotification, protectContent, replyParameters, replyMarkup) +/** + * Will execute [sendPaidMedia] request + * @param replyMarkup Some of [KeyboardMarkup]. See [dev.inmo.tgbotapi.extensions.utils.types.buttons.replyKeyboard] or + * [dev.inmo.tgbotapi.extensions.utils.types.buttons.inlineKeyboard] as a builders for that param + */ +suspend fun TelegramBot.send( + chat: Chat, + starCount: Int, + media: List, + entities: TextSourcesList, + showCaptionAboveMedia: Boolean = false, + threadId: MessageThreadId? = chat.id.threadId, + businessConnectionId: BusinessConnectionId? = chat.id.businessConnectionId, + disableNotification: Boolean = false, + protectContent: Boolean = false, + replyParameters: ReplyParameters? = null, + replyMarkup: KeyboardMarkup? = null +) = sendPaidMedia(chat, starCount, media, entities, showCaptionAboveMedia, threadId, businessConnectionId, disableNotification, protectContent, replyParameters, replyMarkup) + +/** + * Will execute [sendPaidMedia] request + * @param replyMarkup Some of [KeyboardMarkup]. See [dev.inmo.tgbotapi.extensions.utils.types.buttons.replyKeyboard] or + * [dev.inmo.tgbotapi.extensions.utils.types.buttons.inlineKeyboard] as a builders for that param + */ +suspend fun TelegramBot.send( + chatId: ChatIdentifier, + starCount: Int, + media: List, + entities: TextSourcesList, + showCaptionAboveMedia: Boolean = false, + threadId: MessageThreadId? = chatId.threadId, + businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId, + disableNotification: Boolean = false, + protectContent: Boolean = false, + replyParameters: ReplyParameters? = null, + replyMarkup: KeyboardMarkup? = null +) = sendPaidMedia(chatId, starCount, media, entities, showCaptionAboveMedia, threadId, businessConnectionId, disableNotification, protectContent, replyParameters, replyMarkup) + /** * Will execute [sendPhoto] request * @param replyMarkup Some of [KeyboardMarkup]. See [dev.inmo.tgbotapi.extensions.utils.types.buttons.replyKeyboard] or From 45b99d85ff853c764e577b77e4cbad9d91618b7e Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Wed, 10 Jul 2024 17:21:15 +0600 Subject: [PATCH 29/47] add triggers/expectors for paid media info content --- .../api/tgbotapi.behaviour_builder.api | 6 +++++ .../expectations/WaitContent.kt | 5 ++++ .../expectations/WaitContentMessage.kt | 5 ++++ .../triggers_handling/ContentTriggers.kt | 27 +++++++++++++++++++ .../types/message/content/Typealiases.kt | 1 + 5 files changed, 44 insertions(+) diff --git a/tgbotapi.behaviour_builder/api/tgbotapi.behaviour_builder.api b/tgbotapi.behaviour_builder/api/tgbotapi.behaviour_builder.api index bf32c5647c..0f46679ae5 100644 --- a/tgbotapi.behaviour_builder/api/tgbotapi.behaviour_builder.api +++ b/tgbotapi.behaviour_builder/api/tgbotapi.behaviour_builder.api @@ -225,6 +225,8 @@ public final class dev/inmo/tgbotapi/extensions/behaviour_builder/expectations/W public static synthetic fun waitMedia$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun waitMediaContent (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun waitMediaContent$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun waitPaidMediaInfoContent (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun waitPaidMediaInfoContent$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun waitPhoto (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun waitPhoto$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun waitPoll (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; @@ -292,6 +294,8 @@ public final class dev/inmo/tgbotapi/extensions/behaviour_builder/expectations/W public static synthetic fun waitMediaContentMessage$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun waitMediaMessage (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun waitMediaMessage$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun waitPaidMediaInfoContentMessage (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun waitPaidMediaInfoContentMessage$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun waitPhotoMessage (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun waitPhotoMessage$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun waitPollMessage (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; @@ -926,6 +930,8 @@ public final class dev/inmo/tgbotapi/extensions/behaviour_builder/triggers_handl public static synthetic fun onMediaCollection$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/SimpleFilter;Lkotlin/jvm/functions/Function4;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/marker_factories/MarkerFactory;Lkotlin/jvm/functions/Function3;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun onMediaContent (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/SimpleFilter;Lkotlin/jvm/functions/Function4;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/marker_factories/MarkerFactory;Lkotlin/jvm/functions/Function3;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun onMediaContent$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/SimpleFilter;Lkotlin/jvm/functions/Function4;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/marker_factories/MarkerFactory;Lkotlin/jvm/functions/Function3;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun onPaidMediaInfoContent (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/SimpleFilter;Lkotlin/jvm/functions/Function4;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/marker_factories/MarkerFactory;Lkotlin/jvm/functions/Function3;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun onPaidMediaInfoContent$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/SimpleFilter;Lkotlin/jvm/functions/Function4;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/marker_factories/MarkerFactory;Lkotlin/jvm/functions/Function3;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun onPhoto (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/SimpleFilter;Lkotlin/jvm/functions/Function4;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/marker_factories/MarkerFactory;Lkotlin/jvm/functions/Function3;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun onPhoto$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/SimpleFilter;Lkotlin/jvm/functions/Function4;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/marker_factories/MarkerFactory;Lkotlin/jvm/functions/Function3;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun onPoll (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/SimpleFilter;Lkotlin/jvm/functions/Function4;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/marker_factories/MarkerFactory;Lkotlin/jvm/functions/Function3;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; diff --git a/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/expectations/WaitContent.kt b/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/expectations/WaitContent.kt index 4ec872744d..375dfd75a0 100644 --- a/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/expectations/WaitContent.kt +++ b/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/expectations/WaitContent.kt @@ -148,3 +148,8 @@ suspend fun BehaviourContext.waitGiveawayPublicResultsContent( initRequest: Request<*>? = null, errorFactory: NullableRequestBuilder<*> = { null } ) = waitContent(initRequest, errorFactory).mapContent() + +suspend fun BehaviourContext.waitPaidMediaInfoContent( + initRequest: Request<*>? = null, + errorFactory: NullableRequestBuilder<*> = { null } +) = waitContent(initRequest, errorFactory).mapContent() diff --git a/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/expectations/WaitContentMessage.kt b/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/expectations/WaitContentMessage.kt index 7d55775f0e..a132f56b9b 100644 --- a/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/expectations/WaitContentMessage.kt +++ b/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/expectations/WaitContentMessage.kt @@ -159,3 +159,8 @@ suspend fun BehaviourContext.waitGiveawayPublicResultsContentMessage( initRequest: Request<*>? = null, errorFactory: NullableRequestBuilder<*> = { null } ) = waitContentMessage(initRequest, errorFactory).mapWithContent() + +suspend fun BehaviourContext.waitPaidMediaInfoContentMessage( + initRequest: Request<*>? = null, + errorFactory: NullableRequestBuilder<*> = { null } +) = waitContentMessage(initRequest, errorFactory).mapWithContent() diff --git a/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/triggers_handling/ContentTriggers.kt b/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/triggers_handling/ContentTriggers.kt index 32a0d90bb6..4003ac6c99 100644 --- a/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/triggers_handling/ContentTriggers.kt +++ b/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/triggers_handling/ContentTriggers.kt @@ -783,3 +783,30 @@ suspend fun BC.onGiveawayPublicResultsContent( markerFactory, scenarioReceiver ) + + + +/** + * @param initialFilter This filter will be called to remove unnecessary data BEFORE [scenarioReceiver] call + * @param subcontextUpdatesFilter This filter will be applied to each update inside of [scenarioReceiver]. For example, + * this filter will be used if you will call [dev.inmo.tgbotapi.extensions.behaviour_builder.expectations.waitContentMessage]. + * Use [dev.inmo.tgbotapi.extensions.behaviour_builder.BehaviourContextAndTwoTypesReceiver] function to create your own. + * Use [dev.inmo.tgbotapi.extensions.behaviour_builder.utils.plus] or [dev.inmo.tgbotapi.extensions.behaviour_builder.utils.times] + * to combinate several filters + * @param [markerFactory] **Pass null to handle requests fully parallel**. Will be used to identify different "stream". + * [scenarioReceiver] will be called synchronously in one "stream". Output of [markerFactory] will be used as a key for + * "stream" + * @param scenarioReceiver Main callback which will be used to handle incoming data if [initialFilter] will pass that + * data + */ +suspend fun BC.onPaidMediaInfoContent( + initialFilter: CommonMessageFilter? = null, + subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver? = MessageFilterByChat, + markerFactory: MarkerFactory? = ByChatMessageMarkerFactory, + scenarioReceiver: CustomBehaviourContextAndTypeReceiver +) = onContentMessageWithType( + initialFilter, + subcontextUpdatesFilter, + markerFactory, + scenarioReceiver +) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/Typealiases.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/Typealiases.kt index 7d92ddff43..548291cd5c 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/Typealiases.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/Typealiases.kt @@ -34,5 +34,6 @@ typealias PhotoMessage = CommonMessage typealias AnimationMessage = CommonMessage typealias ScheduledGiveawayContentMessage = CommonMessage typealias GiveawayPublicResultsContentMessage = CommonMessage +typealias PaidMediaInfoContentMessage = CommonMessage From 05341be534369d58cc1a48b2c74f8ae91793ad51 Mon Sep 17 00:00:00 2001 From: bpavuk Date: Wed, 10 Jul 2024 15:33:14 +0300 Subject: [PATCH 30/47] Implemented paid media reply extension --- .../api/send/RepliesWithChatsAndMessages.kt | 43 +++++++++++++++++++ .../payments/PaidMediaToTelegramPaidMedia.kt | 25 +++++++++++ 2 files changed, 68 insertions(+) create mode 100644 tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/payments/PaidMediaToTelegramPaidMedia.kt diff --git a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/RepliesWithChatsAndMessages.kt b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/RepliesWithChatsAndMessages.kt index 78a5205637..af5874b388 100644 --- a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/RepliesWithChatsAndMessages.kt +++ b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/RepliesWithChatsAndMessages.kt @@ -26,6 +26,9 @@ import dev.inmo.tgbotapi.types.games.Game import dev.inmo.tgbotapi.types.location.* import dev.inmo.tgbotapi.types.message.abstracts.AccessibleMessage import dev.inmo.tgbotapi.types.message.content.* +import dev.inmo.tgbotapi.types.message.payments.PaidMedia +import dev.inmo.tgbotapi.types.message.payments.toTelegramMediaPhoto +import dev.inmo.tgbotapi.types.message.payments.toTelegramPaidMediaVideo import dev.inmo.tgbotapi.types.payments.LabeledPrice import dev.inmo.tgbotapi.types.payments.abstracts.Currency import dev.inmo.tgbotapi.types.polls.* @@ -2045,3 +2048,43 @@ suspend fun TelegramBot.reply( ) } } + +suspend fun TelegramBot.reply( + toChatId: IdChatIdentifier, + toMessageId: MessageId, + content: PaidMediaInfoContent, + replyInChatId: IdChatIdentifier = toChatId, + replyInThreadId: MessageThreadId? = replyInChatId.threadId, + replyInBusinessConnectionId: BusinessConnectionId? = replyInChatId.businessConnectionId, + disableNotification: Boolean = false, + protectContent: Boolean = false, + allowSendingWithoutReply: Boolean? = null, + parseMode: ParseMode? = null, + replyMarkup: KeyboardMarkup? = null +) { + val media = content.paidMediaInfo.media.mapNotNull { + when (it) { + is PaidMedia.Video -> it.toTelegramPaidMediaVideo() + is PaidMedia.Photo -> it.toTelegramMediaPhoto() + is PaidMedia.Preview, is PaidMedia.Unknown -> null + } + } + sendPaidMedia( + chatId = replyInChatId, + starCount = content.paidMediaInfo.stars, + media = media, + text = content.text, + parseMode = parseMode, + showCaptionAboveMedia = content.showCaptionAboveMedia, + threadId = replyInThreadId, + businessConnectionId = replyInBusinessConnectionId, + disableNotification = disableNotification, + protectContent = protectContent, + replyMarkup = replyMarkup, + replyParameters = ReplyParameters( + messageId = toMessageId, + chatIdentifier = toChatId, + allowSendingWithoutReply = allowSendingWithoutReply + ) + ) +} diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/payments/PaidMediaToTelegramPaidMedia.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/payments/PaidMediaToTelegramPaidMedia.kt new file mode 100644 index 0000000000..84be904eb6 --- /dev/null +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/payments/PaidMediaToTelegramPaidMedia.kt @@ -0,0 +1,25 @@ +package dev.inmo.tgbotapi.types.message.payments + +import dev.inmo.tgbotapi.types.media.TelegramMediaPhoto +import dev.inmo.tgbotapi.types.media.TelegramPaidMedia +import dev.inmo.tgbotapi.types.media.TelegramPaidMediaPhoto +import dev.inmo.tgbotapi.types.media.TelegramPaidMediaVideo + +fun PaidMedia.toTelegramPaidMedia(): TelegramPaidMedia? = when (this) { + is PaidMedia.Photo -> TelegramPaidMediaPhoto( + file = this.photo.biggest.fileId + ) + is PaidMedia.Video -> TelegramPaidMediaPhoto( + file = this.video.fileId + ) + is PaidMedia.Preview, is PaidMedia.Unknown -> null +} + +fun PaidMedia.Video.toTelegramPaidMediaVideo(): TelegramPaidMediaVideo = TelegramPaidMediaVideo( + file = this.video.fileId, + duration = this.video.duration + ) + +fun PaidMedia.Photo.toTelegramMediaPhoto(): TelegramPaidMediaPhoto = TelegramPaidMediaPhoto( + file = this.photo.fileId +) From f89849218ad0922764ff045c42166ce64bb6aae6 Mon Sep 17 00:00:00 2001 From: bpavuk Date: Wed, 10 Jul 2024 16:39:52 +0300 Subject: [PATCH 31/47] Added `to: AccessibleMessage` overload --- .../api/send/RepliesWithChatsAndMessages.kt | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/RepliesWithChatsAndMessages.kt b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/RepliesWithChatsAndMessages.kt index af5874b388..8284cc65ec 100644 --- a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/RepliesWithChatsAndMessages.kt +++ b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/RepliesWithChatsAndMessages.kt @@ -2049,6 +2049,45 @@ suspend fun TelegramBot.reply( } } +suspend fun TelegramBot.reply( + to: AccessibleMessage, + content: PaidMediaInfoContent, + replyInChatId: IdChatIdentifier = to.chat.id, + replyInThreadId: MessageThreadId? = replyInChatId.threadId, + replyInBusinessConnectionId: BusinessConnectionId? = replyInChatId.businessConnectionId, + disableNotification: Boolean = false, + protectContent: Boolean = false, + allowSendingWithoutReply: Boolean? = null, + parseMode: ParseMode? = null, + replyMarkup: KeyboardMarkup? = null +) { + val media = content.paidMediaInfo.media.mapNotNull { + when (it) { + is PaidMedia.Video -> it.toTelegramPaidMediaVideo() + is PaidMedia.Photo -> it.toTelegramMediaPhoto() + is PaidMedia.Preview, is PaidMedia.Unknown -> null + } + } + sendPaidMedia( + chatId = replyInChatId, + starCount = content.paidMediaInfo.stars, + media = media, + text = content.text, + parseMode = parseMode, + showCaptionAboveMedia = content.showCaptionAboveMedia, + threadId = replyInThreadId, + businessConnectionId = replyInBusinessConnectionId, + disableNotification = disableNotification, + protectContent = protectContent, + replyMarkup = replyMarkup, + replyParameters = ReplyParameters( + messageId = to.messageId, + chatIdentifier = to.chat.id, + allowSendingWithoutReply = allowSendingWithoutReply + ) + ) +} + suspend fun TelegramBot.reply( toChatId: IdChatIdentifier, toMessageId: MessageId, @@ -2088,3 +2127,4 @@ suspend fun TelegramBot.reply( ) ) } + From 613f6de483342c9927e9e7677471ab822ffa7d23 Mon Sep 17 00:00:00 2001 From: bpavuk Date: Wed, 10 Jul 2024 16:53:18 +0300 Subject: [PATCH 32/47] Renamed extension function to reflect its functionality --- .../types/message/payments/PaidMediaToTelegramPaidMedia.kt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/payments/PaidMediaToTelegramPaidMedia.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/payments/PaidMediaToTelegramPaidMedia.kt index 84be904eb6..df1cd4d90a 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/payments/PaidMediaToTelegramPaidMedia.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/payments/PaidMediaToTelegramPaidMedia.kt @@ -1,11 +1,10 @@ package dev.inmo.tgbotapi.types.message.payments -import dev.inmo.tgbotapi.types.media.TelegramMediaPhoto import dev.inmo.tgbotapi.types.media.TelegramPaidMedia import dev.inmo.tgbotapi.types.media.TelegramPaidMediaPhoto import dev.inmo.tgbotapi.types.media.TelegramPaidMediaVideo -fun PaidMedia.toTelegramPaidMedia(): TelegramPaidMedia? = when (this) { +fun PaidMedia.toTelegramPaidMediaOrNull(): TelegramPaidMedia? = when (this) { is PaidMedia.Photo -> TelegramPaidMediaPhoto( file = this.photo.biggest.fileId ) From 32db4a19d2a372ff737fdb863618b8ededf2683d Mon Sep 17 00:00:00 2001 From: bpavuk Date: Wed, 10 Jul 2024 16:54:26 +0300 Subject: [PATCH 33/47] Moved to-overload to intended place --- .../tgbotapi/extensions/api/send/Replies.kt | 32 +++++++++++++++ .../api/send/RepliesWithChatsAndMessages.kt | 39 ------------------- 2 files changed, 32 insertions(+), 39 deletions(-) diff --git a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/Replies.kt b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/Replies.kt index fc3b589fdb..8d460942c9 100644 --- a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/Replies.kt +++ b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/Replies.kt @@ -2234,3 +2234,35 @@ suspend fun TelegramBot.reply( ) } } + +suspend fun TelegramBot.reply( + to: AccessibleMessage, + starCount: Int, + media: List, + entities: TextSourcesList, + showCaptionAboveMedia: Boolean = false, + threadId: MessageThreadId? = to.chat.id.threadId, + businessConnectionId: BusinessConnectionId? = to.chat.id.businessConnectionId, + disableNotification: Boolean = false, + protectContent: Boolean = false, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null +) { + sendPaidMedia( + chatId = to.chat.id, + starCount = starCount, + media = media, + entities = entities, + showCaptionAboveMedia = showCaptionAboveMedia, + threadId = threadId, + businessConnectionId = businessConnectionId, + disableNotification = disableNotification, + protectContent = protectContent, + replyMarkup = replyMarkup, + replyParameters = ReplyParameters( + messageId = to.messageId, + chatIdentifier = to.chat.id, + allowSendingWithoutReply = allowSendingWithoutReply + ) + ) +} \ No newline at end of file diff --git a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/RepliesWithChatsAndMessages.kt b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/RepliesWithChatsAndMessages.kt index 8284cc65ec..5b8dc824e2 100644 --- a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/RepliesWithChatsAndMessages.kt +++ b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/RepliesWithChatsAndMessages.kt @@ -2049,45 +2049,6 @@ suspend fun TelegramBot.reply( } } -suspend fun TelegramBot.reply( - to: AccessibleMessage, - content: PaidMediaInfoContent, - replyInChatId: IdChatIdentifier = to.chat.id, - replyInThreadId: MessageThreadId? = replyInChatId.threadId, - replyInBusinessConnectionId: BusinessConnectionId? = replyInChatId.businessConnectionId, - disableNotification: Boolean = false, - protectContent: Boolean = false, - allowSendingWithoutReply: Boolean? = null, - parseMode: ParseMode? = null, - replyMarkup: KeyboardMarkup? = null -) { - val media = content.paidMediaInfo.media.mapNotNull { - when (it) { - is PaidMedia.Video -> it.toTelegramPaidMediaVideo() - is PaidMedia.Photo -> it.toTelegramMediaPhoto() - is PaidMedia.Preview, is PaidMedia.Unknown -> null - } - } - sendPaidMedia( - chatId = replyInChatId, - starCount = content.paidMediaInfo.stars, - media = media, - text = content.text, - parseMode = parseMode, - showCaptionAboveMedia = content.showCaptionAboveMedia, - threadId = replyInThreadId, - businessConnectionId = replyInBusinessConnectionId, - disableNotification = disableNotification, - protectContent = protectContent, - replyMarkup = replyMarkup, - replyParameters = ReplyParameters( - messageId = to.messageId, - chatIdentifier = to.chat.id, - allowSendingWithoutReply = allowSendingWithoutReply - ) - ) -} - suspend fun TelegramBot.reply( toChatId: IdChatIdentifier, toMessageId: MessageId, From f2fae9184f2bbab5e5fa55044b6eb28d08976b1c Mon Sep 17 00:00:00 2001 From: bpavuk Date: Wed, 10 Jul 2024 16:55:24 +0300 Subject: [PATCH 34/47] Fixed wrongly specified parameters --- .../api/send/RepliesWithChatsAndMessages.kt | 32 +++++++------------ 1 file changed, 12 insertions(+), 20 deletions(-) diff --git a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/RepliesWithChatsAndMessages.kt b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/RepliesWithChatsAndMessages.kt index 5b8dc824e2..05cabac9f6 100644 --- a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/RepliesWithChatsAndMessages.kt +++ b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/RepliesWithChatsAndMessages.kt @@ -2052,32 +2052,25 @@ suspend fun TelegramBot.reply( suspend fun TelegramBot.reply( toChatId: IdChatIdentifier, toMessageId: MessageId, - content: PaidMediaInfoContent, - replyInChatId: IdChatIdentifier = toChatId, - replyInThreadId: MessageThreadId? = replyInChatId.threadId, - replyInBusinessConnectionId: BusinessConnectionId? = replyInChatId.businessConnectionId, + starCount: Int, + media: List, + entities: TextSourcesList, + showCaptionAboveMedia: Boolean = false, + threadId: MessageThreadId? = toChatId.threadId, + businessConnectionId: BusinessConnectionId? = toChatId.businessConnectionId, disableNotification: Boolean = false, protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null, - parseMode: ParseMode? = null, replyMarkup: KeyboardMarkup? = null ) { - val media = content.paidMediaInfo.media.mapNotNull { - when (it) { - is PaidMedia.Video -> it.toTelegramPaidMediaVideo() - is PaidMedia.Photo -> it.toTelegramMediaPhoto() - is PaidMedia.Preview, is PaidMedia.Unknown -> null - } - } sendPaidMedia( - chatId = replyInChatId, - starCount = content.paidMediaInfo.stars, + chatId = toChatId, + starCount = starCount, media = media, - text = content.text, - parseMode = parseMode, - showCaptionAboveMedia = content.showCaptionAboveMedia, - threadId = replyInThreadId, - businessConnectionId = replyInBusinessConnectionId, + entities = entities, + showCaptionAboveMedia = showCaptionAboveMedia, + threadId = threadId, + businessConnectionId = businessConnectionId, disableNotification = disableNotification, protectContent = protectContent, replyMarkup = replyMarkup, @@ -2088,4 +2081,3 @@ suspend fun TelegramBot.reply( ) ) } - From 26b864a314cd457328c701600570f882e67eba02 Mon Sep 17 00:00:00 2001 From: bpavuk Date: Wed, 10 Jul 2024 18:31:08 +0300 Subject: [PATCH 35/47] updated PaidMedia.Video.toTelegramPaidMediaVideo() converter function --- .../types/message/payments/PaidMediaToTelegramPaidMedia.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/payments/PaidMediaToTelegramPaidMedia.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/payments/PaidMediaToTelegramPaidMedia.kt index df1cd4d90a..f9222f6af9 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/payments/PaidMediaToTelegramPaidMedia.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/payments/PaidMediaToTelegramPaidMedia.kt @@ -16,7 +16,10 @@ fun PaidMedia.toTelegramPaidMediaOrNull(): TelegramPaidMedia? = when (this) { fun PaidMedia.Video.toTelegramPaidMediaVideo(): TelegramPaidMediaVideo = TelegramPaidMediaVideo( file = this.video.fileId, - duration = this.video.duration + duration = this.video.duration, + width = this.video.width, + height = this.video.height, + thumb = this.video.thumbnail?.fileId ) fun PaidMedia.Photo.toTelegramMediaPhoto(): TelegramPaidMediaPhoto = TelegramPaidMediaPhoto( From 982b401b28578d858a0a314e82c73cbd2e70b856 Mon Sep 17 00:00:00 2001 From: bpavuk Date: Wed, 10 Jul 2024 18:34:43 +0300 Subject: [PATCH 36/47] Added overloads with text and custom parsing mode instead of entities --- .../tgbotapi/extensions/api/send/Replies.kt | 34 ++++++++++++++++++ .../api/send/RepliesWithChatsAndMessages.kt | 35 +++++++++++++++++++ 2 files changed, 69 insertions(+) diff --git a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/Replies.kt b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/Replies.kt index 8d460942c9..a35f8bbeff 100644 --- a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/Replies.kt +++ b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/Replies.kt @@ -2265,4 +2265,38 @@ suspend fun TelegramBot.reply( allowSendingWithoutReply = allowSendingWithoutReply ) ) +} + +suspend fun TelegramBot.reply( + to: AccessibleMessage, + starCount: Int, + media: List, + text: String? = null, + parseMode: ParseMode? = null, + showCaptionAboveMedia: Boolean = false, + threadId: MessageThreadId? = to.chat.id.threadId, + businessConnectionId: BusinessConnectionId? = to.chat.id.businessConnectionId, + disableNotification: Boolean = false, + protectContent: Boolean = false, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null +) { + sendPaidMedia( + chatId = to.chat.id, + starCount = starCount, + media = media, + text = text, + parseMode = parseMode, + showCaptionAboveMedia = showCaptionAboveMedia, + threadId = threadId, + businessConnectionId = businessConnectionId, + disableNotification = disableNotification, + protectContent = protectContent, + replyMarkup = replyMarkup, + replyParameters = ReplyParameters( + messageId = to.messageId, + chatIdentifier = to.chat.id, + allowSendingWithoutReply = allowSendingWithoutReply + ) + ) } \ No newline at end of file diff --git a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/RepliesWithChatsAndMessages.kt b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/RepliesWithChatsAndMessages.kt index 05cabac9f6..b2b17673eb 100644 --- a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/RepliesWithChatsAndMessages.kt +++ b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/RepliesWithChatsAndMessages.kt @@ -2081,3 +2081,38 @@ suspend fun TelegramBot.reply( ) ) } + +suspend fun TelegramBot.reply( + toChatId: IdChatIdentifier, + toMessageId: MessageId, + starCount: Int, + media: List, + text: String? = null, + parseMode: ParseMode? = null, + showCaptionAboveMedia: Boolean = false, + threadId: MessageThreadId? = toChatId.threadId, + businessConnectionId: BusinessConnectionId? = toChatId.businessConnectionId, + disableNotification: Boolean = false, + protectContent: Boolean = false, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null +) { + sendPaidMedia( + chatId = toChatId, + starCount = starCount, + media = media, + text = text, + parseMode = parseMode, + showCaptionAboveMedia = showCaptionAboveMedia, + threadId = threadId, + businessConnectionId = businessConnectionId, + disableNotification = disableNotification, + protectContent = protectContent, + replyMarkup = replyMarkup, + replyParameters = ReplyParameters( + messageId = toMessageId, + chatIdentifier = toChatId, + allowSendingWithoutReply = allowSendingWithoutReply + ) + ) +} From 9fa17c1360d020e0e4fcade68a9f291beeac4eb3 Mon Sep 17 00:00:00 2001 From: bpavuk Date: Wed, 10 Jul 2024 18:54:30 +0300 Subject: [PATCH 37/47] Reused existing code in converters --- .../payments/PaidMediaToTelegramPaidMedia.kt | 24 ++++--------------- 1 file changed, 5 insertions(+), 19 deletions(-) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/payments/PaidMediaToTelegramPaidMedia.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/payments/PaidMediaToTelegramPaidMedia.kt index f9222f6af9..fe35555b2f 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/payments/PaidMediaToTelegramPaidMedia.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/payments/PaidMediaToTelegramPaidMedia.kt @@ -1,27 +1,13 @@ package dev.inmo.tgbotapi.types.message.payments -import dev.inmo.tgbotapi.types.media.TelegramPaidMedia -import dev.inmo.tgbotapi.types.media.TelegramPaidMediaPhoto -import dev.inmo.tgbotapi.types.media.TelegramPaidMediaVideo +import dev.inmo.tgbotapi.types.media.* fun PaidMedia.toTelegramPaidMediaOrNull(): TelegramPaidMedia? = when (this) { - is PaidMedia.Photo -> TelegramPaidMediaPhoto( - file = this.photo.biggest.fileId - ) - is PaidMedia.Video -> TelegramPaidMediaPhoto( - file = this.video.fileId - ) + is PaidMedia.Photo -> toTelegramMediaPhoto() + is PaidMedia.Video -> toTelegramPaidMediaVideo() is PaidMedia.Preview, is PaidMedia.Unknown -> null } -fun PaidMedia.Video.toTelegramPaidMediaVideo(): TelegramPaidMediaVideo = TelegramPaidMediaVideo( - file = this.video.fileId, - duration = this.video.duration, - width = this.video.width, - height = this.video.height, - thumb = this.video.thumbnail?.fileId - ) +fun PaidMedia.Video.toTelegramPaidMediaVideo(): TelegramPaidMediaVideo = this.video.toTelegramPaidMediaVideo() -fun PaidMedia.Photo.toTelegramMediaPhoto(): TelegramPaidMediaPhoto = TelegramPaidMediaPhoto( - file = this.photo.fileId -) +fun PaidMedia.Photo.toTelegramMediaPhoto(): TelegramPaidMediaPhoto = this.photo.biggest.toTelegramPaidMediaPhoto() From fc6c1da3e0c54dc01b9e217384adda5353bf3393 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Wed, 10 Jul 2024 22:16:09 +0600 Subject: [PATCH 38/47] update jvm api dump --- tgbotapi.api/api/tgbotapi.api.api | 8 ++++++++ tgbotapi.core/api/tgbotapi.core.api | 6 ++++++ 2 files changed, 14 insertions(+) diff --git a/tgbotapi.api/api/tgbotapi.api.api b/tgbotapi.api/api/tgbotapi.api.api index 0f661a49cb..5d4dedc9f0 100644 --- a/tgbotapi.api/api/tgbotapi.api.api +++ b/tgbotapi.api/api/tgbotapi.api.api @@ -1160,6 +1160,8 @@ public final class dev/inmo/tgbotapi/extensions/api/send/RepliesKt { public static synthetic fun reply-SFtPMII$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/files/AudioFile;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;Ljava/lang/String;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static synthetic fun reply-SFtPMII$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/files/PhotoSize;Ljava/util/List;ZZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static synthetic fun reply-SFtPMII$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/files/VideoFile;Ljava/util/List;ZZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun reply-T1eFeO4 (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;ILjava/util/List;Ljava/util/List;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun reply-T1eFeO4$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;ILjava/util/List;Ljava/util/List;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun reply-XnhO3bE (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ljava/util/List;Ljava/util/List;ZZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun reply-XnhO3bE$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ljava/util/List;Ljava/util/List;ZZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun reply-XtSywpo (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/files/PhotoSize;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; @@ -1220,6 +1222,8 @@ public final class dev/inmo/tgbotapi/extensions/api/send/RepliesKt { public static synthetic fun reply-sx10buk$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/files/VoiceFile;Ljava/util/List;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static synthetic fun reply-sx10buk$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/message/content/TextedMediaContent;Ljava/util/List;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static synthetic fun reply-sx10buk$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ljava/util/List;Ldev/inmo/tgbotapi/types/LinkPreviewOptions;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun reply-uCdAg00 (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;ILjava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun reply-uCdAg00$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;ILjava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun reply-xleuolY (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/polls/QuizPoll;Ljava/lang/String;Ljava/util/List;IZZLdev/inmo/tgbotapi/types/message/ParseMode;Ljava/util/List;Ldev/inmo/tgbotapi/types/polls/ScheduledCloseInfo;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static final fun reply-xleuolY (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/polls/QuizPoll;Ljava/lang/String;Ljava/util/List;Ljava/util/List;IZZLdev/inmo/tgbotapi/types/message/ParseMode;Ldev/inmo/tgbotapi/types/polls/ScheduledCloseInfo;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static final fun reply-xleuolY (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ljava/lang/String;Ljava/util/List;ILjava/lang/String;ZZLdev/inmo/tgbotapi/types/message/ParseMode;Ldev/inmo/tgbotapi/types/message/ParseMode;Ldev/inmo/tgbotapi/types/polls/ScheduledCloseInfo;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; @@ -1347,6 +1351,8 @@ public final class dev/inmo/tgbotapi/extensions/api/send/RepliesWithChatsAndMess public static synthetic fun reply-cght-2w$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLkotlinx/coroutines/flow/Flow;JLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun reply-gV8EhO8 (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLdev/inmo/tgbotapi/types/polls/QuizPoll;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;IZZLdev/inmo/tgbotapi/types/message/ParseMode;Ldev/inmo/tgbotapi/types/message/ParseMode;Ldev/inmo/tgbotapi/types/polls/ScheduledCloseInfo;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun reply-gV8EhO8$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLdev/inmo/tgbotapi/types/polls/QuizPoll;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;IZZLdev/inmo/tgbotapi/types/message/ParseMode;Ldev/inmo/tgbotapi/types/message/ParseMode;Ldev/inmo/tgbotapi/types/polls/ScheduledCloseInfo;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun reply-o3klmNI (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JILjava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun reply-o3klmNI$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JILjava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun reply-soTs8Mk (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLdev/inmo/tgbotapi/types/files/AudioFile;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;Ljava/lang/String;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static final fun reply-soTs8Mk (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLdev/inmo/tgbotapi/types/files/PhotoSize;Ljava/util/List;ZZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static final fun reply-soTs8Mk (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLdev/inmo/tgbotapi/types/files/VideoFile;Ljava/util/List;ZZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; @@ -1381,6 +1387,8 @@ public final class dev/inmo/tgbotapi/extensions/api/send/RepliesWithChatsAndMess public static synthetic fun reply-y0ght84$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLdev/inmo/tgbotapi/types/files/DocumentFile;Ljava/util/List;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static synthetic fun reply-y0ght84$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLdev/inmo/tgbotapi/types/message/textsources/TextSource;Ldev/inmo/tgbotapi/types/LinkPreviewOptions;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static synthetic fun reply-y0ght84$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLjava/lang/String;Ldev/inmo/tgbotapi/types/LinkPreviewOptions;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun reply-yqVUSak (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JILjava/util/List;Ljava/util/List;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun reply-yqVUSak$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JILjava/util/List;Ljava/util/List;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/Boolean;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun replyLiveLocationWithLatLongChatIdAndMessageId (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLkotlinx/coroutines/flow/Flow;JLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun replyLiveLocationWithLatLongChatIdAndMessageId$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLkotlinx/coroutines/flow/Flow;JLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun replyLiveLocationWithLocationChatIdAndMessageId (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLkotlinx/coroutines/flow/Flow;JLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ljava/lang/String;ZZLjava/lang/String;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; diff --git a/tgbotapi.core/api/tgbotapi.core.api b/tgbotapi.core/api/tgbotapi.core.api index 37fff023f2..445c74f35a 100644 --- a/tgbotapi.core/api/tgbotapi.core.api +++ b/tgbotapi.core/api/tgbotapi.core.api @@ -21208,6 +21208,12 @@ public final class dev/inmo/tgbotapi/types/message/payments/PaidMedia$Video$Comp public final fun serializer ()Lkotlinx/serialization/KSerializer; } +public final class dev/inmo/tgbotapi/types/message/payments/PaidMediaToTelegramPaidMediaKt { + public static final fun toTelegramMediaPhoto (Ldev/inmo/tgbotapi/types/message/payments/PaidMedia$Photo;)Ldev/inmo/tgbotapi/types/media/TelegramPaidMediaPhoto; + public static final fun toTelegramPaidMediaOrNull (Ldev/inmo/tgbotapi/types/message/payments/PaidMedia;)Ldev/inmo/tgbotapi/types/media/TelegramPaidMedia; + public static final fun toTelegramPaidMediaVideo (Ldev/inmo/tgbotapi/types/message/payments/PaidMedia$Video;)Ldev/inmo/tgbotapi/types/media/TelegramPaidMediaVideo; +} + public final class dev/inmo/tgbotapi/types/message/payments/RefundedPaymentEvent : dev/inmo/tgbotapi/types/message/ChatEvents/abstracts/CommonEvent, dev/inmo/tgbotapi/types/message/payments/abstracts/PaymentInfo { public fun (Ldev/inmo/tgbotapi/types/payments/RefundedPayment;)V public final fun component1 ()Ldev/inmo/tgbotapi/types/payments/RefundedPayment; From 1471381b1267ce53974c5aa1f9f0fdb4f2933514 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Wed, 10 Jul 2024 23:01:38 +0600 Subject: [PATCH 39/47] add built-in onCommandPrivacy --- .../extensions/EnablePrivacyPolicyCommand.kt | 86 +++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/utils/extensions/EnablePrivacyPolicyCommand.kt diff --git a/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/utils/extensions/EnablePrivacyPolicyCommand.kt b/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/utils/extensions/EnablePrivacyPolicyCommand.kt new file mode 100644 index 0000000000..5f29b39c28 --- /dev/null +++ b/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/utils/extensions/EnablePrivacyPolicyCommand.kt @@ -0,0 +1,86 @@ +package dev.inmo.tgbotapi.extensions.behaviour_builder.utils.extensions + +import dev.inmo.tgbotapi.extensions.behaviour_builder.BehaviourContext +import dev.inmo.tgbotapi.extensions.behaviour_builder.CustomBehaviourContextAndTwoTypesReceiver +import dev.inmo.tgbotapi.extensions.behaviour_builder.CustomBehaviourContextAndTypeReceiver +import dev.inmo.tgbotapi.extensions.behaviour_builder.filters.CommonMessageFilterExcludeMediaGroups +import dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.CommonMessageFilter +import dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.onCommand +import dev.inmo.tgbotapi.extensions.behaviour_builder.utils.marker_factories.MarkerFactory +import dev.inmo.tgbotapi.requests.send.SendTextMessage +import dev.inmo.tgbotapi.types.ReplyParameters +import dev.inmo.tgbotapi.types.message.ParseMode +import dev.inmo.tgbotapi.types.message.content.TextContent +import dev.inmo.tgbotapi.types.message.content.TextMessage +import dev.inmo.tgbotapi.types.message.textsources.TextSource +import dev.inmo.tgbotapi.types.update.abstracts.Update + +const val DefaultKTgBotAPIPrivacyCommand = "privacy" + +/** + * Adding default handler for `/privacy` command + * + * It is required handler in case you do not want your bot to be banned by telegram + */ +suspend fun BC.onCommandPrivacy( + requireOnlyCommandInMessage: Boolean = true, + initialFilter: CommonMessageFilter? = CommonMessageFilterExcludeMediaGroups, + subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver? = null, + markerFactory: MarkerFactory? = null, + scenarioReceiver: CustomBehaviourContextAndTypeReceiver +) { + onCommand( + DefaultKTgBotAPIPrivacyCommand, + requireOnlyCommandInMessage, + initialFilter, + subcontextUpdatesFilter, + markerFactory, + scenarioReceiver + ) +} + + +/** + * Adding default handler for `/privacy` command. It will send text message with [textSources] as text. + * + * It is required handler in case you do not want your bot to be banned by telegram + */ +suspend fun BC.onCommandPrivacy( + textSources: List, + requireOnlyCommandInMessage: Boolean = true, + initialFilter: CommonMessageFilter? = CommonMessageFilterExcludeMediaGroups, + subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver? = null, + markerFactory: MarkerFactory? = null, +) = onCommandPrivacy(requireOnlyCommandInMessage, initialFilter, subcontextUpdatesFilter, markerFactory) { + execute( + SendTextMessage( + it.chat.id, + textSources, + replyParameters = ReplyParameters(it.metaInfo) + ) + ) +} + + +/** + * Adding default handler for `/privacy` command. It will send text message with [text] as text and [parseMode] if passed. + * + * It is required handler in case you do not want your bot to be banned by telegram + */ +suspend fun BC.onCommandPrivacy( + text: String, + parseMode: ParseMode? = null, + requireOnlyCommandInMessage: Boolean = true, + initialFilter: CommonMessageFilter? = CommonMessageFilterExcludeMediaGroups, + subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver? = null, + markerFactory: MarkerFactory? = null, +) = onCommandPrivacy(requireOnlyCommandInMessage, initialFilter, subcontextUpdatesFilter, markerFactory) { + execute( + SendTextMessage( + it.chat.id, + text, + parseMode, + replyParameters = ReplyParameters(it.metaInfo) + ) + ) +} From 77bd64925152b1f3286f85c90988c1e27f0424e7 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Thu, 11 Jul 2024 15:31:11 +0600 Subject: [PATCH 40/47] update jvm api dump --- .../api/tgbotapi.behaviour_builder.api | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tgbotapi.behaviour_builder/api/tgbotapi.behaviour_builder.api b/tgbotapi.behaviour_builder/api/tgbotapi.behaviour_builder.api index 0f46679ae5..1131bf78d9 100644 --- a/tgbotapi.behaviour_builder/api/tgbotapi.behaviour_builder.api +++ b/tgbotapi.behaviour_builder/api/tgbotapi.behaviour_builder.api @@ -1274,6 +1274,16 @@ public final class dev/inmo/tgbotapi/extensions/behaviour_builder/utils/Subconte public static final fun times (Lkotlin/jvm/functions/Function4;Lkotlin/jvm/functions/Function4;)Lkotlin/jvm/functions/Function4; } +public final class dev/inmo/tgbotapi/extensions/behaviour_builder/utils/extensions/EnablePrivacyPolicyCommandKt { + public static final field DefaultKTgBotAPIPrivacyCommand Ljava/lang/String; + public static final fun onCommandPrivacy (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/extensions/behaviour_builder/utils/SimpleFilter;Lkotlin/jvm/functions/Function4;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/marker_factories/MarkerFactory;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun onCommandPrivacy (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ljava/util/List;ZLdev/inmo/tgbotapi/extensions/behaviour_builder/utils/SimpleFilter;Lkotlin/jvm/functions/Function4;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/marker_factories/MarkerFactory;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun onCommandPrivacy (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;ZLdev/inmo/tgbotapi/extensions/behaviour_builder/utils/SimpleFilter;Lkotlin/jvm/functions/Function4;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/marker_factories/MarkerFactory;Lkotlin/jvm/functions/Function3;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun onCommandPrivacy$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/extensions/behaviour_builder/utils/SimpleFilter;Lkotlin/jvm/functions/Function4;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/marker_factories/MarkerFactory;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static synthetic fun onCommandPrivacy$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ljava/util/List;ZLdev/inmo/tgbotapi/extensions/behaviour_builder/utils/SimpleFilter;Lkotlin/jvm/functions/Function4;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/marker_factories/MarkerFactory;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static synthetic fun onCommandPrivacy$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;ZLdev/inmo/tgbotapi/extensions/behaviour_builder/utils/SimpleFilter;Lkotlin/jvm/functions/Function4;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/marker_factories/MarkerFactory;Lkotlin/jvm/functions/Function3;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; +} + public final class dev/inmo/tgbotapi/extensions/behaviour_builder/utils/handlers_registrar/HandleableCallbackBasedHolder : dev/inmo/tgbotapi/extensions/behaviour_builder/utils/handlers_registrar/HandleableTriggersHolder { public fun ()V public final fun isHandled (Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; From fb796254cf3d1a98e7eda1dd6d7556ac1c655b08 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Thu, 11 Jul 2024 17:22:38 +0600 Subject: [PATCH 41/47] reorder publishing scripts --- .github/workflows/packages_publishing.yml | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/.github/workflows/packages_publishing.yml b/.github/workflows/packages_publishing.yml index 21781f9f7b..f9dbd85839 100644 --- a/.github/workflows/packages_publishing.yml +++ b/.github/workflows/packages_publishing.yml @@ -22,15 +22,21 @@ jobs: run: ./gradlew build - name: API compatibility check run: ./gradlew apiCheck - - name: Publish to Gitea + - name: Publish to GitHub Packages continue-on-error: true - run: ./gradlew publishAllPublicationsToInmoNexusRepository + run: ./gradlew publishAllPublicationsToGithubPackagesRepository env: - INMONEXUS_USER: ${{ secrets.INMONEXUS_USER }} - INMONEXUS_PASSWORD: ${{ secrets.INMONEXUS_PASSWORD }} + GITHUBPACKAGES_USER: ${{ secrets.GITHUBPACKAGES_USER }} + GITHUBPACKAGES_PASSWORD: ${{ secrets.GITHUBPACKAGES_PASSWORD }} - name: Publish to GithubPackages continue-on-error: true run: ./gradlew publishAllPublicationsToGithubPackagesRepository --no-parallel env: GITHUBPACKAGES_USER: ${{ github.actor }} GITHUBPACKAGES_PASSWORD: ${{ secrets.GITHUB_TOKEN }} + - name: Publish to Gitea + continue-on-error: true + run: ./gradlew publishAllPublicationsToInmoNexusRepository + env: + INMONEXUS_USER: ${{ secrets.INMONEXUS_USER }} + INMONEXUS_PASSWORD: ${{ secrets.INMONEXUS_PASSWORD }} From 16ca2bd984fc805ecb618ff67ee652937238eae2 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Thu, 11 Jul 2024 17:23:27 +0600 Subject: [PATCH 42/47] revert adding new publishing to github packages --- .github/workflows/packages_publishing.yml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/.github/workflows/packages_publishing.yml b/.github/workflows/packages_publishing.yml index f9dbd85839..2f5fb6bd55 100644 --- a/.github/workflows/packages_publishing.yml +++ b/.github/workflows/packages_publishing.yml @@ -22,12 +22,6 @@ jobs: run: ./gradlew build - name: API compatibility check run: ./gradlew apiCheck - - name: Publish to GitHub Packages - continue-on-error: true - run: ./gradlew publishAllPublicationsToGithubPackagesRepository - env: - GITHUBPACKAGES_USER: ${{ secrets.GITHUBPACKAGES_USER }} - GITHUBPACKAGES_PASSWORD: ${{ secrets.GITHUBPACKAGES_PASSWORD }} - name: Publish to GithubPackages continue-on-error: true run: ./gradlew publishAllPublicationsToGithubPackagesRepository --no-parallel From e797546edb9a73d6160564d264024c0cfa805694 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Thu, 11 Jul 2024 18:02:50 +0600 Subject: [PATCH 43/47] update link for publishing --- publish.gradle | 2 +- publish.kpsb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/publish.gradle b/publish.gradle index 01ac2ba18a..d11ccb413e 100644 --- a/publish.gradle +++ b/publish.gradle @@ -41,7 +41,7 @@ publishing { if ((project.hasProperty('GITHUBPACKAGES_USER') || System.getenv('GITHUBPACKAGES_USER') != null) && (project.hasProperty('GITHUBPACKAGES_PASSWORD') || System.getenv('GITHUBPACKAGES_PASSWORD') != null)) { maven { name = "GithubPackages" - url = uri("https://maven.pkg.github.com/InsanusMokrassar/TelegramBotAPI") + url = uri("https://maven.pkg.github.com/InsanusMokrassar/ktgbotapi") credentials { username = project.hasProperty('GITHUBPACKAGES_USER') ? project.property('GITHUBPACKAGES_USER') : System.getenv('GITHUBPACKAGES_USER') diff --git a/publish.kpsb b/publish.kpsb index f1efd97f79..c238686765 100644 --- a/publish.kpsb +++ b/publish.kpsb @@ -1 +1 @@ -{"licenses":[{"id":"Apache-2.0","title":"Apache Software License 2.0","url":"https://github.com/InsanusMokrassar/TelegramBotAPI/blob/master/LICENSE"}],"mavenConfig":{"name":"${project.name}","description":"${project.description}","url":"https://insanusmokrassar.github.io/TelegramBotAPI/TelegramBotAPI","vcsUrl":"https://github.com/insanusmokrassar/TelegramBotAPI.git","developers":[{"id":"InsanusMokrassar","name":"Ovsiannikov Aleksei","eMail":"ovsyannikov.alexey95@gmail.com"}],"repositories":[{"name":"GithubPackages","url":"https://maven.pkg.github.com/InsanusMokrassar/TelegramBotAPI"},{"name":"InmoNexus","url":"https://nexus.inmo.dev/repository/maven-releases/"},{"name":"sonatype","url":"https://oss.sonatype.org/service/local/staging/deploy/maven2/"}],"gpgSigning":{"type":"dev.inmo.kmppscriptbuilder.core.models.GpgSigning.Optional"}}} \ No newline at end of file +{"licenses":[{"id":"Apache-2.0","title":"Apache Software License 2.0","url":"https://github.com/InsanusMokrassar/TelegramBotAPI/blob/master/LICENSE"}],"mavenConfig":{"name":"${project.name}","description":"${project.description}","url":"https://insanusmokrassar.github.io/TelegramBotAPI/TelegramBotAPI","vcsUrl":"https://github.com/insanusmokrassar/TelegramBotAPI.git","developers":[{"id":"InsanusMokrassar","name":"Ovsiannikov Aleksei","eMail":"ovsyannikov.alexey95@gmail.com"}],"repositories":[{"name":"GithubPackages","url":"https://maven.pkg.github.com/InsanusMokrassar/ktgbotapi"},{"name":"InmoNexus","url":"https://nexus.inmo.dev/repository/maven-releases/"},{"name":"sonatype","url":"https://oss.sonatype.org/service/local/staging/deploy/maven2/"}],"gpgSigning":{"type":"dev.inmo.kmppscriptbuilder.core.models.GpgSigning.Optional"}}} \ No newline at end of file From 6a2e8400c118b6111c3f1e2f816ff5a561938c0f Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Thu, 11 Jul 2024 20:39:50 +0600 Subject: [PATCH 44/47] update envs for github publishing --- .github/workflows/packages_publishing.yml | 4 ++-- publish.gradle | 6 +++--- publish.kpsb | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/packages_publishing.yml b/.github/workflows/packages_publishing.yml index 2f5fb6bd55..915f07af66 100644 --- a/.github/workflows/packages_publishing.yml +++ b/.github/workflows/packages_publishing.yml @@ -26,8 +26,8 @@ jobs: continue-on-error: true run: ./gradlew publishAllPublicationsToGithubPackagesRepository --no-parallel env: - GITHUBPACKAGES_USER: ${{ github.actor }} - GITHUBPACKAGES_PASSWORD: ${{ secrets.GITHUB_TOKEN }} + GITHUB_USER: ${{ github.actor }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Publish to Gitea continue-on-error: true run: ./gradlew publishAllPublicationsToInmoNexusRepository diff --git a/publish.gradle b/publish.gradle index d11ccb413e..a87ca590bf 100644 --- a/publish.gradle +++ b/publish.gradle @@ -38,14 +38,14 @@ publishing { } } repositories { - if ((project.hasProperty('GITHUBPACKAGES_USER') || System.getenv('GITHUBPACKAGES_USER') != null) && (project.hasProperty('GITHUBPACKAGES_PASSWORD') || System.getenv('GITHUBPACKAGES_PASSWORD') != null)) { + if ((project.hasProperty('GITHUB_USER') || System.getenv('GITHUB_USER') != null) && (project.hasProperty('GITHUB_TOKEN') || System.getenv('GITHUB_TOKEN') != null)) { maven { name = "GithubPackages" url = uri("https://maven.pkg.github.com/InsanusMokrassar/ktgbotapi") credentials { - username = project.hasProperty('GITHUBPACKAGES_USER') ? project.property('GITHUBPACKAGES_USER') : System.getenv('GITHUBPACKAGES_USER') - password = project.hasProperty('GITHUBPACKAGES_PASSWORD') ? project.property('GITHUBPACKAGES_PASSWORD') : System.getenv('GITHUBPACKAGES_PASSWORD') + username = project.hasProperty('GITHUB_USER') ? project.property('GITHUB_USER') : System.getenv('GITHUB_USER') + password = project.hasProperty('GITHUB_TOKEN') ? project.property('GITHUB_TOKEN') : System.getenv('GITHUB_TOKEN') } } diff --git a/publish.kpsb b/publish.kpsb index c238686765..b63e87b1a9 100644 --- a/publish.kpsb +++ b/publish.kpsb @@ -1 +1 @@ -{"licenses":[{"id":"Apache-2.0","title":"Apache Software License 2.0","url":"https://github.com/InsanusMokrassar/TelegramBotAPI/blob/master/LICENSE"}],"mavenConfig":{"name":"${project.name}","description":"${project.description}","url":"https://insanusmokrassar.github.io/TelegramBotAPI/TelegramBotAPI","vcsUrl":"https://github.com/insanusmokrassar/TelegramBotAPI.git","developers":[{"id":"InsanusMokrassar","name":"Ovsiannikov Aleksei","eMail":"ovsyannikov.alexey95@gmail.com"}],"repositories":[{"name":"GithubPackages","url":"https://maven.pkg.github.com/InsanusMokrassar/ktgbotapi"},{"name":"InmoNexus","url":"https://nexus.inmo.dev/repository/maven-releases/"},{"name":"sonatype","url":"https://oss.sonatype.org/service/local/staging/deploy/maven2/"}],"gpgSigning":{"type":"dev.inmo.kmppscriptbuilder.core.models.GpgSigning.Optional"}}} \ No newline at end of file +{"licenses":[{"id":"Apache-2.0","title":"Apache Software License 2.0","url":"https://github.com/InsanusMokrassar/TelegramBotAPI/blob/master/LICENSE"}],"mavenConfig":{"name":"${project.name}","description":"${project.description}","url":"https://insanusmokrassar.github.io/TelegramBotAPI/TelegramBotAPI","vcsUrl":"https://github.com/insanusmokrassar/TelegramBotAPI.git","developers":[{"id":"InsanusMokrassar","name":"Ovsiannikov Aleksei","eMail":"ovsyannikov.alexey95@gmail.com"}],"repositories":[{"name":"GithubPackages","url":"https://maven.pkg.github.com/InsanusMokrassar/ktgbotapi","credsType":{"type":"dev.inmo.kmppscriptbuilder.core.models.MavenPublishingRepository.CredentialsType.UsernameAndPassword","usernameProperty":"GITHUB_USER","passwordProperty":"GITHUB_TOKEN"}},{"name":"InmoNexus","url":"https://nexus.inmo.dev/repository/maven-releases/"},{"name":"sonatype","url":"https://oss.sonatype.org/service/local/staging/deploy/maven2/"}],"gpgSigning":{"type":"dev.inmo.kmppscriptbuilder.core.models.GpgSigning.Optional"}}} \ No newline at end of file From f8e87ac49b84b00c81953191b884b57237bc8de9 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Thu, 11 Jul 2024 21:09:29 +0600 Subject: [PATCH 45/47] fix of message about /privacy handling absence --- .../extensions/behaviour_builder/BehaviourBuilders.kt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourBuilders.kt b/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourBuilders.kt index 2681cbbe06..8d9f50ed28 100644 --- a/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourBuilders.kt +++ b/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourBuilders.kt @@ -4,6 +4,7 @@ import dev.inmo.kslog.common.e import dev.inmo.micro_utils.coroutines.ContextSafelyExceptionHandler import dev.inmo.micro_utils.coroutines.ExceptionHandler import dev.inmo.tgbotapi.bot.TelegramBot +import dev.inmo.tgbotapi.extensions.behaviour_builder.utils.extensions.DefaultKTgBotAPIPrivacyCommand import dev.inmo.tgbotapi.extensions.utils.updates.retrieving.longPolling import dev.inmo.tgbotapi.extensions.utils.updates.retrieving.startGettingOfUpdatesByLongPolling import dev.inmo.tgbotapi.extensions.utils.updates.retrieving.updateHandlerWithMediaGroupsAdaptation @@ -72,8 +73,8 @@ suspend fun TelegramBot.buildBehaviourWithLongPolling( defaultExceptionsHandler = defaultExceptionsHandler, block = block ) - if (!behaviourContext.triggersHolder.handleableCommandsHolder.isHandled("privacy")) { - DefaultKTgBotAPIKSLog.e { "For some or bots there is no handling \"privacy\" command. According to https://telegram.org/tos/bot-developers#4-privacy it may lead to bot deactivation or removing" } + if (!behaviourContext.triggersHolder.handleableCommandsHolder.isHandled(DefaultKTgBotAPIPrivacyCommand)) { + DefaultKTgBotAPIKSLog.e { "Currently, there are no any handling of \"$DefaultKTgBotAPIPrivacyCommand\" command. According to https://telegram.org/tos/bot-developers#4-privacy it may lead to bot deactivation or removing" } } return longPolling( behaviourContext, From a368356c6f812b9f0bfec0ee21025ce2ef459a93 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Thu, 11 Jul 2024 22:01:50 +0600 Subject: [PATCH 46/47] fill changelog and update readme --- CHANGELOG.md | 15 +++++++++++++++ README.md | 2 +- .../types/payments/stars/TransactionPartner.kt | 6 ++++-- 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2e7bfacb9b..4d4052b296 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,8 +2,23 @@ ## 15.1.0 +**THIS UPDATE CONTAINS BREAKING CHANGES** + +**THIS UPDATE CONTAINS ADDING OF SUPPORT FOR BOTS API 7.7** (thanks to [bpavuk](https://threads.net/b_pavuchok)) + +**THIS UPDATE CONTAINS ADDING OF SUPPORT FOR BOTS API 7.6** (with participant and help of [bpavuk](https://threads.net/b_pavuchok)) + +* Add support of paid media +* Update web apps * `Version`: * `MicroUtils`: `0.21.1` -> `0.21.2` +* `Core`: + * `TelegramMedia` has been separated onto two interfaces: `TelegramFreeMedia` and `TelegramPaidMedia` + * `TelegramFreeMedia` has replaced `TelegramMedia` on all old places where it have been used + * `Photo` has been renamed to `PhotoFile` +* `BehaviourBuilder`: + * Add notification when handling of `/privacy` command is absence + * Add several extensions to simplify setting up `/privacy` reaction ## 15.0.0 diff --git a/README.md b/README.md index 05d7fb0364..5ee58069da 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# TelegramBotAPI [![Maven Central](https://maven-badges.herokuapp.com/maven-central/dev.inmo/tgbotapi/badge.svg)](https://maven-badges.herokuapp.com/maven-central/dev.inmo/tgbotapi) [![Supported version](https://img.shields.io/badge/Telegram%20Bot%20API-7.5-blue)](https://core.telegram.org/bots/api-changelog#june-18-2024) +# TelegramBotAPI [![Maven Central](https://maven-badges.herokuapp.com/maven-central/dev.inmo/tgbotapi/badge.svg)](https://maven-badges.herokuapp.com/maven-central/dev.inmo/tgbotapi) [![Supported version](https://img.shields.io/badge/Telegram%20Bot%20API-7.7-blue)](https://core.telegram.org/bots/api-changelog#july-7-2024) | Docs | [![KDocs](https://img.shields.io/static/v1?label=Dokka&message=KDocs&color=blue&logo=kotlin)](https://tgbotapi.inmo.dev/index.html) [![Mini tutorial](https://img.shields.io/static/v1?label=Mk&message=Docs&color=blue&logo=mkdocs)](https://docs.inmo.dev/tgbotapi/index.html) | |:----------------------:|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/payments/stars/TransactionPartner.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/payments/stars/TransactionPartner.kt index 11c1e20722..ad5191546d 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/payments/stars/TransactionPartner.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/payments/stars/TransactionPartner.kt @@ -1,3 +1,5 @@ +@file:Suppress("OPT_IN_USAGE") + package dev.inmo.tgbotapi.types.payments.stars import dev.inmo.tgbotapi.types.InvoicePayload @@ -43,8 +45,8 @@ sealed interface TransactionPartner { @SerialName(invoicePayloadField) val invoicePayload: InvoicePayload? = null ) : TransactionPartner { - override val type: String - get() = Companion.type + @EncodeDefault + override val type: String = Companion.type companion object { const val type: String = "user" From 343c8a4319ae16620dccdd7c05ea8f2ac1090713 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Thu, 11 Jul 2024 22:10:36 +0600 Subject: [PATCH 47/47] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4d4052b296..a6b1897e8d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,7 @@ **THIS UPDATE CONTAINS ADDING OF SUPPORT FOR BOTS API 7.7** (thanks to [bpavuk](https://threads.net/b_pavuchok)) -**THIS UPDATE CONTAINS ADDING OF SUPPORT FOR BOTS API 7.6** (with participant and help of [bpavuk](https://threads.net/b_pavuchok)) +**THIS UPDATE CONTAINS ADDING OF SUPPORT FOR BOTS API 7.6** (with participation and help of [bpavuk](https://threads.net/b_pavuchok)) * Add support of paid media * Update web apps