From 23bfe02e6fd5052c0f0bfb284d5ad71eb10b9b28 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Tue, 9 Sep 2025 16:58:47 +0600 Subject: [PATCH] add support of can_manage_direct_messages right --- .../api/chat/members/PromoteChatMember.kt | 24 ++++++++++++------- .../chat/members/PromoteChatMember.kt | 4 +++- .../kotlin/dev/inmo/tgbotapi/types/Common.kt | 1 + .../member/AdministratorChatMemberImpl.kt | 4 +++- .../chat/member/ChatAdministratorRights.kt | 1 + .../member/ChatCommonAdministratorRights.kt | 4 +++- .../types/chat/member/OwnerChatMember.kt | 2 ++ 7 files changed, 29 insertions(+), 11 deletions(-) diff --git a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/chat/members/PromoteChatMember.kt b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/chat/members/PromoteChatMember.kt index 6c8a62f57b..3fa5cea47d 100644 --- a/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/chat/members/PromoteChatMember.kt +++ b/tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/chat/members/PromoteChatMember.kt @@ -26,7 +26,8 @@ public suspend fun TelegramBot.promoteChatMember( canManageTopics: Boolean? = null, canPostStories: Boolean? = null, canEditStories: Boolean? = null, - canDeleteStories: Boolean? = null + canDeleteStories: Boolean? = null, + canManageDirectMessages: Boolean? = null ): Boolean = execute( PromoteChatMember( chatId = chatId, @@ -46,7 +47,8 @@ public suspend fun TelegramBot.promoteChatMember( canManageTopics = canManageTopics, canPostStories = canPostStories, canEditStories = canEditStories, - canDeleteStories = canDeleteStories + canDeleteStories = canDeleteStories, + canManageDirectMessages = canManageDirectMessages, ) ) @@ -69,7 +71,8 @@ public suspend fun TelegramBot.promoteChatMember( canManageTopics: Boolean? = null, canPostStories: Boolean? = null, canEditStories: Boolean? = null, - canDeleteStories: Boolean? = null + canDeleteStories: Boolean? = null, + canManageDirectMessages: Boolean? = null ): Boolean = promoteChatMember( chat.id, userId, @@ -88,7 +91,8 @@ public suspend fun TelegramBot.promoteChatMember( canManageTopics = canManageTopics, canPostStories = canPostStories, canEditStories = canEditStories, - canDeleteStories = canDeleteStories + canDeleteStories = canDeleteStories, + canManageDirectMessages = canManageDirectMessages, ) @Warning("This method is too common. Use it with caution") @@ -110,7 +114,8 @@ public suspend fun TelegramBot.promoteChatMember( canManageTopics: Boolean? = null, canPostStories: Boolean? = null, canEditStories: Boolean? = null, - canDeleteStories: Boolean? = null + canDeleteStories: Boolean? = null, + canManageDirectMessages: Boolean? = null ): Boolean = promoteChatMember( chatId, user.id, @@ -129,7 +134,8 @@ public suspend fun TelegramBot.promoteChatMember( canManageTopics = canManageTopics, canPostStories = canPostStories, canEditStories = canEditStories, - canDeleteStories = canDeleteStories + canDeleteStories = canDeleteStories, + canManageDirectMessages = canManageDirectMessages, ) @Warning("This method is too common. Use it with caution") @@ -151,7 +157,8 @@ public suspend fun TelegramBot.promoteChatMember( canManageTopics: Boolean? = null, canPostStories: Boolean? = null, canEditStories: Boolean? = null, - canDeleteStories: Boolean? = null + canDeleteStories: Boolean? = null, + canManageDirectMessages: Boolean? = null ): Boolean = promoteChatMember( chat.id, user.id, @@ -170,5 +177,6 @@ public suspend fun TelegramBot.promoteChatMember( canManageTopics = canManageTopics, canPostStories = canPostStories, canEditStories = canEditStories, - canDeleteStories = canDeleteStories + canDeleteStories = canDeleteStories, + canManageDirectMessages = canManageDirectMessages, ) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/chat/members/PromoteChatMember.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/chat/members/PromoteChatMember.kt index de3b8d201e..228921c03f 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/chat/members/PromoteChatMember.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/chat/members/PromoteChatMember.kt @@ -46,7 +46,9 @@ data class PromoteChatMember( @SerialName(canEditStoriesField) private val canEditStories: Boolean? = null, @SerialName(canDeleteStoriesField) - private val canDeleteStories: Boolean? = null + private val canDeleteStories: Boolean? = null, + @SerialName(canManageDirectMessagesField) + private val canManageDirectMessages: Boolean? = null, ) : ChatMemberRequest, UntilDate { override fun method(): String = "promoteChatMember" override val resultDeserializer: DeserializationStrategy diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/Common.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/Common.kt index 37466e9b38..5229efd63f 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/Common.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/Common.kt @@ -269,6 +269,7 @@ const val canManageTopicsField = "can_manage_topics" const val canPostStoriesField = "can_post_stories" const val canEditStoriesField = "can_edit_stories" const val canDeleteStoriesField = "can_delete_stories" +const val canManageDirectMessagesField = "can_manage_direct_messages" const val captionEntitiesField = "caption_entities" const val hasSpoilerField = "has_spoiler" const val showCaptionAboveMediaField = "show_caption_above_media" diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/chat/member/AdministratorChatMemberImpl.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/chat/member/AdministratorChatMemberImpl.kt index 96bcd1ea87..daebfd3a3a 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/chat/member/AdministratorChatMemberImpl.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/chat/member/AdministratorChatMemberImpl.kt @@ -45,7 +45,9 @@ data class AdministratorChatMemberImpl( @SerialName(canEditStoriesField) override val canEditStories: Boolean = false, @SerialName(canDeleteStoriesField) - override val canDeleteStories: Boolean = false + override val canDeleteStories: Boolean = false, + @SerialName(canManageDirectMessagesField) + override val canManageDirectMessages: Boolean = false, ) : AdministratorChatMember { @SerialName(statusField) @Required diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/chat/member/ChatAdministratorRights.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/chat/member/ChatAdministratorRights.kt index 7c7b9953b7..7efad0ffaf 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/chat/member/ChatAdministratorRights.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/chat/member/ChatAdministratorRights.kt @@ -19,6 +19,7 @@ sealed interface ChatAdministratorRights : SpecialChatAdministratorRights { val canPostStories: Boolean val canEditStories: Boolean val canDeleteStories: Boolean + val canManageDirectMessages: Boolean companion object { operator fun invoke( diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/chat/member/ChatCommonAdministratorRights.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/chat/member/ChatCommonAdministratorRights.kt index f5db0bcab4..fccbfa0d77 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/chat/member/ChatCommonAdministratorRights.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/chat/member/ChatCommonAdministratorRights.kt @@ -35,5 +35,7 @@ data class ChatCommonAdministratorRights( @SerialName(canEditStoriesField) override val canEditStories: Boolean = false, @SerialName(canDeleteStoriesField) - override val canDeleteStories: Boolean = false + override val canDeleteStories: Boolean = false, + @SerialName(canManageDirectMessagesField) + override val canManageDirectMessages: Boolean = false, ) : ChatAdministratorRights diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/chat/member/OwnerChatMember.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/chat/member/OwnerChatMember.kt index 45e79861d6..c8f1217590 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/chat/member/OwnerChatMember.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/chat/member/OwnerChatMember.kt @@ -46,6 +46,8 @@ data class OwnerChatMember( override val canEditStories: Boolean = true @Transient override val canDeleteStories: Boolean = true + @Transient + override val canManageDirectMessages: Boolean = true @SerialName(statusField) @Required