1
0
mirror of https://github.com/InsanusMokrassar/TelegramBotAPI.git synced 2026-03-03 09:22:22 +00:00

preview version of threads in privats

This commit is contained in:
2026-02-15 13:22:17 +06:00
parent e1848aa5c9
commit cea80ccee6
3 changed files with 90 additions and 17 deletions

View File

@@ -0,0 +1,36 @@
package dev.inmo.tgbotapi.types.message
import korlibs.time.DateTime
import dev.inmo.tgbotapi.types.*
import dev.inmo.tgbotapi.types.buttons.InlineKeyboardMarkup
import dev.inmo.tgbotapi.types.chat.*
import dev.inmo.tgbotapi.types.chat.CommonBot
import dev.inmo.tgbotapi.types.chat.User
import dev.inmo.tgbotapi.types.message.ChatEvents.forum.ForumTopicCreated
import dev.inmo.tgbotapi.types.message.abstracts.AccessibleMessage
import dev.inmo.tgbotapi.types.message.abstracts.PrivateContentMessage
import dev.inmo.tgbotapi.types.message.abstracts.PrivateForumContentMessage
import dev.inmo.tgbotapi.types.message.content.MessageContent
import kotlinx.serialization.SerialName
data class PrivateForumContentMessageImpl<T: MessageContent>(
override val messageId: MessageId,
override val threadId: MessageThreadId,
override val threadCreatingInfo: ForumTopicCreated?,
override val from: User,
override val chat: PreviewPrivateChat,
override val content: T,
override val date: DateTime,
override val editDate: DateTime?,
override val hasProtectedContent: Boolean,
override val forwardOrigin: MessageOrigin?,
override val replyInfo: ReplyInfo?,
override val replyMarkup: InlineKeyboardMarkup?,
override val senderBot: CommonBot?,
override val mediaGroupId: MediaGroupId?,
override val fromOffline: Boolean,
override val effectId: EffectId?,
@SerialName(paidStarCountField)
override val cost: Int? = null
) : PrivateForumContentMessage<T> {
}

View File

@@ -748,9 +748,15 @@ internal data class RawMessage(
}
}
is PreviewPrivateChat -> if (business_connection_id == null) {
PrivateContentMessageImpl(
when {
is_topic_message == true -> {
PrivateForumContentMessageImpl(
messageId = messageId,
from = checkedFrom ?: from ?: error("Was detected common message, but owner (sender) of the message was not found"),
from = checkedFrom ?: from
?: error("Was detected common message, but owner (sender) of the message was not found"),
threadId = messageThreadId
?: error("Was detected forum private message, but message thread id was not found"),
threadCreatingInfo = forum_topic_created,
chat = chat,
content = content,
date = date.asDate,
@@ -765,6 +771,28 @@ internal data class RawMessage(
effectId = effect_id,
cost = paid_star_count,
)
}
else -> {
PrivateContentMessageImpl(
messageId = messageId,
from = checkedFrom ?: from
?: error("Was detected common message, but owner (sender) of the message was not found"),
chat = chat,
content = content,
date = date.asDate,
editDate = edit_date?.asDate,
hasProtectedContent = has_protected_content == true,
forwardOrigin = forward_origin,
replyInfo = replyInfo,
replyMarkup = reply_markup,
senderBot = via_bot,
mediaGroupId = media_group_id,
fromOffline = is_from_offline,
effectId = effect_id,
cost = paid_star_count,
)
}
}
} else {
BusinessContentMessageImpl(
messageId = messageId,

View File

@@ -0,0 +1,9 @@
package dev.inmo.tgbotapi.types.message.abstracts
import dev.inmo.tgbotapi.types.MessageThreadId
import dev.inmo.tgbotapi.types.chat.PreviewPrivateChat
import dev.inmo.tgbotapi.types.message.content.MessageContent
interface PrivateForumContentMessage<T: MessageContent> : PrivateContentMessage<T>, PossiblyTopicMessage {
override val threadId: MessageThreadId
}