From a9a01e315496fa341dbd21d3a675b68e6ad1c7ae Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Fri, 16 Feb 2024 21:38:28 +0600 Subject: [PATCH] add support of sender_boost_count --- .../inmo/tgbotapi/types/message/GroupMessages.kt | 8 ++++++-- .../dev/inmo/tgbotapi/types/message/RawMessage.kt | 10 +++++++--- .../types/message/abstracts/GroupMessages.kt | 8 ++++++-- .../extensions/MediaGroupContentMessageCreator.kt | 6 ++++-- .../inmo/tgbotapi/extensions/utils/ClassCastsNew.kt | 13 +++++++++++++ 5 files changed, 36 insertions(+), 9 deletions(-) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/GroupMessages.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/GroupMessages.kt index c9d42f2bf6..de7930b18a 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/GroupMessages.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/GroupMessages.kt @@ -123,6 +123,7 @@ data class CommonGroupContentMessageImpl( override val content: T, override val senderBot: CommonBot?, override val mediaGroupId: MediaGroupIdentifier?, + override val senderBoostsCount: Int? ) : CommonGroupContentMessage { constructor( chat: PreviewGroupChat, @@ -137,8 +138,9 @@ data class CommonGroupContentMessageImpl( content: T, senderBot: CommonBot?, mediaGroupId: MediaGroupIdentifier?, + senderBoostsCount: Int?, ) : this( - chat, messageId, from, date, forwardInfo.messageOrigin(), editDate, hasProtectedContent, replyTo ?.let { ReplyInfo.Internal(it) }, replyMarkup, content, senderBot, mediaGroupId + chat, messageId, from, date, forwardInfo.messageOrigin(), editDate, hasProtectedContent, replyTo ?.let { ReplyInfo.Internal(it) }, replyMarkup, content, senderBot, mediaGroupId, senderBoostsCount ) } @@ -226,6 +228,7 @@ data class CommonForumContentMessageImpl( override val content: T, override val senderBot: CommonBot?, override val mediaGroupId: MediaGroupIdentifier?, + override val senderBoostsCount: Int?, ) : CommonForumContentMessage { constructor( chat: PreviewForumChat, @@ -241,7 +244,8 @@ data class CommonForumContentMessageImpl( content: T, senderBot: CommonBot?, mediaGroupId: MediaGroupIdentifier?, + senderBoostsCount: Int?, ) : this( - chat, messageId, threadId, from, date, forwardInfo.messageOrigin(), editDate, hasProtectedContent, replyTo ?.let { ReplyInfo.Internal(it) }, replyMarkup, content, senderBot, mediaGroupId + chat, messageId, threadId, from, date, forwardInfo.messageOrigin(), editDate, hasProtectedContent, replyTo ?.let { ReplyInfo.Internal(it) }, replyMarkup, content, senderBot, mediaGroupId, senderBoostsCount ) } diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/RawMessage.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/RawMessage.kt index 2b97286d0c..4436bd9827 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/RawMessage.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/RawMessage.kt @@ -98,6 +98,7 @@ internal data class RawMessage( private val successful_payment: SuccessfulPayment? = null, private val giveaway: Giveaway? = null, private val giveaway_winners: GiveawayResults? = null, + private val sender_boost_count: Int? = null, private val users_shared: UsersShared? = null, private val chat_shared: ChatShared? = null, @@ -371,7 +372,8 @@ internal data class RawMessage( reply_markup, content, via_bot, - media_group_id + media_group_id, + sender_boost_count ) } } else { @@ -435,7 +437,8 @@ internal data class RawMessage( reply_markup, content, via_bot, - media_group_id + media_group_id, + sender_boost_count ) } } @@ -499,7 +502,8 @@ internal data class RawMessage( reply_markup, content, via_bot, - media_group_id + media_group_id, + sender_boost_count ) } } diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/abstracts/GroupMessages.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/abstracts/GroupMessages.kt index 0ea78e8887..4f7f00be72 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/abstracts/GroupMessages.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/abstracts/GroupMessages.kt @@ -8,6 +8,10 @@ sealed interface GroupContentMessage : PublicContentMessage< override val chat: PreviewGroupChat } +sealed interface PotentiallyFromUserGroupContentMessage : GroupContentMessage { + val senderBoostsCount: Int? +} + sealed interface ForumContentMessage : GroupContentMessage, PossiblyTopicMessage { override val chat: PreviewForumChat override val threadId: MessageThreadId @@ -28,7 +32,7 @@ interface AnonymousGroupContentMessage : GroupContentMessage get() = chat } -interface CommonGroupContentMessage : GroupContentMessage, FromUserMessage +interface CommonGroupContentMessage : GroupContentMessage, PotentiallyFromUserGroupContentMessage, FromUserMessage interface FromChannelForumContentMessage : FromChannelGroupContentMessage, ForumContentMessage @@ -37,4 +41,4 @@ interface AnonymousForumContentMessage : ForumContentMessage get() = chat } -interface CommonForumContentMessage : ForumContentMessage, FromUserMessage +interface CommonForumContentMessage : ForumContentMessage, PotentiallyFromUserGroupContentMessage, FromUserMessage diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/utils/extensions/MediaGroupContentMessageCreator.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/utils/extensions/MediaGroupContentMessageCreator.kt index f8764c212f..a81465abeb 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/utils/extensions/MediaGroupContentMessageCreator.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/utils/extensions/MediaGroupContentMessageCreator.kt @@ -86,7 +86,8 @@ fun List>.asMedia sourceMessage.replyMarkup, content, sourceMessage.senderBot, - sourceMessage.mediaGroupId + sourceMessage.mediaGroupId, + sourceMessage.senderBoostsCount ) is ConnectedFromChannelGroupContentMessage -> ConnectedFromChannelGroupContentMessageImpl( sourceMessage.chat, @@ -146,7 +147,8 @@ fun List>.asMedia sourceMessage.replyMarkup, content, sourceMessage.senderBot, - sourceMessage.mediaGroupId + sourceMessage.mediaGroupId, + sourceMessage.senderBoostsCount ) is FromChannelForumContentMessage -> FromChannelForumContentMessageImpl( sourceMessage.chat, diff --git a/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/ClassCastsNew.kt b/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/ClassCastsNew.kt index 428d4eb8d6..7ad2015604 100644 --- a/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/ClassCastsNew.kt +++ b/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/ClassCastsNew.kt @@ -285,6 +285,7 @@ import dev.inmo.tgbotapi.types.message.abstracts.PossiblyMediaGroupMessage import dev.inmo.tgbotapi.types.message.abstracts.PossiblyPaymentMessage import dev.inmo.tgbotapi.types.message.abstracts.PossiblySentViaBotCommonMessage import dev.inmo.tgbotapi.types.message.abstracts.PossiblyTopicMessage +import dev.inmo.tgbotapi.types.message.abstracts.PotentiallyFromUserGroupContentMessage import dev.inmo.tgbotapi.types.message.abstracts.PrivateContentMessage import dev.inmo.tgbotapi.types.message.abstracts.PublicContentMessage import dev.inmo.tgbotapi.types.message.abstracts.SignedMessage @@ -3397,6 +3398,18 @@ public inline fun Message.ifGroupContentMessage(block: (GroupContentMessage) -> T): T? = groupContentMessageOrNull() ?.let(block) +public inline fun Message.potentiallyFromUserGroupContentMessageOrNull(): + PotentiallyFromUserGroupContentMessage? = this as? + dev.inmo.tgbotapi.types.message.abstracts.PotentiallyFromUserGroupContentMessage + +public inline fun Message.potentiallyFromUserGroupContentMessageOrThrow(): + PotentiallyFromUserGroupContentMessage = this as + dev.inmo.tgbotapi.types.message.abstracts.PotentiallyFromUserGroupContentMessage + +public inline fun + Message.ifPotentiallyFromUserGroupContentMessage(block: (PotentiallyFromUserGroupContentMessage) -> T): + T? = potentiallyFromUserGroupContentMessageOrNull() ?.let(block) + public inline fun Message.forumContentMessageOrNull(): ForumContentMessage? = this as? dev.inmo.tgbotapi.types.message.abstracts.ForumContentMessage