From 99bb8d6e0d56b1b41182888400488afcfa749a15 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Thu, 5 Nov 2020 23:48:23 +0600 Subject: [PATCH] update extnsions.api --- CHANGELOG.md | 1 + .../EditChatMessageLiveLocation.kt | 1 + .../dev/inmo/tgbotapi/requests/local/Close.kt | 2 +- .../tgbotapi/requests/send/polls/SendPoll.kt | 2 + .../query/LocationInlineQuery.kt | 3 +- .../InlineQueries/query/RawInlineQuery.kt | 3 +- .../types/message/content/ContactContent.kt | 3 +- .../types/message/content/DiceContent.kt | 2 + .../types/message/content/GameContent.kt | 2 + .../types/message/content/LocationContent.kt | 4 + .../types/message/content/PollContent.kt | 2 + .../types/message/content/TextContent.kt | 6 + .../types/message/content/VenueContent.kt | 3 +- .../content/abstracts/ResendableContent.kt | 4 +- .../message/content/media/AnimationContent.kt | 2 + .../message/content/media/AudioContent.kt | 2 + .../message/content/media/DocumentContent.kt | 2 + .../message/content/media/PhotoContent.kt | 2 + .../message/content/media/StickerContent.kt | 2 + .../message/content/media/VideoContent.kt | 2 + .../message/content/media/VideoNoteContent.kt | 13 +- .../message/content/media/VoiceContent.kt | 2 + .../types/message/payments/InvoiceContent.kt | 1 + .../dev/inmo/tgbotapi/extensions/api/Close.kt | 7 + ...iveLocation.kt => LiveLocationProvider.kt} | 124 ++++++++++++--- .../inmo/tgbotapi/extensions/api/LogOut.kt | 6 + .../api/chat/members/UnbanChatMember.kt | 20 ++- .../EditChatMessageLiveLocation.kt | 28 ++-- .../EditInlineMessageLiveLocation.kt | 13 +- .../edit/caption/EditChatMessageCaption.kt | 25 +++ .../edit/caption/EditInlineMessageCaption.kt | 7 + .../api/edit/text/EditChatMessageText.kt | 28 +++- .../api/edit/text/EditInlineMessageText.kt | 8 + .../extensions/api/send/CopyMessage.kt | 150 ++++++++++++++++++ .../extensions/api/send/SendContact.kt | 16 +- .../tgbotapi/extensions/api/send/SendDice.kt | 9 +- .../extensions/api/send/SendLocation.kt | 37 ++++- .../extensions/api/send/SendMessage.kt | 76 ++++++++- .../tgbotapi/extensions/api/send/SendVenue.kt | 27 ++-- .../extensions/api/send/games/SendGame.kt | 21 ++- .../api/send/media/SendAnimation.kt | 140 +++++++++++++++- .../extensions/api/send/media/SendAudio.kt | 119 +++++++++++++- .../extensions/api/send/media/SendDocument.kt | 137 ++++++++++++++-- .../api/send/media/SendMediaGroup.kt | 66 +++++--- .../extensions/api/send/media/SendPhoto.kt | 99 +++++++++++- .../extensions/api/send/media/SendSticker.kt | 21 ++- .../extensions/api/send/media/SendVideo.kt | 117 +++++++++++++- .../api/send/media/SendVideoNote.kt | 36 ++--- .../extensions/api/send/media/SendVoice.kt | 105 +++++++++++- .../api/send/payments/SendInvoice.kt | 9 +- .../extensions/api/send/polls/SendPoll.kt | 138 ++++++++++++++-- .../extensions/api/webhook/SetWebhookInfo.kt | 18 ++- 52 files changed, 1468 insertions(+), 205 deletions(-) create mode 100644 tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/Close.kt rename tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/{LiveLocation.kt => LiveLocationProvider.kt} (58%) create mode 100644 tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/LogOut.kt create mode 100644 tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/CopyMessage.kt diff --git a/CHANGELOG.md b/CHANGELOG.md index 306345a0ab..48d33221d4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -64,6 +64,7 @@ * New property `PromoteChatMember#isAnonymous` * Update all classes which must have `entities`/`caption_entities` fields * New request `CopyMessage` + * New extension `List#makeString` for more comfortable work with new api with entities * `API`: * Extensions `TelegramBot#pinChatMessage` now support any `Chat` and `Message`s from any `Chat` * New extensions `TelegramBot#unpinAllChatMessages` diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/edit/LiveLocation/EditChatMessageLiveLocation.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/edit/LiveLocation/EditChatMessageLiveLocation.kt index ba93fd4206..e1a1688d4e 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/edit/LiveLocation/EditChatMessageLiveLocation.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/edit/LiveLocation/EditChatMessageLiveLocation.kt @@ -3,6 +3,7 @@ package dev.inmo.tgbotapi.requests.edit.LiveLocation import dev.inmo.tgbotapi.requests.edit.abstracts.* import dev.inmo.tgbotapi.types.* import dev.inmo.tgbotapi.types.buttons.InlineKeyboardMarkup +import dev.inmo.tgbotapi.types.location.LiveLocation import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage import dev.inmo.tgbotapi.types.message.abstracts.TelegramBotAPIMessageDeserializationStrategyClass import dev.inmo.tgbotapi.types.message.content.LocationContent diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/local/Close.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/local/Close.kt index 9e950998f0..2c6d7ed618 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/local/Close.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/local/Close.kt @@ -16,7 +16,7 @@ import kotlinx.serialization.builtins.serializer @Serializable object Close : SimpleRequest { override val requestSerializer: SerializationStrategy<*> - get() = LogOut.serializer() + get() = serializer() override fun method(): String = "close" 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 fed5aac521..5df2ae268b 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 @@ -46,6 +46,7 @@ fun SendPoll( isClosed: Boolean = false, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = SendRegularPoll( chatId, @@ -53,6 +54,7 @@ fun SendPoll( options, isAnonymous, isClosed, + allowSendingWithoutReply = allowSendingWithoutReply, disableNotification = disableNotification, replyToMessageId = replyToMessageId, replyMarkup = replyMarkup diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/InlineQueries/query/LocationInlineQuery.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/InlineQueries/query/LocationInlineQuery.kt index cc0cd4772d..de8d573a25 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/InlineQueries/query/LocationInlineQuery.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/InlineQueries/query/LocationInlineQuery.kt @@ -2,6 +2,7 @@ package dev.inmo.tgbotapi.types.InlineQueries.query import dev.inmo.tgbotapi.types.* import dev.inmo.tgbotapi.types.InlineQueries.abstracts.InlineQuery +import dev.inmo.tgbotapi.types.location.Location import dev.inmo.tgbotapi.types.location.StaticLocation data class LocationInlineQuery( @@ -9,5 +10,5 @@ data class LocationInlineQuery( override val from: User, override val query: String, override val offset: String, - val location: StaticLocation + val location: Location ) : InlineQuery diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/InlineQueries/query/RawInlineQuery.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/InlineQueries/query/RawInlineQuery.kt index 2b4473486a..edfa1b5abc 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/InlineQueries/query/RawInlineQuery.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/InlineQueries/query/RawInlineQuery.kt @@ -1,6 +1,7 @@ package dev.inmo.tgbotapi.types.InlineQueries.query import dev.inmo.tgbotapi.types.* +import dev.inmo.tgbotapi.types.location.Location import dev.inmo.tgbotapi.types.location.StaticLocation import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable @@ -16,7 +17,7 @@ internal data class RawInlineQuery( @SerialName(offsetField) val offset: String, @SerialName(locationField) - val location: StaticLocation? = null + val location: Location? = null ) { val asInlineQuery by lazy { location ?.let { 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 8802c91830..20d0c73370 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 @@ -14,8 +14,9 @@ data class ContactContent( chatId: ChatIdentifier, disableNotification: Boolean, replyToMessageId: MessageIdentifier?, + allowSendingWithoutReply: Boolean?, replyMarkup: KeyboardMarkup? ): Request> = SendContact( - chatId, contact, disableNotification, replyToMessageId, replyMarkup + chatId, contact, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup ) } \ No newline at end of file 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 c287d15281..891f848d56 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 @@ -16,12 +16,14 @@ data class DiceContent( chatId: ChatIdentifier, disableNotification: Boolean, replyToMessageId: MessageIdentifier?, + allowSendingWithoutReply: Boolean?, replyMarkup: KeyboardMarkup? ): Request> = SendDice( chatId, dice.animationType, disableNotification, 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 a58505616b..5e7b21f9d9 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 @@ -16,12 +16,14 @@ data class GameContent( chatId: ChatIdentifier, disableNotification: Boolean, replyToMessageId: MessageIdentifier?, + allowSendingWithoutReply: Boolean?, replyMarkup: KeyboardMarkup? ): Request> = SendGame( chatId, game.title, disableNotification, replyToMessageId, + allowSendingWithoutReply, replyMarkup ) } \ No newline at end of file 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 f7a8750028..12afc0b413 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 @@ -7,7 +7,9 @@ import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup import dev.inmo.tgbotapi.types.location.* import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage import dev.inmo.tgbotapi.types.message.content.abstracts.MessageContent +import kotlinx.serialization.Serializable +@Serializable data class LocationContent( val location: Location ) : MessageContent { @@ -23,6 +25,7 @@ data class LocationContent( location.longitude, disableNotification, replyToMessageId, + allowSendingWithoutReply, replyMarkup ) is LiveLocation -> SendLiveLocation( @@ -35,6 +38,7 @@ data class LocationContent( location.proximityAlertRadius, disableNotification, 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 074d7d7896..ddb139e0d6 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 @@ -16,11 +16,13 @@ data class PollContent( chatId: ChatIdentifier, disableNotification: Boolean, replyToMessageId: MessageIdentifier?, + allowSendingWithoutReply: Boolean?, replyMarkup: KeyboardMarkup? ): Request> = poll.createRequest( chatId, disableNotification, 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 270a6bab3e..33cc9c3319 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 @@ -24,6 +24,7 @@ data class TextContent( chatId: ChatIdentifier, disableNotification: Boolean, replyToMessageId: MessageIdentifier?, + allowSendingWithoutReply: Boolean?, replyMarkup: KeyboardMarkup? ): Request> = SendTextMessage( chatId, @@ -32,6 +33,7 @@ data class TextContent( false, disableNotification, replyToMessageId, + allowSendingWithoutReply, replyMarkup ) @@ -39,11 +41,13 @@ data class TextContent( chatId: ChatIdentifier, disableNotification: Boolean, replyToMessageId: MessageIdentifier?, + allowSendingWithoutReply: Boolean?, replyMarkup: KeyboardMarkup? ): List>> = createResends( chatId, disableNotification, replyToMessageId, + allowSendingWithoutReply, replyMarkup, HTMLParseMode ) @@ -52,6 +56,7 @@ data class TextContent( chatId: ChatIdentifier, disableNotification: Boolean, replyToMessageId: MessageIdentifier?, + allowSendingWithoutReply: Boolean?, replyMarkup: KeyboardMarkup?, parseMode: ParseMode = HTMLParseMode ): List>> = when (parseMode) { @@ -66,6 +71,7 @@ data class TextContent( false, disableNotification, 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 9b662e8133..60a355afe1 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 @@ -16,8 +16,9 @@ data class VenueContent( chatId: ChatIdentifier, disableNotification: Boolean, replyToMessageId: MessageIdentifier?, + allowSendingWithoutReply: Boolean?, replyMarkup: KeyboardMarkup? ): Request> = SendVenue( - chatId, venue, disableNotification, replyToMessageId, replyMarkup + chatId, venue, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup ) } \ No newline at end of file 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 8707e351ee..f0b1993573 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 @@ -11,6 +11,7 @@ interface ResendableContent { chatId: ChatIdentifier, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ): Request @@ -18,6 +19,7 @@ interface ResendableContent { chatId: ChatIdentifier, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null - ): List> = listOf(createResend(chatId, disableNotification, replyToMessageId, replyMarkup)) + ): List> = listOf(createResend(chatId, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup)) } \ 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 2d5c4b8ca8..c7b1f6c662 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 @@ -27,6 +27,7 @@ data class AnimationContent( chatId: ChatIdentifier, disableNotification: Boolean, replyToMessageId: MessageIdentifier?, + allowSendingWithoutReply: Boolean?, replyMarkup: KeyboardMarkup? ): Request> = SendAnimation( chatId, @@ -39,6 +40,7 @@ data class AnimationContent( media.height, disableNotification, 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 e662354d3a..287fd39bb0 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 @@ -24,6 +24,7 @@ data class AudioContent( chatId: ChatIdentifier, disableNotification: Boolean, replyToMessageId: MessageIdentifier?, + allowSendingWithoutReply: Boolean?, replyMarkup: KeyboardMarkup? ): Request> = SendAudio( chatId, @@ -36,6 +37,7 @@ data class AudioContent( media.title, disableNotification, 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 f69c415813..737b73d82b 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 @@ -26,6 +26,7 @@ data class DocumentContent( chatId: ChatIdentifier, disableNotification: Boolean, replyToMessageId: MessageIdentifier?, + allowSendingWithoutReply: Boolean?, replyMarkup: KeyboardMarkup? ): Request> = SendDocument( chatId, @@ -35,6 +36,7 @@ data class DocumentContent( HTMLParseMode, disableNotification, 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 de7b9eb17a..6582fd1bb3 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 @@ -26,6 +26,7 @@ data class PhotoContent( chatId: ChatIdentifier, disableNotification: Boolean, replyToMessageId: MessageIdentifier?, + allowSendingWithoutReply: Boolean?, replyMarkup: KeyboardMarkup? ): Request> = SendPhoto( chatId, @@ -34,6 +35,7 @@ data class PhotoContent( HTMLParseMode, disableNotification, 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 68c5edc783..7b0ab518e2 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 @@ -17,12 +17,14 @@ data class StickerContent( chatId: ChatIdentifier, disableNotification: Boolean, replyToMessageId: MessageIdentifier?, + allowSendingWithoutReply: Boolean?, replyMarkup: KeyboardMarkup? ): Request> = SendSticker( chatId, media.fileId, disableNotification, 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 1049043f37..eacb96d6bf 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 @@ -27,6 +27,7 @@ data class VideoContent( chatId: ChatIdentifier, disableNotification: Boolean, replyToMessageId: MessageIdentifier?, + allowSendingWithoutReply: Boolean?, replyMarkup: KeyboardMarkup? ): Request> = SendVideo( chatId, @@ -40,6 +41,7 @@ data class VideoContent( null, disableNotification, 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 4957e19853..df414aee2b 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,26 +18,17 @@ data class VideoNoteContent( chatId: ChatIdentifier, disableNotification: Boolean, replyToMessageId: MessageIdentifier?, + allowSendingWithoutReply: Boolean?, replyMarkup: KeyboardMarkup? - ): Request> = createResend(chatId, null, null, disableNotification, replyToMessageId, replyMarkup) - - fun createResend( - chatId: ChatIdentifier, - caption: String?, - parseMode: ParseMode? = null, - disableNotification: Boolean = false, - replyToMessageId: MessageIdentifier? = null, - replyMarkup: KeyboardMarkup? = null ): Request> = SendVideoNote( chatId, media.fileId, media.thumb ?.fileId, - caption, - parseMode, media.duration, media.width, disableNotification, 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 1aa62d14ef..1d2b2dd4ce 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 @@ -25,6 +25,7 @@ data class VoiceContent( chatId: ChatIdentifier, disableNotification: Boolean, replyToMessageId: MessageIdentifier?, + allowSendingWithoutReply: Boolean?, replyMarkup: KeyboardMarkup? ): Request> = SendVoice( chatId, @@ -34,6 +35,7 @@ data class VoiceContent( media.duration, disableNotification, 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 35341e8dc5..b7dcca1c12 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 @@ -15,6 +15,7 @@ data class InvoiceContent( chatId: ChatIdentifier, disableNotification: Boolean, replyToMessageId: MessageIdentifier?, + allowSendingWithoutReply: Boolean?, replyMarkup: KeyboardMarkup? ): Request> { error("Unfortunately, currently InvoiceOfPayment can not be resend due to requirement of additional parameters," + diff --git a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/Close.kt b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/Close.kt new file mode 100644 index 0000000000..14a613d890 --- /dev/null +++ b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/Close.kt @@ -0,0 +1,7 @@ +package dev.inmo.tgbotapi.extensions.api + +import dev.inmo.tgbotapi.bot.TelegramBot +import dev.inmo.tgbotapi.requests.local.Close + +@Suppress("unused") +suspend inline fun TelegramBot.close() = execute(Close) diff --git a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/LiveLocation.kt b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/LiveLocationProvider.kt similarity index 58% rename from tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/LiveLocation.kt rename to tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/LiveLocationProvider.kt index 960993c312..28edcf6741 100644 --- a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/LiveLocation.kt +++ b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/LiveLocationProvider.kt @@ -3,7 +3,6 @@ package dev.inmo.tgbotapi.extensions.api import dev.inmo.tgbotapi.bot.TelegramBot import dev.inmo.tgbotapi.extensions.api.edit.LiveLocation.editLiveLocation import dev.inmo.tgbotapi.extensions.api.edit.LiveLocation.stopLiveLocation -import dev.inmo.tgbotapi.requests.send.SendLocation import dev.inmo.tgbotapi.types.* import dev.inmo.tgbotapi.types.buttons.InlineKeyboardMarkup import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup @@ -13,14 +12,15 @@ import dev.inmo.tgbotapi.types.message.abstracts.Message import dev.inmo.tgbotapi.types.message.content.LocationContent import com.soywiz.klock.DateTime import com.soywiz.klock.TimeSpan -import dev.inmo.tgbotapi.types.location.StaticLocation +import dev.inmo.tgbotapi.requests.send.SendLiveLocation +import dev.inmo.tgbotapi.types.location.* import io.ktor.utils.io.core.Closeable import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.launch import kotlin.math.ceil val defaultLivePeriodDelayMillis = (livePeriodLimit.last - 60L) * 1000L -class LiveLocation internal constructor( +class LiveLocationProvider internal constructor( private val requestsExecutor: TelegramBot, scope: CoroutineScope, autoCloseTimeDelay: Double, @@ -40,13 +40,13 @@ class LiveLocation internal constructor( get() = field || leftUntilCloseMillis.millisecondsLong < 0L private var message: ContentMessage = initMessage - val lastLocation: StaticLocation - get() = message.content.location + val lastLocation: LiveLocation + get() = message.content.location as LiveLocation suspend fun updateLocation( - location: StaticLocation, + location: LiveLocation, replyMarkup: InlineKeyboardMarkup? = null - ): StaticLocation { + ): LiveLocation { if (!isClosed) { message = requestsExecutor.editLiveLocation( message, @@ -74,24 +74,32 @@ suspend fun TelegramBot.startLiveLocation( latitude: Double, longitude: Double, liveTimeMillis: Long = defaultLivePeriodDelayMillis, + initHorizontalAccuracy: Meters? = null, + initHeading: Degrees? = null, + initProximityAlertRadius: Meters? = null, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -): LiveLocation { +): LiveLocationProvider { val liveTimeAsDouble = liveTimeMillis.toDouble() val locationMessage = execute( - SendLocation( + SendLiveLocation( chatId, latitude, longitude, - ceil(liveTimeAsDouble / 1000).toLong(), + ceil(liveTimeAsDouble / 1000).toInt(), + initHorizontalAccuracy, + initHeading, + initProximityAlertRadius, disableNotification, replyToMessageId, + allowSendingWithoutReply, replyMarkup ) ) - return LiveLocation( + return LiveLocationProvider( this, scope, liveTimeAsDouble, @@ -105,11 +113,26 @@ suspend fun TelegramBot.startLiveLocation( latitude: Double, longitude: Double, liveTimeMillis: Long = defaultLivePeriodDelayMillis, + initHorizontalAccuracy: Meters? = null, + initHeading: Degrees? = null, + initProximityAlertRadius: Meters? = null, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -): LiveLocation = startLiveLocation( - scope, chat.id, latitude, longitude, liveTimeMillis, disableNotification, replyToMessageId, replyMarkup +): LiveLocationProvider = startLiveLocation( + scope, + chat.id, + latitude, + longitude, + liveTimeMillis, + initHorizontalAccuracy, + initHeading, + initProximityAlertRadius, + disableNotification, + replyToMessageId, + allowSendingWithoutReply, + replyMarkup ) suspend fun TelegramBot.startLiveLocation( @@ -117,11 +140,26 @@ suspend fun TelegramBot.startLiveLocation( chatId: ChatId, location: StaticLocation, liveTimeMillis: Long = defaultLivePeriodDelayMillis, + initHorizontalAccuracy: Meters? = null, + initHeading: Degrees? = null, + initProximityAlertRadius: Meters? = null, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -): LiveLocation = startLiveLocation( - scope, chatId, location.latitude, location.longitude, liveTimeMillis, disableNotification, replyToMessageId, replyMarkup +): LiveLocationProvider = startLiveLocation( + scope, + chatId, + location.latitude, + location.longitude, + liveTimeMillis, + initHorizontalAccuracy, + initHeading, + initProximityAlertRadius, + disableNotification, + replyToMessageId, + allowSendingWithoutReply, + replyMarkup ) suspend fun TelegramBot.startLiveLocation( @@ -129,11 +167,26 @@ suspend fun TelegramBot.startLiveLocation( chat: Chat, location: StaticLocation, liveTimeMillis: Long = defaultLivePeriodDelayMillis, + initHorizontalAccuracy: Meters? = null, + initHeading: Degrees? = null, + initProximityAlertRadius: Meters? = null, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -): LiveLocation = startLiveLocation( - scope, chat.id, location.latitude, location.longitude, liveTimeMillis, disableNotification, replyToMessageId, replyMarkup +): LiveLocationProvider = startLiveLocation( + scope, + chat.id, + location.latitude, + location.longitude, + liveTimeMillis, + initHorizontalAccuracy, + initHeading, + initProximityAlertRadius, + disableNotification, + replyToMessageId, + allowSendingWithoutReply, + replyMarkup ) suspend inline fun TelegramBot.replyWithLiveLocation( @@ -142,15 +195,48 @@ suspend inline fun TelegramBot.replyWithLiveLocation( latitude: Double, longitude: Double, liveTimeMillis: Long = defaultLivePeriodDelayMillis, + initHorizontalAccuracy: Meters? = null, + initHeading: Degrees? = null, + initProximityAlertRadius: Meters? = null, disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = startLiveLocation(scope, to.chat, latitude, longitude, liveTimeMillis, disableNotification, to.messageId, replyMarkup) +) = startLiveLocation( + scope, + to.chat, + latitude, + longitude, + liveTimeMillis, + initHorizontalAccuracy, + initHeading, + initProximityAlertRadius, + disableNotification, + to.messageId, + allowSendingWithoutReply, + replyMarkup +) suspend inline fun TelegramBot.replyWithLiveLocation( to: Message, scope: CoroutineScope, location: StaticLocation, liveTimeMillis: Long = defaultLivePeriodDelayMillis, + initHorizontalAccuracy: Meters? = null, + initHeading: Degrees? = null, + initProximityAlertRadius: Meters? = null, disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = startLiveLocation(scope, to.chat, location, liveTimeMillis, disableNotification, to.messageId, replyMarkup) +) = startLiveLocation( + scope, + to.chat, + location, + liveTimeMillis, + initHorizontalAccuracy, + initHeading, + initProximityAlertRadius, + disableNotification, + to.messageId, + allowSendingWithoutReply, + replyMarkup +) diff --git a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/LogOut.kt b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/LogOut.kt new file mode 100644 index 0000000000..23d5c8daeb --- /dev/null +++ b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/LogOut.kt @@ -0,0 +1,6 @@ +package dev.inmo.tgbotapi.extensions.api + +import dev.inmo.tgbotapi.bot.TelegramBot +import dev.inmo.tgbotapi.requests.local.LogOut + +suspend inline fun TelegramBot.logOut() = execute(LogOut) diff --git a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/chat/members/UnbanChatMember.kt b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/chat/members/UnbanChatMember.kt index 74719e7281..5b98415738 100644 --- a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/chat/members/UnbanChatMember.kt +++ b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/chat/members/UnbanChatMember.kt @@ -7,21 +7,25 @@ import dev.inmo.tgbotapi.types.chat.abstracts.PublicChat suspend fun TelegramBot.unbanChatMember( chatId: ChatIdentifier, - userId: UserId -) = execute(UnbanChatMember(chatId, userId)) + userId: UserId, + onlyIfBanned: Boolean? = null +) = execute(UnbanChatMember(chatId, userId, onlyIfBanned)) suspend fun TelegramBot.unbanChatMember( chat: PublicChat, - userId: UserId -) = unbanChatMember(chat.id, userId) + userId: UserId, + onlyIfBanned: Boolean? = null +) = unbanChatMember(chat.id, userId, onlyIfBanned) suspend fun TelegramBot.unbanChatMember( chatId: ChatId, - user: User -) = unbanChatMember(chatId, user.id) + user: User, + onlyIfBanned: Boolean? = null +) = unbanChatMember(chatId, user.id, onlyIfBanned) suspend fun TelegramBot.unbanChatMember( chat: PublicChat, - user: User -) = unbanChatMember(chat.id, user.id) + user: User, + onlyIfBanned: Boolean? = null +) = unbanChatMember(chat.id, user.id, onlyIfBanned) diff --git a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/edit/LiveLocation/EditChatMessageLiveLocation.kt b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/edit/LiveLocation/EditChatMessageLiveLocation.kt index f17ba6b8aa..894fa27df1 100644 --- a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/edit/LiveLocation/EditChatMessageLiveLocation.kt +++ b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/edit/LiveLocation/EditChatMessageLiveLocation.kt @@ -5,6 +5,7 @@ import dev.inmo.tgbotapi.requests.edit.LiveLocation.EditChatMessageLiveLocation import dev.inmo.tgbotapi.types.* import dev.inmo.tgbotapi.types.buttons.InlineKeyboardMarkup import dev.inmo.tgbotapi.types.chat.abstracts.Chat +import dev.inmo.tgbotapi.types.location.LiveLocation import dev.inmo.tgbotapi.types.location.StaticLocation import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage import dev.inmo.tgbotapi.types.message.content.LocationContent @@ -14,10 +15,13 @@ suspend fun TelegramBot.editLiveLocation( messageId: MessageIdentifier, latitude: Double, longitude: Double, + horizontalAccuracy: Meters? = null, + heading: Degrees? = null, + proximityAlertRadius: Meters? = null, replyMarkup: InlineKeyboardMarkup? = null ) = execute( EditChatMessageLiveLocation( - chatId, messageId, latitude, longitude, replyMarkup + chatId, messageId, latitude, longitude, horizontalAccuracy, heading, proximityAlertRadius, replyMarkup ) ) @@ -26,36 +30,42 @@ suspend fun TelegramBot.editLiveLocation( messageId: MessageIdentifier, latitude: Double, longitude: Double, + horizontalAccuracy: Meters? = null, + heading: Degrees? = null, + proximityAlertRadius: Meters? = null, replyMarkup: InlineKeyboardMarkup? = null -) = editLiveLocation(chat.id, messageId, latitude, longitude, replyMarkup) +) = editLiveLocation(chat.id, messageId, latitude, longitude, horizontalAccuracy, heading, proximityAlertRadius, replyMarkup) suspend fun TelegramBot.editLiveLocation( message: ContentMessage, latitude: Double, longitude: Double, + horizontalAccuracy: Meters? = null, + heading: Degrees? = null, + proximityAlertRadius: Meters? = null, replyMarkup: InlineKeyboardMarkup? = null -) = editLiveLocation(message.chat, message.messageId, latitude, longitude, replyMarkup) +) = editLiveLocation(message.chat, message.messageId, latitude, longitude, horizontalAccuracy, heading, proximityAlertRadius, replyMarkup) suspend fun TelegramBot.editLiveLocation( chatId: ChatIdentifier, messageId: MessageIdentifier, - location: StaticLocation, + location: LiveLocation, replyMarkup: InlineKeyboardMarkup? = null ) = execute( EditChatMessageLiveLocation( - chatId, messageId, location.latitude, location.longitude, replyMarkup + chatId, messageId, location.latitude, location.longitude, location.horizontalAccuracy, location.heading, location.proximityAlertRadius, replyMarkup ) ) suspend fun TelegramBot.editLiveLocation( chat: Chat, messageId: MessageIdentifier, - location: StaticLocation, + location: LiveLocation, replyMarkup: InlineKeyboardMarkup? = null -) = editLiveLocation(chat.id, messageId, location.latitude, location.longitude, replyMarkup) +) = editLiveLocation(chat.id, messageId, location.latitude, location.longitude, location.horizontalAccuracy, location.heading, location.proximityAlertRadius, replyMarkup) suspend fun TelegramBot.editLiveLocation( message: ContentMessage, - location: StaticLocation, + location: LiveLocation, replyMarkup: InlineKeyboardMarkup? = null -) = editLiveLocation(message.chat, message.messageId, location.latitude, location.longitude, replyMarkup) +) = editLiveLocation(message.chat, message.messageId, location.latitude, location.longitude, location.horizontalAccuracy, location.heading, location.proximityAlertRadius, replyMarkup) diff --git a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/edit/LiveLocation/EditInlineMessageLiveLocation.kt b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/edit/LiveLocation/EditInlineMessageLiveLocation.kt index a518941806..141d8220ee 100644 --- a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/edit/LiveLocation/EditInlineMessageLiveLocation.kt +++ b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/edit/LiveLocation/EditInlineMessageLiveLocation.kt @@ -2,22 +2,27 @@ package dev.inmo.tgbotapi.extensions.api.edit.LiveLocation import dev.inmo.tgbotapi.bot.TelegramBot import dev.inmo.tgbotapi.requests.edit.LiveLocation.EditInlineMessageLiveLocation -import dev.inmo.tgbotapi.types.InlineMessageIdentifier +import dev.inmo.tgbotapi.types.* import dev.inmo.tgbotapi.types.location.StaticLocation import dev.inmo.tgbotapi.types.buttons.InlineKeyboardMarkup +import dev.inmo.tgbotapi.types.location.LiveLocation +import kotlinx.serialization.SerialName suspend fun TelegramBot.editLiveLocation( inlineMessageId: InlineMessageIdentifier, latitude: Double, longitude: Double, + horizontalAccuracy: Meters? = null, + heading: Degrees? = null, + proximityAlertRadius: Meters? = null, replyMarkup: InlineKeyboardMarkup? = null ) = execute( EditInlineMessageLiveLocation( - inlineMessageId, latitude, longitude, replyMarkup + inlineMessageId, latitude, longitude, horizontalAccuracy, heading, proximityAlertRadius, replyMarkup ) ) suspend fun TelegramBot.editLiveLocation( inlineMessageId: InlineMessageIdentifier, - location: StaticLocation, + location: LiveLocation, replyMarkup: InlineKeyboardMarkup? = null -) = editLiveLocation(inlineMessageId, location.latitude, location.longitude, replyMarkup) +) = editLiveLocation(inlineMessageId, location.latitude, location.longitude, location.horizontalAccuracy, location.heading, location.proximityAlertRadius, replyMarkup) diff --git a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/edit/caption/EditChatMessageCaption.kt b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/edit/caption/EditChatMessageCaption.kt index 3ee1097691..1becc8e0d3 100644 --- a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/edit/caption/EditChatMessageCaption.kt +++ b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/edit/caption/EditChatMessageCaption.kt @@ -1,6 +1,7 @@ package dev.inmo.tgbotapi.extensions.api.edit.caption import dev.inmo.tgbotapi.CommonAbstracts.CaptionedInput +import dev.inmo.tgbotapi.CommonAbstracts.TextSource import dev.inmo.tgbotapi.bot.TelegramBot import dev.inmo.tgbotapi.requests.edit.caption.EditChatMessageCaption import dev.inmo.tgbotapi.types.ChatIdentifier @@ -37,3 +38,27 @@ suspend fun TelegramBot.editMessageCaption( ): ContentMessage where T : CaptionedInput, T : MediaContent { return editMessageCaption(message.chat.id, message.messageId, text, parseMode, replyMarkup) } + +suspend fun TelegramBot.editMessageCaption( + chatId: ChatIdentifier, + messageId: MessageIdentifier, + entities: List, + replyMarkup: InlineKeyboardMarkup? = null +) = execute( + EditChatMessageCaption(chatId, messageId, entities, replyMarkup) +) + +suspend fun TelegramBot.editMessageCaption( + chat: Chat, + messageId: MessageIdentifier, + entities: List, + replyMarkup: InlineKeyboardMarkup? = null +) = editMessageCaption(chat.id, messageId, entities, replyMarkup) + +suspend fun TelegramBot.editMessageCaption( + message: ContentMessage, + entities: List, + replyMarkup: InlineKeyboardMarkup? = null +): ContentMessage where T : CaptionedInput, T : MediaContent { + return editMessageCaption(message.chat.id, message.messageId, entities, replyMarkup) +} diff --git a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/edit/caption/EditInlineMessageCaption.kt b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/edit/caption/EditInlineMessageCaption.kt index 29ca66bfbb..00df5eea1e 100644 --- a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/edit/caption/EditInlineMessageCaption.kt +++ b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/edit/caption/EditInlineMessageCaption.kt @@ -1,5 +1,6 @@ package dev.inmo.tgbotapi.extensions.api.edit.caption +import dev.inmo.tgbotapi.CommonAbstracts.TextSource import dev.inmo.tgbotapi.bot.TelegramBot import dev.inmo.tgbotapi.requests.edit.caption.EditInlineMessageCaption import dev.inmo.tgbotapi.types.InlineMessageIdentifier @@ -12,3 +13,9 @@ suspend fun TelegramBot.editMessageCaption( parseMode: ParseMode? = null, replyMarkup: InlineKeyboardMarkup? = null ) = execute(EditInlineMessageCaption(inlineMessageId, text, parseMode, replyMarkup)) + +suspend fun TelegramBot.editMessageCaption( + inlineMessageId: InlineMessageIdentifier, + entities: List, + replyMarkup: InlineKeyboardMarkup? = null +) = execute(EditInlineMessageCaption(inlineMessageId, entities, replyMarkup)) diff --git a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/edit/text/EditChatMessageText.kt b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/edit/text/EditChatMessageText.kt index 811a5f33d0..1e9f460310 100644 --- a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/edit/text/EditChatMessageText.kt +++ b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/edit/text/EditChatMessageText.kt @@ -1,5 +1,6 @@ package dev.inmo.tgbotapi.extensions.api.edit.text +import dev.inmo.tgbotapi.CommonAbstracts.TextSource import dev.inmo.tgbotapi.bot.TelegramBot import dev.inmo.tgbotapi.requests.edit.text.EditChatMessageText import dev.inmo.tgbotapi.types.ChatIdentifier @@ -36,4 +37,29 @@ suspend fun TelegramBot.editMessageText( parseMode: ParseMode? = null, disableWebPagePreview: Boolean? = null, replyMarkup: InlineKeyboardMarkup? = null -) = editMessageText(message.chat.id, message.messageId, text, parseMode, disableWebPagePreview, replyMarkup) \ No newline at end of file +) = editMessageText(message.chat.id, message.messageId, text, parseMode, disableWebPagePreview, replyMarkup) + +suspend fun TelegramBot.editMessageText( + chatId: ChatIdentifier, + messageId: MessageIdentifier, + entities: List, + disableWebPagePreview: Boolean? = null, + replyMarkup: InlineKeyboardMarkup? = null +) = execute( + EditChatMessageText(chatId, messageId, entities, disableWebPagePreview, replyMarkup) +) + +suspend fun TelegramBot.editMessageText( + chat: Chat, + messageId: MessageIdentifier, + entities: List, + disableWebPagePreview: Boolean? = null, + replyMarkup: InlineKeyboardMarkup? = null +) = editMessageText(chat.id, messageId, entities, disableWebPagePreview, replyMarkup) + +suspend fun TelegramBot.editMessageText( + message: ContentMessage, + entities: List, + disableWebPagePreview: Boolean? = null, + replyMarkup: InlineKeyboardMarkup? = null +) = editMessageText(message.chat.id, message.messageId, entities, disableWebPagePreview, replyMarkup) \ No newline at end of file diff --git a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/edit/text/EditInlineMessageText.kt b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/edit/text/EditInlineMessageText.kt index e21c30c03c..f100fa861e 100644 --- a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/edit/text/EditInlineMessageText.kt +++ b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/edit/text/EditInlineMessageText.kt @@ -1,5 +1,6 @@ package dev.inmo.tgbotapi.extensions.api.edit.text +import dev.inmo.tgbotapi.CommonAbstracts.TextSource import dev.inmo.tgbotapi.bot.TelegramBot import dev.inmo.tgbotapi.requests.edit.text.EditInlineMessageText import dev.inmo.tgbotapi.types.InlineMessageIdentifier @@ -13,3 +14,10 @@ suspend fun TelegramBot.editMessageText( disableWebPagePreview: Boolean? = null, replyMarkup: InlineKeyboardMarkup? = null ) = execute(EditInlineMessageText(inlineMessageId, text, parseMode, disableWebPagePreview, replyMarkup)) + +suspend fun TelegramBot.editMessageText( + inlineMessageId: InlineMessageIdentifier, + entities: List, + disableWebPagePreview: Boolean? = null, + replyMarkup: InlineKeyboardMarkup? = null +) = execute(EditInlineMessageText(inlineMessageId, entities, disableWebPagePreview, replyMarkup)) diff --git a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/CopyMessage.kt b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/CopyMessage.kt new file mode 100644 index 0000000000..73874634de --- /dev/null +++ b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/CopyMessage.kt @@ -0,0 +1,150 @@ +package dev.inmo.tgbotapi.extensions.api.send + +import dev.inmo.tgbotapi.CommonAbstracts.TextSource +import dev.inmo.tgbotapi.bot.TelegramBot +import dev.inmo.tgbotapi.requests.send.CopyMessage +import dev.inmo.tgbotapi.types.ChatIdentifier +import dev.inmo.tgbotapi.types.MessageIdentifier +import dev.inmo.tgbotapi.types.ParseMode.ParseMode +import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup +import dev.inmo.tgbotapi.types.chat.abstracts.Chat +import dev.inmo.tgbotapi.types.message.abstracts.Message + +suspend inline fun TelegramBot.copyMessage( + fromChatId: ChatIdentifier, + toChatId: ChatIdentifier, + messageId: MessageIdentifier, + text: String? = null, + parseMode: ParseMode? = null, + disableNotification: Boolean = false, + replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null +) = execute( + CopyMessage(fromChatId, toChatId, messageId, text, parseMode, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) +) + +suspend inline fun TelegramBot.copyMessage( + fromChat: Chat, + toChatId: ChatIdentifier, + messageId: MessageIdentifier, + text: String? = null, + parseMode: ParseMode? = null, + disableNotification: Boolean = false, + replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null +) = copyMessage(fromChat.id, toChatId, messageId, text, parseMode, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) + +suspend inline fun TelegramBot.copyMessage( + fromChatId: ChatIdentifier, + toChat: Chat, + messageId: MessageIdentifier, + text: String? = null, + parseMode: ParseMode? = null, + disableNotification: Boolean = false, + replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null +) = copyMessage(fromChatId, toChat.id, messageId, text, parseMode, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) + +suspend inline fun TelegramBot.copyMessage( + fromChat: Chat, + toChat: Chat, + messageId: MessageIdentifier, + text: String? = null, + parseMode: ParseMode? = null, + disableNotification: Boolean = false, + replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null +) = copyMessage(fromChat.id, toChat.id, messageId, text, parseMode, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) + +suspend inline fun TelegramBot.copyMessage( + toChatId: ChatIdentifier, + message: Message, + text: String? = null, + parseMode: ParseMode? = null, + disableNotification: Boolean = false, + replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null +) = copyMessage(message.chat, toChatId, message.messageId, text, parseMode, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) + +suspend inline fun TelegramBot.copyMessage( + toChat: Chat, + message: Message, + text: String? = null, + parseMode: ParseMode? = null, + disableNotification: Boolean = false, + replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null +) = copyMessage(message.chat, toChat, message.messageId, text, parseMode, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) + + +suspend inline fun TelegramBot.copyMessage( + fromChatId: ChatIdentifier, + toChatId: ChatIdentifier, + messageId: MessageIdentifier, + entities: List, + disableNotification: Boolean = false, + replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null +) = execute( + CopyMessage(fromChatId, toChatId, messageId, entities, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) +) + +suspend inline fun TelegramBot.copyMessage( + fromChat: Chat, + toChatId: ChatIdentifier, + messageId: MessageIdentifier, + entities: List, + disableNotification: Boolean = false, + replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null +) = copyMessage(fromChat.id, toChatId, messageId, entities, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) + +suspend inline fun TelegramBot.copyMessage( + fromChatId: ChatIdentifier, + toChat: Chat, + messageId: MessageIdentifier, + entities: List, + disableNotification: Boolean = false, + replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null +) = copyMessage(fromChatId, toChat.id, messageId, entities, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) + +suspend inline fun TelegramBot.copyMessage( + fromChat: Chat, + toChat: Chat, + messageId: MessageIdentifier, + entities: List, + disableNotification: Boolean = false, + replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null +) = copyMessage(fromChat.id, toChat.id, messageId, entities, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) + +suspend inline fun TelegramBot.copyMessage( + toChatId: ChatIdentifier, + message: Message, + entities: List, + disableNotification: Boolean = false, + replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null +) = copyMessage(message.chat, toChatId, message.messageId, entities, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) + +suspend inline fun TelegramBot.copyMessage( + toChat: Chat, + message: Message, + entities: List, + disableNotification: Boolean = false, + replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null +) = copyMessage(message.chat, toChat, message.messageId, entities, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) diff --git a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/SendContact.kt b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/SendContact.kt index 9b0f05be68..7edf1423e4 100644 --- a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/SendContact.kt +++ b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/SendContact.kt @@ -14,10 +14,11 @@ suspend fun TelegramBot.sendContact( lastName: String? = null, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = execute( SendContact( - chatId, phoneNumber, firstName, lastName, disableNotification, replyToMessageId, replyMarkup + chatId, phoneNumber, firstName, lastName, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup ) ) @@ -26,10 +27,11 @@ suspend fun TelegramBot.sendContact( contact: Contact, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = execute( SendContact( - chatId, contact, disableNotification, replyToMessageId, replyMarkup + chatId, contact, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup ) ) @@ -40,9 +42,10 @@ suspend fun TelegramBot.sendContact( lastName: String? = null, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendContact( - chat.id, phoneNumber, firstName, lastName, disableNotification, replyToMessageId, replyMarkup + chat.id, phoneNumber, firstName, lastName, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup ) suspend fun TelegramBot.sendContact( @@ -50,9 +53,10 @@ suspend fun TelegramBot.sendContact( contact: Contact, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendContact( - chat.id, contact, disableNotification, replyToMessageId, replyMarkup + chat.id, contact, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup ) suspend inline fun TelegramBot.reply( @@ -61,6 +65,7 @@ suspend inline fun TelegramBot.reply( firstName: String, lastName: String? = null, disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendContact( to.chat, @@ -69,6 +74,7 @@ suspend inline fun TelegramBot.reply( lastName, disableNotification, to.messageId, + allowSendingWithoutReply, replyMarkup ) @@ -76,11 +82,13 @@ suspend inline fun TelegramBot.reply( to: Message, contact: Contact, disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendContact( to.chat, contact, disableNotification, to.messageId, + allowSendingWithoutReply, replyMarkup ) diff --git a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/SendDice.kt b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/SendDice.kt index b6afbe4374..250f55d88a 100644 --- a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/SendDice.kt +++ b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/SendDice.kt @@ -14,9 +14,10 @@ suspend fun TelegramBot.sendDice( animationType: DiceAnimationType? = null, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = execute( - SendDice(chatId, animationType, disableNotification, replyToMessageId, replyMarkup) + SendDice(chatId, animationType, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) ) suspend fun TelegramBot.sendDice( @@ -24,12 +25,14 @@ suspend fun TelegramBot.sendDice( animationType: DiceAnimationType? = null, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendDice(chat.id, animationType, disableNotification, replyToMessageId, replyMarkup) +) = sendDice(chat.id, animationType, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) suspend inline fun TelegramBot.reply( to: Message, animationType: DiceAnimationType? = null, disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendDice(to.chat, animationType, disableNotification, to.messageId, replyMarkup) +) = sendDice(to.chat, animationType, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) diff --git a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/SendLocation.kt b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/SendLocation.kt index a9abc0c4cb..0442d77149 100644 --- a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/SendLocation.kt +++ b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/SendLocation.kt @@ -2,6 +2,7 @@ package dev.inmo.tgbotapi.extensions.api.send import dev.inmo.tgbotapi.bot.TelegramBot import dev.inmo.tgbotapi.requests.send.SendLocation +import dev.inmo.tgbotapi.requests.send.SendStaticLocation import dev.inmo.tgbotapi.types.* import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup import dev.inmo.tgbotapi.types.chat.abstracts.Chat @@ -16,7 +17,7 @@ suspend fun TelegramBot.sendLocation( replyToMessageId: MessageIdentifier? = null, replyMarkup: KeyboardMarkup? = null ) = execute( - SendLocation( + SendStaticLocation( chatId, latitude, longitude, @@ -72,6 +73,40 @@ suspend fun TelegramBot.sendLocation( replyMarkup ) +suspend fun TelegramBot.sendStaticLocation( + chatId: ChatIdentifier, + latitude: Double, + longitude: Double, + disableNotification: Boolean = false, + replyToMessageId: MessageIdentifier? = null, + replyMarkup: KeyboardMarkup? = null +) = sendLocation(chatId, latitude, longitude, disableNotification, replyToMessageId, replyMarkup) + +suspend fun TelegramBot.sendStaticLocation( + chatId: ChatIdentifier, + location: StaticLocation, + disableNotification: Boolean = false, + replyToMessageId: MessageIdentifier? = null, + replyMarkup: KeyboardMarkup? = null +) = sendLocation(chatId, location.latitude, location.longitude, disableNotification, replyToMessageId, replyMarkup) + +suspend fun TelegramBot.sendStaticLocation( + chat: Chat, + latitude: Double, + longitude: Double, + disableNotification: Boolean = false, + replyToMessageId: MessageIdentifier? = null, + replyMarkup: KeyboardMarkup? = null +) = sendLocation(chat.id, latitude, longitude, disableNotification, replyToMessageId, replyMarkup) + +suspend fun TelegramBot.sendStaticLocation( + chat: Chat, + location: StaticLocation, + disableNotification: Boolean = false, + replyToMessageId: MessageIdentifier? = null, + replyMarkup: KeyboardMarkup? = null +) = sendLocation(chat.id, location.latitude, location.longitude, disableNotification, replyToMessageId, replyMarkup) + suspend inline fun TelegramBot.reply( to: Message, latitude: Double, diff --git a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/SendMessage.kt b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/SendMessage.kt index 2519f6597c..ccfae79987 100644 --- a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/SendMessage.kt +++ b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/SendMessage.kt @@ -1,5 +1,6 @@ package dev.inmo.tgbotapi.extensions.api.send +import dev.inmo.tgbotapi.CommonAbstracts.TextSource import dev.inmo.tgbotapi.bot.TelegramBot import dev.inmo.tgbotapi.requests.send.SendTextMessage import dev.inmo.tgbotapi.types.ChatIdentifier @@ -16,9 +17,10 @@ suspend fun TelegramBot.sendMessage( disableWebPagePreview: Boolean? = null, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = execute( - SendTextMessage(chatId, text, parseMode, disableWebPagePreview, disableNotification, replyToMessageId, replyMarkup) + SendTextMessage(chatId, text, parseMode, disableWebPagePreview, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) ) suspend fun TelegramBot.sendTextMessage( @@ -28,9 +30,10 @@ suspend fun TelegramBot.sendTextMessage( disableWebPagePreview: Boolean? = null, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendMessage( - chatId, text, parseMode, disableWebPagePreview, disableNotification, replyToMessageId, replyMarkup + chatId, text, parseMode, disableWebPagePreview, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup ) suspend fun TelegramBot.sendMessage( @@ -40,8 +43,9 @@ suspend fun TelegramBot.sendMessage( disableWebPagePreview: Boolean? = null, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendMessage(chat.id, text, parseMode, disableWebPagePreview, disableNotification, replyToMessageId, replyMarkup) +) = sendMessage(chat.id, text, parseMode, disableWebPagePreview, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) suspend fun TelegramBot.sendTextMessage( @@ -51,8 +55,54 @@ suspend fun TelegramBot.sendTextMessage( disableWebPagePreview: Boolean? = null, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendTextMessage(chat.id, text, parseMode, disableWebPagePreview, disableNotification, replyToMessageId, replyMarkup) +) = sendTextMessage(chat.id, text, parseMode, disableWebPagePreview, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) + +suspend fun TelegramBot.sendMessage( + chatId: ChatIdentifier, + entities: List, + disableWebPagePreview: Boolean? = null, + disableNotification: Boolean = false, + replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null +) = execute( + SendTextMessage(chatId, entities, disableWebPagePreview, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) +) + +suspend fun TelegramBot.sendTextMessage( + chatId: ChatIdentifier, + entities: List, + disableWebPagePreview: Boolean? = null, + disableNotification: Boolean = false, + replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null +) = sendMessage( + chatId, entities, disableWebPagePreview, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup +) + +suspend fun TelegramBot.sendMessage( + chat: Chat, + entities: List, + disableWebPagePreview: Boolean? = null, + disableNotification: Boolean = false, + replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null +) = sendMessage(chat.id, entities, disableWebPagePreview, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) + + +suspend fun TelegramBot.sendTextMessage( + chat: Chat, + entities: List, + disableWebPagePreview: Boolean? = null, + disableNotification: Boolean = false, + replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null +) = sendTextMessage(chat.id, entities, disableWebPagePreview, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) suspend inline fun TelegramBot.reply( to: Message, @@ -60,6 +110,7 @@ suspend inline fun TelegramBot.reply( parseMode: ParseMode? = null, disableWebPagePreview: Boolean? = null, disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendTextMessage( to.chat, @@ -68,5 +119,22 @@ suspend inline fun TelegramBot.reply( disableWebPagePreview, disableNotification, to.messageId, + allowSendingWithoutReply, + replyMarkup +) +suspend inline fun TelegramBot.reply( + to: Message, + entities: List, + disableWebPagePreview: Boolean? = null, + disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null +) = sendTextMessage( + to.chat, + entities, + disableWebPagePreview, + disableNotification, + to.messageId, + allowSendingWithoutReply, replyMarkup ) diff --git a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/SendVenue.kt b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/SendVenue.kt index e05b942a9b..ce34bf4e0b 100644 --- a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/SendVenue.kt +++ b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/SendVenue.kt @@ -18,10 +18,11 @@ suspend fun TelegramBot.sendVenue( foursquareId: String? = null, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = execute( SendVenue( - chatId, latitude, longitude, title, address, foursquareId, disableNotification, replyToMessageId, replyMarkup + chatId, latitude, longitude, title, address, foursquareId, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup ) ) @@ -34,9 +35,10 @@ suspend fun TelegramBot.sendVenue( foursquareId: String? = null, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendVenue( - chat.id, latitude, longitude, title, address, foursquareId, disableNotification, replyToMessageId, replyMarkup + chat.id, latitude, longitude, title, address, foursquareId, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup ) suspend fun TelegramBot.sendVenue( @@ -47,9 +49,10 @@ suspend fun TelegramBot.sendVenue( foursquareId: String? = null, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendVenue( - chatId, location.latitude, location.longitude, title, address, foursquareId, disableNotification, replyToMessageId, replyMarkup + chatId, location.latitude, location.longitude, title, address, foursquareId, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup ) suspend fun TelegramBot.sendVenue( @@ -60,9 +63,10 @@ suspend fun TelegramBot.sendVenue( foursquareId: String? = null, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendVenue( - chat.id, location.latitude, location.longitude, title, address, foursquareId, disableNotification, replyToMessageId, replyMarkup + chat.id, location.latitude, location.longitude, title, address, foursquareId, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup ) suspend fun TelegramBot.sendVenue( @@ -70,10 +74,11 @@ suspend fun TelegramBot.sendVenue( venue: Venue, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = execute( SendVenue( - chatId, venue, disableNotification, replyToMessageId, replyMarkup + chatId, venue, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup ) ) @@ -82,9 +87,10 @@ suspend fun TelegramBot.sendVenue( venue: Venue, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendVenue( - chat.id, venue, disableNotification, replyToMessageId, replyMarkup + chat.id, venue, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup ) suspend inline fun TelegramBot.reply( @@ -95,9 +101,10 @@ suspend inline fun TelegramBot.reply( address: String, foursquareId: String? = null, disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendVenue( - to.chat, latitude, longitude, title, address, foursquareId, disableNotification, to.messageId, replyMarkup + to.chat, latitude, longitude, title, address, foursquareId, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup ) suspend inline fun TelegramBot.reply( @@ -107,16 +114,18 @@ suspend inline fun TelegramBot.reply( address: String, foursquareId: String? = null, disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendVenue( - to.chat, location, title, address, foursquareId, disableNotification, to.messageId, replyMarkup + to.chat, location, title, address, foursquareId, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup ) suspend inline fun TelegramBot.reply( to: Message, venue: Venue, disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendVenue( - to.chat, venue, disableNotification, to.messageId, replyMarkup + to.chat, venue, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup ) diff --git a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/games/SendGame.kt b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/games/SendGame.kt index 82d17237b7..bc95b64ca3 100644 --- a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/games/SendGame.kt +++ b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/games/SendGame.kt @@ -14,10 +14,11 @@ suspend fun TelegramBot.sendGame( gameShortName: String, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = execute( SendGame( - chatId, gameShortName, disableNotification, replyToMessageId, replyMarkup + chatId, gameShortName, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup ) ) @@ -26,9 +27,10 @@ suspend fun TelegramBot.sendGame( gameShortName: String, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendGame( - chat.id, gameShortName, disableNotification, replyToMessageId, replyMarkup + chat.id, gameShortName, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup ) suspend fun TelegramBot.sendGame( @@ -36,9 +38,10 @@ suspend fun TelegramBot.sendGame( game: Game, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendGame( - chatId, game.title, disableNotification, replyToMessageId, replyMarkup + chatId, game.title, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup ) suspend fun TelegramBot.sendGame( @@ -46,32 +49,36 @@ suspend fun TelegramBot.sendGame( game: Game, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendGame( - chat.id, game.title, disableNotification, replyToMessageId, replyMarkup + chat.id, game.title, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup ) suspend inline fun TelegramBot.replyWithGame( to: Message, gameShortName: String, disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendGame( - to.chat, gameShortName, disableNotification, to.messageId, replyMarkup + to.chat, gameShortName, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup ) suspend inline fun TelegramBot.replyWithGame( to: Message, game: Game, disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendGame( - to.chat, game.title, disableNotification, to.messageId, replyMarkup + to.chat, game.title, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup ) suspend inline fun TelegramBot.reply( to: Message, game: Game, disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = replyWithGame(to, game, disableNotification, replyMarkup) +) = replyWithGame(to, game, disableNotification, allowSendingWithoutReply, replyMarkup) diff --git a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendAnimation.kt b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendAnimation.kt index 79f9ee41ab..95a4c4bcdc 100644 --- a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendAnimation.kt +++ b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendAnimation.kt @@ -1,5 +1,6 @@ package dev.inmo.tgbotapi.extensions.api.send.media +import dev.inmo.tgbotapi.CommonAbstracts.TextSource import dev.inmo.tgbotapi.bot.TelegramBot import dev.inmo.tgbotapi.requests.abstracts.InputFile import dev.inmo.tgbotapi.requests.send.media.SendAnimation @@ -22,6 +23,7 @@ suspend fun TelegramBot.sendAnimation( height: Int? = null, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = execute( SendAnimation( @@ -35,6 +37,7 @@ suspend fun TelegramBot.sendAnimation( height, disableNotification, replyToMessageId, + allowSendingWithoutReply, replyMarkup ) ) @@ -49,9 +52,10 @@ suspend fun TelegramBot.sendAnimation( height: Int? = null, disableNotification: 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, replyMarkup + chatId, animation.fileId, animation.thumb ?.fileId, text, parseMode, duration, width, height, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup ) suspend fun TelegramBot.sendAnimation( @@ -65,8 +69,9 @@ suspend fun TelegramBot.sendAnimation( height: Int? = null, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendAnimation(chat.id, animation, thumb, text, parseMode, duration, width, height, disableNotification, replyToMessageId, replyMarkup) +) = sendAnimation(chat.id, animation, thumb, text, parseMode, duration, width, height, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) suspend fun TelegramBot.sendAnimation( chat: Chat, @@ -78,8 +83,9 @@ suspend fun TelegramBot.sendAnimation( height: Int? = null, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendAnimation(chat.id, animation, text, parseMode, duration, width, height, disableNotification, replyToMessageId, replyMarkup) +) = sendAnimation(chat.id, animation, text, parseMode, duration, width, height, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) suspend inline fun TelegramBot.replyWithAnimation( to: Message, @@ -91,6 +97,7 @@ suspend inline fun TelegramBot.replyWithAnimation( width: Int? = null, height: Int? = null, disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendAnimation( to.chat, @@ -103,6 +110,7 @@ suspend inline fun TelegramBot.replyWithAnimation( height, disableNotification, to.messageId, + allowSendingWithoutReply, replyMarkup ) @@ -115,8 +123,9 @@ suspend inline fun TelegramBot.replyWithAnimation( width: Int? = null, height: Int? = null, disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendAnimation(to.chat, animation, text, parseMode, duration, width, height, disableNotification, to.messageId, replyMarkup) +) = sendAnimation(to.chat, animation, text, parseMode, duration, width, height, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) suspend inline fun TelegramBot.reply( to: Message, @@ -127,5 +136,126 @@ suspend inline fun TelegramBot.reply( width: Int? = null, height: Int? = null, disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = replyWithAnimation(to, animation, text, parseMode, duration, width, height, disableNotification, replyMarkup) +) = replyWithAnimation(to, animation, text, parseMode, duration, width, height, disableNotification, allowSendingWithoutReply, replyMarkup) + + +suspend fun TelegramBot.sendAnimation( + chatId: ChatIdentifier, + animation: InputFile, + thumb: InputFile? = null, + entities: List, + duration: Long? = null, + width: Int? = null, + height: Int? = null, + disableNotification: Boolean = false, + replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null +) = execute( + SendAnimation( + chatId, + animation, + thumb, + entities, + duration, + width, + height, + disableNotification, + replyToMessageId, + allowSendingWithoutReply, + replyMarkup + ) +) + +suspend fun TelegramBot.sendAnimation( + chatId: ChatIdentifier, + animation: AnimationFile, + entities: List, + duration: Long? = null, + width: Int? = null, + height: Int? = null, + disableNotification: 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 +) + +suspend fun TelegramBot.sendAnimation( + chat: Chat, + animation: InputFile, + thumb: InputFile? = null, + entities: List, + duration: Long? = null, + width: Int? = null, + height: Int? = null, + disableNotification: Boolean = false, + replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null +) = sendAnimation(chat.id, animation, thumb, entities, duration, width, height, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) + +suspend fun TelegramBot.sendAnimation( + chat: Chat, + animation: AnimationFile, + entities: List, + duration: Long? = null, + width: Int? = null, + height: Int? = null, + disableNotification: Boolean = false, + replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null +) = sendAnimation(chat.id, animation, entities, duration, width, height, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) + +suspend inline fun TelegramBot.replyWithAnimation( + to: Message, + animation: InputFile, + thumb: InputFile? = null, + entities: List, + duration: Long? = null, + width: Int? = null, + height: Int? = null, + disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null +) = sendAnimation( + to.chat, + animation, + thumb, + entities, + duration, + width, + height, + disableNotification, + to.messageId, + allowSendingWithoutReply, + replyMarkup +) + +suspend inline fun TelegramBot.replyWithAnimation( + to: Message, + animation: AnimationFile, + entities: List, + duration: Long? = null, + width: Int? = null, + height: Int? = null, + disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null +) = sendAnimation(to.chat, animation, entities, duration, width, height, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) + +suspend inline fun TelegramBot.reply( + to: Message, + animation: AnimationFile, + entities: List, + duration: Long? = null, + width: Int? = null, + height: Int? = null, + disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null +) = replyWithAnimation(to, animation, entities, duration, width, height, disableNotification, allowSendingWithoutReply, replyMarkup) diff --git a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendAudio.kt b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendAudio.kt index 0c9596f1f0..ce100da778 100644 --- a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendAudio.kt +++ b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendAudio.kt @@ -1,5 +1,6 @@ package dev.inmo.tgbotapi.extensions.api.send.media +import dev.inmo.tgbotapi.CommonAbstracts.TextSource import dev.inmo.tgbotapi.bot.TelegramBot import dev.inmo.tgbotapi.requests.abstracts.InputFile import dev.inmo.tgbotapi.requests.send.media.SendAudio @@ -23,6 +24,7 @@ suspend fun TelegramBot.sendAudio( title: String? = null, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = execute( SendAudio( @@ -36,6 +38,7 @@ suspend fun TelegramBot.sendAudio( title, disableNotification, replyToMessageId, + allowSendingWithoutReply, replyMarkup ) ) @@ -51,8 +54,9 @@ suspend fun TelegramBot.sendAudio( title: String? = null, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendAudio(chat.id, audio, thumb, text, parseMode, duration, performer, title, disableNotification, replyToMessageId, replyMarkup) +) = sendAudio(chat.id, audio, thumb, text, parseMode, duration, performer, title, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) suspend fun TelegramBot.sendAudio( chatId: ChatIdentifier, @@ -62,8 +66,9 @@ suspend fun TelegramBot.sendAudio( title: String? = audio.title, disableNotification: 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, replyMarkup) +) = sendAudio(chatId, audio.fileId, audio.thumb ?.fileId, text, parseMode, audio.duration, audio.performer, title, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) suspend fun TelegramBot.sendAudio( chat: Chat, @@ -73,8 +78,9 @@ suspend fun TelegramBot.sendAudio( title: String? = audio.title, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendAudio(chat.id, audio, text, parseMode, title, disableNotification, replyToMessageId, replyMarkup) +) = sendAudio(chat.id, audio, text, parseMode, title, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) suspend inline fun TelegramBot.replyWithAudio( to: Message, @@ -86,8 +92,9 @@ suspend inline fun TelegramBot.replyWithAudio( performer: String? = null, title: String? = null, disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendAudio(to.chat, audio, thumb, text, parseMode, duration, performer, title, disableNotification, to.messageId, replyMarkup) +) = sendAudio(to.chat, audio, thumb, text, parseMode, duration, performer, title, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) suspend inline fun TelegramBot.replyWithAudio( to: Message, @@ -96,8 +103,9 @@ suspend inline fun TelegramBot.replyWithAudio( parseMode: ParseMode? = null, title: String? = null, disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendAudio(to.chat, audio, text, parseMode, title, disableNotification, to.messageId, replyMarkup) +) = sendAudio(to.chat, audio, text, parseMode, title, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) suspend inline fun TelegramBot.reply( to: Message, @@ -106,5 +114,104 @@ suspend inline fun TelegramBot.reply( parseMode: ParseMode? = null, title: String? = null, disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = replyWithAudio(to, audio, text, parseMode, title, disableNotification, replyMarkup) +) = replyWithAudio(to, audio, text, parseMode, title, disableNotification, allowSendingWithoutReply, replyMarkup) + + +suspend inline fun TelegramBot.sendAudio( + chatId: ChatIdentifier, + audio: InputFile, + thumb: InputFile? = null, + entities: List, + duration: Long? = null, + performer: String? = null, + title: String? = null, + disableNotification: Boolean = false, + replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null +) = execute( + SendAudio( + chatId, + audio, + thumb, + entities, + duration, + performer, + title, + disableNotification, + replyToMessageId, + allowSendingWithoutReply, + replyMarkup + ) +) + +suspend inline fun TelegramBot.sendAudio( + chat: Chat, + audio: InputFile, + thumb: InputFile? = null, + entities: List, + duration: Long? = null, + performer: String? = null, + title: String? = null, + disableNotification: Boolean = false, + replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null +) = sendAudio(chat.id, audio, thumb, entities, duration, performer, title, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) + +suspend inline fun TelegramBot.sendAudio( + chatId: ChatIdentifier, + audio: AudioFile, + entities: List, + title: String? = audio.title, + disableNotification: 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) + +suspend inline fun TelegramBot.sendAudio( + chat: Chat, + audio: AudioFile, + entities: List, + title: String? = audio.title, + disableNotification: Boolean = false, + replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null +) = sendAudio(chat.id, audio, entities, title, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) + +suspend inline fun TelegramBot.replyWithAudio( + to: Message, + audio: InputFile, + thumb: InputFile? = null, + entities: List, + duration: Long? = null, + performer: String? = null, + title: String? = null, + disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null +) = sendAudio(to.chat, audio, thumb, entities, duration, performer, title, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) + +suspend inline fun TelegramBot.replyWithAudio( + to: Message, + audio: AudioFile, + entities: List, + title: String? = null, + disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null +) = sendAudio(to.chat, audio, entities, title, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) + +suspend inline fun TelegramBot.reply( + to: Message, + audio: AudioFile, + entities: List, + title: String? = null, + disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null +) = replyWithAudio(to, audio, entities, title, disableNotification, allowSendingWithoutReply, replyMarkup) diff --git a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendDocument.kt b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendDocument.kt index a1fca68afa..1fab4cc11b 100644 --- a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendDocument.kt +++ b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendDocument.kt @@ -1,5 +1,6 @@ package dev.inmo.tgbotapi.extensions.api.send.media +import dev.inmo.tgbotapi.CommonAbstracts.TextSource import dev.inmo.tgbotapi.bot.TelegramBot import dev.inmo.tgbotapi.requests.abstracts.InputFile import dev.inmo.tgbotapi.requests.send.media.SendDocument @@ -19,7 +20,9 @@ suspend fun TelegramBot.sendDocument( parseMode: ParseMode? = null, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, - replyMarkup: KeyboardMarkup? = null + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null, + disableContentTypeDetection: Boolean? = null ) = execute( SendDocument( chatId, @@ -29,7 +32,9 @@ suspend fun TelegramBot.sendDocument( parseMode, disableNotification, replyToMessageId, - replyMarkup + allowSendingWithoutReply, + replyMarkup, + disableContentTypeDetection ) ) @@ -41,8 +46,10 @@ suspend fun TelegramBot.sendDocument( parseMode: ParseMode? = null, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, - replyMarkup: KeyboardMarkup? = null -) = sendDocument(chat.id, document, thumb, text, parseMode, disableNotification, replyToMessageId, replyMarkup) + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null, + disableContentTypeDetection: Boolean? = null +) = sendDocument(chat.id, document, thumb, text, parseMode, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup, disableContentTypeDetection) suspend fun TelegramBot.sendDocument( chatId: ChatIdentifier, @@ -51,9 +58,11 @@ suspend fun TelegramBot.sendDocument( parseMode: ParseMode? = null, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, - replyMarkup: KeyboardMarkup? = null + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null, + disableContentTypeDetection: Boolean? = null ) = sendDocument( - chatId, document.fileId, document.thumb ?.fileId, text, parseMode, disableNotification, replyToMessageId, replyMarkup + chatId, document.fileId, document.thumb ?.fileId, text, parseMode, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup, disableContentTypeDetection ) suspend fun TelegramBot.sendDocument( @@ -63,8 +72,10 @@ suspend fun TelegramBot.sendDocument( parseMode: ParseMode? = null, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, - replyMarkup: KeyboardMarkup? = null -) = sendDocument(chat.id, document, text, parseMode, disableNotification, replyToMessageId, replyMarkup) + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null, + disableContentTypeDetection: Boolean? = null +) = sendDocument(chat.id, document, text, parseMode, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup, disableContentTypeDetection) suspend inline fun TelegramBot.replyWithDocument( to: Message, @@ -73,8 +84,10 @@ suspend inline fun TelegramBot.replyWithDocument( text: String? = null, parseMode: ParseMode? = null, disableNotification: Boolean = false, - replyMarkup: KeyboardMarkup? = null -) = sendDocument(to.chat, document, thumb, text, parseMode, disableNotification, to.messageId, replyMarkup) + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null, + disableContentTypeDetection: Boolean? = null +) = sendDocument(to.chat, document, thumb, text, parseMode, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup, disableContentTypeDetection) suspend inline fun TelegramBot.replyWithDocument( to: Message, @@ -82,8 +95,10 @@ suspend inline fun TelegramBot.replyWithDocument( text: String? = null, parseMode: ParseMode? = null, disableNotification: Boolean = false, - replyMarkup: KeyboardMarkup? = null -) = sendDocument(to.chat, document, text, parseMode, disableNotification, to.messageId, replyMarkup) + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null, + disableContentTypeDetection: Boolean? = null +) = sendDocument(to.chat, document, text, parseMode, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup, disableContentTypeDetection) suspend inline fun TelegramBot.reply( to: Message, @@ -91,5 +106,99 @@ suspend inline fun TelegramBot.reply( text: String? = null, parseMode: ParseMode? = null, disableNotification: Boolean = false, - replyMarkup: KeyboardMarkup? = null -) = replyWithDocument(to, document, text, parseMode, disableNotification, replyMarkup) + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null, + disableContentTypeDetection: Boolean? = null +) = replyWithDocument(to, document, text, parseMode, disableNotification, allowSendingWithoutReply, replyMarkup, disableContentTypeDetection) + + +suspend inline fun TelegramBot.sendDocument( + chatId: ChatIdentifier, + document: InputFile, + thumb: InputFile? = null, + entities: List, + disableNotification: Boolean = false, + replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null, + disableContentTypeDetection: Boolean? = null +) = execute( + SendDocument( + chatId, + document, + thumb, + entities, + disableNotification, + replyToMessageId, + allowSendingWithoutReply, + replyMarkup, + disableContentTypeDetection + ) +) + +suspend inline fun TelegramBot.sendDocument( + chat: Chat, + document: InputFile, + thumb: InputFile? = null, + entities: List, + disableNotification: 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) + +suspend inline fun TelegramBot.sendDocument( + chatId: ChatIdentifier, + document: DocumentFile, + entities: List, + disableNotification: 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 +) + +suspend inline fun TelegramBot.sendDocument( + chat: Chat, + document: DocumentFile, + entities: List, + disableNotification: Boolean = false, + replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null, + disableContentTypeDetection: Boolean? = null +) = sendDocument(chat.id, document, entities, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup, disableContentTypeDetection) + +suspend inline fun TelegramBot.replyWithDocument( + to: Message, + document: InputFile, + thumb: InputFile? = null, + entities: List, + disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null, + disableContentTypeDetection: Boolean? = null +) = sendDocument(to.chat, document, thumb, entities, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup, disableContentTypeDetection) + +suspend inline fun TelegramBot.replyWithDocument( + to: Message, + document: DocumentFile, + entities: List, + disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null, + disableContentTypeDetection: Boolean? = null +) = sendDocument(to.chat, document, entities, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup, disableContentTypeDetection) + +suspend inline fun TelegramBot.reply( + to: Message, + document: DocumentFile, + entities: List, + disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null, + disableContentTypeDetection: Boolean? = null +) = replyWithDocument(to, document, entities, disableNotification, allowSendingWithoutReply, replyMarkup, disableContentTypeDetection) diff --git a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendMediaGroup.kt b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendMediaGroup.kt index 03e5d13e3d..6a115897b8 100644 --- a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendMediaGroup.kt +++ b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendMediaGroup.kt @@ -17,10 +17,11 @@ suspend fun TelegramBot.sendMediaGroup( chatId: ChatIdentifier, media: List, disableNotification: Boolean = false, - replyToMessageId: MessageIdentifier? = null + replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null ) = execute( SendMediaGroup( - chatId, media, disableNotification, replyToMessageId + chatId, media, disableNotification, replyToMessageId, allowSendingWithoutReply ) ) @@ -32,9 +33,10 @@ suspend fun TelegramBot.sendMediaGroup( chat: Chat, media: List, disableNotification: Boolean = false, - replyToMessageId: MessageIdentifier? = null + replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null ) = sendMediaGroup( - chat.id, media, disableNotification, replyToMessageId + chat.id, media, disableNotification, replyToMessageId, allowSendingWithoutReply ) /** @@ -44,10 +46,11 @@ suspend fun TelegramBot.sendPlaylist( chatId: ChatIdentifier, media: List, disableNotification: Boolean = false, - replyToMessageId: MessageIdentifier? = null + replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null ) = execute( SendPlaylist( - chatId, media, disableNotification, replyToMessageId + chatId, media, disableNotification, replyToMessageId, allowSendingWithoutReply ) ) @@ -58,9 +61,10 @@ suspend fun TelegramBot.sendPlaylist( chat: Chat, media: List, disableNotification: Boolean = false, - replyToMessageId: MessageIdentifier? = null + replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null ) = sendPlaylist( - chat.id, media, disableNotification, replyToMessageId + chat.id, media, disableNotification, replyToMessageId, allowSendingWithoutReply ) /** @@ -70,10 +74,11 @@ suspend fun TelegramBot.sendDocumentsGroup( chatId: ChatIdentifier, media: List, disableNotification: Boolean = false, - replyToMessageId: MessageIdentifier? = null + replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null ) = execute( SendDocumentsGroup( - chatId, media, disableNotification, replyToMessageId + chatId, media, disableNotification, replyToMessageId, allowSendingWithoutReply ) ) @@ -84,9 +89,10 @@ suspend fun TelegramBot.sendDocumentsGroup( chat: Chat, media: List, disableNotification: Boolean = false, - replyToMessageId: MessageIdentifier? = null + replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null ) = sendDocumentsGroup( - chat.id, media, disableNotification, replyToMessageId + chat.id, media, disableNotification, replyToMessageId, allowSendingWithoutReply ) /** @@ -96,10 +102,11 @@ suspend fun TelegramBot.sendVisualMediaGroup( chatId: ChatIdentifier, media: List, disableNotification: Boolean = false, - replyToMessageId: MessageIdentifier? = null + replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null ) = execute( SendVisualMediaGroup( - chatId, media, disableNotification, replyToMessageId + chatId, media, disableNotification, replyToMessageId, allowSendingWithoutReply ) ) @@ -110,37 +117,44 @@ suspend fun TelegramBot.sendVisualMediaGroup( chat: Chat, media: List, disableNotification: Boolean = false, - replyToMessageId: MessageIdentifier? = null + replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null ) = sendVisualMediaGroup( - chat.id, media, disableNotification, replyToMessageId + chat.id, media, disableNotification, replyToMessageId, allowSendingWithoutReply ) +@RiskFeature(rawSendingMediaGroupsWarning) suspend inline fun TelegramBot.replyWithMediaGroup( to: Message, media: List, - disableNotification: Boolean = false -) = sendMediaGroup(to.chat, media, disableNotification, to.messageId) + disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null +) = sendMediaGroup(to.chat, media, disableNotification, to.messageId, allowSendingWithoutReply) suspend inline fun TelegramBot.replyWithPlaylist( to: Message, media: List, - disableNotification: Boolean = false -) = sendPlaylist(to.chat, media, disableNotification, to.messageId) + disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null +) = sendPlaylist(to.chat, media, disableNotification, to.messageId, allowSendingWithoutReply) suspend inline fun TelegramBot.replyWithDocumentsGroup( to: Message, media: List, - disableNotification: Boolean = false -) = sendDocumentsGroup(to.chat, media, disableNotification, to.messageId) + disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null +) = sendDocumentsGroup(to.chat, media, disableNotification, to.messageId, allowSendingWithoutReply) suspend inline fun TelegramBot.replyWithVisualMediaGroup( to: Message, media: List, - disableNotification: Boolean = false -) = sendVisualMediaGroup(to.chat, media, disableNotification, to.messageId) + disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null +) = sendVisualMediaGroup(to.chat, media, disableNotification, to.messageId, allowSendingWithoutReply) suspend inline fun TelegramBot.reply( to: Message, media: List, - disableNotification: Boolean = false -) = replyWithMediaGroup(to, media, disableNotification) + disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null +) = replyWithMediaGroup(to, media, disableNotification, allowSendingWithoutReply) diff --git a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendPhoto.kt b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendPhoto.kt index 6f12590f0d..d4ee9ed59d 100644 --- a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendPhoto.kt +++ b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendPhoto.kt @@ -1,5 +1,6 @@ package dev.inmo.tgbotapi.extensions.api.send.media +import dev.inmo.tgbotapi.CommonAbstracts.TextSource import dev.inmo.tgbotapi.bot.TelegramBot import dev.inmo.tgbotapi.requests.abstracts.InputFile import dev.inmo.tgbotapi.requests.send.media.SendPhoto @@ -19,6 +20,7 @@ suspend fun TelegramBot.sendPhoto( parseMode: ParseMode? = null, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = execute( SendPhoto( @@ -28,6 +30,7 @@ suspend fun TelegramBot.sendPhoto( parseMode, disableNotification, replyToMessageId, + allowSendingWithoutReply, replyMarkup ) ) @@ -39,8 +42,9 @@ suspend fun TelegramBot.sendPhoto( parseMode: ParseMode? = null, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendPhoto(chat.id, fileId, caption, parseMode, disableNotification, replyToMessageId, replyMarkup) +) = sendPhoto(chat.id, fileId, caption, parseMode, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) suspend fun TelegramBot.sendPhoto( chatId: ChatIdentifier, @@ -49,8 +53,9 @@ suspend fun TelegramBot.sendPhoto( parseMode: ParseMode? = null, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendPhoto(chatId, photo.biggest() ?.fileId ?: error("Photo content must not be empty"), caption, parseMode, disableNotification, replyToMessageId, replyMarkup) +) = sendPhoto(chatId, photo.biggest() ?.fileId ?: error("Photo content must not be empty"), caption, parseMode, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) suspend fun TelegramBot.sendPhoto( chat: Chat, @@ -59,8 +64,9 @@ suspend fun TelegramBot.sendPhoto( parseMode: ParseMode? = null, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendPhoto(chat.id, photo, caption, parseMode, disableNotification, replyToMessageId, replyMarkup) +) = sendPhoto(chat.id, photo, caption, parseMode, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) suspend inline fun TelegramBot.replyWithPhoto( to: Message, @@ -68,8 +74,9 @@ suspend inline fun TelegramBot.replyWithPhoto( caption: String? = null, parseMode: ParseMode? = null, disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendPhoto(to.chat, fileId, caption, parseMode, disableNotification, to.messageId, replyMarkup) +) = sendPhoto(to.chat, fileId, caption, parseMode, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) suspend inline fun TelegramBot.replyWithPhoto( to: Message, @@ -77,8 +84,9 @@ suspend inline fun TelegramBot.replyWithPhoto( caption: String? = null, parseMode: ParseMode? = null, disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendPhoto(to.chat, photo, caption, parseMode, disableNotification, to.messageId, replyMarkup) +) = sendPhoto(to.chat, photo, caption, parseMode, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) suspend inline fun TelegramBot.reply( to: Message, @@ -86,5 +94,84 @@ suspend inline fun TelegramBot.reply( caption: String? = null, parseMode: ParseMode? = null, disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = replyWithPhoto(to, photo, caption, parseMode, disableNotification, replyMarkup) +) = replyWithPhoto(to, photo, caption, parseMode, disableNotification, allowSendingWithoutReply, replyMarkup) + + +suspend inline fun TelegramBot.sendPhoto( + chatId: ChatIdentifier, + fileId: InputFile, + entities: List, + disableNotification: Boolean = false, + replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null +) = execute( + SendPhoto( + chatId, + fileId, + entities, + disableNotification, + replyToMessageId, + allowSendingWithoutReply, + replyMarkup + ) +) + +suspend inline fun TelegramBot.sendPhoto( + chat: Chat, + fileId: InputFile, + entities: List, + disableNotification: Boolean = false, + replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null +) = sendPhoto(chat.id, fileId, entities, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) + +suspend inline fun TelegramBot.sendPhoto( + chatId: ChatIdentifier, + photo: Photo, + entities: List, + disableNotification: 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) + +suspend inline fun TelegramBot.sendPhoto( + chat: Chat, + photo: Photo, + entities: List, + disableNotification: Boolean = false, + replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null +) = sendPhoto(chat.id, photo, entities, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) + +suspend inline fun TelegramBot.replyWithPhoto( + to: Message, + fileId: InputFile, + entities: List, + disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null +) = sendPhoto(to.chat, fileId, entities, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) + +suspend inline fun TelegramBot.replyWithPhoto( + to: Message, + photo: Photo, + entities: List, + disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null +) = sendPhoto(to.chat, photo, entities, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) + +suspend inline fun TelegramBot.reply( + to: Message, + photo: Photo, + entities: List, + disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null +) = replyWithPhoto(to, photo, entities, disableNotification, allowSendingWithoutReply, replyMarkup) diff --git a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendSticker.kt b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendSticker.kt index 9e4b7aad50..9f7cac00f5 100644 --- a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendSticker.kt +++ b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendSticker.kt @@ -15,9 +15,10 @@ suspend fun TelegramBot.sendSticker( sticker: InputFile, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = execute( - SendSticker(chatId, sticker, disableNotification, replyToMessageId, replyMarkup) + SendSticker(chatId, sticker, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) ) suspend fun TelegramBot.sendSticker( @@ -25,42 +26,48 @@ suspend fun TelegramBot.sendSticker( sticker: InputFile, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendSticker(chat.id, sticker, disableNotification, replyToMessageId, replyMarkup) +) = sendSticker(chat.id, sticker, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) suspend fun TelegramBot.sendSticker( chatId: ChatIdentifier, sticker: Sticker, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendSticker(chatId, sticker.fileId, disableNotification, replyToMessageId, replyMarkup) +) = sendSticker(chatId, sticker.fileId, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) suspend fun TelegramBot.sendSticker( chat: Chat, sticker: Sticker, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendSticker(chat, sticker.fileId, disableNotification, replyToMessageId, replyMarkup) +) = sendSticker(chat, sticker.fileId, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) suspend inline fun TelegramBot.replyWithSticker( to: Message, sticker: InputFile, disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendSticker(to.chat, sticker, disableNotification, to.messageId, replyMarkup) +) = sendSticker(to.chat, sticker, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) suspend inline fun TelegramBot.replyWithSticker( to: Message, sticker: Sticker, disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendSticker(to.chat, sticker, disableNotification, to.messageId, replyMarkup) +) = sendSticker(to.chat, sticker, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) suspend inline fun TelegramBot.reply( to: Message, sticker: Sticker, disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = replyWithSticker(to, sticker, disableNotification, replyMarkup) +) = replyWithSticker(to, sticker, disableNotification, allowSendingWithoutReply, replyMarkup) diff --git a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendVideo.kt b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendVideo.kt index c58d9ca661..962b265ace 100644 --- a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendVideo.kt +++ b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendVideo.kt @@ -1,5 +1,6 @@ package dev.inmo.tgbotapi.extensions.api.send.media +import dev.inmo.tgbotapi.CommonAbstracts.TextSource import dev.inmo.tgbotapi.bot.TelegramBot import dev.inmo.tgbotapi.requests.abstracts.InputFile import dev.inmo.tgbotapi.requests.send.media.SendVideo @@ -22,6 +23,7 @@ suspend fun TelegramBot.sendVideo( height: Int? = null, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = execute( SendVideo( @@ -36,6 +38,7 @@ suspend fun TelegramBot.sendVideo( null, disableNotification, replyToMessageId, + allowSendingWithoutReply, replyMarkup ) ) @@ -47,8 +50,9 @@ suspend fun TelegramBot.sendVideo( parseMode: ParseMode? = null, disableNotification: 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, replyMarkup) +) = sendVideo(chatId, video.fileId, video.thumb ?.fileId, text, parseMode, video.duration, video.width, video.height, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) suspend fun TelegramBot.sendVideo( chat: Chat, @@ -61,8 +65,9 @@ suspend fun TelegramBot.sendVideo( height: Int? = null, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendVideo(chat.id, video, thumb, text, parseMode, duration, width, height, disableNotification, replyToMessageId, replyMarkup) +) = sendVideo(chat.id, video, thumb, text, parseMode, duration, width, height, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) suspend fun TelegramBot.sendVideo( @@ -72,8 +77,9 @@ suspend fun TelegramBot.sendVideo( parseMode: ParseMode? = null, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendVideo(chat.id, video, text, parseMode, disableNotification, replyToMessageId, replyMarkup) +) = sendVideo(chat.id, video, text, parseMode, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) suspend inline fun TelegramBot.replyWithVideo( to: Message, @@ -85,8 +91,9 @@ suspend inline fun TelegramBot.replyWithVideo( width: Int? = null, height: Int? = null, disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendVideo(to.chat, video, thumb, text, parseMode, duration, width, height, disableNotification, to.messageId, replyMarkup) +) = sendVideo(to.chat, video, thumb, text, parseMode, duration, width, height, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) suspend inline fun TelegramBot.replyWithVideo( to: Message, @@ -94,8 +101,9 @@ suspend inline fun TelegramBot.replyWithVideo( text: String? = null, parseMode: ParseMode? = null, disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendVideo(to.chat, video, text, parseMode, disableNotification, to.messageId, replyMarkup) +) = sendVideo(to.chat, video, text, parseMode, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) suspend inline fun TelegramBot.reply( to: Message, @@ -103,5 +111,102 @@ suspend inline fun TelegramBot.reply( text: String? = null, parseMode: ParseMode? = null, disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = replyWithVideo(to, video, text, parseMode, disableNotification, replyMarkup) +) = replyWithVideo(to, video, text, parseMode, disableNotification, allowSendingWithoutReply, replyMarkup) + + +suspend inline fun TelegramBot.sendVideo( + chatId: ChatIdentifier, + video: InputFile, + thumb: InputFile? = null, + entities: List, + duration: Long? = null, + width: Int? = null, + height: Int? = null, + disableNotification: Boolean = false, + replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null +) = execute( + SendVideo( + chatId, + video, + thumb, + entities, + duration, + width, + height, + null, + disableNotification, + replyToMessageId, + allowSendingWithoutReply, + replyMarkup + ) +) + +suspend inline fun TelegramBot.sendVideo( + chatId: ChatIdentifier, + video: VideoFile, + entities: List, + disableNotification: 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) + +suspend inline fun TelegramBot.sendVideo( + chat: Chat, + video: InputFile, + thumb: InputFile? = null, + entities: List, + duration: Long? = null, + width: Int? = null, + height: Int? = null, + disableNotification: Boolean = false, + replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null +) = sendVideo(chat.id, video, thumb, entities, duration, width, height, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) + + +suspend inline fun TelegramBot.sendVideo( + chat: Chat, + video: VideoFile, + entities: List, + disableNotification: Boolean = false, + replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null +) = sendVideo(chat.id, video, entities, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) + +suspend inline fun TelegramBot.replyWithVideo( + to: Message, + video: InputFile, + thumb: InputFile? = null, + entities: List, + duration: Long? = null, + width: Int? = null, + height: Int? = null, + disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null +) = sendVideo(to.chat, video, thumb, entities, duration, width, height, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) + +suspend inline fun TelegramBot.replyWithVideo( + to: Message, + video: VideoFile, + entities: List, + disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null +) = sendVideo(to.chat, video, entities, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) + +suspend inline fun TelegramBot.reply( + to: Message, + video: VideoFile, + entities: List, + disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null +) = replyWithVideo(to, video, entities, disableNotification, allowSendingWithoutReply, replyMarkup) diff --git a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendVideoNote.kt b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendVideoNote.kt index 7eb6b9f4a5..1e335a9ec2 100644 --- a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendVideoNote.kt +++ b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendVideoNote.kt @@ -16,24 +16,22 @@ suspend fun TelegramBot.sendVideoNote( chatId: ChatIdentifier, videoNote: InputFile, thumb: InputFile? = null, - text: String? = null, - parseMode: ParseMode? = null, duration: Long? = null, size: Int? = null, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = execute( SendVideoNote( chatId, videoNote, thumb, - text, - parseMode, duration, size, disableNotification, replyToMessageId, + allowSendingWithoutReply, replyMarkup ) ) @@ -41,64 +39,58 @@ suspend fun TelegramBot.sendVideoNote( suspend fun TelegramBot.sendVideoNote( chatId: ChatIdentifier, videoNote: VideoNoteFile, - text: String? = null, - parseMode: ParseMode? = null, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendVideoNote( - chatId, videoNote.fileId, videoNote.thumb ?.fileId, text, parseMode, videoNote.duration, videoNote.width, disableNotification, replyToMessageId, replyMarkup + chatId, videoNote.fileId, videoNote.thumb ?.fileId, videoNote.duration, videoNote.width, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup ) suspend fun TelegramBot.sendVideoNote( chat: Chat, videoNote: InputFile, thumb: InputFile? = null, - text: String? = null, - parseMode: ParseMode? = null, duration: Long? = null, size: Int? = null, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendVideoNote(chat.id, videoNote, thumb, text, parseMode, duration, size, disableNotification, replyToMessageId, replyMarkup) +) = sendVideoNote(chat.id, videoNote, thumb, duration, size, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) suspend fun TelegramBot.sendVideoNote( chat: Chat, videoNote: VideoNoteFile, - text: String? = null, - parseMode: ParseMode? = null, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendVideoNote(chat.id, videoNote, text, parseMode, disableNotification, replyToMessageId, replyMarkup) +) = sendVideoNote(chat.id, videoNote, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) suspend inline fun TelegramBot.replyWithVideoNote( to: Message, videoNote: InputFile, thumb: InputFile? = null, - text: String? = null, - parseMode: ParseMode? = null, duration: Long? = null, size: Int? = null, disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendVideoNote(to.chat, videoNote, thumb, text, parseMode, duration, size, disableNotification, to.messageId, replyMarkup) +) = sendVideoNote(to.chat, videoNote, thumb, duration, size, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) suspend inline fun TelegramBot.replyWithVideoNote( to: Message, videoNote: VideoNoteFile, - text: String? = null, - parseMode: ParseMode? = null, disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendVideoNote(to.chat, videoNote, text, parseMode, disableNotification, to.messageId, replyMarkup) +) = sendVideoNote(to.chat, videoNote, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) suspend inline fun TelegramBot.reply( to: Message, videoNote: VideoNoteFile, - text: String? = null, - parseMode: ParseMode? = null, disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = replyWithVideoNote(to, videoNote, text, parseMode, disableNotification, replyMarkup) +) = replyWithVideoNote(to, videoNote, disableNotification, allowSendingWithoutReply, replyMarkup) diff --git a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendVoice.kt b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendVoice.kt index 68c63a91fe..197000a8a5 100644 --- a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendVoice.kt +++ b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/media/SendVoice.kt @@ -1,5 +1,6 @@ package dev.inmo.tgbotapi.extensions.api.send.media +import dev.inmo.tgbotapi.CommonAbstracts.TextSource import dev.inmo.tgbotapi.bot.TelegramBot import dev.inmo.tgbotapi.requests.abstracts.InputFile import dev.inmo.tgbotapi.requests.send.media.SendVoice @@ -20,6 +21,7 @@ suspend fun TelegramBot.sendVoice( duration: Long? = null, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = execute( SendVoice( @@ -30,6 +32,7 @@ suspend fun TelegramBot.sendVoice( duration, disableNotification, replyToMessageId, + allowSendingWithoutReply, replyMarkup ) ) @@ -42,8 +45,9 @@ suspend fun TelegramBot.sendVoice( duration: Long? = null, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendVoice(chat.id, voice, text, parseMode, duration, disableNotification, replyToMessageId, replyMarkup) +) = sendVoice(chat.id, voice, text, parseMode, duration, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) suspend fun TelegramBot.sendVoice( chatId: ChatIdentifier, @@ -52,9 +56,10 @@ suspend fun TelegramBot.sendVoice( parseMode: ParseMode? = null, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendVoice( - chatId, voice.fileId, text, parseMode, voice.duration, disableNotification, replyToMessageId, replyMarkup + chatId, voice.fileId, text, parseMode, voice.duration, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup ) suspend fun TelegramBot.sendVoice( @@ -64,8 +69,9 @@ suspend fun TelegramBot.sendVoice( parseMode: ParseMode? = null, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendVoice(chat.id, voice, text, parseMode, disableNotification, replyToMessageId, replyMarkup) +) = sendVoice(chat.id, voice, text, parseMode, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) suspend inline fun TelegramBot.replyWithVoice( to: Message, @@ -74,8 +80,9 @@ suspend inline fun TelegramBot.replyWithVoice( parseMode: ParseMode? = null, duration: Long? = null, disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendVoice(to.chat, voice, text, parseMode, duration, disableNotification, to.messageId, replyMarkup) +) = sendVoice(to.chat, voice, text, parseMode, duration, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) suspend inline fun TelegramBot.replyWithVoice( to: Message, @@ -83,8 +90,9 @@ suspend inline fun TelegramBot.replyWithVoice( text: String? = null, parseMode: ParseMode? = null, disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendVoice(to.chat, voice, text, parseMode, disableNotification, to.messageId, replyMarkup) +) = sendVoice(to.chat, voice, text, parseMode, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) suspend inline fun TelegramBot.reply( to: Message, @@ -92,5 +100,90 @@ suspend inline fun TelegramBot.reply( text: String? = null, parseMode: ParseMode? = null, disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = replyWithVoice(to, voice, text, parseMode, disableNotification, replyMarkup) +) = replyWithVoice(to, voice, text, parseMode, disableNotification, allowSendingWithoutReply, replyMarkup) + + +suspend inline fun TelegramBot.sendVoice( + chatId: ChatIdentifier, + voice: InputFile, + entities: List, + duration: Long? = null, + disableNotification: Boolean = false, + replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null +) = execute( + SendVoice( + chatId, + voice, + entities, + duration, + disableNotification, + replyToMessageId, + allowSendingWithoutReply, + replyMarkup + ) +) + +suspend inline fun TelegramBot.sendVoice( + chat: Chat, + voice: InputFile, + entities: List, + duration: Long? = null, + disableNotification: Boolean = false, + replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null +) = sendVoice(chat.id, voice, entities, duration, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) + +suspend inline fun TelegramBot.sendVoice( + chatId: ChatIdentifier, + voice: VoiceFile, + entities: List, + disableNotification: Boolean = false, + replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null +) = sendVoice( + chatId, voice.fileId, entities, voice.duration, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup +) + +suspend inline fun TelegramBot.sendVoice( + chat: Chat, + voice: VoiceFile, + entities: List, + disableNotification: Boolean = false, + replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null +) = sendVoice(chat.id, voice, entities, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) + +suspend inline fun TelegramBot.replyWithVoice( + to: Message, + voice: InputFile, + entities: List, + duration: Long? = null, + disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null +) = sendVoice(to.chat, voice, entities, duration, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) + +suspend inline fun TelegramBot.replyWithVoice( + to: Message, + voice: VoiceFile, + entities: List, + disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null +) = sendVoice(to.chat, voice, entities, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) + +suspend inline fun TelegramBot.reply( + to: Message, + voice: VoiceFile, + entities: List, + disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null +) = replyWithVoice(to, voice, entities, disableNotification, allowSendingWithoutReply, replyMarkup) diff --git a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/payments/SendInvoice.kt b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/payments/SendInvoice.kt index ee04707a50..3af85856f1 100644 --- a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/payments/SendInvoice.kt +++ b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/payments/SendInvoice.kt @@ -27,9 +27,10 @@ suspend fun TelegramBot.sendInvoice( priceDependOnShipAddress: Boolean = false, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: InlineKeyboardMarkup? = null ) = execute( - SendInvoice(chatId, title, description, payload, providerToken, startParameter, currency, prices, providerData, requireName, requirePhoneNumber, requireEmail, requireShippingAddress, shouldSendPhoneNumberToProvider, shouldSendEmailToProvider, priceDependOnShipAddress, disableNotification, replyToMessageId, replyMarkup) + SendInvoice(chatId, title, description, payload, providerToken, startParameter, currency, prices, providerData, requireName, requirePhoneNumber, requireEmail, requireShippingAddress, shouldSendPhoneNumberToProvider, shouldSendEmailToProvider, priceDependOnShipAddress, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) ) suspend fun TelegramBot.sendInvoice( @@ -51,8 +52,9 @@ suspend fun TelegramBot.sendInvoice( priceDependOnShipAddress: Boolean = false, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: InlineKeyboardMarkup? = null -) = sendInvoice(user.id, title, description, payload, providerToken, startParameter, currency, prices, providerData, requireName, requirePhoneNumber, requireEmail, requireShippingAddress, shouldSendPhoneNumberToProvider, shouldSendEmailToProvider, priceDependOnShipAddress, disableNotification, replyToMessageId, replyMarkup) +) = sendInvoice(user.id, title, description, payload, providerToken, startParameter, currency, prices, providerData, requireName, requirePhoneNumber, requireEmail, requireShippingAddress, shouldSendPhoneNumberToProvider, shouldSendEmailToProvider, priceDependOnShipAddress, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) suspend inline fun TelegramBot.replyWithInvoice( to: Message, @@ -72,5 +74,6 @@ suspend inline fun TelegramBot.replyWithInvoice( shouldSendEmailToProvider: Boolean = false, priceDependOnShipAddress: Boolean = false, disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, replyMarkup: InlineKeyboardMarkup? = null -) = sendInvoice(to.chat.id, title, description, payload, providerToken, startParameter, currency, prices, providerData, requireName, requirePhoneNumber, requireEmail, requireShippingAddress, shouldSendPhoneNumberToProvider, shouldSendEmailToProvider, priceDependOnShipAddress, disableNotification, to.messageId, replyMarkup) +) = sendInvoice(to.chat.id, title, description, payload, providerToken, startParameter, currency, prices, providerData, requireName, requirePhoneNumber, requireEmail, requireShippingAddress, shouldSendPhoneNumberToProvider, shouldSendEmailToProvider, priceDependOnShipAddress, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) diff --git a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/polls/SendPoll.kt b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/polls/SendPoll.kt index 674214eef0..d95c63c464 100644 --- a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/polls/SendPoll.kt +++ b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/polls/SendPoll.kt @@ -1,5 +1,6 @@ package dev.inmo.tgbotapi.extensions.api.send.polls +import dev.inmo.tgbotapi.CommonAbstracts.TextSource import dev.inmo.tgbotapi.bot.TelegramBot import dev.inmo.tgbotapi.requests.send.polls.SendQuizPoll import dev.inmo.tgbotapi.requests.send.polls.SendRegularPoll @@ -21,10 +22,11 @@ suspend fun TelegramBot.sendRegularPoll( closeInfo: ScheduledCloseInfo? = null, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = execute( SendRegularPoll( - chatId, question, options, isAnonymous, isClosed, allowMultipleAnswers, closeInfo, disableNotification, replyToMessageId, replyMarkup + chatId, question, options, isAnonymous, isClosed, allowMultipleAnswers, closeInfo, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup ) ) suspend fun TelegramBot.sendRegularPoll( @@ -38,8 +40,9 @@ suspend fun TelegramBot.sendRegularPoll( closeInfo: ScheduledCloseInfo? = null, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendRegularPoll(chatId, question, options, isAnonymous, isClosed, allowMultipleAnswers, closeInfo, disableNotification, replyToMessageId, replyMarkup) +) = sendRegularPoll(chatId, question, options, isAnonymous, isClosed, allowMultipleAnswers, closeInfo, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup) suspend fun TelegramBot.sendRegularPoll( chat: Chat, @@ -51,9 +54,10 @@ suspend fun TelegramBot.sendRegularPoll( closeInfo: ScheduledCloseInfo? = null, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendRegularPoll( - chat.id, question, options, isAnonymous, isClosed, allowMultipleAnswers, closeInfo, disableNotification, replyToMessageId, replyMarkup + chat.id, question, options, isAnonymous, isClosed, allowMultipleAnswers, closeInfo, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup ) suspend fun TelegramBot.sendRegularPoll( @@ -67,9 +71,10 @@ suspend fun TelegramBot.sendRegularPoll( closeInfo: ScheduledCloseInfo? = null, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendRegularPoll( - chat.id, question, options, isAnonymous, isClosed, allowMultipleAnswers, closeInfo, disableNotification, replyToMessageId, replyMarkup + chat.id, question, options, isAnonymous, isClosed, allowMultipleAnswers, closeInfo, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup ) @@ -85,10 +90,11 @@ suspend fun TelegramBot.sendQuizPoll( closeInfo: ScheduledCloseInfo? = null, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = execute( SendQuizPoll( - chatId, question, options, correctOptionId, isAnonymous, isClosed, explanation, parseMode, closeInfo, disableNotification, replyToMessageId, replyMarkup + chatId, question, options, correctOptionId, isAnonymous, isClosed, explanation, parseMode, closeInfo, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup ) ) @@ -104,9 +110,10 @@ suspend fun TelegramBot.sendQuizPoll( closeInfo: ScheduledCloseInfo? = null, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendQuizPoll( - chat.id, question, options, correctOptionId, isAnonymous, isClosed, explanation, parseMode, closeInfo, disableNotification, replyToMessageId, replyMarkup + chat.id, question, options, correctOptionId, isAnonymous, isClosed, explanation, parseMode, closeInfo, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup ) suspend fun TelegramBot.sendQuizPoll( @@ -122,9 +129,10 @@ suspend fun TelegramBot.sendQuizPoll( closeInfo: ScheduledCloseInfo? = null, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendQuizPoll( - chatId, question, options, correctOptionId, isAnonymous, isClosed, explanation, parseMode, closeInfo, disableNotification, replyToMessageId, replyMarkup + chatId, question, options, correctOptionId, isAnonymous, isClosed, explanation, parseMode, closeInfo, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup ) suspend fun TelegramBot.sendQuizPoll( @@ -140,9 +148,83 @@ suspend fun TelegramBot.sendQuizPoll( closeInfo: ScheduledCloseInfo? = null, disableNotification: Boolean = false, replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null ) = sendQuizPoll( - chat.id, question, options, correctOptionId, isAnonymous, isClosed, explanation, parseMode, closeInfo, disableNotification, replyToMessageId, replyMarkup + chat.id, question, options, correctOptionId, isAnonymous, isClosed, explanation, parseMode, closeInfo, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup +) + + +suspend inline fun TelegramBot.sendQuizPoll( + chatId: ChatIdentifier, + question: String, + options: List, + correctOptionId: Int, + isAnonymous: Boolean = true, + isClosed: Boolean = false, + entities: List, + closeInfo: ScheduledCloseInfo? = null, + disableNotification: 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 + ) +) + +suspend inline fun TelegramBot.sendQuizPoll( + chat: Chat, + question: String, + options: List, + correctOptionId: Int, + isAnonymous: Boolean = true, + isClosed: Boolean = false, + entities: List, + closeInfo: ScheduledCloseInfo? = null, + disableNotification: 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 +) + +suspend inline fun TelegramBot.sendQuizPoll( + chatId: ChatIdentifier, + isClosed: Boolean = false, + quizPoll: QuizPoll, + question: String = quizPoll.question, + options: List = quizPoll.options.map { it.text }, + correctOptionId: Int = quizPoll.correctOptionId ?: error("Correct option ID must be provided by income QuizPoll or by developer"), + isAnonymous: Boolean = quizPoll.isAnonymous, + entities: List, + closeInfo: ScheduledCloseInfo? = null, + disableNotification: Boolean = false, + replyToMessageId: MessageIdentifier? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null +) = sendQuizPoll( + chatId, question, options, correctOptionId, isAnonymous, isClosed, entities, closeInfo, disableNotification, replyToMessageId, allowSendingWithoutReply, replyMarkup +) + +suspend inline fun TelegramBot.sendQuizPoll( + chat: Chat, + isClosed: Boolean = false, + quizPoll: QuizPoll, + question: String = quizPoll.question, + options: List = quizPoll.options.map { it.text }, + correctOptionId: Int = quizPoll.correctOptionId ?: error("Correct option ID must be provided by income QuizPoll or by developer"), + isAnonymous: Boolean = quizPoll.isAnonymous, + entities: List, + closeInfo: ScheduledCloseInfo? = null, + disableNotification: 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 ) suspend inline fun TelegramBot.replyWithRegularPoll( @@ -154,8 +236,9 @@ suspend inline fun TelegramBot.replyWithRegularPoll( allowMultipleAnswers: Boolean = false, closeInfo: ScheduledCloseInfo? = null, disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendRegularPoll(to.chat, question, options, isAnonymous, isClosed, allowMultipleAnswers, closeInfo, disableNotification, to.messageId, replyMarkup) +) = sendRegularPoll(to.chat, question, options, isAnonymous, isClosed, allowMultipleAnswers, closeInfo, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) suspend inline fun TelegramBot.replyWithRegularPoll( to: Message, @@ -167,8 +250,9 @@ suspend inline fun TelegramBot.replyWithRegularPoll( allowMultipleAnswers: Boolean = poll.allowMultipleAnswers, closeInfo: ScheduledCloseInfo? = null, disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendRegularPoll(to.chat, poll, isClosed, question, options, isAnonymous, allowMultipleAnswers, closeInfo, disableNotification, to.messageId, replyMarkup) +) = sendRegularPoll(to.chat, poll, isClosed, question, options, isAnonymous, allowMultipleAnswers, closeInfo, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) suspend inline fun TelegramBot.replyWithQuizPoll( to: Message, @@ -181,8 +265,9 @@ suspend inline fun TelegramBot.replyWithQuizPoll( parseMode: ParseMode? = null, closeInfo: ScheduledCloseInfo? = null, disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendQuizPoll(to.chat, question, options, correctOptionId, isAnonymous, isClosed, explanation, parseMode, closeInfo, disableNotification, to.messageId, replyMarkup) +) = sendQuizPoll(to.chat, question, options, correctOptionId, isAnonymous, isClosed, explanation, parseMode, closeInfo, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) suspend inline fun TelegramBot.replyWithQuizPoll( to: Message, @@ -196,6 +281,35 @@ suspend inline fun TelegramBot.replyWithQuizPoll( parseMode: ParseMode? = null, closeInfo: ScheduledCloseInfo? = null, disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, replyMarkup: KeyboardMarkup? = null -) = sendQuizPoll(to.chat, isClosed, quizPoll, question, options, correctOptionId, isAnonymous, explanation, parseMode, closeInfo, disableNotification, to.messageId, replyMarkup) +) = sendQuizPoll(to.chat, isClosed, quizPoll, question, options, correctOptionId, isAnonymous, explanation, parseMode, closeInfo, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) +suspend inline fun TelegramBot.replyWithQuizPoll( + to: Message, + question: String, + options: List, + correctOptionId: Int, + isAnonymous: Boolean = true, + isClosed: Boolean = false, + entities: List, + closeInfo: ScheduledCloseInfo? = null, + disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null +) = sendQuizPoll(to.chat, question, options, correctOptionId, isAnonymous, isClosed, entities, closeInfo, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) + +suspend inline fun TelegramBot.replyWithQuizPoll( + to: Message, + isClosed: Boolean = false, + quizPoll: QuizPoll, + question: String = quizPoll.question, + options: List = quizPoll.options.map { it.text }, + correctOptionId: Int = quizPoll.correctOptionId ?: error("Correct option ID must be provided by income QuizPoll or by developer"), + isAnonymous: Boolean = quizPoll.isAnonymous, + entities: List, + closeInfo: ScheduledCloseInfo? = null, + disableNotification: Boolean = false, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: KeyboardMarkup? = null +) = sendQuizPoll(to.chat, isClosed, quizPoll, question, options, correctOptionId, isAnonymous, entities, closeInfo, disableNotification, to.messageId, allowSendingWithoutReply, replyMarkup) diff --git a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/webhook/SetWebhookInfo.kt b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/webhook/SetWebhookInfo.kt index 375d22301c..bf2730daae 100644 --- a/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/webhook/SetWebhookInfo.kt +++ b/tgbotapi.extensions.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/webhook/SetWebhookInfo.kt @@ -10,11 +10,13 @@ import dev.inmo.tgbotapi.requests.webhook.SetWebhook */ suspend fun TelegramBot.setWebhookInfo( url: String, + ipAddress: String? = null, maxAllowedConnections: Int? = null, - allowedUpdates: List? = null + allowedUpdates: List? = null, + dropPendingUpdates: Boolean? = null ) = execute( SetWebhook( - url, maxAllowedConnections, allowedUpdates + url, ipAddress, maxAllowedConnections, allowedUpdates, dropPendingUpdates ) ) @@ -24,11 +26,13 @@ suspend fun TelegramBot.setWebhookInfo( suspend fun TelegramBot.setWebhookInfo( url: String, certificate: FileId, + ipAddress: String? = null, maxAllowedConnections: Int? = null, - allowedUpdates: List? = null + allowedUpdates: List? = null, + dropPendingUpdates: Boolean? = null ) = execute( SetWebhook( - url, certificate, maxAllowedConnections, allowedUpdates + url, certificate, ipAddress, maxAllowedConnections, allowedUpdates, dropPendingUpdates ) ) @@ -38,10 +42,12 @@ suspend fun TelegramBot.setWebhookInfo( suspend fun TelegramBot.setWebhookInfo( url: String, certificate: MultipartFile, + ipAddress: String? = null, maxAllowedConnections: Int? = null, - allowedUpdates: List? = null + allowedUpdates: List? = null, + dropPendingUpdates: Boolean? = null ) = execute( SetWebhook( - url, certificate, maxAllowedConnections, allowedUpdates + url, certificate, ipAddress, maxAllowedConnections, allowedUpdates, dropPendingUpdates ) )