mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI.git
synced 2026-06-18 17:25:09 +00:00
Compare commits
15 Commits
e6aaa264f6
...
31.0.1
| Author | SHA1 | Date | |
|---|---|---|---|
| ac511d0aed | |||
| 65cd359002 | |||
| 8d7005be80 | |||
| a20368ee51 | |||
| 744149a674 | |||
| 410183e315 | |||
| 9776a2474a | |||
| aebc571307 | |||
| 26c11d9d6b | |||
| c9be5041b8 | |||
| f10cfdbe1e | |||
| 83b4d2155f | |||
| eccc687aec | |||
| 53e79b152e | |||
| b9157b1924 |
59
CHANGELOG.md
59
CHANGELOG.md
@@ -1,9 +1,68 @@
|
||||
# TelegramBotAPI changelog
|
||||
|
||||
## 31.0.1
|
||||
|
||||
* `Core`:
|
||||
* In `StarTransaction` property `nanostarAmount` become nullable
|
||||
|
||||
## 31.0.0
|
||||
|
||||
**THIS UPDATE CONTAINS ADDING SUPPORT OF [Telegram Bots API 9.3](https://core.telegram.org/bots/api-changelog#december-31-2025)**
|
||||
|
||||
**THIS UPDATE CONTAINS ADDING SUPPORT OF [Telegram Bots API 9.4](https://core.telegram.org/bots/api-changelog#february-9-2026)**
|
||||
|
||||
**THIS UPDATE CONTAINS BREAKING CHANGES**
|
||||
|
||||
* `Version`:
|
||||
* `MicroUtils`: `0.26.8` -> `0.26.9`
|
||||
* `Core`:
|
||||
* **THIS IS BREAKING CHANGE** All media files with sizes changed type of `fileSize` field from `Long` to `FileSize` (value class)
|
||||
* **THIS IS BREAKING CHANGE** Class `GiftSentOrReceived` have been renamed to `GiftSentOrReceivedEvent` to clarify naming
|
||||
* **THIS IS BREAKING CHANGE** New interface `OwnedGift` have been created
|
||||
* **THIS IS BREAKING CHANGE** `OwnedGifts` have changed its generic type to `OwnedGift`
|
||||
* **THIS IS BREAKING CHANGE** For `CheclistTask` have been made several changes:
|
||||
* `ChecklistTask.Done` -> `ChecklistTask.Completed`
|
||||
* `ChecklistTask.Undone` -> `ChecklistTask.Uncompleted`
|
||||
* Added several inheritors of `ChecklistTask.Completed` - for completed by chat, by user or just completed tasks
|
||||
* **THIS IS BREAKING CHANGE** `PrivateChat.id` type changed from `UserId` to `IdChatIdentifier`
|
||||
* **THIS IS BREAKING CHANGE** `ForumChat` no longer extends `SupergroupChat`; new `SupergroupForumChat` interface created for supergroup forums
|
||||
* **THIS IS BREAKING CHANGE** Added `PrivateForumChat` and `PrivateUserChat` interfaces to support private forums
|
||||
* Added support of private forums (`ExtendedPrivateForumChatImpl`, `PrivateForumContentMessage`, `PrivateForumEventMessage`)
|
||||
* Added `ChatOwnerChanged` and `ChatOwnerLeft` chat events
|
||||
* Added `SetMyProfilePhoto` and `RemoveMyProfilePhoto` requests
|
||||
* Added `GetUserProfileAudios` request and `UserProfileAudios` type
|
||||
* Added `GetChatGifts` and `GetUserGifts` requests
|
||||
* Added `RepostStory` request
|
||||
* Added `SendMessageDraft` request with `DraftId` and `DraftIdAllocator`
|
||||
* Added `KeyboardButtonStyle` support and `iconCustomEmojiId` field to keyboard buttons
|
||||
* Added `style` and `iconCustomEmojiId` fields to `InlineKeyboardButton`
|
||||
* Added `VideoCodec` and `VideoQuality` types
|
||||
* Added `Rarity`, `GiftBackground`, `UniqueGiftName`, and `UniqueGiftColors` types for gifts
|
||||
* Added new fields to `Gift.Regular`: `personalTotalCount`, `personalRemainingCount`, `isPremium`, `hasColors`, `background`, `uniqueGiftVariantCount`
|
||||
* Added `isBurned` field support in `GiftSentOrReceivedEvent`
|
||||
* Added `UserRating` type and `rating` field to `ExtendedPrivateChat`
|
||||
* Added `Level` and `Rating` value classes
|
||||
* Added `uniqueGiftColors` field to extended chats (channel, group, private)
|
||||
* Added `paidMessageStarCount` field to `ExtendedGroupChat` and `ExtendedPrivateChat`
|
||||
* Added `firstProfileAudio` field to `ExtendedPrivateChat`
|
||||
* Added `purchased_paid_media` to updates list
|
||||
* Added `effectId` support in `CopyMessage` and `ForwardMessage`
|
||||
* Added `WithOptionalPaidMessageStarCount` interface
|
||||
* Fixed serialization of `SimpleKeyboardButton`
|
||||
* Fixed support of `paidMessageStarCount`
|
||||
* `API`:
|
||||
* Added extensions for `SetMyProfilePhoto`, `RemoveMyProfilePhoto`, `GetUserProfileAudios`
|
||||
* Added extensions for `GetChatGifts` and `GetUserGifts`
|
||||
* Added extensions for `RepostStory`
|
||||
* Added extensions for `SendMessageDraft`
|
||||
* Added `effectId` parameter to `copyMessage` and `forwardMessage` extensions
|
||||
* Added `GetBusinessAccountGifts` extensions improvements
|
||||
* `BehaviourBuilder`:
|
||||
* Updated event triggers for new chat events (`ChatOwnerChanged`, `ChatOwnerLeft`, private forum events)
|
||||
* Updated expectations for new event types
|
||||
* `Utils`:
|
||||
* Regenerated class casts extensions
|
||||
* Updated `InlineKeyboardBuilder` and `ReplyKeyboardBuilder` with `style` and `iconCustomEmojiId` support
|
||||
|
||||
## 30.0.2
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# TelegramBotAPI [](https://central.sonatype.com/artifact/dev.inmo/tgbotapi) [](https://core.telegram.org/bots/api-changelog#august-15-2025)
|
||||
# TelegramBotAPI [](https://central.sonatype.com/artifact/dev.inmo/tgbotapi) [](https://core.telegram.org/bots/api-changelog#february-9-2026)
|
||||
|
||||
| Docs | [](https://tgbotapi.inmo.dev/index.html) [](https://docs.inmo.dev/tgbotapi/index.html) |
|
||||
|:----------------------:|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|
|
||||
|
||||
@@ -6,4 +6,4 @@ kotlin.incremental=true
|
||||
kotlin.incremental.js=true
|
||||
|
||||
library_group=dev.inmo
|
||||
library_version=31.0.0
|
||||
library_version=31.0.1
|
||||
|
||||
@@ -22,7 +22,7 @@ github-release-plugin = "2.5.2"
|
||||
dokka = "2.0.0"
|
||||
|
||||
validator = "0.18.1"
|
||||
nmcp = "1.2.0"
|
||||
nmcp = "1.4.4"
|
||||
|
||||
[libraries]
|
||||
|
||||
|
||||
@@ -1197,6 +1197,20 @@ public final class dev/inmo/tgbotapi/extensions/api/gifts/GetAvailableGiftsKt {
|
||||
public static final fun getAvailableGifts (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
||||
}
|
||||
|
||||
public final class dev/inmo/tgbotapi/extensions/api/gifts/GetChatGiftsKt {
|
||||
public static final fun getChatGifts (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;ZZZZZZZZLjava/lang/String;Ljava/lang/Integer;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
||||
public static synthetic fun getChatGifts$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;ZZZZZZZZLjava/lang/String;Ljava/lang/Integer;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
|
||||
public static final fun getChatGiftsFlow (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;ZZZZZZZZLjava/lang/String;Ljava/lang/Integer;Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/flow/Flow;
|
||||
public static synthetic fun getChatGiftsFlow$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;ZZZZZZZZLjava/lang/String;Ljava/lang/Integer;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lkotlinx/coroutines/flow/Flow;
|
||||
}
|
||||
|
||||
public final class dev/inmo/tgbotapi/extensions/api/gifts/GetUserGiftsKt {
|
||||
public static final fun getUserGifts (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;ZZZZZZLjava/lang/String;Ljava/lang/Integer;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
||||
public static synthetic fun getUserGifts$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;ZZZZZZLjava/lang/String;Ljava/lang/Integer;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
|
||||
public static final fun getUserGiftsFlow (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;ZZZZZZLjava/lang/String;Ljava/lang/Integer;Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/flow/Flow;
|
||||
public static synthetic fun getUserGiftsFlow$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;ZZZZZZLjava/lang/String;Ljava/lang/Integer;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lkotlinx/coroutines/flow/Flow;
|
||||
}
|
||||
|
||||
public final class dev/inmo/tgbotapi/extensions/api/gifts/GiftPremiumSubscriptionKt {
|
||||
public static final fun giftPremiumSubscription (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;IILdev/inmo/tgbotapi/types/message/textsources/TextSource;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
||||
public static final fun giftPremiumSubscription (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;IILjava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
||||
|
||||
@@ -4,7 +4,8 @@ import dev.inmo.tgbotapi.bot.TelegramBot
|
||||
import dev.inmo.tgbotapi.requests.business_connection.GetBusinessAccountGifts
|
||||
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
|
||||
import dev.inmo.tgbotapi.types.OwnedGifts
|
||||
import dev.inmo.tgbotapi.types.gifts.GiftSentOrReceived
|
||||
import dev.inmo.tgbotapi.types.gifts.GiftSentOrReceivedEvent
|
||||
import dev.inmo.tgbotapi.types.gifts.OwnedGift
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.flow
|
||||
import kotlin.runCatching
|
||||
@@ -21,7 +22,7 @@ public suspend fun TelegramBot.getBusinessAccountGifts(
|
||||
sortByPrice: Boolean = false,
|
||||
offset: String? = null,
|
||||
limit: Int? = null
|
||||
): OwnedGifts<GiftSentOrReceived.ReceivedInBusinessAccount> = execute(
|
||||
): OwnedGifts<OwnedGift.OwnedByBusinessAccount> = execute(
|
||||
GetBusinessAccountGifts(
|
||||
businessConnectionId,
|
||||
excludeUnsaved,
|
||||
@@ -71,7 +72,7 @@ public fun TelegramBot.getBusinessAccountGiftsFlow(
|
||||
initialOffset: String? = null,
|
||||
limit: Int? = null,
|
||||
onErrorContinueChecker: suspend (Throwable?) -> Boolean = { false }
|
||||
): Flow<OwnedGifts<GiftSentOrReceived.ReceivedInBusinessAccount>> = flow {
|
||||
): Flow<OwnedGifts<OwnedGift.OwnedByBusinessAccount>> = flow {
|
||||
var currentOffset = initialOffset
|
||||
do {
|
||||
val response = runCatching {
|
||||
|
||||
@@ -0,0 +1,83 @@
|
||||
package dev.inmo.tgbotapi.extensions.api.gifts
|
||||
|
||||
import dev.inmo.tgbotapi.bot.TelegramBot
|
||||
import dev.inmo.tgbotapi.requests.gifts.GetChatGifts
|
||||
import dev.inmo.tgbotapi.types.ChatIdentifier
|
||||
import dev.inmo.tgbotapi.types.OwnedGifts
|
||||
import dev.inmo.tgbotapi.types.gifts.GiftSentOrReceivedEvent
|
||||
import dev.inmo.tgbotapi.types.gifts.OwnedGift
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.flow
|
||||
|
||||
public suspend fun TelegramBot.getChatGifts(
|
||||
chatId: ChatIdentifier,
|
||||
excludeUnsaved: Boolean = false,
|
||||
excludeSaved: Boolean = false,
|
||||
excludeUnlimited: Boolean = false,
|
||||
excludeLimitedUpgradable: Boolean = false,
|
||||
excludeLimitedNonUpgradable: Boolean = false,
|
||||
excludeFromBlockchain: Boolean = false,
|
||||
excludeUnique: Boolean = false,
|
||||
sortByPrice: Boolean = false,
|
||||
offset: String? = null,
|
||||
limit: Int? = null
|
||||
): OwnedGifts<OwnedGift.Common> = execute(
|
||||
GetChatGifts(
|
||||
chatId,
|
||||
excludeUnsaved,
|
||||
excludeSaved,
|
||||
excludeUnlimited,
|
||||
excludeLimitedUpgradable,
|
||||
excludeLimitedNonUpgradable,
|
||||
excludeFromBlockchain,
|
||||
excludeUnique,
|
||||
sortByPrice,
|
||||
offset,
|
||||
limit
|
||||
)
|
||||
)
|
||||
|
||||
public fun TelegramBot.getChatGiftsFlow(
|
||||
chatId: ChatIdentifier,
|
||||
excludeUnsaved: Boolean = false,
|
||||
excludeSaved: Boolean = false,
|
||||
excludeUnlimited: Boolean = false,
|
||||
excludeLimitedUpgradable: Boolean = false,
|
||||
excludeLimitedNonUpgradable: Boolean = false,
|
||||
excludeFromBlockchain: Boolean = false,
|
||||
excludeUnique: Boolean = false,
|
||||
sortByPrice: Boolean = false,
|
||||
initialOffset: String? = null,
|
||||
limit: Int? = null,
|
||||
onErrorContinueChecker: suspend (Throwable?) -> Boolean = { false }
|
||||
): Flow<OwnedGifts<OwnedGift.Common>> = flow {
|
||||
var currentOffset = initialOffset
|
||||
do {
|
||||
val response = runCatching {
|
||||
getChatGifts(
|
||||
chatId,
|
||||
excludeUnsaved,
|
||||
excludeSaved,
|
||||
excludeUnlimited,
|
||||
excludeLimitedUpgradable,
|
||||
excludeLimitedNonUpgradable,
|
||||
excludeFromBlockchain,
|
||||
excludeUnique,
|
||||
sortByPrice,
|
||||
currentOffset,
|
||||
limit
|
||||
)
|
||||
}
|
||||
if (response.isSuccess) {
|
||||
val result = response.getOrThrow()
|
||||
emit(result)
|
||||
currentOffset = result.nextOffset
|
||||
} else {
|
||||
if (onErrorContinueChecker(response.exceptionOrNull())) {
|
||||
continue
|
||||
} else {
|
||||
break
|
||||
}
|
||||
}
|
||||
} while (currentOffset != null)
|
||||
}
|
||||
@@ -0,0 +1,75 @@
|
||||
package dev.inmo.tgbotapi.extensions.api.gifts
|
||||
|
||||
import dev.inmo.tgbotapi.bot.TelegramBot
|
||||
import dev.inmo.tgbotapi.requests.gifts.GetUserGifts
|
||||
import dev.inmo.tgbotapi.types.OwnedGifts
|
||||
import dev.inmo.tgbotapi.types.UserId
|
||||
import dev.inmo.tgbotapi.types.gifts.GiftSentOrReceivedEvent
|
||||
import dev.inmo.tgbotapi.types.gifts.OwnedGift
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.flow
|
||||
|
||||
public suspend fun TelegramBot.getUserGifts(
|
||||
userId: UserId,
|
||||
excludeUnlimited: Boolean = false,
|
||||
excludeLimitedUpgradable: Boolean = false,
|
||||
excludeLimitedNonUpgradable: Boolean = false,
|
||||
excludeFromBlockchain: Boolean = false,
|
||||
excludeUnique: Boolean = false,
|
||||
sortByPrice: Boolean = false,
|
||||
offset: String? = null,
|
||||
limit: Int? = null
|
||||
): OwnedGifts<OwnedGift.Common> = execute(
|
||||
GetUserGifts(
|
||||
userId,
|
||||
excludeUnlimited,
|
||||
excludeLimitedUpgradable,
|
||||
excludeLimitedNonUpgradable,
|
||||
excludeFromBlockchain,
|
||||
excludeUnique,
|
||||
sortByPrice,
|
||||
offset,
|
||||
limit
|
||||
)
|
||||
)
|
||||
|
||||
public fun TelegramBot.getUserGiftsFlow(
|
||||
userId: UserId,
|
||||
excludeUnlimited: Boolean = false,
|
||||
excludeLimitedUpgradable: Boolean = false,
|
||||
excludeLimitedNonUpgradable: Boolean = false,
|
||||
excludeFromBlockchain: Boolean = false,
|
||||
excludeUnique: Boolean = false,
|
||||
sortByPrice: Boolean = false,
|
||||
initialOffset: String? = null,
|
||||
limit: Int? = null,
|
||||
onErrorContinueChecker: suspend (Throwable?) -> Boolean = { false }
|
||||
): Flow<OwnedGifts<OwnedGift.Common>> = flow {
|
||||
var currentOffset = initialOffset
|
||||
do {
|
||||
val response = runCatching {
|
||||
getUserGifts(
|
||||
userId,
|
||||
excludeUnlimited,
|
||||
excludeLimitedUpgradable,
|
||||
excludeLimitedNonUpgradable,
|
||||
excludeFromBlockchain,
|
||||
excludeUnique,
|
||||
sortByPrice,
|
||||
currentOffset,
|
||||
limit
|
||||
)
|
||||
}
|
||||
if (response.isSuccess) {
|
||||
val result = response.getOrThrow()
|
||||
emit(result)
|
||||
currentOffset = result.nextOffset
|
||||
} else {
|
||||
if (onErrorContinueChecker(response.exceptionOrNull())) {
|
||||
continue
|
||||
} else {
|
||||
break
|
||||
}
|
||||
}
|
||||
} while (currentOffset != null)
|
||||
}
|
||||
@@ -10,7 +10,7 @@ import dev.inmo.tgbotapi.types.PaidMessagePriceChanged
|
||||
import dev.inmo.tgbotapi.types.chat.ChatBackground
|
||||
import dev.inmo.tgbotapi.types.checklists.ChecklistTasksAdded
|
||||
import dev.inmo.tgbotapi.types.checklists.ChecklistTasksDone
|
||||
import dev.inmo.tgbotapi.types.gifts.GiftSentOrReceived
|
||||
import dev.inmo.tgbotapi.types.gifts.GiftSentOrReceivedEvent
|
||||
import dev.inmo.tgbotapi.types.giveaway.GiveawayCreated
|
||||
import dev.inmo.tgbotapi.types.giveaway.GiveawayPrivateResults
|
||||
import dev.inmo.tgbotapi.types.message.ChatEvents.*
|
||||
@@ -25,7 +25,6 @@ import dev.inmo.tgbotapi.types.message.ChatEvents.forum.WriteAccessAllowed
|
||||
import dev.inmo.tgbotapi.types.message.ChatEvents.suggested.SuggestedPostApprovalFailed
|
||||
import dev.inmo.tgbotapi.types.message.ChatEvents.suggested.SuggestedPostApproved
|
||||
import dev.inmo.tgbotapi.types.message.ChatEvents.suggested.SuggestedPostDeclined
|
||||
import dev.inmo.tgbotapi.types.message.ChatEvents.suggested.SuggestedPostInfo
|
||||
import dev.inmo.tgbotapi.types.message.ChatEvents.suggested.SuggestedPostPaid
|
||||
import dev.inmo.tgbotapi.types.message.ChatEvents.suggested.SuggestedPostRefunded
|
||||
import dev.inmo.tgbotapi.types.message.ChatEvents.voice.*
|
||||
@@ -277,12 +276,12 @@ fun BehaviourContext.waitPaidMessagePriceChanged(
|
||||
fun BehaviourContext.waitRegularGiftSentOrReceived(
|
||||
initRequest: Request<*>? = null,
|
||||
errorFactory: NullableRequestBuilder<*> = { null }
|
||||
) = waitEvents<GiftSentOrReceived.Regular>(initRequest, errorFactory)
|
||||
) = waitEvents<GiftSentOrReceivedEvent.RegularGift>(initRequest, errorFactory)
|
||||
|
||||
fun BehaviourContext.waitUniqueGiftSentOrReceived(
|
||||
initRequest: Request<*>? = null,
|
||||
errorFactory: NullableRequestBuilder<*> = { null }
|
||||
) = waitEvents<GiftSentOrReceived.Unique>(initRequest, errorFactory)
|
||||
) = waitEvents<GiftSentOrReceivedEvent.UniqueGift>(initRequest, errorFactory)
|
||||
|
||||
fun BehaviourContext.waitChecklistTasksDone(
|
||||
initRequest: Request<*>? = null,
|
||||
|
||||
@@ -7,7 +7,7 @@ import dev.inmo.tgbotapi.extensions.utils.*
|
||||
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.gifts.GiftSentOrReceived
|
||||
import dev.inmo.tgbotapi.types.gifts.GiftSentOrReceivedEvent
|
||||
import dev.inmo.tgbotapi.types.message.ChatEvents.*
|
||||
import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.*
|
||||
import dev.inmo.tgbotapi.types.message.ChatEvents.forum.ForumTopicClosed
|
||||
@@ -245,9 +245,9 @@ fun BehaviourContext.waitPaidMessagePriceChangedMessages(
|
||||
fun BehaviourContext.waitRegularGiftSentOrReceivedMessages(
|
||||
initRequest: Request<*>? = null,
|
||||
errorFactory: NullableRequestBuilder<*> = { null }
|
||||
) = waitEventsMessages<GiftSentOrReceived.Regular>(initRequest, errorFactory)
|
||||
) = waitEventsMessages<GiftSentOrReceivedEvent.RegularGift>(initRequest, errorFactory)
|
||||
|
||||
fun BehaviourContext.waitUniqueGiftSentOrReceivedMessages(
|
||||
initRequest: Request<*>? = null,
|
||||
errorFactory: NullableRequestBuilder<*> = { null }
|
||||
) = waitEventsMessages<GiftSentOrReceived.Unique>(initRequest, errorFactory)
|
||||
) = waitEventsMessages<GiftSentOrReceivedEvent.UniqueGift>(initRequest, errorFactory)
|
||||
|
||||
@@ -15,7 +15,7 @@ import dev.inmo.tgbotapi.types.PaidMessagePriceChanged
|
||||
import dev.inmo.tgbotapi.types.chat.ChatBackground
|
||||
import dev.inmo.tgbotapi.types.checklists.ChecklistTasksAdded
|
||||
import dev.inmo.tgbotapi.types.checklists.ChecklistTasksDone
|
||||
import dev.inmo.tgbotapi.types.gifts.GiftSentOrReceived
|
||||
import dev.inmo.tgbotapi.types.gifts.GiftSentOrReceivedEvent
|
||||
import dev.inmo.tgbotapi.types.giveaway.GiveawayCreated
|
||||
import dev.inmo.tgbotapi.types.giveaway.GiveawayPrivateResults
|
||||
import dev.inmo.tgbotapi.types.message.ChannelEventMessage
|
||||
@@ -31,7 +31,6 @@ import dev.inmo.tgbotapi.types.message.ChatEvents.forum.WriteAccessAllowed
|
||||
import dev.inmo.tgbotapi.types.message.ChatEvents.suggested.SuggestedPostApprovalFailed
|
||||
import dev.inmo.tgbotapi.types.message.ChatEvents.suggested.SuggestedPostApproved
|
||||
import dev.inmo.tgbotapi.types.message.ChatEvents.suggested.SuggestedPostDeclined
|
||||
import dev.inmo.tgbotapi.types.message.ChatEvents.suggested.SuggestedPostInfo
|
||||
import dev.inmo.tgbotapi.types.message.ChatEvents.suggested.SuggestedPostPaid
|
||||
import dev.inmo.tgbotapi.types.message.ChatEvents.suggested.SuggestedPostRefunded
|
||||
import dev.inmo.tgbotapi.types.message.ChatEvents.voice.*
|
||||
@@ -1182,11 +1181,11 @@ fun <BC : BehaviourContext> BC.onPaidMessagePriceChanged(
|
||||
* data
|
||||
*/
|
||||
fun <BC : BehaviourContext> BC.onRegularGiftSentOrReceived(
|
||||
initialFilter: SimpleFilter<ChatEventMessage<GiftSentOrReceived.Regular>>? = null,
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatEventMessage<GiftSentOrReceived.Regular>, Update>? = MessageFilterByChat,
|
||||
markerFactory: MarkerFactory<in ChatEventMessage<GiftSentOrReceived.Regular>, Any>? = ByChatMessageMarkerFactory,
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatEventMessage<GiftSentOrReceived.Regular>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatEventMessage<GiftSentOrReceived.Regular>>
|
||||
initialFilter: SimpleFilter<ChatEventMessage<GiftSentOrReceivedEvent.RegularGift>>? = null,
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatEventMessage<GiftSentOrReceivedEvent.RegularGift>, Update>? = MessageFilterByChat,
|
||||
markerFactory: MarkerFactory<in ChatEventMessage<GiftSentOrReceivedEvent.RegularGift>, Any>? = ByChatMessageMarkerFactory,
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatEventMessage<GiftSentOrReceivedEvent.RegularGift>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatEventMessage<GiftSentOrReceivedEvent.RegularGift>>
|
||||
) = onEventWithCustomChatEventMessage(initialFilter, subcontextUpdatesFilter, markerFactory, additionalSubcontextInitialAction, scenarioReceiver)
|
||||
|
||||
|
||||
@@ -1204,11 +1203,11 @@ fun <BC : BehaviourContext> BC.onRegularGiftSentOrReceived(
|
||||
* data
|
||||
*/
|
||||
fun <BC : BehaviourContext> BC.onUniqueGiftSentOrReceived(
|
||||
initialFilter: SimpleFilter<ChatEventMessage<GiftSentOrReceived.Unique>>? = null,
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatEventMessage<GiftSentOrReceived.Unique>, Update>? = MessageFilterByChat,
|
||||
markerFactory: MarkerFactory<in ChatEventMessage<GiftSentOrReceived.Unique>, Any>? = ByChatMessageMarkerFactory,
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatEventMessage<GiftSentOrReceived.Unique>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatEventMessage<GiftSentOrReceived.Unique>>
|
||||
initialFilter: SimpleFilter<ChatEventMessage<GiftSentOrReceivedEvent.UniqueGift>>? = null,
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatEventMessage<GiftSentOrReceivedEvent.UniqueGift>, Update>? = MessageFilterByChat,
|
||||
markerFactory: MarkerFactory<in ChatEventMessage<GiftSentOrReceivedEvent.UniqueGift>, Any>? = ByChatMessageMarkerFactory,
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatEventMessage<GiftSentOrReceivedEvent.UniqueGift>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatEventMessage<GiftSentOrReceivedEvent.UniqueGift>>
|
||||
) = onEventWithCustomChatEventMessage(initialFilter, subcontextUpdatesFilter, markerFactory, additionalSubcontextInitialAction, scenarioReceiver)
|
||||
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -15,11 +15,13 @@ import dev.inmo.tgbotapi.types.excludeFromBlockchainField
|
||||
import dev.inmo.tgbotapi.types.sortByPriceField
|
||||
import dev.inmo.tgbotapi.types.offsetField
|
||||
import dev.inmo.tgbotapi.types.limitField
|
||||
import dev.inmo.tgbotapi.types.gifts.GiftSentOrReceived
|
||||
import dev.inmo.tgbotapi.types.gifts.GiftSentOrReceivedEvent
|
||||
import dev.inmo.tgbotapi.types.gifts.OwnedGift
|
||||
import kotlinx.serialization.DeserializationStrategy
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.SerializationStrategy
|
||||
import kotlinx.serialization.builtins.serializer
|
||||
|
||||
@Serializable
|
||||
data class GetBusinessAccountGifts(
|
||||
@@ -45,16 +47,16 @@ data class GetBusinessAccountGifts(
|
||||
val offset: String? = null,
|
||||
@SerialName(limitField)
|
||||
val limit: Int? = null,
|
||||
) : BusinessRequest.Simple<OwnedGifts<GiftSentOrReceived.ReceivedInBusinessAccount>> {
|
||||
) : BusinessRequest.Simple<OwnedGifts<OwnedGift.OwnedByBusinessAccount>> {
|
||||
override fun method(): String = "getBusinessAccountGifts"
|
||||
|
||||
override val resultDeserializer: DeserializationStrategy<OwnedGifts<GiftSentOrReceived.ReceivedInBusinessAccount>>
|
||||
override val resultDeserializer: DeserializationStrategy<OwnedGifts<OwnedGift.OwnedByBusinessAccount>>
|
||||
get() = Companion.resultSerializer
|
||||
override val requestSerializer: SerializationStrategy<*>
|
||||
get() = serializer()
|
||||
|
||||
companion object {
|
||||
@Warning("This API can be changed without any warranties of backward compatibility")
|
||||
val resultSerializer = OwnedGifts.serializer(GiftSentOrReceived.ReceivedInBusinessAccount.serializer())
|
||||
val resultSerializer = OwnedGifts.serializer(OwnedGift.OwnedByBusinessAccount.serializer())
|
||||
}
|
||||
}
|
||||
@@ -6,7 +6,16 @@ import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest
|
||||
import dev.inmo.tgbotapi.types.ChatIdentifier
|
||||
import dev.inmo.tgbotapi.types.OwnedGifts
|
||||
import dev.inmo.tgbotapi.types.chatIdField
|
||||
import dev.inmo.tgbotapi.types.gifts.GiftSentOrReceived
|
||||
import dev.inmo.tgbotapi.types.excludeUnsavedField
|
||||
import dev.inmo.tgbotapi.types.excludeSavedField
|
||||
import dev.inmo.tgbotapi.types.excludeUnlimitedField
|
||||
import dev.inmo.tgbotapi.types.excludeLimitedUpgradableField
|
||||
import dev.inmo.tgbotapi.types.excludeLimitedNonUpgradableField
|
||||
import dev.inmo.tgbotapi.types.excludeFromBlockchainField
|
||||
import dev.inmo.tgbotapi.types.excludeUniqueField
|
||||
import dev.inmo.tgbotapi.types.sortByPriceField
|
||||
import dev.inmo.tgbotapi.types.gifts.GiftSentOrReceivedEvent
|
||||
import dev.inmo.tgbotapi.types.gifts.OwnedGift
|
||||
import dev.inmo.tgbotapi.types.limitField
|
||||
import dev.inmo.tgbotapi.types.offsetField
|
||||
import kotlinx.serialization.DeserializationStrategy
|
||||
@@ -14,25 +23,40 @@ import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.SerializationStrategy
|
||||
|
||||
// TODO::Fix
|
||||
@Serializable
|
||||
data class GetChatGifts(
|
||||
@SerialName(chatIdField)
|
||||
override val chatId: ChatIdentifier,
|
||||
@SerialName(excludeUnsavedField)
|
||||
val excludeUnsaved: Boolean = false,
|
||||
@SerialName(excludeSavedField)
|
||||
val excludeSaved: Boolean = false,
|
||||
@SerialName(excludeUnlimitedField)
|
||||
val excludeUnlimited: Boolean = false,
|
||||
@SerialName(excludeLimitedUpgradableField)
|
||||
val excludeLimitedUpgradable: Boolean = false,
|
||||
@SerialName(excludeLimitedNonUpgradableField)
|
||||
val excludeLimitedNonUpgradable: Boolean = false,
|
||||
@SerialName(excludeFromBlockchainField)
|
||||
val excludeFromBlockchain: Boolean = false,
|
||||
@SerialName(excludeUniqueField)
|
||||
val excludeUnique: Boolean = false,
|
||||
@SerialName(sortByPriceField)
|
||||
val sortByPrice: Boolean = false,
|
||||
@SerialName(offsetField)
|
||||
val offset: String? = null,
|
||||
@SerialName(limitField)
|
||||
val limit: Int? = null,
|
||||
) : SimpleRequest<OwnedGifts<GiftSentOrReceived>>, ChatRequest {
|
||||
) : SimpleRequest<OwnedGifts<OwnedGift.Common>>, ChatRequest {
|
||||
override fun method(): String = "getChatGifts"
|
||||
|
||||
override val resultDeserializer: DeserializationStrategy<OwnedGifts<GiftSentOrReceived>>
|
||||
override val resultDeserializer: DeserializationStrategy<OwnedGifts<OwnedGift.Common>>
|
||||
get() = Companion.resultSerializer
|
||||
override val requestSerializer: SerializationStrategy<*>
|
||||
get() = serializer()
|
||||
|
||||
companion object {
|
||||
@Warning("This API can be changed without any warranties of backward compatibility")
|
||||
val resultSerializer = OwnedGifts.serializer(GiftSentOrReceived.serializer())
|
||||
val resultSerializer = OwnedGifts.serializer(OwnedGift.Common.serializer())
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,14 @@ import dev.inmo.micro_utils.common.Warning
|
||||
import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest
|
||||
import dev.inmo.tgbotapi.types.OwnedGifts
|
||||
import dev.inmo.tgbotapi.types.UserId
|
||||
import dev.inmo.tgbotapi.types.gifts.GiftSentOrReceived
|
||||
import dev.inmo.tgbotapi.types.excludeUnlimitedField
|
||||
import dev.inmo.tgbotapi.types.excludeLimitedUpgradableField
|
||||
import dev.inmo.tgbotapi.types.excludeLimitedNonUpgradableField
|
||||
import dev.inmo.tgbotapi.types.excludeFromBlockchainField
|
||||
import dev.inmo.tgbotapi.types.excludeUniqueField
|
||||
import dev.inmo.tgbotapi.types.sortByPriceField
|
||||
import dev.inmo.tgbotapi.types.gifts.GiftSentOrReceivedEvent
|
||||
import dev.inmo.tgbotapi.types.gifts.OwnedGift
|
||||
import dev.inmo.tgbotapi.types.limitField
|
||||
import dev.inmo.tgbotapi.types.offsetField
|
||||
import dev.inmo.tgbotapi.types.userIdField
|
||||
@@ -13,26 +20,37 @@ import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.SerializationStrategy
|
||||
|
||||
// TODO::Fix
|
||||
@Serializable
|
||||
data class GetUserGifts(
|
||||
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
|
||||
@SerialName(userIdField)
|
||||
val userId: UserId,
|
||||
@SerialName(excludeUnlimitedField)
|
||||
val excludeUnlimited: Boolean = false,
|
||||
@SerialName(excludeLimitedUpgradableField)
|
||||
val excludeLimitedUpgradable: Boolean = false,
|
||||
@SerialName(excludeLimitedNonUpgradableField)
|
||||
val excludeLimitedNonUpgradable: Boolean = false,
|
||||
@SerialName(excludeFromBlockchainField)
|
||||
val excludeFromBlockchain: Boolean = false,
|
||||
@SerialName(excludeUniqueField)
|
||||
val excludeUnique: Boolean = false,
|
||||
@SerialName(sortByPriceField)
|
||||
val sortByPrice: Boolean = false,
|
||||
@SerialName(offsetField)
|
||||
val offset: String? = null,
|
||||
@SerialName(limitField)
|
||||
val limit: Int? = null,
|
||||
) : SimpleRequest<OwnedGifts<GiftSentOrReceived>> {
|
||||
) : SimpleRequest<OwnedGifts<OwnedGift.Common>> {
|
||||
override fun method(): String = "getUserGifts"
|
||||
|
||||
override val resultDeserializer: DeserializationStrategy<OwnedGifts<GiftSentOrReceived>>
|
||||
override val resultDeserializer: DeserializationStrategy<OwnedGifts<OwnedGift.Common>>
|
||||
get() = Companion.resultSerializer
|
||||
override val requestSerializer: SerializationStrategy<*>
|
||||
get() = serializer()
|
||||
|
||||
companion object {
|
||||
@Warning("This API can be changed without any warranties of backward compatibility")
|
||||
val resultSerializer = OwnedGifts.serializer(GiftSentOrReceived.serializer())
|
||||
val resultSerializer = OwnedGifts.serializer(OwnedGift.Common.serializer())
|
||||
}
|
||||
}
|
||||
|
||||
@@ -175,6 +175,7 @@ const val languageCodeField = "language_code"
|
||||
const val addedToAttachmentMenuField = "added_to_attachment_menu"
|
||||
const val allowsWriteToPMField = "allows_write_to_pm"
|
||||
const val isPremiumField = "is_premium"
|
||||
const val isBurnedField = "is_burned"
|
||||
const val hasPrivateForwardsField = "has_private_forwards"
|
||||
const val hasRestrictedVoiceAndVideoMessagesField = "has_restricted_voice_and_video_messages"
|
||||
const val emojiStatusCustomEmojiIdField = "emoji_status_custom_emoji_id"
|
||||
@@ -546,6 +547,7 @@ const val giftField = "gift"
|
||||
const val giftUpgradeSentField = "gift_upgrade_sent"
|
||||
const val giftsField = "gifts"
|
||||
const val rarityPerMilleField = "rarity_per_mille"
|
||||
const val rarityField = "rarity"
|
||||
const val acceptedGiftTypesField = "accepted_gift_types"
|
||||
const val ownedGiftIdField = "owned_gift_id"
|
||||
const val convertStarCountField = "convert_star_count"
|
||||
@@ -754,11 +756,12 @@ const val paidMediaField = "paid_media"
|
||||
const val publisherChatField = "publisher_chat"
|
||||
const val personalTotalCountField = "personal_total_count"
|
||||
const val personalRemainingCountField = "personal_remaining_count"
|
||||
const val isPremiumField2 = "is_premium"
|
||||
const val hasColorsField = "has_colors"
|
||||
const val uniqueGiftVariantCountField = "unique_gift_variant_count"
|
||||
const val uniqueGiftNumberField = "unique_gift_number"
|
||||
const val isSavedField = "is_saved"
|
||||
const val isUpgradeSeparateField = "is_upgrade_separate"
|
||||
const val canBeTransferredField = "can_be_transferred"
|
||||
const val isFromBlockchainField = "is_from_blockchain"
|
||||
|
||||
const val centerColorField = "center_color"
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
package dev.inmo.tgbotapi.types
|
||||
|
||||
import dev.inmo.tgbotapi.types.gifts.GiftSentOrReceived
|
||||
import dev.inmo.tgbotapi.types.gifts.OwnedGift
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
@Serializable
|
||||
data class OwnedGifts<GiftType: GiftSentOrReceived>(
|
||||
data class OwnedGifts<GiftType: OwnedGift>(
|
||||
@SerialName(totalCountField)
|
||||
val totalCount: Int,
|
||||
@SerialName(giftsField)
|
||||
|
||||
@@ -23,6 +23,10 @@ data class TelegramDate(
|
||||
val asDate: DateTime = DateTime(
|
||||
date * 1000
|
||||
)
|
||||
|
||||
companion object {
|
||||
val Start = TelegramDate(0)
|
||||
}
|
||||
}
|
||||
|
||||
fun DateTime.toTelegramDate(): TelegramDate = TelegramDate(this)
|
||||
|
||||
@@ -177,6 +177,8 @@ data class ExtendedPrivateChatImpl(
|
||||
override val firstProfileAudio: AudioFile? = null,
|
||||
@SerialName(ratingField)
|
||||
override val rating: UserRating? = null,
|
||||
@SerialName(uniqueGiftColorsField)
|
||||
override val uniqueGiftColors: UniqueGiftColors? = null,
|
||||
) : ExtendedPrivateChat
|
||||
|
||||
@Serializable
|
||||
@@ -237,6 +239,8 @@ data class ExtendedPrivateForumChatImpl(
|
||||
override val firstProfileAudio: AudioFile? = null,
|
||||
@SerialName(ratingField)
|
||||
override val rating: UserRating? = null,
|
||||
@SerialName(uniqueGiftColorsField)
|
||||
override val uniqueGiftColors: UniqueGiftColors? = null,
|
||||
) : ExtendedPrivateForumChat
|
||||
|
||||
typealias ExtendedUser = ExtendedPrivateChat
|
||||
@@ -511,6 +515,8 @@ data class ExtendedBot(
|
||||
val allowUsersToCreateTopics: Boolean = false,
|
||||
@SerialName(acceptedGiftTypesField)
|
||||
override val acceptedGiftTypes: AcceptedGiftTypes = AcceptedGiftTypes(),
|
||||
@SerialName(uniqueGiftColorsField)
|
||||
override val uniqueGiftColors: UniqueGiftColors? = null,
|
||||
) : Bot(), ExtendedChat {
|
||||
@SerialName(isBotField)
|
||||
private val isBot = true
|
||||
@@ -544,4 +550,6 @@ data class UnknownExtendedChat(
|
||||
override val maxReactionsCount: Int = 3
|
||||
@SerialName(acceptedGiftTypesField)
|
||||
override val acceptedGiftTypes: AcceptedGiftTypes = AcceptedGiftTypes()
|
||||
@SerialName(uniqueGiftColorsField)
|
||||
override val uniqueGiftColors: UniqueGiftColors? = null
|
||||
}
|
||||
|
||||
@@ -25,6 +25,8 @@ sealed interface ExtendedChat : Chat {
|
||||
|
||||
val acceptedGiftTypes: AcceptedGiftTypes
|
||||
|
||||
val uniqueGiftColors: UniqueGiftColors?
|
||||
|
||||
@Deprecated(
|
||||
message = "Telegram Bot API v9.0 introduced the new field, `acceptedGiftTypes`, to allow granular" +
|
||||
" control over which types of gifts user, bot, or chat can accept.",
|
||||
@@ -93,7 +95,6 @@ sealed interface ExtendedPublicChat : ExtendedChat, PublicChat, ExtendedNonBotCh
|
||||
val membersHidden: Boolean
|
||||
val availableReactions: List<Reaction>?
|
||||
val newMembersSeeHistory: Boolean
|
||||
val uniqueGiftColors: UniqueGiftColors?
|
||||
}
|
||||
|
||||
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
|
||||
|
||||
@@ -104,8 +104,8 @@ sealed interface ChecklistTask : TextedInput {
|
||||
}
|
||||
|
||||
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
|
||||
@Serializable(Created.Serializer::class)
|
||||
data class Undone(
|
||||
@Serializable(Serializer::class)
|
||||
data class Uncompleted(
|
||||
@SerialName(idField)
|
||||
override val id: ChecklistTaskId,
|
||||
@SerialName(textEntitiesField)
|
||||
@@ -125,103 +125,135 @@ sealed interface ChecklistTask : TextedInput {
|
||||
)
|
||||
}
|
||||
|
||||
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
|
||||
@Serializable(Created.Serializer::class)
|
||||
data class Done(
|
||||
@SerialName(idField)
|
||||
override val id: ChecklistTaskId,
|
||||
@SerialName(completedByUserField)
|
||||
override val completedByUser: PreviewUser,
|
||||
@SerialName(completedByChatField)
|
||||
val completedByChat: PreviewChat? = null,
|
||||
@SerialName(completionDateField)
|
||||
override val completionDate: TelegramDate,
|
||||
@SerialName(textEntitiesField)
|
||||
override val textSources: List<TextSource> = emptyList()
|
||||
) : ChecklistTask.Created {
|
||||
@OptIn(ExperimentalSerializationApi::class)
|
||||
@EncodeDefault
|
||||
@Serializable
|
||||
@SerialName(textField)
|
||||
override val text: String = textSources.makeSourceString()
|
||||
|
||||
constructor(
|
||||
id: ChecklistTaskId,
|
||||
text: String,
|
||||
completedByUser: PreviewUser,
|
||||
completedByChat: PreviewChat? = null,
|
||||
completionDate: TelegramDate,
|
||||
): this(
|
||||
id,
|
||||
completedByUser,
|
||||
completedByChat,
|
||||
completionDate,
|
||||
listOf(
|
||||
RegularTextSource(text)
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
@Serializable(Created.Serializer::class)
|
||||
@Serializable(Serializer::class)
|
||||
sealed interface Created : ChecklistTask {
|
||||
val completedByUser: PreviewUser?
|
||||
get() = null
|
||||
val completedByChat: PreviewChat?
|
||||
get() = null
|
||||
val completionDate: TelegramDate?
|
||||
get() = null
|
||||
}
|
||||
|
||||
@RiskFeature
|
||||
object Serializer : KSerializer<Created> {
|
||||
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
|
||||
@Serializable(Serializer::class)
|
||||
sealed interface Completed : Created {
|
||||
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
|
||||
@Serializable(Serializer::class)
|
||||
data class ByUser(
|
||||
@SerialName(idField)
|
||||
override val id: ChecklistTaskId,
|
||||
@SerialName(completedByUserField)
|
||||
override val completedByUser: PreviewUser,
|
||||
@SerialName(completionDateField)
|
||||
override val completionDate: TelegramDate,
|
||||
@SerialName(textEntitiesField)
|
||||
override val textSources: List<TextSource> = emptyList()
|
||||
) : Completed {
|
||||
@OptIn(ExperimentalSerializationApi::class)
|
||||
@EncodeDefault
|
||||
@Serializable
|
||||
private data class RawCreatedChecklistTask(
|
||||
@SerialName(idField)
|
||||
val id: ChecklistTaskId,
|
||||
@SerialName(textField)
|
||||
val text: String,
|
||||
@SerialName(textEntitiesField)
|
||||
val textSources: List<RawMessageEntity> = emptyList(),
|
||||
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
|
||||
@SerialName(completedByUserField)
|
||||
val completedByUser: PreviewUser? = null,
|
||||
@SerialName(completedByChatField)
|
||||
val completedByChat: PreviewChat? = null,
|
||||
@SerialName(completionDateField)
|
||||
val completionDate: TelegramDate = TelegramDate(0), // TelegramDate(0) is the default according to https://core.telegram.org/bots/api#checklisttask
|
||||
@SerialName(textField)
|
||||
override val text: String = textSources.makeSourceString()
|
||||
}
|
||||
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
|
||||
@Serializable(Serializer::class)
|
||||
data class ByChat(
|
||||
@SerialName(idField)
|
||||
override val id: ChecklistTaskId,
|
||||
@SerialName(completedByChatField)
|
||||
override val completedByChat: PreviewChat,
|
||||
@SerialName(completionDateField)
|
||||
override val completionDate: TelegramDate,
|
||||
@SerialName(textEntitiesField)
|
||||
override val textSources: List<TextSource> = emptyList()
|
||||
) : Completed {
|
||||
@OptIn(ExperimentalSerializationApi::class)
|
||||
@EncodeDefault
|
||||
@Serializable
|
||||
@SerialName(textField)
|
||||
override val text: String = textSources.makeSourceString()
|
||||
}
|
||||
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
|
||||
@Serializable(Serializer::class)
|
||||
data class Common(
|
||||
@SerialName(idField)
|
||||
override val id: ChecklistTaskId,
|
||||
@SerialName(completionDateField)
|
||||
override val completionDate: TelegramDate,
|
||||
@SerialName(textEntitiesField)
|
||||
override val textSources: List<TextSource> = emptyList()
|
||||
) : Completed {
|
||||
@OptIn(ExperimentalSerializationApi::class)
|
||||
@EncodeDefault
|
||||
@Serializable
|
||||
@SerialName(textField)
|
||||
override val text: String = textSources.makeSourceString()
|
||||
}
|
||||
}
|
||||
|
||||
@RiskFeature
|
||||
object Serializer : KSerializer<Created> {
|
||||
@Serializable
|
||||
private data class RawCreatedChecklistTask(
|
||||
@SerialName(idField)
|
||||
val id: ChecklistTaskId,
|
||||
@SerialName(textField)
|
||||
val text: String,
|
||||
@SerialName(textEntitiesField)
|
||||
val textSources: List<RawMessageEntity> = emptyList(),
|
||||
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
|
||||
@SerialName(completedByUserField)
|
||||
val completedByUser: PreviewUser? = null,
|
||||
@SerialName(completedByChatField)
|
||||
val completedByChat: PreviewChat? = null,
|
||||
@SerialName(completionDateField)
|
||||
val completionDate: TelegramDate = TelegramDate.Start, // TelegramDate(0) is the default according to https://core.telegram.org/bots/api#checklisttask
|
||||
)
|
||||
override val descriptor: SerialDescriptor = RawCreatedChecklistTask.serializer().descriptor
|
||||
|
||||
override fun deserialize(decoder: Decoder): Created {
|
||||
val raw = RawCreatedChecklistTask.serializer().deserialize(
|
||||
decoder
|
||||
)
|
||||
override val descriptor: SerialDescriptor = RawCreatedChecklistTask.serializer().descriptor
|
||||
|
||||
override fun deserialize(decoder: Decoder): Created {
|
||||
val raw = RawCreatedChecklistTask.serializer().deserialize(
|
||||
decoder
|
||||
return when {
|
||||
raw.completionDate == TelegramDate.Start -> Uncompleted(
|
||||
id = raw.id,
|
||||
textSources = raw.textSources.asTextSources(raw.text),
|
||||
)
|
||||
|
||||
return when {
|
||||
raw.completedByUser != null -> Done(
|
||||
id = raw.id,
|
||||
completedByUser = raw.completedByUser,
|
||||
completedByChat = raw.completedByChat,
|
||||
completionDate = raw.completionDate,
|
||||
textSources = raw.textSources.asTextSources(raw.text),
|
||||
)
|
||||
else -> Undone(
|
||||
id = raw.id,
|
||||
textSources = raw.textSources.asTextSources(raw.text),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
override fun serialize(encoder: Encoder, value: Created) {
|
||||
RawCreatedChecklistTask.serializer().serialize(
|
||||
encoder,
|
||||
RawCreatedChecklistTask(
|
||||
id = value.id,
|
||||
text = value.text,
|
||||
completedByUser = value.completedByUser,
|
||||
completedByChat = (value as? Done)?.completedByChat,
|
||||
completionDate = value.completionDate ?: TelegramDate(0),
|
||||
textSources = value.textSources.toRawMessageEntities()
|
||||
)
|
||||
raw.completedByChat != null -> Completed.ByChat(
|
||||
id = raw.id,
|
||||
completedByChat = raw.completedByChat,
|
||||
completionDate = raw.completionDate,
|
||||
textSources = raw.textSources.asTextSources(raw.text),
|
||||
)
|
||||
raw.completedByUser != null -> Completed.ByUser(
|
||||
id = raw.id,
|
||||
completedByUser = raw.completedByUser,
|
||||
completionDate = raw.completionDate,
|
||||
textSources = raw.textSources.asTextSources(raw.text),
|
||||
)
|
||||
else -> Completed.Common(
|
||||
id = raw.id,
|
||||
completionDate = raw.completionDate,
|
||||
textSources = raw.textSources.asTextSources(raw.text),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
override fun serialize(encoder: Encoder, value: Created) {
|
||||
RawCreatedChecklistTask.serializer().serialize(
|
||||
encoder,
|
||||
RawCreatedChecklistTask(
|
||||
id = value.id,
|
||||
text = value.text,
|
||||
completedByUser = value.completedByUser,
|
||||
completedByChat = value.completedByChat,
|
||||
completionDate = value.completionDate ?: TelegramDate.Start,
|
||||
textSources = value.textSources.toRawMessageEntities()
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -18,6 +18,7 @@ import kotlinx.serialization.encoding.Encoder
|
||||
sealed interface Gift {
|
||||
val id: GiftId?
|
||||
val publisherChat: PreviewChat?
|
||||
val isPremium: Boolean
|
||||
@Serializable(Regular.Companion::class)
|
||||
sealed interface Regular : Gift {
|
||||
override val id: GiftId
|
||||
@@ -28,11 +29,13 @@ sealed interface Gift {
|
||||
val remainingCount: Int?
|
||||
val personalTotalCount: Int?
|
||||
val personalRemainingCount: Int?
|
||||
val isPremium: Boolean
|
||||
val hasColors: Boolean
|
||||
val background: dev.inmo.tgbotapi.types.gifts.GiftBackground?
|
||||
val background: GiftBackground?
|
||||
val uniqueGiftVariantCount: Int?
|
||||
|
||||
/**
|
||||
* Represents a [Gift](https://core.telegram.org/bots/api#gift) for fields of unlimited gifts
|
||||
*/
|
||||
@Serializable
|
||||
data class Unlimited(
|
||||
@SerialName(idField)
|
||||
@@ -49,12 +52,12 @@ sealed interface Gift {
|
||||
override val personalTotalCount: Int? = null,
|
||||
@SerialName(personalRemainingCountField)
|
||||
override val personalRemainingCount: Int? = null,
|
||||
@SerialName(isPremiumField2)
|
||||
@SerialName(isPremiumField)
|
||||
override val isPremium: Boolean = false,
|
||||
@SerialName(hasColorsField)
|
||||
override val hasColors: Boolean = false,
|
||||
@SerialName(backgroundField)
|
||||
override val background: dev.inmo.tgbotapi.types.gifts.GiftBackground? = null,
|
||||
override val background: GiftBackground? = null,
|
||||
@SerialName(uniqueGiftVariantCountField)
|
||||
override val uniqueGiftVariantCount: Int? = null,
|
||||
) : Regular {
|
||||
@@ -64,6 +67,9 @@ sealed interface Gift {
|
||||
get() = null
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents a [Gift](https://core.telegram.org/bots/api#gift) for fields of limited gifts
|
||||
*/
|
||||
@Serializable
|
||||
data class Limited(
|
||||
@SerialName(idField)
|
||||
@@ -84,12 +90,12 @@ sealed interface Gift {
|
||||
override val personalTotalCount: Int? = null,
|
||||
@SerialName(personalRemainingCountField)
|
||||
override val personalRemainingCount: Int? = null,
|
||||
@SerialName(isPremiumField2)
|
||||
@SerialName(isPremiumField)
|
||||
override val isPremium: Boolean = false,
|
||||
@SerialName(hasColorsField)
|
||||
override val hasColors: Boolean = false,
|
||||
@SerialName(backgroundField)
|
||||
override val background: dev.inmo.tgbotapi.types.gifts.GiftBackground? = null,
|
||||
override val background: GiftBackground? = null,
|
||||
@SerialName(uniqueGiftVariantCountField)
|
||||
override val uniqueGiftVariantCount: Int? = null,
|
||||
) : Regular
|
||||
@@ -109,7 +115,7 @@ sealed interface Gift {
|
||||
val personal_remaining_count: Int? = null,
|
||||
val is_premium: Boolean = false,
|
||||
val has_colors: Boolean = false,
|
||||
val background: dev.inmo.tgbotapi.types.gifts.GiftBackground? = null,
|
||||
val background: GiftBackground? = null,
|
||||
val unique_gift_variant_count: Int? = null,
|
||||
)
|
||||
|
||||
@@ -173,6 +179,9 @@ sealed interface Gift {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents a [UniqueGift](https://core.telegram.org/bots/api#uniquegift) from telegram bots api
|
||||
*/
|
||||
@Serializable
|
||||
data class Unique(
|
||||
@SerialName(giftIdField)
|
||||
@@ -180,7 +189,7 @@ sealed interface Gift {
|
||||
@SerialName(baseNameField)
|
||||
val baseName: String,
|
||||
@SerialName(nameField)
|
||||
val name: String,
|
||||
val name: UniqueGiftName,
|
||||
@SerialName(numberField)
|
||||
val number: Int,
|
||||
@SerialName(modelField)
|
||||
@@ -189,14 +198,16 @@ sealed interface Gift {
|
||||
val symbol: UniqueGiftSymbol,
|
||||
@SerialName(backdropField)
|
||||
val backdrop: UniqueGiftBackdrop,
|
||||
@SerialName(publisherChatField)
|
||||
override val publisherChat: PreviewChat? = null,
|
||||
@SerialName(isPremiumField)
|
||||
override val isPremium: Boolean = false,
|
||||
@SerialName(isBurnedField)
|
||||
val isBurned: Boolean = false,
|
||||
@SerialName(isFromBlockchainField)
|
||||
val isFromBlockchain: Boolean = false,
|
||||
@SerialName(isPremiumField2)
|
||||
val isPremium: Boolean = false,
|
||||
@SerialName(colorsField)
|
||||
val colors: UniqueGiftColors? = null
|
||||
val colors: UniqueGiftColors? = null,
|
||||
@SerialName(publisherChatField)
|
||||
override val publisherChat: PreviewChat? = null,
|
||||
) : Gift
|
||||
|
||||
companion object : KSerializer<Gift> {
|
||||
@@ -214,17 +225,17 @@ sealed interface Gift {
|
||||
val personal_remaining_count: Int? = null,
|
||||
val is_premium: Boolean = false,
|
||||
val has_colors: Boolean = false,
|
||||
val background: dev.inmo.tgbotapi.types.gifts.GiftBackground? = null,
|
||||
val background: GiftBackground? = null,
|
||||
val unique_gift_variant_count: Int? = null,
|
||||
// unique gift fields
|
||||
val base_name: String? = null,
|
||||
val name: String? = null,
|
||||
val name: UniqueGiftName? = null,
|
||||
val number: Int? = null,
|
||||
val model: UniqueGiftModel? = null,
|
||||
val symbol: UniqueGiftSymbol? = null,
|
||||
val backdrop: UniqueGiftBackdrop? = null,
|
||||
val is_from_blockchain: Boolean = false,
|
||||
val colors: dev.inmo.tgbotapi.types.gifts.unique.UniqueGiftColors? = null,
|
||||
val colors: UniqueGiftColors? = null,
|
||||
val publisher_chat: PreviewChat? = null,
|
||||
)
|
||||
|
||||
|
||||
@@ -2,7 +2,6 @@ package dev.inmo.tgbotapi.types.gifts
|
||||
|
||||
import dev.inmo.tgbotapi.abstracts.TextedInput
|
||||
import dev.inmo.tgbotapi.types.*
|
||||
import dev.inmo.tgbotapi.types.gifts.GiftSentOrReceived.Unique.Common
|
||||
import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.CommonEvent
|
||||
import dev.inmo.tgbotapi.types.message.RawMessageEntities
|
||||
import dev.inmo.tgbotapi.types.message.asTextSources
|
||||
@@ -10,8 +9,6 @@ import dev.inmo.tgbotapi.types.message.textsources.TextSource
|
||||
import dev.inmo.tgbotapi.types.message.textsources.TextSourcesList
|
||||
import dev.inmo.tgbotapi.types.message.toRawMessageEntities
|
||||
import dev.inmo.tgbotapi.types.payments.abstracts.Currency
|
||||
import dev.inmo.tgbotapi.utils.internal.ClassCastsIncluded
|
||||
import kotlinx.serialization.EncodeDefault
|
||||
import kotlinx.serialization.KSerializer
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
@@ -25,28 +22,34 @@ import kotlin.jvm.JvmName
|
||||
|
||||
|
||||
/**
|
||||
* Represent Telegram Bots API abstraction [OwnedGiftUnique](https://core.telegram.org/bots/api#giftinfo) and
|
||||
* Represent Telegram Bots API abstraction [GiftInfo](https://core.telegram.org/bots/api#giftinfo) and
|
||||
* [UniqueGiftInfo](https://core.telegram.org/bots/api#uniquegiftinfo)
|
||||
*
|
||||
* @see ReceivedInBusinessAccount
|
||||
* @see Regular.Common
|
||||
* @see Regular.ReceivedInBusinessAccount
|
||||
* @see Unique.Common
|
||||
* @see Unique.ReceivedInBusinessAccount
|
||||
* @see RegularGift.Common
|
||||
* @see RegularGift.ReceivedInBusinessAccount
|
||||
* @see UniqueGift.Common
|
||||
* @see UniqueGift.ReceivedInBusinessAccount
|
||||
*/
|
||||
@Serializable
|
||||
sealed interface GiftSentOrReceived : CommonEvent {
|
||||
sealed interface GiftSentOrReceivedEvent : CommonEvent {
|
||||
val ownedGiftId: GiftId?
|
||||
val gift: Gift
|
||||
val nextTransferDate: TelegramDate?
|
||||
|
||||
@Serializable
|
||||
sealed interface ReceivedInBusinessAccount : GiftSentOrReceived {
|
||||
sealed interface ReceivedInBusinessAccount : GiftSentOrReceivedEvent {
|
||||
override val ownedGiftId: GiftId
|
||||
}
|
||||
|
||||
@Serializable(Regular.Companion::class)
|
||||
sealed interface Regular : GiftSentOrReceived, TextedInput {
|
||||
/**
|
||||
* Represent the hierarchy of [GiftInfo](https://core.telegram.org/bots/api#giftinfo).
|
||||
*
|
||||
* * For `GiftInfo` **with** `owned_gift_id` see [RegularGift.ReceivedInBusinessAccount]
|
||||
* * For all other kinds see [RegularGift.Common]
|
||||
*/
|
||||
@Serializable(RegularGift.Companion::class)
|
||||
sealed interface RegularGift : GiftSentOrReceivedEvent, TextedInput {
|
||||
override val gift: Gift.Regular
|
||||
val convertStarCount: Int?
|
||||
val prepaidUpgradeStarCount: Int?
|
||||
@@ -77,7 +80,7 @@ sealed interface GiftSentOrReceived : CommonEvent {
|
||||
override val uniqueGiftNumber: Int? = null,
|
||||
@SerialName(nextTransferDateField)
|
||||
override val nextTransferDate: TelegramDate? = null
|
||||
) : Regular {
|
||||
) : RegularGift {
|
||||
override val textSources: List<TextSource> by lazy {
|
||||
entities ?.asTextSources(text ?: return@lazy emptyList()) ?: emptyList()
|
||||
}
|
||||
@@ -109,13 +112,13 @@ sealed interface GiftSentOrReceived : CommonEvent {
|
||||
override val uniqueGiftNumber: Int? = null,
|
||||
@SerialName(nextTransferDateField)
|
||||
override val nextTransferDate: TelegramDate? = null
|
||||
) : Regular, GiftSentOrReceived.ReceivedInBusinessAccount {
|
||||
) : RegularGift, GiftSentOrReceivedEvent.ReceivedInBusinessAccount {
|
||||
override val textSources: List<TextSource> by lazy {
|
||||
entities ?.asTextSources(text ?: return@lazy emptyList()) ?: emptyList()
|
||||
}
|
||||
}
|
||||
|
||||
companion object : KSerializer<GiftSentOrReceived.Regular> {
|
||||
companion object : KSerializer<GiftSentOrReceivedEvent.RegularGift> {
|
||||
@Serializable
|
||||
private data class Surrogate(
|
||||
@SerialName(giftField)
|
||||
@@ -145,14 +148,14 @@ sealed interface GiftSentOrReceived : CommonEvent {
|
||||
override val descriptor: SerialDescriptor
|
||||
get() = Surrogate.serializer().descriptor
|
||||
|
||||
override fun serialize(encoder: Encoder, value: Regular) {
|
||||
override fun serialize(encoder: Encoder, value: RegularGift) {
|
||||
when (value) {
|
||||
is Common -> Common.serializer().serialize(encoder, value)
|
||||
is ReceivedInBusinessAccount -> ReceivedInBusinessAccount.serializer().serialize(encoder, value)
|
||||
}
|
||||
}
|
||||
|
||||
override fun deserialize(decoder: Decoder): Regular {
|
||||
override fun deserialize(decoder: Decoder): RegularGift {
|
||||
val surrogate = Surrogate.serializer().deserialize(decoder)
|
||||
|
||||
return when {
|
||||
@@ -227,8 +230,14 @@ sealed interface GiftSentOrReceived : CommonEvent {
|
||||
}
|
||||
}
|
||||
|
||||
@Serializable(Unique.Companion::class)
|
||||
sealed interface Unique : GiftSentOrReceived {
|
||||
/**
|
||||
* Represent the hierarchy of [UniqueGiftInfo](https://core.telegram.org/bots/api#uniquegiftinfo).
|
||||
*
|
||||
* * For `UniqueGiftInfo` **with** `owned_gift_id` see [UniqueGift.ReceivedInBusinessAccount]
|
||||
* * For all other kinds see [UniqueGift.Common]
|
||||
*/
|
||||
@Serializable(UniqueGift.Companion::class)
|
||||
sealed interface UniqueGift : GiftSentOrReceivedEvent {
|
||||
override val gift: Gift.Unique
|
||||
val origin: String?
|
||||
val originTyped: Origin?
|
||||
@@ -299,7 +308,7 @@ sealed interface GiftSentOrReceived : CommonEvent {
|
||||
override val transferStarCount: Int? = null,
|
||||
@SerialName(nextTransferDateField)
|
||||
override val nextTransferDate: TelegramDate? = null
|
||||
) : Unique {
|
||||
) : UniqueGift {
|
||||
override val ownedGiftId: GiftId?
|
||||
get() = null
|
||||
|
||||
@@ -344,7 +353,7 @@ sealed interface GiftSentOrReceived : CommonEvent {
|
||||
override val transferStarCount: Int? = null,
|
||||
@SerialName(nextTransferDateField)
|
||||
override val nextTransferDate: TelegramDate? = null
|
||||
) : Unique, GiftSentOrReceived.ReceivedInBusinessAccount {
|
||||
) : UniqueGift, GiftSentOrReceivedEvent.ReceivedInBusinessAccount {
|
||||
@Transient
|
||||
override val origin: String? = originTyped ?.string
|
||||
|
||||
@@ -369,7 +378,7 @@ sealed interface GiftSentOrReceived : CommonEvent {
|
||||
)
|
||||
}
|
||||
|
||||
companion object : KSerializer<GiftSentOrReceived.Unique> {
|
||||
companion object : KSerializer<GiftSentOrReceivedEvent.UniqueGift> {
|
||||
@Serializable
|
||||
private data class Surrogate(
|
||||
@SerialName(giftField)
|
||||
@@ -393,14 +402,14 @@ sealed interface GiftSentOrReceived : CommonEvent {
|
||||
override val descriptor: SerialDescriptor
|
||||
get() = Surrogate.serializer().descriptor
|
||||
|
||||
override fun serialize(encoder: Encoder, value: Unique) {
|
||||
override fun serialize(encoder: Encoder, value: UniqueGift) {
|
||||
when (value) {
|
||||
is Common -> Common.serializer().serialize(encoder, value)
|
||||
is ReceivedInBusinessAccount -> ReceivedInBusinessAccount.serializer().serialize(encoder, value)
|
||||
}
|
||||
}
|
||||
|
||||
override fun deserialize(decoder: Decoder): Unique {
|
||||
override fun deserialize(decoder: Decoder): UniqueGift {
|
||||
val surrogate = Surrogate.serializer().deserialize(decoder)
|
||||
|
||||
return when {
|
||||
@@ -450,3 +459,6 @@ sealed interface GiftSentOrReceived : CommonEvent {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Deprecated("Renamed to GiftSentOrReceivedEvent", ReplaceWith("GiftSentOrReceivedEvent", "dev.inmo.tgbotapi.types.gifts.GiftSentOrReceivedEvent"))
|
||||
typealias GiftSentOrReceived = GiftSentOrReceivedEvent
|
||||
@@ -0,0 +1,348 @@
|
||||
package dev.inmo.tgbotapi.types.gifts
|
||||
|
||||
import dev.inmo.tgbotapi.abstracts.TextedInput
|
||||
import dev.inmo.tgbotapi.types.*
|
||||
import dev.inmo.tgbotapi.types.chat.PreviewUser
|
||||
import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.CommonEvent
|
||||
import dev.inmo.tgbotapi.types.message.RawMessageEntities
|
||||
import dev.inmo.tgbotapi.types.message.asTextSources
|
||||
import dev.inmo.tgbotapi.types.message.textsources.TextSource
|
||||
import dev.inmo.tgbotapi.types.message.textsources.TextSourcesList
|
||||
import dev.inmo.tgbotapi.types.message.toRawMessageEntities
|
||||
import dev.inmo.tgbotapi.types.payments.abstracts.Currency
|
||||
import kotlinx.serialization.KSerializer
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
import kotlinx.serialization.builtins.serializer
|
||||
import kotlinx.serialization.descriptors.SerialDescriptor
|
||||
import kotlinx.serialization.encoding.Decoder
|
||||
import kotlinx.serialization.encoding.Encoder
|
||||
import kotlinx.serialization.json.JsonDecoder
|
||||
import kotlinx.serialization.json.JsonElement
|
||||
import kotlinx.serialization.json.jsonObject
|
||||
import kotlinx.serialization.json.jsonPrimitive
|
||||
import kotlin.jvm.JvmInline
|
||||
import kotlin.jvm.JvmName
|
||||
|
||||
@Serializable(OwnedGift.Companion::class)
|
||||
sealed interface OwnedGift {
|
||||
val gift: Gift
|
||||
val sendDate: TelegramDate
|
||||
val ownedGiftId: GiftId?
|
||||
val senderUser: PreviewUser?
|
||||
val isSaved: Boolean
|
||||
|
||||
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
|
||||
@Serializable(OwnedGift.Companion::class)
|
||||
sealed interface OwnedByBusinessAccount : OwnedGift {
|
||||
override val ownedGiftId: GiftId
|
||||
}
|
||||
|
||||
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
|
||||
@Serializable(OwnedGift.Companion::class)
|
||||
sealed interface Common : OwnedGift {
|
||||
override val ownedGiftId: GiftId?
|
||||
get() = null
|
||||
}
|
||||
|
||||
@Serializable(Regular.Companion::class)
|
||||
sealed interface Regular : OwnedGift, TextedInput {
|
||||
override val gift: Gift.Regular
|
||||
val isPrivate: Boolean
|
||||
val canBeUpgraded: Boolean
|
||||
val wasRefunded: Boolean
|
||||
val convertStarCount: Int?
|
||||
val prepaidUpgradeStarCount: Int?
|
||||
val isUpgradeSeparate: Boolean
|
||||
val uniqueGiftNumber: Int?
|
||||
|
||||
@Serializable
|
||||
data class Common(
|
||||
@SerialName(giftField)
|
||||
override val gift: Gift.Regular,
|
||||
@SerialName(sendDateField)
|
||||
override val sendDate: TelegramDate,
|
||||
@SerialName(senderUserField)
|
||||
override val senderUser: PreviewUser? = null,
|
||||
@SerialName(textField)
|
||||
override val text: String? = null,
|
||||
@SerialName(entitiesField)
|
||||
private val entities: RawMessageEntities? = null,
|
||||
@SerialName(isPrivateField)
|
||||
override val isPrivate: Boolean = false,
|
||||
@SerialName(isSavedField)
|
||||
override val isSaved: Boolean = false,
|
||||
@SerialName(canBeUpgradedField)
|
||||
override val canBeUpgraded: Boolean = false,
|
||||
@SerialName(wasRefundedField)
|
||||
override val wasRefunded: Boolean = false,
|
||||
@SerialName(convertStarCountField)
|
||||
override val convertStarCount: Int? = null,
|
||||
@SerialName(prepaidUpgradeStarCountField)
|
||||
override val prepaidUpgradeStarCount: Int? = null,
|
||||
@SerialName(isUpgradeSeparateField)
|
||||
override val isUpgradeSeparate: Boolean = false,
|
||||
@SerialName(uniqueGiftNumberField)
|
||||
override val uniqueGiftNumber: Int? = null
|
||||
) : Regular, OwnedGift.Common {
|
||||
override val textSources: List<TextSource> by lazy {
|
||||
entities ?.asTextSources(text ?: return@lazy emptyList()) ?: emptyList()
|
||||
}
|
||||
}
|
||||
|
||||
@Serializable
|
||||
data class OwnedByBusinessAccount(
|
||||
@SerialName(giftField)
|
||||
override val gift: Gift.Regular,
|
||||
@SerialName(sendDateField)
|
||||
override val sendDate: TelegramDate,
|
||||
@SerialName(ownedGiftIdField)
|
||||
override val ownedGiftId: GiftId,
|
||||
@SerialName(senderUserField)
|
||||
override val senderUser: PreviewUser? = null,
|
||||
@SerialName(textField)
|
||||
override val text: String? = null,
|
||||
@SerialName(entitiesField)
|
||||
private val entities: RawMessageEntities? = null,
|
||||
@SerialName(isPrivateField)
|
||||
override val isPrivate: Boolean = false,
|
||||
@SerialName(isSavedField)
|
||||
override val isSaved: Boolean = false,
|
||||
@SerialName(canBeUpgradedField)
|
||||
override val canBeUpgraded: Boolean = false,
|
||||
@SerialName(wasRefundedField)
|
||||
override val wasRefunded: Boolean = false,
|
||||
@SerialName(convertStarCountField)
|
||||
override val convertStarCount: Int? = null,
|
||||
@SerialName(prepaidUpgradeStarCountField)
|
||||
override val prepaidUpgradeStarCount: Int? = null,
|
||||
@SerialName(isUpgradeSeparateField)
|
||||
override val isUpgradeSeparate: Boolean = false,
|
||||
@SerialName(uniqueGiftNumberField)
|
||||
override val uniqueGiftNumber: Int? = null
|
||||
) : Regular, OwnedGift.OwnedByBusinessAccount {
|
||||
override val textSources: List<TextSource> by lazy {
|
||||
entities ?.asTextSources(text ?: return@lazy emptyList()) ?: emptyList()
|
||||
}
|
||||
}
|
||||
|
||||
companion object : KSerializer<OwnedGift.Regular> {
|
||||
@Serializable
|
||||
private data class Surrogate(
|
||||
@SerialName(giftField)
|
||||
val gift: Gift.Regular,
|
||||
@SerialName(ownedGiftIdField)
|
||||
val ownedGiftId: GiftId? = null,
|
||||
@SerialName(senderUserField)
|
||||
val senderUser: PreviewUser? = null,
|
||||
@SerialName(sendDateField)
|
||||
val sendDate: TelegramDate,
|
||||
@SerialName(textField)
|
||||
val text: String? = null,
|
||||
@SerialName(entitiesField)
|
||||
val entities: RawMessageEntities? = null,
|
||||
@SerialName(isPrivateField)
|
||||
val isPrivate: Boolean = false,
|
||||
@SerialName(isSavedField)
|
||||
val isSaved: Boolean = false,
|
||||
@SerialName(canBeUpgradedField)
|
||||
val canBeUpgraded: Boolean = false,
|
||||
@SerialName(wasRefundedField)
|
||||
val wasRefunded: Boolean = false,
|
||||
@SerialName(convertStarCountField)
|
||||
val convertStarCount: Int? = null,
|
||||
@SerialName(prepaidUpgradeStarCountField)
|
||||
val prepaidUpgradeStarCount: Int? = null,
|
||||
@SerialName(isUpgradeSeparateField)
|
||||
val isUpgradeSeparate: Boolean = false,
|
||||
@SerialName(uniqueGiftNumberField)
|
||||
val uniqueGiftNumber: Int? = null
|
||||
)
|
||||
|
||||
override val descriptor: SerialDescriptor
|
||||
get() = Surrogate.serializer().descriptor
|
||||
|
||||
override fun serialize(encoder: Encoder, value: Regular) {
|
||||
when (value) {
|
||||
is Common -> Common.serializer().serialize(encoder, value)
|
||||
is OwnedByBusinessAccount -> OwnedByBusinessAccount.serializer().serialize(encoder, value)
|
||||
}
|
||||
}
|
||||
|
||||
override fun deserialize(decoder: Decoder): Regular {
|
||||
val surrogate = Surrogate.serializer().deserialize(decoder)
|
||||
|
||||
return when {
|
||||
surrogate.ownedGiftId == null -> {
|
||||
Common(
|
||||
gift = surrogate.gift,
|
||||
sendDate = surrogate.sendDate,
|
||||
senderUser = surrogate.senderUser,
|
||||
text = surrogate.text,
|
||||
entities = surrogate.entities,
|
||||
isPrivate = surrogate.isPrivate,
|
||||
isSaved = surrogate.isSaved,
|
||||
canBeUpgraded = surrogate.canBeUpgraded,
|
||||
wasRefunded = surrogate.wasRefunded,
|
||||
convertStarCount = surrogate.convertStarCount,
|
||||
prepaidUpgradeStarCount = surrogate.prepaidUpgradeStarCount,
|
||||
isUpgradeSeparate = surrogate.isUpgradeSeparate,
|
||||
uniqueGiftNumber = surrogate.uniqueGiftNumber
|
||||
)
|
||||
}
|
||||
else -> {
|
||||
OwnedByBusinessAccount(
|
||||
gift = surrogate.gift,
|
||||
sendDate = surrogate.sendDate,
|
||||
ownedGiftId = surrogate.ownedGiftId,
|
||||
senderUser = surrogate.senderUser,
|
||||
text = surrogate.text,
|
||||
entities = surrogate.entities,
|
||||
isPrivate = surrogate.isPrivate,
|
||||
isSaved = surrogate.isSaved,
|
||||
canBeUpgraded = surrogate.canBeUpgraded,
|
||||
wasRefunded = surrogate.wasRefunded,
|
||||
convertStarCount = surrogate.convertStarCount,
|
||||
prepaidUpgradeStarCount = surrogate.prepaidUpgradeStarCount,
|
||||
isUpgradeSeparate = surrogate.isUpgradeSeparate,
|
||||
uniqueGiftNumber = surrogate.uniqueGiftNumber
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Serializable(Unique.Companion::class)
|
||||
sealed interface Unique : OwnedGift {
|
||||
override val gift: Gift.Unique
|
||||
val canBeTransferred: Boolean
|
||||
val transferStarCount: Int?
|
||||
val nextTransferDate: TelegramDate?
|
||||
|
||||
@Serializable
|
||||
data class Common(
|
||||
@SerialName(giftField)
|
||||
override val gift: Gift.Unique,
|
||||
@SerialName(sendDateField)
|
||||
override val sendDate: TelegramDate,
|
||||
@SerialName(senderUserField)
|
||||
override val senderUser: PreviewUser? = null,
|
||||
@SerialName(isSavedField)
|
||||
override val isSaved: Boolean = false,
|
||||
@SerialName(canBeTransferredField)
|
||||
override val canBeTransferred: Boolean = false,
|
||||
@SerialName(transferStarCountField)
|
||||
override val transferStarCount: Int? = null,
|
||||
@SerialName(nextTransferDateField)
|
||||
override val nextTransferDate: TelegramDate? = null
|
||||
) : Unique, OwnedGift.Common
|
||||
|
||||
@Serializable
|
||||
data class OwnedByBusinessAccount(
|
||||
@SerialName(giftField)
|
||||
override val gift: Gift.Unique,
|
||||
@SerialName(sendDateField)
|
||||
override val sendDate: TelegramDate,
|
||||
@SerialName(ownedGiftIdField)
|
||||
override val ownedGiftId: GiftId,
|
||||
@SerialName(senderUserField)
|
||||
override val senderUser: PreviewUser? = null,
|
||||
@SerialName(isSavedField)
|
||||
override val isSaved: Boolean = false,
|
||||
@SerialName(canBeTransferredField)
|
||||
override val canBeTransferred: Boolean = false,
|
||||
@SerialName(transferStarCountField)
|
||||
override val transferStarCount: Int? = null,
|
||||
@SerialName(nextTransferDateField)
|
||||
override val nextTransferDate: TelegramDate? = null
|
||||
) : Unique, OwnedGift.OwnedByBusinessAccount
|
||||
|
||||
companion object : KSerializer<OwnedGift.Unique> {
|
||||
@Serializable
|
||||
private data class Surrogate(
|
||||
@SerialName(giftField)
|
||||
val gift: Gift.Unique,
|
||||
@SerialName(ownedGiftIdField)
|
||||
val ownedGiftId: GiftId? = null,
|
||||
@SerialName(senderUserField)
|
||||
val senderUser: PreviewUser? = null,
|
||||
@SerialName(sendDateField)
|
||||
val sendDate: TelegramDate,
|
||||
@SerialName(isSavedField)
|
||||
val isSaved: Boolean = false,
|
||||
@SerialName(canBeTransferredField)
|
||||
val canBeTransferred: Boolean = false,
|
||||
@SerialName(transferStarCountField)
|
||||
val transferStarCount: Int? = null,
|
||||
@SerialName(nextTransferDateField)
|
||||
val nextTransferDate: TelegramDate? = null
|
||||
)
|
||||
|
||||
override val descriptor: SerialDescriptor
|
||||
get() = Surrogate.serializer().descriptor
|
||||
|
||||
override fun serialize(encoder: Encoder, value: Unique) {
|
||||
when (value) {
|
||||
is Common -> Common.serializer().serialize(encoder, value)
|
||||
is OwnedByBusinessAccount -> OwnedByBusinessAccount.serializer().serialize(encoder, value)
|
||||
}
|
||||
}
|
||||
|
||||
override fun deserialize(decoder: Decoder): Unique {
|
||||
val surrogate = Surrogate.serializer().deserialize(decoder)
|
||||
|
||||
return when {
|
||||
surrogate.ownedGiftId == null -> {
|
||||
Common(
|
||||
gift = surrogate.gift,
|
||||
sendDate = surrogate.sendDate,
|
||||
senderUser = surrogate.senderUser,
|
||||
isSaved = surrogate.isSaved,
|
||||
canBeTransferred = surrogate.canBeTransferred,
|
||||
transferStarCount = surrogate.transferStarCount,
|
||||
nextTransferDate = surrogate.nextTransferDate
|
||||
)
|
||||
}
|
||||
else -> {
|
||||
OwnedByBusinessAccount(
|
||||
gift = surrogate.gift,
|
||||
sendDate = surrogate.sendDate,
|
||||
ownedGiftId = surrogate.ownedGiftId,
|
||||
senderUser = surrogate.senderUser,
|
||||
isSaved = surrogate.isSaved,
|
||||
canBeTransferred = surrogate.canBeTransferred,
|
||||
transferStarCount = surrogate.transferStarCount,
|
||||
nextTransferDate = surrogate.nextTransferDate
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
companion object : KSerializer<OwnedGift> {
|
||||
override val descriptor: SerialDescriptor
|
||||
get() = JsonElement.serializer().descriptor
|
||||
|
||||
override fun serialize(encoder: Encoder, value: OwnedGift) {
|
||||
when (value) {
|
||||
is Regular -> Regular.serialize(encoder, value)
|
||||
is Unique -> Unique.serialize(encoder, value)
|
||||
}
|
||||
}
|
||||
|
||||
override fun deserialize(decoder: Decoder): OwnedGift {
|
||||
val json = (decoder as JsonDecoder)
|
||||
val element = json.decodeJsonElement()
|
||||
val type = element.jsonObject[typeField] ?.jsonPrimitive ?.content
|
||||
|
||||
return when (type) {
|
||||
"regular" -> json.json.decodeFromJsonElement(Regular, element)
|
||||
"unique" -> json.json.decodeFromJsonElement(Unique, element)
|
||||
else -> error("Unknown OwnedGift type: $type")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
package dev.inmo.tgbotapi.types.gifts
|
||||
|
||||
import kotlinx.serialization.KSerializer
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.builtins.serializer
|
||||
import kotlinx.serialization.descriptors.SerialDescriptor
|
||||
import kotlinx.serialization.encoding.Decoder
|
||||
import kotlinx.serialization.encoding.Encoder
|
||||
|
||||
@Serializable(Rarity.Companion::class)
|
||||
sealed interface Rarity {
|
||||
val name: String
|
||||
|
||||
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
|
||||
@Serializable(Rarity.Companion::class)
|
||||
data object Uncommon : Rarity { override val name: String = "uncommon" }
|
||||
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
|
||||
@Serializable(Rarity.Companion::class)
|
||||
data object Rare : Rarity { override val name: String = "rare" }
|
||||
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
|
||||
@Serializable(Rarity.Companion::class)
|
||||
data object Epic : Rarity { override val name: String = "epic" }
|
||||
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
|
||||
@Serializable(Rarity.Companion::class)
|
||||
data object Legendary : Rarity { override val name: String = "legendary" }
|
||||
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
|
||||
@Serializable(Rarity.Companion::class)
|
||||
data class Custom(override val name: String) : Rarity
|
||||
|
||||
companion object : KSerializer<Rarity> {
|
||||
override val descriptor: SerialDescriptor = String.serializer().descriptor
|
||||
|
||||
fun fromString(value: String): Rarity = when (value) {
|
||||
Uncommon.name -> Uncommon
|
||||
Rare.name -> Rare
|
||||
Epic.name -> Epic
|
||||
Legendary.name -> Legendary
|
||||
else -> Custom(value)
|
||||
}
|
||||
|
||||
override fun deserialize(decoder: Decoder): Rarity {
|
||||
val value = decoder.decodeString()
|
||||
return fromString(value)
|
||||
}
|
||||
|
||||
override fun serialize(
|
||||
encoder: Encoder,
|
||||
value: Rarity
|
||||
) {
|
||||
encoder.encodeString(value.name)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package dev.inmo.tgbotapi.types.gifts
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlin.jvm.JvmInline
|
||||
|
||||
/**
|
||||
* Represents a name for a unique gift, encapsulating its value as a single, immutable string.
|
||||
*/
|
||||
@Serializable
|
||||
@JvmInline
|
||||
value class UniqueGiftName(val value: String) {
|
||||
val nftLink
|
||||
get() = "https://t.me/nft/$value"
|
||||
}
|
||||
@@ -1,7 +1,9 @@
|
||||
package dev.inmo.tgbotapi.types.gifts.unique
|
||||
|
||||
import dev.inmo.tgbotapi.types.files.Sticker
|
||||
import dev.inmo.tgbotapi.types.gifts.Rarity
|
||||
import dev.inmo.tgbotapi.types.nameField
|
||||
import dev.inmo.tgbotapi.types.rarityField
|
||||
import dev.inmo.tgbotapi.types.rarityPerMilleField
|
||||
import dev.inmo.tgbotapi.types.stickerField
|
||||
import kotlinx.serialization.SerialName
|
||||
@@ -15,5 +17,7 @@ data class UniqueGiftModel(
|
||||
@SerialName(stickerField)
|
||||
val sticker: Sticker,
|
||||
@SerialName(rarityPerMilleField)
|
||||
val rarityPerMille: Int
|
||||
val rarityPerMille: Int,
|
||||
@SerialName(rarityField)
|
||||
val rarity: Rarity? = null
|
||||
)
|
||||
|
||||
@@ -14,7 +14,7 @@ import dev.inmo.tgbotapi.types.dice.Dice
|
||||
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.gifts.GiftSentOrReceived
|
||||
import dev.inmo.tgbotapi.types.gifts.GiftSentOrReceivedEvent
|
||||
import dev.inmo.tgbotapi.types.giveaway.*
|
||||
import dev.inmo.tgbotapi.types.message.content.GiveawayContent
|
||||
import dev.inmo.tgbotapi.types.location.Location
|
||||
@@ -199,9 +199,9 @@ internal data class RawMessage(
|
||||
private val suggested_post_refunded: SuggestedPostRefunded? = null,
|
||||
private val suggested_post_info: SuggestedPostInfo? = null,
|
||||
// Gifts
|
||||
private val gift: GiftSentOrReceived.Regular? = null,
|
||||
private val unique_gift: GiftSentOrReceived.Unique? = null,
|
||||
private val gift_upgrade_sent: GiftSentOrReceived? = null,
|
||||
private val gift: GiftSentOrReceivedEvent.RegularGift? = null,
|
||||
private val unique_gift: GiftSentOrReceivedEvent.UniqueGift? = null,
|
||||
private val gift_upgrade_sent: GiftSentOrReceivedEvent.RegularGift? = null,
|
||||
private val chat_owner_left: ChatOwnerLeft? = null,
|
||||
private val chat_owner_changed: ChatOwnerChanged? = null,
|
||||
) {
|
||||
|
||||
@@ -19,7 +19,7 @@ import kotlinx.serialization.json.JsonElement
|
||||
@ClassCastsIncluded
|
||||
sealed interface StarTransaction : Amounted {
|
||||
val id: StarTransactionId
|
||||
val nanostarAmount: Int
|
||||
val nanostarAmount: Int?
|
||||
val date: TelegramDate
|
||||
val partner: TransactionPartner
|
||||
val source: TransactionPartner?
|
||||
@@ -32,7 +32,7 @@ sealed interface StarTransaction : Amounted {
|
||||
@SerialName(amountField)
|
||||
override val amount: Long,
|
||||
@SerialName(nanostarAmountField)
|
||||
override val nanostarAmount: Int,
|
||||
override val nanostarAmount: Int?,
|
||||
@SerialName(dateField)
|
||||
override val date: TelegramDate,
|
||||
@SerialName(sourceField)
|
||||
@@ -52,7 +52,7 @@ sealed interface StarTransaction : Amounted {
|
||||
@SerialName(amountField)
|
||||
override val amount: Long,
|
||||
@SerialName(nanostarAmountField)
|
||||
override val nanostarAmount: Int,
|
||||
override val nanostarAmount: Int?,
|
||||
@SerialName(dateField)
|
||||
override val date: TelegramDate,
|
||||
@SerialName(receiverField)
|
||||
@@ -71,7 +71,7 @@ sealed interface StarTransaction : Amounted {
|
||||
override val id: StarTransactionId,
|
||||
override val amount: Long,
|
||||
@SerialName(nanostarAmountField)
|
||||
override val nanostarAmount: Int,
|
||||
override val nanostarAmount: Int?,
|
||||
override val date: TelegramDate,
|
||||
override val source: TransactionPartner?,
|
||||
override val receiver: TransactionPartner?,
|
||||
@@ -86,9 +86,9 @@ sealed interface StarTransaction : Amounted {
|
||||
private data class Surrogate(
|
||||
val id: StarTransactionId,
|
||||
val amount: Long,
|
||||
@SerialName(nanostarAmountField)
|
||||
val nanostarAmount: Int,
|
||||
val date: TelegramDate,
|
||||
@SerialName(nanostarAmountField)
|
||||
val nanostarAmount: Int? = null,
|
||||
val source: TransactionPartner? = null,
|
||||
val receiver: TransactionPartner? = null,
|
||||
)
|
||||
|
||||
@@ -4,6 +4,7 @@ package dev.inmo.tgbotapi.types.stories
|
||||
|
||||
import dev.inmo.micro_utils.colors.common.HEXAColor
|
||||
import dev.inmo.tgbotapi.types.*
|
||||
import dev.inmo.tgbotapi.types.gifts.UniqueGiftName
|
||||
import dev.inmo.tgbotapi.types.location.LocationAddress
|
||||
import dev.inmo.tgbotapi.types.reactions.ReactionType
|
||||
import dev.inmo.tgbotapi.utils.IntRGB24HEXAColorSerializer
|
||||
@@ -94,7 +95,7 @@ sealed interface StoryAreaType {
|
||||
@Serializable
|
||||
data class UniqueGift(
|
||||
@SerialName(nameField)
|
||||
val name: String
|
||||
val name: UniqueGiftName
|
||||
) : StoryAreaType {
|
||||
@EncodeDefault
|
||||
override val type: Type = Companion
|
||||
@@ -194,7 +195,7 @@ sealed interface StoryAreaType {
|
||||
)
|
||||
is UniqueGift -> Surrogate(
|
||||
type = value.type.name,
|
||||
name = value.name
|
||||
name = value.name.value
|
||||
)
|
||||
is Unknown -> Surrogate(
|
||||
type = value.type.name
|
||||
@@ -227,7 +228,7 @@ sealed interface StoryAreaType {
|
||||
backgroundColor = surrogate.backgroundColor ?: return unknown
|
||||
)
|
||||
UniqueGift.name -> UniqueGift(
|
||||
name = surrogate.name ?: return unknown
|
||||
name = surrogate.name ?.let(::UniqueGiftName) ?: return unknown
|
||||
)
|
||||
else -> unknown
|
||||
}
|
||||
|
||||
@@ -1513,22 +1513,22 @@ public final class dev/inmo/tgbotapi/extensions/utils/ClassCastsNewKt {
|
||||
public static final fun generalForumTopicUnhiddenOrThrow (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/message/ChatEvents/forum/GeneralForumTopicUnhidden;
|
||||
public static final fun giftCodeOrNull (Ldev/inmo/tgbotapi/types/boosts/ChatBoostSource;)Ldev/inmo/tgbotapi/types/boosts/ChatBoostSource$GiftCode;
|
||||
public static final fun giftCodeOrThrow (Ldev/inmo/tgbotapi/types/boosts/ChatBoostSource;)Ldev/inmo/tgbotapi/types/boosts/ChatBoostSource$GiftCode;
|
||||
public static final fun giftSentOrReceivedOrNull (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/gifts/GiftSentOrReceived;
|
||||
public static final fun giftSentOrReceivedOrThrow (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/gifts/GiftSentOrReceived;
|
||||
public static final fun giftSentOrReceivedReceivedInBusinessAccountOrNull (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/gifts/GiftSentOrReceived$ReceivedInBusinessAccount;
|
||||
public static final fun giftSentOrReceivedReceivedInBusinessAccountOrThrow (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/gifts/GiftSentOrReceived$ReceivedInBusinessAccount;
|
||||
public static final fun giftSentOrReceivedRegularCommonOrNull (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/gifts/GiftSentOrReceived$Regular$Common;
|
||||
public static final fun giftSentOrReceivedRegularCommonOrThrow (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/gifts/GiftSentOrReceived$Regular$Common;
|
||||
public static final fun giftSentOrReceivedRegularOrNull (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/gifts/GiftSentOrReceived$Regular;
|
||||
public static final fun giftSentOrReceivedRegularOrThrow (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/gifts/GiftSentOrReceived$Regular;
|
||||
public static final fun giftSentOrReceivedRegularReceivedInBusinessAccountOrNull (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/gifts/GiftSentOrReceived$Regular$ReceivedInBusinessAccount;
|
||||
public static final fun giftSentOrReceivedRegularReceivedInBusinessAccountOrThrow (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/gifts/GiftSentOrReceived$Regular$ReceivedInBusinessAccount;
|
||||
public static final fun giftSentOrReceivedUniqueCommonOrNull (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/gifts/GiftSentOrReceived$Unique$Common;
|
||||
public static final fun giftSentOrReceivedUniqueCommonOrThrow (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/gifts/GiftSentOrReceived$Unique$Common;
|
||||
public static final fun giftSentOrReceivedUniqueOrNull (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/gifts/GiftSentOrReceived$Unique;
|
||||
public static final fun giftSentOrReceivedUniqueOrThrow (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/gifts/GiftSentOrReceived$Unique;
|
||||
public static final fun giftSentOrReceivedUniqueReceivedInBusinessAccountOrNull (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/gifts/GiftSentOrReceived$Unique$ReceivedInBusinessAccount;
|
||||
public static final fun giftSentOrReceivedUniqueReceivedInBusinessAccountOrThrow (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/gifts/GiftSentOrReceived$Unique$ReceivedInBusinessAccount;
|
||||
public static final fun giftSentOrReceivedEventOrNull (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/gifts/GiftSentOrReceivedEvent;
|
||||
public static final fun giftSentOrReceivedEventOrThrow (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/gifts/GiftSentOrReceivedEvent;
|
||||
public static final fun giftSentOrReceivedEventReceivedInBusinessAccountOrNull (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/gifts/GiftSentOrReceivedEvent$ReceivedInBusinessAccount;
|
||||
public static final fun giftSentOrReceivedEventReceivedInBusinessAccountOrThrow (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/gifts/GiftSentOrReceivedEvent$ReceivedInBusinessAccount;
|
||||
public static final fun giftSentOrReceivedEventRegularGiftCommonOrNull (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/gifts/GiftSentOrReceivedEvent$RegularGift$Common;
|
||||
public static final fun giftSentOrReceivedEventRegularGiftCommonOrThrow (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/gifts/GiftSentOrReceivedEvent$RegularGift$Common;
|
||||
public static final fun giftSentOrReceivedEventRegularGiftOrNull (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/gifts/GiftSentOrReceivedEvent$RegularGift;
|
||||
public static final fun giftSentOrReceivedEventRegularGiftOrThrow (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/gifts/GiftSentOrReceivedEvent$RegularGift;
|
||||
public static final fun giftSentOrReceivedEventRegularGiftReceivedInBusinessAccountOrNull (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/gifts/GiftSentOrReceivedEvent$RegularGift$ReceivedInBusinessAccount;
|
||||
public static final fun giftSentOrReceivedEventRegularGiftReceivedInBusinessAccountOrThrow (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/gifts/GiftSentOrReceivedEvent$RegularGift$ReceivedInBusinessAccount;
|
||||
public static final fun giftSentOrReceivedEventUniqueGiftCommonOrNull (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/gifts/GiftSentOrReceivedEvent$UniqueGift$Common;
|
||||
public static final fun giftSentOrReceivedEventUniqueGiftCommonOrThrow (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/gifts/GiftSentOrReceivedEvent$UniqueGift$Common;
|
||||
public static final fun giftSentOrReceivedEventUniqueGiftOrNull (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/gifts/GiftSentOrReceivedEvent$UniqueGift;
|
||||
public static final fun giftSentOrReceivedEventUniqueGiftOrThrow (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/gifts/GiftSentOrReceivedEvent$UniqueGift;
|
||||
public static final fun giftSentOrReceivedEventUniqueGiftReceivedInBusinessAccountOrNull (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/gifts/GiftSentOrReceivedEvent$UniqueGift$ReceivedInBusinessAccount;
|
||||
public static final fun giftSentOrReceivedEventUniqueGiftReceivedInBusinessAccountOrThrow (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/gifts/GiftSentOrReceivedEvent$UniqueGift$ReceivedInBusinessAccount;
|
||||
public static final fun giveawayClaimedOrNull (Ldev/inmo/tgbotapi/types/boosts/ChatBoostSource;)Ldev/inmo/tgbotapi/types/boosts/ChatBoostSource$Giveaway$Claimed;
|
||||
public static final fun giveawayClaimedOrThrow (Ldev/inmo/tgbotapi/types/boosts/ChatBoostSource;)Ldev/inmo/tgbotapi/types/boosts/ChatBoostSource$Giveaway$Claimed;
|
||||
public static final fun giveawayContentOrNull (Ldev/inmo/tgbotapi/types/message/content/ResendableContent;)Ldev/inmo/tgbotapi/types/message/content/GiveawayContent;
|
||||
@@ -1798,14 +1798,14 @@ public final class dev/inmo/tgbotapi/extensions/utils/ClassCastsNewKt {
|
||||
public static final fun ifGeneralForumTopicHidden (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
|
||||
public static final fun ifGeneralForumTopicUnhidden (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
|
||||
public static final fun ifGiftCode (Ldev/inmo/tgbotapi/types/boosts/ChatBoostSource;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
|
||||
public static final fun ifGiftSentOrReceived (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
|
||||
public static final fun ifGiftSentOrReceivedReceivedInBusinessAccount (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
|
||||
public static final fun ifGiftSentOrReceivedRegular (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
|
||||
public static final fun ifGiftSentOrReceivedRegularCommon (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
|
||||
public static final fun ifGiftSentOrReceivedRegularReceivedInBusinessAccount (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
|
||||
public static final fun ifGiftSentOrReceivedUnique (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
|
||||
public static final fun ifGiftSentOrReceivedUniqueCommon (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
|
||||
public static final fun ifGiftSentOrReceivedUniqueReceivedInBusinessAccount (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
|
||||
public static final fun ifGiftSentOrReceivedEvent (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
|
||||
public static final fun ifGiftSentOrReceivedEventReceivedInBusinessAccount (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
|
||||
public static final fun ifGiftSentOrReceivedEventRegularGift (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
|
||||
public static final fun ifGiftSentOrReceivedEventRegularGiftCommon (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
|
||||
public static final fun ifGiftSentOrReceivedEventRegularGiftReceivedInBusinessAccount (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
|
||||
public static final fun ifGiftSentOrReceivedEventUniqueGift (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
|
||||
public static final fun ifGiftSentOrReceivedEventUniqueGiftCommon (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
|
||||
public static final fun ifGiftSentOrReceivedEventUniqueGiftReceivedInBusinessAccount (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
|
||||
public static final fun ifGiveaway (Ldev/inmo/tgbotapi/types/boosts/ChatBoostSource;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
|
||||
public static final fun ifGiveawayClaimed (Ldev/inmo/tgbotapi/types/boosts/ChatBoostSource;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
|
||||
public static final fun ifGiveawayContent (Ldev/inmo/tgbotapi/types/message/content/ResendableContent;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
|
||||
|
||||
@@ -230,7 +230,7 @@ import dev.inmo.tgbotapi.types.files.VideoNoteFile
|
||||
import dev.inmo.tgbotapi.types.files.VideoQuality
|
||||
import dev.inmo.tgbotapi.types.files.VideoSticker
|
||||
import dev.inmo.tgbotapi.types.files.VoiceFile
|
||||
import dev.inmo.tgbotapi.types.gifts.GiftSentOrReceived
|
||||
import dev.inmo.tgbotapi.types.gifts.GiftSentOrReceivedEvent
|
||||
import dev.inmo.tgbotapi.types.giveaway.GiveawayCreated
|
||||
import dev.inmo.tgbotapi.types.giveaway.GiveawayPrivateResults
|
||||
import dev.inmo.tgbotapi.types.location.LiveLocation
|
||||
@@ -2385,53 +2385,53 @@ public inline fun ChatEvent.paidMessagePriceChangedOrThrow(): PaidMessagePriceCh
|
||||
|
||||
public inline fun <T> ChatEvent.ifPaidMessagePriceChanged(block: (PaidMessagePriceChanged) -> T): T? = paidMessagePriceChangedOrNull() ?.let(block)
|
||||
|
||||
public inline fun ChatEvent.giftSentOrReceivedOrNull(): GiftSentOrReceived? = this as? dev.inmo.tgbotapi.types.gifts.GiftSentOrReceived
|
||||
public inline fun ChatEvent.giftSentOrReceivedEventOrNull(): GiftSentOrReceivedEvent? = this as? dev.inmo.tgbotapi.types.gifts.GiftSentOrReceivedEvent
|
||||
|
||||
public inline fun ChatEvent.giftSentOrReceivedOrThrow(): GiftSentOrReceived = this as dev.inmo.tgbotapi.types.gifts.GiftSentOrReceived
|
||||
public inline fun ChatEvent.giftSentOrReceivedEventOrThrow(): GiftSentOrReceivedEvent = this as dev.inmo.tgbotapi.types.gifts.GiftSentOrReceivedEvent
|
||||
|
||||
public inline fun <T> ChatEvent.ifGiftSentOrReceived(block: (GiftSentOrReceived) -> T): T? = giftSentOrReceivedOrNull() ?.let(block)
|
||||
public inline fun <T> ChatEvent.ifGiftSentOrReceivedEvent(block: (GiftSentOrReceivedEvent) -> T): T? = giftSentOrReceivedEventOrNull() ?.let(block)
|
||||
|
||||
public inline fun ChatEvent.giftSentOrReceivedReceivedInBusinessAccountOrNull(): GiftSentOrReceived.ReceivedInBusinessAccount? = this as? dev.inmo.tgbotapi.types.gifts.GiftSentOrReceived.ReceivedInBusinessAccount
|
||||
public inline fun ChatEvent.giftSentOrReceivedEventReceivedInBusinessAccountOrNull(): GiftSentOrReceivedEvent.ReceivedInBusinessAccount? = this as? dev.inmo.tgbotapi.types.gifts.GiftSentOrReceivedEvent.ReceivedInBusinessAccount
|
||||
|
||||
public inline fun ChatEvent.giftSentOrReceivedReceivedInBusinessAccountOrThrow(): GiftSentOrReceived.ReceivedInBusinessAccount = this as dev.inmo.tgbotapi.types.gifts.GiftSentOrReceived.ReceivedInBusinessAccount
|
||||
public inline fun ChatEvent.giftSentOrReceivedEventReceivedInBusinessAccountOrThrow(): GiftSentOrReceivedEvent.ReceivedInBusinessAccount = this as dev.inmo.tgbotapi.types.gifts.GiftSentOrReceivedEvent.ReceivedInBusinessAccount
|
||||
|
||||
public inline fun <T> ChatEvent.ifGiftSentOrReceivedReceivedInBusinessAccount(block: (GiftSentOrReceived.ReceivedInBusinessAccount) -> T): T? = giftSentOrReceivedReceivedInBusinessAccountOrNull() ?.let(block)
|
||||
public inline fun <T> ChatEvent.ifGiftSentOrReceivedEventReceivedInBusinessAccount(block: (GiftSentOrReceivedEvent.ReceivedInBusinessAccount) -> T): T? = giftSentOrReceivedEventReceivedInBusinessAccountOrNull() ?.let(block)
|
||||
|
||||
public inline fun ChatEvent.giftSentOrReceivedRegularOrNull(): GiftSentOrReceived.Regular? = this as? dev.inmo.tgbotapi.types.gifts.GiftSentOrReceived.Regular
|
||||
public inline fun ChatEvent.giftSentOrReceivedEventRegularGiftOrNull(): GiftSentOrReceivedEvent.RegularGift? = this as? dev.inmo.tgbotapi.types.gifts.GiftSentOrReceivedEvent.RegularGift
|
||||
|
||||
public inline fun ChatEvent.giftSentOrReceivedRegularOrThrow(): GiftSentOrReceived.Regular = this as dev.inmo.tgbotapi.types.gifts.GiftSentOrReceived.Regular
|
||||
public inline fun ChatEvent.giftSentOrReceivedEventRegularGiftOrThrow(): GiftSentOrReceivedEvent.RegularGift = this as dev.inmo.tgbotapi.types.gifts.GiftSentOrReceivedEvent.RegularGift
|
||||
|
||||
public inline fun <T> ChatEvent.ifGiftSentOrReceivedRegular(block: (GiftSentOrReceived.Regular) -> T): T? = giftSentOrReceivedRegularOrNull() ?.let(block)
|
||||
public inline fun <T> ChatEvent.ifGiftSentOrReceivedEventRegularGift(block: (GiftSentOrReceivedEvent.RegularGift) -> T): T? = giftSentOrReceivedEventRegularGiftOrNull() ?.let(block)
|
||||
|
||||
public inline fun ChatEvent.giftSentOrReceivedUniqueOrNull(): GiftSentOrReceived.Unique? = this as? dev.inmo.tgbotapi.types.gifts.GiftSentOrReceived.Unique
|
||||
public inline fun ChatEvent.giftSentOrReceivedEventUniqueGiftOrNull(): GiftSentOrReceivedEvent.UniqueGift? = this as? dev.inmo.tgbotapi.types.gifts.GiftSentOrReceivedEvent.UniqueGift
|
||||
|
||||
public inline fun ChatEvent.giftSentOrReceivedUniqueOrThrow(): GiftSentOrReceived.Unique = this as dev.inmo.tgbotapi.types.gifts.GiftSentOrReceived.Unique
|
||||
public inline fun ChatEvent.giftSentOrReceivedEventUniqueGiftOrThrow(): GiftSentOrReceivedEvent.UniqueGift = this as dev.inmo.tgbotapi.types.gifts.GiftSentOrReceivedEvent.UniqueGift
|
||||
|
||||
public inline fun <T> ChatEvent.ifGiftSentOrReceivedUnique(block: (GiftSentOrReceived.Unique) -> T): T? = giftSentOrReceivedUniqueOrNull() ?.let(block)
|
||||
public inline fun <T> ChatEvent.ifGiftSentOrReceivedEventUniqueGift(block: (GiftSentOrReceivedEvent.UniqueGift) -> T): T? = giftSentOrReceivedEventUniqueGiftOrNull() ?.let(block)
|
||||
|
||||
public inline fun ChatEvent.giftSentOrReceivedRegularCommonOrNull(): GiftSentOrReceived.Regular.Common? = this as? dev.inmo.tgbotapi.types.gifts.GiftSentOrReceived.Regular.Common
|
||||
public inline fun ChatEvent.giftSentOrReceivedEventRegularGiftCommonOrNull(): GiftSentOrReceivedEvent.RegularGift.Common? = this as? dev.inmo.tgbotapi.types.gifts.GiftSentOrReceivedEvent.RegularGift.Common
|
||||
|
||||
public inline fun ChatEvent.giftSentOrReceivedRegularCommonOrThrow(): GiftSentOrReceived.Regular.Common = this as dev.inmo.tgbotapi.types.gifts.GiftSentOrReceived.Regular.Common
|
||||
public inline fun ChatEvent.giftSentOrReceivedEventRegularGiftCommonOrThrow(): GiftSentOrReceivedEvent.RegularGift.Common = this as dev.inmo.tgbotapi.types.gifts.GiftSentOrReceivedEvent.RegularGift.Common
|
||||
|
||||
public inline fun <T> ChatEvent.ifGiftSentOrReceivedRegularCommon(block: (GiftSentOrReceived.Regular.Common) -> T): T? = giftSentOrReceivedRegularCommonOrNull() ?.let(block)
|
||||
public inline fun <T> ChatEvent.ifGiftSentOrReceivedEventRegularGiftCommon(block: (GiftSentOrReceivedEvent.RegularGift.Common) -> T): T? = giftSentOrReceivedEventRegularGiftCommonOrNull() ?.let(block)
|
||||
|
||||
public inline fun ChatEvent.giftSentOrReceivedRegularReceivedInBusinessAccountOrNull(): GiftSentOrReceived.Regular.ReceivedInBusinessAccount? = this as? dev.inmo.tgbotapi.types.gifts.GiftSentOrReceived.Regular.ReceivedInBusinessAccount
|
||||
public inline fun ChatEvent.giftSentOrReceivedEventRegularGiftReceivedInBusinessAccountOrNull(): GiftSentOrReceivedEvent.RegularGift.ReceivedInBusinessAccount? = this as? dev.inmo.tgbotapi.types.gifts.GiftSentOrReceivedEvent.RegularGift.ReceivedInBusinessAccount
|
||||
|
||||
public inline fun ChatEvent.giftSentOrReceivedRegularReceivedInBusinessAccountOrThrow(): GiftSentOrReceived.Regular.ReceivedInBusinessAccount = this as dev.inmo.tgbotapi.types.gifts.GiftSentOrReceived.Regular.ReceivedInBusinessAccount
|
||||
public inline fun ChatEvent.giftSentOrReceivedEventRegularGiftReceivedInBusinessAccountOrThrow(): GiftSentOrReceivedEvent.RegularGift.ReceivedInBusinessAccount = this as dev.inmo.tgbotapi.types.gifts.GiftSentOrReceivedEvent.RegularGift.ReceivedInBusinessAccount
|
||||
|
||||
public inline fun <T> ChatEvent.ifGiftSentOrReceivedRegularReceivedInBusinessAccount(block: (GiftSentOrReceived.Regular.ReceivedInBusinessAccount) -> T): T? = giftSentOrReceivedRegularReceivedInBusinessAccountOrNull() ?.let(block)
|
||||
public inline fun <T> ChatEvent.ifGiftSentOrReceivedEventRegularGiftReceivedInBusinessAccount(block: (GiftSentOrReceivedEvent.RegularGift.ReceivedInBusinessAccount) -> T): T? = giftSentOrReceivedEventRegularGiftReceivedInBusinessAccountOrNull() ?.let(block)
|
||||
|
||||
public inline fun ChatEvent.giftSentOrReceivedUniqueCommonOrNull(): GiftSentOrReceived.Unique.Common? = this as? dev.inmo.tgbotapi.types.gifts.GiftSentOrReceived.Unique.Common
|
||||
public inline fun ChatEvent.giftSentOrReceivedEventUniqueGiftCommonOrNull(): GiftSentOrReceivedEvent.UniqueGift.Common? = this as? dev.inmo.tgbotapi.types.gifts.GiftSentOrReceivedEvent.UniqueGift.Common
|
||||
|
||||
public inline fun ChatEvent.giftSentOrReceivedUniqueCommonOrThrow(): GiftSentOrReceived.Unique.Common = this as dev.inmo.tgbotapi.types.gifts.GiftSentOrReceived.Unique.Common
|
||||
public inline fun ChatEvent.giftSentOrReceivedEventUniqueGiftCommonOrThrow(): GiftSentOrReceivedEvent.UniqueGift.Common = this as dev.inmo.tgbotapi.types.gifts.GiftSentOrReceivedEvent.UniqueGift.Common
|
||||
|
||||
public inline fun <T> ChatEvent.ifGiftSentOrReceivedUniqueCommon(block: (GiftSentOrReceived.Unique.Common) -> T): T? = giftSentOrReceivedUniqueCommonOrNull() ?.let(block)
|
||||
public inline fun <T> ChatEvent.ifGiftSentOrReceivedEventUniqueGiftCommon(block: (GiftSentOrReceivedEvent.UniqueGift.Common) -> T): T? = giftSentOrReceivedEventUniqueGiftCommonOrNull() ?.let(block)
|
||||
|
||||
public inline fun ChatEvent.giftSentOrReceivedUniqueReceivedInBusinessAccountOrNull(): GiftSentOrReceived.Unique.ReceivedInBusinessAccount? = this as? dev.inmo.tgbotapi.types.gifts.GiftSentOrReceived.Unique.ReceivedInBusinessAccount
|
||||
public inline fun ChatEvent.giftSentOrReceivedEventUniqueGiftReceivedInBusinessAccountOrNull(): GiftSentOrReceivedEvent.UniqueGift.ReceivedInBusinessAccount? = this as? dev.inmo.tgbotapi.types.gifts.GiftSentOrReceivedEvent.UniqueGift.ReceivedInBusinessAccount
|
||||
|
||||
public inline fun ChatEvent.giftSentOrReceivedUniqueReceivedInBusinessAccountOrThrow(): GiftSentOrReceived.Unique.ReceivedInBusinessAccount = this as dev.inmo.tgbotapi.types.gifts.GiftSentOrReceived.Unique.ReceivedInBusinessAccount
|
||||
public inline fun ChatEvent.giftSentOrReceivedEventUniqueGiftReceivedInBusinessAccountOrThrow(): GiftSentOrReceivedEvent.UniqueGift.ReceivedInBusinessAccount = this as dev.inmo.tgbotapi.types.gifts.GiftSentOrReceivedEvent.UniqueGift.ReceivedInBusinessAccount
|
||||
|
||||
public inline fun <T> ChatEvent.ifGiftSentOrReceivedUniqueReceivedInBusinessAccount(block: (GiftSentOrReceived.Unique.ReceivedInBusinessAccount) -> T): T? = giftSentOrReceivedUniqueReceivedInBusinessAccountOrNull() ?.let(block)
|
||||
public inline fun <T> ChatEvent.ifGiftSentOrReceivedEventUniqueGiftReceivedInBusinessAccount(block: (GiftSentOrReceivedEvent.UniqueGift.ReceivedInBusinessAccount) -> T): T? = giftSentOrReceivedEventUniqueGiftReceivedInBusinessAccountOrNull() ?.let(block)
|
||||
|
||||
public inline fun ChatEvent.successfulPaymentEventOrNull(): SuccessfulPaymentEvent? = this as? dev.inmo.tgbotapi.types.message.payments.SuccessfulPaymentEvent
|
||||
|
||||
|
||||
Reference in New Issue
Block a user