diff --git a/.gitignore b/.gitignore index 0546396337..0e47a00d49 100644 --- a/.gitignore +++ b/.gitignore @@ -10,4 +10,5 @@ build/ out/ local.properties +kotlin-js-store/ secret.gradle diff --git a/CHANGELOG.md b/CHANGELOG.md index 0fca3f37cc..f13da02baa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,37 @@ # TelegramBotAPI changelog +## 0.38.0 + +_This update contains [Telegram Bot API 5.6](https://core.telegram.org/bots/api-changelog#december-30-2021) implementation_ + +_This update contains migration onto Kotlin 1.6_ + +_This update has changed constructors of all `CommonMessage` implementations_ + + +* `Common`: + * `Version`: + * `Kotlin`: `1.5.31` -> `1.6.10` + * `Coroutines`: `1.5.2` -> `1.6.0` + * `Serialization`: `1.3.1` -> `1.3.2` + * `Klock`: `2.4.8` -> `2.4.10` + * `Ktor`: `1.6.5` -> `1.6.7` + * `MicroUtils`: `0.8.7` -> `0.9.0` +* `Core`: + * Add `SpoilerTextSource` (as part of `Telegram Bot API 5.6` update) + * Add support of `protect_content` as a field `protectContent` in all send message requests and parameter in all + functions related to that requests (as part of `Telegram Bot API 5.6` update) + * **ALL IMPLEMENTERS OF `CommonMessage` HAS CHANGED THEIR CONSTRUCTOR: NOW THEY GET `hasProtectedContent` instead of + `forwardable` (inversed) field** + * `ChannelContentMessageImpl` + * `ChannelMediaGroupMessage` + * `CommonMediaGroupMessage` + * `GroupContentMessage` implementers + * `ConnectedFromChannelGroupContentMessageImpl` + * `UnconnectedFromChannelGroupContentMessageImpl` + * `AnonymousGroupContentMessageImpl` + * `CommonGroupContentMessageImpl` + * `PrivateContentMessageImpl` ## 0.37.4 diff --git a/README.md b/README.md index e53c782287..699b6edfff 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-5.5-blue)](https://core.telegram.org/bots/api-changelog#december-7-2021) +# 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-5.6-blue)](https://core.telegram.org/bots/api-changelog#december-30-2021) | [![Awesome Kotlin Badge](https://kotlin.link/awesome-kotlin.svg)](https://github.com/KotlinBy/awesome-kotlin) [![Build Status](https://github.com/InsanusMokrassar/TelegramBotAPI/workflows/Build/badge.svg)](https://github.com/InsanusMokrassar/TelegramBotAPI/actions) [![Small survey](https://img.shields.io/static/v1?label=Google&message=Survey&color=blue)](https://forms.gle/2Hex2ynbHWHhi1KY7) [![Chat in Telegram](https://img.shields.io/static/v1?label=Telegram&message=Chat&color=blue)](https://t.me/InMoTelegramBotAPI) | |:---:| diff --git a/docs/gradle.properties b/docs/gradle.properties index 22e7f6a0f9..612bde7275 100644 --- a/docs/gradle.properties +++ b/docs/gradle.properties @@ -1,3 +1,3 @@ -dokka_version=1.5.31 +dokka_version=1.6.0 org.gradle.jvmargs=-Xmx1024m diff --git a/gradle.properties b/gradle.properties index 8607184b4e..b1e761c4a1 100644 --- a/gradle.properties +++ b/gradle.properties @@ -5,18 +5,19 @@ kotlin.js.generate.externals=true kotlin.incremental=true kotlin.incremental.js=true -kotlin_version=1.5.31 -kotlin_coroutines_version=1.5.2 -kotlin_serialisation_runtime_version=1.3.1 -klock_version=2.4.8 +kotlin_version=1.6.10 +kotlin_coroutines_version=1.6.0 +kotlin_serialisation_runtime_version=1.3.2 +klock_version=2.4.10 uuid_version=0.3.1 -ktor_version=1.6.5 +ktor_version=1.6.7 -micro_utils_version=0.8.9 + +micro_utils_version=0.9.0 javax_activation_version=1.1.1 library_group=dev.inmo -library_version=0.37.4 +library_version=0.38.0 github_release_plugin_version=2.2.12 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 87aa9bcb36..6b7fd26c83 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip diff --git a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/ForwardMessage.kt b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/ForwardMessage.kt index c2052f8a8c..ee30e92cd5 100644 --- a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/ForwardMessage.kt +++ b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/ForwardMessage.kt @@ -11,40 +11,46 @@ suspend fun TelegramBot.forwardMessage( fromChatId: ChatIdentifier, toChatId: ChatIdentifier, messageId: MessageIdentifier, - disableNotification: Boolean = false + disableNotification: Boolean = false, + protectContent: Boolean = false ) = execute( - ForwardMessage(fromChatId, toChatId, messageId, disableNotification) + ForwardMessage(fromChatId, toChatId, messageId, disableNotification, protectContent) ) suspend fun TelegramBot.forwardMessage( fromChat: Chat, toChatId: ChatIdentifier, messageId: MessageIdentifier, - disableNotification: Boolean = false -) = forwardMessage(fromChat.id, toChatId, messageId, disableNotification) + disableNotification: Boolean = false, + protectContent: Boolean = false +) = forwardMessage(fromChat.id, toChatId, messageId, disableNotification, protectContent) suspend fun TelegramBot.forwardMessage( fromChatId: ChatIdentifier, toChat: Chat, messageId: MessageIdentifier, - disableNotification: Boolean = false -) = forwardMessage(fromChatId, toChat.id, messageId, disableNotification) + disableNotification: Boolean = false, + protectContent: Boolean = false +) = forwardMessage(fromChatId, toChat.id, messageId, disableNotification, protectContent) suspend fun TelegramBot.forwardMessage( fromChat: Chat, toChat: Chat, messageId: MessageIdentifier, - disableNotification: Boolean = false -) = forwardMessage(fromChat.id, toChat.id, messageId, disableNotification) + disableNotification: Boolean = false, + protectContent: Boolean = false +) = forwardMessage(fromChat.id, toChat.id, messageId, disableNotification, protectContent) suspend fun TelegramBot.forwardMessage( toChatId: ChatIdentifier, message: Message, - disableNotification: Boolean = false -) = forwardMessage(message.chat, toChatId, message.messageId, disableNotification) + disableNotification: Boolean = false, + protectContent: Boolean = false +) = forwardMessage(message.chat, toChatId, message.messageId, disableNotification, protectContent) suspend fun TelegramBot.forwardMessage( toChat: Chat, message: Message, - disableNotification: Boolean = false -) = forwardMessage(message.chat, toChat, message.messageId, disableNotification) + disableNotification: Boolean = false, + protectContent: Boolean = false +) = forwardMessage(message.chat, toChat, message.messageId, disableNotification, protectContent) diff --git a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/LiveLocationProvider.kt b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/LiveLocationProvider.kt index 2a063c8e46..1b98faa4be 100644 --- a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/LiveLocationProvider.kt +++ b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/LiveLocationProvider.kt @@ -91,6 +91,7 @@ suspend fun TelegramBot.startLiveLocation( initHeading: Degrees? = null, initProximityAlertRadius: Meters? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null @@ -106,6 +107,7 @@ suspend fun TelegramBot.startLiveLocation( initHeading, initProximityAlertRadius, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup @@ -134,6 +136,7 @@ suspend fun TelegramBot.startLiveLocation( initHeading: Degrees? = null, initProximityAlertRadius: Meters? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null @@ -147,6 +150,7 @@ suspend fun TelegramBot.startLiveLocation( initHeading, initProximityAlertRadius, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup @@ -165,6 +169,7 @@ suspend fun TelegramBot.startLiveLocation( initHeading: Degrees? = null, initProximityAlertRadius: Meters? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null @@ -178,6 +183,7 @@ suspend fun TelegramBot.startLiveLocation( initHeading, initProximityAlertRadius, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup @@ -196,6 +202,7 @@ suspend fun TelegramBot.startLiveLocation( initHeading: Degrees? = null, initProximityAlertRadius: Meters? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null @@ -209,6 +216,7 @@ suspend fun TelegramBot.startLiveLocation( initHeading, initProximityAlertRadius, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup @@ -228,6 +236,7 @@ suspend inline fun TelegramBot.replyWithLiveLocation( initHeading: Degrees? = null, initProximityAlertRadius: Meters? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = startLiveLocation( @@ -240,6 +249,7 @@ suspend inline fun TelegramBot.replyWithLiveLocation( initHeading, initProximityAlertRadius, disableNotification, + protectContent, to.messageId, allowSendingWithoutReply, replyMarkup @@ -258,6 +268,7 @@ suspend inline fun TelegramBot.replyWithLiveLocation( initHeading: Degrees? = null, initProximityAlertRadius: Meters? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = startLiveLocation( @@ -269,6 +280,7 @@ suspend inline fun TelegramBot.replyWithLiveLocation( initHeading, initProximityAlertRadius, disableNotification, + protectContent, to.messageId, allowSendingWithoutReply, replyMarkup diff --git a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/CopyMessage.kt b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/CopyMessage.kt index d616675575..9f9fe08dbe 100644 --- a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/CopyMessage.kt +++ b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/CopyMessage.kt @@ -21,11 +21,12 @@ suspend inline fun TelegramBot.copyMessage( text: String? = null, parseMode: ParseMode? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = execute( - CopyMessage(fromChatId, toChatId, messageId, text, parseMode, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) + CopyMessage(fromChatId, toChatId, messageId, text, parseMode, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) ) /** @@ -39,10 +40,11 @@ suspend inline fun TelegramBot.copyMessage( text: String? = null, parseMode: ParseMode? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = copyMessage(fromChat.id, toChatId, messageId, text, parseMode, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) +) = copyMessage(fromChat.id, toChatId, messageId, text, parseMode, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) /** * @param replyMarkup Some of [KeyboardMarkup]. See [dev.inmo.tgbotapi.extensions.utils.types.buttons.replyKeyboard] or @@ -55,10 +57,11 @@ suspend inline fun TelegramBot.copyMessage( text: String? = null, parseMode: ParseMode? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = copyMessage(fromChatId, toChat.id, messageId, text, parseMode, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) +) = copyMessage(fromChatId, toChat.id, messageId, text, parseMode, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) /** * @param replyMarkup Some of [KeyboardMarkup]. See [dev.inmo.tgbotapi.extensions.utils.types.buttons.replyKeyboard] or @@ -71,10 +74,11 @@ suspend inline fun TelegramBot.copyMessage( text: String? = null, parseMode: ParseMode? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = copyMessage(fromChat.id, toChat.id, messageId, text, parseMode, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) +) = copyMessage(fromChat.id, toChat.id, messageId, text, parseMode, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) /** * @param replyMarkup Some of [KeyboardMarkup]. See [dev.inmo.tgbotapi.extensions.utils.types.buttons.replyKeyboard] or @@ -86,10 +90,11 @@ suspend inline fun TelegramBot.copyMessage( text: String? = null, parseMode: ParseMode? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = copyMessage(message.chat, toChatId, message.messageId, text, parseMode, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) +) = copyMessage(message.chat, toChatId, message.messageId, text, parseMode, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) /** * @param replyMarkup Some of [KeyboardMarkup]. See [dev.inmo.tgbotapi.extensions.utils.types.buttons.replyKeyboard] or @@ -101,10 +106,11 @@ suspend inline fun TelegramBot.copyMessage( text: String? = null, parseMode: ParseMode? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = copyMessage(message.chat, toChat, message.messageId, text, parseMode, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) +) = copyMessage(message.chat, toChat, message.messageId, text, parseMode, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) /** @@ -117,11 +123,12 @@ suspend inline fun TelegramBot.copyMessage( messageId: MessageIdentifier, entities: TextSourcesList, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = execute( - CopyMessage(fromChatId, toChatId, messageId, entities, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) + CopyMessage(fromChatId, toChatId, messageId, entities, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) ) /** @@ -134,10 +141,11 @@ suspend inline fun TelegramBot.copyMessage( messageId: MessageIdentifier, entities: TextSourcesList, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = copyMessage(fromChat.id, toChatId, messageId, entities, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) +) = copyMessage(fromChat.id, toChatId, messageId, entities, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) /** * @param replyMarkup Some of [KeyboardMarkup]. See [dev.inmo.tgbotapi.extensions.utils.types.buttons.replyKeyboard] or @@ -149,10 +157,11 @@ suspend inline fun TelegramBot.copyMessage( messageId: MessageIdentifier, entities: TextSourcesList, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = copyMessage(fromChatId, toChat.id, messageId, entities, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) +) = copyMessage(fromChatId, toChat.id, messageId, entities, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) /** * @param replyMarkup Some of [KeyboardMarkup]. See [dev.inmo.tgbotapi.extensions.utils.types.buttons.replyKeyboard] or @@ -164,10 +173,11 @@ suspend inline fun TelegramBot.copyMessage( messageId: MessageIdentifier, entities: TextSourcesList, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = copyMessage(fromChat.id, toChat.id, messageId, entities, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) +) = copyMessage(fromChat.id, toChat.id, messageId, entities, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) /** * @param replyMarkup Some of [KeyboardMarkup]. See [dev.inmo.tgbotapi.extensions.utils.types.buttons.replyKeyboard] or @@ -178,10 +188,11 @@ suspend inline fun TelegramBot.copyMessage( message: Message, entities: TextSourcesList, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = copyMessage(message.chat, toChatId, message.messageId, entities, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) +) = copyMessage(message.chat, toChatId, message.messageId, entities, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) /** * @param replyMarkup Some of [KeyboardMarkup]. See [dev.inmo.tgbotapi.extensions.utils.types.buttons.replyKeyboard] or @@ -192,7 +203,8 @@ suspend inline fun TelegramBot.copyMessage( message: Message, entities: TextSourcesList, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = copyMessage(message.chat, toChat, message.messageId, entities, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) +) = copyMessage(message.chat, toChat, message.messageId, entities, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) 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 306c2ad1aa..7c7ec4bd22 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 @@ -38,6 +38,7 @@ suspend inline fun TelegramBot.reply( firstName: String, lastName: String? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendContact( @@ -46,6 +47,7 @@ suspend inline fun TelegramBot.reply( firstName, lastName, disableNotification, + protectContent, to.messageId, allowSendingWithoutReply, replyMarkup @@ -59,12 +61,14 @@ suspend inline fun TelegramBot.reply( to: Message, contact: Contact, disableNotification: Boolean = false, + protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendContact( to.chat, contact, disableNotification, + protectContent, to.messageId, allowSendingWithoutReply, replyMarkup @@ -81,9 +85,10 @@ suspend inline fun TelegramBot.replyWithDice( to: Message, animationType: DiceAnimationType? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendDice(to.chat, animationType, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) +) = sendDice(to.chat, animationType, disableNotification, protectContent, to.messageId, allowSendingWithoutReply, replyMarkup) /** * @param replyMarkup Some of [KeyboardMarkup]. See [dev.inmo.tgbotapi.extensions.utils.types.buttons.replyKeyboard] or @@ -93,9 +98,10 @@ suspend inline fun TelegramBot.reply( to: Message, animationType: DiceAnimationType, disableNotification: Boolean = false, + protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = replyWithDice(to, animationType, disableNotification, allowSendingWithoutReply, replyMarkup) +) = replyWithDice(to, animationType, disableNotification, protectContent, allowSendingWithoutReply, replyMarkup) // Location @@ -109,12 +115,14 @@ suspend inline fun TelegramBot.reply( latitude: Double, longitude: Double, disableNotification: Boolean = false, + protectContent: Boolean = false, replyMarkup: KeyboardMarkup? = null ) = sendLocation( to.chat, latitude, longitude, disableNotification, + protectContent, to.messageId, replyMarkup ) @@ -127,11 +135,13 @@ suspend inline fun TelegramBot.reply( to: Message, location: StaticLocation, disableNotification: Boolean = false, + protectContent: Boolean = false, replyMarkup: KeyboardMarkup? = null ) = sendLocation( to.chat, location, disableNotification, + protectContent, to.messageId, replyMarkup ) @@ -149,6 +159,7 @@ suspend inline fun TelegramBot.reply( parseMode: ParseMode? = null, disableWebPagePreview: Boolean? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendTextMessage( @@ -157,6 +168,7 @@ suspend inline fun TelegramBot.reply( parseMode, disableWebPagePreview, disableNotification, + protectContent, to.messageId, allowSendingWithoutReply, replyMarkup @@ -171,6 +183,7 @@ suspend inline fun TelegramBot.reply( entities: TextSourcesList, disableWebPagePreview: Boolean? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendTextMessage( @@ -178,6 +191,7 @@ suspend inline fun TelegramBot.reply( entities, disableWebPagePreview, disableNotification, + protectContent, to.messageId, allowSendingWithoutReply, replyMarkup @@ -201,6 +215,7 @@ suspend inline fun TelegramBot.reply( googlePlaceId: GooglePlaceId? = null, googlePlaceType: GooglePlaceType? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendVenue( @@ -214,6 +229,7 @@ suspend inline fun TelegramBot.reply( googlePlaceId = googlePlaceId, googlePlaceType = googlePlaceType, disableNotification = disableNotification, + protectContent = protectContent, replyToMessageId = to.messageId, allowSendingWithoutReply = allowSendingWithoutReply, replyMarkup = replyMarkup @@ -229,6 +245,7 @@ suspend inline fun TelegramBot.reply( googlePlaceId: GooglePlaceId? = null, googlePlaceType: GooglePlaceType? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendVenue( @@ -242,6 +259,7 @@ suspend inline fun TelegramBot.reply( googlePlaceId = googlePlaceId, googlePlaceType = googlePlaceType, disableNotification = disableNotification, + protectContent = protectContent, replyToMessageId = to.messageId, allowSendingWithoutReply = allowSendingWithoutReply, replyMarkup = replyMarkup @@ -251,12 +269,14 @@ suspend inline fun TelegramBot.reply( to: Message, venue: Venue, disableNotification: Boolean = false, + protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendVenue( chat = to.chat, venue = venue, disableNotification = disableNotification, + protectContent = protectContent, replyToMessageId = to.messageId, allowSendingWithoutReply = allowSendingWithoutReply, replyMarkup = replyMarkup @@ -269,29 +289,32 @@ suspend inline fun TelegramBot.replyWithGame( to: Message, gameShortName: String, disableNotification: Boolean = false, + protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendGame( - to.chat, gameShortName, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup + to.chat, gameShortName, disableNotification, protectContent, to.messageId, allowSendingWithoutReply, replyMarkup ) suspend inline fun TelegramBot.replyWithGame( to: Message, game: Game, disableNotification: Boolean = false, + protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendGame( - to.chat, game.title, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup + to.chat, game.title, disableNotification, protectContent, to.messageId, allowSendingWithoutReply, replyMarkup ) suspend inline fun TelegramBot.reply( to: Message, game: Game, disableNotification: Boolean = false, + protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = replyWithGame(to, game, disableNotification, allowSendingWithoutReply, replyMarkup) +) = replyWithGame(to, game, disableNotification, protectContent, allowSendingWithoutReply, replyMarkup) // Animation @@ -306,6 +329,7 @@ suspend inline fun TelegramBot.replyWithAnimation( width: Int? = null, height: Int? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendAnimation( @@ -318,6 +342,7 @@ suspend inline fun TelegramBot.replyWithAnimation( width, height, disableNotification, + protectContent, to.messageId, allowSendingWithoutReply, replyMarkup @@ -332,9 +357,10 @@ suspend inline fun TelegramBot.reply( width: Int? = null, height: Int? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendAnimation(to.chat, animation, text, parseMode, duration, width, height, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) +) = sendAnimation(to.chat, animation, text, parseMode, duration, width, height, disableNotification, protectContent, to.messageId, allowSendingWithoutReply, replyMarkup) suspend inline fun TelegramBot.replyWithAnimation( to: Message, @@ -345,6 +371,7 @@ suspend inline fun TelegramBot.replyWithAnimation( width: Int? = null, height: Int? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendAnimation( @@ -356,6 +383,7 @@ suspend inline fun TelegramBot.replyWithAnimation( width, height, disableNotification, + protectContent, to.messageId, allowSendingWithoutReply, replyMarkup @@ -369,9 +397,10 @@ suspend inline fun TelegramBot.reply( width: Int? = null, height: Int? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendAnimation(to.chat, animation, entities, duration, width, height, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) +) = sendAnimation(to.chat, animation, entities, duration, width, height, disableNotification, protectContent, to.messageId, allowSendingWithoutReply, replyMarkup) // Audio @@ -386,9 +415,10 @@ suspend inline fun TelegramBot.replyWithAudio( performer: String? = null, title: String? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendAudio(to.chat, audio, thumb, text, parseMode, duration, performer, title, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) +) = sendAudio(to.chat, audio, thumb, text, parseMode, duration, performer, title, disableNotification, protectContent, to.messageId, allowSendingWithoutReply, replyMarkup) suspend inline fun TelegramBot.reply( to: Message, @@ -397,9 +427,10 @@ suspend inline fun TelegramBot.reply( parseMode: ParseMode? = null, title: String? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendAudio(to.chat, audio, text, parseMode, title, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) +) = sendAudio(to.chat, audio, text, parseMode, title, disableNotification, protectContent, to.messageId, allowSendingWithoutReply, replyMarkup) suspend inline fun TelegramBot.replyWithAudio( to: Message, @@ -410,9 +441,10 @@ suspend inline fun TelegramBot.replyWithAudio( performer: String? = null, title: String? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendAudio(to.chat, audio, thumb, entities, duration, performer, title, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) +) = sendAudio(to.chat, audio, thumb, entities, duration, performer, title, disableNotification, protectContent, to.messageId, allowSendingWithoutReply, replyMarkup) suspend inline fun TelegramBot.reply( to: Message, @@ -420,9 +452,10 @@ suspend inline fun TelegramBot.reply( entities: TextSourcesList, title: String? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendAudio(to.chat, audio, entities, title, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) +) = sendAudio(to.chat, audio, entities, title, disableNotification, protectContent, to.messageId, allowSendingWithoutReply, replyMarkup) // Documents @@ -434,10 +467,11 @@ suspend inline fun TelegramBot.replyWithDocument( text: String? = null, parseMode: ParseMode? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null, disableContentTypeDetection: Boolean? = null -) = sendDocument(to.chat, document, thumb, text, parseMode, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup, disableContentTypeDetection) +) = sendDocument(to.chat, document, thumb, text, parseMode, disableNotification, protectContent, to.messageId, allowSendingWithoutReply, replyMarkup, disableContentTypeDetection) suspend inline fun TelegramBot.reply( to: Message, @@ -445,10 +479,11 @@ suspend inline fun TelegramBot.reply( text: String? = null, parseMode: ParseMode? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null, disableContentTypeDetection: Boolean? = null -) = sendDocument(to.chat, document, text, parseMode, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup, disableContentTypeDetection) +) = sendDocument(to.chat, document, text, parseMode, disableNotification, protectContent, to.messageId, allowSendingWithoutReply, replyMarkup, disableContentTypeDetection) suspend inline fun TelegramBot.replyWithDocument( to: Message, @@ -456,20 +491,22 @@ suspend inline fun TelegramBot.replyWithDocument( thumb: InputFile? = null, entities: TextSourcesList, disableNotification: Boolean = false, + protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null, disableContentTypeDetection: Boolean? = null -) = sendDocument(to.chat, document, thumb, entities, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup, disableContentTypeDetection) +) = sendDocument(to.chat, document, thumb, entities, disableNotification, protectContent, to.messageId, allowSendingWithoutReply, replyMarkup, disableContentTypeDetection) suspend inline fun TelegramBot.reply( to: Message, document: DocumentFile, entities: TextSourcesList, disableNotification: Boolean = false, + protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null, disableContentTypeDetection: Boolean? = null -) = sendDocument(to.chat, document, entities, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup, disableContentTypeDetection) +) = sendDocument(to.chat, document, entities, disableNotification, protectContent, to.messageId, allowSendingWithoutReply, replyMarkup, disableContentTypeDetection) // Media Group @@ -479,29 +516,33 @@ suspend inline fun TelegramBot.replyWithMediaGroup( to: Message, media: List, disableNotification: Boolean = false, + protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null -) = sendMediaGroup(to.chat, media, disableNotification, to.messageId, allowSendingWithoutReply) +) = sendMediaGroup(to.chat, media, disableNotification, protectContent, to.messageId, allowSendingWithoutReply) suspend inline fun TelegramBot.replyWithPlaylist( to: Message, media: List, disableNotification: Boolean = false, + protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null -) = sendPlaylist(to.chat, media, disableNotification, to.messageId, allowSendingWithoutReply) +) = sendPlaylist(to.chat, media, disableNotification, protectContent, to.messageId, allowSendingWithoutReply) suspend inline fun TelegramBot.replyWithDocuments( to: Message, media: List, disableNotification: Boolean = false, + protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null -) = sendDocumentsGroup(to.chat, media, disableNotification, to.messageId, allowSendingWithoutReply) +) = sendDocumentsGroup(to.chat, media, disableNotification, protectContent, to.messageId, allowSendingWithoutReply) suspend inline fun TelegramBot.replyWithGallery( to: Message, media: List, disableNotification: Boolean = false, + protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null -) = sendVisualMediaGroup(to.chat, media, disableNotification, to.messageId, allowSendingWithoutReply) +) = sendVisualMediaGroup(to.chat, media, disableNotification, protectContent, to.messageId, allowSendingWithoutReply) // Photo @@ -512,9 +553,10 @@ suspend inline fun TelegramBot.replyWithPhoto( text: String? = null, parseMode: ParseMode? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendPhoto(to.chat, fileId, text, parseMode, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) +) = sendPhoto(to.chat, fileId, text, parseMode, disableNotification, protectContent, to.messageId, allowSendingWithoutReply, replyMarkup) suspend inline fun TelegramBot.reply( to: Message, @@ -522,9 +564,10 @@ suspend inline fun TelegramBot.reply( text: String? = null, parseMode: ParseMode? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendPhoto(to.chat, photo, text, parseMode, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) +) = sendPhoto(to.chat, photo, text, parseMode, disableNotification, protectContent, to.messageId, allowSendingWithoutReply, replyMarkup) suspend inline fun TelegramBot.replyWithPhoto( @@ -532,18 +575,20 @@ suspend inline fun TelegramBot.replyWithPhoto( fileId: InputFile, entities: TextSourcesList, disableNotification: Boolean = false, + protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendPhoto(to.chat, fileId, entities, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) +) = sendPhoto(to.chat, fileId, entities, disableNotification, protectContent, to.messageId, allowSendingWithoutReply, replyMarkup) suspend inline fun TelegramBot.reply( to: Message, photo: Photo, entities: TextSourcesList, disableNotification: Boolean = false, + protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendPhoto(to.chat, photo, entities, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) +) = sendPhoto(to.chat, photo, entities, disableNotification, protectContent, to.messageId, allowSendingWithoutReply, replyMarkup) // Sticker @@ -552,17 +597,19 @@ suspend inline fun TelegramBot.replyWithSticker( to: Message, sticker: InputFile, disableNotification: Boolean = false, + protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendSticker(to.chat, sticker, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) +) = sendSticker(to.chat, sticker, disableNotification, protectContent, to.messageId, allowSendingWithoutReply, replyMarkup) suspend inline fun TelegramBot.reply( to: Message, sticker: Sticker, disableNotification: Boolean = false, + protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendSticker(to.chat, sticker, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) +) = sendSticker(to.chat, sticker, disableNotification, protectContent, to.messageId, allowSendingWithoutReply, replyMarkup) // Videos @@ -577,9 +624,10 @@ suspend inline fun TelegramBot.replyWithVideo( width: Int? = null, height: Int? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendVideo(to.chat, video, thumb, text, parseMode, duration, width, height, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) +) = sendVideo(to.chat, video, thumb, text, parseMode, duration, width, height, disableNotification, protectContent, to.messageId, allowSendingWithoutReply, replyMarkup) suspend inline fun TelegramBot.reply( to: Message, @@ -587,9 +635,10 @@ suspend inline fun TelegramBot.reply( text: String? = null, parseMode: ParseMode? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendVideo(to.chat, video, text, parseMode, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) +) = sendVideo(to.chat, video, text, parseMode, disableNotification, protectContent, to.messageId, allowSendingWithoutReply, replyMarkup) suspend inline fun TelegramBot.replyWithVideo( to: Message, @@ -600,18 +649,20 @@ suspend inline fun TelegramBot.replyWithVideo( width: Int? = null, height: Int? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendVideo(to.chat, video, thumb, entities, duration, width, height, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) +) = sendVideo(to.chat, video, thumb, entities, duration, width, height, disableNotification, protectContent, to.messageId, allowSendingWithoutReply, replyMarkup) suspend inline fun TelegramBot.reply( to: Message, video: VideoFile, entities: TextSourcesList, disableNotification: Boolean = false, + protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendVideo(to.chat, video, entities, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) +) = sendVideo(to.chat, video, entities, disableNotification, protectContent, to.messageId, allowSendingWithoutReply, replyMarkup) // VideoNotes @@ -623,17 +674,19 @@ suspend inline fun TelegramBot.replyWithVideoNote( duration: Long? = null, size: Int? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendVideoNote(to.chat, videoNote, thumb, duration, size, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) +) = sendVideoNote(to.chat, videoNote, thumb, duration, size, disableNotification, protectContent, to.messageId, allowSendingWithoutReply, replyMarkup) suspend inline fun TelegramBot.reply( to: Message, videoNote: VideoNoteFile, disableNotification: Boolean = false, + protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendVideoNote(to.chat, videoNote, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) +) = sendVideoNote(to.chat, videoNote, disableNotification, protectContent, to.messageId, allowSendingWithoutReply, replyMarkup) // Voice @@ -645,9 +698,10 @@ suspend inline fun TelegramBot.replyWithVoice( parseMode: ParseMode? = null, duration: Long? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendVoice(to.chat, voice, text, parseMode, duration, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) +) = sendVoice(to.chat, voice, text, parseMode, duration, disableNotification, protectContent, to.messageId, allowSendingWithoutReply, replyMarkup) suspend inline fun TelegramBot.reply( to: Message, @@ -655,9 +709,10 @@ suspend inline fun TelegramBot.reply( text: String? = null, parseMode: ParseMode? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendVoice(to.chat, voice, text, parseMode, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) +) = sendVoice(to.chat, voice, text, parseMode, disableNotification, protectContent, to.messageId, allowSendingWithoutReply, replyMarkup) suspend inline fun TelegramBot.replyWithVoice( @@ -666,18 +721,20 @@ suspend inline fun TelegramBot.replyWithVoice( entities: TextSourcesList, duration: Long? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendVoice(to.chat, voice, entities, duration, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) +) = sendVoice(to.chat, voice, entities, duration, disableNotification, protectContent, to.messageId, allowSendingWithoutReply, replyMarkup) suspend inline fun TelegramBot.reply( to: Message, voice: VoiceFile, entities: TextSourcesList, disableNotification: Boolean = false, + protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendVoice(to.chat, voice, entities, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) +) = sendVoice(to.chat, voice, entities, disableNotification, protectContent, to.messageId, allowSendingWithoutReply, replyMarkup) // Invoice @@ -706,9 +763,10 @@ suspend inline fun TelegramBot.reply( shouldSendEmailToProvider: Boolean = false, priceDependOnShipAddress: Boolean = false, disableNotification: Boolean = false, + protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null, replyMarkup: InlineKeyboardMarkup? = null -) = sendInvoice(to.chat.id, title, description, payload, providerToken, currency, prices, maxTipAmount, suggestedTipAmounts, startParameter, providerData, requireName, requirePhoneNumber, requireEmail, requireShippingAddress, shouldSendPhoneNumberToProvider, shouldSendEmailToProvider, priceDependOnShipAddress, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) +) = sendInvoice(to.chat.id, title, description, payload, providerToken, currency, prices, maxTipAmount, suggestedTipAmounts, startParameter, providerData, requireName, requirePhoneNumber, requireEmail, requireShippingAddress, shouldSendPhoneNumberToProvider, shouldSendEmailToProvider, priceDependOnShipAddress, disableNotification, protectContent, to.messageId, allowSendingWithoutReply, replyMarkup) // Polls @@ -722,9 +780,10 @@ suspend inline fun TelegramBot.reply( allowMultipleAnswers: Boolean = false, closeInfo: ScheduledCloseInfo? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendRegularPoll(to.chat, question, options, isAnonymous, isClosed, allowMultipleAnswers, closeInfo, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) +) = sendRegularPoll(to.chat, question, options, isAnonymous, isClosed, allowMultipleAnswers, closeInfo, disableNotification, protectContent, to.messageId, allowSendingWithoutReply, replyMarkup) suspend inline fun TelegramBot.reply( to: Message, @@ -736,9 +795,10 @@ suspend inline fun TelegramBot.reply( allowMultipleAnswers: Boolean = poll.allowMultipleAnswers, closeInfo: ScheduledCloseInfo? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendRegularPoll(to.chat, poll, isClosed, question, options, isAnonymous, allowMultipleAnswers, closeInfo, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) +) = sendRegularPoll(to.chat, poll, isClosed, question, options, isAnonymous, allowMultipleAnswers, closeInfo, disableNotification, protectContent, to.messageId, allowSendingWithoutReply, replyMarkup) suspend inline fun TelegramBot.reply( to: Message, @@ -751,9 +811,10 @@ suspend inline fun TelegramBot.reply( parseMode: ParseMode? = null, closeInfo: ScheduledCloseInfo? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendQuizPoll(to.chat, question, options, correctOptionId, isAnonymous, isClosed, explanation, parseMode, closeInfo, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) +) = sendQuizPoll(to.chat, question, options, correctOptionId, isAnonymous, isClosed, explanation, parseMode, closeInfo, disableNotification, protectContent, to.messageId, allowSendingWithoutReply, replyMarkup) suspend inline fun TelegramBot.reply( to: Message, @@ -767,9 +828,10 @@ suspend inline fun TelegramBot.reply( parseMode: ParseMode? = null, closeInfo: ScheduledCloseInfo? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendQuizPoll(to.chat, isClosed, quizPoll, question, options, correctOptionId, isAnonymous, explanation, parseMode, closeInfo, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) +) = sendQuizPoll(to.chat, isClosed, quizPoll, question, options, correctOptionId, isAnonymous, explanation, parseMode, closeInfo, disableNotification, protectContent, to.messageId, allowSendingWithoutReply, replyMarkup) suspend inline fun TelegramBot.reply( to: Message, @@ -781,9 +843,10 @@ suspend inline fun TelegramBot.reply( isClosed: Boolean = false, closeInfo: ScheduledCloseInfo? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendQuizPoll(to.chat, question, options, correctOptionId, isAnonymous, isClosed, entities, closeInfo, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) +) = sendQuizPoll(to.chat, question, options, correctOptionId, isAnonymous, isClosed, entities, closeInfo, disableNotification, protectContent, to.messageId, allowSendingWithoutReply, replyMarkup) suspend inline fun TelegramBot.reply( to: Message, @@ -796,6 +859,7 @@ suspend inline fun TelegramBot.reply( isAnonymous: Boolean = quizPoll.isAnonymous, closeInfo: ScheduledCloseInfo? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendQuizPoll(to.chat, isClosed, quizPoll, question, options, correctOptionId, isAnonymous, entities, closeInfo, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) +) = sendQuizPoll(to.chat, isClosed, quizPoll, question, options, correctOptionId, isAnonymous, entities, closeInfo, disableNotification, protectContent, to.messageId, allowSendingWithoutReply, replyMarkup) diff --git a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/SendContact.kt b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/SendContact.kt index fc73848a31..f067572784 100644 --- a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/SendContact.kt +++ b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/SendContact.kt @@ -16,12 +16,13 @@ suspend fun TelegramBot.sendContact( firstName: String, lastName: String? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = execute( SendContact( - chatId, phoneNumber, firstName, lastName, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup + chatId, phoneNumber, firstName, lastName, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup ) ) @@ -33,12 +34,13 @@ suspend fun TelegramBot.sendContact( chatId: ChatIdentifier, contact: Contact, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = execute( SendContact( - chatId, contact, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup + chatId, contact, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup ) ) @@ -52,11 +54,12 @@ suspend fun TelegramBot.sendContact( firstName: String, lastName: String? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendContact( - chat.id, phoneNumber, firstName, lastName, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup + chat.id, phoneNumber, firstName, lastName, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup ) /** @@ -67,9 +70,10 @@ suspend fun TelegramBot.sendContact( chat: Chat, contact: Contact, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendContact( - chat.id, contact, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup + chat.id, contact, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup ) diff --git a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/SendDice.kt b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/SendDice.kt index 78622249bb..3ea356b45d 100644 --- a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/SendDice.kt +++ b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/SendDice.kt @@ -16,11 +16,12 @@ suspend fun TelegramBot.sendDice( chatId: ChatIdentifier, animationType: DiceAnimationType? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = execute( - SendDice(chatId, animationType, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) + SendDice(chatId, animationType, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) ) /** @@ -31,7 +32,8 @@ suspend fun TelegramBot.sendDice( chat: Chat, animationType: DiceAnimationType? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendDice(chat.id, animationType, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) +) = sendDice(chat.id, animationType, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) diff --git a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/SendLocation.kt b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/SendLocation.kt index b28da8d0c2..5f6c75ffcd 100644 --- a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/SendLocation.kt +++ b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/SendLocation.kt @@ -17,6 +17,7 @@ suspend fun TelegramBot.sendLocation( latitude: Double, longitude: Double, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, replyMarkup: KeyboardMarkup? = null ) = execute( @@ -25,6 +26,7 @@ suspend fun TelegramBot.sendLocation( latitude, longitude, disableNotification = disableNotification, + protectContent = protectContent, replyToMessageId = replyToMessageId, replyMarkup = replyMarkup ) @@ -38,6 +40,7 @@ suspend fun TelegramBot.sendLocation( chatId: ChatIdentifier, location: StaticLocation, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, replyMarkup: KeyboardMarkup? = null ) = sendLocation( @@ -45,6 +48,7 @@ suspend fun TelegramBot.sendLocation( location.latitude, location.longitude, disableNotification, + protectContent, replyToMessageId, replyMarkup ) @@ -58,6 +62,7 @@ suspend fun TelegramBot.sendLocation( latitude: Double, longitude: Double, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, replyMarkup: KeyboardMarkup? = null ) = sendLocation( @@ -65,6 +70,7 @@ suspend fun TelegramBot.sendLocation( latitude, longitude, disableNotification, + protectContent, replyToMessageId, replyMarkup ) @@ -77,6 +83,7 @@ suspend fun TelegramBot.sendLocation( chat: Chat, location: StaticLocation, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, replyMarkup: KeyboardMarkup? = null ) = sendLocation( @@ -84,6 +91,7 @@ suspend fun TelegramBot.sendLocation( location.latitude, location.longitude, disableNotification, + protectContent, replyToMessageId, replyMarkup ) @@ -97,9 +105,10 @@ suspend fun TelegramBot.sendStaticLocation( latitude: Double, longitude: Double, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, replyMarkup: KeyboardMarkup? = null -) = sendLocation(chatId, latitude, longitude, disableNotification, replyToMessageId, replyMarkup) +) = sendLocation(chatId, latitude, longitude, disableNotification, protectContent, replyToMessageId, replyMarkup) /** * @param replyMarkup Some of [KeyboardMarkup]. See [dev.inmo.tgbotapi.extensions.utils.types.buttons.replyKeyboard] or @@ -109,9 +118,10 @@ suspend fun TelegramBot.sendStaticLocation( chatId: ChatIdentifier, location: StaticLocation, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, replyMarkup: KeyboardMarkup? = null -) = sendLocation(chatId, location.latitude, location.longitude, disableNotification, replyToMessageId, replyMarkup) +) = sendLocation(chatId, location.latitude, location.longitude, disableNotification, protectContent, replyToMessageId, replyMarkup) /** * @param replyMarkup Some of [KeyboardMarkup]. See [dev.inmo.tgbotapi.extensions.utils.types.buttons.replyKeyboard] or @@ -122,9 +132,10 @@ suspend fun TelegramBot.sendStaticLocation( latitude: Double, longitude: Double, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, replyMarkup: KeyboardMarkup? = null -) = sendLocation(chat.id, latitude, longitude, disableNotification, replyToMessageId, replyMarkup) +) = sendLocation(chat.id, latitude, longitude, disableNotification, protectContent, replyToMessageId, replyMarkup) /** * @param replyMarkup Some of [KeyboardMarkup]. See [dev.inmo.tgbotapi.extensions.utils.types.buttons.replyKeyboard] or @@ -134,6 +145,7 @@ suspend fun TelegramBot.sendStaticLocation( chat: Chat, location: StaticLocation, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, replyMarkup: KeyboardMarkup? = null -) = sendLocation(chat.id, location.latitude, location.longitude, disableNotification, replyToMessageId, replyMarkup) +) = sendLocation(chat.id, location.latitude, location.longitude, disableNotification, protectContent, replyToMessageId, replyMarkup) diff --git a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/SendMessage.kt b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/SendMessage.kt index 0ec10e0eee..23031ef5e4 100644 --- a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/SendMessage.kt +++ b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/SendMessage.kt @@ -19,11 +19,12 @@ suspend fun TelegramBot.sendMessage( parseMode: ParseMode? = null, disableWebPagePreview: Boolean? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = execute( - SendTextMessage(chatId, text, parseMode, disableWebPagePreview, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) + SendTextMessage(chatId, text, parseMode, disableWebPagePreview, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) ) /** @@ -36,11 +37,12 @@ suspend fun TelegramBot.sendTextMessage( parseMode: ParseMode? = null, disableWebPagePreview: Boolean? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendMessage( - chatId, text, parseMode, disableWebPagePreview, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup + chatId, text, parseMode, disableWebPagePreview, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup ) /** @@ -53,10 +55,11 @@ suspend fun TelegramBot.sendMessage( parseMode: ParseMode? = null, disableWebPagePreview: Boolean? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendMessage(chat.id, text, parseMode, disableWebPagePreview, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) +) = sendMessage(chat.id, text, parseMode, disableWebPagePreview, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) /** @@ -69,10 +72,11 @@ suspend fun TelegramBot.sendTextMessage( parseMode: ParseMode? = null, disableWebPagePreview: Boolean? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendTextMessage(chat.id, text, parseMode, disableWebPagePreview, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) +) = sendTextMessage(chat.id, text, parseMode, disableWebPagePreview, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) /** * @param replyMarkup Some of [KeyboardMarkup]. See [dev.inmo.tgbotapi.extensions.utils.types.buttons.replyKeyboard] or @@ -83,11 +87,12 @@ suspend fun TelegramBot.sendMessage( entities: TextSourcesList, disableWebPagePreview: Boolean? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = execute( - SendTextMessage(chatId, entities, disableWebPagePreview, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) + SendTextMessage(chatId, entities, disableWebPagePreview, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) ) /** @@ -99,11 +104,12 @@ suspend fun TelegramBot.sendTextMessage( entities: TextSourcesList, disableWebPagePreview: Boolean? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendMessage( - chatId, entities, disableWebPagePreview, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup + chatId, entities, disableWebPagePreview, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup ) /** @@ -115,10 +121,11 @@ suspend fun TelegramBot.sendMessage( entities: TextSourcesList, disableWebPagePreview: Boolean? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendMessage(chat.id, entities, disableWebPagePreview, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) +) = sendMessage(chat.id, entities, disableWebPagePreview, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) /** @@ -130,7 +137,8 @@ suspend fun TelegramBot.sendTextMessage( entities: TextSourcesList, disableWebPagePreview: Boolean? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendTextMessage(chat.id, entities, disableWebPagePreview, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) +) = sendTextMessage(chat.id, entities, disableWebPagePreview, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) diff --git a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/SendVenue.kt b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/SendVenue.kt index b56153d786..fa5ebe9e6d 100644 --- a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/SendVenue.kt +++ b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/SendVenue.kt @@ -23,6 +23,7 @@ suspend fun TelegramBot.sendVenue( googlePlaceId: GooglePlaceId? = null, googlePlaceType: GooglePlaceType? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null @@ -38,6 +39,7 @@ suspend fun TelegramBot.sendVenue( googlePlaceId = googlePlaceId, googlePlaceType = googlePlaceType, disableNotification = disableNotification, + protectContent = protectContent, replyToMessageId = replyToMessageId, allowSendingWithoutReply = allowSendingWithoutReply, replyMarkup = replyMarkup @@ -59,6 +61,7 @@ suspend fun TelegramBot.sendVenue( googlePlaceId: GooglePlaceId? = null, googlePlaceType: GooglePlaceType? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null @@ -73,6 +76,7 @@ suspend fun TelegramBot.sendVenue( googlePlaceId = googlePlaceId, googlePlaceType = googlePlaceType, disableNotification = disableNotification, + protectContent = protectContent, replyToMessageId = replyToMessageId, allowSendingWithoutReply = allowSendingWithoutReply, replyMarkup = replyMarkup @@ -92,6 +96,7 @@ suspend fun TelegramBot.sendVenue( googlePlaceId: GooglePlaceId? = null, googlePlaceType: GooglePlaceType? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null @@ -106,6 +111,7 @@ suspend fun TelegramBot.sendVenue( googlePlaceId = googlePlaceId, googlePlaceType = googlePlaceType, disableNotification = disableNotification, + protectContent = protectContent, replyToMessageId = replyToMessageId, allowSendingWithoutReply = allowSendingWithoutReply, replyMarkup = replyMarkup @@ -125,6 +131,7 @@ suspend fun TelegramBot.sendVenue( googlePlaceId: GooglePlaceId? = null, googlePlaceType: GooglePlaceType? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null @@ -139,6 +146,7 @@ suspend fun TelegramBot.sendVenue( googlePlaceId = googlePlaceId, googlePlaceType = googlePlaceType, disableNotification = disableNotification, + protectContent = protectContent, replyToMessageId = replyToMessageId, allowSendingWithoutReply = allowSendingWithoutReply, replyMarkup = replyMarkup @@ -152,6 +160,7 @@ suspend fun TelegramBot.sendVenue( chatId: ChatIdentifier, venue: Venue, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null @@ -160,6 +169,7 @@ suspend fun TelegramBot.sendVenue( chatId = chatId, venue = venue, disableNotification = disableNotification, + protectContent = protectContent, replyToMessageId = replyToMessageId, allowSendingWithoutReply = allowSendingWithoutReply, replyMarkup = replyMarkup @@ -174,6 +184,7 @@ suspend fun TelegramBot.sendVenue( chat: Chat, venue: Venue, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null @@ -181,6 +192,7 @@ suspend fun TelegramBot.sendVenue( chatId = chat.id, venue = venue, disableNotification = disableNotification, + protectContent = protectContent, replyToMessageId = replyToMessageId, allowSendingWithoutReply = allowSendingWithoutReply, replyMarkup = replyMarkup diff --git a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/games/SendGame.kt b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/games/SendGame.kt index beec35e4ed..949179e268 100644 --- a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/games/SendGame.kt +++ b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/games/SendGame.kt @@ -16,12 +16,13 @@ suspend fun TelegramBot.sendGame( chatId: ChatIdentifier, gameShortName: String, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = execute( SendGame( - chatId, gameShortName, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup + chatId, gameShortName, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup ) ) @@ -33,11 +34,12 @@ suspend fun TelegramBot.sendGame( chat: Chat, gameShortName: String, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendGame( - chat.id, gameShortName, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup + chat.id, gameShortName, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup ) /** @@ -48,11 +50,12 @@ suspend fun TelegramBot.sendGame( chatId: ChatIdentifier, game: Game, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendGame( - chatId, game.title, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup + chatId, game.title, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup ) /** @@ -63,9 +66,10 @@ suspend fun TelegramBot.sendGame( chat: Chat, game: Game, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendGame( - chat.id, game.title, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup + chat.id, game.title, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup ) diff --git a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendAnimation.kt b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendAnimation.kt index 0d14ad66b9..61bc1588d8 100644 --- a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendAnimation.kt +++ b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendAnimation.kt @@ -25,6 +25,7 @@ suspend fun TelegramBot.sendAnimation( width: Int? = null, height: Int? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null @@ -39,6 +40,7 @@ suspend fun TelegramBot.sendAnimation( width, height, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup @@ -58,11 +60,12 @@ suspend fun TelegramBot.sendAnimation( width: Int? = null, height: Int? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendAnimation( - chatId, animation.fileId, animation.thumb ?.fileId, text, parseMode, duration, width, height, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup + chatId, animation.fileId, animation.thumb ?.fileId, text, parseMode, duration, width, height, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup ) /** @@ -79,10 +82,11 @@ suspend fun TelegramBot.sendAnimation( width: Int? = null, height: Int? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendAnimation(chat.id, animation, thumb, text, parseMode, duration, width, height, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) +) = sendAnimation(chat.id, animation, thumb, text, parseMode, duration, width, height, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) /** * @param replyMarkup Some of [KeyboardMarkup]. See [dev.inmo.tgbotapi.extensions.utils.types.buttons.replyKeyboard] or @@ -97,10 +101,11 @@ suspend fun TelegramBot.sendAnimation( width: Int? = null, height: Int? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendAnimation(chat.id, animation, text, parseMode, duration, width, height, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) +) = sendAnimation(chat.id, animation, text, parseMode, duration, width, height, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) /** @@ -116,6 +121,7 @@ suspend fun TelegramBot.sendAnimation( width: Int? = null, height: Int? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null @@ -129,6 +135,7 @@ suspend fun TelegramBot.sendAnimation( width, height, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup @@ -147,11 +154,12 @@ suspend fun TelegramBot.sendAnimation( width: Int? = null, height: Int? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendAnimation( - chatId, animation.fileId, animation.thumb ?.fileId, entities, duration, width, height, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup + chatId, animation.fileId, animation.thumb ?.fileId, entities, duration, width, height, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup ) /** @@ -167,10 +175,11 @@ suspend fun TelegramBot.sendAnimation( width: Int? = null, height: Int? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendAnimation(chat.id, animation, thumb, entities, duration, width, height, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) +) = sendAnimation(chat.id, animation, thumb, entities, duration, width, height, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) /** * @param replyMarkup Some of [KeyboardMarkup]. See [dev.inmo.tgbotapi.extensions.utils.types.buttons.replyKeyboard] or @@ -184,7 +193,8 @@ suspend fun TelegramBot.sendAnimation( width: Int? = null, height: Int? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendAnimation(chat.id, animation, entities, duration, width, height, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) +) = sendAnimation(chat.id, animation, entities, duration, width, height, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) diff --git a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendAudio.kt b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendAudio.kt index 646870807f..0d0a7bce36 100644 --- a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendAudio.kt +++ b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendAudio.kt @@ -25,6 +25,7 @@ suspend fun TelegramBot.sendAudio( performer: String? = null, title: String? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null @@ -39,6 +40,7 @@ suspend fun TelegramBot.sendAudio( performer, title, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup @@ -59,10 +61,11 @@ suspend fun TelegramBot.sendAudio( performer: String? = null, title: String? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendAudio(chat.id, audio, thumb, text, parseMode, duration, performer, title, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) +) = sendAudio(chat.id, audio, thumb, text, parseMode, duration, performer, title, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) /** * @param replyMarkup Some of [KeyboardMarkup]. See [dev.inmo.tgbotapi.extensions.utils.types.buttons.replyKeyboard] or @@ -75,10 +78,11 @@ suspend fun TelegramBot.sendAudio( parseMode: ParseMode? = null, title: String? = audio.title, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendAudio(chatId, audio.fileId, audio.thumb ?.fileId, text, parseMode, audio.duration, audio.performer, title, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) +) = sendAudio(chatId, audio.fileId, audio.thumb ?.fileId, text, parseMode, audio.duration, audio.performer, title, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) /** * @param replyMarkup Some of [KeyboardMarkup]. See [dev.inmo.tgbotapi.extensions.utils.types.buttons.replyKeyboard] or @@ -91,10 +95,11 @@ suspend fun TelegramBot.sendAudio( parseMode: ParseMode? = null, title: String? = audio.title, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendAudio(chat.id, audio, text, parseMode, title, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) +) = sendAudio(chat.id, audio, text, parseMode, title, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) /** @@ -110,6 +115,7 @@ suspend inline fun TelegramBot.sendAudio( performer: String? = null, title: String? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null @@ -123,6 +129,7 @@ suspend inline fun TelegramBot.sendAudio( performer, title, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup @@ -142,10 +149,11 @@ suspend inline fun TelegramBot.sendAudio( performer: String? = null, title: String? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendAudio(chat.id, audio, thumb, entities, duration, performer, title, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) +) = sendAudio(chat.id, audio, thumb, entities, duration, performer, title, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) /** * @param replyMarkup Some of [KeyboardMarkup]. See [dev.inmo.tgbotapi.extensions.utils.types.buttons.replyKeyboard] or @@ -157,10 +165,11 @@ suspend inline fun TelegramBot.sendAudio( entities: TextSourcesList, title: String? = audio.title, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendAudio(chatId, audio.fileId, audio.thumb ?.fileId, entities, audio.duration, audio.performer, title, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) +) = sendAudio(chatId, audio.fileId, audio.thumb ?.fileId, entities, audio.duration, audio.performer, title, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) /** * @param replyMarkup Some of [KeyboardMarkup]. See [dev.inmo.tgbotapi.extensions.utils.types.buttons.replyKeyboard] or @@ -172,7 +181,8 @@ suspend inline fun TelegramBot.sendAudio( entities: TextSourcesList, title: String? = audio.title, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendAudio(chat.id, audio, entities, title, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) +) = sendAudio(chat.id, audio, entities, title, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) diff --git a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendDocument.kt b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendDocument.kt index 13d3e25a54..8e263813fa 100644 --- a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendDocument.kt +++ b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendDocument.kt @@ -22,6 +22,7 @@ suspend fun TelegramBot.sendDocument( text: String? = null, parseMode: ParseMode? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null, @@ -34,6 +35,7 @@ suspend fun TelegramBot.sendDocument( text, parseMode, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup, @@ -52,11 +54,12 @@ suspend fun TelegramBot.sendDocument( text: String? = null, parseMode: ParseMode? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null, disableContentTypeDetection: Boolean? = null -) = sendDocument(chat.id, document, thumb, text, parseMode, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup, disableContentTypeDetection) +) = sendDocument(chat.id, document, thumb, text, parseMode, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup, disableContentTypeDetection) /** * @param replyMarkup Some of [KeyboardMarkup]. See [dev.inmo.tgbotapi.extensions.utils.types.buttons.replyKeyboard] or @@ -68,12 +71,13 @@ suspend fun TelegramBot.sendDocument( text: String? = null, parseMode: ParseMode? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null, disableContentTypeDetection: Boolean? = null ) = sendDocument( - chatId, document.fileId, document.thumb ?.fileId, text, parseMode, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup, disableContentTypeDetection + chatId, document.fileId, document.thumb ?.fileId, text, parseMode, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup, disableContentTypeDetection ) /** @@ -86,11 +90,12 @@ suspend fun TelegramBot.sendDocument( text: String? = null, parseMode: ParseMode? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null, disableContentTypeDetection: Boolean? = null -) = sendDocument(chat.id, document, text, parseMode, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup, disableContentTypeDetection) +) = sendDocument(chat.id, document, text, parseMode, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup, disableContentTypeDetection) /** * @param replyMarkup Some of [KeyboardMarkup]. See [dev.inmo.tgbotapi.extensions.utils.types.buttons.replyKeyboard] or @@ -102,6 +107,7 @@ suspend inline fun TelegramBot.sendDocument( thumb: InputFile? = null, entities: TextSourcesList, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null, @@ -113,6 +119,7 @@ suspend inline fun TelegramBot.sendDocument( thumb, entities, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup, @@ -130,11 +137,12 @@ suspend inline fun TelegramBot.sendDocument( thumb: InputFile? = null, entities: TextSourcesList, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null, disableContentTypeDetection: Boolean? = null -) = sendDocument(chat.id, document, thumb, entities, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup, disableContentTypeDetection) +) = sendDocument(chat.id, document, thumb, entities, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup, disableContentTypeDetection) /** * @param replyMarkup Some of [KeyboardMarkup]. See [dev.inmo.tgbotapi.extensions.utils.types.buttons.replyKeyboard] or @@ -145,12 +153,13 @@ suspend inline fun TelegramBot.sendDocument( document: DocumentFile, entities: TextSourcesList, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null, disableContentTypeDetection: Boolean? = null ) = sendDocument( - chatId, document.fileId, document.thumb ?.fileId, entities, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup, disableContentTypeDetection + chatId, document.fileId, document.thumb ?.fileId, entities, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup, disableContentTypeDetection ) /** @@ -162,8 +171,9 @@ suspend inline fun TelegramBot.sendDocument( document: DocumentFile, entities: TextSourcesList, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null, disableContentTypeDetection: Boolean? = null -) = sendDocument(chat.id, document, entities, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup, disableContentTypeDetection) +) = sendDocument(chat.id, document, entities, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup, disableContentTypeDetection) diff --git a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendMediaGroup.kt b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendMediaGroup.kt index abc11f38bb..0bd5de4206 100644 --- a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendMediaGroup.kt +++ b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendMediaGroup.kt @@ -17,11 +17,12 @@ suspend fun TelegramBot.sendMediaGroup( chatId: ChatIdentifier, media: List, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null ) = execute( SendMediaGroup( - chatId, media, disableNotification, replyToMessageId, allowSendingWithoutReply + chatId, media, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply ) ) @@ -33,10 +34,11 @@ suspend fun TelegramBot.sendMediaGroup( chat: Chat, media: List, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null ) = sendMediaGroup( - chat.id, media, disableNotification, replyToMessageId, allowSendingWithoutReply + chat.id, media, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply ) /** @@ -46,11 +48,12 @@ suspend fun TelegramBot.sendPlaylist( chatId: ChatIdentifier, media: List, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null ) = execute( SendPlaylist( - chatId, media, disableNotification, replyToMessageId, allowSendingWithoutReply + chatId, media, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply ) ) @@ -61,10 +64,11 @@ suspend fun TelegramBot.sendPlaylist( chat: Chat, media: List, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null ) = sendPlaylist( - chat.id, media, disableNotification, replyToMessageId, allowSendingWithoutReply + chat.id, media, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply ) /** @@ -74,11 +78,12 @@ suspend fun TelegramBot.sendDocumentsGroup( chatId: ChatIdentifier, media: List, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null ) = execute( SendDocumentsGroup( - chatId, media, disableNotification, replyToMessageId, allowSendingWithoutReply + chatId, media, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply ) ) @@ -89,10 +94,11 @@ suspend fun TelegramBot.sendDocumentsGroup( chat: Chat, media: List, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null ) = sendDocumentsGroup( - chat.id, media, disableNotification, replyToMessageId, allowSendingWithoutReply + chat.id, media, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply ) /** @@ -102,11 +108,12 @@ suspend fun TelegramBot.sendVisualMediaGroup( chatId: ChatIdentifier, media: List, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null ) = execute( SendVisualMediaGroup( - chatId, media, disableNotification, replyToMessageId, allowSendingWithoutReply + chatId, media, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply ) ) @@ -117,8 +124,9 @@ suspend fun TelegramBot.sendVisualMediaGroup( chat: Chat, media: List, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null ) = sendVisualMediaGroup( - chat.id, media, disableNotification, replyToMessageId, allowSendingWithoutReply + chat.id, media, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply ) 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 6ae7bc6d46..39d1b757af 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 @@ -22,6 +22,7 @@ suspend fun TelegramBot.sendPhoto( text: String? = null, parseMode: ParseMode? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null @@ -32,6 +33,7 @@ suspend fun TelegramBot.sendPhoto( text, parseMode, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup @@ -48,10 +50,11 @@ suspend fun TelegramBot.sendPhoto( text: String? = null, parseMode: ParseMode? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendPhoto(chat.id, fileId, text, parseMode, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) +) = sendPhoto(chat.id, fileId, text, parseMode, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) /** * @param replyMarkup Some of [KeyboardMarkup]. See [dev.inmo.tgbotapi.extensions.utils.types.buttons.replyKeyboard] or @@ -63,10 +66,11 @@ suspend fun TelegramBot.sendPhoto( text: String? = null, parseMode: ParseMode? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendPhoto(chatId, photo.biggest() ?.fileId ?: error("Photo content must not be empty"), text, parseMode, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) +) = sendPhoto(chatId, photo.biggest() ?.fileId ?: error("Photo content must not be empty"), text, parseMode, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) /** * @param replyMarkup Some of [KeyboardMarkup]. See [dev.inmo.tgbotapi.extensions.utils.types.buttons.replyKeyboard] or @@ -78,10 +82,11 @@ suspend fun TelegramBot.sendPhoto( text: String? = null, parseMode: ParseMode? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendPhoto(chat.id, photo, text, parseMode, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) +) = sendPhoto(chat.id, photo, text, parseMode, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) /** @@ -93,6 +98,7 @@ suspend inline fun TelegramBot.sendPhoto( fileId: InputFile, entities: TextSourcesList, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null @@ -102,6 +108,7 @@ suspend inline fun TelegramBot.sendPhoto( fileId, entities, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup @@ -117,10 +124,11 @@ suspend inline fun TelegramBot.sendPhoto( fileId: InputFile, entities: TextSourcesList, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendPhoto(chat.id, fileId, entities, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) +) = sendPhoto(chat.id, fileId, entities, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) /** * @param replyMarkup Some of [KeyboardMarkup]. See [dev.inmo.tgbotapi.extensions.utils.types.buttons.replyKeyboard] or @@ -131,10 +139,11 @@ suspend inline fun TelegramBot.sendPhoto( photo: Photo, entities: TextSourcesList, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendPhoto(chatId, photo.biggest() ?.fileId ?: error("Photo content must not be empty"), entities, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) +) = sendPhoto(chatId, photo.biggest() ?.fileId ?: error("Photo content must not be empty"), entities, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) /** * @param replyMarkup Some of [KeyboardMarkup]. See [dev.inmo.tgbotapi.extensions.utils.types.buttons.replyKeyboard] or @@ -145,7 +154,8 @@ suspend inline fun TelegramBot.sendPhoto( photo: Photo, entities: TextSourcesList, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendPhoto(chat.id, photo, entities, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) +) = sendPhoto(chat.id, photo, entities, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) diff --git a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendSticker.kt b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendSticker.kt index 1a06fbc617..d236e11cf3 100644 --- a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendSticker.kt +++ b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendSticker.kt @@ -17,11 +17,12 @@ suspend fun TelegramBot.sendSticker( chatId: ChatIdentifier, sticker: InputFile, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = execute( - SendSticker(chatId, sticker, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) + SendSticker(chatId, sticker, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) ) /** @@ -32,10 +33,11 @@ suspend fun TelegramBot.sendSticker( chat: Chat, sticker: InputFile, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendSticker(chat.id, sticker, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) +) = sendSticker(chat.id, sticker, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) /** * @param replyMarkup Some of [KeyboardMarkup]. See [dev.inmo.tgbotapi.extensions.utils.types.buttons.replyKeyboard] or @@ -45,10 +47,11 @@ suspend fun TelegramBot.sendSticker( chatId: ChatIdentifier, sticker: Sticker, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendSticker(chatId, sticker.fileId, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) +) = sendSticker(chatId, sticker.fileId, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) /** * @param replyMarkup Some of [KeyboardMarkup]. See [dev.inmo.tgbotapi.extensions.utils.types.buttons.replyKeyboard] or @@ -58,7 +61,8 @@ suspend fun TelegramBot.sendSticker( chat: Chat, sticker: Sticker, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendSticker(chat, sticker.fileId, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) +) = sendSticker(chat, sticker.fileId, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) diff --git a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendVideo.kt b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendVideo.kt index 4460af5284..6ea1a7a937 100644 --- a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendVideo.kt +++ b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendVideo.kt @@ -25,6 +25,7 @@ suspend fun TelegramBot.sendVideo( width: Int? = null, height: Int? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null @@ -40,6 +41,7 @@ suspend fun TelegramBot.sendVideo( height, null, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup @@ -56,10 +58,11 @@ suspend fun TelegramBot.sendVideo( text: String? = null, parseMode: ParseMode? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendVideo(chatId, video.fileId, video.thumb ?.fileId, text, parseMode, video.duration, video.width, video.height, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) +) = sendVideo(chatId, video.fileId, video.thumb ?.fileId, text, parseMode, video.duration, video.width, video.height, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) /** * @param replyMarkup Some of [KeyboardMarkup]. See [dev.inmo.tgbotapi.extensions.utils.types.buttons.replyKeyboard] or @@ -75,10 +78,11 @@ suspend fun TelegramBot.sendVideo( width: Int? = null, height: Int? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendVideo(chat.id, video, thumb, text, parseMode, duration, width, height, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) +) = sendVideo(chat.id, video, thumb, text, parseMode, duration, width, height, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) /** @@ -91,10 +95,11 @@ suspend fun TelegramBot.sendVideo( text: String? = null, parseMode: ParseMode? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendVideo(chat.id, video, text, parseMode, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) +) = sendVideo(chat.id, video, text, parseMode, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) /** * @param replyMarkup Some of [KeyboardMarkup]. See [dev.inmo.tgbotapi.extensions.utils.types.buttons.replyKeyboard] or @@ -109,6 +114,7 @@ suspend inline fun TelegramBot.sendVideo( width: Int? = null, height: Int? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null @@ -123,6 +129,7 @@ suspend inline fun TelegramBot.sendVideo( height, null, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup @@ -138,10 +145,11 @@ suspend inline fun TelegramBot.sendVideo( video: VideoFile, entities: TextSourcesList, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendVideo(chatId, video.fileId, video.thumb ?.fileId, entities, video.duration, video.width, video.height, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) +) = sendVideo(chatId, video.fileId, video.thumb ?.fileId, entities, video.duration, video.width, video.height, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) /** * @param replyMarkup Some of [KeyboardMarkup]. See [dev.inmo.tgbotapi.extensions.utils.types.buttons.replyKeyboard] or @@ -156,10 +164,11 @@ suspend inline fun TelegramBot.sendVideo( width: Int? = null, height: Int? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendVideo(chat.id, video, thumb, entities, duration, width, height, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) +) = sendVideo(chat.id, video, thumb, entities, duration, width, height, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) /** @@ -171,7 +180,8 @@ suspend inline fun TelegramBot.sendVideo( video: VideoFile, entities: TextSourcesList, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendVideo(chat.id, video, entities, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) +) = sendVideo(chat.id, video, entities, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) diff --git a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendVideoNote.kt b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendVideoNote.kt index 5a9a734f1a..49c4e45ab3 100644 --- a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendVideoNote.kt +++ b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendVideoNote.kt @@ -20,6 +20,7 @@ suspend fun TelegramBot.sendVideoNote( duration: Long? = null, size: Int? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null @@ -31,6 +32,7 @@ suspend fun TelegramBot.sendVideoNote( duration, size, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup @@ -45,11 +47,12 @@ suspend fun TelegramBot.sendVideoNote( chatId: ChatIdentifier, videoNote: VideoNoteFile, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendVideoNote( - chatId, videoNote.fileId, videoNote.thumb ?.fileId, videoNote.duration, videoNote.width, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup + chatId, videoNote.fileId, videoNote.thumb ?.fileId, videoNote.duration, videoNote.width, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup ) /** @@ -63,10 +66,11 @@ suspend fun TelegramBot.sendVideoNote( duration: Long? = null, size: Int? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendVideoNote(chat.id, videoNote, thumb, duration, size, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) +) = sendVideoNote(chat.id, videoNote, thumb, duration, size, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) /** * @param replyMarkup Some of [KeyboardMarkup]. See [dev.inmo.tgbotapi.extensions.utils.types.buttons.replyKeyboard] or @@ -76,7 +80,8 @@ suspend fun TelegramBot.sendVideoNote( chat: Chat, videoNote: VideoNoteFile, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendVideoNote(chat.id, videoNote, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) +) = sendVideoNote(chat.id, videoNote, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) diff --git a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendVoice.kt b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendVoice.kt index 5f32941240..59ce948318 100644 --- a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendVoice.kt +++ b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendVoice.kt @@ -23,6 +23,7 @@ suspend fun TelegramBot.sendVoice( parseMode: ParseMode? = null, duration: Long? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null @@ -34,6 +35,7 @@ suspend fun TelegramBot.sendVoice( parseMode, duration, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup @@ -51,10 +53,11 @@ suspend fun TelegramBot.sendVoice( parseMode: ParseMode? = null, duration: Long? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendVoice(chat.id, voice, text, parseMode, duration, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) +) = sendVoice(chat.id, voice, text, parseMode, duration, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) /** * @param replyMarkup Some of [KeyboardMarkup]. See [dev.inmo.tgbotapi.extensions.utils.types.buttons.replyKeyboard] or @@ -66,11 +69,12 @@ suspend fun TelegramBot.sendVoice( text: String? = null, parseMode: ParseMode? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendVoice( - chatId, voice.fileId, text, parseMode, voice.duration, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup + chatId, voice.fileId, text, parseMode, voice.duration, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup ) /** @@ -83,10 +87,11 @@ suspend fun TelegramBot.sendVoice( text: String? = null, parseMode: ParseMode? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendVoice(chat.id, voice, text, parseMode, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) +) = sendVoice(chat.id, voice, text, parseMode, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) /** @@ -99,6 +104,7 @@ suspend inline fun TelegramBot.sendVoice( entities: TextSourcesList, duration: Long? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null @@ -109,6 +115,7 @@ suspend inline fun TelegramBot.sendVoice( entities, duration, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup @@ -125,10 +132,11 @@ suspend inline fun TelegramBot.sendVoice( entities: TextSourcesList, duration: Long? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendVoice(chat.id, voice, entities, duration, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) +) = sendVoice(chat.id, voice, entities, duration, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) /** * @param replyMarkup Some of [KeyboardMarkup]. See [dev.inmo.tgbotapi.extensions.utils.types.buttons.replyKeyboard] or @@ -139,11 +147,12 @@ suspend inline fun TelegramBot.sendVoice( voice: VoiceFile, entities: TextSourcesList, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendVoice( - chatId, voice.fileId, entities, voice.duration, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup + chatId, voice.fileId, entities, voice.duration, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup ) /** * @param replyMarkup Some of [KeyboardMarkup]. See [dev.inmo.tgbotapi.extensions.utils.types.buttons.replyKeyboard] or @@ -154,7 +163,8 @@ suspend inline fun TelegramBot.sendVoice( voice: VoiceFile, entities: TextSourcesList, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendVoice(chat.id, voice, entities, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) +) = sendVoice(chat.id, voice, entities, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) diff --git a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/payments/SendInvoice.kt b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/payments/SendInvoice.kt index f97ecffa50..3d449efd82 100644 --- a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/payments/SendInvoice.kt +++ b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/payments/SendInvoice.kt @@ -31,11 +31,12 @@ suspend fun TelegramBot.sendInvoice( shouldSendEmailToProvider: Boolean = false, priceDependOnShipAddress: Boolean = false, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: InlineKeyboardMarkup? = null ) = execute( - SendInvoice(chatId, title, description, payload, providerToken, currency, prices, maxTipAmount, suggestedTipAmounts ?.sorted(), startParameter, providerData, requireName, requirePhoneNumber, requireEmail, requireShippingAddress, shouldSendPhoneNumberToProvider, shouldSendEmailToProvider, priceDependOnShipAddress, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) + SendInvoice(chatId, title, description, payload, providerToken, currency, prices, maxTipAmount, suggestedTipAmounts ?.sorted(), startParameter, providerData, requireName, requirePhoneNumber, requireEmail, requireShippingAddress, shouldSendPhoneNumberToProvider, shouldSendEmailToProvider, priceDependOnShipAddress, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) ) /** @@ -62,7 +63,8 @@ suspend fun TelegramBot.sendInvoice( shouldSendEmailToProvider: Boolean = false, priceDependOnShipAddress: Boolean = false, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: InlineKeyboardMarkup? = null -) = sendInvoice(user.id, title, description, payload, providerToken, currency, prices, maxTipAmount, suggestedTipAmounts, startParameter, providerData, requireName, requirePhoneNumber, requireEmail, requireShippingAddress, shouldSendPhoneNumberToProvider, shouldSendEmailToProvider, priceDependOnShipAddress, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) +) = sendInvoice(user.id, title, description, payload, providerToken, currency, prices, maxTipAmount, suggestedTipAmounts, startParameter, providerData, requireName, requirePhoneNumber, requireEmail, requireShippingAddress, shouldSendPhoneNumberToProvider, shouldSendEmailToProvider, priceDependOnShipAddress, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) diff --git a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/polls/SendPoll.kt b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/polls/SendPoll.kt index b499b88f5b..6a6d28b5bb 100644 --- a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/polls/SendPoll.kt +++ b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/polls/SendPoll.kt @@ -24,12 +24,13 @@ suspend fun TelegramBot.sendRegularPoll( allowMultipleAnswers: Boolean = false, closeInfo: ScheduledCloseInfo? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = execute( SendRegularPoll( - chatId, question, options, isAnonymous, isClosed, allowMultipleAnswers, closeInfo, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup + chatId, question, options, isAnonymous, isClosed, allowMultipleAnswers, closeInfo, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup ) ) /** @@ -46,10 +47,11 @@ suspend fun TelegramBot.sendRegularPoll( allowMultipleAnswers: Boolean = poll.allowMultipleAnswers, closeInfo: ScheduledCloseInfo? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendRegularPoll(chatId, question, options, isAnonymous, isClosed, allowMultipleAnswers, closeInfo, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) +) = sendRegularPoll(chatId, question, options, isAnonymous, isClosed, allowMultipleAnswers, closeInfo, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) /** * @param replyMarkup Some of [KeyboardMarkup]. See [dev.inmo.tgbotapi.extensions.utils.types.buttons.replyKeyboard] or @@ -64,11 +66,12 @@ suspend fun TelegramBot.sendRegularPoll( allowMultipleAnswers: Boolean = false, closeInfo: ScheduledCloseInfo? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendRegularPoll( - chat.id, question, options, isAnonymous, isClosed, allowMultipleAnswers, closeInfo, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup + chat.id, question, options, isAnonymous, isClosed, allowMultipleAnswers, closeInfo, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup ) /** @@ -85,11 +88,12 @@ suspend fun TelegramBot.sendRegularPoll( allowMultipleAnswers: Boolean = poll.allowMultipleAnswers, closeInfo: ScheduledCloseInfo? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendRegularPoll( - chat.id, question, options, isAnonymous, isClosed, allowMultipleAnswers, closeInfo, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup + chat.id, question, options, isAnonymous, isClosed, allowMultipleAnswers, closeInfo, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup ) @@ -108,12 +112,13 @@ suspend fun TelegramBot.sendQuizPoll( parseMode: ParseMode? = null, closeInfo: ScheduledCloseInfo? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = execute( SendQuizPoll( - chatId, question, options, correctOptionId, isAnonymous, isClosed, explanation, parseMode, closeInfo, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup + chatId, question, options, correctOptionId, isAnonymous, isClosed, explanation, parseMode, closeInfo, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup ) ) @@ -132,11 +137,12 @@ suspend fun TelegramBot.sendQuizPoll( parseMode: ParseMode? = null, closeInfo: ScheduledCloseInfo? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendQuizPoll( - chat.id, question, options, correctOptionId, isAnonymous, isClosed, explanation, parseMode, closeInfo, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup + chat.id, question, options, correctOptionId, isAnonymous, isClosed, explanation, parseMode, closeInfo, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup ) /** @@ -155,11 +161,12 @@ suspend fun TelegramBot.sendQuizPoll( parseMode: ParseMode? = null, closeInfo: ScheduledCloseInfo? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendQuizPoll( - chatId, question, options, correctOptionId, isAnonymous, isClosed, explanation, parseMode, closeInfo, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup + chatId, question, options, correctOptionId, isAnonymous, isClosed, explanation, parseMode, closeInfo, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup ) /** @@ -178,11 +185,12 @@ suspend fun TelegramBot.sendQuizPoll( parseMode: ParseMode? = null, closeInfo: ScheduledCloseInfo? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendQuizPoll( - chat.id, question, options, correctOptionId, isAnonymous, isClosed, explanation, parseMode, closeInfo, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup + chat.id, question, options, correctOptionId, isAnonymous, isClosed, explanation, parseMode, closeInfo, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup ) @@ -200,12 +208,13 @@ suspend inline fun TelegramBot.sendQuizPoll( entities: TextSourcesList, closeInfo: ScheduledCloseInfo? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = execute( SendQuizPoll( - chatId, question, options, correctOptionId, isAnonymous, isClosed, entities, closeInfo, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup + chatId, question, options, correctOptionId, isAnonymous, isClosed, entities, closeInfo, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup ) ) @@ -223,11 +232,12 @@ suspend inline fun TelegramBot.sendQuizPoll( entities: TextSourcesList, closeInfo: ScheduledCloseInfo? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendQuizPoll( - chat.id, question, options, correctOptionId, isAnonymous, isClosed, entities, closeInfo, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup + chat.id, question, options, correctOptionId, isAnonymous, isClosed, entities, closeInfo, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup ) /** @@ -245,11 +255,12 @@ suspend inline fun TelegramBot.sendQuizPoll( entities: TextSourcesList, closeInfo: ScheduledCloseInfo? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendQuizPoll( - chatId, question, options, correctOptionId, isAnonymous, isClosed, entities, closeInfo, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup + chatId, question, options, correctOptionId, isAnonymous, isClosed, entities, closeInfo, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup ) /** @@ -267,9 +278,10 @@ suspend inline fun TelegramBot.sendQuizPoll( entities: TextSourcesList, closeInfo: ScheduledCloseInfo? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendQuizPoll( - chat.id, question, options, correctOptionId, isAnonymous, isClosed, entities, closeInfo, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup + chat.id, question, options, correctOptionId, isAnonymous, isClosed, entities, closeInfo, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup ) diff --git a/tgbotapi.core/README.md b/tgbotapi.core/README.md index b90216021c..6948bc1ba7 100644 --- a/tgbotapi.core/README.md +++ b/tgbotapi.core/README.md @@ -2,20 +2,6 @@ [![Maven Central](https://maven-badges.herokuapp.com/maven-central/dev.inmo/tgbotapi.core/badge.svg)](https://maven-badges.herokuapp.com/maven-central/dev.inmo/tgbotapi.core) -- [TelegramBotAPI Core](#telegrambotapi-core) - * [What is it?](#what-is-it-) - * [Compatibility](#compatibility) - * [How to implement library?](#how-to-implement-library-) - + [Maven](#maven) - + [Gradle](#gradle) - * [How to work with library?](#how-to-work-with-library-) - + [Types](#types) - + [Requests](#requests) - + [RequestsExecutor](#requestsexecutor) - + [Passport](#passport) - -Table of contents generated with markdown-toc - ## What is it? Library for Object-Oriented and type-safe work with Telegram Bot API. Most part of some specific solves or unuseful diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/CommonAbstracts/types/ProtectContent.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/CommonAbstracts/types/ProtectContent.kt new file mode 100644 index 0000000000..7bfdbbcc0c --- /dev/null +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/CommonAbstracts/types/ProtectContent.kt @@ -0,0 +1,5 @@ +package dev.inmo.tgbotapi.CommonAbstracts.types + +interface ProtectContent { + val protectContent: Boolean +} diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/ForwardMessage.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/ForwardMessage.kt index 5428305ec6..deb9c2dbf3 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/ForwardMessage.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/ForwardMessage.kt @@ -1,6 +1,7 @@ package dev.inmo.tgbotapi.requests import dev.inmo.tgbotapi.CommonAbstracts.types.MessageAction +import dev.inmo.tgbotapi.CommonAbstracts.types.ProtectContent import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest import dev.inmo.tgbotapi.types.* import dev.inmo.tgbotapi.types.message.abstracts.PossiblyForwardedMessage @@ -18,8 +19,10 @@ data class ForwardMessage( @SerialName(messageIdField) override val messageId: MessageIdentifier, @SerialName(disableNotificationField) - val disableNotification: Boolean = false -): SimpleRequest, MessageAction { + val disableNotification: Boolean = false, + @SerialName(protectContentField) + override val protectContent: Boolean = false +): SimpleRequest, MessageAction, ProtectContent { override val chatId: ChatIdentifier get() = fromChatId diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/CopyMessage.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/CopyMessage.kt index 1552a06819..cc609a21ca 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/CopyMessage.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/CopyMessage.kt @@ -2,6 +2,7 @@ package dev.inmo.tgbotapi.requests.send import dev.inmo.tgbotapi.CommonAbstracts.TextedOutput import dev.inmo.tgbotapi.CommonAbstracts.types.MessageAction +import dev.inmo.tgbotapi.CommonAbstracts.types.ProtectContent import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest import dev.inmo.tgbotapi.requests.send.abstracts.ReplyingMarkupSendMessageRequest import dev.inmo.tgbotapi.types.* @@ -20,10 +21,11 @@ fun CopyMessage( text: String? = null, parseMode: ParseMode? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = CopyMessage(fromChatId, toChatId, messageId, text, parseMode, null, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) +) = CopyMessage(fromChatId, toChatId, messageId, text, parseMode, null, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) fun CopyMessage( fromChatId: ChatIdentifier, @@ -31,6 +33,7 @@ fun CopyMessage( messageId: MessageIdentifier, entities: List, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null @@ -42,6 +45,7 @@ fun CopyMessage( null, entities.toRawMessageEntities(), disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup @@ -63,6 +67,8 @@ data class CopyMessage internal constructor( private val rawEntities: List? = null, @SerialName(disableNotificationField) override val disableNotification: Boolean = false, + @SerialName(protectContentField) + override val protectContent: Boolean = false, @SerialName(replyToMessageIdField) override val replyToMessageId: MessageIdentifier? = null, @SerialName(allowSendingWithoutReplyField) @@ -72,7 +78,8 @@ data class CopyMessage internal constructor( ): SimpleRequest, ReplyingMarkupSendMessageRequest, MessageAction, - TextedOutput { + TextedOutput, + ProtectContent { override val chatId: ChatIdentifier get() = fromChatId override val textSources: List? by lazy { diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/SendContact.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/SendContact.kt index 77613e5d93..ab14401ef2 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/SendContact.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/SendContact.kt @@ -24,6 +24,8 @@ data class SendContact( val lastName: String? = null, @SerialName(disableNotificationField) override val disableNotification: Boolean = false, + @SerialName(protectContentField) + override val protectContent: Boolean = false, @SerialName(replyToMessageIdField) override val replyToMessageId: MessageIdentifier? = null, @SerialName(allowSendingWithoutReplyField) @@ -37,6 +39,7 @@ data class SendContact( chatId: ChatIdentifier, contact: Contact, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null @@ -46,6 +49,7 @@ data class SendContact( contact.firstName, contact.lastName, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup @@ -61,6 +65,7 @@ data class SendContact( fun Contact.toRequest( chatId: ChatIdentifier, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null @@ -68,6 +73,7 @@ fun Contact.toRequest( chatId, this, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/SendDice.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/SendDice.kt index 8347737808..30de39bf7a 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/SendDice.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/SendDice.kt @@ -22,6 +22,8 @@ data class SendDice( val animationType: DiceAnimationType? = null, @SerialName(disableNotificationField) override val disableNotification: Boolean = false, + @SerialName(protectContentField) + override val protectContent: Boolean = false, @SerialName(replyToMessageIdField) override val replyToMessageId: MessageIdentifier? = null, @SerialName(allowSendingWithoutReplyField) @@ -36,4 +38,4 @@ data class SendDice( override val resultDeserializer: DeserializationStrategy> get() = DiceContentMessageResultDeserializer -} \ No newline at end of file +} diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/SendLocation.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/SendLocation.kt index 9d564a92f9..8cb6d76d44 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/SendLocation.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/SendLocation.kt @@ -19,6 +19,7 @@ fun SendLocation( latitude: Double, longitude: Double, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null @@ -31,6 +32,7 @@ fun SendLocation( null, null, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup @@ -41,10 +43,11 @@ fun SendStaticLocation( latitude: Double, longitude: Double, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = SendLocation(chatId, latitude, longitude, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) +) = SendLocation(chatId, latitude, longitude, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) fun SendLiveLocation( chatId: ChatIdentifier, @@ -55,6 +58,7 @@ fun SendLiveLocation( heading: Degrees? = null, proximityAlertRadius: Meters? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null @@ -67,6 +71,7 @@ fun SendLiveLocation( heading, proximityAlertRadius, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup @@ -90,6 +95,8 @@ data class SendLocation internal constructor( override val proximityAlertRadius: Meters? = null, @SerialName(disableNotificationField) override val disableNotification: Boolean = false, + @SerialName(protectContentField) + override val protectContent: Boolean = false, @SerialName(replyToMessageIdField) override val replyToMessageId: MessageIdentifier? = null, @SerialName(allowSendingWithoutReplyField) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/SendMessage.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/SendMessage.kt index 0589229075..c9940e4ebd 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/SendMessage.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/SendMessage.kt @@ -24,6 +24,7 @@ fun SendTextMessage( parseMode: ParseMode? = null, disableWebPagePreview: Boolean? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null @@ -34,6 +35,7 @@ fun SendTextMessage( null, disableWebPagePreview, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup @@ -44,6 +46,7 @@ fun SendTextMessage( entities: TextSourcesList, disableWebPagePreview: Boolean? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null @@ -54,6 +57,7 @@ fun SendTextMessage( entities.toRawMessageEntities(), disableWebPagePreview, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup @@ -73,6 +77,8 @@ data class SendTextMessage internal constructor( override val disableWebPagePreview: Boolean? = null, @SerialName(disableNotificationField) override val disableNotification: Boolean = false, + @SerialName(protectContentField) + override val protectContent: Boolean = false, @SerialName(replyToMessageIdField) override val replyToMessageId: MessageIdentifier? = null, @SerialName(allowSendingWithoutReplyField) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/SendVenue.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/SendVenue.kt index fe0c5f2825..b1d91c9de8 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/SendVenue.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/SendVenue.kt @@ -34,6 +34,8 @@ data class SendVenue( val googlePlaceType: GooglePlaceType? = null, @SerialName(disableNotificationField) override val disableNotification: Boolean = false, + @SerialName(protectContentField) + override val protectContent: Boolean = false, @SerialName(replyToMessageIdField) override val replyToMessageId: MessageIdentifier? = null, @SerialName(allowSendingWithoutReplyField) @@ -49,6 +51,7 @@ data class SendVenue( chatId: ChatIdentifier, venue: Venue, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null @@ -63,6 +66,7 @@ data class SendVenue( googlePlaceId = venue.googlePlaceId, googlePlaceType = venue.googlePlaceType, disableNotification = disableNotification, + protectContent = protectContent, replyToMessageId = replyToMessageId, allowSendingWithoutReply = allowSendingWithoutReply, replyMarkup = replyMarkup @@ -78,6 +82,7 @@ data class SendVenue( fun Venue.toRequest( chatId: ChatIdentifier, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null @@ -85,6 +90,7 @@ fun Venue.toRequest( chatId, this, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/abstracts/SendMessageRequest.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/abstracts/SendMessageRequest.kt index b6d986b3da..9d0b463627 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/abstracts/SendMessageRequest.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/abstracts/SendMessageRequest.kt @@ -1,6 +1,5 @@ package dev.inmo.tgbotapi.requests.send.abstracts -import dev.inmo.tgbotapi.CommonAbstracts.types.DisableNotification -import dev.inmo.tgbotapi.CommonAbstracts.types.ReplyMessageId +import dev.inmo.tgbotapi.CommonAbstracts.types.* -interface SendMessageRequest : SendChatMessageRequest, ReplyMessageId, DisableNotification +interface SendMessageRequest : SendChatMessageRequest, ReplyMessageId, DisableNotification, ProtectContent diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/games/SendGame.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/games/SendGame.kt index 7f49e410fe..ce58988b5d 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/games/SendGame.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/games/SendGame.kt @@ -20,6 +20,8 @@ data class SendGame ( val gameShortName: String, @SerialName(disableNotificationField) override val disableNotification: Boolean = false, + @SerialName(protectContentField) + override val protectContent: Boolean = false, @SerialName(replyToMessageIdField) override val replyToMessageId: MessageIdentifier? = null, @SerialName(allowSendingWithoutReplyField) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendAnimation.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendAnimation.kt index 10ed428b25..d74034defb 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendAnimation.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendAnimation.kt @@ -27,6 +27,7 @@ fun SendAnimation( width: Int? = null, height: Int? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null @@ -47,6 +48,7 @@ fun SendAnimation( width, height, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup @@ -71,6 +73,7 @@ fun SendAnimation( width: Int? = null, height: Int? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null @@ -91,6 +94,7 @@ fun SendAnimation( width, height, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup @@ -131,6 +135,8 @@ data class SendAnimationData internal constructor( override val height: Int? = null, @SerialName(disableNotificationField) override val disableNotification: Boolean = false, + @SerialName(protectContentField) + override val protectContent: Boolean = false, @SerialName(replyToMessageIdField) override val replyToMessageId: MessageIdentifier? = null, @SerialName(allowSendingWithoutReplyField) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendAudio.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendAudio.kt index f77ea46fb2..9c16f1fb6c 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendAudio.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendAudio.kt @@ -28,6 +28,7 @@ fun SendAudio( performer: String? = null, title: String? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null @@ -48,6 +49,7 @@ fun SendAudio( performer, title, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup @@ -72,6 +74,7 @@ fun SendAudio( performer: String? = null, title: String? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null @@ -92,6 +95,7 @@ fun SendAudio( performer, title, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup @@ -132,6 +136,8 @@ data class SendAudioData internal constructor( override val title: String? = null, @SerialName(disableNotificationField) override val disableNotification: Boolean = false, + @SerialName(protectContentField) + override val protectContent: Boolean = false, @SerialName(replyToMessageIdField) override val replyToMessageId: MessageIdentifier? = null, @SerialName(allowSendingWithoutReplyField) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendDocument.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendDocument.kt index 1a6b729d9d..e9f43ae2bd 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendDocument.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendDocument.kt @@ -33,6 +33,7 @@ fun SendDocument( text: String? = null, parseMode: ParseMode? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null, @@ -51,6 +52,7 @@ fun SendDocument( parseMode, null, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup, @@ -82,6 +84,7 @@ fun SendDocument( thumb: InputFile? = null, entities: TextSourcesList, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null, @@ -100,6 +103,7 @@ fun SendDocument( null, entities.toRawMessageEntities(), disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup, @@ -144,6 +148,8 @@ data class SendDocumentData internal constructor( private val rawEntities: List? = null, @SerialName(disableNotificationField) override val disableNotification: Boolean = false, + @SerialName(protectContentField) + override val protectContent: Boolean = false, @SerialName(replyToMessageIdField) override val replyToMessageId: MessageIdentifier? = null, @SerialName(allowSendingWithoutReplyField) 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 1352d3a9b9..5159222625 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 @@ -25,6 +25,7 @@ fun SendMediaGroup( chatId: ChatIdentifier, media: List, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null ): Request>> { @@ -47,6 +48,7 @@ fun SendMediaGroup( chatId, media, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply ) @@ -71,9 +73,10 @@ inline fun SendPlaylist( chatId: ChatIdentifier, media: List, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null -) = SendMediaGroup(chatId, media, disableNotification, replyToMessageId, allowSendingWithoutReply) +) = SendMediaGroup(chatId, media, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply) /** * Use this method to be sure that you are correctly sending documents media group @@ -85,9 +88,10 @@ inline fun SendDocumentsGroup( chatId: ChatIdentifier, media: List, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null -) = SendMediaGroup(chatId, media, disableNotification, replyToMessageId, allowSendingWithoutReply) +) = SendMediaGroup(chatId, media, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply) /** * Use this method to be sure that you are correctly sending visual media group @@ -100,9 +104,10 @@ inline fun SendVisualMediaGroup( chatId: ChatIdentifier, media: List, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null -) = SendMediaGroup(chatId, media, disableNotification, replyToMessageId, allowSendingWithoutReply) +) = SendMediaGroup(chatId, media, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply) private val messagesListSerializer: KSerializer>> = ListSerializer(TelegramBotAPIMessageDeserializeOnlySerializerClass()) @@ -114,6 +119,8 @@ data class SendMediaGroupData internal constructor( val media: List = emptyList(), @SerialName(disableNotificationField) override val disableNotification: Boolean = false, + @SerialName(protectContentField) + override val protectContent: Boolean = false, @SerialName(replyToMessageIdField) override val replyToMessageId: MessageIdentifier? = null, @SerialName(allowSendingWithoutReplyField) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendPhoto.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendPhoto.kt index d132fbc460..61ac961d0c 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendPhoto.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendPhoto.kt @@ -22,6 +22,7 @@ fun SendPhoto( text: String? = null, parseMode: ParseMode? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null @@ -33,6 +34,7 @@ fun SendPhoto( parseMode, null, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup @@ -50,6 +52,7 @@ fun SendPhoto( photo: InputFile, entities: TextSourcesList, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null @@ -61,6 +64,7 @@ fun SendPhoto( null, entities.toRawMessageEntities(), disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup @@ -90,6 +94,8 @@ data class SendPhotoData internal constructor( private val rawEntities: List? = null, @SerialName(disableNotificationField) override val disableNotification: Boolean = false, + @SerialName(protectContentField) + override val protectContent: Boolean = false, @SerialName(replyToMessageIdField) override val replyToMessageId: MessageIdentifier? = null, @SerialName(allowSendingWithoutReplyField) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendSticker.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendSticker.kt index e19140ba51..91b771bb40 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendSticker.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendSticker.kt @@ -16,6 +16,7 @@ fun SendSticker( chatId: ChatIdentifier, sticker: InputFile, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null @@ -23,6 +24,7 @@ fun SendSticker( chatId, sticker as? FileId, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup @@ -44,6 +46,8 @@ data class SendStickerByFileId internal constructor( val sticker: FileId? = null, @SerialName(disableNotificationField) override val disableNotification: Boolean = false, + @SerialName(protectContentField) + override val protectContent: Boolean = false, @SerialName(replyToMessageIdField) override val replyToMessageId: MessageIdentifier? = null, @SerialName(allowSendingWithoutReplyField) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendVideo.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendVideo.kt index 067b8e29aa..3c74a2adbf 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendVideo.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendVideo.kt @@ -28,6 +28,7 @@ fun SendVideo( height: Int? = null, supportStreaming: Boolean? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null @@ -49,6 +50,7 @@ fun SendVideo( height, supportStreaming, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup @@ -74,6 +76,7 @@ fun SendVideo( height: Int? = null, supportStreaming: Boolean? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null @@ -95,6 +98,7 @@ fun SendVideo( height, supportStreaming, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup @@ -137,6 +141,8 @@ data class SendVideoData internal constructor( val supportStreaming: Boolean? = null, @SerialName(disableNotificationField) override val disableNotification: Boolean = false, + @SerialName(protectContentField) + override val protectContent: Boolean = false, @SerialName(replyToMessageIdField) override val replyToMessageId: MessageIdentifier? = null, @SerialName(allowSendingWithoutReplyField) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendVideoNote.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendVideoNote.kt index 94d5b710fb..d3d61fc220 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendVideoNote.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendVideoNote.kt @@ -18,6 +18,7 @@ fun SendVideoNote( duration: Long? = null, size: Int? = null, // in documentation - length (size of video side) disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null @@ -34,6 +35,7 @@ fun SendVideoNote( duration, size, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup @@ -66,6 +68,8 @@ data class SendVideoNoteData internal constructor( override val width: Int? = null, @SerialName(disableNotificationField) override val disableNotification: Boolean = false, + @SerialName(protectContentField) + override val protectContent: Boolean = false, @SerialName(replyToMessageIdField) override val replyToMessageId: MessageIdentifier? = null, @SerialName(allowSendingWithoutReplyField) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendVoice.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendVoice.kt index 6412b39342..aa4b60c2da 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendVoice.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/media/SendVoice.kt @@ -24,6 +24,7 @@ fun SendVoice( parseMode: ParseMode? = null, duration: Long? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null @@ -39,6 +40,7 @@ fun SendVoice( null, duration, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup @@ -60,6 +62,7 @@ fun SendVoice( entities: TextSourcesList, duration: Long? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null @@ -75,6 +78,7 @@ fun SendVoice( entities.toRawMessageEntities(), duration, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup @@ -109,6 +113,8 @@ data class SendVoiceData internal constructor( override val duration: Long? = null, @SerialName(disableNotificationField) override val disableNotification: Boolean = false, + @SerialName(protectContentField) + override val protectContent: Boolean = false, @SerialName(replyToMessageIdField) override val replyToMessageId: MessageIdentifier? = null, @SerialName(allowSendingWithoutReplyField) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/payments/SendInvoice.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/payments/SendInvoice.kt index 387382016b..226f368d3a 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/payments/SendInvoice.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/payments/SendInvoice.kt @@ -60,6 +60,8 @@ data class SendInvoice( override val priceDependOnShipAddress: Boolean = false, @SerialName(disableNotificationField) override val disableNotification: Boolean = false, + @SerialName(protectContentField) + override val protectContent: Boolean = false, @SerialName(replyToMessageIdField) override val replyToMessageId: MessageIdentifier? = null, @SerialName(allowSendingWithoutReplyField) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/polls/SendPoll.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/polls/SendPoll.kt index b0e6391403..2333518679 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/polls/SendPoll.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/send/polls/SendPoll.kt @@ -47,6 +47,7 @@ fun SendPoll( isAnonymous: Boolean = true, isClosed: Boolean = false, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null @@ -69,6 +70,7 @@ fun SendPoll( fun Poll.createRequest( chatId: ChatIdentifier, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null @@ -82,6 +84,7 @@ fun Poll.createRequest( allowMultipleAnswers, scheduledCloseInfo, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup @@ -97,6 +100,7 @@ fun Poll.createRequest( textSources, scheduledCloseInfo, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup @@ -110,6 +114,7 @@ fun Poll.createRequest( false, scheduledCloseInfo, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup @@ -123,6 +128,7 @@ fun Poll.createRequest( false, scheduledCloseInfo, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup @@ -187,6 +193,8 @@ data class SendRegularPoll( override val closeDate: LongSeconds?, @SerialName(disableNotificationField) override val disableNotification: Boolean = false, + @SerialName(protectContentField) + override val protectContent: Boolean = false, @SerialName(replyToMessageIdField) override val replyToMessageId: MessageIdentifier? = null, @SerialName(allowSendingWithoutReplyField) @@ -213,6 +221,7 @@ fun SendRegularPoll( allowMultipleAnswers: Boolean = false, closeInfo: ScheduledCloseInfo? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null @@ -226,6 +235,7 @@ fun SendRegularPoll( (closeInfo as? ApproximateScheduledCloseInfo) ?.openPeriod, (closeInfo as? ExactScheduledCloseInfo) ?.closeDate, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup @@ -242,6 +252,7 @@ fun SendQuizPoll( parseMode: ParseMode? = null, closeInfo: ScheduledCloseInfo? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null @@ -257,6 +268,7 @@ fun SendQuizPoll( null, closeInfo, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup @@ -272,6 +284,7 @@ fun SendQuizPoll( entities: List, closeInfo: ScheduledCloseInfo? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null @@ -287,6 +300,7 @@ fun SendQuizPoll( entities.toRawMessageEntities(), closeInfo, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup @@ -304,6 +318,7 @@ internal fun SendQuizPoll( rawEntities: List? = null, closeInfo: ScheduledCloseInfo? = null, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null @@ -320,6 +335,7 @@ internal fun SendQuizPoll( (closeInfo as? ApproximateScheduledCloseInfo) ?.openPeriod, (closeInfo as? ExactScheduledCloseInfo) ?.closeDate, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup @@ -351,6 +367,8 @@ data class SendQuizPoll internal constructor( override val closeDate: LongSeconds? = null, @SerialName(disableNotificationField) override val disableNotification: Boolean = false, + @SerialName(protectContentField) + override val protectContent: Boolean = false, @SerialName(replyToMessageIdField) override val replyToMessageId: MessageIdentifier? = null, @SerialName(allowSendingWithoutReplyField) 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 3b0116f2a9..9260316960 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 @@ -102,6 +102,7 @@ const val updateIdField = "update_id" const val fromChatIdField = "from_chat_id" const val disableWebPagePreviewField = "disable_web_page_preview" const val disableNotificationField = "disable_notification" +const val protectContentField = "protect_content" const val replyToMessageIdField = "reply_to_message_id" const val allowSendingWithoutReplyField = "allow_sending_without_reply" const val replyMarkupField = "reply_markup" diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/InlineQueries/InlineQueryResult/InlineQueryResultGifImpl.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/InlineQueries/InlineQueryResult/InlineQueryResultGifImpl.kt index fe59a3b374..6523e3ddf7 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/InlineQueries/InlineQueryResult/InlineQueryResultGifImpl.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/InlineQueries/InlineQueryResult/InlineQueryResultGifImpl.kt @@ -1,5 +1,6 @@ package dev.inmo.tgbotapi.types.InlineQueries.InlineQueryResult +import dev.inmo.tgbotapi.requests.abstracts.FileId import dev.inmo.tgbotapi.types.* import dev.inmo.tgbotapi.types.InlineQueries.InlineQueryResult.abstracts.results.gif.InlineQueryResultGif import dev.inmo.tgbotapi.types.InlineQueries.InlineQueryResult.abstracts.results.gif.inlineQueryResultGifType @@ -57,6 +58,37 @@ fun InlineQueryResultGifImpl( inputMessageContent ) +fun InlineQueryResultGifImpl( + id: InlineQueryIdentifier, + gifFile: FileId, + thumbUrl: String, + thumbMimeType: MimeType? = null, + width: Int? = null, + height: Int? = null, + duration: Int? = null, + title: String? = null, + text: String? = null, + parseMode: ParseMode? = null, + replyMarkup: InlineKeyboardMarkup? = null, + inputMessageContent: InputMessageContent? = null +) = InlineQueryResultGifImpl(id, gifFile.fileId, thumbUrl, thumbMimeType, width, height, duration, title, text, parseMode, replyMarkup, inputMessageContent) + +fun InlineQueryResultGifImpl( + id: InlineQueryIdentifier, + gifFile: FileId, + thumbUrl: String, + thumbMimeType: MimeType? = null, + width: Int? = null, + height: Int? = null, + duration: Int? = null, + title: String? = null, + entities: TextSourcesList, + replyMarkup: InlineKeyboardMarkup? = null, + inputMessageContent: InputMessageContent? = null +) = InlineQueryResultGifImpl( + id, gifFile.fileId, thumbUrl, thumbMimeType, width, height, duration, title, entities, replyMarkup, inputMessageContent +) + @Serializable data class InlineQueryResultGifImpl internal constructor( @SerialName(idField) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/InlineQueries/InlineQueryResult/serializers/InlineQueryResultSerializer.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/InlineQueries/InlineQueryResult/serializers/InlineQueryResultSerializer.kt index 1cf5def126..f012070487 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/InlineQueries/InlineQueryResult/serializers/InlineQueryResultSerializer.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/InlineQueries/InlineQueryResult/serializers/InlineQueryResultSerializer.kt @@ -11,7 +11,7 @@ import kotlinx.serialization.encoding.Encoder @RiskFeature object InlineQueryResultSerializer : KSerializer { - @InternalSerializationApi + @OptIn(InternalSerializationApi::class) override val descriptor: SerialDescriptor = buildSerialDescriptor(InlineQueryResult::class.toString(), PolymorphicKind.OPEN) override fun serialize(encoder: Encoder, value: InlineQueryResult) { when(value) { diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/InlineQueries/InputMessageContentSerializer.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/InlineQueries/InputMessageContentSerializer.kt index 364661cceb..ec0efd2cdd 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/InlineQueries/InputMessageContentSerializer.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/InlineQueries/InputMessageContentSerializer.kt @@ -10,7 +10,7 @@ import kotlinx.serialization.encoding.Encoder @RiskFeature object InputMessageContentSerializer : KSerializer { - @InternalSerializationApi + @OptIn(InternalSerializationApi::class) override val descriptor: SerialDescriptor = buildSerialDescriptor(InputMessageContent::class.toString(), PolymorphicKind.OPEN) override fun serialize(encoder: Encoder, value: InputMessageContent) { when (value) { diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/InputMedia/InputMediaSerializer.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/InputMedia/InputMediaSerializer.kt index 5eb959fbd4..5a6bf23735 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/InputMedia/InputMediaSerializer.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/InputMedia/InputMediaSerializer.kt @@ -9,7 +9,7 @@ import kotlinx.serialization.encoding.Encoder @RiskFeature object InputMediaSerializer : KSerializer { - @InternalSerializationApi + @OptIn(InternalSerializationApi::class) override val descriptor: SerialDescriptor = buildSerialDescriptor(InputMedia::class.toString(), PolymorphicKind.OPEN) override fun serialize(encoder: Encoder, value: InputMedia) { when (value) { diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/InputMedia/MediaGroupMemberInputMediaSerializer.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/InputMedia/MediaGroupMemberInputMediaSerializer.kt index e5b632a974..9c1f4bca79 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/InputMedia/MediaGroupMemberInputMediaSerializer.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/InputMedia/MediaGroupMemberInputMediaSerializer.kt @@ -12,7 +12,7 @@ import kotlinx.serialization.json.* @RiskFeature object MediaGroupMemberInputMediaSerializer : KSerializer { - @InternalSerializationApi + @OptIn(InternalSerializationApi::class) override val descriptor: SerialDescriptor = buildSerialDescriptor(MediaGroupMemberInputMedia::class.toString(), PolymorphicKind.OPEN) override fun serialize(encoder: Encoder, value: MediaGroupMemberInputMedia) { when (value) { diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/MessageEntity/RawMessageEntity.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/MessageEntity/RawMessageEntity.kt index 577e378c72..32289a6806 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/MessageEntity/RawMessageEntity.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/MessageEntity/RawMessageEntity.kt @@ -49,6 +49,7 @@ internal fun RawMessageEntity.asTextSource( ) "underline" -> UnderlineTextSource(sourceSubstring, subPartsWithRegulars) "strikethrough" -> StrikethroughTextSource(sourceSubstring, subPartsWithRegulars) + "spoiler" -> SpoilerTextSource(sourceSubstring, subPartsWithRegulars) else -> RegularTextSource(sourceSubstring) } } @@ -158,6 +159,7 @@ internal fun TextSource.toRawMessageEntities(offset: Int = 0): List RawMessageEntity("text_mention", offset, length, user = user) is UnderlineTextSource -> RawMessageEntity("underline", offset, length) is StrikethroughTextSource -> RawMessageEntity("strikethrough", offset, length) + is SpoilerTextSource -> RawMessageEntity("spoiler", offset, length) else -> null } ) + if (this is MultilevelTextSource) { diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/MessageEntity/textsources/SpoilerTextSource.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/MessageEntity/textsources/SpoilerTextSource.kt new file mode 100644 index 0000000000..7b0a3e9c99 --- /dev/null +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/MessageEntity/textsources/SpoilerTextSource.kt @@ -0,0 +1,27 @@ +package dev.inmo.tgbotapi.types.MessageEntity.textsources + +import dev.inmo.tgbotapi.utils.RiskFeature +import dev.inmo.tgbotapi.utils.extensions.makeString +import dev.inmo.tgbotapi.utils.internal.* +import kotlinx.serialization.Serializable + +/** + * @see italic + */ +@Serializable +data class SpoilerTextSource @RiskFeature(DirectInvocationOfTextSourceConstructor) constructor ( + override val source: String, + override val subsources: TextSourcesList +) : MultilevelTextSource { + override val markdown: String by lazy { source.spoilerMarkdown() } + override val markdownV2: String by lazy { spoilerMarkdownV2() } + override val html: String by lazy { spoilerHTML() } +} + +@Suppress("NOTHING_TO_INLINE") +inline fun spoiler(parts: TextSourcesList) = SpoilerTextSource(parts.makeString(), parts) +@Suppress("NOTHING_TO_INLINE") +inline fun spoiler(vararg parts: TextSource) = spoiler(parts.toList()) +@Suppress("NOTHING_TO_INLINE") +inline fun spoiler(text: String) = spoiler(regular(text)) + diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/MessageEntity/textsources/TextSourceSerializer.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/MessageEntity/textsources/TextSourceSerializer.kt index 4f081a9b5b..d6fd6ef438 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/MessageEntity/textsources/TextSourceSerializer.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/MessageEntity/textsources/TextSourceSerializer.kt @@ -20,6 +20,7 @@ private val baseSerializers: Map> = mapOf( "text_mention" to TextMentionTextSource.serializer(), "hashtag" to HashTagTextSource.serializer(), "cashtag" to CashTagTextSource.serializer(), + "spoiler" to SpoilerTextSource.serializer(), ) object TextSourceSerializer : TypedSerializer(TextSource::class, baseSerializers) { diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/buttons/InlineKeyboardButtons/InlineKeyboardButtonSerializer.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/buttons/InlineKeyboardButtons/InlineKeyboardButtonSerializer.kt index 20772f4eae..86695d33b0 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/buttons/InlineKeyboardButtons/InlineKeyboardButtonSerializer.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/buttons/InlineKeyboardButtons/InlineKeyboardButtonSerializer.kt @@ -13,7 +13,7 @@ import kotlinx.serialization.json.JsonObject @RiskFeature object InlineKeyboardButtonSerializer : KSerializer { - @InternalSerializationApi + @OptIn(InternalSerializationApi::class) override val descriptor: SerialDescriptor = buildSerialDescriptor( "dev.inmo.tgbotapi.types.buttons.InlineKeyboardButtons.InlineKeyboardButton", PolymorphicKind.SEALED diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/buttons/KeyboardMarkupSerializer.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/buttons/KeyboardMarkupSerializer.kt index e0562fbcfd..2078e8b9cd 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/buttons/KeyboardMarkupSerializer.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/buttons/KeyboardMarkupSerializer.kt @@ -9,7 +9,7 @@ import kotlinx.serialization.encoding.Encoder @RiskFeature object KeyboardMarkupSerializer : KSerializer { - @InternalSerializationApi + @OptIn(InternalSerializationApi::class) override val descriptor: SerialDescriptor = buildSerialDescriptor( KeyboardMarkup::class.toString(), PolymorphicKind.OPEN diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/chat/ChatSerializers.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/chat/ChatSerializers.kt index d68461a5d5..bacbbf121d 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/chat/ChatSerializers.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/chat/ChatSerializers.kt @@ -55,7 +55,7 @@ object ChatTypeSerializer : KSerializer { @RiskFeature object PreviewChatSerializer : KSerializer { - @InternalSerializationApi + @OptIn(InternalSerializationApi::class) override val descriptor: SerialDescriptor = buildSerialDescriptor("PreviewChatSerializer", PolymorphicKind.OPEN) override fun deserialize(decoder: Decoder): Chat { @@ -88,7 +88,7 @@ object PreviewChatSerializer : KSerializer { @RiskFeature object ExtendedChatSerializer : KSerializer { - @InternalSerializationApi + @OptIn(InternalSerializationApi::class) override val descriptor: SerialDescriptor = buildSerialDescriptor("PreviewChatSerializer", PolymorphicKind.OPEN) override fun deserialize(decoder: Decoder): ExtendedChat { diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/ChannelContentMessageImpl.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/ChannelContentMessageImpl.kt index 64f01f45bd..5156037aad 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/ChannelContentMessageImpl.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/ChannelContentMessageImpl.kt @@ -13,24 +13,10 @@ data class ChannelContentMessageImpl( override val content: T, override val date: DateTime, override val editDate: DateTime?, - override val forwardable: Boolean, + override val hasProtectedContent: Boolean, override val forwardInfo: ForwardInfo?, override val replyTo: Message?, override val replyMarkup: InlineKeyboardMarkup?, override val senderBot: CommonBot?, override val authorSignature: AuthorSignature? -) : ChannelContentMessage { - @Deprecated("Use the constructor with forwardable field") - constructor( - messageId: MessageIdentifier, - chat: ChannelChat, - content: T, - date: DateTime, - editDate: DateTime?, - forwardInfo: ForwardInfo?, - replyTo: Message?, - replyMarkup: InlineKeyboardMarkup?, - senderBot: CommonBot?, - authorSignature: AuthorSignature? - ) : this(messageId, chat, content, date, editDate, true, forwardInfo, replyTo, replyMarkup, senderBot, authorSignature) -} +) : ChannelContentMessage diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/ChannelMediaGroupMessage.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/ChannelMediaGroupMessage.kt index 2bcad5e3ac..36e9a1bfb5 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/ChannelMediaGroupMessage.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/ChannelMediaGroupMessage.kt @@ -16,21 +16,8 @@ data class ChannelMediaGroupMessage( override val mediaGroupId: MediaGroupIdentifier, override val content: T, override val editDate: DateTime?, - override val forwardable: Boolean, + override val hasProtectedContent: Boolean, override val forwardInfo: ForwardInfo?, override val replyTo: Message?, override val replyMarkup: InlineKeyboardMarkup? -) : MediaGroupMessage { - @Deprecated("Use the constructor with forwardable field") - constructor( - messageId: MessageIdentifier, - chat: Chat, - date: DateTime, - mediaGroupId: MediaGroupIdentifier, - content: T, - editDate: DateTime?, - forwardInfo: ForwardInfo?, - replyTo: Message?, - replyMarkup: InlineKeyboardMarkup? - ) : this(messageId, chat, date, mediaGroupId, content, editDate, true, forwardInfo, replyTo, replyMarkup) -} +) : MediaGroupMessage diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/ChatEvents/MessageAutoDeleteTimerChanged.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/ChatEvents/MessageAutoDeleteTimerChanged.kt index 3144e466cc..4eadaa5ea9 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/ChatEvents/MessageAutoDeleteTimerChanged.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/ChatEvents/MessageAutoDeleteTimerChanged.kt @@ -13,7 +13,7 @@ private const val seconds7Days: Seconds = seconds24Hours * 7 data class MessageAutoDeleteTimerChanged( @SerialName(messageAutoDeleteTimeField) val newAutoDeleteTime: Seconds // TODO:: check that it is seconds -) : ChannelEvent, GroupEvent, SupergroupEvent +) : ChannelEvent, GroupEvent, SupergroupEvent, PrivateEvent val MessageAutoDeleteTimerChanged.isOff get() = newAutoDeleteTime == 0 diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/CommonMediaGroupMessage.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/CommonMediaGroupMessage.kt index af08de46f1..cdaa34a5a5 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/CommonMediaGroupMessage.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/CommonMediaGroupMessage.kt @@ -15,22 +15,8 @@ data class CommonMediaGroupMessage( override val mediaGroupId: MediaGroupIdentifier, override val content: T, override val editDate: DateTime?, - override val forwardable: Boolean, + override val hasProtectedContent: Boolean, override val forwardInfo: ForwardInfo?, override val replyTo: Message?, override val replyMarkup: InlineKeyboardMarkup? -) : MediaGroupMessage, FromUserMessage { - @Deprecated("Use the constructor with forwardable field") - constructor( - messageId: MessageIdentifier, - from: User, - chat: Chat, - date: DateTime, - mediaGroupId: MediaGroupIdentifier, - content: T, - editDate: DateTime?, - forwardInfo: ForwardInfo?, - replyTo: Message?, - replyMarkup: InlineKeyboardMarkup? - ) : this(messageId, from, chat, date, mediaGroupId, content, editDate, true, forwardInfo, replyTo, replyMarkup) -} +) : MediaGroupMessage, FromUserMessage diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/GroupMessages.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/GroupMessages.kt index 15439bb763..a558cef304 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/GroupMessages.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/GroupMessages.kt @@ -15,31 +15,13 @@ data class ConnectedFromChannelGroupContentMessageImpl( override val date: DateTime, override val forwardInfo: ForwardInfo?, override val editDate: DateTime?, - override val forwardable: Boolean, + override val hasProtectedContent: Boolean, override val replyTo: Message?, override val replyMarkup: InlineKeyboardMarkup?, override val content: T, override val senderBot: CommonBot?, override val authorSignature: AuthorSignature? -) : ConnectedFromChannelGroupContentMessage { - @Deprecated("Use the constructor with forwardable field") - constructor( - chat: GroupChat, - channel: ChannelChat, - messageId: MessageIdentifier, - date: DateTime, - forwardInfo: ForwardInfo?, - editDate: DateTime?, - replyTo: Message?, - replyMarkup: InlineKeyboardMarkup?, - content: T, - senderBot: CommonBot?, - authorSignature: AuthorSignature? - ) : this(chat, channel, messageId, date, forwardInfo, editDate, true, replyTo, replyMarkup, content, senderBot, authorSignature) -} - -@Deprecated("Renamed", ReplaceWith("ConnectedFromChannelGroupContentMessageImpl", "dev.inmo.tgbotapi.types.message.ConnectedFromChannelGroupContentMessageImpl")) -typealias FromChannelGroupContentMessageImpl = ConnectedFromChannelGroupContentMessageImpl +) : ConnectedFromChannelGroupContentMessage data class UnconnectedFromChannelGroupContentMessageImpl( override val chat: GroupChat, @@ -48,7 +30,7 @@ data class UnconnectedFromChannelGroupContentMessageImpl( override val date: DateTime, override val forwardInfo: ForwardInfo?, override val editDate: DateTime?, - override val forwardable: Boolean, + override val hasProtectedContent: Boolean, override val replyTo: Message?, override val replyMarkup: InlineKeyboardMarkup?, override val content: T, @@ -62,27 +44,13 @@ data class AnonymousGroupContentMessageImpl( override val date: DateTime, override val forwardInfo: ForwardInfo?, override val editDate: DateTime?, - override val forwardable: Boolean, + override val hasProtectedContent: Boolean, override val replyTo: Message?, override val replyMarkup: InlineKeyboardMarkup?, override val content: T, override val senderBot: CommonBot?, override val authorSignature: AuthorSignature? -) : AnonymousGroupContentMessage { - @Deprecated("Use the constructor with forwardable field") - constructor( - chat: GroupChat, - messageId: MessageIdentifier, - date: DateTime, - forwardInfo: ForwardInfo?, - editDate: DateTime?, - replyTo: Message?, - replyMarkup: InlineKeyboardMarkup?, - content: T, - senderBot: CommonBot?, - authorSignature: AuthorSignature? - ) : this(chat, messageId, date, forwardInfo, editDate, true, replyTo, replyMarkup, content, senderBot, authorSignature) -} +) : AnonymousGroupContentMessage data class CommonGroupContentMessageImpl( override val chat: GroupChat, @@ -91,23 +59,9 @@ data class CommonGroupContentMessageImpl( override val date: DateTime, override val forwardInfo: ForwardInfo?, override val editDate: DateTime?, - override val forwardable: Boolean, + override val hasProtectedContent: Boolean, override val replyTo: Message?, override val replyMarkup: InlineKeyboardMarkup?, override val content: T, override val senderBot: CommonBot? -) : CommonGroupContentMessage { - @Deprecated("Use the constructor with forwardable field") - constructor( - chat: GroupChat, - messageId: MessageIdentifier, - from: User, - date: DateTime, - forwardInfo: ForwardInfo?, - editDate: DateTime?, - replyTo: Message?, - replyMarkup: InlineKeyboardMarkup?, - content: T, - senderBot: CommonBot? - ) : this(chat, messageId, from, date, forwardInfo, editDate, true, replyTo, replyMarkup, content, senderBot) -} +) : CommonGroupContentMessage diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/PrivateMessageImpl.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/PrivateContentMessageImpl.kt similarity index 60% rename from tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/PrivateMessageImpl.kt rename to tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/PrivateContentMessageImpl.kt index 00699bcfc9..c53a8d2857 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/PrivateMessageImpl.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/PrivateContentMessageImpl.kt @@ -15,23 +15,9 @@ data class PrivateContentMessageImpl( override val content: T, override val date: DateTime, override val editDate: DateTime?, - override val forwardable: Boolean, + override val hasProtectedContent: Boolean, override val forwardInfo: ForwardInfo?, override val replyTo: Message?, override val replyMarkup: InlineKeyboardMarkup?, override val senderBot: CommonBot? -) : PrivateContentMessage { - @Deprecated("Use the constructor with forwardable field") - constructor( - messageId: MessageIdentifier, - from: User, - chat: Chat, - content: T, - date: DateTime, - editDate: DateTime?, - forwardInfo: ForwardInfo?, - replyTo: Message?, - replyMarkup: InlineKeyboardMarkup?, - senderBot: CommonBot? - ) : this(messageId, from, chat, content, date, editDate, true, forwardInfo, replyTo, replyMarkup, senderBot) -} +) : PrivateContentMessage 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 c0fcc5334b..e823db8cc2 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 @@ -254,7 +254,7 @@ internal data class RawMessage( it, checkedContent, edit_date?.asDate, - has_protected_content != true, + has_protected_content == true, forwarded, reply_to_message?.asMessage, reply_markup @@ -267,7 +267,7 @@ internal data class RawMessage( it, checkedContent, edit_date?.asDate, - has_protected_content != true, + has_protected_content == true, forwarded, reply_to_message?.asMessage, reply_markup @@ -281,7 +281,7 @@ internal data class RawMessage( content, date.asDate, edit_date?.asDate, - has_protected_content != true, + has_protected_content == true, forwarded, reply_to_message?.asMessage, reply_markup, @@ -297,7 +297,7 @@ internal data class RawMessage( date.asDate, forwarded, edit_date ?.asDate, - has_protected_content != true, + has_protected_content == true, reply_to_message ?.asMessage, reply_markup, content, @@ -312,7 +312,7 @@ internal data class RawMessage( date.asDate, forwarded, edit_date ?.asDate, - has_protected_content != true, + has_protected_content == true, reply_to_message ?.asMessage, reply_markup, content, @@ -326,7 +326,7 @@ internal data class RawMessage( date.asDate, forwarded, edit_date ?.asDate, - has_protected_content != true, + has_protected_content == true, reply_to_message ?.asMessage, reply_markup, content, @@ -340,7 +340,7 @@ internal data class RawMessage( date.asDate, forwarded, edit_date ?.asDate, - has_protected_content != true, + has_protected_content == true, reply_to_message ?.asMessage, reply_markup, content, @@ -357,7 +357,7 @@ internal data class RawMessage( content, date.asDate, edit_date?.asDate, - has_protected_content != true, + has_protected_content == true, forwarded, reply_to_message?.asMessage, reply_markup, diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/abstracts/ContentMessage.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/abstracts/ContentMessage.kt index b27e7ab9ef..b155bad5ec 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/abstracts/ContentMessage.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/abstracts/ContentMessage.kt @@ -3,9 +3,9 @@ package dev.inmo.tgbotapi.types.message.abstracts import dev.inmo.tgbotapi.types.message.content.abstracts.MessageContent interface ContentMessage: Message { - val forwardable: Boolean + val hasProtectedContent: Boolean val content: T - val hasProtectedContent: Boolean - get() = !forwardable + val forwardable: Boolean + get() = !hasProtectedContent } diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/abstracts/Message.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/abstracts/Message.kt index b2c85f828b..e9b10b0e95 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/abstracts/Message.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/abstracts/Message.kt @@ -23,7 +23,7 @@ data class UnknownMessageType( ) : Message internal class TelegramBotAPIMessageDeserializationStrategyClass : DeserializationStrategy { - @InternalSerializationApi + @OptIn(InternalSerializationApi::class) override val descriptor: SerialDescriptor = buildSerialDescriptor("TelegramBotAPIMessageSerializer", PolymorphicKind.OPEN) @Suppress("UNCHECKED_CAST") @@ -34,7 +34,7 @@ internal class TelegramBotAPIMessageDeserializationStrategyClass : Deserializ internal class TelegramBotAPIMessageDeserializeOnlySerializerClass : KSerializer { private val deserializer = TelegramBotAPIMessageDeserializationStrategyClass() - @InternalSerializationApi + @OptIn(InternalSerializationApi::class) override val descriptor: SerialDescriptor get() = deserializer.descriptor diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/ContactContent.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/ContactContent.kt index b5909f032e..e35c264e69 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/ContactContent.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/ContactContent.kt @@ -15,10 +15,11 @@ data class ContactContent( override fun createResend( chatId: ChatIdentifier, disableNotification: Boolean, + protectContent: Boolean, replyToMessageId: MessageIdentifier?, allowSendingWithoutReply: Boolean?, replyMarkup: KeyboardMarkup? ): Request> = SendContact( - chatId, contact, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup + chatId, contact, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup ) } diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/DiceContent.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/DiceContent.kt index f8e85ff6d3..ec7109c855 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/DiceContent.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/DiceContent.kt @@ -17,6 +17,7 @@ data class DiceContent( override fun createResend( chatId: ChatIdentifier, disableNotification: Boolean, + protectContent: Boolean, replyToMessageId: MessageIdentifier?, allowSendingWithoutReply: Boolean?, replyMarkup: KeyboardMarkup? @@ -24,6 +25,7 @@ data class DiceContent( chatId, dice.animationType, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/GameContent.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/GameContent.kt index 85378995ad..21319f930c 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/GameContent.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/GameContent.kt @@ -17,6 +17,7 @@ data class GameContent( override fun createResend( chatId: ChatIdentifier, disableNotification: Boolean, + protectContent: Boolean, replyToMessageId: MessageIdentifier?, allowSendingWithoutReply: Boolean?, replyMarkup: KeyboardMarkup? @@ -24,6 +25,7 @@ data class GameContent( chatId, game.title, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/LocationContent.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/LocationContent.kt index 628ffe55d2..2997a2d5ce 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/LocationContent.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/LocationContent.kt @@ -101,6 +101,7 @@ data class LiveLocationContent( override fun createResend( chatId: ChatIdentifier, disableNotification: Boolean, + protectContent: Boolean, replyToMessageId: MessageIdentifier?, allowSendingWithoutReply: Boolean?, replyMarkup: KeyboardMarkup? @@ -113,6 +114,7 @@ data class LiveLocationContent( location.heading, location.proximityAlertRadius, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup @@ -130,6 +132,7 @@ data class StaticLocationContent( override fun createResend( chatId: ChatIdentifier, disableNotification: Boolean, + protectContent: Boolean, replyToMessageId: MessageIdentifier?, allowSendingWithoutReply: Boolean?, replyMarkup: KeyboardMarkup? @@ -138,6 +141,7 @@ data class StaticLocationContent( location.latitude, location.longitude, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/PollContent.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/PollContent.kt index a035a3e4f6..232cf2f595 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/PollContent.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/PollContent.kt @@ -17,12 +17,14 @@ data class PollContent( override fun createResend( chatId: ChatIdentifier, disableNotification: Boolean, + protectContent: Boolean, replyToMessageId: MessageIdentifier?, allowSendingWithoutReply: Boolean?, replyMarkup: KeyboardMarkup? ): Request> = poll.createRequest( chatId, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/TextContent.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/TextContent.kt index e2e83e0892..5144f253b4 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/TextContent.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/TextContent.kt @@ -19,6 +19,7 @@ data class TextContent( override fun createResend( chatId: ChatIdentifier, disableNotification: Boolean, + protectContent: Boolean, replyToMessageId: MessageIdentifier?, allowSendingWithoutReply: Boolean?, replyMarkup: KeyboardMarkup? @@ -27,6 +28,7 @@ data class TextContent( textSources, false, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/VenueContent.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/VenueContent.kt index 84e08f55fb..c9ada1a345 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/VenueContent.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/VenueContent.kt @@ -17,10 +17,11 @@ data class VenueContent( override fun createResend( chatId: ChatIdentifier, disableNotification: Boolean, + protectContent: Boolean, replyToMessageId: MessageIdentifier?, allowSendingWithoutReply: Boolean?, replyMarkup: KeyboardMarkup? ): Request> = SendVenue( - chatId, venue, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup + chatId, venue, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup ) } diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/abstracts/ResendableContent.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/abstracts/ResendableContent.kt index 895c312eb9..c0a4d572bd 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/abstracts/ResendableContent.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/abstracts/ResendableContent.kt @@ -10,8 +10,9 @@ interface ResendableContent { fun createResend( chatId: ChatIdentifier, disableNotification: Boolean = false, + protectContent: Boolean = false, replyToMessageId: MessageIdentifier? = null, allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ): Request -} \ No newline at end of file +} diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/media/AnimationContent.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/media/AnimationContent.kt index f38b11357c..0b25a2d2fe 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/media/AnimationContent.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/media/AnimationContent.kt @@ -24,6 +24,7 @@ data class AnimationContent( override fun createResend( chatId: ChatIdentifier, disableNotification: Boolean, + protectContent: Boolean, replyToMessageId: MessageIdentifier?, allowSendingWithoutReply: Boolean?, replyMarkup: KeyboardMarkup? @@ -36,6 +37,7 @@ data class AnimationContent( media.width, media.height, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/media/AudioContent.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/media/AudioContent.kt index a8fc1083cc..9cdb6892c6 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/media/AudioContent.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/media/AudioContent.kt @@ -22,6 +22,7 @@ data class AudioContent( override fun createResend( chatId: ChatIdentifier, disableNotification: Boolean, + protectContent: Boolean, replyToMessageId: MessageIdentifier?, allowSendingWithoutReply: Boolean?, replyMarkup: KeyboardMarkup? @@ -34,6 +35,7 @@ data class AudioContent( media.performer, media.title, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/media/DocumentContent.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/media/DocumentContent.kt index 0fca7ca43a..387eac84c5 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/media/DocumentContent.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/media/DocumentContent.kt @@ -25,6 +25,7 @@ data class DocumentContent( override fun createResend( chatId: ChatIdentifier, disableNotification: Boolean, + protectContent: Boolean, replyToMessageId: MessageIdentifier?, allowSendingWithoutReply: Boolean?, replyMarkup: KeyboardMarkup? @@ -34,6 +35,7 @@ data class DocumentContent( media.thumb ?.fileId, textSources, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/media/PhotoContent.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/media/PhotoContent.kt index 6ecfa69d43..5f24f08e8c 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/media/PhotoContent.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/media/PhotoContent.kt @@ -25,6 +25,7 @@ data class PhotoContent( override fun createResend( chatId: ChatIdentifier, disableNotification: Boolean, + protectContent: Boolean, replyToMessageId: MessageIdentifier?, allowSendingWithoutReply: Boolean?, replyMarkup: KeyboardMarkup? @@ -33,6 +34,7 @@ data class PhotoContent( media.fileId, textSources, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/media/StickerContent.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/media/StickerContent.kt index e456140a23..16a81b62ad 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/media/StickerContent.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/media/StickerContent.kt @@ -18,6 +18,7 @@ data class StickerContent( override fun createResend( chatId: ChatIdentifier, disableNotification: Boolean, + protectContent: Boolean, replyToMessageId: MessageIdentifier?, allowSendingWithoutReply: Boolean?, replyMarkup: KeyboardMarkup? @@ -25,6 +26,7 @@ data class StickerContent( chatId, media.fileId, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/media/VideoContent.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/media/VideoContent.kt index c168bdd128..79369429bc 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/media/VideoContent.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/media/VideoContent.kt @@ -22,6 +22,7 @@ data class VideoContent( override fun createResend( chatId: ChatIdentifier, disableNotification: Boolean, + protectContent: Boolean, replyToMessageId: MessageIdentifier?, allowSendingWithoutReply: Boolean?, replyMarkup: KeyboardMarkup? @@ -35,6 +36,7 @@ data class VideoContent( media.height, null, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/media/VideoNoteContent.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/media/VideoNoteContent.kt index 4ca7bf80b1..8cd74d80b8 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/media/VideoNoteContent.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/media/VideoNoteContent.kt @@ -18,6 +18,7 @@ data class VideoNoteContent( override fun createResend( chatId: ChatIdentifier, disableNotification: Boolean, + protectContent: Boolean, replyToMessageId: MessageIdentifier?, allowSendingWithoutReply: Boolean?, replyMarkup: KeyboardMarkup? @@ -28,6 +29,7 @@ data class VideoNoteContent( media.duration, media.width, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/media/VoiceContent.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/media/VoiceContent.kt index 8dca1bb1a5..a6bd70398a 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/media/VoiceContent.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/media/VoiceContent.kt @@ -22,6 +22,7 @@ data class VoiceContent( override fun createResend( chatId: ChatIdentifier, disableNotification: Boolean, + protectContent: Boolean, replyToMessageId: MessageIdentifier?, allowSendingWithoutReply: Boolean?, replyMarkup: KeyboardMarkup? @@ -31,6 +32,7 @@ data class VoiceContent( textSources, media.duration, disableNotification, + protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/payments/InvoiceContent.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/payments/InvoiceContent.kt index 94dfa598c5..5743059c43 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/payments/InvoiceContent.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/payments/InvoiceContent.kt @@ -16,6 +16,7 @@ data class InvoiceContent( override fun createResend( chatId: ChatIdentifier, disableNotification: Boolean, + protectContent: Boolean, replyToMessageId: MessageIdentifier?, allowSendingWithoutReply: Boolean?, replyMarkup: KeyboardMarkup? diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/utils/internal/MultilevelTextSourceFormatting.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/utils/internal/MultilevelTextSourceFormatting.kt index 275e00c00f..01b7d8744b 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/utils/internal/MultilevelTextSourceFormatting.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/utils/internal/MultilevelTextSourceFormatting.kt @@ -49,6 +49,10 @@ internal fun MultilevelTextSource.italicMarkdownV2(): String = markdownV2Default internal fun MultilevelTextSource.italicHTML(): String = htmlDefault(htmlItalicControl) +internal fun MultilevelTextSource.spoilerMarkdownV2(): String = markdownV2Default(markdownSpoilerControl) +internal fun MultilevelTextSource.spoilerHTML(): String = htmlDefault(htmlSpoilerControl, htmlSpoilerClosingControl) + + internal fun MultilevelTextSource.strikethroughMarkdownV2(): String = markdownV2Default(markdownV2StrikethroughControl) internal fun MultilevelTextSource.strikethroughHTML(): String = htmlDefault(htmlStrikethroughControl) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/utils/internal/StringFormatting.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/utils/internal/StringFormatting.kt index dce43d2d63..13289fe1df 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/utils/internal/StringFormatting.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/utils/internal/StringFormatting.kt @@ -7,6 +7,7 @@ import dev.inmo.tgbotapi.utils.extensions.* const val markdownBoldControl = "*" const val markdownItalicControl = "_" +const val markdownSpoilerControl = "||" const val markdownCodeControl = "`" const val markdownPreControl = "```" @@ -18,6 +19,8 @@ const val markdownV2ItalicEndControl = "$markdownItalicControl$markdownV2ItalicU const val htmlBoldControl = "b" const val htmlItalicControl = "i" +const val htmlSpoilerControl = "span class=\"tg-spoiler\"" +const val htmlSpoilerClosingControl = "span" const val htmlCodeControl = "code" const val htmlPreControl = "pre" const val htmlUnderlineControl = "u" @@ -46,12 +49,13 @@ internal fun String.boldMarkdown(): String = markdownDefault(markdownBoldControl internal fun String.italicMarkdown(): String = markdownDefault(markdownItalicControl) +internal fun String.spoilerMarkdown(): String = regularMarkdown() + /** * Crutch for support of strikethrough in default markdown. Simply add modifier, but it will not look like correct */ internal fun String.strikethroughMarkdown(): String = map { it + "\u0336" }.joinToString("") -internal fun String.strikethroughMarkdownV2(): String = markdownV2Default(markdownV2StrikethroughControl) /** diff --git a/tgbotapi.core/src/commonTest/kotlin/dev/inmo/tgbotapi/types/MessageEntity/EntitiesTestText.kt b/tgbotapi.core/src/commonTest/kotlin/dev/inmo/tgbotapi/types/MessageEntity/EntitiesTestText.kt index e0e1e32550..7048fa4b6c 100644 --- a/tgbotapi.core/src/commonTest/kotlin/dev/inmo/tgbotapi/types/MessageEntity/EntitiesTestText.kt +++ b/tgbotapi.core/src/commonTest/kotlin/dev/inmo/tgbotapi/types/MessageEntity/EntitiesTestText.kt @@ -4,8 +4,8 @@ import dev.inmo.tgbotapi.types.MessageEntity.textsources.* import kotlin.test.assertTrue const val testText = "It is simple hello world with #tag and @mention" -const val formattedV2Text = "It *_is_ ~__simple__~* hello world with \\#tag and @mention" -const val formattedHtmlText = "It is simple hello world with #tag and @mention" +const val formattedV2Text = "It *_is_ ~__simple__~* ||hello world|| with \\#tag and @mention" +const val formattedHtmlText = "It is simple hello world with #tag and @mention" internal val testTextEntities = listOf( RawMessageEntity( "bold", @@ -27,6 +27,11 @@ internal val testTextEntities = listOf( 6, 6 ), + RawMessageEntity( + "spoiler", + 13, + 11 + ), RawMessageEntity( "hashtag", 30, @@ -43,9 +48,11 @@ fun TextSourcesList.testTextSources() { assertTrue (first() is RegularTextSource) assertTrue (get(1) is BoldTextSource) assertTrue (get(2) is RegularTextSource) - assertTrue (get(3) is HashTagTextSource) + assertTrue (get(3) is SpoilerTextSource) assertTrue (get(4) is RegularTextSource) - assertTrue (get(5) is MentionTextSource) + assertTrue (get(5) is HashTagTextSource) + assertTrue (get(6) is RegularTextSource) + assertTrue (get(7) is MentionTextSource) val boldSource = get(1) as BoldTextSource assertTrue (boldSource.subsources.first() is ItalicTextSource) diff --git a/tgbotapi.core/src/commonTest/kotlin/dev/inmo/tgbotapi/types/MessageEntity/StringFormattingTests.kt b/tgbotapi.core/src/commonTest/kotlin/dev/inmo/tgbotapi/types/MessageEntity/StringFormattingTests.kt index 747dcc8588..ba11fc9d3a 100644 --- a/tgbotapi.core/src/commonTest/kotlin/dev/inmo/tgbotapi/types/MessageEntity/StringFormattingTests.kt +++ b/tgbotapi.core/src/commonTest/kotlin/dev/inmo/tgbotapi/types/MessageEntity/StringFormattingTests.kt @@ -42,7 +42,9 @@ class StringFormattingTests { bold(italic("is") + " " + strikethrough(underline("simple"))) + - " hello world with " + + " " + + spoiler("hello world") + + " with " + hashtag("tag") + " and " + mention("mention") diff --git a/tgbotapi.core/src/commonTest/kotlin/dev/inmo/tgbotapi/types/TextSourcesTests.kt b/tgbotapi.core/src/commonTest/kotlin/dev/inmo/tgbotapi/types/TextSourcesTests.kt index 776497a3c6..b3336962ee 100644 --- a/tgbotapi.core/src/commonTest/kotlin/dev/inmo/tgbotapi/types/TextSourcesTests.kt +++ b/tgbotapi.core/src/commonTest/kotlin/dev/inmo/tgbotapi/types/TextSourcesTests.kt @@ -3,6 +3,7 @@ package dev.inmo.tgbotapi.types import dev.inmo.tgbotapi.TestsJsonFormat import dev.inmo.tgbotapi.extensions.utils.formatting.* import dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSourceSerializer +import dev.inmo.tgbotapi.types.MessageEntity.textsources.spoiler import dev.inmo.tgbotapi.utils.extensions.makeString import kotlinx.serialization.builtins.ListSerializer import kotlin.test.Test @@ -16,6 +17,11 @@ class TextSourcesTests { italic("It") link("is example", "https://is.example") } + spoiler { + regular("and") + italic("that") + link("is spoiler", "https://is.example") + } underline("of") italic( buildEntities { @@ -32,6 +38,6 @@ class TextSourcesTests { ) assertEquals(testList, deserialized) assertEquals(testList.makeString(), deserialized.makeString()) - assertEquals("It is example of complex text", testList.makeString()) + assertEquals("It is example and that is spoiler of complex text", testList.makeString()) } } 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 a0e7317dc1..d033cd6421 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 @@ -926,15 +926,16 @@ inline fun Message.requireChannelContentMessageImpl(): UnconnectedFromChannelGro this as UnconnectedFromChannelGroupContentMessageImpl @PreviewFeature -inline fun Message.whenFromChannelGroupContentMessageImpl(block: (FromChannelGroupContentMessageImpl) -> T) = asFromChannelGroupContentMessageImpl() ?.let(block) +@Deprecated("Renamed", ReplaceWith("whenConnectedFromChannelGroupContentMessage", "dev.inmo.tgbotapi.extensions.utils.whenConnectedFromChannelGroupContentMessage")) +inline fun Message.whenFromChannelGroupContentMessageImpl(block: (ConnectedFromChannelGroupContentMessage) -> T) = whenConnectedFromChannelGroupContentMessage(block) @PreviewFeature -inline fun Message.asFromChannelGroupContentMessageImpl(): FromChannelGroupContentMessageImpl? = - this as? FromChannelGroupContentMessageImpl +@Deprecated("Renamed", ReplaceWith("asConnectedFromChannelGroupContentMessage", "dev.inmo.tgbotapi.extensions.utils.asConnectedFromChannelGroupContentMessage")) +inline fun Message.asFromChannelGroupContentMessageImpl(): ConnectedFromChannelGroupContentMessage? = asConnectedFromChannelGroupContentMessage() @PreviewFeature -inline fun Message.requireFromChannelGroupContentMessageImpl(): FromChannelGroupContentMessageImpl = - this as FromChannelGroupContentMessageImpl +@Deprecated("Renamed", ReplaceWith("requireConnectedFromChannelGroupContentMessage", "dev.inmo.tgbotapi.extensions.utils.requireConnectedFromChannelGroupContentMessage")) +inline fun Message.requireFromChannelGroupContentMessageImpl(): ConnectedFromChannelGroupContentMessage = requireConnectedFromChannelGroupContentMessage() @PreviewFeature inline fun Message.whenPassportMessage(block: (PassportMessage) -> T) = asPassportMessage() ?.let(block) @@ -1038,7 +1039,7 @@ inline fun Message.whenConnectedFromChannelGroupContentMessage(block: (Conne @PreviewFeature inline fun Message.asConnectedFromChannelGroupContentMessage(): ConnectedFromChannelGroupContentMessage? = - this as? ConnectedFromChannelGroupContentMessageImpl + this as? ConnectedFromChannelGroupContentMessage @PreviewFeature inline fun Message.requireConnectedFromChannelGroupContentMessage(): ConnectedFromChannelGroupContentMessage = diff --git a/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/formatting/EntitiesBuilder.kt b/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/formatting/EntitiesBuilder.kt index 9ebc816630..eda972aaeb 100644 --- a/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/formatting/EntitiesBuilder.kt +++ b/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/formatting/EntitiesBuilder.kt @@ -99,6 +99,41 @@ inline fun EntitiesBuilder.bold(text: String) = add(dev.inmo.tgbotapi.types.Mess */ inline fun EntitiesBuilder.boldln(text: String) = bold(text) + newLine +/** + * Add spoiler using [EntitiesBuilder.add] with [dev.inmo.tgbotapi.types.MessageEntity.textsources.spoiler] + */ +inline fun EntitiesBuilder.spoiler(parts: TextSourcesList) = add(dev.inmo.tgbotapi.types.MessageEntity.textsources.spoiler(parts)) +/** + * Version of [EntitiesBuilder.spoiler] with new line at the end + */ +inline fun EntitiesBuilder.spoilerln(parts: TextSourcesList) = spoiler(parts) + newLine +/** + * Add spoiler using [EntitiesBuilder.add] with [dev.inmo.tgbotapi.types.MessageEntity.textsources.spoiler]. + * Will reuse separator config from [buildEntities] + */ +inline fun EntitiesBuilder.spoiler(noinline init: EntitiesBuilderBody) = add(dev.inmo.tgbotapi.types.MessageEntity.textsources.spoiler(buildEntities(separator, init))) +/** + * Version of [EntitiesBuilder.spoiler] with new line at the end. + * Will reuse separator config from [buildEntities] + */ +inline fun EntitiesBuilder.spoilerln(noinline init: EntitiesBuilderBody) = spoiler(init) + newLine +/** + * Add spoiler using [EntitiesBuilder.add] with [dev.inmo.tgbotapi.types.MessageEntity.textsources.spoiler] + */ +inline fun EntitiesBuilder.spoiler(vararg parts: TextSource) = add(dev.inmo.tgbotapi.types.MessageEntity.textsources.spoiler(*parts)) +/** + * Version of [EntitiesBuilder.spoiler] with new line at the end + */ +inline fun EntitiesBuilder.spoilerln(vararg parts: TextSource) = spoiler(*parts) + newLine +/** + * Add spoiler using [EntitiesBuilder.add] with [dev.inmo.tgbotapi.types.MessageEntity.textsources.spoiler] + */ +inline fun EntitiesBuilder.spoiler(text: String) = add(dev.inmo.tgbotapi.types.MessageEntity.textsources.spoiler(text)) +/** + * Version of [EntitiesBuilder.spoiler] with new line at the end + */ +inline fun EntitiesBuilder.spoilerln(text: String) = spoiler(text) + newLine + /** * Add botCommand using [EntitiesBuilder.add] with [dev.inmo.tgbotapi.types.MessageEntity.textsources.botCommand] diff --git a/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/shortcuts/MediaGroupsShortcuts.kt b/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/shortcuts/MediaGroupsShortcuts.kt index 78376ea9ad..f879f804f4 100644 --- a/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/shortcuts/MediaGroupsShortcuts.kt +++ b/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/shortcuts/MediaGroupsShortcuts.kt @@ -29,29 +29,35 @@ val SentMediaGroupUpdate.mediaGroupId: MediaGroupIdentifier fun List>.createResend( chatId: ChatId, disableNotification: Boolean = false, + protectContent: Boolean = false, replyTo: MessageIdentifier? = null ) = SendMediaGroup( chatId, map { it.content.toMediaGroupMemberInputMedia() }, disableNotification, + protectContent, replyTo ) fun List>.createResend( chat: Chat, disableNotification: Boolean = false, + protectContent: Boolean = false, replyTo: MessageIdentifier? = null ) = createResend( chat.id, disableNotification, + protectContent, replyTo ) fun SentMediaGroupUpdate.createResend( disableNotification: Boolean = false, + protectContent: Boolean = false, replyTo: MessageIdentifier? = null ) = data.createResend( chat, disableNotification, + protectContent, replyTo )