mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI.git
synced 2025-12-15 18:55:44 +00:00
fixes of inheritance of messages for direct ones
This commit is contained in:
@@ -280,7 +280,6 @@ data class FromChannelChannelDirectMessagesContentMessageImpl<T: MessageContent>
|
||||
override val chat: PreviewChannelDirectMessagesChat,
|
||||
override val channel: PreviewChannelChat,
|
||||
override val messageId: MessageId,
|
||||
override val threadId: MessageThreadId,
|
||||
override val date: DateTime,
|
||||
override val directMessageTopic: DirectMessagesTopic,
|
||||
override val forwardOrigin: MessageOrigin?,
|
||||
@@ -300,7 +299,6 @@ data class FromChannelChannelDirectMessagesContentMessageImpl<T: MessageContent>
|
||||
chat: PreviewChannelDirectMessagesChat,
|
||||
channel: PreviewChannelChat,
|
||||
messageId: MessageId,
|
||||
threadId: MessageThreadId,
|
||||
date: DateTime,
|
||||
directMessageTopic: DirectMessagesTopic,
|
||||
forwardInfo: ForwardInfo,
|
||||
@@ -318,7 +316,6 @@ data class FromChannelChannelDirectMessagesContentMessageImpl<T: MessageContent>
|
||||
chat = chat,
|
||||
channel = channel,
|
||||
messageId = messageId,
|
||||
threadId = threadId,
|
||||
date = date,
|
||||
directMessageTopic = directMessageTopic,
|
||||
forwardOrigin = forwardInfo.messageOrigin(),
|
||||
@@ -448,7 +445,6 @@ data class CommonForumContentMessageImpl<T : MessageContent>(
|
||||
data class CommonChannelDirectMessagesContentMessageImpl<T : MessageContent>(
|
||||
override val chat: PreviewChannelDirectMessagesChat,
|
||||
override val messageId: MessageId,
|
||||
override val threadId: MessageThreadId,
|
||||
override val from: User,
|
||||
override val date: DateTime,
|
||||
override val directMessageTopic: DirectMessagesTopic,
|
||||
@@ -468,7 +464,6 @@ data class CommonChannelDirectMessagesContentMessageImpl<T : MessageContent>(
|
||||
constructor(
|
||||
chat: PreviewChannelDirectMessagesChat,
|
||||
messageId: MessageId,
|
||||
threadId: MessageThreadId,
|
||||
from: User,
|
||||
date: DateTime,
|
||||
directMessageTopic: DirectMessagesTopic,
|
||||
@@ -486,7 +481,6 @@ data class CommonChannelDirectMessagesContentMessageImpl<T : MessageContent>(
|
||||
) : this(
|
||||
chat = chat,
|
||||
messageId = messageId,
|
||||
threadId = threadId,
|
||||
from = from,
|
||||
date = date,
|
||||
directMessageTopic = directMessageTopic,
|
||||
|
||||
@@ -452,7 +452,6 @@ internal data class RawMessage(
|
||||
chat = actualForumChat,
|
||||
channel = sender_chat,
|
||||
messageId = messageId,
|
||||
threadId = messageThreadId,
|
||||
date = date.asDate,
|
||||
directMessageTopic = direct_messages_topic ?: error("direct_messages_topic must be presented for FromChannelChannelDirectMessagesContentMessage"),
|
||||
forwardOrigin = forward_origin,
|
||||
@@ -471,7 +470,6 @@ internal data class RawMessage(
|
||||
null -> CommonChannelDirectMessagesContentMessageImpl(
|
||||
chat = actualForumChat,
|
||||
messageId = messageId,
|
||||
threadId = messageThreadId,
|
||||
from = checkedFrom ?: from ?: error("It is expected that in direct channel messages from non anonymous channels user must be specified"),
|
||||
date = date.asDate,
|
||||
directMessageTopic = direct_messages_topic ?: error("direct_messages_topic must be presented for CommonChannelDirectMessagesContentMessage"),
|
||||
@@ -490,8 +488,8 @@ internal data class RawMessage(
|
||||
}
|
||||
} else {
|
||||
when (sender_chat) {
|
||||
is PreviewChannelChat -> if (is_automatic_forward == true) {
|
||||
ConnectedFromChannelGroupContentMessageImpl(
|
||||
is PreviewChannelChat -> when {
|
||||
is_automatic_forward == true -> ConnectedFromChannelGroupContentMessageImpl(
|
||||
chat = chat,
|
||||
channel = sender_chat,
|
||||
messageId = messageId,
|
||||
@@ -508,8 +506,32 @@ internal data class RawMessage(
|
||||
fromOffline = is_from_offline,
|
||||
cost = paid_star_count,
|
||||
)
|
||||
} else {
|
||||
UnconnectedFromChannelGroupContentMessageImpl(
|
||||
direct_messages_topic != null -> CommonChannelDirectMessagesContentMessageImpl(
|
||||
chat = when (chat) {
|
||||
is ChannelDirectMessagesChatImpl -> chat.copy(
|
||||
id = ChatIdWithChannelDirectMessageThreadId(
|
||||
chat.id.chatId,
|
||||
direct_messages_topic.threadId
|
||||
)
|
||||
)
|
||||
},
|
||||
messageId = messageId,
|
||||
from = checkedFrom ?: from ?: error("It is expected that in direct channel messages from non anonymous channels user must be specified"),
|
||||
date = date.asDate,
|
||||
directMessageTopic = direct_messages_topic ?: error("direct_messages_topic must be presented for CommonChannelDirectMessagesContentMessage"),
|
||||
forwardOrigin = forward_origin,
|
||||
editDate = edit_date ?.asDate,
|
||||
hasProtectedContent = has_protected_content == true,
|
||||
replyInfo = replyInfo,
|
||||
replyMarkup = reply_markup,
|
||||
content = content,
|
||||
senderBot = via_bot,
|
||||
mediaGroupId = media_group_id,
|
||||
senderBoostsCount = sender_boost_count,
|
||||
fromOffline = is_from_offline,
|
||||
cost = paid_star_count,
|
||||
)
|
||||
else -> UnconnectedFromChannelGroupContentMessageImpl(
|
||||
chat = chat,
|
||||
channel = sender_chat,
|
||||
messageId = messageId,
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package dev.inmo.tgbotapi.types.message.abstracts
|
||||
|
||||
import dev.inmo.tgbotapi.requests.chat.forum.CreateForumTopic
|
||||
import dev.inmo.tgbotapi.types.DirectMessageThreadId
|
||||
import dev.inmo.tgbotapi.types.MessageThreadId
|
||||
import dev.inmo.tgbotapi.types.chat.*
|
||||
import dev.inmo.tgbotapi.types.message.ChatEvents.forum.ForumTopicCreated
|
||||
@@ -22,9 +23,11 @@ sealed interface ForumContentMessage<T : MessageContent> : GroupContentMessage<T
|
||||
get() = (replyTo as? ChatEventMessage<*>) ?.chatEvent as? ForumTopicCreated
|
||||
}
|
||||
|
||||
sealed interface ChannelDirectMessagesContentMessage<T : MessageContent> : ForumContentMessage<T>, PossiblyTopicMessage {
|
||||
sealed interface ChannelDirectMessagesContentMessage<T : MessageContent> : GroupContentMessage<T> {
|
||||
override val chat: PreviewChannelDirectMessagesChat
|
||||
val directMessageTopic: DirectMessagesTopic
|
||||
val directMessageThreadId: DirectMessageThreadId
|
||||
get() = directMessageTopic.threadId
|
||||
}
|
||||
|
||||
sealed interface FromChannelGroupContentMessage<T : MessageContent> : GroupContentMessage<T>, SignedMessage, WithSenderChatMessage {
|
||||
|
||||
@@ -172,7 +172,6 @@ fun <T : MediaGroupPartContent> List<PossiblySentViaBotCommonMessage<T>>.asMedia
|
||||
is CommonChannelDirectMessagesContentMessage -> CommonChannelDirectMessagesContentMessageImpl(
|
||||
chat = sourceMessage.chat,
|
||||
messageId = sourceMessage.messageId,
|
||||
threadId = sourceMessage.threadId,
|
||||
from = sourceMessage.user,
|
||||
date = sourceMessage.date,
|
||||
directMessageTopic = sourceMessage.directMessageTopic,
|
||||
@@ -211,7 +210,6 @@ fun <T : MediaGroupPartContent> List<PossiblySentViaBotCommonMessage<T>>.asMedia
|
||||
chat = sourceMessage.chat,
|
||||
channel = sourceMessage.channel,
|
||||
messageId = sourceMessage.messageId,
|
||||
threadId = sourceMessage.threadId,
|
||||
date = sourceMessage.date,
|
||||
directMessageTopic = sourceMessage.directMessageTopic,
|
||||
forwardOrigin = sourceMessage.forwardOrigin,
|
||||
|
||||
Reference in New Issue
Block a user