mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI.git
synced 2026-06-18 17:25:09 +00:00
Compare commits
11 Commits
e6aaa264f6
...
31.0.0
| Author | SHA1 | Date | |
|---|---|---|---|
| 744149a674 | |||
| 410183e315 | |||
| 9776a2474a | |||
| aebc571307 | |||
| 26c11d9d6b | |||
| c9be5041b8 | |||
| f10cfdbe1e | |||
| 83b4d2155f | |||
| eccc687aec | |||
| 53e79b152e | |||
| b9157b1924 |
54
CHANGELOG.md
54
CHANGELOG.md
@@ -2,8 +2,62 @@
|
|||||||
|
|
||||||
## 31.0.0
|
## 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`:
|
* `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** 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
|
## 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) |
|
| Docs | [](https://tgbotapi.inmo.dev/index.html) [](https://docs.inmo.dev/tgbotapi/index.html) |
|
||||||
|:----------------------:|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|
|
|:----------------------:|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|
|
||||||
|
|||||||
@@ -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 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 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;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;
|
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.requests.business_connection.GetBusinessAccountGifts
|
||||||
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
|
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
|
||||||
import dev.inmo.tgbotapi.types.OwnedGifts
|
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 kotlinx.coroutines.flow.flow
|
import kotlinx.coroutines.flow.flow
|
||||||
import kotlin.runCatching
|
import kotlin.runCatching
|
||||||
@@ -21,7 +22,7 @@ public suspend fun TelegramBot.getBusinessAccountGifts(
|
|||||||
sortByPrice: Boolean = false,
|
sortByPrice: Boolean = false,
|
||||||
offset: String? = null,
|
offset: String? = null,
|
||||||
limit: Int? = null
|
limit: Int? = null
|
||||||
): OwnedGifts<GiftSentOrReceived.ReceivedInBusinessAccount> = execute(
|
): OwnedGifts<OwnedGift.OwnedByBusinessAccount> = execute(
|
||||||
GetBusinessAccountGifts(
|
GetBusinessAccountGifts(
|
||||||
businessConnectionId,
|
businessConnectionId,
|
||||||
excludeUnsaved,
|
excludeUnsaved,
|
||||||
@@ -71,7 +72,7 @@ public fun TelegramBot.getBusinessAccountGiftsFlow(
|
|||||||
initialOffset: String? = null,
|
initialOffset: String? = null,
|
||||||
limit: Int? = null,
|
limit: Int? = null,
|
||||||
onErrorContinueChecker: suspend (Throwable?) -> Boolean = { false }
|
onErrorContinueChecker: suspend (Throwable?) -> Boolean = { false }
|
||||||
): Flow<OwnedGifts<GiftSentOrReceived.ReceivedInBusinessAccount>> = flow {
|
): Flow<OwnedGifts<OwnedGift.OwnedByBusinessAccount>> = flow {
|
||||||
var currentOffset = initialOffset
|
var currentOffset = initialOffset
|
||||||
do {
|
do {
|
||||||
val response = runCatching {
|
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.chat.ChatBackground
|
||||||
import dev.inmo.tgbotapi.types.checklists.ChecklistTasksAdded
|
import dev.inmo.tgbotapi.types.checklists.ChecklistTasksAdded
|
||||||
import dev.inmo.tgbotapi.types.checklists.ChecklistTasksDone
|
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.GiveawayCreated
|
||||||
import dev.inmo.tgbotapi.types.giveaway.GiveawayPrivateResults
|
import dev.inmo.tgbotapi.types.giveaway.GiveawayPrivateResults
|
||||||
import dev.inmo.tgbotapi.types.message.ChatEvents.*
|
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.SuggestedPostApprovalFailed
|
||||||
import dev.inmo.tgbotapi.types.message.ChatEvents.suggested.SuggestedPostApproved
|
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.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.SuggestedPostPaid
|
||||||
import dev.inmo.tgbotapi.types.message.ChatEvents.suggested.SuggestedPostRefunded
|
import dev.inmo.tgbotapi.types.message.ChatEvents.suggested.SuggestedPostRefunded
|
||||||
import dev.inmo.tgbotapi.types.message.ChatEvents.voice.*
|
import dev.inmo.tgbotapi.types.message.ChatEvents.voice.*
|
||||||
@@ -277,12 +276,12 @@ fun BehaviourContext.waitPaidMessagePriceChanged(
|
|||||||
fun BehaviourContext.waitRegularGiftSentOrReceived(
|
fun BehaviourContext.waitRegularGiftSentOrReceived(
|
||||||
initRequest: Request<*>? = null,
|
initRequest: Request<*>? = null,
|
||||||
errorFactory: NullableRequestBuilder<*> = { null }
|
errorFactory: NullableRequestBuilder<*> = { null }
|
||||||
) = waitEvents<GiftSentOrReceived.Regular>(initRequest, errorFactory)
|
) = waitEvents<GiftSentOrReceivedEvent.RegularGift>(initRequest, errorFactory)
|
||||||
|
|
||||||
fun BehaviourContext.waitUniqueGiftSentOrReceived(
|
fun BehaviourContext.waitUniqueGiftSentOrReceived(
|
||||||
initRequest: Request<*>? = null,
|
initRequest: Request<*>? = null,
|
||||||
errorFactory: NullableRequestBuilder<*> = { null }
|
errorFactory: NullableRequestBuilder<*> = { null }
|
||||||
) = waitEvents<GiftSentOrReceived.Unique>(initRequest, errorFactory)
|
) = waitEvents<GiftSentOrReceivedEvent.UniqueGift>(initRequest, errorFactory)
|
||||||
|
|
||||||
fun BehaviourContext.waitChecklistTasksDone(
|
fun BehaviourContext.waitChecklistTasksDone(
|
||||||
initRequest: Request<*>? = null,
|
initRequest: Request<*>? = null,
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import dev.inmo.tgbotapi.extensions.utils.*
|
|||||||
import dev.inmo.tgbotapi.requests.abstracts.Request
|
import dev.inmo.tgbotapi.requests.abstracts.Request
|
||||||
import dev.inmo.tgbotapi.types.PaidMessagePriceChanged
|
import dev.inmo.tgbotapi.types.PaidMessagePriceChanged
|
||||||
import dev.inmo.tgbotapi.types.chat.ChatBackground
|
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.*
|
||||||
import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.*
|
import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.*
|
||||||
import dev.inmo.tgbotapi.types.message.ChatEvents.forum.ForumTopicClosed
|
import dev.inmo.tgbotapi.types.message.ChatEvents.forum.ForumTopicClosed
|
||||||
@@ -245,9 +245,9 @@ fun BehaviourContext.waitPaidMessagePriceChangedMessages(
|
|||||||
fun BehaviourContext.waitRegularGiftSentOrReceivedMessages(
|
fun BehaviourContext.waitRegularGiftSentOrReceivedMessages(
|
||||||
initRequest: Request<*>? = null,
|
initRequest: Request<*>? = null,
|
||||||
errorFactory: NullableRequestBuilder<*> = { null }
|
errorFactory: NullableRequestBuilder<*> = { null }
|
||||||
) = waitEventsMessages<GiftSentOrReceived.Regular>(initRequest, errorFactory)
|
) = waitEventsMessages<GiftSentOrReceivedEvent.RegularGift>(initRequest, errorFactory)
|
||||||
|
|
||||||
fun BehaviourContext.waitUniqueGiftSentOrReceivedMessages(
|
fun BehaviourContext.waitUniqueGiftSentOrReceivedMessages(
|
||||||
initRequest: Request<*>? = null,
|
initRequest: Request<*>? = null,
|
||||||
errorFactory: NullableRequestBuilder<*> = { 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.chat.ChatBackground
|
||||||
import dev.inmo.tgbotapi.types.checklists.ChecklistTasksAdded
|
import dev.inmo.tgbotapi.types.checklists.ChecklistTasksAdded
|
||||||
import dev.inmo.tgbotapi.types.checklists.ChecklistTasksDone
|
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.GiveawayCreated
|
||||||
import dev.inmo.tgbotapi.types.giveaway.GiveawayPrivateResults
|
import dev.inmo.tgbotapi.types.giveaway.GiveawayPrivateResults
|
||||||
import dev.inmo.tgbotapi.types.message.ChannelEventMessage
|
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.SuggestedPostApprovalFailed
|
||||||
import dev.inmo.tgbotapi.types.message.ChatEvents.suggested.SuggestedPostApproved
|
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.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.SuggestedPostPaid
|
||||||
import dev.inmo.tgbotapi.types.message.ChatEvents.suggested.SuggestedPostRefunded
|
import dev.inmo.tgbotapi.types.message.ChatEvents.suggested.SuggestedPostRefunded
|
||||||
import dev.inmo.tgbotapi.types.message.ChatEvents.voice.*
|
import dev.inmo.tgbotapi.types.message.ChatEvents.voice.*
|
||||||
@@ -1182,11 +1181,11 @@ fun <BC : BehaviourContext> BC.onPaidMessagePriceChanged(
|
|||||||
* data
|
* data
|
||||||
*/
|
*/
|
||||||
fun <BC : BehaviourContext> BC.onRegularGiftSentOrReceived(
|
fun <BC : BehaviourContext> BC.onRegularGiftSentOrReceived(
|
||||||
initialFilter: SimpleFilter<ChatEventMessage<GiftSentOrReceived.Regular>>? = null,
|
initialFilter: SimpleFilter<ChatEventMessage<GiftSentOrReceivedEvent.RegularGift>>? = null,
|
||||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatEventMessage<GiftSentOrReceived.Regular>, Update>? = MessageFilterByChat,
|
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatEventMessage<GiftSentOrReceivedEvent.RegularGift>, Update>? = MessageFilterByChat,
|
||||||
markerFactory: MarkerFactory<in ChatEventMessage<GiftSentOrReceived.Regular>, Any>? = ByChatMessageMarkerFactory,
|
markerFactory: MarkerFactory<in ChatEventMessage<GiftSentOrReceivedEvent.RegularGift>, Any>? = ByChatMessageMarkerFactory,
|
||||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatEventMessage<GiftSentOrReceived.Regular>>? = null,
|
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatEventMessage<GiftSentOrReceivedEvent.RegularGift>>? = null,
|
||||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatEventMessage<GiftSentOrReceived.Regular>>
|
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatEventMessage<GiftSentOrReceivedEvent.RegularGift>>
|
||||||
) = onEventWithCustomChatEventMessage(initialFilter, subcontextUpdatesFilter, markerFactory, additionalSubcontextInitialAction, scenarioReceiver)
|
) = onEventWithCustomChatEventMessage(initialFilter, subcontextUpdatesFilter, markerFactory, additionalSubcontextInitialAction, scenarioReceiver)
|
||||||
|
|
||||||
|
|
||||||
@@ -1204,11 +1203,11 @@ fun <BC : BehaviourContext> BC.onRegularGiftSentOrReceived(
|
|||||||
* data
|
* data
|
||||||
*/
|
*/
|
||||||
fun <BC : BehaviourContext> BC.onUniqueGiftSentOrReceived(
|
fun <BC : BehaviourContext> BC.onUniqueGiftSentOrReceived(
|
||||||
initialFilter: SimpleFilter<ChatEventMessage<GiftSentOrReceived.Unique>>? = null,
|
initialFilter: SimpleFilter<ChatEventMessage<GiftSentOrReceivedEvent.UniqueGift>>? = null,
|
||||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatEventMessage<GiftSentOrReceived.Unique>, Update>? = MessageFilterByChat,
|
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatEventMessage<GiftSentOrReceivedEvent.UniqueGift>, Update>? = MessageFilterByChat,
|
||||||
markerFactory: MarkerFactory<in ChatEventMessage<GiftSentOrReceived.Unique>, Any>? = ByChatMessageMarkerFactory,
|
markerFactory: MarkerFactory<in ChatEventMessage<GiftSentOrReceivedEvent.UniqueGift>, Any>? = ByChatMessageMarkerFactory,
|
||||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatEventMessage<GiftSentOrReceived.Unique>>? = null,
|
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatEventMessage<GiftSentOrReceivedEvent.UniqueGift>>? = null,
|
||||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatEventMessage<GiftSentOrReceived.Unique>>
|
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatEventMessage<GiftSentOrReceivedEvent.UniqueGift>>
|
||||||
) = onEventWithCustomChatEventMessage(initialFilter, subcontextUpdatesFilter, markerFactory, additionalSubcontextInitialAction, scenarioReceiver)
|
) = 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.sortByPriceField
|
||||||
import dev.inmo.tgbotapi.types.offsetField
|
import dev.inmo.tgbotapi.types.offsetField
|
||||||
import dev.inmo.tgbotapi.types.limitField
|
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.DeserializationStrategy
|
||||||
import kotlinx.serialization.SerialName
|
import kotlinx.serialization.SerialName
|
||||||
import kotlinx.serialization.Serializable
|
import kotlinx.serialization.Serializable
|
||||||
import kotlinx.serialization.SerializationStrategy
|
import kotlinx.serialization.SerializationStrategy
|
||||||
|
import kotlinx.serialization.builtins.serializer
|
||||||
|
|
||||||
@Serializable
|
@Serializable
|
||||||
data class GetBusinessAccountGifts(
|
data class GetBusinessAccountGifts(
|
||||||
@@ -45,16 +47,16 @@ data class GetBusinessAccountGifts(
|
|||||||
val offset: String? = null,
|
val offset: String? = null,
|
||||||
@SerialName(limitField)
|
@SerialName(limitField)
|
||||||
val limit: Int? = null,
|
val limit: Int? = null,
|
||||||
) : BusinessRequest.Simple<OwnedGifts<GiftSentOrReceived.ReceivedInBusinessAccount>> {
|
) : BusinessRequest.Simple<OwnedGifts<OwnedGift.OwnedByBusinessAccount>> {
|
||||||
override fun method(): String = "getBusinessAccountGifts"
|
override fun method(): String = "getBusinessAccountGifts"
|
||||||
|
|
||||||
override val resultDeserializer: DeserializationStrategy<OwnedGifts<GiftSentOrReceived.ReceivedInBusinessAccount>>
|
override val resultDeserializer: DeserializationStrategy<OwnedGifts<OwnedGift.OwnedByBusinessAccount>>
|
||||||
get() = Companion.resultSerializer
|
get() = Companion.resultSerializer
|
||||||
override val requestSerializer: SerializationStrategy<*>
|
override val requestSerializer: SerializationStrategy<*>
|
||||||
get() = serializer()
|
get() = serializer()
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
@Warning("This API can be changed without any warranties of backward compatibility")
|
@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.ChatIdentifier
|
||||||
import dev.inmo.tgbotapi.types.OwnedGifts
|
import dev.inmo.tgbotapi.types.OwnedGifts
|
||||||
import dev.inmo.tgbotapi.types.chatIdField
|
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.limitField
|
||||||
import dev.inmo.tgbotapi.types.offsetField
|
import dev.inmo.tgbotapi.types.offsetField
|
||||||
import kotlinx.serialization.DeserializationStrategy
|
import kotlinx.serialization.DeserializationStrategy
|
||||||
@@ -14,25 +23,40 @@ import kotlinx.serialization.SerialName
|
|||||||
import kotlinx.serialization.Serializable
|
import kotlinx.serialization.Serializable
|
||||||
import kotlinx.serialization.SerializationStrategy
|
import kotlinx.serialization.SerializationStrategy
|
||||||
|
|
||||||
// TODO::Fix
|
|
||||||
@Serializable
|
@Serializable
|
||||||
data class GetChatGifts(
|
data class GetChatGifts(
|
||||||
@SerialName(chatIdField)
|
@SerialName(chatIdField)
|
||||||
override val chatId: ChatIdentifier,
|
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)
|
@SerialName(offsetField)
|
||||||
val offset: String? = null,
|
val offset: String? = null,
|
||||||
@SerialName(limitField)
|
@SerialName(limitField)
|
||||||
val limit: Int? = null,
|
val limit: Int? = null,
|
||||||
) : SimpleRequest<OwnedGifts<GiftSentOrReceived>>, ChatRequest {
|
) : SimpleRequest<OwnedGifts<OwnedGift.Common>>, ChatRequest {
|
||||||
override fun method(): String = "getChatGifts"
|
override fun method(): String = "getChatGifts"
|
||||||
|
|
||||||
override val resultDeserializer: DeserializationStrategy<OwnedGifts<GiftSentOrReceived>>
|
override val resultDeserializer: DeserializationStrategy<OwnedGifts<OwnedGift.Common>>
|
||||||
get() = Companion.resultSerializer
|
get() = Companion.resultSerializer
|
||||||
override val requestSerializer: SerializationStrategy<*>
|
override val requestSerializer: SerializationStrategy<*>
|
||||||
get() = serializer()
|
get() = serializer()
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
@Warning("This API can be changed without any warranties of backward compatibility")
|
@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.requests.abstracts.SimpleRequest
|
||||||
import dev.inmo.tgbotapi.types.OwnedGifts
|
import dev.inmo.tgbotapi.types.OwnedGifts
|
||||||
import dev.inmo.tgbotapi.types.UserId
|
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.limitField
|
||||||
import dev.inmo.tgbotapi.types.offsetField
|
import dev.inmo.tgbotapi.types.offsetField
|
||||||
import dev.inmo.tgbotapi.types.userIdField
|
import dev.inmo.tgbotapi.types.userIdField
|
||||||
@@ -13,26 +20,37 @@ import kotlinx.serialization.SerialName
|
|||||||
import kotlinx.serialization.Serializable
|
import kotlinx.serialization.Serializable
|
||||||
import kotlinx.serialization.SerializationStrategy
|
import kotlinx.serialization.SerializationStrategy
|
||||||
|
|
||||||
// TODO::Fix
|
|
||||||
@Serializable
|
@Serializable
|
||||||
data class GetUserGifts(
|
data class GetUserGifts(
|
||||||
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
|
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
|
||||||
@SerialName(userIdField)
|
@SerialName(userIdField)
|
||||||
val userId: UserId,
|
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)
|
@SerialName(offsetField)
|
||||||
val offset: String? = null,
|
val offset: String? = null,
|
||||||
@SerialName(limitField)
|
@SerialName(limitField)
|
||||||
val limit: Int? = null,
|
val limit: Int? = null,
|
||||||
) : SimpleRequest<OwnedGifts<GiftSentOrReceived>> {
|
) : SimpleRequest<OwnedGifts<OwnedGift.Common>> {
|
||||||
override fun method(): String = "getUserGifts"
|
override fun method(): String = "getUserGifts"
|
||||||
|
|
||||||
override val resultDeserializer: DeserializationStrategy<OwnedGifts<GiftSentOrReceived>>
|
override val resultDeserializer: DeserializationStrategy<OwnedGifts<OwnedGift.Common>>
|
||||||
get() = Companion.resultSerializer
|
get() = Companion.resultSerializer
|
||||||
override val requestSerializer: SerializationStrategy<*>
|
override val requestSerializer: SerializationStrategy<*>
|
||||||
get() = serializer()
|
get() = serializer()
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
@Warning("This API can be changed without any warranties of backward compatibility")
|
@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 addedToAttachmentMenuField = "added_to_attachment_menu"
|
||||||
const val allowsWriteToPMField = "allows_write_to_pm"
|
const val allowsWriteToPMField = "allows_write_to_pm"
|
||||||
const val isPremiumField = "is_premium"
|
const val isPremiumField = "is_premium"
|
||||||
|
const val isBurnedField = "is_burned"
|
||||||
const val hasPrivateForwardsField = "has_private_forwards"
|
const val hasPrivateForwardsField = "has_private_forwards"
|
||||||
const val hasRestrictedVoiceAndVideoMessagesField = "has_restricted_voice_and_video_messages"
|
const val hasRestrictedVoiceAndVideoMessagesField = "has_restricted_voice_and_video_messages"
|
||||||
const val emojiStatusCustomEmojiIdField = "emoji_status_custom_emoji_id"
|
const val emojiStatusCustomEmojiIdField = "emoji_status_custom_emoji_id"
|
||||||
@@ -546,6 +547,7 @@ const val giftField = "gift"
|
|||||||
const val giftUpgradeSentField = "gift_upgrade_sent"
|
const val giftUpgradeSentField = "gift_upgrade_sent"
|
||||||
const val giftsField = "gifts"
|
const val giftsField = "gifts"
|
||||||
const val rarityPerMilleField = "rarity_per_mille"
|
const val rarityPerMilleField = "rarity_per_mille"
|
||||||
|
const val rarityField = "rarity"
|
||||||
const val acceptedGiftTypesField = "accepted_gift_types"
|
const val acceptedGiftTypesField = "accepted_gift_types"
|
||||||
const val ownedGiftIdField = "owned_gift_id"
|
const val ownedGiftIdField = "owned_gift_id"
|
||||||
const val convertStarCountField = "convert_star_count"
|
const val convertStarCountField = "convert_star_count"
|
||||||
@@ -754,11 +756,12 @@ const val paidMediaField = "paid_media"
|
|||||||
const val publisherChatField = "publisher_chat"
|
const val publisherChatField = "publisher_chat"
|
||||||
const val personalTotalCountField = "personal_total_count"
|
const val personalTotalCountField = "personal_total_count"
|
||||||
const val personalRemainingCountField = "personal_remaining_count"
|
const val personalRemainingCountField = "personal_remaining_count"
|
||||||
const val isPremiumField2 = "is_premium"
|
|
||||||
const val hasColorsField = "has_colors"
|
const val hasColorsField = "has_colors"
|
||||||
const val uniqueGiftVariantCountField = "unique_gift_variant_count"
|
const val uniqueGiftVariantCountField = "unique_gift_variant_count"
|
||||||
const val uniqueGiftNumberField = "unique_gift_number"
|
const val uniqueGiftNumberField = "unique_gift_number"
|
||||||
|
const val isSavedField = "is_saved"
|
||||||
const val isUpgradeSeparateField = "is_upgrade_separate"
|
const val isUpgradeSeparateField = "is_upgrade_separate"
|
||||||
|
const val canBeTransferredField = "can_be_transferred"
|
||||||
const val isFromBlockchainField = "is_from_blockchain"
|
const val isFromBlockchainField = "is_from_blockchain"
|
||||||
|
|
||||||
const val centerColorField = "center_color"
|
const val centerColorField = "center_color"
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
package dev.inmo.tgbotapi.types
|
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.SerialName
|
||||||
import kotlinx.serialization.Serializable
|
import kotlinx.serialization.Serializable
|
||||||
|
|
||||||
@Serializable
|
@Serializable
|
||||||
data class OwnedGifts<GiftType: GiftSentOrReceived>(
|
data class OwnedGifts<GiftType: OwnedGift>(
|
||||||
@SerialName(totalCountField)
|
@SerialName(totalCountField)
|
||||||
val totalCount: Int,
|
val totalCount: Int,
|
||||||
@SerialName(giftsField)
|
@SerialName(giftsField)
|
||||||
|
|||||||
@@ -23,6 +23,10 @@ data class TelegramDate(
|
|||||||
val asDate: DateTime = DateTime(
|
val asDate: DateTime = DateTime(
|
||||||
date * 1000
|
date * 1000
|
||||||
)
|
)
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
val Start = TelegramDate(0)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun DateTime.toTelegramDate(): TelegramDate = TelegramDate(this)
|
fun DateTime.toTelegramDate(): TelegramDate = TelegramDate(this)
|
||||||
|
|||||||
@@ -177,6 +177,8 @@ data class ExtendedPrivateChatImpl(
|
|||||||
override val firstProfileAudio: AudioFile? = null,
|
override val firstProfileAudio: AudioFile? = null,
|
||||||
@SerialName(ratingField)
|
@SerialName(ratingField)
|
||||||
override val rating: UserRating? = null,
|
override val rating: UserRating? = null,
|
||||||
|
@SerialName(uniqueGiftColorsField)
|
||||||
|
override val uniqueGiftColors: UniqueGiftColors? = null,
|
||||||
) : ExtendedPrivateChat
|
) : ExtendedPrivateChat
|
||||||
|
|
||||||
@Serializable
|
@Serializable
|
||||||
@@ -237,6 +239,8 @@ data class ExtendedPrivateForumChatImpl(
|
|||||||
override val firstProfileAudio: AudioFile? = null,
|
override val firstProfileAudio: AudioFile? = null,
|
||||||
@SerialName(ratingField)
|
@SerialName(ratingField)
|
||||||
override val rating: UserRating? = null,
|
override val rating: UserRating? = null,
|
||||||
|
@SerialName(uniqueGiftColorsField)
|
||||||
|
override val uniqueGiftColors: UniqueGiftColors? = null,
|
||||||
) : ExtendedPrivateForumChat
|
) : ExtendedPrivateForumChat
|
||||||
|
|
||||||
typealias ExtendedUser = ExtendedPrivateChat
|
typealias ExtendedUser = ExtendedPrivateChat
|
||||||
@@ -511,6 +515,8 @@ data class ExtendedBot(
|
|||||||
val allowUsersToCreateTopics: Boolean = false,
|
val allowUsersToCreateTopics: Boolean = false,
|
||||||
@SerialName(acceptedGiftTypesField)
|
@SerialName(acceptedGiftTypesField)
|
||||||
override val acceptedGiftTypes: AcceptedGiftTypes = AcceptedGiftTypes(),
|
override val acceptedGiftTypes: AcceptedGiftTypes = AcceptedGiftTypes(),
|
||||||
|
@SerialName(uniqueGiftColorsField)
|
||||||
|
override val uniqueGiftColors: UniqueGiftColors? = null,
|
||||||
) : Bot(), ExtendedChat {
|
) : Bot(), ExtendedChat {
|
||||||
@SerialName(isBotField)
|
@SerialName(isBotField)
|
||||||
private val isBot = true
|
private val isBot = true
|
||||||
@@ -544,4 +550,6 @@ data class UnknownExtendedChat(
|
|||||||
override val maxReactionsCount: Int = 3
|
override val maxReactionsCount: Int = 3
|
||||||
@SerialName(acceptedGiftTypesField)
|
@SerialName(acceptedGiftTypesField)
|
||||||
override val acceptedGiftTypes: AcceptedGiftTypes = AcceptedGiftTypes()
|
override val acceptedGiftTypes: AcceptedGiftTypes = AcceptedGiftTypes()
|
||||||
|
@SerialName(uniqueGiftColorsField)
|
||||||
|
override val uniqueGiftColors: UniqueGiftColors? = null
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,6 +25,8 @@ sealed interface ExtendedChat : Chat {
|
|||||||
|
|
||||||
val acceptedGiftTypes: AcceptedGiftTypes
|
val acceptedGiftTypes: AcceptedGiftTypes
|
||||||
|
|
||||||
|
val uniqueGiftColors: UniqueGiftColors?
|
||||||
|
|
||||||
@Deprecated(
|
@Deprecated(
|
||||||
message = "Telegram Bot API v9.0 introduced the new field, `acceptedGiftTypes`, to allow granular" +
|
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.",
|
" 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 membersHidden: Boolean
|
||||||
val availableReactions: List<Reaction>?
|
val availableReactions: List<Reaction>?
|
||||||
val newMembersSeeHistory: Boolean
|
val newMembersSeeHistory: Boolean
|
||||||
val uniqueGiftColors: UniqueGiftColors?
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
|
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
|
||||||
|
|||||||
@@ -104,8 +104,8 @@ sealed interface ChecklistTask : TextedInput {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
|
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
|
||||||
@Serializable(Created.Serializer::class)
|
@Serializable(Serializer::class)
|
||||||
data class Undone(
|
data class Uncompleted(
|
||||||
@SerialName(idField)
|
@SerialName(idField)
|
||||||
override val id: ChecklistTaskId,
|
override val id: ChecklistTaskId,
|
||||||
@SerialName(textEntitiesField)
|
@SerialName(textEntitiesField)
|
||||||
@@ -125,103 +125,135 @@ sealed interface ChecklistTask : TextedInput {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
|
@Serializable(Serializer::class)
|
||||||
@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)
|
|
||||||
sealed interface Created : ChecklistTask {
|
sealed interface Created : ChecklistTask {
|
||||||
val completedByUser: PreviewUser?
|
val completedByUser: PreviewUser?
|
||||||
get() = null
|
get() = null
|
||||||
|
val completedByChat: PreviewChat?
|
||||||
|
get() = null
|
||||||
val completionDate: TelegramDate?
|
val completionDate: TelegramDate?
|
||||||
get() = null
|
get() = null
|
||||||
|
}
|
||||||
|
|
||||||
@RiskFeature
|
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
|
||||||
object Serializer : KSerializer<Created> {
|
@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
|
@Serializable
|
||||||
private data class RawCreatedChecklistTask(
|
@SerialName(textField)
|
||||||
@SerialName(idField)
|
override val text: String = textSources.makeSourceString()
|
||||||
val id: ChecklistTaskId,
|
}
|
||||||
@SerialName(textField)
|
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
|
||||||
val text: String,
|
@Serializable(Serializer::class)
|
||||||
@SerialName(textEntitiesField)
|
data class ByChat(
|
||||||
val textSources: List<RawMessageEntity> = emptyList(),
|
@SerialName(idField)
|
||||||
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
|
override val id: ChecklistTaskId,
|
||||||
@SerialName(completedByUserField)
|
@SerialName(completedByChatField)
|
||||||
val completedByUser: PreviewUser? = null,
|
override val completedByChat: PreviewChat,
|
||||||
@SerialName(completedByChatField)
|
@SerialName(completionDateField)
|
||||||
val completedByChat: PreviewChat? = null,
|
override val completionDate: TelegramDate,
|
||||||
@SerialName(completionDateField)
|
@SerialName(textEntitiesField)
|
||||||
val completionDate: TelegramDate = TelegramDate(0), // TelegramDate(0) is the default according to https://core.telegram.org/bots/api#checklisttask
|
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 {
|
return when {
|
||||||
val raw = RawCreatedChecklistTask.serializer().deserialize(
|
raw.completionDate == TelegramDate.Start -> Uncompleted(
|
||||||
decoder
|
id = raw.id,
|
||||||
|
textSources = raw.textSources.asTextSources(raw.text),
|
||||||
)
|
)
|
||||||
|
raw.completedByChat != null -> Completed.ByChat(
|
||||||
return when {
|
id = raw.id,
|
||||||
raw.completedByUser != null -> Done(
|
completedByChat = raw.completedByChat,
|
||||||
id = raw.id,
|
completionDate = raw.completionDate,
|
||||||
completedByUser = raw.completedByUser,
|
textSources = raw.textSources.asTextSources(raw.text),
|
||||||
completedByChat = raw.completedByChat,
|
)
|
||||||
completionDate = raw.completionDate,
|
raw.completedByUser != null -> Completed.ByUser(
|
||||||
textSources = raw.textSources.asTextSources(raw.text),
|
id = raw.id,
|
||||||
)
|
completedByUser = raw.completedByUser,
|
||||||
else -> Undone(
|
completionDate = raw.completionDate,
|
||||||
id = raw.id,
|
textSources = raw.textSources.asTextSources(raw.text),
|
||||||
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 as? Done)?.completedByChat,
|
|
||||||
completionDate = value.completionDate ?: TelegramDate(0),
|
|
||||||
textSources = value.textSources.toRawMessageEntities()
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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 {
|
sealed interface Gift {
|
||||||
val id: GiftId?
|
val id: GiftId?
|
||||||
val publisherChat: PreviewChat?
|
val publisherChat: PreviewChat?
|
||||||
|
val isPremium: Boolean
|
||||||
@Serializable(Regular.Companion::class)
|
@Serializable(Regular.Companion::class)
|
||||||
sealed interface Regular : Gift {
|
sealed interface Regular : Gift {
|
||||||
override val id: GiftId
|
override val id: GiftId
|
||||||
@@ -28,11 +29,13 @@ sealed interface Gift {
|
|||||||
val remainingCount: Int?
|
val remainingCount: Int?
|
||||||
val personalTotalCount: Int?
|
val personalTotalCount: Int?
|
||||||
val personalRemainingCount: Int?
|
val personalRemainingCount: Int?
|
||||||
val isPremium: Boolean
|
|
||||||
val hasColors: Boolean
|
val hasColors: Boolean
|
||||||
val background: dev.inmo.tgbotapi.types.gifts.GiftBackground?
|
val background: GiftBackground?
|
||||||
val uniqueGiftVariantCount: Int?
|
val uniqueGiftVariantCount: Int?
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents a [Gift](https://core.telegram.org/bots/api#gift) for fields of unlimited gifts
|
||||||
|
*/
|
||||||
@Serializable
|
@Serializable
|
||||||
data class Unlimited(
|
data class Unlimited(
|
||||||
@SerialName(idField)
|
@SerialName(idField)
|
||||||
@@ -49,12 +52,12 @@ sealed interface Gift {
|
|||||||
override val personalTotalCount: Int? = null,
|
override val personalTotalCount: Int? = null,
|
||||||
@SerialName(personalRemainingCountField)
|
@SerialName(personalRemainingCountField)
|
||||||
override val personalRemainingCount: Int? = null,
|
override val personalRemainingCount: Int? = null,
|
||||||
@SerialName(isPremiumField2)
|
@SerialName(isPremiumField)
|
||||||
override val isPremium: Boolean = false,
|
override val isPremium: Boolean = false,
|
||||||
@SerialName(hasColorsField)
|
@SerialName(hasColorsField)
|
||||||
override val hasColors: Boolean = false,
|
override val hasColors: Boolean = false,
|
||||||
@SerialName(backgroundField)
|
@SerialName(backgroundField)
|
||||||
override val background: dev.inmo.tgbotapi.types.gifts.GiftBackground? = null,
|
override val background: GiftBackground? = null,
|
||||||
@SerialName(uniqueGiftVariantCountField)
|
@SerialName(uniqueGiftVariantCountField)
|
||||||
override val uniqueGiftVariantCount: Int? = null,
|
override val uniqueGiftVariantCount: Int? = null,
|
||||||
) : Regular {
|
) : Regular {
|
||||||
@@ -64,6 +67,9 @@ sealed interface Gift {
|
|||||||
get() = null
|
get() = null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents a [Gift](https://core.telegram.org/bots/api#gift) for fields of limited gifts
|
||||||
|
*/
|
||||||
@Serializable
|
@Serializable
|
||||||
data class Limited(
|
data class Limited(
|
||||||
@SerialName(idField)
|
@SerialName(idField)
|
||||||
@@ -84,12 +90,12 @@ sealed interface Gift {
|
|||||||
override val personalTotalCount: Int? = null,
|
override val personalTotalCount: Int? = null,
|
||||||
@SerialName(personalRemainingCountField)
|
@SerialName(personalRemainingCountField)
|
||||||
override val personalRemainingCount: Int? = null,
|
override val personalRemainingCount: Int? = null,
|
||||||
@SerialName(isPremiumField2)
|
@SerialName(isPremiumField)
|
||||||
override val isPremium: Boolean = false,
|
override val isPremium: Boolean = false,
|
||||||
@SerialName(hasColorsField)
|
@SerialName(hasColorsField)
|
||||||
override val hasColors: Boolean = false,
|
override val hasColors: Boolean = false,
|
||||||
@SerialName(backgroundField)
|
@SerialName(backgroundField)
|
||||||
override val background: dev.inmo.tgbotapi.types.gifts.GiftBackground? = null,
|
override val background: GiftBackground? = null,
|
||||||
@SerialName(uniqueGiftVariantCountField)
|
@SerialName(uniqueGiftVariantCountField)
|
||||||
override val uniqueGiftVariantCount: Int? = null,
|
override val uniqueGiftVariantCount: Int? = null,
|
||||||
) : Regular
|
) : Regular
|
||||||
@@ -109,7 +115,7 @@ sealed interface Gift {
|
|||||||
val personal_remaining_count: Int? = null,
|
val personal_remaining_count: Int? = null,
|
||||||
val is_premium: Boolean = false,
|
val is_premium: Boolean = false,
|
||||||
val has_colors: 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,
|
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
|
@Serializable
|
||||||
data class Unique(
|
data class Unique(
|
||||||
@SerialName(giftIdField)
|
@SerialName(giftIdField)
|
||||||
@@ -180,7 +189,7 @@ sealed interface Gift {
|
|||||||
@SerialName(baseNameField)
|
@SerialName(baseNameField)
|
||||||
val baseName: String,
|
val baseName: String,
|
||||||
@SerialName(nameField)
|
@SerialName(nameField)
|
||||||
val name: String,
|
val name: UniqueGiftName,
|
||||||
@SerialName(numberField)
|
@SerialName(numberField)
|
||||||
val number: Int,
|
val number: Int,
|
||||||
@SerialName(modelField)
|
@SerialName(modelField)
|
||||||
@@ -189,14 +198,16 @@ sealed interface Gift {
|
|||||||
val symbol: UniqueGiftSymbol,
|
val symbol: UniqueGiftSymbol,
|
||||||
@SerialName(backdropField)
|
@SerialName(backdropField)
|
||||||
val backdrop: UniqueGiftBackdrop,
|
val backdrop: UniqueGiftBackdrop,
|
||||||
@SerialName(publisherChatField)
|
@SerialName(isPremiumField)
|
||||||
override val publisherChat: PreviewChat? = null,
|
override val isPremium: Boolean = false,
|
||||||
|
@SerialName(isBurnedField)
|
||||||
|
val isBurned: Boolean = false,
|
||||||
@SerialName(isFromBlockchainField)
|
@SerialName(isFromBlockchainField)
|
||||||
val isFromBlockchain: Boolean = false,
|
val isFromBlockchain: Boolean = false,
|
||||||
@SerialName(isPremiumField2)
|
|
||||||
val isPremium: Boolean = false,
|
|
||||||
@SerialName(colorsField)
|
@SerialName(colorsField)
|
||||||
val colors: UniqueGiftColors? = null
|
val colors: UniqueGiftColors? = null,
|
||||||
|
@SerialName(publisherChatField)
|
||||||
|
override val publisherChat: PreviewChat? = null,
|
||||||
) : Gift
|
) : Gift
|
||||||
|
|
||||||
companion object : KSerializer<Gift> {
|
companion object : KSerializer<Gift> {
|
||||||
@@ -214,17 +225,17 @@ sealed interface Gift {
|
|||||||
val personal_remaining_count: Int? = null,
|
val personal_remaining_count: Int? = null,
|
||||||
val is_premium: Boolean = false,
|
val is_premium: Boolean = false,
|
||||||
val has_colors: 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,
|
val unique_gift_variant_count: Int? = null,
|
||||||
// unique gift fields
|
// unique gift fields
|
||||||
val base_name: String? = null,
|
val base_name: String? = null,
|
||||||
val name: String? = null,
|
val name: UniqueGiftName? = null,
|
||||||
val number: Int? = null,
|
val number: Int? = null,
|
||||||
val model: UniqueGiftModel? = null,
|
val model: UniqueGiftModel? = null,
|
||||||
val symbol: UniqueGiftSymbol? = null,
|
val symbol: UniqueGiftSymbol? = null,
|
||||||
val backdrop: UniqueGiftBackdrop? = null,
|
val backdrop: UniqueGiftBackdrop? = null,
|
||||||
val is_from_blockchain: Boolean = false,
|
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,
|
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.abstracts.TextedInput
|
||||||
import dev.inmo.tgbotapi.types.*
|
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.ChatEvents.abstracts.CommonEvent
|
||||||
import dev.inmo.tgbotapi.types.message.RawMessageEntities
|
import dev.inmo.tgbotapi.types.message.RawMessageEntities
|
||||||
import dev.inmo.tgbotapi.types.message.asTextSources
|
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.textsources.TextSourcesList
|
||||||
import dev.inmo.tgbotapi.types.message.toRawMessageEntities
|
import dev.inmo.tgbotapi.types.message.toRawMessageEntities
|
||||||
import dev.inmo.tgbotapi.types.payments.abstracts.Currency
|
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.KSerializer
|
||||||
import kotlinx.serialization.SerialName
|
import kotlinx.serialization.SerialName
|
||||||
import kotlinx.serialization.Serializable
|
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)
|
* [UniqueGiftInfo](https://core.telegram.org/bots/api#uniquegiftinfo)
|
||||||
*
|
*
|
||||||
* @see ReceivedInBusinessAccount
|
* @see ReceivedInBusinessAccount
|
||||||
* @see Regular.Common
|
* @see RegularGift.Common
|
||||||
* @see Regular.ReceivedInBusinessAccount
|
* @see RegularGift.ReceivedInBusinessAccount
|
||||||
* @see Unique.Common
|
* @see UniqueGift.Common
|
||||||
* @see Unique.ReceivedInBusinessAccount
|
* @see UniqueGift.ReceivedInBusinessAccount
|
||||||
*/
|
*/
|
||||||
@Serializable
|
@Serializable
|
||||||
sealed interface GiftSentOrReceived : CommonEvent {
|
sealed interface GiftSentOrReceivedEvent : CommonEvent {
|
||||||
val ownedGiftId: GiftId?
|
val ownedGiftId: GiftId?
|
||||||
val gift: Gift
|
val gift: Gift
|
||||||
val nextTransferDate: TelegramDate?
|
val nextTransferDate: TelegramDate?
|
||||||
|
|
||||||
@Serializable
|
@Serializable
|
||||||
sealed interface ReceivedInBusinessAccount : GiftSentOrReceived {
|
sealed interface ReceivedInBusinessAccount : GiftSentOrReceivedEvent {
|
||||||
override val ownedGiftId: GiftId
|
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
|
override val gift: Gift.Regular
|
||||||
val convertStarCount: Int?
|
val convertStarCount: Int?
|
||||||
val prepaidUpgradeStarCount: Int?
|
val prepaidUpgradeStarCount: Int?
|
||||||
@@ -77,7 +80,7 @@ sealed interface GiftSentOrReceived : CommonEvent {
|
|||||||
override val uniqueGiftNumber: Int? = null,
|
override val uniqueGiftNumber: Int? = null,
|
||||||
@SerialName(nextTransferDateField)
|
@SerialName(nextTransferDateField)
|
||||||
override val nextTransferDate: TelegramDate? = null
|
override val nextTransferDate: TelegramDate? = null
|
||||||
) : Regular {
|
) : RegularGift {
|
||||||
override val textSources: List<TextSource> by lazy {
|
override val textSources: List<TextSource> by lazy {
|
||||||
entities ?.asTextSources(text ?: return@lazy emptyList()) ?: emptyList()
|
entities ?.asTextSources(text ?: return@lazy emptyList()) ?: emptyList()
|
||||||
}
|
}
|
||||||
@@ -109,13 +112,13 @@ sealed interface GiftSentOrReceived : CommonEvent {
|
|||||||
override val uniqueGiftNumber: Int? = null,
|
override val uniqueGiftNumber: Int? = null,
|
||||||
@SerialName(nextTransferDateField)
|
@SerialName(nextTransferDateField)
|
||||||
override val nextTransferDate: TelegramDate? = null
|
override val nextTransferDate: TelegramDate? = null
|
||||||
) : Regular, GiftSentOrReceived.ReceivedInBusinessAccount {
|
) : RegularGift, GiftSentOrReceivedEvent.ReceivedInBusinessAccount {
|
||||||
override val textSources: List<TextSource> by lazy {
|
override val textSources: List<TextSource> by lazy {
|
||||||
entities ?.asTextSources(text ?: return@lazy emptyList()) ?: emptyList()
|
entities ?.asTextSources(text ?: return@lazy emptyList()) ?: emptyList()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
companion object : KSerializer<GiftSentOrReceived.Regular> {
|
companion object : KSerializer<GiftSentOrReceivedEvent.RegularGift> {
|
||||||
@Serializable
|
@Serializable
|
||||||
private data class Surrogate(
|
private data class Surrogate(
|
||||||
@SerialName(giftField)
|
@SerialName(giftField)
|
||||||
@@ -145,14 +148,14 @@ sealed interface GiftSentOrReceived : CommonEvent {
|
|||||||
override val descriptor: SerialDescriptor
|
override val descriptor: SerialDescriptor
|
||||||
get() = Surrogate.serializer().descriptor
|
get() = Surrogate.serializer().descriptor
|
||||||
|
|
||||||
override fun serialize(encoder: Encoder, value: Regular) {
|
override fun serialize(encoder: Encoder, value: RegularGift) {
|
||||||
when (value) {
|
when (value) {
|
||||||
is Common -> Common.serializer().serialize(encoder, value)
|
is Common -> Common.serializer().serialize(encoder, value)
|
||||||
is ReceivedInBusinessAccount -> ReceivedInBusinessAccount.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)
|
val surrogate = Surrogate.serializer().deserialize(decoder)
|
||||||
|
|
||||||
return when {
|
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
|
override val gift: Gift.Unique
|
||||||
val origin: String?
|
val origin: String?
|
||||||
val originTyped: Origin?
|
val originTyped: Origin?
|
||||||
@@ -299,7 +308,7 @@ sealed interface GiftSentOrReceived : CommonEvent {
|
|||||||
override val transferStarCount: Int? = null,
|
override val transferStarCount: Int? = null,
|
||||||
@SerialName(nextTransferDateField)
|
@SerialName(nextTransferDateField)
|
||||||
override val nextTransferDate: TelegramDate? = null
|
override val nextTransferDate: TelegramDate? = null
|
||||||
) : Unique {
|
) : UniqueGift {
|
||||||
override val ownedGiftId: GiftId?
|
override val ownedGiftId: GiftId?
|
||||||
get() = null
|
get() = null
|
||||||
|
|
||||||
@@ -344,7 +353,7 @@ sealed interface GiftSentOrReceived : CommonEvent {
|
|||||||
override val transferStarCount: Int? = null,
|
override val transferStarCount: Int? = null,
|
||||||
@SerialName(nextTransferDateField)
|
@SerialName(nextTransferDateField)
|
||||||
override val nextTransferDate: TelegramDate? = null
|
override val nextTransferDate: TelegramDate? = null
|
||||||
) : Unique, GiftSentOrReceived.ReceivedInBusinessAccount {
|
) : UniqueGift, GiftSentOrReceivedEvent.ReceivedInBusinessAccount {
|
||||||
@Transient
|
@Transient
|
||||||
override val origin: String? = originTyped ?.string
|
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
|
@Serializable
|
||||||
private data class Surrogate(
|
private data class Surrogate(
|
||||||
@SerialName(giftField)
|
@SerialName(giftField)
|
||||||
@@ -393,14 +402,14 @@ sealed interface GiftSentOrReceived : CommonEvent {
|
|||||||
override val descriptor: SerialDescriptor
|
override val descriptor: SerialDescriptor
|
||||||
get() = Surrogate.serializer().descriptor
|
get() = Surrogate.serializer().descriptor
|
||||||
|
|
||||||
override fun serialize(encoder: Encoder, value: Unique) {
|
override fun serialize(encoder: Encoder, value: UniqueGift) {
|
||||||
when (value) {
|
when (value) {
|
||||||
is Common -> Common.serializer().serialize(encoder, value)
|
is Common -> Common.serializer().serialize(encoder, value)
|
||||||
is ReceivedInBusinessAccount -> ReceivedInBusinessAccount.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)
|
val surrogate = Surrogate.serializer().deserialize(decoder)
|
||||||
|
|
||||||
return when {
|
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
|
package dev.inmo.tgbotapi.types.gifts.unique
|
||||||
|
|
||||||
import dev.inmo.tgbotapi.types.files.Sticker
|
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.nameField
|
||||||
|
import dev.inmo.tgbotapi.types.rarityField
|
||||||
import dev.inmo.tgbotapi.types.rarityPerMilleField
|
import dev.inmo.tgbotapi.types.rarityPerMilleField
|
||||||
import dev.inmo.tgbotapi.types.stickerField
|
import dev.inmo.tgbotapi.types.stickerField
|
||||||
import kotlinx.serialization.SerialName
|
import kotlinx.serialization.SerialName
|
||||||
@@ -15,5 +17,7 @@ data class UniqueGiftModel(
|
|||||||
@SerialName(stickerField)
|
@SerialName(stickerField)
|
||||||
val sticker: Sticker,
|
val sticker: Sticker,
|
||||||
@SerialName(rarityPerMilleField)
|
@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.*
|
||||||
import dev.inmo.tgbotapi.types.files.Sticker
|
import dev.inmo.tgbotapi.types.files.Sticker
|
||||||
import dev.inmo.tgbotapi.types.games.RawGame
|
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.giveaway.*
|
||||||
import dev.inmo.tgbotapi.types.message.content.GiveawayContent
|
import dev.inmo.tgbotapi.types.message.content.GiveawayContent
|
||||||
import dev.inmo.tgbotapi.types.location.Location
|
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_refunded: SuggestedPostRefunded? = null,
|
||||||
private val suggested_post_info: SuggestedPostInfo? = null,
|
private val suggested_post_info: SuggestedPostInfo? = null,
|
||||||
// Gifts
|
// Gifts
|
||||||
private val gift: GiftSentOrReceived.Regular? = null,
|
private val gift: GiftSentOrReceivedEvent.RegularGift? = null,
|
||||||
private val unique_gift: GiftSentOrReceived.Unique? = null,
|
private val unique_gift: GiftSentOrReceivedEvent.UniqueGift? = null,
|
||||||
private val gift_upgrade_sent: GiftSentOrReceived? = null,
|
private val gift_upgrade_sent: GiftSentOrReceivedEvent.RegularGift? = null,
|
||||||
private val chat_owner_left: ChatOwnerLeft? = null,
|
private val chat_owner_left: ChatOwnerLeft? = null,
|
||||||
private val chat_owner_changed: ChatOwnerChanged? = null,
|
private val chat_owner_changed: ChatOwnerChanged? = null,
|
||||||
) {
|
) {
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ package dev.inmo.tgbotapi.types.stories
|
|||||||
|
|
||||||
import dev.inmo.micro_utils.colors.common.HEXAColor
|
import dev.inmo.micro_utils.colors.common.HEXAColor
|
||||||
import dev.inmo.tgbotapi.types.*
|
import dev.inmo.tgbotapi.types.*
|
||||||
|
import dev.inmo.tgbotapi.types.gifts.UniqueGiftName
|
||||||
import dev.inmo.tgbotapi.types.location.LocationAddress
|
import dev.inmo.tgbotapi.types.location.LocationAddress
|
||||||
import dev.inmo.tgbotapi.types.reactions.ReactionType
|
import dev.inmo.tgbotapi.types.reactions.ReactionType
|
||||||
import dev.inmo.tgbotapi.utils.IntRGB24HEXAColorSerializer
|
import dev.inmo.tgbotapi.utils.IntRGB24HEXAColorSerializer
|
||||||
@@ -94,7 +95,7 @@ sealed interface StoryAreaType {
|
|||||||
@Serializable
|
@Serializable
|
||||||
data class UniqueGift(
|
data class UniqueGift(
|
||||||
@SerialName(nameField)
|
@SerialName(nameField)
|
||||||
val name: String
|
val name: UniqueGiftName
|
||||||
) : StoryAreaType {
|
) : StoryAreaType {
|
||||||
@EncodeDefault
|
@EncodeDefault
|
||||||
override val type: Type = Companion
|
override val type: Type = Companion
|
||||||
@@ -194,7 +195,7 @@ sealed interface StoryAreaType {
|
|||||||
)
|
)
|
||||||
is UniqueGift -> Surrogate(
|
is UniqueGift -> Surrogate(
|
||||||
type = value.type.name,
|
type = value.type.name,
|
||||||
name = value.name
|
name = value.name.value
|
||||||
)
|
)
|
||||||
is Unknown -> Surrogate(
|
is Unknown -> Surrogate(
|
||||||
type = value.type.name
|
type = value.type.name
|
||||||
@@ -227,7 +228,7 @@ sealed interface StoryAreaType {
|
|||||||
backgroundColor = surrogate.backgroundColor ?: return unknown
|
backgroundColor = surrogate.backgroundColor ?: return unknown
|
||||||
)
|
)
|
||||||
UniqueGift.name -> UniqueGift(
|
UniqueGift.name -> UniqueGift(
|
||||||
name = surrogate.name ?: return unknown
|
name = surrogate.name ?.let(::UniqueGiftName) ?: return unknown
|
||||||
)
|
)
|
||||||
else -> 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 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 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 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 giftSentOrReceivedEventOrNull (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/gifts/GiftSentOrReceivedEvent;
|
||||||
public static final fun giftSentOrReceivedOrThrow (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/gifts/GiftSentOrReceived;
|
public static final fun giftSentOrReceivedEventOrThrow (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/gifts/GiftSentOrReceivedEvent;
|
||||||
public static final fun giftSentOrReceivedReceivedInBusinessAccountOrNull (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/gifts/GiftSentOrReceived$ReceivedInBusinessAccount;
|
public static final fun giftSentOrReceivedEventReceivedInBusinessAccountOrNull (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/gifts/GiftSentOrReceivedEvent$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 giftSentOrReceivedEventReceivedInBusinessAccountOrThrow (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/gifts/GiftSentOrReceivedEvent$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 giftSentOrReceivedEventRegularGiftCommonOrNull (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/gifts/GiftSentOrReceivedEvent$RegularGift$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 giftSentOrReceivedEventRegularGiftCommonOrThrow (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/gifts/GiftSentOrReceivedEvent$RegularGift$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 giftSentOrReceivedEventRegularGiftOrNull (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/gifts/GiftSentOrReceivedEvent$RegularGift;
|
||||||
public static final fun giftSentOrReceivedRegularOrThrow (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/gifts/GiftSentOrReceived$Regular;
|
public static final fun giftSentOrReceivedEventRegularGiftOrThrow (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/gifts/GiftSentOrReceivedEvent$RegularGift;
|
||||||
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 giftSentOrReceivedEventRegularGiftReceivedInBusinessAccountOrNull (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/gifts/GiftSentOrReceivedEvent$RegularGift$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 giftSentOrReceivedEventRegularGiftReceivedInBusinessAccountOrThrow (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/gifts/GiftSentOrReceivedEvent$RegularGift$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 giftSentOrReceivedEventUniqueGiftCommonOrNull (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/gifts/GiftSentOrReceivedEvent$UniqueGift$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 giftSentOrReceivedEventUniqueGiftCommonOrThrow (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/gifts/GiftSentOrReceivedEvent$UniqueGift$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 giftSentOrReceivedEventUniqueGiftOrNull (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/gifts/GiftSentOrReceivedEvent$UniqueGift;
|
||||||
public static final fun giftSentOrReceivedUniqueOrThrow (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/gifts/GiftSentOrReceived$Unique;
|
public static final fun giftSentOrReceivedEventUniqueGiftOrThrow (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/gifts/GiftSentOrReceivedEvent$UniqueGift;
|
||||||
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 giftSentOrReceivedEventUniqueGiftReceivedInBusinessAccountOrNull (Ldev/inmo/tgbotapi/types/message/ChatEvents/abstracts/ChatEvent;)Ldev/inmo/tgbotapi/types/gifts/GiftSentOrReceivedEvent$UniqueGift$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 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 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 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;
|
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 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 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 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 ifGiftSentOrReceivedEvent (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 ifGiftSentOrReceivedEventReceivedInBusinessAccount (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 ifGiftSentOrReceivedEventRegularGift (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 ifGiftSentOrReceivedEventRegularGiftCommon (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 ifGiftSentOrReceivedEventRegularGiftReceivedInBusinessAccount (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 ifGiftSentOrReceivedEventUniqueGift (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 ifGiftSentOrReceivedEventUniqueGiftCommon (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 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 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 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;
|
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.VideoQuality
|
||||||
import dev.inmo.tgbotapi.types.files.VideoSticker
|
import dev.inmo.tgbotapi.types.files.VideoSticker
|
||||||
import dev.inmo.tgbotapi.types.files.VoiceFile
|
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.GiveawayCreated
|
||||||
import dev.inmo.tgbotapi.types.giveaway.GiveawayPrivateResults
|
import dev.inmo.tgbotapi.types.giveaway.GiveawayPrivateResults
|
||||||
import dev.inmo.tgbotapi.types.location.LiveLocation
|
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 <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
|
public inline fun ChatEvent.successfulPaymentEventOrNull(): SuccessfulPaymentEvent? = this as? dev.inmo.tgbotapi.types.message.payments.SuccessfulPaymentEvent
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user