1
0
mirror of https://github.com/InsanusMokrassar/TelegramBotAPI.git synced 2026-05-22 00:07:23 +00:00

implement 'others' changes

This commit is contained in:
2026-05-19 23:24:23 +06:00
parent 236939eab8
commit 631a4f16bd
13 changed files with 384 additions and 40 deletions

1
.gitignore vendored
View File

@@ -1,5 +1,6 @@
.idea
.vscode/
.junie/
.kotlin
out/*
*.iml

View File

@@ -2,47 +2,70 @@
## 34.0.0
* `Core` (Bots API support — Live Photos):
* Added `LivePhotoFile` class representing the incoming `LivePhoto` Telegram type (`PollMedia`, `MediaContentVariant`, `UsefulAsPaidMediaFile`)
* Added `LivePhotoContent` (`VisualMediaGroupPartContent`) representing live photo messages
* Added `TelegramMediaLivePhoto` (`TelegramFreeMedia`, `VisualMediaGroupMemberTelegramMedia`, `InputPollMedia`, `InputPollOptionMedia`) — usable in `sendMediaGroup`, `editMessageMedia`, and polls
* Added `TelegramPaidMediaLivePhoto` (`VisualTelegramPaidMedia`) for paid live photos
* Added `PaidMedia.LivePhoto` variant and `PaidMedia.LivePhoto.toTelegramPaidMediaLivePhoto()` conversion
* Added `livePhotoField` constant; added `live_photo` parsing to `RawMessage` and `ReplyInfo.External` surrogate
* Added `SendLivePhoto` request and `SendLivePhotoData`/`SendLivePhotoFiles`
* Added `LivePhotoMessage` typealias
* Added `LivePhotoFile.toTelegramMediaLivePhoto(...)` and `LivePhotoFile.toTelegramPaidMediaLivePhoto()` extensions
* `API` (Bots API support — Live Photos):
* Added `sendLivePhoto` extensions (`ChatIdentifier`/`Chat` × `InputFile`/`LivePhotoFile` × text/textSources)
* `Behaviour Builder` (Bots API support — Live Photos):
* Added `onLivePhoto`, `onEditedLivePhoto`, `onLivePhotoGalleryMessages`, `onLivePhotoGallery` triggers
* Added `onMentionWithLivePhotoContent`/`onTextMentionWithLivePhotoContent` triggers
* Added `waitLivePhoto`, `waitLivePhotoMessage`, `waitEditedLivePhoto`, `waitEditedLivePhotoMessage`, `waitLivePhotoGallery`, `waitLivePhotoGalleryMessages` expectations
* Added `onlyLivePhotoContentMessages` utility
* `Core`:
* Added `canReactToMessages` field to `ChatPermissions` (interface, `Granular` and `Common`) and `RestrictedMemberChatMember`
* Added optional `retrieveOtherBots` parameter to `GetChatAdministrators` request
* Added `DeleteMessageReaction` request with `@Warning` on primary constructor; added `DeleteUserMessageReaction` and `DeleteActorChatMessageReaction` factory functions
* Added `DeleteAllMessageReactions` request with `@Warning` on primary constructor; added `DeleteAllUserMessageReactions` and `DeleteAllActorChatMessageReactions` factory functions
* (`Guest Mode`) Added `GuestQueryId` value class and `WithOptionalGuestQueryId` interface in `dev.inmo.tgbotapi.abstracts.types`
* (`Guest Mode`) Added `GuestMessage` and `GuestContentMessage<T>` message abstractions (`SpecialMessage`, `CommonContentMessage`, `FromUserMessage`, `PossiblySentViaBot`) exposing `guestQueryId`, `guestBotCallerUser`, `guestBotCallerChat`
* (`Guest Mode`) Added `GuestContentMessageImpl` data class implementing `GuestContentMessage`
* (`Guest Mode`) Added `SentGuestMessage` carrying `InlineMessageId`
* (`Guest Mode`) Added `GuestMessageUpdate` (`BaseSentMessageUpdate`) and `guest_message` update type wiring in `RawUpdate`/`UpdateTypes`/`FlowsUpdatesFilter`
* (`Guest Mode`) Added `AnswerGuestQuery` request returning `SentGuestMessage`
* Introduced sealed `ChatContentMessage<T>` super-type extending `CommonContentMessage` and `ChatMessage`, used as the common return type of chat send/reply operations
* Reworked `ContentMessage`, `Message`, `FromUserMessage`, `PossiblyEditedMessage`, `PossiblyForwardedMessage`, `PossiblyPaymentMessage`, `PossiblySentViaBotCommonMessage`, `PossiblyTopicMessage`, `SignedMessage`, `ChatEventMessage`, `PassportMessage` and related typealiases to integrate guest messages and unify chat content messages
* Updated `RawMessage`, `MessageUpdate`, `ChannelPostUpdate`, `BusinessMessageUpdate`, `EditMessageUpdate`, `EditChannelPostUpdate`, `BaseMessageUpdate`, `BaseEditMessageUpdate`, `BaseSentMessageUpdate` to align with the new hierarchy
* (`Live Photos`) Added `LivePhotoFile` class representing the incoming `LivePhoto` Telegram type (`PollMedia`, `MediaContentVariant`, `UsefulAsPaidMediaFile`)
* (`Live Photos`) Added `LivePhotoContent` (`VisualMediaGroupPartContent`) representing live photo messages
* (`Live Photos`) Added `TelegramMediaLivePhoto` (`TelegramFreeMedia`, `VisualMediaGroupMemberTelegramMedia`, `InputPollMedia`, `InputPollOptionMedia`) — usable in `sendMediaGroup`, `editMessageMedia`, and polls
* (`Live Photos`) Added `TelegramPaidMediaLivePhoto` (`VisualTelegramPaidMedia`) for paid live photos
* (`Live Photos`) Added `PaidMedia.LivePhoto` variant and `PaidMedia.LivePhoto.toTelegramPaidMediaLivePhoto()` conversion
* (`Live Photos`) Added `livePhotoField` constant; added `live_photo` parsing to `RawMessage` and `ReplyInfo.External` surrogate
* (`Live Photos`) Added `SendLivePhoto` request and `SendLivePhotoData`/`SendLivePhotoFiles`
* (`Live Photos`) Added `LivePhotoMessage` typealias
* (`Live Photos`) Added `LivePhotoFile.toTelegramMediaLivePhoto(...)` and `LivePhotoFile.toTelegramPaidMediaLivePhoto()` extensions
* (`Chat Management`) Added `canReactToMessages` field to `ChatPermissions` (interface, `Granular` and `Common`) and `RestrictedMemberChatMember`
* (`Chat Management`) Added optional `retrieveOtherBots` parameter to `GetChatAdministrators` request
* (`Chat Management`) Added `DeleteMessageReaction` request with `@Warning` on primary constructor; added `DeleteUserMessageReaction` and `DeleteActorChatMessageReaction` factory functions
* (`Chat Management`) Added `DeleteAllMessageReactions` request with `@Warning` on primary constructor; added `DeleteAllUserMessageReactions` and `DeleteAllActorChatMessageReactions` factory functions
* (`Polls`) Added `InputMediaSticker`, `InputMediaLocation` and `InputMediaVenue` classes
* (`Polls`) Added `InputPollMedia` and `InputPollOptionMedia` sealed interfaces representing input media variants accepted by `sendPoll`
* (`Polls`) Added `PollMedia` class representing media attached to polls in incoming updates
* (`Polls`) Added `media` field to `Poll`, `PollOption` and `InputPollOption`
* (`Polls`) Added `explanationMedia` field to `QuizPoll`
* (`Polls`) Added `membersOnly` field to `Poll`
* (`Polls`) Added `countryCodes` field to `Poll`
* (`Polls`) Added `media`, `membersOnly`, `countryCodes` parameters to `SendRegularPoll` and `SendPoll` factory functions
* (`Polls`) Added `media`, `explanationMedia`, `membersOnly`, `countryCodes` parameters to `SendQuizPoll` factory functions
* (`Polls`) Decreased minimum allowed poll options count from 2 to 1 (`pollOptionsLimit` is now `1..12`)
* (`Managed Bots Access`) Added `BotAccessSettings` data class in `dev.inmo.tgbotapi.types.managed_bots` with `isAccessRestricted` and `addedUsers` fields
* (`Managed Bots Access`) Added `GetManagedBotAccessSettings` request returning `BotAccessSettings`
* (`Managed Bots Access`) Added `SetManagedBotAccessSettings` request with `isAccessRestricted` and optional `addedUserIds`
* (`Managed Bots Access`) Added `isAccessRestrictedField`, `addedUsersField`, `addedUserIdsField` constants
* (`Personal Chat`) Added `GetUserPersonalChatMessages` request returning `List<ContentMessage<*>>`
* (`Drafts`) `SendMessageDraft.text` and matching factory `text` parameter became nullable to allow empty/absent text (renders "Thinking…" placeholder)
* `API`:
* Added optional `retrieveOtherBots` parameter to `getChatAdministrators` extensions
* Added `deleteUserMessageReaction` and `deleteActorChatMessageReaction` extensions
* Added `deleteAllUserMessageReactions` and `deleteAllActorChatMessageReactions` extensions
* Added `@Warning`-marked catch-all `deleteMessageReaction` and `deleteAllMessageReactions` extensions
* `Core` (Bots API support):
* Added `InputMediaSticker`, `InputMediaLocation` and `InputMediaVenue` classes
* Added `InputPollMedia` and `InputPollOptionMedia` sealed interfaces representing input media variants accepted by `sendPoll`
* Added `PollMedia` class representing media attached to polls in incoming updates
* Added `media` field to `Poll`, `PollOption` and `InputPollOption`
* Added `explanationMedia` field to `QuizPoll`
* Added `membersOnly` field to `Poll`
* Added `countryCodes` field to `Poll`
* Added `media`, `membersOnly`, `countryCodes` parameters to `SendRegularPoll` and `SendPoll` factory functions
* Added `media`, `explanationMedia`, `membersOnly`, `countryCodes` parameters to `SendQuizPoll` factory functions
* Decreased minimum allowed poll options count from 2 to 1 (`pollOptionsLimit` is now `1..12`)
* `API` (Bots API support):
* Added `media`, `membersOnly`, `countryCodes` parameters to `sendRegularPoll` extension
* Added `media`, `explanationMedia`, `membersOnly`, `countryCodes` parameters to `sendQuizPoll` extension
* (`Guest Mode`) Added `answerGuestQuery` extensions in `dev.inmo.tgbotapi.extensions.api.answers`
* (`Guest Mode`) Added `RepliesWithGuestQueryId.kt` reply extensions accepting `GuestQueryId`
* (`Guest Mode`) Updated reply/send extensions (`Replies`, `RepliesWithChatsAndMessages`, `Sends`, `ResendMessage`, `SendChecklist`, `SendContact`, `SendDice`, `SendLiveLocation`, `SendStaticLocation`, `SendVenue`, `SendMessage`, media `Send*`, `SendGame`, `SendInvoice`, `SendQuizPoll`, `SendRegularPoll`) to return `ChatContentMessage<*>` and align with the new hierarchy
* (`Live Photos`) Added `sendLivePhoto` extensions (`ChatIdentifier`/`Chat` × `InputFile`/`LivePhotoFile` × text/textSources)
* (`Chat Management`) Added optional `retrieveOtherBots` parameter to `getChatAdministrators` extensions
* (`Chat Management`) Added `deleteUserMessageReaction` and `deleteActorChatMessageReaction` extensions
* (`Chat Management`) Added `deleteAllUserMessageReactions` and `deleteAllActorChatMessageReactions` extensions
* (`Chat Management`) Added `@Warning`-marked catch-all `deleteMessageReaction` and `deleteAllMessageReactions` extensions
* (`Polls`) Added `media`, `membersOnly`, `countryCodes` parameters to `sendRegularPoll` extension
* (`Polls`) Added `media`, `explanationMedia`, `membersOnly`, `countryCodes` parameters to `sendQuizPoll` extension
* (`Managed Bots Access`) Added `getManagedBotAccessSettings` extension in `dev.inmo.tgbotapi.extensions.api.managed_bots`
* (`Managed Bots Access`) Added `setManagedBotAccessSettings` extension with `userId`, `isAccessRestricted`, optional `addedUserIds`
* (`Personal Chat`) Added `getUserPersonalChatMessages` extension returning `List<ChatContentMessage<*>>`
* (`Drafts`) `sendMessageDraft` and `send` overloads for drafts now accept nullable `text: String?`
* `Behaviour Builder`:
* (`Guest Mode`) Added `GuestMessageTriggers` with `onGuestMessage` trigger
* (`Guest Mode`) Updated `WaitContent`, `WaitContentMessage`, `WaitEditedContentMessage`, `WaitMediaGroup`, `WaitMediaGroupMessages`, `WaitCommandsMessages`, `WaitDeepLinks`, `WaitMention`, `WaitMentionMessage`, `ContentTriggers`, `EditedContentTriggers`, `MediaGroupMessagesTriggers`, `MediaGroupTriggers`, `MentionTriggers`, `DeepLinkHandling`, `MessageFilterExcludingMediaGroups` for the unified `ChatContentMessage` hierarchy
* (`Live Photos`) Added `onLivePhoto`, `onEditedLivePhoto`, `onLivePhotoGalleryMessages`, `onLivePhotoGallery` triggers
* (`Live Photos`) Added `onMentionWithLivePhotoContent`/`onTextMentionWithLivePhotoContent` triggers
* (`Live Photos`) Added `waitLivePhoto`, `waitLivePhotoMessage`, `waitEditedLivePhoto`, `waitEditedLivePhotoMessage`, `waitLivePhotoGallery`, `waitLivePhotoGalleryMessages` expectations
* (`Live Photos`) Added `onlyLivePhotoContentMessages` utility
* `Utils`:
* (`Guest Mode`) Added `guestMessageUpdateOrNull` and related casts in `ClassCastsNew`/`ClassCasts`/`ContentCastsNew`/`WithContent`/`CommonMessageConversations`
* (`Guest Mode`) Updated `MessageFilters`, `SentMessageUpdatesConversations`, `LongPolling`, `MediaGroupContentMessageCreator`, `FlowsUpdatesFilter` shortcuts to support guest messages
## 33.1.0

View File

@@ -20,3 +20,31 @@ If you are adding `Send*` request - you also must add in `API` (`tgbotapi.api`)
* Bindings in [Sends.kt](../tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/Sends.kt)
* Bindings in [Replies.kt](../tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/Replies.kt)
* Bindings in [RepliesWithChatsAndMessages.kt](../tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/RepliesWithChatsAndMessages.kt)
---
When you need to fill a changelog, you must follow the common changelog style:
```markdown
## 34.0.0 // number of version
* `Core`:
* // list of changes
* `Utils`:
* // list of changes
* `API`:
* // list of changes
* `BehaviourBuilder`:
* // list of changes
* `WebApps`:
* // list of changes
* `BehaviourBuilderWithFSM`:
* // list of changes
// etc...
```
Each section can be ommited if there are no any changes in the section. In case of filling some known telegram bots api changelog part - you may add previx with its title in point with change. For example:
```markdown
* `Core`:
* (`Guest mode`) // change data
```

View File

@@ -149,6 +149,10 @@ public final class dev/inmo/tgbotapi/extensions/api/GetUpdatesRawKt {
public static synthetic fun getRawUpdates-Z6_7qMY$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/UpdateId;ILjava/lang/Integer;Ljava/util/List;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
}
public final class dev/inmo/tgbotapi/extensions/api/GetUserPersonalChatMessagesKt {
public static final fun getUserPersonalChatMessages-nc95W0g (Ldev/inmo/tgbotapi/bot/RequestsExecutor;JILkotlin/coroutines/Continuation;)Ljava/lang/Object;
}
public final class dev/inmo/tgbotapi/extensions/api/LiveFlowLocationKt {
public static final fun handleLiveLocation-Z2YO6e4 (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Lkotlinx/coroutines/flow/Flow;JLdev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/String;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ldev/inmo/tgbotapi/types/ReplyParameters;Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun handleLiveLocation-Z2YO6e4$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Lkotlinx/coroutines/flow/Flow;JLdev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/String;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ldev/inmo/tgbotapi/types/ReplyParameters;Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
@@ -1280,6 +1284,10 @@ public final class dev/inmo/tgbotapi/extensions/api/inline/SavePreparedInlineMes
public static synthetic fun savePreparedInlineMessage$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/User;Ldev/inmo/tgbotapi/types/InlineQueries/InlineQueryResult/abstracts/InlineQueryResult;ZZZZLkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
}
public final class dev/inmo/tgbotapi/extensions/api/managed_bots/GetManagedBotAccessSettingsKt {
public static final fun getManagedBotAccessSettings-dEpx-Zg (Ldev/inmo/tgbotapi/bot/RequestsExecutor;JLkotlin/coroutines/Continuation;)Ljava/lang/Object;
}
public final class dev/inmo/tgbotapi/extensions/api/managed_bots/GetManagedBotTokenKt {
public static final fun getManagedBotToken-dEpx-Zg (Ldev/inmo/tgbotapi/bot/RequestsExecutor;JLkotlin/coroutines/Continuation;)Ljava/lang/Object;
}
@@ -1288,6 +1296,11 @@ public final class dev/inmo/tgbotapi/extensions/api/managed_bots/ReplaceManagedB
public static final fun replaceManagedBotToken-dEpx-Zg (Ldev/inmo/tgbotapi/bot/RequestsExecutor;JLkotlin/coroutines/Continuation;)Ljava/lang/Object;
}
public final class dev/inmo/tgbotapi/extensions/api/managed_bots/SetManagedBotAccessSettingsKt {
public static final fun setManagedBotAccessSettings-4iNBclM (Ldev/inmo/tgbotapi/bot/RequestsExecutor;JZLjava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun setManagedBotAccessSettings-4iNBclM$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;JZLjava/util/List;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
}
public final class dev/inmo/tgbotapi/extensions/api/passport/SetPassportDataErrorsKt {
public static final fun setPassportDataErrors (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/passport/PassportData;Ldev/inmo/tgbotapi/utils/passport/Decryptor;Lkotlin/jvm/functions/Function3;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun setPassportDataErrors (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;

View File

@@ -0,0 +1,13 @@
package dev.inmo.tgbotapi.extensions.api
import dev.inmo.tgbotapi.bot.TelegramBot
import dev.inmo.tgbotapi.requests.GetUserPersonalChatMessages
import dev.inmo.tgbotapi.types.ChatId
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
public suspend fun TelegramBot.getUserPersonalChatMessages(
userId: ChatId,
limit: Int
): List<ContentMessage<*>> = execute(
GetUserPersonalChatMessages(userId = userId, limit = limit)
)

View File

@@ -0,0 +1,12 @@
package dev.inmo.tgbotapi.extensions.api.managed_bots
import dev.inmo.tgbotapi.bot.TelegramBot
import dev.inmo.tgbotapi.requests.managed_bots.GetManagedBotAccessSettings
import dev.inmo.tgbotapi.types.ChatId
import dev.inmo.tgbotapi.types.managed_bots.BotAccessSettings
public suspend fun TelegramBot.getManagedBotAccessSettings(
userId: ChatId
): BotAccessSettings = execute(
GetManagedBotAccessSettings(userId = userId)
)

View File

@@ -0,0 +1,15 @@
package dev.inmo.tgbotapi.extensions.api.managed_bots
import dev.inmo.tgbotapi.bot.TelegramBot
import dev.inmo.tgbotapi.requests.managed_bots.SetManagedBotAccessSettings
import dev.inmo.tgbotapi.types.ChatId
public suspend fun TelegramBot.setManagedBotAccessSettings(
userId: ChatId,
addedUserIds: List<ChatId>? = null
): Unit = execute(
SetManagedBotAccessSettings(
userId = userId,
addedUserIds = addedUserIds
)
)

View File

@@ -977,6 +977,38 @@ public final class dev/inmo/tgbotapi/requests/GetUpdatesRequest$DefaultImpls {
public static fun method (Ldev/inmo/tgbotapi/requests/GetUpdatesRequest;)Ljava/lang/String;
}
public final class dev/inmo/tgbotapi/requests/GetUserPersonalChatMessages : dev/inmo/tgbotapi/requests/abstracts/SimpleRequest {
public static final field Companion Ldev/inmo/tgbotapi/requests/GetUserPersonalChatMessages$Companion;
public synthetic fun <init> (JILkotlin/jvm/internal/DefaultConstructorMarker;)V
public final fun component1-tHkBKVM ()J
public final fun component2 ()I
public final fun copy-zv9neSE (JI)Ldev/inmo/tgbotapi/requests/GetUserPersonalChatMessages;
public static synthetic fun copy-zv9neSE$default (Ldev/inmo/tgbotapi/requests/GetUserPersonalChatMessages;JIILjava/lang/Object;)Ldev/inmo/tgbotapi/requests/GetUserPersonalChatMessages;
public fun equals (Ljava/lang/Object;)Z
public final fun getLimit ()I
public fun getRequestSerializer ()Lkotlinx/serialization/SerializationStrategy;
public fun getResultDeserializer ()Lkotlinx/serialization/DeserializationStrategy;
public final fun getUserId-tHkBKVM ()J
public fun hashCode ()I
public fun method ()Ljava/lang/String;
public fun toString ()Ljava/lang/String;
}
public final synthetic class dev/inmo/tgbotapi/requests/GetUserPersonalChatMessages$$serializer : kotlinx/serialization/internal/GeneratedSerializer {
public static final field INSTANCE Ldev/inmo/tgbotapi/requests/GetUserPersonalChatMessages$$serializer;
public final fun childSerializers ()[Lkotlinx/serialization/KSerializer;
public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/inmo/tgbotapi/requests/GetUserPersonalChatMessages;
public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object;
public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor;
public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Ldev/inmo/tgbotapi/requests/GetUserPersonalChatMessages;)V
public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V
public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer;
}
public final class dev/inmo/tgbotapi/requests/GetUserPersonalChatMessages$Companion {
public final fun serializer ()Lkotlinx/serialization/KSerializer;
}
public final class dev/inmo/tgbotapi/requests/SavePreparedKeyboardButton : dev/inmo/tgbotapi/requests/abstracts/SimpleRequest {
public static final field Companion Ldev/inmo/tgbotapi/requests/SavePreparedKeyboardButton$Companion;
public synthetic fun <init> (JLdev/inmo/tgbotapi/types/buttons/KeyboardButton;Lkotlin/jvm/internal/DefaultConstructorMarker;)V
@@ -5812,6 +5844,36 @@ public final class dev/inmo/tgbotapi/requests/local/LogOut : dev/inmo/tgbotapi/r
public final fun serializer ()Lkotlinx/serialization/KSerializer;
}
public final class dev/inmo/tgbotapi/requests/managed_bots/GetManagedBotAccessSettings : dev/inmo/tgbotapi/requests/abstracts/SimpleRequest {
public static final field Companion Ldev/inmo/tgbotapi/requests/managed_bots/GetManagedBotAccessSettings$Companion;
public synthetic fun <init> (JLkotlin/jvm/internal/DefaultConstructorMarker;)V
public final fun component1-tHkBKVM ()J
public final fun copy-HZVsHAI (J)Ldev/inmo/tgbotapi/requests/managed_bots/GetManagedBotAccessSettings;
public static synthetic fun copy-HZVsHAI$default (Ldev/inmo/tgbotapi/requests/managed_bots/GetManagedBotAccessSettings;JILjava/lang/Object;)Ldev/inmo/tgbotapi/requests/managed_bots/GetManagedBotAccessSettings;
public fun equals (Ljava/lang/Object;)Z
public fun getRequestSerializer ()Lkotlinx/serialization/SerializationStrategy;
public fun getResultDeserializer ()Lkotlinx/serialization/DeserializationStrategy;
public final fun getUserId-tHkBKVM ()J
public fun hashCode ()I
public fun method ()Ljava/lang/String;
public fun toString ()Ljava/lang/String;
}
public final synthetic class dev/inmo/tgbotapi/requests/managed_bots/GetManagedBotAccessSettings$$serializer : kotlinx/serialization/internal/GeneratedSerializer {
public static final field INSTANCE Ldev/inmo/tgbotapi/requests/managed_bots/GetManagedBotAccessSettings$$serializer;
public final fun childSerializers ()[Lkotlinx/serialization/KSerializer;
public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/inmo/tgbotapi/requests/managed_bots/GetManagedBotAccessSettings;
public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object;
public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor;
public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Ldev/inmo/tgbotapi/requests/managed_bots/GetManagedBotAccessSettings;)V
public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V
public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer;
}
public final class dev/inmo/tgbotapi/requests/managed_bots/GetManagedBotAccessSettings$Companion {
public final fun serializer ()Lkotlinx/serialization/KSerializer;
}
public final class dev/inmo/tgbotapi/requests/managed_bots/GetManagedBotToken : dev/inmo/tgbotapi/requests/abstracts/SimpleRequest {
public static final field Companion Ldev/inmo/tgbotapi/requests/managed_bots/GetManagedBotToken$Companion;
public synthetic fun <init> (JLkotlin/jvm/internal/DefaultConstructorMarker;)V
@@ -5872,6 +5934,41 @@ public final class dev/inmo/tgbotapi/requests/managed_bots/ReplaceManagedBotToke
public final fun serializer ()Lkotlinx/serialization/KSerializer;
}
public final class dev/inmo/tgbotapi/requests/managed_bots/SetManagedBotAccessSettings : dev/inmo/tgbotapi/requests/abstracts/SimpleRequest {
public static final field Companion Ldev/inmo/tgbotapi/requests/managed_bots/SetManagedBotAccessSettings$Companion;
public synthetic fun <init> (JZLjava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public synthetic fun <init> (JZLjava/util/List;Lkotlin/jvm/internal/DefaultConstructorMarker;)V
public final fun component1-tHkBKVM ()J
public final fun component2 ()Z
public final fun component3 ()Ljava/util/List;
public final fun copy-pU7KfLc (JZLjava/util/List;)Ldev/inmo/tgbotapi/requests/managed_bots/SetManagedBotAccessSettings;
public static synthetic fun copy-pU7KfLc$default (Ldev/inmo/tgbotapi/requests/managed_bots/SetManagedBotAccessSettings;JZLjava/util/List;ILjava/lang/Object;)Ldev/inmo/tgbotapi/requests/managed_bots/SetManagedBotAccessSettings;
public fun equals (Ljava/lang/Object;)Z
public final fun getAddedUserIds ()Ljava/util/List;
public fun getRequestSerializer ()Lkotlinx/serialization/SerializationStrategy;
public fun getResultDeserializer ()Lkotlinx/serialization/DeserializationStrategy;
public final fun getUserId-tHkBKVM ()J
public fun hashCode ()I
public final fun isAccessRestricted ()Z
public fun method ()Ljava/lang/String;
public fun toString ()Ljava/lang/String;
}
public final synthetic class dev/inmo/tgbotapi/requests/managed_bots/SetManagedBotAccessSettings$$serializer : kotlinx/serialization/internal/GeneratedSerializer {
public static final field INSTANCE Ldev/inmo/tgbotapi/requests/managed_bots/SetManagedBotAccessSettings$$serializer;
public final fun childSerializers ()[Lkotlinx/serialization/KSerializer;
public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/inmo/tgbotapi/requests/managed_bots/SetManagedBotAccessSettings;
public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object;
public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor;
public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Ldev/inmo/tgbotapi/requests/managed_bots/SetManagedBotAccessSettings;)V
public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V
public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer;
}
public final class dev/inmo/tgbotapi/requests/managed_bots/SetManagedBotAccessSettings$Companion {
public final fun serializer ()Lkotlinx/serialization/KSerializer;
}
public final class dev/inmo/tgbotapi/requests/send/CopyMessage : dev/inmo/tgbotapi/abstracts/TextedOutput, dev/inmo/tgbotapi/abstracts/WithCustomStartMediaData, dev/inmo/tgbotapi/abstracts/types/MessageAction, dev/inmo/tgbotapi/abstracts/types/OptionallyWithEffectId, dev/inmo/tgbotapi/abstracts/types/ProtectContent, dev/inmo/tgbotapi/requests/abstracts/SimpleRequest, dev/inmo/tgbotapi/requests/send/abstracts/OptionallyMessageThreadRequest, dev/inmo/tgbotapi/requests/send/abstracts/ReplyingMarkupSendMessageRequest, dev/inmo/tgbotapi/requests/send/abstracts/WithCustomizableCaptionRequest {
public static final field Companion Ldev/inmo/tgbotapi/requests/send/CopyMessage$Companion;
public synthetic fun <init> (Ldev/inmo/tgbotapi/types/ChatIdentifier;Ldev/inmo/tgbotapi/types/ChatIdentifier;JLjava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;Ljava/util/List;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/Integer;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
@@ -10759,6 +10856,8 @@ public final class dev/inmo/tgbotapi/types/CommonKt {
public static final field addedByChatField Ljava/lang/String;
public static final field addedByUserField Ljava/lang/String;
public static final field addedToAttachmentMenuField Ljava/lang/String;
public static final field addedUserIdsField Ljava/lang/String;
public static final field addedUsersField Ljava/lang/String;
public static final field additionDateField Ljava/lang/String;
public static final field additionalChatCountField Ljava/lang/String;
public static final field addressField Ljava/lang/String;
@@ -11042,6 +11141,7 @@ public final class dev/inmo/tgbotapi/types/CommonKt {
public static final field inviteLinkField Ljava/lang/String;
public static final field invoicePayloadField Ljava/lang/String;
public static final field ipAddressField Ljava/lang/String;
public static final field isAccessRestrictedField Ljava/lang/String;
public static final field isAnimatedField Ljava/lang/String;
public static final field isAnimationField Ljava/lang/String;
public static final field isAnonymousField Ljava/lang/String;
@@ -24066,6 +24166,36 @@ public final class dev/inmo/tgbotapi/types/location/StaticLocation$Companion {
public final fun serializer ()Lkotlinx/serialization/KSerializer;
}
public final class dev/inmo/tgbotapi/types/managed_bots/BotAccessSettings {
public static final field Companion Ldev/inmo/tgbotapi/types/managed_bots/BotAccessSettings$Companion;
public fun <init> (ZLjava/util/List;)V
public synthetic fun <init> (ZLjava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public final fun component1 ()Z
public final fun component2 ()Ljava/util/List;
public final fun copy (ZLjava/util/List;)Ldev/inmo/tgbotapi/types/managed_bots/BotAccessSettings;
public static synthetic fun copy$default (Ldev/inmo/tgbotapi/types/managed_bots/BotAccessSettings;ZLjava/util/List;ILjava/lang/Object;)Ldev/inmo/tgbotapi/types/managed_bots/BotAccessSettings;
public fun equals (Ljava/lang/Object;)Z
public final fun getAddedUsers ()Ljava/util/List;
public fun hashCode ()I
public final fun isAccessRestricted ()Z
public fun toString ()Ljava/lang/String;
}
public final synthetic class dev/inmo/tgbotapi/types/managed_bots/BotAccessSettings$$serializer : kotlinx/serialization/internal/GeneratedSerializer {
public static final field INSTANCE Ldev/inmo/tgbotapi/types/managed_bots/BotAccessSettings$$serializer;
public final fun childSerializers ()[Lkotlinx/serialization/KSerializer;
public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ldev/inmo/tgbotapi/types/managed_bots/BotAccessSettings;
public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object;
public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor;
public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Ldev/inmo/tgbotapi/types/managed_bots/BotAccessSettings;)V
public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V
public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer;
}
public final class dev/inmo/tgbotapi/types/managed_bots/BotAccessSettings$Companion {
public final fun serializer ()Lkotlinx/serialization/KSerializer;
}
public final class dev/inmo/tgbotapi/types/managed_bots/ManagedBotCreated : dev/inmo/tgbotapi/types/message/ChatEvents/abstracts/CommonEvent {
public static final field Companion Ldev/inmo/tgbotapi/types/managed_bots/ManagedBotCreated$Companion;
public fun <init> (Ldev/inmo/tgbotapi/types/chat/PreviewBot;)V

View File

@@ -0,0 +1,43 @@
package dev.inmo.tgbotapi.requests
import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest
import dev.inmo.tgbotapi.types.ChatId
import dev.inmo.tgbotapi.types.limitField
import dev.inmo.tgbotapi.types.message.RawMessage
import dev.inmo.tgbotapi.types.message.abstracts.ChatContentMessage
import dev.inmo.tgbotapi.types.message.abstracts.ChatMessage
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
import dev.inmo.tgbotapi.types.userIdField
import kotlinx.serialization.*
import kotlinx.serialization.builtins.ListSerializer
import kotlinx.serialization.descriptors.SerialDescriptor
import kotlinx.serialization.encoding.Decoder
@Serializable
data class GetUserPersonalChatMessages(
@SerialName(userIdField)
val userId: ChatId,
@SerialName(limitField)
val limit: Int
) : SimpleRequest<List<ChatContentMessage<*>>> {
override fun method(): String = "getUserPersonalChatMessages"
override val resultDeserializer: DeserializationStrategy<List<ChatContentMessage<*>>>
get() = resultSerializer
override val requestSerializer: SerializationStrategy<*>
get() = serializer()
private object MessagesDeserializer : DeserializationStrategy<List<ChatContentMessage<*>>> {
private val rawListSerializer = ListSerializer(RawMessage.serializer())
override val descriptor: SerialDescriptor = rawListSerializer.descriptor
@Suppress("UNCHECKED_CAST")
override fun deserialize(decoder: Decoder): List<ChatContentMessage<*>> {
return rawListSerializer.deserialize(decoder).map {
it.asMessage as ChatContentMessage<*>
}
}
}
companion object {
internal val resultSerializer: DeserializationStrategy<List<ChatContentMessage<*>>> = MessagesDeserializer
}
}

View File

@@ -0,0 +1,19 @@
package dev.inmo.tgbotapi.requests.managed_bots
import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest
import dev.inmo.tgbotapi.types.ChatId
import dev.inmo.tgbotapi.types.managed_bots.BotAccessSettings
import dev.inmo.tgbotapi.types.userIdField
import kotlinx.serialization.*
@Serializable
data class GetManagedBotAccessSettings(
@SerialName(userIdField)
val userId: ChatId
) : SimpleRequest<BotAccessSettings> {
override fun method(): String = "getManagedBotAccessSettings"
override val resultDeserializer: DeserializationStrategy<BotAccessSettings>
get() = BotAccessSettings.serializer()
override val requestSerializer: SerializationStrategy<*>
get() = serializer()
}

View File

@@ -0,0 +1,26 @@
package dev.inmo.tgbotapi.requests.managed_bots
import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest
import dev.inmo.tgbotapi.types.ChatId
import dev.inmo.tgbotapi.types.addedUserIdsField
import dev.inmo.tgbotapi.types.isAccessRestrictedField
import dev.inmo.tgbotapi.types.userIdField
import dev.inmo.tgbotapi.utils.serializers.UnitFromBooleanSerializer
import kotlinx.serialization.*
@Serializable
data class SetManagedBotAccessSettings(
@SerialName(userIdField)
val userId: ChatId,
@SerialName(addedUserIdsField)
val addedUserIds: List<ChatId>? = null
) : SimpleRequest<Unit> {
@EncodeDefault
@SerialName(isAccessRestrictedField)
val isAccessRestricted: Boolean = addedUserIds != null
override fun method(): String = "setManagedBotAccessSettings"
override val resultDeserializer: DeserializationStrategy<Unit>
get() = UnitFromBooleanSerializer
override val requestSerializer: SerializationStrategy<*>
get() = serializer()
}

View File

@@ -62,7 +62,7 @@ val getUpdatesLimit = 1 .. 100
val callbackQueryAnswerLength = 0 until 200
val captionLength = 0 .. 1024
val storyCaptionLength = 0 .. 2048
val textLength = 1 .. 4096
val textLength = 0 .. 4096
val userProfilePhotosRequestLimit = 1 .. 100
val userProfileAudiosRequestLimit = 1 .. 100
val chatTitleLength = 1 until 255
@@ -241,6 +241,9 @@ const val maskPositionField = "mask_position"
const val phoneNumberField = "phone_number"
const val userIdField = "user_id"
const val userIdsField = "user_ids"
const val isAccessRestrictedField = "is_access_restricted"
const val addedUsersField = "added_users"
const val addedUserIdsField = "added_user_ids"
const val giftIdField = "gift_id"
const val onlyIfBannedField = "only_if_banned"
const val containsMasksField = "contains_masks"

View File

@@ -0,0 +1,18 @@
package dev.inmo.tgbotapi.types.managed_bots
import dev.inmo.tgbotapi.types.addedUsersField
import dev.inmo.tgbotapi.types.isAccessRestrictedField
import dev.inmo.tgbotapi.types.chat.User
import kotlinx.serialization.EncodeDefault
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
@Serializable
data class BotAccessSettings(
@SerialName(addedUsersField)
val addedUsers: List<User>? = null
) {
@EncodeDefault
@SerialName(isAccessRestrictedField)
val isAccessRestricted: Boolean = addedUsers != null
}