mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI.git
synced 2025-09-04 23:59:55 +00:00
add support of paid messages
This commit is contained in:
@@ -5,6 +5,7 @@ package dev.inmo.tgbotapi.extensions.behaviour_builder.expectations
|
|||||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.BehaviourContext
|
import dev.inmo.tgbotapi.extensions.behaviour_builder.BehaviourContext
|
||||||
import dev.inmo.tgbotapi.extensions.utils.*
|
import dev.inmo.tgbotapi.extensions.utils.*
|
||||||
import dev.inmo.tgbotapi.requests.abstracts.Request
|
import dev.inmo.tgbotapi.requests.abstracts.Request
|
||||||
|
import dev.inmo.tgbotapi.types.PaidMessagePriceChanged
|
||||||
import dev.inmo.tgbotapi.types.chat.ChatBackground
|
import dev.inmo.tgbotapi.types.chat.ChatBackground
|
||||||
import dev.inmo.tgbotapi.types.giveaway.GiveawayCreated
|
import dev.inmo.tgbotapi.types.giveaway.GiveawayCreated
|
||||||
import dev.inmo.tgbotapi.types.giveaway.GiveawayPrivateResults
|
import dev.inmo.tgbotapi.types.giveaway.GiveawayPrivateResults
|
||||||
@@ -248,3 +249,8 @@ suspend fun BehaviourContext.waitGiveawayCompletedWithPrivateWinners(
|
|||||||
initRequest: Request<*>? = null,
|
initRequest: Request<*>? = null,
|
||||||
errorFactory: NullableRequestBuilder<*> = { null }
|
errorFactory: NullableRequestBuilder<*> = { null }
|
||||||
) = waitGiveawayCompleted(initRequest, errorFactory)
|
) = waitGiveawayCompleted(initRequest, errorFactory)
|
||||||
|
|
||||||
|
suspend fun BehaviourContext.waitPaidMessagePriceChanged(
|
||||||
|
initRequest: Request<*>? = null,
|
||||||
|
errorFactory: NullableRequestBuilder<*> = { null }
|
||||||
|
) = waitEvents<PaidMessagePriceChanged>(initRequest, errorFactory)
|
||||||
|
@@ -5,6 +5,7 @@ package dev.inmo.tgbotapi.extensions.behaviour_builder.expectations
|
|||||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.BehaviourContext
|
import dev.inmo.tgbotapi.extensions.behaviour_builder.BehaviourContext
|
||||||
import dev.inmo.tgbotapi.extensions.utils.*
|
import dev.inmo.tgbotapi.extensions.utils.*
|
||||||
import dev.inmo.tgbotapi.requests.abstracts.Request
|
import dev.inmo.tgbotapi.requests.abstracts.Request
|
||||||
|
import dev.inmo.tgbotapi.types.PaidMessagePriceChanged
|
||||||
import dev.inmo.tgbotapi.types.chat.ChatBackground
|
import dev.inmo.tgbotapi.types.chat.ChatBackground
|
||||||
import dev.inmo.tgbotapi.types.message.ChatEvents.*
|
import dev.inmo.tgbotapi.types.message.ChatEvents.*
|
||||||
import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.*
|
import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.*
|
||||||
@@ -224,3 +225,8 @@ suspend fun BehaviourContext.waitChatBackgroundSetEventsMessages(
|
|||||||
initRequest: Request<*>? = null,
|
initRequest: Request<*>? = null,
|
||||||
errorFactory: NullableRequestBuilder<*> = { null }
|
errorFactory: NullableRequestBuilder<*> = { null }
|
||||||
) = waitEventsMessages<ChatBackground>(initRequest, errorFactory)
|
) = waitEventsMessages<ChatBackground>(initRequest, errorFactory)
|
||||||
|
|
||||||
|
suspend fun BehaviourContext.waitPaidMessagePriceChangedMessages(
|
||||||
|
initRequest: Request<*>? = null,
|
||||||
|
errorFactory: NullableRequestBuilder<*> = { null }
|
||||||
|
) = waitEventsMessages<PaidMessagePriceChanged>(initRequest, errorFactory)
|
||||||
|
@@ -10,6 +10,7 @@ import dev.inmo.tgbotapi.extensions.behaviour_builder.utils.marker_factories.Mar
|
|||||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.utils.times
|
import dev.inmo.tgbotapi.extensions.behaviour_builder.utils.times
|
||||||
import dev.inmo.tgbotapi.extensions.utils.baseSentMessageUpdateOrNull
|
import dev.inmo.tgbotapi.extensions.utils.baseSentMessageUpdateOrNull
|
||||||
import dev.inmo.tgbotapi.extensions.utils.chatEventMessageOrNull
|
import dev.inmo.tgbotapi.extensions.utils.chatEventMessageOrNull
|
||||||
|
import dev.inmo.tgbotapi.types.PaidMessagePriceChanged
|
||||||
import dev.inmo.tgbotapi.types.chat.ChatBackground
|
import dev.inmo.tgbotapi.types.chat.ChatBackground
|
||||||
import dev.inmo.tgbotapi.types.giveaway.GiveawayCreated
|
import dev.inmo.tgbotapi.types.giveaway.GiveawayCreated
|
||||||
import dev.inmo.tgbotapi.types.giveaway.GiveawayPrivateResults
|
import dev.inmo.tgbotapi.types.giveaway.GiveawayPrivateResults
|
||||||
@@ -1045,3 +1046,25 @@ suspend fun <BC : BehaviourContext> BC.onGiveawayCompletedWithPrivateWinners(
|
|||||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatEventMessage<GiveawayPrivateResults>>? = null,
|
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatEventMessage<GiveawayPrivateResults>>? = null,
|
||||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatEventMessage<GiveawayPrivateResults>>
|
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatEventMessage<GiveawayPrivateResults>>
|
||||||
) = onGiveawayCompleted(initialFilter, subcontextUpdatesFilter, markerFactory, additionalSubcontextInitialAction, scenarioReceiver)
|
) = onGiveawayCompleted(initialFilter, subcontextUpdatesFilter, markerFactory, additionalSubcontextInitialAction, scenarioReceiver)
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param initialFilter This filter will be called to remove unnecessary data BEFORE [scenarioReceiver] call
|
||||||
|
* @param subcontextUpdatesFilter This filter will be applied to each update inside of [scenarioReceiver]. For example,
|
||||||
|
* this filter will be used if you will call [dev.inmo.tgbotapi.extensions.behaviour_builder.expectations.waitContentMessage].
|
||||||
|
* Use [dev.inmo.tgbotapi.extensions.behaviour_builder.BehaviourContextAndTwoTypesReceiver] function to create your own.
|
||||||
|
* Use [dev.inmo.tgbotapi.extensions.behaviour_builder.utils.plus] or [dev.inmo.tgbotapi.extensions.behaviour_builder.utils.times]
|
||||||
|
* to combinate several filters
|
||||||
|
* @param [markerFactory] **Pass null to handle requests fully parallel**. Will be used to identify different "stream".
|
||||||
|
* [scenarioReceiver] will be called synchronously in one "stream". Output of [markerFactory] will be used as a key for
|
||||||
|
* "stream"
|
||||||
|
* @param scenarioReceiver Main callback which will be used to handle incoming data if [initialFilter] will pass that
|
||||||
|
* data
|
||||||
|
*/
|
||||||
|
suspend fun <BC : BehaviourContext> BC.onPaidMessagePriceChanged(
|
||||||
|
initialFilter: SimpleFilter<ChatEventMessage<PaidMessagePriceChanged>>? = null,
|
||||||
|
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatEventMessage<PaidMessagePriceChanged>, Update>? = MessageFilterByChat,
|
||||||
|
markerFactory: MarkerFactory<in ChatEventMessage<PaidMessagePriceChanged>, Any>? = ByChatMessageMarkerFactory,
|
||||||
|
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatEventMessage<PaidMessagePriceChanged>>? = null,
|
||||||
|
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatEventMessage<PaidMessagePriceChanged>>
|
||||||
|
) = onEventWithCustomChatEventMessage(initialFilter, subcontextUpdatesFilter, markerFactory, additionalSubcontextInitialAction, scenarioReceiver)
|
||||||
|
@@ -604,6 +604,9 @@ const val mediaField = "media"
|
|||||||
|
|
||||||
const val mainFrameTimestampField = "main_frame_timestamp"
|
const val mainFrameTimestampField = "main_frame_timestamp"
|
||||||
|
|
||||||
|
const val paidMessageStarCountField = "paid_message_star_count"
|
||||||
|
const val paidStarCountField = "paid_star_count"
|
||||||
|
|
||||||
const val disableEditMessageField = "disable_edit_message"
|
const val disableEditMessageField = "disable_edit_message"
|
||||||
const val scoreField = "score"
|
const val scoreField = "score"
|
||||||
const val forceField = "force"
|
const val forceField = "force"
|
||||||
|
@@ -0,0 +1,11 @@
|
|||||||
|
package dev.inmo.tgbotapi.types
|
||||||
|
|
||||||
|
import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.CommonEvent
|
||||||
|
import kotlinx.serialization.SerialName
|
||||||
|
import kotlinx.serialization.Serializable
|
||||||
|
|
||||||
|
@Serializable
|
||||||
|
data class PaidMessagePriceChanged(
|
||||||
|
@SerialName(paidMessageStarCountField)
|
||||||
|
val cost: Int
|
||||||
|
) : CommonEvent
|
@@ -11,6 +11,7 @@ import dev.inmo.tgbotapi.types.message.abstracts.AccessibleMessage
|
|||||||
import dev.inmo.tgbotapi.types.message.abstracts.BusinessContentMessage
|
import dev.inmo.tgbotapi.types.message.abstracts.BusinessContentMessage
|
||||||
import dev.inmo.tgbotapi.types.message.abstracts.PrivateContentMessage
|
import dev.inmo.tgbotapi.types.message.abstracts.PrivateContentMessage
|
||||||
import dev.inmo.tgbotapi.types.message.content.MessageContent
|
import dev.inmo.tgbotapi.types.message.content.MessageContent
|
||||||
|
import kotlinx.serialization.SerialName
|
||||||
|
|
||||||
data class BusinessContentMessageImpl<T: MessageContent>(
|
data class BusinessContentMessageImpl<T: MessageContent>(
|
||||||
override val messageId: MessageId,
|
override val messageId: MessageId,
|
||||||
@@ -28,6 +29,8 @@ data class BusinessContentMessageImpl<T: MessageContent>(
|
|||||||
override val mediaGroupId: MediaGroupId?,
|
override val mediaGroupId: MediaGroupId?,
|
||||||
override val senderBusinessBot: PreviewBot?,
|
override val senderBusinessBot: PreviewBot?,
|
||||||
override val fromOffline: Boolean,
|
override val fromOffline: Boolean,
|
||||||
|
@SerialName(paidMessageStarCountField)
|
||||||
|
override val cost: Int? = null,
|
||||||
) : BusinessContentMessage<T> {
|
) : BusinessContentMessage<T> {
|
||||||
constructor(
|
constructor(
|
||||||
messageId: MessageId,
|
messageId: MessageId,
|
||||||
|
@@ -9,6 +9,7 @@ import dev.inmo.tgbotapi.types.chat.PreviewChat
|
|||||||
import dev.inmo.tgbotapi.types.chat.User
|
import dev.inmo.tgbotapi.types.chat.User
|
||||||
import dev.inmo.tgbotapi.types.message.abstracts.*
|
import dev.inmo.tgbotapi.types.message.abstracts.*
|
||||||
import dev.inmo.tgbotapi.types.message.content.MessageContent
|
import dev.inmo.tgbotapi.types.message.content.MessageContent
|
||||||
|
import kotlinx.serialization.SerialName
|
||||||
|
|
||||||
data class ChannelContentMessageImpl<T: MessageContent>(
|
data class ChannelContentMessageImpl<T: MessageContent>(
|
||||||
override val messageId: MessageId,
|
override val messageId: MessageId,
|
||||||
@@ -25,6 +26,8 @@ data class ChannelContentMessageImpl<T: MessageContent>(
|
|||||||
override val authorSignature: AuthorSignature?,
|
override val authorSignature: AuthorSignature?,
|
||||||
override val mediaGroupId: MediaGroupId?,
|
override val mediaGroupId: MediaGroupId?,
|
||||||
override val fromOffline: Boolean,
|
override val fromOffline: Boolean,
|
||||||
|
@SerialName(paidMessageStarCountField)
|
||||||
|
override val cost: Int? = null,
|
||||||
) : ChannelContentMessage<T> {
|
) : ChannelContentMessage<T> {
|
||||||
constructor(
|
constructor(
|
||||||
messageId: MessageId,
|
messageId: MessageId,
|
||||||
|
@@ -8,6 +8,7 @@ import dev.inmo.tgbotapi.types.chat.CommonBot
|
|||||||
import dev.inmo.tgbotapi.types.chat.User
|
import dev.inmo.tgbotapi.types.chat.User
|
||||||
import dev.inmo.tgbotapi.types.message.abstracts.*
|
import dev.inmo.tgbotapi.types.message.abstracts.*
|
||||||
import dev.inmo.tgbotapi.types.message.content.MessageContent
|
import dev.inmo.tgbotapi.types.message.content.MessageContent
|
||||||
|
import kotlinx.serialization.SerialName
|
||||||
|
|
||||||
data class ConnectedFromChannelGroupContentMessageImpl<T : MessageContent>(
|
data class ConnectedFromChannelGroupContentMessageImpl<T : MessageContent>(
|
||||||
override val chat: PreviewGroupChat,
|
override val chat: PreviewGroupChat,
|
||||||
@@ -24,6 +25,8 @@ data class ConnectedFromChannelGroupContentMessageImpl<T : MessageContent>(
|
|||||||
override val authorSignature: AuthorSignature?,
|
override val authorSignature: AuthorSignature?,
|
||||||
override val mediaGroupId: MediaGroupId?,
|
override val mediaGroupId: MediaGroupId?,
|
||||||
override val fromOffline: Boolean,
|
override val fromOffline: Boolean,
|
||||||
|
@SerialName(paidMessageStarCountField)
|
||||||
|
override val cost: Int? = null,
|
||||||
) : ConnectedFromChannelGroupContentMessage<T> {
|
) : ConnectedFromChannelGroupContentMessage<T> {
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
@@ -41,8 +44,23 @@ data class ConnectedFromChannelGroupContentMessageImpl<T : MessageContent>(
|
|||||||
authorSignature: AuthorSignature?,
|
authorSignature: AuthorSignature?,
|
||||||
mediaGroupId: MediaGroupId?,
|
mediaGroupId: MediaGroupId?,
|
||||||
fromOffline: Boolean,
|
fromOffline: Boolean,
|
||||||
|
cost: Int? = null,
|
||||||
) : this(
|
) : this(
|
||||||
chat, channel, messageId, date, forwardInfo.messageOrigin(), editDate, hasProtectedContent, replyTo ?.let { ReplyInfo.Internal(it) }, replyMarkup, content, senderBot, authorSignature, mediaGroupId, fromOffline
|
chat = chat,
|
||||||
|
channel = channel,
|
||||||
|
messageId = messageId,
|
||||||
|
date = date,
|
||||||
|
forwardOrigin = forwardInfo.messageOrigin(),
|
||||||
|
editDate = editDate,
|
||||||
|
hasProtectedContent = hasProtectedContent,
|
||||||
|
replyInfo = replyTo ?.let { ReplyInfo.Internal(it) },
|
||||||
|
replyMarkup = replyMarkup,
|
||||||
|
content = content,
|
||||||
|
senderBot = senderBot,
|
||||||
|
authorSignature = authorSignature,
|
||||||
|
mediaGroupId = mediaGroupId,
|
||||||
|
fromOffline = fromOffline,
|
||||||
|
cost = cost,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -61,6 +79,8 @@ data class UnconnectedFromChannelGroupContentMessageImpl<T: MessageContent>(
|
|||||||
override val authorSignature: AuthorSignature?,
|
override val authorSignature: AuthorSignature?,
|
||||||
override val mediaGroupId: MediaGroupId?,
|
override val mediaGroupId: MediaGroupId?,
|
||||||
override val fromOffline: Boolean,
|
override val fromOffline: Boolean,
|
||||||
|
@SerialName(paidMessageStarCountField)
|
||||||
|
override val cost: Int? = null,
|
||||||
) : UnconnectedFromChannelGroupContentMessage<T> {
|
) : UnconnectedFromChannelGroupContentMessage<T> {
|
||||||
constructor(
|
constructor(
|
||||||
chat: PreviewGroupChat,
|
chat: PreviewGroupChat,
|
||||||
@@ -77,8 +97,23 @@ data class UnconnectedFromChannelGroupContentMessageImpl<T: MessageContent>(
|
|||||||
authorSignature: AuthorSignature?,
|
authorSignature: AuthorSignature?,
|
||||||
mediaGroupId: MediaGroupId?,
|
mediaGroupId: MediaGroupId?,
|
||||||
fromOffline: Boolean,
|
fromOffline: Boolean,
|
||||||
|
cost: Int? = null,
|
||||||
) : this(
|
) : this(
|
||||||
chat, channel, messageId, date, forwardInfo.messageOrigin(), editDate, hasProtectedContent, replyTo ?.let { ReplyInfo.Internal(it) }, replyMarkup, content, senderBot, authorSignature, mediaGroupId, fromOffline
|
chat = chat,
|
||||||
|
channel = channel,
|
||||||
|
messageId = messageId,
|
||||||
|
date = date,
|
||||||
|
forwardOrigin = forwardInfo.messageOrigin(),
|
||||||
|
editDate = editDate,
|
||||||
|
hasProtectedContent = hasProtectedContent,
|
||||||
|
replyInfo = replyTo ?.let { ReplyInfo.Internal(it) },
|
||||||
|
replyMarkup = replyMarkup,
|
||||||
|
content = content,
|
||||||
|
senderBot = senderBot,
|
||||||
|
authorSignature = authorSignature,
|
||||||
|
mediaGroupId = mediaGroupId,
|
||||||
|
fromOffline = fromOffline,
|
||||||
|
cost = cost,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -96,6 +131,8 @@ data class AnonymousGroupContentMessageImpl<T : MessageContent>(
|
|||||||
override val authorSignature: AuthorSignature?,
|
override val authorSignature: AuthorSignature?,
|
||||||
override val mediaGroupId: MediaGroupId?,
|
override val mediaGroupId: MediaGroupId?,
|
||||||
override val fromOffline: Boolean,
|
override val fromOffline: Boolean,
|
||||||
|
@SerialName(paidMessageStarCountField)
|
||||||
|
override val cost: Int? = null,
|
||||||
) : AnonymousGroupContentMessage<T> {
|
) : AnonymousGroupContentMessage<T> {
|
||||||
constructor(
|
constructor(
|
||||||
chat: PreviewGroupChat,
|
chat: PreviewGroupChat,
|
||||||
@@ -111,8 +148,22 @@ data class AnonymousGroupContentMessageImpl<T : MessageContent>(
|
|||||||
authorSignature: AuthorSignature?,
|
authorSignature: AuthorSignature?,
|
||||||
mediaGroupId: MediaGroupId?,
|
mediaGroupId: MediaGroupId?,
|
||||||
fromOffline: Boolean,
|
fromOffline: Boolean,
|
||||||
|
cost: Int? = null,
|
||||||
) : this(
|
) : this(
|
||||||
chat, messageId, date, forwardInfo.messageOrigin(), editDate, hasProtectedContent, replyTo ?.let { ReplyInfo.Internal(it) }, replyMarkup, content, senderBot, authorSignature, mediaGroupId, fromOffline
|
chat = chat,
|
||||||
|
messageId = messageId,
|
||||||
|
date = date,
|
||||||
|
forwardOrigin = forwardInfo.messageOrigin(),
|
||||||
|
editDate = editDate,
|
||||||
|
hasProtectedContent = hasProtectedContent,
|
||||||
|
replyInfo = replyTo ?.let { ReplyInfo.Internal(it) },
|
||||||
|
replyMarkup = replyMarkup,
|
||||||
|
content = content,
|
||||||
|
senderBot = senderBot,
|
||||||
|
authorSignature = authorSignature,
|
||||||
|
mediaGroupId = mediaGroupId,
|
||||||
|
fromOffline = fromOffline,
|
||||||
|
cost = cost,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -131,6 +182,8 @@ data class CommonGroupContentMessageImpl<T : MessageContent>(
|
|||||||
override val mediaGroupId: MediaGroupId?,
|
override val mediaGroupId: MediaGroupId?,
|
||||||
override val senderBoostsCount: Int?,
|
override val senderBoostsCount: Int?,
|
||||||
override val fromOffline: Boolean,
|
override val fromOffline: Boolean,
|
||||||
|
@SerialName(paidMessageStarCountField)
|
||||||
|
override val cost: Int? = null,
|
||||||
) : CommonGroupContentMessage<T> {
|
) : CommonGroupContentMessage<T> {
|
||||||
constructor(
|
constructor(
|
||||||
chat: PreviewGroupChat,
|
chat: PreviewGroupChat,
|
||||||
@@ -147,8 +200,23 @@ data class CommonGroupContentMessageImpl<T : MessageContent>(
|
|||||||
mediaGroupId: MediaGroupId?,
|
mediaGroupId: MediaGroupId?,
|
||||||
senderBoostsCount: Int?,
|
senderBoostsCount: Int?,
|
||||||
fromOffline: Boolean,
|
fromOffline: Boolean,
|
||||||
|
cost: Int? = null,
|
||||||
) : this(
|
) : this(
|
||||||
chat, messageId, from, date, forwardInfo.messageOrigin(), editDate, hasProtectedContent, replyTo ?.let { ReplyInfo.Internal(it) }, replyMarkup, content, senderBot, mediaGroupId, senderBoostsCount, fromOffline
|
chat = chat,
|
||||||
|
messageId = messageId,
|
||||||
|
from = from,
|
||||||
|
date = date,
|
||||||
|
forwardOrigin = forwardInfo.messageOrigin(),
|
||||||
|
editDate = editDate,
|
||||||
|
hasProtectedContent = hasProtectedContent,
|
||||||
|
replyInfo = replyTo ?.let { ReplyInfo.Internal(it) },
|
||||||
|
replyMarkup = replyMarkup,
|
||||||
|
content = content,
|
||||||
|
senderBot = senderBot,
|
||||||
|
mediaGroupId = mediaGroupId,
|
||||||
|
senderBoostsCount = senderBoostsCount,
|
||||||
|
fromOffline = fromOffline,
|
||||||
|
cost = cost,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -168,6 +236,8 @@ data class FromChannelForumContentMessageImpl<T: MessageContent>(
|
|||||||
override val authorSignature: AuthorSignature?,
|
override val authorSignature: AuthorSignature?,
|
||||||
override val mediaGroupId: MediaGroupId?,
|
override val mediaGroupId: MediaGroupId?,
|
||||||
override val fromOffline: Boolean,
|
override val fromOffline: Boolean,
|
||||||
|
@SerialName(paidMessageStarCountField)
|
||||||
|
override val cost: Int? = null,
|
||||||
) : FromChannelForumContentMessage<T> {
|
) : FromChannelForumContentMessage<T> {
|
||||||
constructor(
|
constructor(
|
||||||
chat: PreviewForumChat,
|
chat: PreviewForumChat,
|
||||||
@@ -185,8 +255,24 @@ data class FromChannelForumContentMessageImpl<T: MessageContent>(
|
|||||||
authorSignature: AuthorSignature?,
|
authorSignature: AuthorSignature?,
|
||||||
mediaGroupId: MediaGroupId?,
|
mediaGroupId: MediaGroupId?,
|
||||||
fromOffline: Boolean,
|
fromOffline: Boolean,
|
||||||
|
cost: Int? = null,
|
||||||
) : this(
|
) : this(
|
||||||
chat, channel, messageId, threadId, date, forwardInfo.messageOrigin(), editDate, hasProtectedContent, replyTo ?.let { ReplyInfo.Internal(it) }, replyMarkup, content, senderBot, authorSignature, mediaGroupId, fromOffline
|
chat = chat,
|
||||||
|
channel = channel,
|
||||||
|
messageId = messageId,
|
||||||
|
threadId = threadId,
|
||||||
|
date = date,
|
||||||
|
forwardOrigin = forwardInfo.messageOrigin(),
|
||||||
|
editDate = editDate,
|
||||||
|
hasProtectedContent = hasProtectedContent,
|
||||||
|
replyInfo = replyTo ?.let { ReplyInfo.Internal(it) },
|
||||||
|
replyMarkup = replyMarkup,
|
||||||
|
content = content,
|
||||||
|
senderBot = senderBot,
|
||||||
|
authorSignature = authorSignature,
|
||||||
|
mediaGroupId = mediaGroupId,
|
||||||
|
fromOffline = fromOffline,
|
||||||
|
cost = cost,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -205,6 +291,8 @@ data class AnonymousForumContentMessageImpl<T : MessageContent>(
|
|||||||
override val authorSignature: AuthorSignature?,
|
override val authorSignature: AuthorSignature?,
|
||||||
override val mediaGroupId: MediaGroupId?,
|
override val mediaGroupId: MediaGroupId?,
|
||||||
override val fromOffline: Boolean,
|
override val fromOffline: Boolean,
|
||||||
|
@SerialName(paidMessageStarCountField)
|
||||||
|
override val cost: Int? = null,
|
||||||
) : AnonymousForumContentMessage<T> {
|
) : AnonymousForumContentMessage<T> {
|
||||||
constructor(
|
constructor(
|
||||||
chat: PreviewForumChat,
|
chat: PreviewForumChat,
|
||||||
@@ -221,8 +309,23 @@ data class AnonymousForumContentMessageImpl<T : MessageContent>(
|
|||||||
authorSignature: AuthorSignature?,
|
authorSignature: AuthorSignature?,
|
||||||
mediaGroupId: MediaGroupId?,
|
mediaGroupId: MediaGroupId?,
|
||||||
fromOffline: Boolean,
|
fromOffline: Boolean,
|
||||||
|
cost: Int? = null,
|
||||||
) : this(
|
) : this(
|
||||||
chat, messageId, threadId, date, forwardInfo.messageOrigin(), editDate, hasProtectedContent, replyTo ?.let { ReplyInfo.Internal(it) }, replyMarkup, content, senderBot, authorSignature, mediaGroupId, fromOffline
|
chat = chat,
|
||||||
|
messageId = messageId,
|
||||||
|
threadId = threadId,
|
||||||
|
date = date,
|
||||||
|
forwardOrigin = forwardInfo.messageOrigin(),
|
||||||
|
editDate = editDate,
|
||||||
|
hasProtectedContent = hasProtectedContent,
|
||||||
|
replyInfo = replyTo ?.let { ReplyInfo.Internal(it) },
|
||||||
|
replyMarkup = replyMarkup,
|
||||||
|
content = content,
|
||||||
|
senderBot = senderBot,
|
||||||
|
authorSignature = authorSignature,
|
||||||
|
mediaGroupId = mediaGroupId,
|
||||||
|
fromOffline = fromOffline,
|
||||||
|
cost = cost,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -242,6 +345,8 @@ data class CommonForumContentMessageImpl<T : MessageContent>(
|
|||||||
override val mediaGroupId: MediaGroupId?,
|
override val mediaGroupId: MediaGroupId?,
|
||||||
override val senderBoostsCount: Int?,
|
override val senderBoostsCount: Int?,
|
||||||
override val fromOffline: Boolean,
|
override val fromOffline: Boolean,
|
||||||
|
@SerialName(paidMessageStarCountField)
|
||||||
|
override val cost: Int? = null,
|
||||||
) : CommonForumContentMessage<T> {
|
) : CommonForumContentMessage<T> {
|
||||||
constructor(
|
constructor(
|
||||||
chat: PreviewForumChat,
|
chat: PreviewForumChat,
|
||||||
@@ -259,7 +364,23 @@ data class CommonForumContentMessageImpl<T : MessageContent>(
|
|||||||
mediaGroupId: MediaGroupId?,
|
mediaGroupId: MediaGroupId?,
|
||||||
senderBoostsCount: Int?,
|
senderBoostsCount: Int?,
|
||||||
fromOffline: Boolean,
|
fromOffline: Boolean,
|
||||||
|
cost: Int? = null,
|
||||||
) : this(
|
) : this(
|
||||||
chat, messageId, threadId, from, date, forwardInfo.messageOrigin(), editDate, hasProtectedContent, replyTo ?.let { ReplyInfo.Internal(it) }, replyMarkup, content, senderBot, mediaGroupId, senderBoostsCount, fromOffline
|
chat = chat,
|
||||||
|
messageId = messageId,
|
||||||
|
threadId = threadId,
|
||||||
|
from = from,
|
||||||
|
date = date,
|
||||||
|
forwardOrigin = forwardInfo.messageOrigin(),
|
||||||
|
editDate = editDate,
|
||||||
|
hasProtectedContent = hasProtectedContent,
|
||||||
|
replyInfo = replyTo ?.let { ReplyInfo.Internal(it) },
|
||||||
|
replyMarkup = replyMarkup,
|
||||||
|
content = content,
|
||||||
|
senderBot = senderBot,
|
||||||
|
mediaGroupId = mediaGroupId,
|
||||||
|
senderBoostsCount = senderBoostsCount,
|
||||||
|
fromOffline = fromOffline,
|
||||||
|
cost = cost,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@@ -9,6 +9,7 @@ import dev.inmo.tgbotapi.types.chat.User
|
|||||||
import dev.inmo.tgbotapi.types.message.abstracts.AccessibleMessage
|
import dev.inmo.tgbotapi.types.message.abstracts.AccessibleMessage
|
||||||
import dev.inmo.tgbotapi.types.message.abstracts.PrivateContentMessage
|
import dev.inmo.tgbotapi.types.message.abstracts.PrivateContentMessage
|
||||||
import dev.inmo.tgbotapi.types.message.content.MessageContent
|
import dev.inmo.tgbotapi.types.message.content.MessageContent
|
||||||
|
import kotlinx.serialization.SerialName
|
||||||
|
|
||||||
data class PrivateContentMessageImpl<T: MessageContent>(
|
data class PrivateContentMessageImpl<T: MessageContent>(
|
||||||
override val messageId: MessageId,
|
override val messageId: MessageId,
|
||||||
@@ -24,7 +25,9 @@ data class PrivateContentMessageImpl<T: MessageContent>(
|
|||||||
override val senderBot: CommonBot?,
|
override val senderBot: CommonBot?,
|
||||||
override val mediaGroupId: MediaGroupId?,
|
override val mediaGroupId: MediaGroupId?,
|
||||||
override val fromOffline: Boolean,
|
override val fromOffline: Boolean,
|
||||||
override val effectId: EffectId?
|
override val effectId: EffectId?,
|
||||||
|
@SerialName(paidStarCountField)
|
||||||
|
override val cost: Int? = null
|
||||||
) : PrivateContentMessage<T> {
|
) : PrivateContentMessage<T> {
|
||||||
constructor(
|
constructor(
|
||||||
messageId: MessageId,
|
messageId: MessageId,
|
||||||
|
@@ -109,6 +109,8 @@ internal data class RawMessage(
|
|||||||
|
|
||||||
private val is_from_offline: Boolean = false,
|
private val is_from_offline: Boolean = false,
|
||||||
|
|
||||||
|
private val paid_star_count: Int? = null,
|
||||||
|
|
||||||
// Voice Chat Service Messages
|
// Voice Chat Service Messages
|
||||||
private val video_chat_scheduled: VideoChatScheduled? = null,
|
private val video_chat_scheduled: VideoChatScheduled? = null,
|
||||||
private val video_chat_started: VideoChatStarted? = null,
|
private val video_chat_started: VideoChatStarted? = null,
|
||||||
@@ -160,6 +162,8 @@ internal data class RawMessage(
|
|||||||
private val giveaway: Giveaway? = null,
|
private val giveaway: Giveaway? = null,
|
||||||
private val giveaway_winners: GiveawayPublicResults? = null,
|
private val giveaway_winners: GiveawayPublicResults? = null,
|
||||||
private val giveaway_completed: GiveawayPrivateResults? = null,
|
private val giveaway_completed: GiveawayPrivateResults? = null,
|
||||||
|
|
||||||
|
private val paid_message_price_changed: PaidMessagePriceChanged? = null
|
||||||
) {
|
) {
|
||||||
private val checkedFrom = from ?.takeIf { !it.isFakeTelegramUser() }
|
private val checkedFrom = from ?.takeIf { !it.isFakeTelegramUser() }
|
||||||
private val content: MessageContent? by lazy {
|
private val content: MessageContent? by lazy {
|
||||||
@@ -282,6 +286,7 @@ internal data class RawMessage(
|
|||||||
giveaway_completed != null -> giveaway_completed
|
giveaway_completed != null -> giveaway_completed
|
||||||
boost_added != null -> boost_added
|
boost_added != null -> boost_added
|
||||||
chat_background_set != null -> chat_background_set
|
chat_background_set != null -> chat_background_set
|
||||||
|
paid_message_price_changed != null -> paid_message_price_changed
|
||||||
else -> null
|
else -> null
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -295,7 +300,7 @@ internal data class RawMessage(
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
chatEvent?.let { chatEvent ->
|
chatEvent ?.let { chatEvent ->
|
||||||
when (chat) {
|
when (chat) {
|
||||||
is PreviewSupergroupChat -> CommonSupergroupEventMessage(
|
is PreviewSupergroupChat -> CommonSupergroupEventMessage(
|
||||||
messageId,
|
messageId,
|
||||||
@@ -350,7 +355,8 @@ internal data class RawMessage(
|
|||||||
senderBot = via_bot,
|
senderBot = via_bot,
|
||||||
authorSignature = author_signature,
|
authorSignature = author_signature,
|
||||||
mediaGroupId = media_group_id,
|
mediaGroupId = media_group_id,
|
||||||
fromOffline = is_from_offline
|
fromOffline = is_from_offline,
|
||||||
|
cost = paid_star_count,
|
||||||
)
|
)
|
||||||
is PreviewForumChat -> if (messageThreadId != null) {
|
is PreviewForumChat -> if (messageThreadId != null) {
|
||||||
val chatId = ChatIdWithThreadId(
|
val chatId = ChatIdWithThreadId(
|
||||||
@@ -376,7 +382,8 @@ internal data class RawMessage(
|
|||||||
senderBot = via_bot,
|
senderBot = via_bot,
|
||||||
authorSignature = author_signature,
|
authorSignature = author_signature,
|
||||||
mediaGroupId = media_group_id,
|
mediaGroupId = media_group_id,
|
||||||
fromOffline = is_from_offline
|
fromOffline = is_from_offline,
|
||||||
|
cost = paid_star_count,
|
||||||
)
|
)
|
||||||
is PreviewGroupChat -> AnonymousForumContentMessageImpl(
|
is PreviewGroupChat -> AnonymousForumContentMessageImpl(
|
||||||
chat = actualForumChat,
|
chat = actualForumChat,
|
||||||
@@ -392,7 +399,8 @@ internal data class RawMessage(
|
|||||||
senderBot = via_bot,
|
senderBot = via_bot,
|
||||||
authorSignature = author_signature,
|
authorSignature = author_signature,
|
||||||
mediaGroupId = media_group_id,
|
mediaGroupId = media_group_id,
|
||||||
fromOffline = is_from_offline
|
fromOffline = is_from_offline,
|
||||||
|
cost = paid_star_count,
|
||||||
)
|
)
|
||||||
null -> CommonForumContentMessageImpl(
|
null -> CommonForumContentMessageImpl(
|
||||||
chat = actualForumChat,
|
chat = actualForumChat,
|
||||||
@@ -409,7 +417,8 @@ internal data class RawMessage(
|
|||||||
senderBot = via_bot,
|
senderBot = via_bot,
|
||||||
mediaGroupId = media_group_id,
|
mediaGroupId = media_group_id,
|
||||||
senderBoostsCount = sender_boost_count,
|
senderBoostsCount = sender_boost_count,
|
||||||
fromOffline = is_from_offline
|
fromOffline = is_from_offline,
|
||||||
|
cost = paid_star_count,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -429,7 +438,8 @@ internal data class RawMessage(
|
|||||||
senderBot = via_bot,
|
senderBot = via_bot,
|
||||||
authorSignature = author_signature,
|
authorSignature = author_signature,
|
||||||
mediaGroupId = media_group_id,
|
mediaGroupId = media_group_id,
|
||||||
fromOffline = is_from_offline
|
fromOffline = is_from_offline,
|
||||||
|
cost = paid_star_count,
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
UnconnectedFromChannelGroupContentMessageImpl(
|
UnconnectedFromChannelGroupContentMessageImpl(
|
||||||
@@ -446,7 +456,8 @@ internal data class RawMessage(
|
|||||||
senderBot = via_bot,
|
senderBot = via_bot,
|
||||||
authorSignature = author_signature,
|
authorSignature = author_signature,
|
||||||
mediaGroupId = media_group_id,
|
mediaGroupId = media_group_id,
|
||||||
fromOffline = is_from_offline
|
fromOffline = is_from_offline,
|
||||||
|
cost = paid_star_count,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
is GroupChat -> AnonymousGroupContentMessageImpl(
|
is GroupChat -> AnonymousGroupContentMessageImpl(
|
||||||
@@ -462,7 +473,8 @@ internal data class RawMessage(
|
|||||||
senderBot = via_bot,
|
senderBot = via_bot,
|
||||||
authorSignature = author_signature,
|
authorSignature = author_signature,
|
||||||
mediaGroupId = media_group_id,
|
mediaGroupId = media_group_id,
|
||||||
fromOffline = is_from_offline
|
fromOffline = is_from_offline,
|
||||||
|
cost = paid_star_count,
|
||||||
)
|
)
|
||||||
null -> CommonGroupContentMessageImpl(
|
null -> CommonGroupContentMessageImpl(
|
||||||
chat = chat,
|
chat = chat,
|
||||||
@@ -478,7 +490,8 @@ internal data class RawMessage(
|
|||||||
senderBot = via_bot,
|
senderBot = via_bot,
|
||||||
mediaGroupId = media_group_id,
|
mediaGroupId = media_group_id,
|
||||||
senderBoostsCount = sender_boost_count,
|
senderBoostsCount = sender_boost_count,
|
||||||
fromOffline = is_from_offline
|
fromOffline = is_from_offline,
|
||||||
|
cost = paid_star_count,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -498,7 +511,8 @@ internal data class RawMessage(
|
|||||||
senderBot = via_bot,
|
senderBot = via_bot,
|
||||||
authorSignature = author_signature,
|
authorSignature = author_signature,
|
||||||
mediaGroupId = media_group_id,
|
mediaGroupId = media_group_id,
|
||||||
fromOffline = is_from_offline
|
fromOffline = is_from_offline,
|
||||||
|
cost = paid_star_count,
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
UnconnectedFromChannelGroupContentMessageImpl(
|
UnconnectedFromChannelGroupContentMessageImpl(
|
||||||
@@ -515,7 +529,8 @@ internal data class RawMessage(
|
|||||||
senderBot = via_bot,
|
senderBot = via_bot,
|
||||||
authorSignature = author_signature,
|
authorSignature = author_signature,
|
||||||
mediaGroupId = media_group_id,
|
mediaGroupId = media_group_id,
|
||||||
fromOffline = is_from_offline
|
fromOffline = is_from_offline,
|
||||||
|
cost = paid_star_count,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
is PreviewGroupChat -> AnonymousGroupContentMessageImpl(
|
is PreviewGroupChat -> AnonymousGroupContentMessageImpl(
|
||||||
@@ -531,7 +546,8 @@ internal data class RawMessage(
|
|||||||
senderBot = via_bot,
|
senderBot = via_bot,
|
||||||
authorSignature = author_signature,
|
authorSignature = author_signature,
|
||||||
mediaGroupId = media_group_id,
|
mediaGroupId = media_group_id,
|
||||||
fromOffline = is_from_offline
|
fromOffline = is_from_offline,
|
||||||
|
cost = paid_star_count,
|
||||||
)
|
)
|
||||||
null -> CommonGroupContentMessageImpl(
|
null -> CommonGroupContentMessageImpl(
|
||||||
chat = chat,
|
chat = chat,
|
||||||
@@ -547,7 +563,8 @@ internal data class RawMessage(
|
|||||||
senderBot = via_bot,
|
senderBot = via_bot,
|
||||||
mediaGroupId = media_group_id,
|
mediaGroupId = media_group_id,
|
||||||
senderBoostsCount = sender_boost_count,
|
senderBoostsCount = sender_boost_count,
|
||||||
fromOffline = is_from_offline
|
fromOffline = is_from_offline,
|
||||||
|
cost = paid_star_count,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -566,7 +583,8 @@ internal data class RawMessage(
|
|||||||
senderBot = via_bot,
|
senderBot = via_bot,
|
||||||
mediaGroupId = media_group_id,
|
mediaGroupId = media_group_id,
|
||||||
fromOffline = is_from_offline,
|
fromOffline = is_from_offline,
|
||||||
effectId = effect_id
|
effectId = effect_id,
|
||||||
|
cost = paid_star_count,
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
BusinessContentMessageImpl(
|
BusinessContentMessageImpl(
|
||||||
@@ -587,18 +605,19 @@ internal data class RawMessage(
|
|||||||
senderBot = via_bot,
|
senderBot = via_bot,
|
||||||
mediaGroupId = media_group_id,
|
mediaGroupId = media_group_id,
|
||||||
senderBusinessBot = sender_business_bot,
|
senderBusinessBot = sender_business_bot,
|
||||||
fromOffline = is_from_offline
|
fromOffline = is_from_offline,
|
||||||
|
cost = paid_star_count,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
else -> error("Unknown type of chat: $chat")
|
else -> error("Unknown type of chat: $chat")
|
||||||
}
|
}
|
||||||
} ?: passport_data ?.let{
|
} ?: passport_data ?.let{
|
||||||
PassportMessage(
|
PassportMessage(
|
||||||
messageId,
|
messageId = messageId,
|
||||||
chat,
|
chat = chat,
|
||||||
checkedFrom ?: from ?: error("For passport must be provided user, but got null"),
|
from = checkedFrom ?: from ?: error("For passport must be provided user, but got null"),
|
||||||
date.asDate,
|
date = date.asDate,
|
||||||
passport_data
|
passportData = passport_data,
|
||||||
)
|
)
|
||||||
} ?: error("Was not found supported type of data")
|
} ?: error("Was not found supported type of data")
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
|
@@ -10,4 +10,5 @@ sealed interface CommonMessage<out T: MessageContent> : AccessibleMessage,
|
|||||||
PossiblyBusinessMessage,
|
PossiblyBusinessMessage,
|
||||||
PossiblyOfflineMessage,
|
PossiblyOfflineMessage,
|
||||||
PossiblyMediaGroupMessage<T>,
|
PossiblyMediaGroupMessage<T>,
|
||||||
|
PossiblyPaidMessage,
|
||||||
ContentMessage<T>
|
ContentMessage<T>
|
||||||
|
@@ -0,0 +1,5 @@
|
|||||||
|
package dev.inmo.tgbotapi.types.message.abstracts
|
||||||
|
|
||||||
|
interface PossiblyPaidMessage : Message {
|
||||||
|
val cost: Int?
|
||||||
|
}
|
@@ -29,7 +29,8 @@ fun <T : MediaGroupPartContent> List<PossiblySentViaBotCommonMessage<T>>.asMedia
|
|||||||
senderBot = sourceMessage.senderBot,
|
senderBot = sourceMessage.senderBot,
|
||||||
authorSignature = sourceMessage.authorSignature,
|
authorSignature = sourceMessage.authorSignature,
|
||||||
mediaGroupId = sourceMessage.mediaGroupId,
|
mediaGroupId = sourceMessage.mediaGroupId,
|
||||||
fromOffline = sourceMessage.fromOffline
|
fromOffline = sourceMessage.fromOffline,
|
||||||
|
cost = sourceMessage.cost,
|
||||||
)
|
)
|
||||||
is BusinessContentMessage -> BusinessContentMessageImpl(
|
is BusinessContentMessage -> BusinessContentMessageImpl(
|
||||||
messageId = sourceMessage.messageId,
|
messageId = sourceMessage.messageId,
|
||||||
@@ -46,7 +47,8 @@ fun <T : MediaGroupPartContent> List<PossiblySentViaBotCommonMessage<T>>.asMedia
|
|||||||
senderBot = sourceMessage.senderBot,
|
senderBot = sourceMessage.senderBot,
|
||||||
mediaGroupId = sourceMessage.mediaGroupId,
|
mediaGroupId = sourceMessage.mediaGroupId,
|
||||||
senderBusinessBot = sourceMessage.senderBusinessBot,
|
senderBusinessBot = sourceMessage.senderBusinessBot,
|
||||||
fromOffline = sourceMessage.fromOffline
|
fromOffline = sourceMessage.fromOffline,
|
||||||
|
cost = sourceMessage.cost,
|
||||||
)
|
)
|
||||||
is PrivateContentMessage -> PrivateContentMessageImpl(
|
is PrivateContentMessage -> PrivateContentMessageImpl(
|
||||||
messageId = sourceMessage.messageId,
|
messageId = sourceMessage.messageId,
|
||||||
@@ -62,7 +64,8 @@ fun <T : MediaGroupPartContent> List<PossiblySentViaBotCommonMessage<T>>.asMedia
|
|||||||
senderBot = sourceMessage.senderBot,
|
senderBot = sourceMessage.senderBot,
|
||||||
mediaGroupId = sourceMessage.mediaGroupId,
|
mediaGroupId = sourceMessage.mediaGroupId,
|
||||||
fromOffline = sourceMessage.fromOffline,
|
fromOffline = sourceMessage.fromOffline,
|
||||||
effectId = sourceMessage.effectId
|
effectId = sourceMessage.effectId,
|
||||||
|
cost = sourceMessage.cost,
|
||||||
)
|
)
|
||||||
is AnonymousGroupContentMessage -> AnonymousGroupContentMessageImpl(
|
is AnonymousGroupContentMessage -> AnonymousGroupContentMessageImpl(
|
||||||
chat = sourceMessage.chat,
|
chat = sourceMessage.chat,
|
||||||
@@ -77,7 +80,8 @@ fun <T : MediaGroupPartContent> List<PossiblySentViaBotCommonMessage<T>>.asMedia
|
|||||||
senderBot = sourceMessage.senderBot,
|
senderBot = sourceMessage.senderBot,
|
||||||
authorSignature = sourceMessage.authorSignature,
|
authorSignature = sourceMessage.authorSignature,
|
||||||
mediaGroupId = sourceMessage.mediaGroupId,
|
mediaGroupId = sourceMessage.mediaGroupId,
|
||||||
fromOffline = sourceMessage.fromOffline
|
fromOffline = sourceMessage.fromOffline,
|
||||||
|
cost = sourceMessage.cost,
|
||||||
)
|
)
|
||||||
is CommonGroupContentMessage -> CommonGroupContentMessageImpl(
|
is CommonGroupContentMessage -> CommonGroupContentMessageImpl(
|
||||||
chat = sourceMessage.chat,
|
chat = sourceMessage.chat,
|
||||||
@@ -93,7 +97,8 @@ fun <T : MediaGroupPartContent> List<PossiblySentViaBotCommonMessage<T>>.asMedia
|
|||||||
senderBot = sourceMessage.senderBot,
|
senderBot = sourceMessage.senderBot,
|
||||||
mediaGroupId = sourceMessage.mediaGroupId,
|
mediaGroupId = sourceMessage.mediaGroupId,
|
||||||
senderBoostsCount = sourceMessage.senderBoostsCount,
|
senderBoostsCount = sourceMessage.senderBoostsCount,
|
||||||
fromOffline = sourceMessage.fromOffline
|
fromOffline = sourceMessage.fromOffline,
|
||||||
|
cost = sourceMessage.cost,
|
||||||
)
|
)
|
||||||
is ConnectedFromChannelGroupContentMessage -> ConnectedFromChannelGroupContentMessageImpl(
|
is ConnectedFromChannelGroupContentMessage -> ConnectedFromChannelGroupContentMessageImpl(
|
||||||
chat = sourceMessage.chat,
|
chat = sourceMessage.chat,
|
||||||
@@ -109,7 +114,8 @@ fun <T : MediaGroupPartContent> List<PossiblySentViaBotCommonMessage<T>>.asMedia
|
|||||||
senderBot = sourceMessage.senderBot,
|
senderBot = sourceMessage.senderBot,
|
||||||
authorSignature = sourceMessage.authorSignature,
|
authorSignature = sourceMessage.authorSignature,
|
||||||
mediaGroupId = sourceMessage.mediaGroupId,
|
mediaGroupId = sourceMessage.mediaGroupId,
|
||||||
fromOffline = sourceMessage.fromOffline
|
fromOffline = sourceMessage.fromOffline,
|
||||||
|
cost = sourceMessage.cost,
|
||||||
)
|
)
|
||||||
is UnconnectedFromChannelGroupContentMessage -> UnconnectedFromChannelGroupContentMessageImpl(
|
is UnconnectedFromChannelGroupContentMessage -> UnconnectedFromChannelGroupContentMessageImpl(
|
||||||
chat = sourceMessage.chat,
|
chat = sourceMessage.chat,
|
||||||
@@ -125,7 +131,8 @@ fun <T : MediaGroupPartContent> List<PossiblySentViaBotCommonMessage<T>>.asMedia
|
|||||||
senderBot = sourceMessage.senderBot,
|
senderBot = sourceMessage.senderBot,
|
||||||
authorSignature = sourceMessage.authorSignature,
|
authorSignature = sourceMessage.authorSignature,
|
||||||
mediaGroupId = sourceMessage.mediaGroupId,
|
mediaGroupId = sourceMessage.mediaGroupId,
|
||||||
fromOffline = sourceMessage.fromOffline
|
fromOffline = sourceMessage.fromOffline,
|
||||||
|
cost = sourceMessage.cost,
|
||||||
)
|
)
|
||||||
is AnonymousForumContentMessage -> AnonymousForumContentMessageImpl(
|
is AnonymousForumContentMessage -> AnonymousForumContentMessageImpl(
|
||||||
chat = sourceMessage.chat,
|
chat = sourceMessage.chat,
|
||||||
@@ -141,7 +148,8 @@ fun <T : MediaGroupPartContent> List<PossiblySentViaBotCommonMessage<T>>.asMedia
|
|||||||
senderBot = sourceMessage.senderBot,
|
senderBot = sourceMessage.senderBot,
|
||||||
authorSignature = sourceMessage.authorSignature,
|
authorSignature = sourceMessage.authorSignature,
|
||||||
mediaGroupId = sourceMessage.mediaGroupId,
|
mediaGroupId = sourceMessage.mediaGroupId,
|
||||||
fromOffline = sourceMessage.fromOffline
|
fromOffline = sourceMessage.fromOffline,
|
||||||
|
cost = sourceMessage.cost,
|
||||||
)
|
)
|
||||||
is CommonForumContentMessage -> CommonForumContentMessageImpl(
|
is CommonForumContentMessage -> CommonForumContentMessageImpl(
|
||||||
chat = sourceMessage.chat,
|
chat = sourceMessage.chat,
|
||||||
@@ -158,7 +166,8 @@ fun <T : MediaGroupPartContent> List<PossiblySentViaBotCommonMessage<T>>.asMedia
|
|||||||
senderBot = sourceMessage.senderBot,
|
senderBot = sourceMessage.senderBot,
|
||||||
mediaGroupId = sourceMessage.mediaGroupId,
|
mediaGroupId = sourceMessage.mediaGroupId,
|
||||||
senderBoostsCount = sourceMessage.senderBoostsCount,
|
senderBoostsCount = sourceMessage.senderBoostsCount,
|
||||||
fromOffline = sourceMessage.fromOffline
|
fromOffline = sourceMessage.fromOffline,
|
||||||
|
cost = sourceMessage.cost,
|
||||||
)
|
)
|
||||||
is FromChannelForumContentMessage -> FromChannelForumContentMessageImpl(
|
is FromChannelForumContentMessage -> FromChannelForumContentMessageImpl(
|
||||||
chat = sourceMessage.chat,
|
chat = sourceMessage.chat,
|
||||||
@@ -175,7 +184,8 @@ fun <T : MediaGroupPartContent> List<PossiblySentViaBotCommonMessage<T>>.asMedia
|
|||||||
senderBot = sourceMessage.senderBot,
|
senderBot = sourceMessage.senderBot,
|
||||||
authorSignature = sourceMessage.authorSignature,
|
authorSignature = sourceMessage.authorSignature,
|
||||||
mediaGroupId = sourceMessage.mediaGroupId,
|
mediaGroupId = sourceMessage.mediaGroupId,
|
||||||
fromOffline = sourceMessage.fromOffline
|
fromOffline = sourceMessage.fromOffline,
|
||||||
|
cost = sourceMessage.cost,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user