pinned message in ExtendedOtherPartiesChat

This commit is contained in:
InsanusMokrassar 2023-11-26 02:06:30 +06:00
parent 8763ea23fa
commit b7c3f9f607
4 changed files with 25 additions and 5 deletions

View File

@ -7,6 +7,8 @@
* `Serialization`: `1.6.0` -> `1.6.1`
* `Ktor`: `2.3.5` -> `2.3.6`
* `MicroUtils`: `0.20.12` -> `0.20.15`
* `Core`:
* New abstraction `ExtendedOtherPartiesChat` with `pinnedMessage`
## 9.3.0

View File

@ -81,7 +81,10 @@ data class ExtendedPrivateChatImpl(
@SerialName(emojiStatusCustomEmojiIdField)
override val statusEmojiId: CustomEmojiId? = null,
@SerialName(emojiStatusExpirationDateField)
override val statusEmojiExpiration: TelegramDate? = null
override val statusEmojiExpiration: TelegramDate? = null,
@SerialName(pinnedMessageField)
@Serializable(TelegramBotAPIMessageDeserializeOnlySerializer::class)
override val pinnedMessage: Message? = null,
) : ExtendedPrivateChat
typealias ExtendedUser = ExtendedPrivateChatImpl

View File

@ -17,7 +17,7 @@ sealed interface ExtendedGroupChat : GroupChat, ExtendedPublicChat {
}
@Serializable(ExtendedChatSerializer.Companion::class)
sealed interface ExtendedPrivateChat : PrivateChat, ExtendedChatWithUsername {
sealed interface ExtendedPrivateChat : PrivateChat, ExtendedChatWithUsername, ExtendedOtherPartiesChat {
val bio: String
val hasPrivateForwards: Boolean
val hasRestrictedVoiceAndVideoMessages: Boolean
@ -28,11 +28,9 @@ sealed interface ExtendedPrivateChat : PrivateChat, ExtendedChatWithUsername {
get() = hasPrivateForwards
}
sealed interface ExtendedPublicChat : ExtendedChat, PublicChat {
sealed interface ExtendedPublicChat : ExtendedOtherPartiesChat, PublicChat {
val description: String
val inviteLink: String?
@Serializable(TelegramBotAPIMessageDeserializeOnlySerializer::class)
val pinnedMessage: Message?
val membersHidden: Boolean
}
@ -68,6 +66,13 @@ sealed interface ExtendedChat : Chat {
val chatPhoto: ChatPhoto?
}
@Serializable(ExtendedChatSerializer.Companion::class)
sealed interface ExtendedOtherPartiesChat : ExtendedChat {
@Serializable(TelegramBotAPIMessageDeserializeOnlySerializer::class)
val pinnedMessage: Message?
}
@Serializable(ExtendedChatSerializer.Companion::class)
sealed interface ExtendedChatWithUsername : UsernameChat, ExtendedChat {
val activeUsernames: List<Username>

View File

@ -120,6 +120,7 @@ import dev.inmo.tgbotapi.types.chat.ExtendedChat
import dev.inmo.tgbotapi.types.chat.ExtendedChatWithUsername
import dev.inmo.tgbotapi.types.chat.ExtendedForumChat
import dev.inmo.tgbotapi.types.chat.ExtendedGroupChat
import dev.inmo.tgbotapi.types.chat.ExtendedOtherPartiesChat
import dev.inmo.tgbotapi.types.chat.ExtendedPrivateChat
import dev.inmo.tgbotapi.types.chat.ExtendedPublicChat
import dev.inmo.tgbotapi.types.chat.ExtendedSupergroupChat
@ -1965,6 +1966,15 @@ public inline fun Chat.extendedChatOrThrow(): ExtendedChat = this as
public inline fun <T> Chat.ifExtendedChat(block: (ExtendedChat) -> T): T? = extendedChatOrNull()
?.let(block)
public inline fun Chat.extendedOtherPartiesChatOrNull(): ExtendedOtherPartiesChat? = this as?
dev.inmo.tgbotapi.types.chat.ExtendedOtherPartiesChat
public inline fun Chat.extendedOtherPartiesChatOrThrow(): ExtendedOtherPartiesChat = this as
dev.inmo.tgbotapi.types.chat.ExtendedOtherPartiesChat
public inline fun <T> Chat.ifExtendedOtherPartiesChat(block: (ExtendedOtherPartiesChat) -> T): T? =
extendedOtherPartiesChatOrNull() ?.let(block)
public inline fun Chat.extendedChatWithUsernameOrNull(): ExtendedChatWithUsername? = this as?
dev.inmo.tgbotapi.types.chat.ExtendedChatWithUsername