1
0
mirror of https://github.com/InsanusMokrassar/TelegramBotAPI.git synced 2026-03-03 17:32:23 +00:00

update forum events

This commit is contained in:
2026-02-16 17:26:35 +06:00
parent ecd01c9254
commit d642a04e01
5 changed files with 79 additions and 6 deletions

View File

@@ -0,0 +1,17 @@
package dev.inmo.tgbotapi.types.message
import korlibs.time.DateTime
import dev.inmo.tgbotapi.types.MessageId
import dev.inmo.tgbotapi.types.chat.PreviewPrivateChat
import dev.inmo.tgbotapi.types.chat.PreviewPrivateForumChat
import dev.inmo.tgbotapi.types.chat.PrivateChat
import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.PrivateEvent
import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.PrivateForumEvent
import dev.inmo.tgbotapi.types.message.abstracts.ChatEventMessage
data class PrivateForumEventMessage<T : PrivateForumEvent>(
override val messageId: MessageId,
override val chat: PreviewPrivateForumChat,
override val chatEvent: T,
override val date: DateTime
) : ChatEventMessage<T>

View File

@@ -380,12 +380,37 @@ internal data class RawMessage(
chatEvent as? ChannelEvent ?: throwWrongChatEvent(ChannelEvent::class, chatEvent),
date.asDate
)
is PreviewPrivateChat -> PrivateEventMessage(
messageId,
chat,
chatEvent as? PrivateEvent ?: throwWrongChatEvent(PrivateEvent::class, chatEvent),
date.asDate
)
is PreviewPrivateChat -> if (chat is PrivateForumChat || is_topic_message == true || messageThreadId != null) {
PrivateEventMessage(
messageId,
if (chat is PrivateForumChat) {
chat
} else {
PrivateForumChatImpl(
id = if (messageThreadId == null) {
chat.id
} else {
ChatIdWithThreadId(
chat.id.chatId,
chat.id.threadId ?: messageThreadId
)
},
username = chat.username,
firstName = chat.firstName,
lastName = chat.lastName
)
},
chatEvent as? PrivateEvent ?: throwWrongChatEvent(PrivateEvent::class, chatEvent),
date.asDate
)
} else {
PrivateEventMessage(
messageId,
chat,
chatEvent as? PrivateEvent ?: throwWrongChatEvent(PrivateEvent::class, chatEvent),
date.asDate
)
}
else -> error("Expected one of the public chats, but was $chat (in extracting of chat event message)")
}
} ?: content?.let { content ->