diff --git a/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/expectations/WaitContent.kt b/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/expectations/WaitContent.kt index 2fe2743266..4ec872744d 100644 --- a/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/expectations/WaitContent.kt +++ b/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/expectations/WaitContent.kt @@ -139,10 +139,10 @@ suspend fun BehaviourContext.waitMediaContent( errorFactory: NullableRequestBuilder<*> = { null } ) = waitContent(initRequest, errorFactory).mapContent() -suspend fun BehaviourContext.waitScheduledGiveawayContent( +suspend fun BehaviourContext.waitGiveawayContent( initRequest: Request<*>? = null, errorFactory: NullableRequestBuilder<*> = { null } -) = waitContent(initRequest, errorFactory).mapContent() +) = waitContent(initRequest, errorFactory).mapContent() suspend fun BehaviourContext.waitGiveawayPublicResultsContent( initRequest: Request<*>? = null, diff --git a/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/expectations/WaitContentMessage.kt b/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/expectations/WaitContentMessage.kt index 7ff93f2931..7d55775f0e 100644 --- a/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/expectations/WaitContentMessage.kt +++ b/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/expectations/WaitContentMessage.kt @@ -2,9 +2,7 @@ package dev.inmo.tgbotapi.extensions.behaviour_builder.expectations -import dev.inmo.micro_utils.coroutines.safelyWithoutExceptions import dev.inmo.tgbotapi.extensions.behaviour_builder.BehaviourContext -import dev.inmo.tgbotapi.extensions.utils.withContent import dev.inmo.tgbotapi.extensions.utils.withContentOrNull import dev.inmo.tgbotapi.requests.abstracts.Request import dev.inmo.tgbotapi.types.message.abstracts.CommonMessage @@ -13,7 +11,6 @@ import dev.inmo.tgbotapi.types.update.abstracts.BaseSentMessageUpdate import dev.inmo.tgbotapi.utils.RiskFeature import dev.inmo.tgbotapi.utils.lowLevelRiskFeatureMessage import kotlinx.coroutines.flow.Flow -import kotlinx.coroutines.flow.filter import kotlinx.coroutines.flow.mapNotNull typealias CommonMessageToCommonMessageMapper = suspend CommonMessage.() -> CommonMessage? @@ -153,10 +150,10 @@ suspend fun BehaviourContext.waitMediaContentMessage( errorFactory: NullableRequestBuilder<*> = { null } ) = waitContentMessage(initRequest, errorFactory).mapWithContent() -suspend fun BehaviourContext.waitScheduledGiveawayContentMessage( +suspend fun BehaviourContext.waitGiveawayContentMessage( initRequest: Request<*>? = null, errorFactory: NullableRequestBuilder<*> = { null } -) = waitContentMessage(initRequest, errorFactory).mapWithContent() +) = waitContentMessage(initRequest, errorFactory).mapWithContent() suspend fun BehaviourContext.waitGiveawayPublicResultsContentMessage( initRequest: Request<*>? = null, diff --git a/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/expectations/WaitEditedContent.kt b/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/expectations/WaitEditedContent.kt index d3761f4097..6a4d06aecb 100644 --- a/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/expectations/WaitEditedContent.kt +++ b/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/expectations/WaitEditedContent.kt @@ -131,10 +131,10 @@ suspend fun BehaviourContext.waitEditedInvoice( errorFactory: NullableRequestBuilder<*> = { null } ) = waitEditedContent(initRequest, false, errorFactory) -suspend fun BehaviourContext.waitEditedScheduledGiveawayContent( +suspend fun BehaviourContext.waitEditedGiveawayContent( initRequest: Request<*>? = null, errorFactory: NullableRequestBuilder<*> = { null } -) = waitEditedContent(initRequest, false, errorFactory) +) = waitEditedContent(initRequest, false, errorFactory) suspend fun BehaviourContext.waitEditedGiveawayPublicResultsContent( initRequest: Request<*>? = null, diff --git a/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/expectations/WaitEditedContentMessage.kt b/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/expectations/WaitEditedContentMessage.kt index 4790f8ac71..fa53f15138 100644 --- a/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/expectations/WaitEditedContentMessage.kt +++ b/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/expectations/WaitEditedContentMessage.kt @@ -3,7 +3,6 @@ package dev.inmo.tgbotapi.extensions.behaviour_builder.expectations import dev.inmo.tgbotapi.extensions.behaviour_builder.BehaviourContext -import dev.inmo.tgbotapi.extensions.utils.baseEditMessageUpdateOrNull import dev.inmo.tgbotapi.extensions.utils.commonMessageOrNull import dev.inmo.tgbotapi.extensions.utils.withContent import dev.inmo.tgbotapi.requests.abstracts.Request @@ -137,10 +136,10 @@ suspend fun BehaviourContext.waitEditedInvoiceMessage( errorFactory: NullableRequestBuilder<*> = { null } ) = waitEditedContentMessage(initRequest, errorFactory) -suspend fun BehaviourContext.waitEditedScheduledGiveawayContentMessage( +suspend fun BehaviourContext.waitEditedGiveawayContentMessage( initRequest: Request<*>? = null, errorFactory: NullableRequestBuilder<*> = { null } -) = waitEditedContentMessage(initRequest, errorFactory) +) = waitEditedContentMessage(initRequest, errorFactory) suspend fun BehaviourContext.waitEditedGiveawayPublicResultsContentMessage( initRequest: Request<*>? = null, diff --git a/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/triggers_handling/ContentTriggers.kt b/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/triggers_handling/ContentTriggers.kt index 1bec1193e7..5d66a1ed66 100644 --- a/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/triggers_handling/ContentTriggers.kt +++ b/tgbotapi.behaviour_builder/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/behaviour_builder/triggers_handling/ContentTriggers.kt @@ -716,8 +716,8 @@ suspend fun BC.onMediaContent( * @param scenarioReceiver Main callback which will be used to handle incoming data if [initialFilter] will pass that * data */ -suspend fun BC.onScheduledGiveawayContent( - initialFilter: CommonMessageFilter? = null, +suspend fun BC.onGiveawayContent( + initialFilter: CommonMessageFilter? = null, subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver? = MessageFilterByChat, markerFactory: MarkerFactory = ByChatMessageMarkerFactory, scenarioReceiver: CustomBehaviourContextAndTypeReceiver diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/ReplyInfo.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/ReplyInfo.kt index d2c832927d..21b5244bde 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/ReplyInfo.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/ReplyInfo.kt @@ -6,7 +6,7 @@ import dev.inmo.tgbotapi.types.dice.Dice import dev.inmo.tgbotapi.types.files.* import dev.inmo.tgbotapi.types.games.RawGame import dev.inmo.tgbotapi.types.giveaway.GiveawayPublicResults -import dev.inmo.tgbotapi.types.giveaway.ScheduledGiveaway +import dev.inmo.tgbotapi.types.giveaway.Giveaway import dev.inmo.tgbotapi.types.location.Location import dev.inmo.tgbotapi.types.message.MessageOrigin import dev.inmo.tgbotapi.types.message.abstracts.AccessibleMessage @@ -96,7 +96,7 @@ sealed interface ReplyInfo { private val poll: Poll? = null, private val invoice: Invoice? = null, private val dice: Dice? = null, - private val giveaway: ScheduledGiveaway? = null, + private val giveaway: Giveaway? = null, private val giveaway_winners: GiveawayPublicResults? = null, ) { val asExternalReplyInfo: External diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/giveaway/ScheduledGiveaway.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/giveaway/Giveaway.kt similarity index 66% rename from tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/giveaway/ScheduledGiveaway.kt rename to tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/giveaway/Giveaway.kt index ce7c3430bd..d8bea8ad5c 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/giveaway/ScheduledGiveaway.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/giveaway/Giveaway.kt @@ -1,19 +1,13 @@ package dev.inmo.tgbotapi.types.giveaway import dev.inmo.micro_utils.language_codes.IetfLang -import dev.inmo.tgbotapi.requests.abstracts.Request import dev.inmo.tgbotapi.types.* -import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup import dev.inmo.tgbotapi.types.chat.PreviewChat -import dev.inmo.tgbotapi.types.giveaway.GiveawayInfo -import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.ChatEvent -import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.PublicChatEvent -import dev.inmo.tgbotapi.types.message.abstracts.AccessibleMessage import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable @Serializable -data class ScheduledGiveaway( +data class Giveaway( @SerialName(chatsField) val chats: List, @SerialName(winnersSelectionDateField) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/RawMessage.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/RawMessage.kt index 97aab2991d..e28264eda0 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/RawMessage.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/RawMessage.kt @@ -10,7 +10,7 @@ import dev.inmo.tgbotapi.types.files.* import dev.inmo.tgbotapi.types.files.Sticker import dev.inmo.tgbotapi.types.games.RawGame import dev.inmo.tgbotapi.types.giveaway.* -import dev.inmo.tgbotapi.types.message.content.ScheduledGiveawayContent +import dev.inmo.tgbotapi.types.message.content.GiveawayContent import dev.inmo.tgbotapi.types.location.Location import dev.inmo.tgbotapi.types.message.ChatEvents.* import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.* @@ -96,7 +96,7 @@ internal data class RawMessage( private val invoice: Invoice? = null, private val dice: Dice? = null, private val successful_payment: SuccessfulPayment? = null, - private val giveaway: ScheduledGiveaway? = null, + private val giveaway: Giveaway? = null, private val giveaway_winners: GiveawayResults? = null, private val users_shared: UsersShared? = null, @@ -199,7 +199,7 @@ internal data class RawMessage( venue != null -> VenueContent(venue) poll != null -> PollContent(poll) invoice != null -> InvoiceContent(invoice) - giveaway != null -> ScheduledGiveawayContent(chat, messageId, giveaway) + giveaway != null -> GiveawayContent(chat, messageId, giveaway) giveaway_winners is GiveawayPublicResults -> GiveawayPublicResultsContent(giveaway_winners) else -> null } diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/Abstracts.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/Abstracts.kt index 59e02ffbef..536e7b87cd 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/Abstracts.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/Abstracts.kt @@ -50,7 +50,7 @@ sealed interface MessageContent: ResendableContent { subclass(InvoiceContent::class) subclass(StoryContent::class) subclass(GiveawayPublicResultsContent::class) - subclass(ScheduledGiveawayContent::class) + subclass(GiveawayContent::class) additionalBuilder() } diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/ScheduledGiveawayContent.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/GiveawayContent.kt similarity index 76% rename from tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/ScheduledGiveawayContent.kt rename to tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/GiveawayContent.kt index 17ce374abb..db4cedf9ae 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/ScheduledGiveawayContent.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/GiveawayContent.kt @@ -1,23 +1,19 @@ package dev.inmo.tgbotapi.types.message.content -import dev.inmo.micro_utils.language_codes.IetfLang import dev.inmo.tgbotapi.requests.ForwardMessage import dev.inmo.tgbotapi.requests.abstracts.Request import dev.inmo.tgbotapi.types.* import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup import dev.inmo.tgbotapi.types.chat.Chat -import dev.inmo.tgbotapi.types.chat.PreviewChat -import dev.inmo.tgbotapi.types.giveaway.GiveawayInfo -import dev.inmo.tgbotapi.types.giveaway.ScheduledGiveaway +import dev.inmo.tgbotapi.types.giveaway.Giveaway import dev.inmo.tgbotapi.types.message.abstracts.AccessibleMessage -import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable @Serializable -data class ScheduledGiveawayContent( +data class GiveawayContent( private val chat: Chat, private val messageId: MessageId, - val giveaway: ScheduledGiveaway + val giveaway: Giveaway ) : MessageContent { override fun createResend( chatId: ChatIdentifier, diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/Typealiases.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/Typealiases.kt index 399ef34cd8..7d92ddff43 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/Typealiases.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/message/content/Typealiases.kt @@ -32,7 +32,7 @@ typealias VisualMediaGroupMessage = CommonMessage typealias VideoMessage = CommonMessage typealias PhotoMessage = CommonMessage typealias AnimationMessage = CommonMessage -typealias ScheduledGiveawayContentMessage = CommonMessage +typealias ScheduledGiveawayContentMessage = CommonMessage typealias GiveawayPublicResultsContentMessage = CommonMessage diff --git a/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/ClassCastsNew.kt b/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/ClassCastsNew.kt index 313b784543..e73520d8cd 100644 --- a/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/ClassCastsNew.kt +++ b/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/ClassCastsNew.kt @@ -298,6 +298,7 @@ import dev.inmo.tgbotapi.types.message.content.DiceContent import dev.inmo.tgbotapi.types.message.content.DocumentContent import dev.inmo.tgbotapi.types.message.content.DocumentMediaGroupPartContent import dev.inmo.tgbotapi.types.message.content.GameContent +import dev.inmo.tgbotapi.types.message.content.GiveawayContent import dev.inmo.tgbotapi.types.message.content.GiveawayPublicResultsContent import dev.inmo.tgbotapi.types.message.content.InvoiceContent import dev.inmo.tgbotapi.types.message.content.LiveLocationContent @@ -311,7 +312,6 @@ import dev.inmo.tgbotapi.types.message.content.MessageContent import dev.inmo.tgbotapi.types.message.content.PhotoContent import dev.inmo.tgbotapi.types.message.content.PollContent import dev.inmo.tgbotapi.types.message.content.ResendableContent -import dev.inmo.tgbotapi.types.message.content.ScheduledGiveawayContent import dev.inmo.tgbotapi.types.message.content.SpoilerableMediaContent import dev.inmo.tgbotapi.types.message.content.StaticLocationContent import dev.inmo.tgbotapi.types.message.content.StickerContent @@ -3795,6 +3795,15 @@ public inline fun ResendableContent.gameContentOrThrow(): GameContent = this as public inline fun ResendableContent.ifGameContent(block: (GameContent) -> T): T? = gameContentOrNull() ?.let(block) +public inline fun ResendableContent.giveawayContentOrNull(): GiveawayContent? = this as? + dev.inmo.tgbotapi.types.message.content.GiveawayContent + +public inline fun ResendableContent.giveawayContentOrThrow(): GiveawayContent = this as + dev.inmo.tgbotapi.types.message.content.GiveawayContent + +public inline fun ResendableContent.ifGiveawayContent(block: (GiveawayContent) -> T): T? = + giveawayContentOrNull() ?.let(block) + public inline fun ResendableContent.giveawayPublicResultsContentOrNull(): GiveawayPublicResultsContent? = this as? dev.inmo.tgbotapi.types.message.content.GiveawayPublicResultsContent @@ -3874,16 +3883,6 @@ public inline fun ResendableContent.pollContentOrThrow(): PollContent = this as public inline fun ResendableContent.ifPollContent(block: (PollContent) -> T): T? = pollContentOrNull() ?.let(block) -public inline fun ResendableContent.scheduledGiveawayContentOrNull(): ScheduledGiveawayContent? = - this as? dev.inmo.tgbotapi.types.message.content.ScheduledGiveawayContent - -public inline fun ResendableContent.scheduledGiveawayContentOrThrow(): ScheduledGiveawayContent = - this as dev.inmo.tgbotapi.types.message.content.ScheduledGiveawayContent - -public inline fun - ResendableContent.ifScheduledGiveawayContent(block: (ScheduledGiveawayContent) -> T): T? = - scheduledGiveawayContentOrNull() ?.let(block) - public inline fun ResendableContent.stickerContentOrNull(): StickerContent? = this as? dev.inmo.tgbotapi.types.message.content.StickerContent