mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI.git
synced 2026-06-18 09:15:10 +00:00
guest message answers rework
This commit is contained in:
@@ -1,33 +0,0 @@
|
||||
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.CommonBot
|
||||
import dev.inmo.tgbotapi.types.chat.PreviewChat
|
||||
import dev.inmo.tgbotapi.types.chat.User
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.AnswerGuestContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.GuestContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.RequestGuestContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.content.MessageContent
|
||||
import kotlinx.serialization.SerialName
|
||||
|
||||
data class AnswerGuestContentMessageImpl<T: MessageContent>(
|
||||
override val messageId: MessageId,
|
||||
override val from: User,
|
||||
override val chat: PreviewChat,
|
||||
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 guestBotCallerUser: User,
|
||||
override val guestBotCallerChat: PreviewChat,
|
||||
override val fromOffline: Boolean,
|
||||
@SerialName(paidMessageStarCountField)
|
||||
override val cost: Int? = null,
|
||||
) : AnswerGuestContentMessage<T>
|
||||
@@ -180,6 +180,8 @@ data class CommonGroupContentMessageImpl<T : MessageContent>(
|
||||
override val replyMarkup: InlineKeyboardMarkup?,
|
||||
override val content: T,
|
||||
override val senderBot: CommonBot?,
|
||||
override val guestBotCallerUser: User?,
|
||||
override val guestBotCallerChat: PreviewChat?,
|
||||
override val mediaGroupId: MediaGroupId?,
|
||||
override val senderBoostsCount: Int?,
|
||||
override val fromOffline: Boolean,
|
||||
@@ -200,6 +202,8 @@ data class CommonGroupContentMessageImpl<T : MessageContent>(
|
||||
replyMarkup: InlineKeyboardMarkup?,
|
||||
content: T,
|
||||
senderBot: CommonBot?,
|
||||
guestBotCallerUser: User?,
|
||||
guestBotCallerChat: PreviewChat?,
|
||||
mediaGroupId: MediaGroupId?,
|
||||
senderBoostsCount: Int?,
|
||||
fromOffline: Boolean,
|
||||
@@ -216,6 +220,8 @@ data class CommonGroupContentMessageImpl<T : MessageContent>(
|
||||
replyMarkup = replyMarkup,
|
||||
content = content,
|
||||
senderBot = senderBot,
|
||||
guestBotCallerUser = guestBotCallerUser,
|
||||
guestBotCallerChat = guestBotCallerChat,
|
||||
mediaGroupId = mediaGroupId,
|
||||
senderBoostsCount = senderBoostsCount,
|
||||
fromOffline = fromOffline,
|
||||
@@ -460,6 +466,8 @@ data class CommonForumContentMessageImpl<T : MessageContent>(
|
||||
override val replyMarkup: InlineKeyboardMarkup?,
|
||||
override val content: T,
|
||||
override val senderBot: CommonBot?,
|
||||
override val guestBotCallerUser: User?,
|
||||
override val guestBotCallerChat: PreviewChat?,
|
||||
override val mediaGroupId: MediaGroupId?,
|
||||
override val senderBoostsCount: Int?,
|
||||
override val fromOffline: Boolean,
|
||||
@@ -481,6 +489,8 @@ data class CommonForumContentMessageImpl<T : MessageContent>(
|
||||
replyMarkup: InlineKeyboardMarkup?,
|
||||
content: T,
|
||||
senderBot: CommonBot?,
|
||||
guestBotCallerUser: User?,
|
||||
guestBotCallerChat: PreviewChat?,
|
||||
mediaGroupId: MediaGroupId?,
|
||||
senderBoostsCount: Int?,
|
||||
fromOffline: Boolean,
|
||||
@@ -498,6 +508,8 @@ data class CommonForumContentMessageImpl<T : MessageContent>(
|
||||
replyMarkup = replyMarkup,
|
||||
content = content,
|
||||
senderBot = senderBot,
|
||||
guestBotCallerUser = guestBotCallerUser,
|
||||
guestBotCallerChat = guestBotCallerChat,
|
||||
mediaGroupId = mediaGroupId,
|
||||
senderBoostsCount = senderBoostsCount,
|
||||
fromOffline = fromOffline,
|
||||
|
||||
@@ -23,6 +23,8 @@ data class PrivateContentMessageImpl<T: MessageContent>(
|
||||
override val replyInfo: ReplyInfo?,
|
||||
override val replyMarkup: InlineKeyboardMarkup?,
|
||||
override val senderBot: CommonBot?,
|
||||
override val guestBotCallerUser: User?,
|
||||
override val guestBotCallerChat: PreviewChat?,
|
||||
override val mediaGroupId: MediaGroupId?,
|
||||
override val fromOffline: Boolean,
|
||||
override val effectId: EffectId?,
|
||||
@@ -41,10 +43,27 @@ data class PrivateContentMessageImpl<T: MessageContent>(
|
||||
replyTo: AccessibleMessage?,
|
||||
replyMarkup: InlineKeyboardMarkup?,
|
||||
senderBot: CommonBot?,
|
||||
guestBotCallerUser: User?,
|
||||
guestBotCallerChat: PreviewChat?,
|
||||
mediaGroupId: MediaGroupId?,
|
||||
fromOffline: Boolean,
|
||||
effectId: EffectId,
|
||||
) : this(
|
||||
messageId, from, chat, content, date, editDate, hasProtectedContent, forwardInfo.messageOrigin(), replyTo ?.let { ReplyInfo.Internal(it) }, replyMarkup, senderBot, mediaGroupId, fromOffline, effectId
|
||||
messageId = messageId,
|
||||
from = from,
|
||||
chat = chat,
|
||||
content = content,
|
||||
date = date,
|
||||
editDate = editDate,
|
||||
hasProtectedContent = hasProtectedContent,
|
||||
forwardOrigin = forwardInfo.messageOrigin(),
|
||||
replyInfo = replyTo ?.let { ReplyInfo.Internal(it) },
|
||||
replyMarkup = replyMarkup,
|
||||
senderBot = senderBot,
|
||||
guestBotCallerUser = guestBotCallerUser,
|
||||
guestBotCallerChat = guestBotCallerChat,
|
||||
mediaGroupId = mediaGroupId,
|
||||
fromOffline = fromOffline,
|
||||
effectId = effectId
|
||||
)
|
||||
}
|
||||
|
||||
@@ -27,6 +27,8 @@ data class PrivateForumContentMessageImpl<T: MessageContent>(
|
||||
override val replyInfo: ReplyInfo?,
|
||||
override val replyMarkup: InlineKeyboardMarkup?,
|
||||
override val senderBot: CommonBot?,
|
||||
override val guestBotCallerUser: User?,
|
||||
override val guestBotCallerChat: PreviewChat?,
|
||||
override val mediaGroupId: MediaGroupId?,
|
||||
override val fromOffline: Boolean,
|
||||
override val effectId: EffectId?,
|
||||
|
||||
@@ -476,26 +476,6 @@ internal data class RawMessage(
|
||||
cost = paid_star_count,
|
||||
)
|
||||
}
|
||||
(guest_bot_caller_user ?: guest_bot_caller_chat) != null -> {
|
||||
AnswerGuestContentMessageImpl(
|
||||
messageId = messageId,
|
||||
from = checkedFrom ?: from ?: error("Was detected guest 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 ?: error("For guest answers sender bot must be presented"),
|
||||
mediaGroupId = media_group_id,
|
||||
guestBotCallerUser = guest_bot_caller_user ?: error("For guest content message it is required to have user which called the bot"),
|
||||
guestBotCallerChat = guest_bot_caller_chat ?: error("For guest content message it is required to have chat in that called the bot"),
|
||||
fromOffline = is_from_offline,
|
||||
cost = paid_star_count,
|
||||
)
|
||||
}
|
||||
else -> {
|
||||
when (chat) {
|
||||
is PreviewChannelDirectMessagesChat -> {
|
||||
@@ -693,6 +673,8 @@ internal data class RawMessage(
|
||||
replyMarkup = reply_markup,
|
||||
content = content,
|
||||
senderBot = via_bot,
|
||||
guestBotCallerUser = guest_bot_caller_user,
|
||||
guestBotCallerChat = guest_bot_caller_chat,
|
||||
mediaGroupId = media_group_id,
|
||||
senderBoostsCount = sender_boost_count,
|
||||
fromOffline = is_from_offline,
|
||||
@@ -767,6 +749,8 @@ internal data class RawMessage(
|
||||
replyMarkup = reply_markup,
|
||||
content = content,
|
||||
senderBot = via_bot,
|
||||
guestBotCallerUser = guest_bot_caller_user,
|
||||
guestBotCallerChat = guest_bot_caller_chat,
|
||||
mediaGroupId = media_group_id,
|
||||
senderBoostsCount = sender_boost_count,
|
||||
fromOffline = is_from_offline,
|
||||
@@ -843,6 +827,8 @@ internal data class RawMessage(
|
||||
replyMarkup = reply_markup,
|
||||
content = content,
|
||||
senderBot = via_bot,
|
||||
guestBotCallerUser = guest_bot_caller_user,
|
||||
guestBotCallerChat = guest_bot_caller_chat,
|
||||
mediaGroupId = media_group_id,
|
||||
senderBoostsCount = sender_boost_count,
|
||||
fromOffline = is_from_offline,
|
||||
@@ -883,6 +869,8 @@ internal data class RawMessage(
|
||||
replyInfo = replyInfo,
|
||||
replyMarkup = reply_markup,
|
||||
senderBot = via_bot,
|
||||
guestBotCallerUser = guest_bot_caller_user,
|
||||
guestBotCallerChat = guest_bot_caller_chat,
|
||||
mediaGroupId = media_group_id,
|
||||
fromOffline = is_from_offline,
|
||||
effectId = effect_id,
|
||||
@@ -903,6 +891,8 @@ internal data class RawMessage(
|
||||
replyInfo = replyInfo,
|
||||
replyMarkup = reply_markup,
|
||||
senderBot = via_bot,
|
||||
guestBotCallerUser = guest_bot_caller_user,
|
||||
guestBotCallerChat = guest_bot_caller_chat,
|
||||
mediaGroupId = media_group_id,
|
||||
fromOffline = is_from_offline,
|
||||
effectId = effect_id,
|
||||
|
||||
@@ -6,7 +6,6 @@ import dev.inmo.tgbotapi.types.buttons.InlineKeyboardMarkup
|
||||
import dev.inmo.tgbotapi.types.chat.CommonBot
|
||||
import dev.inmo.tgbotapi.types.chat.PreviewChat
|
||||
import dev.inmo.tgbotapi.types.chat.User
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.GuestContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.RequestGuestContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.content.MessageContent
|
||||
import kotlinx.serialization.SerialName
|
||||
|
||||
@@ -49,7 +49,7 @@ interface AnonymousGroupContentMessage<T : MessageContent> : GroupContentMessage
|
||||
get() = chat
|
||||
}
|
||||
|
||||
interface CommonGroupContentMessage<T : MessageContent> : GroupContentMessage<T>, PotentiallyFromUserGroupContentMessage<T>, FromUserMessage
|
||||
interface CommonGroupContentMessage<T : MessageContent> : GroupContentMessage<T>, PotentiallyFromUserGroupContentMessage<T>, FromUserMessage, PossiblyGuestAnswerMessage
|
||||
|
||||
interface FromChannelForumContentMessage<T: MessageContent> : FromChannelGroupContentMessage<T>, ForumContentMessage<T>
|
||||
|
||||
@@ -62,7 +62,7 @@ interface AnonymousForumContentMessage<T : MessageContent> : ForumContentMessage
|
||||
get() = chat
|
||||
}
|
||||
|
||||
interface CommonForumContentMessage<T : MessageContent> : ForumContentMessage<T>, PotentiallyFromUserGroupContentMessage<T>, FromUserMessage
|
||||
interface CommonForumContentMessage<T : MessageContent> : ForumContentMessage<T>, PotentiallyFromUserGroupContentMessage<T>, FromUserMessage, PossiblyGuestAnswerMessage
|
||||
|
||||
interface CommonChannelDirectMessagesContentMessage<T : MessageContent> : ChannelDirectMessagesContentMessage<T>, PotentiallyFromUserGroupContentMessage<T>, FromUserMessage
|
||||
|
||||
|
||||
@@ -4,14 +4,9 @@ import dev.inmo.tgbotapi.types.GuestQueryId
|
||||
import dev.inmo.tgbotapi.types.chat.CommonBot
|
||||
import dev.inmo.tgbotapi.types.message.content.MessageContent
|
||||
|
||||
sealed interface GuestContentMessage<T: MessageContent> : CommonContentMessage<T>,
|
||||
interface RequestGuestContentMessage<T : MessageContent> : CommonContentMessage<T>,
|
||||
RequestGuestMessage,
|
||||
SpecialMessage,
|
||||
GuestMessage,
|
||||
FromUserMessage,
|
||||
PossiblySentViaBot {
|
||||
}
|
||||
|
||||
interface AnswerGuestContentMessage<T : MessageContent> : GuestContentMessage<T>, AnswerGuestMessage, PossiblySentViaBot {
|
||||
override val senderBot: CommonBot
|
||||
}
|
||||
|
||||
interface RequestGuestContentMessage<T : MessageContent> : GuestContentMessage<T>, RequestGuestMessage, SpecialMessage
|
||||
PossiblySentViaBot
|
||||
|
||||
@@ -3,7 +3,7 @@ package dev.inmo.tgbotapi.types.message.abstracts
|
||||
import dev.inmo.tgbotapi.types.chat.PreviewChat
|
||||
import dev.inmo.tgbotapi.types.chat.User
|
||||
|
||||
interface AnswerGuestMessage : GuestMessage {
|
||||
val guestBotCallerUser: User
|
||||
val guestBotCallerChat: PreviewChat
|
||||
interface PossiblyGuestAnswerMessage : Message {
|
||||
val guestBotCallerUser: User?
|
||||
val guestBotCallerChat: PreviewChat?
|
||||
}
|
||||
@@ -3,6 +3,10 @@ package dev.inmo.tgbotapi.types.message.abstracts
|
||||
import dev.inmo.tgbotapi.types.chat.PreviewPrivateChat
|
||||
import dev.inmo.tgbotapi.types.message.content.MessageContent
|
||||
|
||||
interface PrivateContentMessage<T: MessageContent> : PossiblySentViaBotCommonMessage<T>, FromUserMessage, PossiblyOfflineMessage, PossiblyWithEffectMessage {
|
||||
interface PrivateContentMessage<T: MessageContent> : PossiblySentViaBotCommonMessage<T>,
|
||||
FromUserMessage,
|
||||
PossiblyOfflineMessage,
|
||||
PossiblyWithEffectMessage,
|
||||
PossiblyGuestAnswerMessage {
|
||||
override val chat: PreviewPrivateChat
|
||||
}
|
||||
|
||||
@@ -2,9 +2,6 @@ package dev.inmo.tgbotapi.types.update
|
||||
|
||||
import dev.inmo.tgbotapi.types.UpdateId
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.AccessibleMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.CommonContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.GuestContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.RequestGuestContentMessage
|
||||
import dev.inmo.tgbotapi.types.update.abstracts.BaseSentMessageUpdate
|
||||
|
||||
|
||||
@@ -62,6 +62,8 @@ fun <T : MediaGroupPartContent> List<CommonContentMessage<T>>.asMediaGroupMessag
|
||||
replyInfo = sourceMessage.replyInfo,
|
||||
replyMarkup = sourceMessage.replyMarkup,
|
||||
senderBot = sourceMessage.senderBot,
|
||||
guestBotCallerUser = sourceMessage.guestBotCallerUser,
|
||||
guestBotCallerChat = sourceMessage.guestBotCallerChat,
|
||||
mediaGroupId = sourceMessage.mediaGroupId,
|
||||
fromOffline = sourceMessage.fromOffline,
|
||||
effectId = sourceMessage.effectId,
|
||||
@@ -95,6 +97,8 @@ fun <T : MediaGroupPartContent> List<CommonContentMessage<T>>.asMediaGroupMessag
|
||||
replyMarkup = sourceMessage.replyMarkup,
|
||||
content = content,
|
||||
senderBot = sourceMessage.senderBot,
|
||||
guestBotCallerUser = sourceMessage.guestBotCallerUser,
|
||||
guestBotCallerChat = sourceMessage.guestBotCallerChat,
|
||||
mediaGroupId = sourceMessage.mediaGroupId,
|
||||
senderBoostsCount = sourceMessage.senderBoostsCount,
|
||||
fromOffline = sourceMessage.fromOffline,
|
||||
@@ -165,6 +169,8 @@ fun <T : MediaGroupPartContent> List<CommonContentMessage<T>>.asMediaGroupMessag
|
||||
replyMarkup = sourceMessage.replyMarkup,
|
||||
content = content,
|
||||
senderBot = sourceMessage.senderBot,
|
||||
guestBotCallerUser = sourceMessage.guestBotCallerUser,
|
||||
guestBotCallerChat = sourceMessage.guestBotCallerChat,
|
||||
mediaGroupId = sourceMessage.mediaGroupId,
|
||||
senderBoostsCount = sourceMessage.senderBoostsCount,
|
||||
fromOffline = sourceMessage.fromOffline,
|
||||
@@ -284,23 +290,5 @@ fun <T : MediaGroupPartContent> List<CommonContentMessage<T>>.asMediaGroupMessag
|
||||
fromOffline = sourceMessage.fromOffline,
|
||||
cost = sourceMessage.cost,
|
||||
)
|
||||
is AnswerGuestContentMessage -> AnswerGuestContentMessageImpl(
|
||||
messageId = sourceMessage.messageId,
|
||||
from = sourceMessage.user,
|
||||
chat = sourceMessage.chat,
|
||||
content = content,
|
||||
date = sourceMessage.date,
|
||||
editDate = sourceMessage.editDate,
|
||||
hasProtectedContent = sourceMessage.hasProtectedContent,
|
||||
forwardOrigin = sourceMessage.forwardOrigin,
|
||||
replyInfo = sourceMessage.replyInfo,
|
||||
replyMarkup = sourceMessage.replyMarkup,
|
||||
senderBot = sourceMessage.senderBot,
|
||||
mediaGroupId = sourceMessage.mediaGroupId,
|
||||
guestBotCallerUser = sourceMessage.guestBotCallerUser,
|
||||
guestBotCallerChat = sourceMessage.guestBotCallerChat,
|
||||
fromOffline = sourceMessage.fromOffline,
|
||||
cost = sourceMessage.cost,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user