1
0
mirror of https://github.com/InsanusMokrassar/TelegramBotAPI.git synced 2026-06-12 14:26:47 +00:00

Compare commits

..

45 Commits

Author SHA1 Message Date
9f9d890831 fix of promoteChatAdministrator 2026-03-02 19:05:38 +06:00
da662603b0 fill changelog and readme 2026-03-02 18:50:51 +06:00
2dd91f47d7 add helper method sender_tag for messages 2026-03-02 17:40:47 +06:00
8eb8e5ee1f add support of iconCustomEmojiId in BottomButton 2026-03-02 16:56:57 +06:00
b533bab95f add support of users tags 2026-03-02 16:51:10 +06:00
4f97327d29 add support of date_time messages entities 2026-03-02 15:29:26 +06:00
b17d7a868a start 31.1.0 2026-03-02 00:30:37 +06:00
df695ceadb Merge pull request #1030 from InsanusMokrassar/31.0.1
31.0.1
2026-02-26 00:54:42 +06:00
ac511d0aed make nanostarAmount in StarTransaction nullable 2026-02-25 22:10:19 +06:00
65cd359002 start 31.0.1 2026-02-25 22:01:55 +06:00
8d7005be80 try to update nmcp version 2026-02-24 18:24:39 +06:00
a20368ee51 Merge pull request #1024 from InsanusMokrassar/31.0.0
31.0.0
2026-02-24 15:07:59 +06:00
744149a674 fill changelog 2026-02-24 15:02:25 +06:00
410183e315 add notes about support of new apis 2026-02-24 14:37:50 +06:00
9776a2474a fix of UniqueGiftModel 2026-02-24 14:09:49 +06:00
aebc571307 upfill changelog 2026-02-24 14:02:37 +06:00
26c11d9d6b add OwnedGifts sealed interface 2026-02-24 12:37:07 +06:00
c9be5041b8 check new fields and other things related to api updates in gifts 2026-02-20 17:49:16 +06:00
f10cfdbe1e add support of getChatGifts and getUserGifts 2026-02-20 17:05:51 +06:00
83b4d2155f add is_burned support 2026-02-20 13:55:19 +06:00
eccc687aec add rarity support 2026-02-20 13:06:53 +06:00
53e79b152e add support of unique gift colors 2026-02-20 12:54:21 +06:00
b9157b1924 completed by chat and completed by user support 2026-02-20 12:45:34 +06:00
e6aaa264f6 improvements of effectId in copyMessage and forwardMessage 2026-02-18 23:37:18 +06:00
e6cb028a71 improve repostStory 2026-02-18 22:55:38 +06:00
10b796c88e fix support of rating info 2026-02-18 22:46:56 +06:00
62a4bf5195 small fill of CHANGELOG and fix of library version 2026-02-18 22:23:42 +06:00
a0bb05ce4a add support of profile audios 2026-02-18 21:22:16 +06:00
e02849ae5e add purchased_paid_media in updates list 2026-02-18 17:52:26 +06:00
4252db489a fix support of paid_message_star_count 2026-02-18 17:18:38 +06:00
ac05fa0fe3 add support of SetMyProfilePhoto and RemoveMyProfilePhoto 2026-02-17 22:05:38 +06:00
bd816b7847 realize ChatOwnerLeft and ChatOwnerChanged 2026-02-17 15:30:25 +06:00
407f2a8bf7 fix serialization of simple keyboard button 2026-02-17 12:09:23 +06:00
10b1c359fa extend support of styles and iconEmojiCustomId 2026-02-16 23:22:04 +06:00
c4f2566b71 add support of style and iconEmojiCustomId 2026-02-16 22:57:45 +06:00
85fb7e42e5 fix RepostStory class 2026-02-16 22:39:18 +06:00
d68c70e898 fix drafts flows signatures 2026-02-16 18:52:41 +06:00
14402f9283 improve drafts flows 2026-02-16 18:48:31 +06:00
b734757062 add drafts flows 2026-02-16 18:24:29 +06:00
fd9ad8dbf1 add drafts 2026-02-16 18:03:05 +06:00
734e6074ef update events triggers 2026-02-16 17:35:46 +06:00
d642a04e01 update forum events 2026-02-16 17:26:35 +06:00
ecd01c9254 classcasts and apiDump 2026-02-16 17:14:28 +06:00
8922b80cff fixes 2026-02-16 17:09:48 +06:00
50a7c9cae2 update forum topic events 2026-02-16 17:08:49 +06:00
118 changed files with 5224 additions and 1253 deletions

View File

@@ -1,7 +1,88 @@
# TelegramBotAPI changelog
## 31.1.0
**THIS UPDATE CONTAINS ADDING SUPPORT OF [Telegram Bots API 9.5](https://core.telegram.org/bots/api-changelog#march-1-2026)**
* `Core`:
* Added `UserTag` value class and `senderTag` field to messages
* Added `SetChatMemberTag` request and `UserTag` support in `PromoteChatMember` and `ChatPermissions`
* Added `DateTimeTextSource` for `tg://time` links support
* Added `DateTimeFormatPart` and `TgDateTimeFormatBuilder` for building date-time format strings
* Added `UnitFromBooleanSerializer`
* `API`:
* Added `setChatMemberTag` extensions
* `Utils`:
* Added `dateTime` and `dateTimeln` extensions to `EntitiesBuilder`
* Added `dateTimeMarkdown`, `dateTimeMarkdownV2`, and `dateTimeHTML` string formatting extensions
* Regenerated class casts extensions
* `WebApps`:
* Added `iconCustomEmojiId` support to `BottomButton` and `BottomButtonParams`
## 31.0.1
* `Core`:
* In `StarTransaction` property `nanostarAmount` become nullable
## 31.0.0
**THIS UPDATE CONTAINS ADDING SUPPORT OF [Telegram Bots API 9.3](https://core.telegram.org/bots/api-changelog#december-31-2025)**
**THIS UPDATE CONTAINS ADDING SUPPORT OF [Telegram Bots API 9.4](https://core.telegram.org/bots/api-changelog#february-9-2026)**
**THIS UPDATE CONTAINS BREAKING CHANGES**
* `Version`:
* `MicroUtils`: `0.26.8` -> `0.26.9`
* `Core`:
* **THIS IS BREAKING CHANGE** All media files with sizes changed type of `fileSize` field from `Long` to `FileSize` (value class)
* **THIS IS BREAKING CHANGE** Class `GiftSentOrReceived` have been renamed to `GiftSentOrReceivedEvent` to clarify naming
* **THIS IS BREAKING CHANGE** New interface `OwnedGift` have been created
* **THIS IS BREAKING CHANGE** `OwnedGifts` have changed its generic type to `OwnedGift`
* **THIS IS BREAKING CHANGE** For `CheclistTask` have been made several changes:
* `ChecklistTask.Done` -> `ChecklistTask.Completed`
* `ChecklistTask.Undone` -> `ChecklistTask.Uncompleted`
* Added several inheritors of `ChecklistTask.Completed` - for completed by chat, by user or just completed tasks
* **THIS IS BREAKING CHANGE** `PrivateChat.id` type changed from `UserId` to `IdChatIdentifier`
* **THIS IS BREAKING CHANGE** `ForumChat` no longer extends `SupergroupChat`; new `SupergroupForumChat` interface created for supergroup forums
* **THIS IS BREAKING CHANGE** Added `PrivateForumChat` and `PrivateUserChat` interfaces to support private forums
* Added support of private forums (`ExtendedPrivateForumChatImpl`, `PrivateForumContentMessage`, `PrivateForumEventMessage`)
* Added `ChatOwnerChanged` and `ChatOwnerLeft` chat events
* Added `SetMyProfilePhoto` and `RemoveMyProfilePhoto` requests
* Added `GetUserProfileAudios` request and `UserProfileAudios` type
* Added `GetChatGifts` and `GetUserGifts` requests
* Added `RepostStory` request
* Added `SendMessageDraft` request with `DraftId` and `DraftIdAllocator`
* Added `KeyboardButtonStyle` support and `iconCustomEmojiId` field to keyboard buttons
* Added `style` and `iconCustomEmojiId` fields to `InlineKeyboardButton`
* Added `VideoCodec` and `VideoQuality` types
* Added `Rarity`, `GiftBackground`, `UniqueGiftName`, and `UniqueGiftColors` types for gifts
* Added new fields to `Gift.Regular`: `personalTotalCount`, `personalRemainingCount`, `isPremium`, `hasColors`, `background`, `uniqueGiftVariantCount`
* Added `isBurned` field support in `GiftSentOrReceivedEvent`
* Added `UserRating` type and `rating` field to `ExtendedPrivateChat`
* Added `Level` and `Rating` value classes
* Added `uniqueGiftColors` field to extended chats (channel, group, private)
* Added `paidMessageStarCount` field to `ExtendedGroupChat` and `ExtendedPrivateChat`
* Added `firstProfileAudio` field to `ExtendedPrivateChat`
* Added `purchased_paid_media` to updates list
* Added `effectId` support in `CopyMessage` and `ForwardMessage`
* Added `WithOptionalPaidMessageStarCount` interface
* Fixed serialization of `SimpleKeyboardButton`
* Fixed support of `paidMessageStarCount`
* `API`:
* Added extensions for `SetMyProfilePhoto`, `RemoveMyProfilePhoto`, `GetUserProfileAudios`
* Added extensions for `GetChatGifts` and `GetUserGifts`
* Added extensions for `RepostStory`
* Added extensions for `SendMessageDraft`
* Added `effectId` parameter to `copyMessage` and `forwardMessage` extensions
* Added `GetBusinessAccountGifts` extensions improvements
* `BehaviourBuilder`:
* Updated event triggers for new chat events (`ChatOwnerChanged`, `ChatOwnerLeft`, private forum events)
* Updated expectations for new event types
* `Utils`:
* Regenerated class casts extensions
* Updated `InlineKeyboardBuilder` and `ReplyKeyboardBuilder` with `style` and `iconCustomEmojiId` support
## 30.0.2
* `Version`:

View File

@@ -1,4 +1,4 @@
# TelegramBotAPI [![Maven Central Version](https://img.shields.io/maven-central/v/dev.inmo/tgbotapi)](https://central.sonatype.com/artifact/dev.inmo/tgbotapi) [![Supported version](https://img.shields.io/badge/Telegram%20Bot%20API-9.2-blue)](https://core.telegram.org/bots/api-changelog#august-15-2025)
# TelegramBotAPI [![Maven Central Version](https://img.shields.io/maven-central/v/dev.inmo/tgbotapi)](https://central.sonatype.com/artifact/dev.inmo/tgbotapi) [![Supported version](https://img.shields.io/badge/Telegram%20Bot%20API-9.5-blue)](https://core.telegram.org/bots/api-changelog#march-1-2026)
| Docs | [![KDocs](https://img.shields.io/static/v1?label=Dokka&message=KDocs&color=blue&logo=kotlin)](https://tgbotapi.inmo.dev/index.html) [![Mini tutorial](https://img.shields.io/static/v1?label=Mk&message=Docs&color=blue&logo=mkdocs)](https://docs.inmo.dev/tgbotapi/index.html) |
|:----------------------:|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|

View File

@@ -6,4 +6,4 @@ kotlin.incremental=true
kotlin.incremental.js=true
library_group=dev.inmo
library_version=31.0.0
library_version=31.1.0

View File

@@ -22,7 +22,7 @@ github-release-plugin = "2.5.2"
dokka = "2.0.0"
validator = "0.18.1"
nmcp = "1.2.0"
nmcp = "1.4.4"
[libraries]

View File

@@ -102,18 +102,18 @@ public final class dev/inmo/tgbotapi/extensions/api/EditLiveLocationInfo$Compani
}
public final class dev/inmo/tgbotapi/extensions/api/ForwardMessageKt {
public static final fun forwardMessage-AvxtAQo (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/Integer;ZZLkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun forwardMessage-AvxtAQo (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/Integer;ZZLkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun forwardMessage-AvxtAQo$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/Integer;ZZLkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun forwardMessage-AvxtAQo$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/Integer;ZZLkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static final fun forwardMessage-cCLTpuM (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ldev/inmo/tgbotapi/types/ChatIdentifier;JLdev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/Integer;ZZLkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun forwardMessage-cCLTpuM (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ldev/inmo/tgbotapi/types/chat/Chat;JLdev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/Integer;ZZLkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun forwardMessage-cCLTpuM (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ldev/inmo/tgbotapi/types/ChatIdentifier;JLdev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/Integer;ZZLkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun forwardMessage-cCLTpuM (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ldev/inmo/tgbotapi/types/chat/Chat;JLdev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/Integer;ZZLkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun forwardMessage-cCLTpuM$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ldev/inmo/tgbotapi/types/ChatIdentifier;JLdev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/Integer;ZZLkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun forwardMessage-cCLTpuM$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ldev/inmo/tgbotapi/types/chat/Chat;JLdev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/Integer;ZZLkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun forwardMessage-cCLTpuM$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ldev/inmo/tgbotapi/types/ChatIdentifier;JLdev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/Integer;ZZLkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun forwardMessage-cCLTpuM$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ldev/inmo/tgbotapi/types/chat/Chat;JLdev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/Integer;ZZLkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static final fun forwardMessage-XxpEIVY (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/Integer;ZZLjava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun forwardMessage-XxpEIVY (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/Integer;ZZLjava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun forwardMessage-XxpEIVY$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/Integer;ZZLjava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun forwardMessage-XxpEIVY$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/Integer;ZZLjava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static final fun forwardMessage-eiOsJlw (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ldev/inmo/tgbotapi/types/ChatIdentifier;JLdev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/Integer;ZZLjava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun forwardMessage-eiOsJlw (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ldev/inmo/tgbotapi/types/chat/Chat;JLdev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/Integer;ZZLjava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun forwardMessage-eiOsJlw (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ldev/inmo/tgbotapi/types/ChatIdentifier;JLdev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/Integer;ZZLjava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun forwardMessage-eiOsJlw (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ldev/inmo/tgbotapi/types/chat/Chat;JLdev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/Integer;ZZLjava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun forwardMessage-eiOsJlw$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ldev/inmo/tgbotapi/types/ChatIdentifier;JLdev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/Integer;ZZLjava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun forwardMessage-eiOsJlw$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ldev/inmo/tgbotapi/types/chat/Chat;JLdev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/Integer;ZZLjava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun forwardMessage-eiOsJlw$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ldev/inmo/tgbotapi/types/ChatIdentifier;JLdev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/Integer;ZZLjava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun forwardMessage-eiOsJlw$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ldev/inmo/tgbotapi/types/chat/Chat;JLdev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/Integer;ZZLjava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
}
public final class dev/inmo/tgbotapi/extensions/api/ForwardMessagesKt {
@@ -297,6 +297,10 @@ public final class dev/inmo/tgbotapi/extensions/api/bot/GetMyStarBalanceKt {
public static final fun getMyStarBalance (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
}
public final class dev/inmo/tgbotapi/extensions/api/bot/RemoveMyProfilePhotoKt {
public static final fun removeMyProfilePhoto (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
}
public final class dev/inmo/tgbotapi/extensions/api/bot/SetMyCommandsKt {
public static final fun setMyCommands (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ljava/util/List;Ldev/inmo/tgbotapi/types/commands/BotCommandScope;Ldev/inmo/micro_utils/language_codes/IetfLang;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun setMyCommands (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ljava/util/List;Ldev/inmo/tgbotapi/types/commands/BotCommandScope;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
@@ -327,6 +331,10 @@ public final class dev/inmo/tgbotapi/extensions/api/bot/SetMyNameKt {
public static synthetic fun setMyName$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ljava/lang/String;Ldev/inmo/micro_utils/language_codes/IetfLang;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
}
public final class dev/inmo/tgbotapi/extensions/api/bot/SetMyProfilePhotoKt {
public static final fun setMyProfilePhoto (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/requests/business_connection/InputProfilePhoto;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
}
public final class dev/inmo/tgbotapi/extensions/api/bot/SetMyShortDescriptionKt {
public static final fun setMyShortDescription (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ljava/lang/String;Ldev/inmo/micro_utils/language_codes/IetfLang;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun setMyShortDescription (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
@@ -699,25 +707,25 @@ public final class dev/inmo/tgbotapi/extensions/api/chat/members/PromoteChannelA
}
public final class dev/inmo/tgbotapi/extensions/api/chat/members/PromoteChatAdministratorKt {
public static final fun promoteChatAdministrator (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/TelegramDate;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun promoteChatAdministrator (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/chat/User;Ldev/inmo/tgbotapi/types/TelegramDate;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun promoteChatAdministrator (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/PublicChat;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/TelegramDate;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun promoteChatAdministrator (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/PublicChat;Ldev/inmo/tgbotapi/types/chat/User;Ldev/inmo/tgbotapi/types/TelegramDate;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun promoteChatAdministrator$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/TelegramDate;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun promoteChatAdministrator$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/chat/User;Ldev/inmo/tgbotapi/types/TelegramDate;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun promoteChatAdministrator$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/PublicChat;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/TelegramDate;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun promoteChatAdministrator$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/PublicChat;Ldev/inmo/tgbotapi/types/chat/User;Ldev/inmo/tgbotapi/types/TelegramDate;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static final fun promoteChatAdministrator (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/TelegramDate;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun promoteChatAdministrator (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/chat/User;Ldev/inmo/tgbotapi/types/TelegramDate;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun promoteChatAdministrator (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/PublicChat;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/TelegramDate;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun promoteChatAdministrator (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/PublicChat;Ldev/inmo/tgbotapi/types/chat/User;Ldev/inmo/tgbotapi/types/TelegramDate;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun promoteChatAdministrator$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/TelegramDate;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun promoteChatAdministrator$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/chat/User;Ldev/inmo/tgbotapi/types/TelegramDate;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun promoteChatAdministrator$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/PublicChat;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/TelegramDate;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun promoteChatAdministrator$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/PublicChat;Ldev/inmo/tgbotapi/types/chat/User;Ldev/inmo/tgbotapi/types/TelegramDate;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
}
public final class dev/inmo/tgbotapi/extensions/api/chat/members/PromoteChatMemberKt {
public static final fun promoteChatMember (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/TelegramDate;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun promoteChatMember (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/chat/User;Ldev/inmo/tgbotapi/types/TelegramDate;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun promoteChatMember (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/PublicChat;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/TelegramDate;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun promoteChatMember (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/PublicChat;Ldev/inmo/tgbotapi/types/chat/User;Ldev/inmo/tgbotapi/types/TelegramDate;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun promoteChatMember$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/TelegramDate;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun promoteChatMember$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/chat/User;Ldev/inmo/tgbotapi/types/TelegramDate;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun promoteChatMember$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/PublicChat;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/TelegramDate;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun promoteChatMember$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/PublicChat;Ldev/inmo/tgbotapi/types/chat/User;Ldev/inmo/tgbotapi/types/TelegramDate;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static final fun promoteChatMember (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/TelegramDate;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun promoteChatMember (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/chat/User;Ldev/inmo/tgbotapi/types/TelegramDate;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun promoteChatMember (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/PublicChat;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/TelegramDate;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun promoteChatMember (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/PublicChat;Ldev/inmo/tgbotapi/types/chat/User;Ldev/inmo/tgbotapi/types/TelegramDate;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun promoteChatMember$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/TelegramDate;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun promoteChatMember$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/chat/User;Ldev/inmo/tgbotapi/types/TelegramDate;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun promoteChatMember$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/PublicChat;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/TelegramDate;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun promoteChatMember$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/PublicChat;Ldev/inmo/tgbotapi/types/chat/User;Ldev/inmo/tgbotapi/types/TelegramDate;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
}
public final class dev/inmo/tgbotapi/extensions/api/chat/members/PromoteSupergroupAdministratorKt {
@@ -749,6 +757,17 @@ public final class dev/inmo/tgbotapi/extensions/api/chat/members/SetChatAdminist
public static final fun setChatAdministratorCustomTitle (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/PublicChat;Ldev/inmo/tgbotapi/types/chat/User;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
}
public final class dev/inmo/tgbotapi/extensions/api/chat/members/SetChatMemberTagKt {
public static final fun setChatMemberTag-IPSxYbI (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun setChatMemberTag-IPSxYbI (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ldev/inmo/tgbotapi/types/chat/User;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun setChatMemberTag-IPSxYbI (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/PublicChat;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun setChatMemberTag-IPSxYbI (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/PublicChat;Ldev/inmo/tgbotapi/types/chat/User;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun setChatMemberTag-IPSxYbI$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun setChatMemberTag-IPSxYbI$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ldev/inmo/tgbotapi/types/chat/User;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun setChatMemberTag-IPSxYbI$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/PublicChat;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun setChatMemberTag-IPSxYbI$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/PublicChat;Ldev/inmo/tgbotapi/types/chat/User;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
}
public final class dev/inmo/tgbotapi/extensions/api/chat/members/UnbanChatMemberKt {
public static final fun unbanChatMember (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun unbanChatMember (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/chat/User;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
@@ -1171,6 +1190,13 @@ public final class dev/inmo/tgbotapi/extensions/api/get/GetUserChatBoostsKt {
public static final fun getUserChatBoosts (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
}
public final class dev/inmo/tgbotapi/extensions/api/get/GetUserProfileAudiosKt {
public static final fun getUserProfileAudios (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ljava/lang/Integer;Ljava/lang/Integer;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun getUserProfileAudios (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/CommonUser;Ljava/lang/Integer;Ljava/lang/Integer;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun getUserProfileAudios$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ljava/lang/Integer;Ljava/lang/Integer;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun getUserProfileAudios$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/CommonUser;Ljava/lang/Integer;Ljava/lang/Integer;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
}
public final class dev/inmo/tgbotapi/extensions/api/get/GetUserProfilePhotosKt {
public static final fun getUserProfilePhotos (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ljava/lang/Integer;Ljava/lang/Integer;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun getUserProfilePhotos (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/CommonUser;Ljava/lang/Integer;Ljava/lang/Integer;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
@@ -1182,6 +1208,20 @@ public final class dev/inmo/tgbotapi/extensions/api/gifts/GetAvailableGiftsKt {
public static final fun getAvailableGifts (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
}
public final class dev/inmo/tgbotapi/extensions/api/gifts/GetChatGiftsKt {
public static final fun getChatGifts (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;ZZZZZZZZLjava/lang/String;Ljava/lang/Integer;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun getChatGifts$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;ZZZZZZZZLjava/lang/String;Ljava/lang/Integer;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static final fun getChatGiftsFlow (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;ZZZZZZZZLjava/lang/String;Ljava/lang/Integer;Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/flow/Flow;
public static synthetic fun getChatGiftsFlow$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;ZZZZZZZZLjava/lang/String;Ljava/lang/Integer;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lkotlinx/coroutines/flow/Flow;
}
public final class dev/inmo/tgbotapi/extensions/api/gifts/GetUserGiftsKt {
public static final fun getUserGifts (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;ZZZZZZLjava/lang/String;Ljava/lang/Integer;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun getUserGifts$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;ZZZZZZLjava/lang/String;Ljava/lang/Integer;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static final fun getUserGiftsFlow (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;ZZZZZZLjava/lang/String;Ljava/lang/Integer;Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/flow/Flow;
public static synthetic fun getUserGiftsFlow$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;ZZZZZZLjava/lang/String;Ljava/lang/Integer;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lkotlinx/coroutines/flow/Flow;
}
public final class dev/inmo/tgbotapi/extensions/api/gifts/GiftPremiumSubscriptionKt {
public static final fun giftPremiumSubscription (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;IILdev/inmo/tgbotapi/types/message/textsources/TextSource;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun giftPremiumSubscription (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;IILjava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
@@ -1236,30 +1276,30 @@ public final class dev/inmo/tgbotapi/extensions/api/passport/SetPassportDataErro
}
public final class dev/inmo/tgbotapi/extensions/api/send/CopyMessageKt {
public static final fun copyMessage-Gp8a-iQ (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;JLdev/inmo/tgbotapi/types/ChatIdentifier;Ljava/util/List;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/Integer;ZZZLdev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun copyMessage-Gp8a-iQ (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;JLdev/inmo/tgbotapi/types/chat/Chat;Ljava/util/List;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/Integer;ZZZLdev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun copyMessage-Gp8a-iQ (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;JLdev/inmo/tgbotapi/types/ChatIdentifier;Ljava/util/List;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/Integer;ZZZLdev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun copyMessage-Gp8a-iQ (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;JLdev/inmo/tgbotapi/types/chat/Chat;Ljava/util/List;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/Integer;ZZZLdev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun copyMessage-Gp8a-iQ$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;JLdev/inmo/tgbotapi/types/ChatIdentifier;Ljava/util/List;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/Integer;ZZZLdev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun copyMessage-Gp8a-iQ$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;JLdev/inmo/tgbotapi/types/chat/Chat;Ljava/util/List;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/Integer;ZZZLdev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun copyMessage-Gp8a-iQ$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;JLdev/inmo/tgbotapi/types/ChatIdentifier;Ljava/util/List;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/Integer;ZZZLdev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun copyMessage-Gp8a-iQ$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;JLdev/inmo/tgbotapi/types/chat/Chat;Ljava/util/List;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/Integer;ZZZLdev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static final fun copyMessage-ZaV1bfk (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ljava/util/List;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/Integer;ZZZLdev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun copyMessage-ZaV1bfk (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ljava/util/List;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/Integer;ZZZLdev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun copyMessage-ZaV1bfk$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ljava/util/List;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/Integer;ZZZLdev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun copyMessage-ZaV1bfk$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ljava/util/List;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/Integer;ZZZLdev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static final fun copyMessage-fAg17-Y (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;JLdev/inmo/tgbotapi/types/ChatIdentifier;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/Integer;ZZZLdev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun copyMessage-fAg17-Y (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;JLdev/inmo/tgbotapi/types/chat/Chat;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/Integer;ZZZLdev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun copyMessage-fAg17-Y (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;JLdev/inmo/tgbotapi/types/ChatIdentifier;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/Integer;ZZZLdev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun copyMessage-fAg17-Y (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;JLdev/inmo/tgbotapi/types/chat/Chat;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/Integer;ZZZLdev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun copyMessage-fAg17-Y$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;JLdev/inmo/tgbotapi/types/ChatIdentifier;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/Integer;ZZZLdev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun copyMessage-fAg17-Y$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;JLdev/inmo/tgbotapi/types/chat/Chat;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/Integer;ZZZLdev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun copyMessage-fAg17-Y$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;JLdev/inmo/tgbotapi/types/ChatIdentifier;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/Integer;ZZZLdev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun copyMessage-fAg17-Y$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;JLdev/inmo/tgbotapi/types/chat/Chat;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/Integer;ZZZLdev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static final fun copyMessage-hd0IimM (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/Integer;ZZZLdev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun copyMessage-hd0IimM (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/Integer;ZZZLdev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun copyMessage-hd0IimM$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/Integer;ZZZLdev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun copyMessage-hd0IimM$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/Integer;ZZZLdev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static final fun copyMessage-Fl_6ToM (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;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;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun copyMessage-Fl_6ToM (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;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;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun copyMessage-Fl_6ToM$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;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;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun copyMessage-Fl_6ToM$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;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;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static final fun copyMessage-uXJf_qk (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;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;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun copyMessage-uXJf_qk (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;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;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun copyMessage-uXJf_qk$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;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;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun copyMessage-uXJf_qk$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;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;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static final fun copyMessage-wfJdvLg (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;JLdev/inmo/tgbotapi/types/ChatIdentifier;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;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun copyMessage-wfJdvLg (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;JLdev/inmo/tgbotapi/types/chat/Chat;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;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun copyMessage-wfJdvLg (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;JLdev/inmo/tgbotapi/types/ChatIdentifier;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;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun copyMessage-wfJdvLg (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;JLdev/inmo/tgbotapi/types/chat/Chat;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;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun copyMessage-wfJdvLg$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;JLdev/inmo/tgbotapi/types/ChatIdentifier;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;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun copyMessage-wfJdvLg$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;JLdev/inmo/tgbotapi/types/chat/Chat;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;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun copyMessage-wfJdvLg$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;JLdev/inmo/tgbotapi/types/ChatIdentifier;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;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun copyMessage-wfJdvLg$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;JLdev/inmo/tgbotapi/types/chat/Chat;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;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static final fun copyMessage-y3nHRZ4 (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;JLdev/inmo/tgbotapi/types/ChatIdentifier;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;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;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun copyMessage-y3nHRZ4 (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;JLdev/inmo/tgbotapi/types/chat/Chat;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;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;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun copyMessage-y3nHRZ4 (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;JLdev/inmo/tgbotapi/types/ChatIdentifier;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;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;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun copyMessage-y3nHRZ4 (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;JLdev/inmo/tgbotapi/types/chat/Chat;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;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;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun copyMessage-y3nHRZ4$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;JLdev/inmo/tgbotapi/types/ChatIdentifier;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;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;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun copyMessage-y3nHRZ4$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;JLdev/inmo/tgbotapi/types/chat/Chat;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;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;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun copyMessage-y3nHRZ4$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;JLdev/inmo/tgbotapi/types/ChatIdentifier;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;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;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun copyMessage-y3nHRZ4$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;JLdev/inmo/tgbotapi/types/chat/Chat;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;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;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
}
public final class dev/inmo/tgbotapi/extensions/api/send/CopyMessagesKt {
@@ -1292,6 +1332,8 @@ public final class dev/inmo/tgbotapi/extensions/api/send/RepliesKt {
public static synthetic fun reply-07Q6tWM$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/polls/Poll;Ljava/lang/String;Ljava/util/List;ZZLdev/inmo/tgbotapi/types/polls/ScheduledCloseInfo;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/String;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun reply-07Q6tWM$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/polls/Poll;Ljava/util/List;Ljava/util/List;ZZLdev/inmo/tgbotapi/types/polls/ScheduledCloseInfo;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/String;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun reply-07Q6tWM$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ljava/util/List;Ljava/util/List;ZZZLdev/inmo/tgbotapi/types/polls/ScheduledCloseInfo;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/String;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static final fun reply-2ktRMvg (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun reply-2ktRMvg$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static final fun reply-CMAGsOk (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/files/AudioFile;Ljava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/String;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun reply-CMAGsOk (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/files/VoiceFile;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/String;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun reply-CMAGsOk (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/message/content/TextedMediaContent;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/String;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
@@ -1348,8 +1390,6 @@ public final class dev/inmo/tgbotapi/extensions/api/send/RepliesKt {
public static synthetic fun reply-VsctQzc$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ljava/lang/String;Ldev/inmo/tgbotapi/types/checklists/Checklist$Input;Ldev/inmo/tgbotapi/types/IdChatIdentifier;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static final fun reply-aLuG4gw (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ljava/util/List;Ljava/util/List;ZZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/String;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun reply-aLuG4gw$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ljava/util/List;Ljava/util/List;ZZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/String;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static final fun reply-hUKQvJ8 (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;ZZZLdev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun reply-hUKQvJ8$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;ZZZLdev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static final fun reply-lZCteSw (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;DDLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/String;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun reply-lZCteSw (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/files/AnimationFile;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZZLjava/lang/Long;Ljava/lang/Integer;Ljava/lang/Integer;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/String;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun reply-lZCteSw (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/polls/QuizPoll;Ljava/util/List;Ljava/util/List;IZZLjava/util/List;Ldev/inmo/tgbotapi/types/polls/ScheduledCloseInfo;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/String;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
@@ -1368,10 +1408,6 @@ public final class dev/inmo/tgbotapi/extensions/api/send/RepliesKt {
public static synthetic fun reply-nHbXDm8$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/files/AudioFile;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;Ljava/lang/String;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/String;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun reply-nHbXDm8$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/files/PhotoSize;Ljava/util/List;ZZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/String;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun reply-nHbXDm8$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/files/VideoFile;Ljava/util/List;ZZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/String;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static final fun reply-nP6I7Xo (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/ChatIdentifier;JLjava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;ZZZLdev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun reply-nP6I7Xo (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/chat/Chat;JLjava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;ZZZLdev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun reply-nP6I7Xo$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/ChatIdentifier;JLjava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;ZZZLdev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun reply-nP6I7Xo$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/chat/Chat;JLjava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;ZZZLdev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static final fun reply-oBdB6pc (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/polls/QuizPoll;Ljava/lang/String;Ljava/util/List;IZZLdev/inmo/tgbotapi/types/message/ParseMode;Ljava/util/List;Ldev/inmo/tgbotapi/types/polls/ScheduledCloseInfo;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/String;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun reply-oBdB6pc (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/polls/QuizPoll;Ljava/lang/String;Ljava/util/List;Ljava/util/List;IZZLdev/inmo/tgbotapi/types/message/ParseMode;Ldev/inmo/tgbotapi/types/polls/ScheduledCloseInfo;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/String;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun reply-oBdB6pc (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ljava/lang/String;Ljava/util/List;ILjava/lang/String;ZZLdev/inmo/tgbotapi/types/message/ParseMode;Ldev/inmo/tgbotapi/types/message/ParseMode;Ldev/inmo/tgbotapi/types/polls/ScheduledCloseInfo;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/String;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
@@ -1382,6 +1418,10 @@ public final class dev/inmo/tgbotapi/extensions/api/send/RepliesKt {
public static synthetic fun reply-rwUb11Q$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ljava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/String;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static final fun reply-svOTteU (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ldev/inmo/tgbotapi/types/payments/LabeledPrice;Ljava/lang/String;Ljava/lang/String;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun reply-svOTteU$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ldev/inmo/tgbotapi/types/payments/LabeledPrice;Ljava/lang/String;Ljava/lang/String;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static final fun reply-vEe06Jc (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/ChatIdentifier;JLjava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun reply-vEe06Jc (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/chat/Chat;JLjava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun reply-vEe06Jc$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/ChatIdentifier;JLjava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun reply-vEe06Jc$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ldev/inmo/tgbotapi/types/chat/Chat;JLjava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static final fun reply-vhp4Ftk (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/BusinessContentMessage;Ldev/inmo/tgbotapi/types/checklists/Checklist$Input;Ldev/inmo/tgbotapi/types/IdChatIdentifier;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun reply-vhp4Ftk$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/BusinessContentMessage;Ldev/inmo/tgbotapi/types/checklists/Checklist$Input;Ldev/inmo/tgbotapi/types/IdChatIdentifier;ZZLjava/lang/String;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static final fun reply-x00u5LQ (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;DDLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/String;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
@@ -1451,10 +1491,6 @@ public final class dev/inmo/tgbotapi/extensions/api/send/RepliesKt {
public final class dev/inmo/tgbotapi/extensions/api/send/RepliesWithChatsAndMessagesKt {
public static final fun reply--6bQNHA (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLdev/inmo/tgbotapi/types/files/Sticker;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/String;Ljava/lang/String;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun reply--6bQNHA$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLdev/inmo/tgbotapi/types/files/Sticker;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/String;Ljava/lang/String;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static final fun reply--gEd3Lo (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLdev/inmo/tgbotapi/types/ChatIdentifier;JLjava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;ZZZLdev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun reply--gEd3Lo (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLdev/inmo/tgbotapi/types/chat/Chat;JLjava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;ZZZLdev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun reply--gEd3Lo$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLdev/inmo/tgbotapi/types/ChatIdentifier;JLjava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;ZZZLdev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun reply--gEd3Lo$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLdev/inmo/tgbotapi/types/chat/Chat;JLjava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;ZZZLdev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static final fun reply-4WtBPKI (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLjava/util/List;Ljava/util/List;ZZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/String;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun reply-4WtBPKI$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLjava/util/List;Ljava/util/List;ZZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/String;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static final fun reply-5gfNrEQ (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLdev/inmo/tgbotapi/types/polls/Poll;Ljava/lang/String;Ljava/util/List;ZZLdev/inmo/tgbotapi/types/polls/ScheduledCloseInfo;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/String;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
@@ -1471,10 +1507,10 @@ public final class dev/inmo/tgbotapi/extensions/api/send/RepliesWithChatsAndMess
public static synthetic fun reply-8Bt-U8k$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLdev/inmo/tgbotapi/types/files/VoiceFile;Ljava/util/List;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/String;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun reply-8Bt-U8k$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLdev/inmo/tgbotapi/types/message/content/TextedMediaContent;Ljava/util/List;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/String;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun reply-8Bt-U8k$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLjava/util/List;Ldev/inmo/tgbotapi/types/LinkPreviewOptions;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/String;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static final fun reply-9fIZaG4 (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLdev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun reply-9fIZaG4$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLdev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static final fun reply-DZcorTM (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLjava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/String;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun reply-DZcorTM$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLjava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/String;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static final fun reply-PvqzOKA (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLdev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;ZZZLdev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun reply-PvqzOKA$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLdev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;ZZZLdev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static final fun reply-TdhlCvc (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLdev/inmo/tgbotapi/types/files/AnimationFile;Ljava/util/List;ZZLjava/lang/Long;Ljava/lang/Integer;Ljava/lang/Integer;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/String;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun reply-TdhlCvc (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLdev/inmo/tgbotapi/types/location/StaticLocation;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/String;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun reply-TdhlCvc (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLdev/inmo/tgbotapi/types/polls/RegularPoll;Ljava/util/List;Ljava/util/List;ZZZLdev/inmo/tgbotapi/types/polls/ScheduledCloseInfo;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/String;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
@@ -1559,6 +1595,10 @@ public final class dev/inmo/tgbotapi/extensions/api/send/RepliesWithChatsAndMess
public static final fun reply-rtOt0Uo (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLdev/inmo/tgbotapi/types/files/VideoFile;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/String;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun reply-rtOt0Uo$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLdev/inmo/tgbotapi/types/files/PhotoSize;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/String;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun reply-rtOt0Uo$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLdev/inmo/tgbotapi/types/files/VideoFile;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/String;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static final fun reply-xDOeux0 (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLdev/inmo/tgbotapi/types/ChatIdentifier;JLjava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun reply-xDOeux0 (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLdev/inmo/tgbotapi/types/chat/Chat;JLjava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun reply-xDOeux0$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLdev/inmo/tgbotapi/types/ChatIdentifier;JLjava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun reply-xDOeux0$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLdev/inmo/tgbotapi/types/chat/Chat;JLjava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static final fun replyLiveLocationWithLatLongChatIdAndMessageId (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLkotlinx/coroutines/flow/Flow;JLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/String;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun replyLiveLocationWithLatLongChatIdAndMessageId$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLkotlinx/coroutines/flow/Flow;JLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/String;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static final fun replyLiveLocationWithLocationChatIdAndMessageId (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLkotlinx/coroutines/flow/Flow;JLdev/inmo/tgbotapi/types/IdChatIdentifier;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/String;ZZZLjava/lang/String;Ldev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ljava/lang/Boolean;Ldev/inmo/tgbotapi/types/checklists/ChecklistTaskId;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
@@ -1765,6 +1805,32 @@ public final class dev/inmo/tgbotapi/extensions/api/send/SendLiveLocationKt {
public static synthetic fun sendLocation-xV04fPk$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ldev/inmo/tgbotapi/types/location/Location;ILjava/lang/Float;Ljava/lang/Integer;Ljava/lang/Float;Ldev/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;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
}
public final class dev/inmo/tgbotapi/extensions/api/send/SendMessageDraftKt {
public static final fun getGlobalDraftIdAllocator ()Ldev/inmo/tgbotapi/utils/DraftIdAllocator;
public static final fun sendMessageDraft-85jglgs (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLjava/util/List;Ldev/inmo/tgbotapi/types/MessageThreadId;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun sendMessageDraft-85jglgs (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;JLjava/util/List;Ldev/inmo/tgbotapi/types/MessageThreadId;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun sendMessageDraft-85jglgs$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLjava/util/List;Ldev/inmo/tgbotapi/types/MessageThreadId;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun sendMessageDraft-85jglgs$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;JLjava/util/List;Ldev/inmo/tgbotapi/types/MessageThreadId;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static final fun sendMessageDraft-OYtvHtc (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLdev/inmo/tgbotapi/types/message/textsources/TextSource;Ldev/inmo/tgbotapi/types/MessageThreadId;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun sendMessageDraft-OYtvHtc (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLjava/lang/String;Ldev/inmo/tgbotapi/types/MessageThreadId;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun sendMessageDraft-OYtvHtc (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;JLdev/inmo/tgbotapi/types/message/textsources/TextSource;Ldev/inmo/tgbotapi/types/MessageThreadId;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun sendMessageDraft-OYtvHtc (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;JLjava/lang/String;Ldev/inmo/tgbotapi/types/MessageThreadId;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun sendMessageDraft-OYtvHtc$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLdev/inmo/tgbotapi/types/message/textsources/TextSource;Ldev/inmo/tgbotapi/types/MessageThreadId;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun sendMessageDraft-OYtvHtc$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLjava/lang/String;Ldev/inmo/tgbotapi/types/MessageThreadId;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun sendMessageDraft-OYtvHtc$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;JLdev/inmo/tgbotapi/types/message/textsources/TextSource;Ldev/inmo/tgbotapi/types/MessageThreadId;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun sendMessageDraft-OYtvHtc$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;JLjava/lang/String;Ldev/inmo/tgbotapi/types/MessageThreadId;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static final fun sendMessageDraft-PjdzSgQ (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLjava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;Ldev/inmo/tgbotapi/types/MessageThreadId;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun sendMessageDraft-PjdzSgQ (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;JLjava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;Ldev/inmo/tgbotapi/types/MessageThreadId;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun sendMessageDraft-PjdzSgQ$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLjava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;Ldev/inmo/tgbotapi/types/MessageThreadId;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun sendMessageDraft-PjdzSgQ$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;JLjava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;Ldev/inmo/tgbotapi/types/MessageThreadId;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static final fun sendMessageDraftFlow-lJCFx7I (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Lkotlinx/coroutines/flow/Flow;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DraftId;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun sendMessageDraftFlow-lJCFx7I$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Lkotlinx/coroutines/flow/Flow;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DraftId;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static final fun sendMessageDraftFlowWithTexts-lJCFx7I (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Lkotlinx/coroutines/flow/Flow;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DraftId;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun sendMessageDraftFlowWithTexts-lJCFx7I$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Lkotlinx/coroutines/flow/Flow;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DraftId;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static final fun sendMessageDraftFlowWithTextsAndParseMode-lJCFx7I (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Lkotlinx/coroutines/flow/Flow;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DraftId;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun sendMessageDraftFlowWithTextsAndParseMode-lJCFx7I$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;Lkotlinx/coroutines/flow/Flow;Ldev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DraftId;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
}
public final class dev/inmo/tgbotapi/extensions/api/send/SendMessageKt {
public static final fun sendMessage-EUozXF4 (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ldev/inmo/tgbotapi/types/message/textsources/TextSource;Ldev/inmo/tgbotapi/types/LinkPreviewOptions;Ldev/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;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun sendMessage-EUozXF4 (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ljava/lang/String;Ldev/inmo/tgbotapi/types/LinkPreviewOptions;Ldev/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;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
@@ -1843,6 +1909,10 @@ public final class dev/inmo/tgbotapi/extensions/api/send/SendsKt {
public static final fun send-6LrTU6Q (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;ILjava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;Ljava/lang/String;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/String;ZZZLdev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun send-6LrTU6Q$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;ILjava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;Ljava/lang/String;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/String;ZZZLdev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun send-6LrTU6Q$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;ILjava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;Ljava/lang/String;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/String;ZZZLdev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static final fun send-85jglgs (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLjava/util/List;Ldev/inmo/tgbotapi/types/MessageThreadId;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun send-85jglgs (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;JLjava/util/List;Ldev/inmo/tgbotapi/types/MessageThreadId;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun send-85jglgs$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLjava/util/List;Ldev/inmo/tgbotapi/types/MessageThreadId;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun send-85jglgs$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;JLjava/util/List;Ldev/inmo/tgbotapi/types/MessageThreadId;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static final fun send-B42rpK4 (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ljava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZZLdev/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;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun send-B42rpK4 (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;Ljava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZZLdev/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;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun send-B42rpK4$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ljava/util/List;Ljava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;ZZLdev/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;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
@@ -1897,6 +1967,18 @@ public final class dev/inmo/tgbotapi/extensions/api/send/SendsKt {
public static final fun send-OEhgwS8 (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;ILjava/util/List;Ljava/util/List;Ljava/lang/String;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/String;ZZZLdev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun send-OEhgwS8$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;ILjava/util/List;Ljava/util/List;Ljava/lang/String;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/String;ZZZLdev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun send-OEhgwS8$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;ILjava/util/List;Ljava/util/List;Ljava/lang/String;ZLdev/inmo/tgbotapi/types/MessageThreadId;Ldev/inmo/tgbotapi/types/DirectMessageThreadId;Ljava/lang/String;ZZZLdev/inmo/tgbotapi/types/message/SuggestedPostParameters;Ldev/inmo/tgbotapi/types/ReplyParameters;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static final fun send-OYtvHtc (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLdev/inmo/tgbotapi/types/message/textsources/TextSource;Ldev/inmo/tgbotapi/types/MessageThreadId;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun send-OYtvHtc (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLjava/lang/String;Ldev/inmo/tgbotapi/types/MessageThreadId;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun send-OYtvHtc (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;JLdev/inmo/tgbotapi/types/message/textsources/TextSource;Ldev/inmo/tgbotapi/types/MessageThreadId;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun send-OYtvHtc (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;JLjava/lang/String;Ldev/inmo/tgbotapi/types/MessageThreadId;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun send-OYtvHtc$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLdev/inmo/tgbotapi/types/message/textsources/TextSource;Ldev/inmo/tgbotapi/types/MessageThreadId;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun send-OYtvHtc$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLjava/lang/String;Ldev/inmo/tgbotapi/types/MessageThreadId;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun send-OYtvHtc$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;JLdev/inmo/tgbotapi/types/message/textsources/TextSource;Ldev/inmo/tgbotapi/types/MessageThreadId;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun send-OYtvHtc$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;JLjava/lang/String;Ldev/inmo/tgbotapi/types/MessageThreadId;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static final fun send-PjdzSgQ (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLjava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;Ldev/inmo/tgbotapi/types/MessageThreadId;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun send-PjdzSgQ (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;JLjava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;Ldev/inmo/tgbotapi/types/MessageThreadId;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun send-PjdzSgQ$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JLjava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;Ldev/inmo/tgbotapi/types/MessageThreadId;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static synthetic fun send-PjdzSgQ$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;JLjava/lang/String;Ldev/inmo/tgbotapi/types/message/ParseMode;Ldev/inmo/tgbotapi/types/MessageThreadId;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static final fun send-Rhn938o (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;DDILjava/lang/Float;Ljava/lang/Integer;Ljava/lang/Float;Ldev/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;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun send-Rhn938o (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/ChatIdentifier;Ljava/util/List;Ljava/util/List;ZZZLdev/inmo/tgbotapi/types/polls/ScheduledCloseInfo;Ldev/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;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static final fun send-Rhn938o (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/chat/Chat;DDILjava/lang/Float;Ljava/lang/Integer;Ljava/lang/Float;Ldev/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;Ldev/inmo/tgbotapi/types/buttons/KeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
@@ -2462,6 +2544,13 @@ public final class dev/inmo/tgbotapi/extensions/api/stories/PostStoryKt {
public static synthetic fun postStory-rseRIdU$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ljava/lang/String;Ldev/inmo/tgbotapi/types/stories/InputStoryContent;ILjava/util/List;ZZLdev/inmo/tgbotapi/types/message/textsources/TextSource;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
}
public final class dev/inmo/tgbotapi/extensions/api/stories/RepostStoryKt {
public static final fun repostStory-O0F6HzI (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Lkotlin/Pair;JIZZLkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun repostStory-O0F6HzI$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Lkotlin/Pair;JIZZLkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
public static final fun repostStory-u8fFITI (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ljava/lang/String;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JIZZLkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun repostStory-u8fFITI$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ljava/lang/String;Ldev/inmo/tgbotapi/types/IdChatIdentifier;JIZZLkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
}
public final class dev/inmo/tgbotapi/extensions/api/suggested/ApproveSuggestedPostKt {
public static final fun approveSuggestedPost (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/Message;Ldev/inmo/tgbotapi/types/TelegramDate;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun approveSuggestedPost$default (Ldev/inmo/tgbotapi/bot/RequestsExecutor;Ldev/inmo/tgbotapi/types/message/abstracts/Message;Ldev/inmo/tgbotapi/types/TelegramDate;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;

View File

@@ -4,6 +4,7 @@ import dev.inmo.tgbotapi.bot.TelegramBot
import dev.inmo.tgbotapi.requests.ForwardMessage
import dev.inmo.tgbotapi.types.ChatIdentifier
import dev.inmo.tgbotapi.types.DirectMessageThreadId
import dev.inmo.tgbotapi.types.EffectId
import dev.inmo.tgbotapi.types.MessageId
import dev.inmo.tgbotapi.types.MessageThreadId
import dev.inmo.tgbotapi.types.Seconds
@@ -21,9 +22,20 @@ public suspend fun TelegramBot.forwardMessage(
directMessageThreadId: DirectMessageThreadId? = toChatId.directMessageThreadId,
startTimestamp: Seconds? = null,
disableNotification: Boolean = false,
protectContent: Boolean = false
protectContent: Boolean = false,
effectId: EffectId? = null
): PossiblyForwardedMessage = execute(
ForwardMessage(fromChatId, toChatId, messageId, threadId, directMessageThreadId, startTimestamp, disableNotification, protectContent)
ForwardMessage(
fromChatId = fromChatId,
toChatId = toChatId,
messageId = messageId,
threadId = threadId,
directMessageThreadId = directMessageThreadId,
startTimestamp = startTimestamp,
disableNotification = disableNotification,
protectContent = protectContent,
effectId = effectId
)
)
public suspend fun TelegramBot.forwardMessage(
@@ -34,8 +46,19 @@ public suspend fun TelegramBot.forwardMessage(
directMessageThreadId: DirectMessageThreadId? = toChatId.directMessageThreadId,
startTimestamp: Seconds? = null,
disableNotification: Boolean = false,
protectContent: Boolean = false
): PossiblyForwardedMessage = forwardMessage(fromChat.id, toChatId, messageId, threadId, directMessageThreadId, startTimestamp, disableNotification, protectContent)
protectContent: Boolean = false,
effectId: EffectId? = null
): PossiblyForwardedMessage = forwardMessage(
fromChatId = fromChat.id,
toChatId = toChatId,
messageId = messageId,
threadId = threadId,
directMessageThreadId = directMessageThreadId,
startTimestamp = startTimestamp,
disableNotification = disableNotification,
protectContent = protectContent,
effectId = effectId
)
public suspend fun TelegramBot.forwardMessage(
fromChatId: ChatIdentifier,
@@ -45,8 +68,19 @@ public suspend fun TelegramBot.forwardMessage(
directMessageThreadId: DirectMessageThreadId? = toChat.id.directMessageThreadId,
startTimestamp: Seconds? = null,
disableNotification: Boolean = false,
protectContent: Boolean = false
): PossiblyForwardedMessage = forwardMessage(fromChatId, toChat.id, messageId, threadId, directMessageThreadId, startTimestamp, disableNotification, protectContent)
protectContent: Boolean = false,
effectId: EffectId? = null
): PossiblyForwardedMessage = forwardMessage(
fromChatId = fromChatId,
toChatId = toChat.id,
messageId = messageId,
threadId = threadId,
directMessageThreadId = directMessageThreadId,
startTimestamp = startTimestamp,
disableNotification = disableNotification,
protectContent = protectContent,
effectId = effectId
)
public suspend fun TelegramBot.forwardMessage(
fromChat: Chat,
@@ -56,8 +90,19 @@ public suspend fun TelegramBot.forwardMessage(
directMessageThreadId: DirectMessageThreadId? = toChat.id.directMessageThreadId,
startTimestamp: Seconds? = null,
disableNotification: Boolean = false,
protectContent: Boolean = false
): PossiblyForwardedMessage = forwardMessage(fromChat.id, toChat.id, messageId, threadId, directMessageThreadId, startTimestamp, disableNotification, protectContent)
protectContent: Boolean = false,
effectId: EffectId? = null
): PossiblyForwardedMessage = forwardMessage(
fromChatId = fromChat.id,
toChatId = toChat.id,
messageId = messageId,
threadId = threadId,
directMessageThreadId = directMessageThreadId,
startTimestamp = startTimestamp,
disableNotification = disableNotification,
protectContent = protectContent,
effectId = effectId
)
public suspend fun TelegramBot.forwardMessage(
toChatId: ChatIdentifier,
@@ -66,8 +111,19 @@ public suspend fun TelegramBot.forwardMessage(
directMessageThreadId: DirectMessageThreadId? = toChatId.directMessageThreadId,
startTimestamp: Seconds? = null,
disableNotification: Boolean = false,
protectContent: Boolean = false
): PossiblyForwardedMessage = forwardMessage(message.chat, toChatId, message.messageId, threadId, directMessageThreadId, startTimestamp, disableNotification, protectContent)
protectContent: Boolean = false,
effectId: EffectId? = null
): PossiblyForwardedMessage = forwardMessage(
fromChat = message.chat,
toChatId = toChatId,
messageId = message.messageId,
threadId = threadId,
directMessageThreadId = directMessageThreadId,
startTimestamp = startTimestamp,
disableNotification = disableNotification,
protectContent = protectContent,
effectId = effectId
)
public suspend fun TelegramBot.forwardMessage(
toChat: Chat,
@@ -76,5 +132,16 @@ public suspend fun TelegramBot.forwardMessage(
directMessageThreadId: DirectMessageThreadId? = toChat.id.directMessageThreadId,
startTimestamp: Seconds? = null,
disableNotification: Boolean = false,
protectContent: Boolean = false
): PossiblyForwardedMessage = forwardMessage(message.chat, toChat, message.messageId, threadId, directMessageThreadId, startTimestamp, disableNotification, protectContent)
protectContent: Boolean = false,
effectId: EffectId? = null
): PossiblyForwardedMessage = forwardMessage(
fromChat = message.chat,
toChat = toChat,
messageId = message.messageId,
threadId = threadId,
directMessageThreadId = directMessageThreadId,
startTimestamp = startTimestamp,
disableNotification = disableNotification,
protectContent = protectContent,
effectId = effectId
)

View File

@@ -0,0 +1,6 @@
package dev.inmo.tgbotapi.extensions.api.bot
import dev.inmo.tgbotapi.bot.TelegramBot
import dev.inmo.tgbotapi.requests.bot.RemoveMyProfilePhoto
public suspend fun TelegramBot.removeMyProfilePhoto(): Boolean = execute(RemoveMyProfilePhoto)

View File

@@ -0,0 +1,9 @@
package dev.inmo.tgbotapi.extensions.api.bot
import dev.inmo.tgbotapi.bot.TelegramBot
import dev.inmo.tgbotapi.requests.bot.SetMyProfilePhoto
import dev.inmo.tgbotapi.requests.business_connection.InputProfilePhoto
public suspend fun TelegramBot.setMyProfilePhoto(
photo: InputProfilePhoto
): Boolean = execute(SetMyProfilePhoto(photo))

View File

@@ -4,7 +4,8 @@ import dev.inmo.tgbotapi.bot.TelegramBot
import dev.inmo.tgbotapi.requests.business_connection.GetBusinessAccountGifts
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
import dev.inmo.tgbotapi.types.OwnedGifts
import dev.inmo.tgbotapi.types.gifts.GiftSentOrReceived
import dev.inmo.tgbotapi.types.gifts.GiftSentOrReceivedEvent
import dev.inmo.tgbotapi.types.gifts.OwnedGift
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.flow
import kotlin.runCatching
@@ -21,7 +22,7 @@ public suspend fun TelegramBot.getBusinessAccountGifts(
sortByPrice: Boolean = false,
offset: String? = null,
limit: Int? = null
): OwnedGifts<GiftSentOrReceived.ReceivedInBusinessAccount> = execute(
): OwnedGifts<OwnedGift.OwnedByBusinessAccount> = execute(
GetBusinessAccountGifts(
businessConnectionId,
excludeUnsaved,
@@ -71,7 +72,7 @@ public fun TelegramBot.getBusinessAccountGiftsFlow(
initialOffset: String? = null,
limit: Int? = null,
onErrorContinueChecker: suspend (Throwable?) -> Boolean = { false }
): Flow<OwnedGifts<GiftSentOrReceived.ReceivedInBusinessAccount>> = flow {
): Flow<OwnedGifts<OwnedGift.OwnedByBusinessAccount>> = flow {
var currentOffset = initialOffset
do {
val response = runCatching {

View File

@@ -21,19 +21,21 @@ public suspend fun TelegramBot.promoteChatAdministrator(
canPromoteMembers: Boolean? = null,
canManageVideoChats: Boolean? = null,
canManageChat: Boolean? = null,
canManageTags: Boolean? = null,
): Boolean = execute(
PromoteChatMember(
chatId,
userId,
untilDate,
isAnonymous,
canChangeInfo,
canDeleteMessages,
canInviteUsers,
canRestrictMembers,
canPromoteMembers,
canManageVideoChats,
canManageChat
chatId = chatId,
userId = userId,
untilDate = untilDate,
isAnonymous = isAnonymous,
canChangeInfo = canChangeInfo,
canDeleteMessages = canDeleteMessages,
canInviteUsers = canInviteUsers,
canRestrictMembers = canRestrictMembers,
canPromoteMembers = canPromoteMembers,
canManageVideoChats = canManageVideoChats,
canManageChat = canManageChat,
canManageTags = canManageTags
)
)
@@ -49,18 +51,20 @@ public suspend fun TelegramBot.promoteChatAdministrator(
canPromoteMembers: Boolean? = null,
canManageVideoChats: Boolean? = null,
canManageChat: Boolean? = null,
canManageTags: Boolean? = null,
): Boolean = promoteChatAdministrator(
chat.id,
userId,
untilDate,
isAnonymous,
canChangeInfo,
canDeleteMessages,
canInviteUsers,
canRestrictMembers,
canPromoteMembers,
canManageVideoChats,
canManageChat
chatId = chat.id,
userId = userId,
untilDate = untilDate,
isAnonymous = isAnonymous,
canChangeInfo = canChangeInfo,
canDeleteMessages = canDeleteMessages,
canInviteUsers = canInviteUsers,
canRestrictMembers = canRestrictMembers,
canPromoteMembers = canPromoteMembers,
canManageVideoChats = canManageVideoChats,
canManageChat = canManageChat,
canManageTags = canManageTags
)
public suspend fun TelegramBot.promoteChatAdministrator(
@@ -75,18 +79,20 @@ public suspend fun TelegramBot.promoteChatAdministrator(
canPromoteMembers: Boolean? = null,
canManageVideoChats: Boolean? = null,
canManageChat: Boolean? = null,
canManageTags: Boolean? = null,
): Boolean = promoteChatAdministrator(
chatId,
user.id,
untilDate,
isAnonymous,
canChangeInfo,
canDeleteMessages,
canInviteUsers,
canRestrictMembers,
canPromoteMembers,
canManageVideoChats,
canManageChat
chatId = chatId,
userId = user.id,
untilDate = untilDate,
isAnonymous = isAnonymous,
canChangeInfo = canChangeInfo,
canDeleteMessages = canDeleteMessages,
canInviteUsers = canInviteUsers,
canRestrictMembers = canRestrictMembers,
canPromoteMembers = canPromoteMembers,
canManageVideoChats = canManageVideoChats,
canManageChat = canManageChat,
canManageTags = canManageTags
)
public suspend fun TelegramBot.promoteChatAdministrator(
@@ -101,16 +107,18 @@ public suspend fun TelegramBot.promoteChatAdministrator(
canPromoteMembers: Boolean? = null,
canManageVideoChats: Boolean? = null,
canManageChat: Boolean? = null,
canManageTags: Boolean? = null,
): Boolean = promoteChatAdministrator(
chat.id,
user.id,
untilDate,
isAnonymous,
canChangeInfo,
canDeleteMessages,
canInviteUsers,
canRestrictMembers,
canPromoteMembers,
canManageVideoChats,
canManageChat
chatId = chat.id,
userId = user.id,
untilDate = untilDate,
isAnonymous = isAnonymous,
canChangeInfo = canChangeInfo,
canDeleteMessages = canDeleteMessages,
canInviteUsers = canInviteUsers,
canRestrictMembers = canRestrictMembers,
canPromoteMembers = canPromoteMembers,
canManageVideoChats = canManageVideoChats,
canManageChat = canManageChat,
canManageTags = canManageTags
)

View File

@@ -27,7 +27,8 @@ public suspend fun TelegramBot.promoteChatMember(
canPostStories: Boolean? = null,
canEditStories: Boolean? = null,
canDeleteStories: Boolean? = null,
canManageDirectMessages: Boolean? = null
canManageDirectMessages: Boolean? = null,
canManageTags: Boolean? = null
): Boolean = execute(
PromoteChatMember(
chatId = chatId,
@@ -49,6 +50,7 @@ public suspend fun TelegramBot.promoteChatMember(
canEditStories = canEditStories,
canDeleteStories = canDeleteStories,
canManageDirectMessages = canManageDirectMessages,
canManageTags = canManageTags,
)
)
@@ -72,7 +74,8 @@ public suspend fun TelegramBot.promoteChatMember(
canPostStories: Boolean? = null,
canEditStories: Boolean? = null,
canDeleteStories: Boolean? = null,
canManageDirectMessages: Boolean? = null
canManageDirectMessages: Boolean? = null,
canManageTags: Boolean? = null
): Boolean = promoteChatMember(
chat.id,
userId,
@@ -93,6 +96,7 @@ public suspend fun TelegramBot.promoteChatMember(
canEditStories = canEditStories,
canDeleteStories = canDeleteStories,
canManageDirectMessages = canManageDirectMessages,
canManageTags = canManageTags,
)
@Warning("This method is too common. Use it with caution")
@@ -115,7 +119,8 @@ public suspend fun TelegramBot.promoteChatMember(
canPostStories: Boolean? = null,
canEditStories: Boolean? = null,
canDeleteStories: Boolean? = null,
canManageDirectMessages: Boolean? = null
canManageDirectMessages: Boolean? = null,
canManageTags: Boolean? = null
): Boolean = promoteChatMember(
chatId,
user.id,
@@ -136,6 +141,7 @@ public suspend fun TelegramBot.promoteChatMember(
canEditStories = canEditStories,
canDeleteStories = canDeleteStories,
canManageDirectMessages = canManageDirectMessages,
canManageTags = canManageTags,
)
@Warning("This method is too common. Use it with caution")
@@ -158,7 +164,8 @@ public suspend fun TelegramBot.promoteChatMember(
canPostStories: Boolean? = null,
canEditStories: Boolean? = null,
canDeleteStories: Boolean? = null,
canManageDirectMessages: Boolean? = null
canManageDirectMessages: Boolean? = null,
canManageTags: Boolean? = null
): Boolean = promoteChatMember(
chat.id,
user.id,
@@ -179,4 +186,5 @@ public suspend fun TelegramBot.promoteChatMember(
canEditStories = canEditStories,
canDeleteStories = canDeleteStories,
canManageDirectMessages = canManageDirectMessages,
canManageTags = canManageTags,
)

View File

@@ -0,0 +1,31 @@
package dev.inmo.tgbotapi.extensions.api.chat.members
import dev.inmo.tgbotapi.bot.TelegramBot
import dev.inmo.tgbotapi.requests.chat.members.SetChatMemberTag
import dev.inmo.tgbotapi.types.*
import dev.inmo.tgbotapi.types.chat.PublicChat
import dev.inmo.tgbotapi.types.chat.User
public suspend fun TelegramBot.setChatMemberTag(
chatId: ChatIdentifier,
userId: UserId,
tag: UserTag? = null
): Unit = execute(SetChatMemberTag(chatId, userId, tag))
public suspend fun TelegramBot.setChatMemberTag(
chat: PublicChat,
userId: UserId,
tag: UserTag? = null
): Unit = setChatMemberTag(chat.id, userId, tag)
public suspend fun TelegramBot.setChatMemberTag(
chatId: ChatIdentifier,
user: User,
tag: UserTag? = null
): Unit = setChatMemberTag(chatId, user.id, tag)
public suspend fun TelegramBot.setChatMemberTag(
chat: PublicChat,
user: User,
tag: UserTag? = null
): Unit = setChatMemberTag(chat.id, user.id, tag)

View File

@@ -0,0 +1,23 @@
package dev.inmo.tgbotapi.extensions.api.get
import dev.inmo.tgbotapi.bot.TelegramBot
import dev.inmo.tgbotapi.requests.get.GetUserProfileAudios
import dev.inmo.tgbotapi.types.chat.CommonUser
import dev.inmo.tgbotapi.types.UserId
import dev.inmo.tgbotapi.types.UserProfileAudios
public suspend fun TelegramBot.getUserProfileAudios(
userId: UserId,
offset: Int? = null,
limit: Int? = null
): UserProfileAudios = execute(
GetUserProfileAudios(
userId = userId, offset = offset, limit = limit
)
)
public suspend fun TelegramBot.getUserProfileAudios(
user: CommonUser,
offset: Int? = null,
limit: Int? = null
): UserProfileAudios = getUserProfileAudios(userId = user.id, offset = offset, limit = limit)

View File

@@ -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)
}

View File

@@ -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)
}

View File

@@ -29,6 +29,7 @@ public suspend inline fun TelegramBot.copyMessage(
disableNotification: Boolean = false,
protectContent: Boolean = false,
allowPaidBroadcast: Boolean = false,
effectId: EffectId? = null,
suggestedPostParameters: SuggestedPostParameters? = null,
replyParameters: ReplyParameters? = null,
replyMarkup: KeyboardMarkup? = null
@@ -46,6 +47,7 @@ public suspend inline fun TelegramBot.copyMessage(
disableNotification = disableNotification,
protectContent = protectContent,
allowPaidBroadcast = allowPaidBroadcast,
effectId = effectId,
suggestedPostParameters = suggestedPostParameters,
replyParameters = replyParameters,
replyMarkup = replyMarkup
@@ -69,6 +71,7 @@ public suspend inline fun TelegramBot.copyMessage(
disableNotification: Boolean = false,
protectContent: Boolean = false,
allowPaidBroadcast: Boolean = false,
effectId: EffectId? = null,
suggestedPostParameters: SuggestedPostParameters? = null,
replyParameters: ReplyParameters? = null,
replyMarkup: KeyboardMarkup? = null
@@ -85,6 +88,7 @@ public suspend inline fun TelegramBot.copyMessage(
disableNotification = disableNotification,
protectContent = protectContent,
allowPaidBroadcast = allowPaidBroadcast,
effectId = effectId,
suggestedPostParameters = suggestedPostParameters,
replyParameters = replyParameters,
replyMarkup = replyMarkup
@@ -107,6 +111,7 @@ public suspend inline fun TelegramBot.copyMessage(
disableNotification: Boolean = false,
protectContent: Boolean = false,
allowPaidBroadcast: Boolean = false,
effectId: EffectId? = null,
suggestedPostParameters: SuggestedPostParameters? = null,
replyParameters: ReplyParameters? = null,
replyMarkup: KeyboardMarkup? = null
@@ -123,6 +128,7 @@ public suspend inline fun TelegramBot.copyMessage(
disableNotification = disableNotification,
protectContent = protectContent,
allowPaidBroadcast = allowPaidBroadcast,
effectId = effectId,
suggestedPostParameters = suggestedPostParameters,
replyParameters = replyParameters,
replyMarkup = replyMarkup
@@ -145,6 +151,7 @@ public suspend inline fun TelegramBot.copyMessage(
disableNotification: Boolean = false,
protectContent: Boolean = false,
allowPaidBroadcast: Boolean = false,
effectId: EffectId? = null,
suggestedPostParameters: SuggestedPostParameters? = null,
replyParameters: ReplyParameters? = null,
replyMarkup: KeyboardMarkup? = null
@@ -161,6 +168,7 @@ public suspend inline fun TelegramBot.copyMessage(
disableNotification = disableNotification,
protectContent = protectContent,
allowPaidBroadcast = allowPaidBroadcast,
effectId = effectId,
suggestedPostParameters = suggestedPostParameters,
replyParameters = replyParameters,
replyMarkup = replyMarkup
@@ -183,6 +191,7 @@ public suspend inline fun TelegramBot.copyMessage(
disableNotification: Boolean = false,
protectContent: Boolean = false,
allowPaidBroadcast: Boolean = false,
effectId: EffectId? = null,
suggestedPostParameters: SuggestedPostParameters? = null,
replyParameters: ReplyParameters? = null,
replyMarkup: KeyboardMarkup? = null
@@ -199,6 +208,7 @@ public suspend inline fun TelegramBot.copyMessage(
disableNotification = disableNotification,
protectContent = protectContent,
allowPaidBroadcast = allowPaidBroadcast,
effectId = effectId,
suggestedPostParameters = suggestedPostParameters,
replyParameters = replyParameters,
replyMarkup = replyMarkup
@@ -221,6 +231,7 @@ public suspend inline fun TelegramBot.copyMessage(
disableNotification: Boolean = false,
protectContent: Boolean = false,
allowPaidBroadcast: Boolean = false,
effectId: EffectId? = null,
suggestedPostParameters: SuggestedPostParameters? = null,
replyParameters: ReplyParameters? = null,
replyMarkup: KeyboardMarkup? = null
@@ -236,6 +247,7 @@ public suspend inline fun TelegramBot.copyMessage(
disableNotification = disableNotification,
protectContent = protectContent,
allowPaidBroadcast = allowPaidBroadcast,
effectId = effectId,
suggestedPostParameters = suggestedPostParameters,
replyParameters = replyParameters,
replyMarkup = replyMarkup
@@ -257,6 +269,7 @@ public suspend inline fun TelegramBot.copyMessage(
disableNotification: Boolean = false,
protectContent: Boolean = false,
allowPaidBroadcast: Boolean = false,
effectId: EffectId? = null,
suggestedPostParameters: SuggestedPostParameters? = null,
replyParameters: ReplyParameters? = null,
replyMarkup: KeyboardMarkup? = null
@@ -272,6 +285,7 @@ public suspend inline fun TelegramBot.copyMessage(
disableNotification = disableNotification,
protectContent = protectContent,
allowPaidBroadcast = allowPaidBroadcast,
effectId = effectId,
suggestedPostParameters = suggestedPostParameters,
replyParameters = replyParameters,
replyMarkup = replyMarkup
@@ -293,6 +307,7 @@ public suspend inline fun TelegramBot.copyMessage(
disableNotification: Boolean = false,
protectContent: Boolean = false,
allowPaidBroadcast: Boolean = false,
effectId: EffectId? = null,
suggestedPostParameters: SuggestedPostParameters? = null,
replyParameters: ReplyParameters? = null,
replyMarkup: KeyboardMarkup? = null
@@ -308,6 +323,7 @@ public suspend inline fun TelegramBot.copyMessage(
disableNotification = disableNotification,
protectContent = protectContent,
allowPaidBroadcast = allowPaidBroadcast,
effectId = effectId,
suggestedPostParameters = suggestedPostParameters,
replyParameters = replyParameters,
replyMarkup = replyMarkup
@@ -329,6 +345,7 @@ public suspend inline fun TelegramBot.copyMessage(
disableNotification: Boolean = false,
protectContent: Boolean = false,
allowPaidBroadcast: Boolean = false,
effectId: EffectId? = null,
suggestedPostParameters: SuggestedPostParameters? = null,
replyParameters: ReplyParameters? = null,
replyMarkup: KeyboardMarkup? = null
@@ -345,6 +362,7 @@ public suspend inline fun TelegramBot.copyMessage(
disableNotification = disableNotification,
protectContent = protectContent,
allowPaidBroadcast = allowPaidBroadcast,
effectId = effectId,
suggestedPostParameters = suggestedPostParameters,
replyParameters = replyParameters,
replyMarkup = replyMarkup
@@ -366,6 +384,7 @@ public suspend inline fun TelegramBot.copyMessage(
disableNotification: Boolean = false,
protectContent: Boolean = false,
allowPaidBroadcast: Boolean = false,
effectId: EffectId? = null,
suggestedPostParameters: SuggestedPostParameters? = null,
replyParameters: ReplyParameters? = null,
replyMarkup: KeyboardMarkup? = null
@@ -382,6 +401,7 @@ public suspend inline fun TelegramBot.copyMessage(
disableNotification = disableNotification,
protectContent = protectContent,
allowPaidBroadcast = allowPaidBroadcast,
effectId = effectId,
suggestedPostParameters = suggestedPostParameters,
replyParameters = replyParameters,
replyMarkup = replyMarkup
@@ -402,6 +422,7 @@ public suspend inline fun TelegramBot.copyMessage(
disableNotification: Boolean = false,
protectContent: Boolean = false,
allowPaidBroadcast: Boolean = false,
effectId: EffectId? = null,
suggestedPostParameters: SuggestedPostParameters? = null,
replyParameters: ReplyParameters? = null,
replyMarkup: KeyboardMarkup? = null
@@ -417,6 +438,7 @@ public suspend inline fun TelegramBot.copyMessage(
disableNotification = disableNotification,
protectContent = protectContent,
allowPaidBroadcast = allowPaidBroadcast,
effectId = effectId,
suggestedPostParameters = suggestedPostParameters,
replyParameters = replyParameters,
replyMarkup = replyMarkup
@@ -437,6 +459,7 @@ public suspend inline fun TelegramBot.copyMessage(
disableNotification: Boolean = false,
protectContent: Boolean = false,
allowPaidBroadcast: Boolean = false,
effectId: EffectId? = null,
suggestedPostParameters: SuggestedPostParameters? = null,
replyParameters: ReplyParameters? = null,
replyMarkup: KeyboardMarkup? = null
@@ -452,6 +475,7 @@ public suspend inline fun TelegramBot.copyMessage(
disableNotification = disableNotification,
protectContent = protectContent,
allowPaidBroadcast = allowPaidBroadcast,
effectId = effectId,
suggestedPostParameters = suggestedPostParameters,
replyParameters = replyParameters,
replyMarkup = replyMarkup

View File

@@ -2787,6 +2787,7 @@ public suspend inline fun TelegramBot.reply(
disableNotification: Boolean = false,
protectContent: Boolean = false,
allowPaidBroadcast: Boolean = false,
effectId: EffectId? = null,
suggestedPostParameters: SuggestedPostParameters? = null,
allowSendingWithoutReply: Boolean? = null,
checklistTaskId: ChecklistTaskId? = null,
@@ -2803,6 +2804,7 @@ public suspend inline fun TelegramBot.reply(
disableNotification = disableNotification,
protectContent = protectContent,
allowPaidBroadcast = allowPaidBroadcast,
effectId = effectId,
suggestedPostParameters = suggestedPostParameters,
replyParameters = ReplyParameters(to.metaInfo, allowSendingWithoutReply = allowSendingWithoutReply == true, checklistTaskId = checklistTaskId),
replyMarkup = replyMarkup
@@ -2821,6 +2823,7 @@ public suspend inline fun TelegramBot.reply(
disableNotification: Boolean = false,
protectContent: Boolean = false,
allowPaidBroadcast: Boolean = false,
effectId: EffectId? = null,
suggestedPostParameters: SuggestedPostParameters? = null,
allowSendingWithoutReply: Boolean? = null,
checklistTaskId: ChecklistTaskId? = null,
@@ -2838,6 +2841,7 @@ public suspend inline fun TelegramBot.reply(
disableNotification = disableNotification,
protectContent = protectContent,
allowPaidBroadcast = allowPaidBroadcast,
effectId = effectId,
suggestedPostParameters = suggestedPostParameters,
allowSendingWithoutReply = allowSendingWithoutReply,
checklistTaskId = checklistTaskId,
@@ -2856,6 +2860,7 @@ public suspend inline fun TelegramBot.reply(
disableNotification: Boolean = false,
protectContent: Boolean = false,
allowPaidBroadcast: Boolean = false,
effectId: EffectId? = null,
suggestedPostParameters: SuggestedPostParameters? = null,
allowSendingWithoutReply: Boolean? = null,
checklistTaskId: ChecklistTaskId? = null,
@@ -2873,6 +2878,7 @@ public suspend inline fun TelegramBot.reply(
disableNotification = disableNotification,
protectContent = protectContent,
allowPaidBroadcast = allowPaidBroadcast,
effectId = effectId,
suggestedPostParameters = suggestedPostParameters,
allowSendingWithoutReply = allowSendingWithoutReply,
checklistTaskId = checklistTaskId,

View File

@@ -2779,6 +2779,7 @@ public suspend inline fun TelegramBot.reply(
disableNotification: Boolean = false,
protectContent: Boolean = false,
allowPaidBroadcast: Boolean = false,
effectId: EffectId? = null,
suggestedPostParameters: SuggestedPostParameters? = null,
allowSendingWithoutReply: Boolean? = null,
checklistTaskId: ChecklistTaskId? = null,
@@ -2795,6 +2796,7 @@ public suspend inline fun TelegramBot.reply(
disableNotification = disableNotification,
protectContent = protectContent,
allowPaidBroadcast = allowPaidBroadcast,
effectId = effectId,
suggestedPostParameters = suggestedPostParameters,
replyParameters = ReplyParameters(toChatId, toMessageId, allowSendingWithoutReply = allowSendingWithoutReply, checklistTaskId = checklistTaskId),
replyMarkup = replyMarkup
@@ -2814,6 +2816,7 @@ public suspend inline fun TelegramBot.reply(
disableNotification: Boolean = false,
protectContent: Boolean = false,
allowPaidBroadcast: Boolean = false,
effectId: EffectId? = null,
suggestedPostParameters: SuggestedPostParameters? = null,
allowSendingWithoutReply: Boolean? = null,
checklistTaskId: ChecklistTaskId? = null,
@@ -2832,6 +2835,7 @@ public suspend inline fun TelegramBot.reply(
disableNotification = disableNotification,
protectContent = protectContent,
allowPaidBroadcast = allowPaidBroadcast,
effectId = effectId,
suggestedPostParameters = suggestedPostParameters,
allowSendingWithoutReply = allowSendingWithoutReply,
checklistTaskId = checklistTaskId,
@@ -2851,6 +2855,7 @@ public suspend inline fun TelegramBot.reply(
disableNotification: Boolean = false,
protectContent: Boolean = false,
allowPaidBroadcast: Boolean = false,
effectId: EffectId? = null,
suggestedPostParameters: SuggestedPostParameters? = null,
allowSendingWithoutReply: Boolean? = null,
checklistTaskId: ChecklistTaskId? = null,
@@ -2869,6 +2874,7 @@ public suspend inline fun TelegramBot.reply(
disableNotification = disableNotification,
protectContent = protectContent,
allowPaidBroadcast = allowPaidBroadcast,
effectId = effectId,
suggestedPostParameters = suggestedPostParameters,
allowSendingWithoutReply = allowSendingWithoutReply,
checklistTaskId = checklistTaskId,

View File

@@ -0,0 +1,197 @@
package dev.inmo.tgbotapi.extensions.api.send
import dev.inmo.kslog.common.logger
import dev.inmo.micro_utils.coroutines.runCatchingLogging
import dev.inmo.tgbotapi.bot.TelegramBot
import dev.inmo.tgbotapi.requests.send.SendMessageDraft
import dev.inmo.tgbotapi.types.*
import dev.inmo.tgbotapi.types.message.textsources.TextSourcesList
import dev.inmo.tgbotapi.types.message.ParseMode
import dev.inmo.tgbotapi.types.chat.Chat
import dev.inmo.tgbotapi.types.message.MarkdownV2
import dev.inmo.tgbotapi.types.message.textsources.TextSource
import dev.inmo.tgbotapi.utils.DraftIdAllocator
import dev.inmo.tgbotapi.utils.EntitiesBuilderBody
import dev.inmo.tgbotapi.utils.buildEntities
import dev.inmo.tgbotapi.utils.extensions.escapeMarkdownV2Common
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.filter
import kotlinx.coroutines.flow.firstOrNull
import kotlinx.coroutines.flow.map
import kotlin.js.JsName
import kotlin.jvm.JvmName
public suspend fun TelegramBot.sendMessageDraft(
chatId: IdChatIdentifier,
draftId: DraftId,
text: String,
parseMode: ParseMode? = null,
threadId: MessageThreadId? = chatId.threadId
): Boolean = execute(
SendMessageDraft(
chatId = chatId,
draftId = draftId,
text = text,
parseMode = parseMode,
threadId = threadId
)
)
private suspend fun TelegramBot.sendMessageDraftFlow(
messagesFlow: Flow<SendMessageDraft>,
): Boolean {
val done = messagesFlow
.filter { draft ->
val sent = runCatchingLogging(logger = logger) {
execute(draft)
}.getOrElse {
false
}
sent == false
}
.firstOrNull()
return done == null
}
public val GlobalDraftIdAllocator: DraftIdAllocator by lazy { DraftIdAllocator() }
public suspend fun TelegramBot.sendMessageDraftFlow(
chatId: IdChatIdentifier,
messagesFlow: Flow<TextSourcesList>,
threadId: MessageThreadId? = chatId.threadId,
draftId: DraftId? = null,
): Boolean {
val draftId = draftId ?: GlobalDraftIdAllocator.allocate()
return sendMessageDraftFlow(
messagesFlow.map {
SendMessageDraft(chatId = chatId, draftId = draftId, entities = it, threadId = threadId)
}
)
}
public suspend fun TelegramBot.sendMessageDraftFlowWithTextsAndParseMode(
chatId: IdChatIdentifier,
messagesFlow: Flow<Pair<String, ParseMode?>>,
threadId: MessageThreadId? = chatId.threadId,
draftId: DraftId? = null,
): Boolean {
val draftId = draftId ?: GlobalDraftIdAllocator.allocate()
return sendMessageDraftFlow(
messagesFlow.map {
SendMessageDraft(chatId = chatId, draftId = draftId, text = it.first, parseMode = it.second, threadId = threadId)
}
)
}
public suspend fun TelegramBot.sendMessageDraftFlowWithTexts(
chatId: IdChatIdentifier,
messagesFlow: Flow<String>,
threadId: MessageThreadId? = chatId.threadId,
draftId: DraftId? = null,
): Boolean {
val draftId = draftId ?: GlobalDraftIdAllocator.allocate()
return sendMessageDraftFlowWithTextsAndParseMode(
chatId = chatId,
messagesFlow = messagesFlow.map {
it.escapeMarkdownV2Common() to MarkdownV2
},
threadId = threadId,
draftId = draftId
)
}
public suspend fun TelegramBot.sendMessageDraft(
chat: Chat,
draftId: DraftId,
text: String,
parseMode: ParseMode? = null,
threadId: MessageThreadId? = chat.id.threadId
): Boolean = sendMessageDraft(
chatId = chat.id as IdChatIdentifier,
draftId = draftId,
text = text,
parseMode = parseMode,
threadId = threadId
)
public suspend fun TelegramBot.sendMessageDraft(
chatId: IdChatIdentifier,
draftId: DraftId,
entities: TextSourcesList,
threadId: MessageThreadId? = chatId.threadId
): Boolean = execute(
SendMessageDraft(
chatId = chatId,
draftId = draftId,
entities = entities,
threadId = threadId
)
)
public suspend fun TelegramBot.sendMessageDraft(
chat: Chat,
draftId: DraftId,
entities: TextSourcesList,
threadId: MessageThreadId? = chat.id.threadId
): Boolean = sendMessageDraft(
chatId = chat.id as IdChatIdentifier,
draftId = draftId,
entities = entities,
threadId = threadId
)
public suspend fun TelegramBot.sendMessageDraft(
chatId: IdChatIdentifier,
draftId: DraftId,
separator: TextSource? = null,
threadId: MessageThreadId? = chatId.threadId,
builderBody: EntitiesBuilderBody
): Boolean = sendMessageDraft(
chatId = chatId,
draftId = draftId,
entities = buildEntities(separator, builderBody),
threadId = threadId
)
public suspend fun TelegramBot.sendMessageDraft(
chatId: IdChatIdentifier,
draftId: DraftId,
separator: String,
threadId: MessageThreadId? = chatId.threadId,
builderBody: EntitiesBuilderBody
): Boolean = sendMessageDraft(
chatId = chatId,
draftId = draftId,
entities = buildEntities(separator, builderBody),
threadId = threadId
)
public suspend fun TelegramBot.sendMessageDraft(
chat: Chat,
draftId: DraftId,
separator: TextSource? = null,
threadId: MessageThreadId? = chat.id.threadId,
builderBody: EntitiesBuilderBody
): Boolean = sendMessageDraft(
chatId = chat.id as IdChatIdentifier,
draftId = draftId,
separator = separator,
threadId = threadId,
builderBody = builderBody
)
public suspend fun TelegramBot.sendMessageDraft(
chat: Chat,
draftId: DraftId,
separator: String,
threadId: MessageThreadId? = chat.id.threadId,
builderBody: EntitiesBuilderBody
): Boolean = sendMessageDraft(
chatId = chat.id as IdChatIdentifier,
draftId = draftId,
separator = separator,
threadId = threadId,
builderBody = builderBody
)

View File

@@ -1331,6 +1331,138 @@ public suspend fun TelegramBot.send(
replyMarkup = replyMarkup
)
/**
* Will execute [sendMessageDraft] request
*/
public suspend fun TelegramBot.send(
chatId: IdChatIdentifier,
draftId: DraftId,
text: String,
parseMode: ParseMode? = null,
threadId: MessageThreadId? = chatId.threadId
): Boolean = sendMessageDraft(
chatId = chatId,
draftId = draftId,
text = text,
parseMode = parseMode,
threadId = threadId
)
/**
* Will execute [sendMessageDraft] request
*/
public suspend fun TelegramBot.send(
chat: Chat,
draftId: DraftId,
text: String,
parseMode: ParseMode? = null,
threadId: MessageThreadId? = chat.id.threadId
): Boolean = sendMessageDraft(
chat = chat,
draftId = draftId,
text = text,
parseMode = parseMode,
threadId = threadId
)
/**
* Will execute [sendMessageDraft] request
*/
public suspend fun TelegramBot.send(
chatId: IdChatIdentifier,
draftId: DraftId,
entities: TextSourcesList,
threadId: MessageThreadId? = chatId.threadId
): Boolean = sendMessageDraft(
chatId = chatId,
draftId = draftId,
entities = entities,
threadId = threadId
)
/**
* Will execute [sendMessageDraft] request
*/
public suspend fun TelegramBot.send(
chat: Chat,
draftId: DraftId,
entities: TextSourcesList,
threadId: MessageThreadId? = chat.id.threadId
): Boolean = sendMessageDraft(
chat = chat,
draftId = draftId,
entities = entities,
threadId = threadId
)
/**
* Will execute [sendMessageDraft] request
*/
public suspend fun TelegramBot.send(
chatId: IdChatIdentifier,
draftId: DraftId,
separator: TextSource? = null,
threadId: MessageThreadId? = chatId.threadId,
builderBody: EntitiesBuilderBody
): Boolean = sendMessageDraft(
chatId = chatId,
draftId = draftId,
separator = separator,
threadId = threadId,
builderBody = builderBody
)
/**
* Will execute [sendMessageDraft] request
*/
public suspend fun TelegramBot.send(
chatId: IdChatIdentifier,
draftId: DraftId,
separator: String,
threadId: MessageThreadId? = chatId.threadId,
builderBody: EntitiesBuilderBody
): Boolean = sendMessageDraft(
chatId = chatId,
draftId = draftId,
separator = separator,
threadId = threadId,
builderBody = builderBody
)
/**
* Will execute [sendMessageDraft] request
*/
public suspend fun TelegramBot.send(
chat: Chat,
draftId: DraftId,
separator: TextSource? = null,
threadId: MessageThreadId? = chat.id.threadId,
builderBody: EntitiesBuilderBody
): Boolean = sendMessageDraft(
chat = chat,
draftId = draftId,
separator = separator,
threadId = threadId,
builderBody = builderBody
)
/**
* Will execute [sendMessageDraft] request
*/
public suspend fun TelegramBot.send(
chat: Chat,
draftId: DraftId,
separator: String,
threadId: MessageThreadId? = chat.id.threadId,
builderBody: EntitiesBuilderBody
): Boolean = sendMessageDraft(
chat = chat,
draftId = draftId,
separator = separator,
threadId = threadId,
builderBody = builderBody
)
/**
* @param replyMarkup Some [InlineKeyboardMarkup]. See [dev.inmo.tgbotapi.extensions.utils.types.buttons.inlineKeyboard]
* as a builder for that

View File

@@ -0,0 +1,45 @@
package dev.inmo.tgbotapi.extensions.api.stories
import dev.inmo.tgbotapi.bot.TelegramBot
import dev.inmo.tgbotapi.requests.stories.RepostStory
import dev.inmo.tgbotapi.types.BusinessChatId
import dev.inmo.tgbotapi.types.IdChatIdentifier
import dev.inmo.tgbotapi.types.Seconds
import dev.inmo.tgbotapi.types.StoryId
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
import dev.inmo.tgbotapi.types.stories.Story
public suspend fun TelegramBot.repostStory(
businessConnectionId: BusinessConnectionId,
fromChatId: IdChatIdentifier,
storyId: StoryId,
activePeriod: Seconds,
postToChatPage: Boolean = false,
protectContent: Boolean = false,
): Story = execute(
RepostStory(
businessConnectionId = businessConnectionId,
fromChatId = fromChatId,
storyId = storyId,
activePeriod = activePeriod,
postToChatPage = postToChatPage,
protectContent = protectContent
)
)
public suspend fun TelegramBot.repostStory(
fromChatId: BusinessChatId,
storyId: StoryId,
activePeriod: Seconds,
postToChatPage: Boolean = false,
protectContent: Boolean = false,
): Story = execute(
RepostStory(
businessConnectionId = fromChatId.businessConnectionId,
fromChatId = fromChatId,
storyId = storyId,
activePeriod = activePeriod,
postToChatPage = postToChatPage,
protectContent = protectContent
)
)

View File

@@ -632,6 +632,10 @@ public final class dev/inmo/tgbotapi/extensions/behaviour_builder/expectations/W
public static synthetic fun waitChatBoostAdded$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lkotlinx/coroutines/flow/Flow;
public static final fun waitChatEvents (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/flow/Flow;
public static synthetic fun waitChatEvents$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lkotlinx/coroutines/flow/Flow;
public static final fun waitChatOwnerChanged (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/flow/Flow;
public static synthetic fun waitChatOwnerChanged$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lkotlinx/coroutines/flow/Flow;
public static final fun waitChatOwnerLeft (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/flow/Flow;
public static synthetic fun waitChatOwnerLeft$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lkotlinx/coroutines/flow/Flow;
public static final fun waitChatShared (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/flow/Flow;
public static synthetic fun waitChatShared$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lkotlinx/coroutines/flow/Flow;
public static final fun waitChatSharedRequest (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/flow/Flow;
@@ -747,6 +751,10 @@ public final class dev/inmo/tgbotapi/extensions/behaviour_builder/expectations/W
public static synthetic fun waitChatBoostAddedEventsMessages$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lkotlinx/coroutines/flow/Flow;
public static final fun waitChatEventsMessages (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/flow/Flow;
public static synthetic fun waitChatEventsMessages$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lkotlinx/coroutines/flow/Flow;
public static final fun waitChatOwnerChangedEventsMessages (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/flow/Flow;
public static synthetic fun waitChatOwnerChangedEventsMessages$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lkotlinx/coroutines/flow/Flow;
public static final fun waitChatOwnerLeftEventsMessages (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/flow/Flow;
public static synthetic fun waitChatOwnerLeftEventsMessages$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lkotlinx/coroutines/flow/Flow;
public static final fun waitChatSharedEventsMessages (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/flow/Flow;
public static synthetic fun waitChatSharedEventsMessages$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lkotlinx/coroutines/flow/Flow;
public static final fun waitChatSharedRequestEventsMessages (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/flow/Flow;
@@ -1358,6 +1366,10 @@ public final class dev/inmo/tgbotapi/extensions/behaviour_builder/triggers_handl
public static synthetic fun onChatBoostAdded$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/SimpleFilter;Lkotlin/jvm/functions/Function4;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/marker_factories/MarkerFactory;Lkotlin/jvm/functions/Function4;Lkotlin/jvm/functions/Function3;ILjava/lang/Object;)Lkotlinx/coroutines/Job;
public static final fun onChatEvent (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/SimpleFilter;Lkotlin/jvm/functions/Function4;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/marker_factories/MarkerFactory;Lkotlin/jvm/functions/Function4;Lkotlin/jvm/functions/Function3;)Lkotlinx/coroutines/Job;
public static synthetic fun onChatEvent$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/SimpleFilter;Lkotlin/jvm/functions/Function4;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/marker_factories/MarkerFactory;Lkotlin/jvm/functions/Function4;Lkotlin/jvm/functions/Function3;ILjava/lang/Object;)Lkotlinx/coroutines/Job;
public static final fun onChatOwnerChanged (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/SimpleFilter;Lkotlin/jvm/functions/Function4;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/marker_factories/MarkerFactory;Lkotlin/jvm/functions/Function4;Lkotlin/jvm/functions/Function3;)Lkotlinx/coroutines/Job;
public static synthetic fun onChatOwnerChanged$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/SimpleFilter;Lkotlin/jvm/functions/Function4;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/marker_factories/MarkerFactory;Lkotlin/jvm/functions/Function4;Lkotlin/jvm/functions/Function3;ILjava/lang/Object;)Lkotlinx/coroutines/Job;
public static final fun onChatOwnerLeft (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/SimpleFilter;Lkotlin/jvm/functions/Function4;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/marker_factories/MarkerFactory;Lkotlin/jvm/functions/Function4;Lkotlin/jvm/functions/Function3;)Lkotlinx/coroutines/Job;
public static synthetic fun onChatOwnerLeft$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/SimpleFilter;Lkotlin/jvm/functions/Function4;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/marker_factories/MarkerFactory;Lkotlin/jvm/functions/Function4;Lkotlin/jvm/functions/Function3;ILjava/lang/Object;)Lkotlinx/coroutines/Job;
public static final fun onChatShared (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/SimpleFilter;Lkotlin/jvm/functions/Function4;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/marker_factories/MarkerFactory;Lkotlin/jvm/functions/Function4;Lkotlin/jvm/functions/Function3;)Lkotlinx/coroutines/Job;
public static synthetic fun onChatShared$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/SimpleFilter;Lkotlin/jvm/functions/Function4;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/marker_factories/MarkerFactory;Lkotlin/jvm/functions/Function4;Lkotlin/jvm/functions/Function3;ILjava/lang/Object;)Lkotlinx/coroutines/Job;
public static final fun onChatSharedRequest (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/SimpleFilter;Lkotlin/jvm/functions/Function4;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/marker_factories/MarkerFactory;Lkotlin/jvm/functions/Function4;Lkotlin/jvm/functions/Function3;)Lkotlinx/coroutines/Job;
@@ -1408,6 +1420,10 @@ public final class dev/inmo/tgbotapi/extensions/behaviour_builder/triggers_handl
public static synthetic fun onPinnedMessage$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/SimpleFilter;Lkotlin/jvm/functions/Function4;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/marker_factories/MarkerFactory;Lkotlin/jvm/functions/Function4;Lkotlin/jvm/functions/Function3;ILjava/lang/Object;)Lkotlinx/coroutines/Job;
public static final fun onPrivateEvent (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/SimpleFilter;Lkotlin/jvm/functions/Function4;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/marker_factories/MarkerFactory;Lkotlin/jvm/functions/Function4;Lkotlin/jvm/functions/Function3;)Lkotlinx/coroutines/Job;
public static synthetic fun onPrivateEvent$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/SimpleFilter;Lkotlin/jvm/functions/Function4;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/marker_factories/MarkerFactory;Lkotlin/jvm/functions/Function4;Lkotlin/jvm/functions/Function3;ILjava/lang/Object;)Lkotlinx/coroutines/Job;
public static final fun onPrivateForumTopicCreated (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/SimpleFilter;Lkotlin/jvm/functions/Function4;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/marker_factories/MarkerFactory;Lkotlin/jvm/functions/Function4;Lkotlin/jvm/functions/Function3;)Lkotlinx/coroutines/Job;
public static synthetic fun onPrivateForumTopicCreated$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/SimpleFilter;Lkotlin/jvm/functions/Function4;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/marker_factories/MarkerFactory;Lkotlin/jvm/functions/Function4;Lkotlin/jvm/functions/Function3;ILjava/lang/Object;)Lkotlinx/coroutines/Job;
public static final fun onPrivateForumTopicEdited (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/SimpleFilter;Lkotlin/jvm/functions/Function4;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/marker_factories/MarkerFactory;Lkotlin/jvm/functions/Function4;Lkotlin/jvm/functions/Function3;)Lkotlinx/coroutines/Job;
public static synthetic fun onPrivateForumTopicEdited$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/SimpleFilter;Lkotlin/jvm/functions/Function4;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/marker_factories/MarkerFactory;Lkotlin/jvm/functions/Function4;Lkotlin/jvm/functions/Function3;ILjava/lang/Object;)Lkotlinx/coroutines/Job;
public static final fun onProximityAlertTriggered (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/SimpleFilter;Lkotlin/jvm/functions/Function4;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/marker_factories/MarkerFactory;Lkotlin/jvm/functions/Function4;Lkotlin/jvm/functions/Function3;)Lkotlinx/coroutines/Job;
public static synthetic fun onProximityAlertTriggered$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/SimpleFilter;Lkotlin/jvm/functions/Function4;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/marker_factories/MarkerFactory;Lkotlin/jvm/functions/Function4;Lkotlin/jvm/functions/Function3;ILjava/lang/Object;)Lkotlinx/coroutines/Job;
public static final fun onPublicChatEvent (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/SimpleFilter;Lkotlin/jvm/functions/Function4;Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/marker_factories/MarkerFactory;Lkotlin/jvm/functions/Function4;Lkotlin/jvm/functions/Function3;)Lkotlinx/coroutines/Job;

View File

@@ -10,7 +10,7 @@ import dev.inmo.tgbotapi.types.PaidMessagePriceChanged
import dev.inmo.tgbotapi.types.chat.ChatBackground
import dev.inmo.tgbotapi.types.checklists.ChecklistTasksAdded
import dev.inmo.tgbotapi.types.checklists.ChecklistTasksDone
import dev.inmo.tgbotapi.types.gifts.GiftSentOrReceived
import dev.inmo.tgbotapi.types.gifts.GiftSentOrReceivedEvent
import dev.inmo.tgbotapi.types.giveaway.GiveawayCreated
import dev.inmo.tgbotapi.types.giveaway.GiveawayPrivateResults
import dev.inmo.tgbotapi.types.message.ChatEvents.*
@@ -25,7 +25,6 @@ import dev.inmo.tgbotapi.types.message.ChatEvents.forum.WriteAccessAllowed
import dev.inmo.tgbotapi.types.message.ChatEvents.suggested.SuggestedPostApprovalFailed
import dev.inmo.tgbotapi.types.message.ChatEvents.suggested.SuggestedPostApproved
import dev.inmo.tgbotapi.types.message.ChatEvents.suggested.SuggestedPostDeclined
import dev.inmo.tgbotapi.types.message.ChatEvents.suggested.SuggestedPostInfo
import dev.inmo.tgbotapi.types.message.ChatEvents.suggested.SuggestedPostPaid
import dev.inmo.tgbotapi.types.message.ChatEvents.suggested.SuggestedPostRefunded
import dev.inmo.tgbotapi.types.message.ChatEvents.voice.*
@@ -239,6 +238,16 @@ fun BehaviourContext.waitChatBoostAdded(
errorFactory: NullableRequestBuilder<*> = { null }
) = waitEvents<ChatBoostAdded>(initRequest, errorFactory)
fun BehaviourContext.waitChatOwnerLeft(
initRequest: Request<*>? = null,
errorFactory: NullableRequestBuilder<*> = { null }
) = waitEvents<ChatOwnerLeft>(initRequest, errorFactory)
fun BehaviourContext.waitChatOwnerChanged(
initRequest: Request<*>? = null,
errorFactory: NullableRequestBuilder<*> = { null }
) = waitEvents<ChatOwnerChanged>(initRequest, errorFactory)
fun BehaviourContext.waitChatBackgroundSet(
initRequest: Request<*>? = null,
errorFactory: NullableRequestBuilder<*> = { null }
@@ -267,12 +276,12 @@ fun BehaviourContext.waitPaidMessagePriceChanged(
fun BehaviourContext.waitRegularGiftSentOrReceived(
initRequest: Request<*>? = null,
errorFactory: NullableRequestBuilder<*> = { null }
) = waitEvents<GiftSentOrReceived.Regular>(initRequest, errorFactory)
) = waitEvents<GiftSentOrReceivedEvent.RegularGift>(initRequest, errorFactory)
fun BehaviourContext.waitUniqueGiftSentOrReceived(
initRequest: Request<*>? = null,
errorFactory: NullableRequestBuilder<*> = { null }
) = waitEvents<GiftSentOrReceived.Unique>(initRequest, errorFactory)
) = waitEvents<GiftSentOrReceivedEvent.UniqueGift>(initRequest, errorFactory)
fun BehaviourContext.waitChecklistTasksDone(
initRequest: Request<*>? = null,

View File

@@ -7,7 +7,7 @@ import dev.inmo.tgbotapi.extensions.utils.*
import dev.inmo.tgbotapi.requests.abstracts.Request
import dev.inmo.tgbotapi.types.PaidMessagePriceChanged
import dev.inmo.tgbotapi.types.chat.ChatBackground
import dev.inmo.tgbotapi.types.gifts.GiftSentOrReceived
import dev.inmo.tgbotapi.types.gifts.GiftSentOrReceivedEvent
import dev.inmo.tgbotapi.types.message.ChatEvents.*
import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.*
import dev.inmo.tgbotapi.types.message.ChatEvents.forum.ForumTopicClosed
@@ -222,6 +222,16 @@ fun BehaviourContext.waitChatBoostAddedEventsMessages(
errorFactory: NullableRequestBuilder<*> = { null }
) = waitEventsMessages<ChatBoostAdded>(initRequest, errorFactory)
fun BehaviourContext.waitChatOwnerLeftEventsMessages(
initRequest: Request<*>? = null,
errorFactory: NullableRequestBuilder<*> = { null }
) = waitEventsMessages<ChatOwnerLeft>(initRequest, errorFactory)
fun BehaviourContext.waitChatOwnerChangedEventsMessages(
initRequest: Request<*>? = null,
errorFactory: NullableRequestBuilder<*> = { null }
) = waitEventsMessages<ChatOwnerChanged>(initRequest, errorFactory)
fun BehaviourContext.waitChatBackgroundSetEventsMessages(
initRequest: Request<*>? = null,
errorFactory: NullableRequestBuilder<*> = { null }
@@ -235,9 +245,9 @@ fun BehaviourContext.waitPaidMessagePriceChangedMessages(
fun BehaviourContext.waitRegularGiftSentOrReceivedMessages(
initRequest: Request<*>? = null,
errorFactory: NullableRequestBuilder<*> = { null }
) = waitEventsMessages<GiftSentOrReceived.Regular>(initRequest, errorFactory)
) = waitEventsMessages<GiftSentOrReceivedEvent.RegularGift>(initRequest, errorFactory)
fun BehaviourContext.waitUniqueGiftSentOrReceivedMessages(
initRequest: Request<*>? = null,
errorFactory: NullableRequestBuilder<*> = { null }
) = waitEventsMessages<GiftSentOrReceived.Unique>(initRequest, errorFactory)
) = waitEventsMessages<GiftSentOrReceivedEvent.UniqueGift>(initRequest, errorFactory)

View File

@@ -15,7 +15,7 @@ import dev.inmo.tgbotapi.types.PaidMessagePriceChanged
import dev.inmo.tgbotapi.types.chat.ChatBackground
import dev.inmo.tgbotapi.types.checklists.ChecklistTasksAdded
import dev.inmo.tgbotapi.types.checklists.ChecklistTasksDone
import dev.inmo.tgbotapi.types.gifts.GiftSentOrReceived
import dev.inmo.tgbotapi.types.gifts.GiftSentOrReceivedEvent
import dev.inmo.tgbotapi.types.giveaway.GiveawayCreated
import dev.inmo.tgbotapi.types.giveaway.GiveawayPrivateResults
import dev.inmo.tgbotapi.types.message.ChannelEventMessage
@@ -31,7 +31,6 @@ import dev.inmo.tgbotapi.types.message.ChatEvents.forum.WriteAccessAllowed
import dev.inmo.tgbotapi.types.message.ChatEvents.suggested.SuggestedPostApprovalFailed
import dev.inmo.tgbotapi.types.message.ChatEvents.suggested.SuggestedPostApproved
import dev.inmo.tgbotapi.types.message.ChatEvents.suggested.SuggestedPostDeclined
import dev.inmo.tgbotapi.types.message.ChatEvents.suggested.SuggestedPostInfo
import dev.inmo.tgbotapi.types.message.ChatEvents.suggested.SuggestedPostPaid
import dev.inmo.tgbotapi.types.message.ChatEvents.suggested.SuggestedPostRefunded
import dev.inmo.tgbotapi.types.message.ChatEvents.voice.*
@@ -659,6 +658,27 @@ fun <BC : BehaviourContext> BC.onForumTopicCreated(
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, SupergroupEventMessage<ForumTopicCreated>>
) = onEventWithCustomChatEventMessage(initialFilter, subcontextUpdatesFilter, markerFactory, additionalSubcontextInitialAction, scenarioReceiver)
/**
* @param initialFilter This filter will be called to remove unnecessary data BEFORE [scenarioReceiver] call
* @param subcontextUpdatesFilter This filter will be applied to each update inside of [scenarioReceiver]. For example,
* this filter will be used if you will call [dev.inmo.tgbotapi.extensions.behaviour_builder.expectations.waitContentMessage].
* Use [dev.inmo.tgbotapi.extensions.behaviour_builder.BehaviourContextAndTwoTypesReceiver] function to create your own.
* Use [dev.inmo.tgbotapi.extensions.behaviour_builder.utils.plus] or [dev.inmo.tgbotapi.extensions.behaviour_builder.utils.times]
* to combinate several filters
* @param [markerFactory] **Pass null to handle requests fully parallel**. Will be used to identify different "stream".
* [scenarioReceiver] will be called synchronously in one "stream". Output of [markerFactory] will be used as a key for
* "stream"
* @param scenarioReceiver Main callback which will be used to handle incoming data if [initialFilter] will pass that
* data
*/
fun <BC : BehaviourContext> BC.onPrivateForumTopicCreated(
initialFilter: SimpleFilter<PrivateEventMessage<ForumTopicCreated>>? = null,
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, PrivateEventMessage<ForumTopicCreated>, Update>? = MessageFilterByChat,
markerFactory: MarkerFactory<in ChatEventMessage<ForumTopicCreated>, Any>? = ByChatMessageMarkerFactory,
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatEventMessage<ForumTopicCreated>>? = null,
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, PrivateEventMessage<ForumTopicCreated>>
) = onEventWithCustomChatEventMessage(initialFilter, subcontextUpdatesFilter, markerFactory, additionalSubcontextInitialAction, scenarioReceiver)
/**
* @param initialFilter This filter will be called to remove unnecessary data BEFORE [scenarioReceiver] call
* @param subcontextUpdatesFilter This filter will be applied to each update inside of [scenarioReceiver]. For example,
@@ -702,6 +722,28 @@ fun <BC : BehaviourContext> BC.onForumTopicEdited(
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, SupergroupEventMessage<ForumTopicEdited>>
) = onEventWithCustomChatEventMessage(initialFilter, subcontextUpdatesFilter, markerFactory, additionalSubcontextInitialAction, scenarioReceiver)
/**
* @param initialFilter This filter will be called to remove unnecessary data BEFORE [scenarioReceiver] call
* @param subcontextUpdatesFilter This filter will be applied to each update inside of [scenarioReceiver]. For example,
* this filter will be used if you will call [dev.inmo.tgbotapi.extensions.behaviour_builder.expectations.waitContentMessage].
* Use [dev.inmo.tgbotapi.extensions.behaviour_builder.BehaviourContextAndTwoTypesReceiver] function to create your own.
* Use [dev.inmo.tgbotapi.extensions.behaviour_builder.utils.plus] or [dev.inmo.tgbotapi.extensions.behaviour_builder.utils.times]
* to combinate several filters
* @param [markerFactory] **Pass null to handle requests fully parallel**. Will be used to identify different "stream".
* [scenarioReceiver] will be called synchronously in one "stream". Output of [markerFactory] will be used as a key for
* "stream"
* @param scenarioReceiver Main callback which will be used to handle incoming data if [initialFilter] will pass that
* data
*/
fun <BC : BehaviourContext> BC.onPrivateForumTopicEdited(
initialFilter: SimpleFilter<PrivateEventMessage<ForumTopicEdited>>? = null,
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, PrivateEventMessage<ForumTopicEdited>, Update>? = MessageFilterByChat,
markerFactory: MarkerFactory<in ChatEventMessage<ForumTopicEdited>, Any>? = ByChatMessageMarkerFactory,
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatEventMessage<ForumTopicEdited>>? = null,
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, PrivateEventMessage<ForumTopicEdited>>
) = onEventWithCustomChatEventMessage(initialFilter, subcontextUpdatesFilter, markerFactory, additionalSubcontextInitialAction, scenarioReceiver)
/**
* @param initialFilter This filter will be called to remove unnecessary data BEFORE [scenarioReceiver] call
* @param subcontextUpdatesFilter This filter will be applied to each update inside of [scenarioReceiver]. For example,
@@ -968,6 +1010,50 @@ fun <BC : BehaviourContext> BC.onChatBoostAdded(
) = onEventWithCustomChatEventMessage(initialFilter, subcontextUpdatesFilter, markerFactory, additionalSubcontextInitialAction, scenarioReceiver)
/**
* @param initialFilter This filter will be called to remove unnecessary data BEFORE [scenarioReceiver] call
* @param subcontextUpdatesFilter This filter will be applied to each update inside of [scenarioReceiver]. For example,
* this filter will be used if you will call [dev.inmo.tgbotapi.extensions.behaviour_builder.expectations.waitContentMessage].
* Use [dev.inmo.tgbotapi.extensions.behaviour_builder.BehaviourContextAndTwoTypesReceiver] function to create your own.
* Use [dev.inmo.tgbotapi.extensions.behaviour_builder.utils.plus] or [dev.inmo.tgbotapi.extensions.behaviour_builder.utils.times]
* to combinate several filters
* @param [markerFactory] **Pass null to handle requests fully parallel**. Will be used to identify different "stream".
* [scenarioReceiver] will be called synchronously in one "stream". Output of [markerFactory] will be used as a key for
* "stream"
* @param scenarioReceiver Main callback which will be used to handle incoming data if [initialFilter] will pass that
* data
*/
fun <BC : BehaviourContext> BC.onChatOwnerLeft(
initialFilter: SimpleFilter<ChatEventMessage<ChatOwnerLeft>>? = null,
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatEventMessage<ChatOwnerLeft>, Update>? = MessageFilterByChat,
markerFactory: MarkerFactory<in ChatEventMessage<ChatOwnerLeft>, Any>? = ByChatMessageMarkerFactory,
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatEventMessage<ChatOwnerLeft>>? = null,
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatEventMessage<ChatOwnerLeft>>
) = onEventWithCustomChatEventMessage(initialFilter, subcontextUpdatesFilter, markerFactory, additionalSubcontextInitialAction, scenarioReceiver)
/**
* @param initialFilter This filter will be called to remove unnecessary data BEFORE [scenarioReceiver] call
* @param subcontextUpdatesFilter This filter will be applied to each update inside of [scenarioReceiver]. For example,
* this filter will be used if you will call [dev.inmo.tgbotapi.extensions.behaviour_builder.expectations.waitContentMessage].
* Use [dev.inmo.tgbotapi.extensions.behaviour_builder.BehaviourContextAndTwoTypesReceiver] function to create your own.
* Use [dev.inmo.tgbotapi.extensions.behaviour_builder.utils.plus] or [dev.inmo.tgbotapi.extensions.behaviour_builder.utils.times]
* to combinate several filters
* @param [markerFactory] **Pass null to handle requests fully parallel**. Will be used to identify different "stream".
* [scenarioReceiver] will be called synchronously in one "stream". Output of [markerFactory] will be used as a key for
* "stream"
* @param scenarioReceiver Main callback which will be used to handle incoming data if [initialFilter] will pass that
* data
*/
fun <BC : BehaviourContext> BC.onChatOwnerChanged(
initialFilter: SimpleFilter<ChatEventMessage<ChatOwnerChanged>>? = null,
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatEventMessage<ChatOwnerChanged>, Update>? = MessageFilterByChat,
markerFactory: MarkerFactory<in ChatEventMessage<ChatOwnerChanged>, Any>? = ByChatMessageMarkerFactory,
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatEventMessage<ChatOwnerChanged>>? = null,
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatEventMessage<ChatOwnerChanged>>
) = onEventWithCustomChatEventMessage(initialFilter, subcontextUpdatesFilter, markerFactory, additionalSubcontextInitialAction, scenarioReceiver)
/**
* @param initialFilter This filter will be called to remove unnecessary data BEFORE [scenarioReceiver] call
* @param subcontextUpdatesFilter This filter will be applied to each update inside of [scenarioReceiver]. For example,
@@ -1095,11 +1181,11 @@ fun <BC : BehaviourContext> BC.onPaidMessagePriceChanged(
* data
*/
fun <BC : BehaviourContext> BC.onRegularGiftSentOrReceived(
initialFilter: SimpleFilter<ChatEventMessage<GiftSentOrReceived.Regular>>? = null,
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatEventMessage<GiftSentOrReceived.Regular>, Update>? = MessageFilterByChat,
markerFactory: MarkerFactory<in ChatEventMessage<GiftSentOrReceived.Regular>, Any>? = ByChatMessageMarkerFactory,
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatEventMessage<GiftSentOrReceived.Regular>>? = null,
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatEventMessage<GiftSentOrReceived.Regular>>
initialFilter: SimpleFilter<ChatEventMessage<GiftSentOrReceivedEvent.RegularGift>>? = null,
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatEventMessage<GiftSentOrReceivedEvent.RegularGift>, Update>? = MessageFilterByChat,
markerFactory: MarkerFactory<in ChatEventMessage<GiftSentOrReceivedEvent.RegularGift>, Any>? = ByChatMessageMarkerFactory,
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatEventMessage<GiftSentOrReceivedEvent.RegularGift>>? = null,
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatEventMessage<GiftSentOrReceivedEvent.RegularGift>>
) = onEventWithCustomChatEventMessage(initialFilter, subcontextUpdatesFilter, markerFactory, additionalSubcontextInitialAction, scenarioReceiver)
@@ -1117,11 +1203,11 @@ fun <BC : BehaviourContext> BC.onRegularGiftSentOrReceived(
* data
*/
fun <BC : BehaviourContext> BC.onUniqueGiftSentOrReceived(
initialFilter: SimpleFilter<ChatEventMessage<GiftSentOrReceived.Unique>>? = null,
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatEventMessage<GiftSentOrReceived.Unique>, Update>? = MessageFilterByChat,
markerFactory: MarkerFactory<in ChatEventMessage<GiftSentOrReceived.Unique>, Any>? = ByChatMessageMarkerFactory,
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatEventMessage<GiftSentOrReceived.Unique>>? = null,
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatEventMessage<GiftSentOrReceived.Unique>>
initialFilter: SimpleFilter<ChatEventMessage<GiftSentOrReceivedEvent.UniqueGift>>? = null,
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatEventMessage<GiftSentOrReceivedEvent.UniqueGift>, Update>? = MessageFilterByChat,
markerFactory: MarkerFactory<in ChatEventMessage<GiftSentOrReceivedEvent.UniqueGift>, Any>? = ByChatMessageMarkerFactory,
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatEventMessage<GiftSentOrReceivedEvent.UniqueGift>>? = null,
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatEventMessage<GiftSentOrReceivedEvent.UniqueGift>>
) = onEventWithCustomChatEventMessage(initialFilter, subcontextUpdatesFilter, markerFactory, additionalSubcontextInitialAction, scenarioReceiver)

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,7 @@
package dev.inmo.tgbotapi.abstracts
import dev.inmo.tgbotapi.types.UserTag
interface OptionallyTagged {
val tag: UserTag?
}

View File

@@ -16,6 +16,7 @@ import io.ktor.client.request.*
import io.ktor.client.statement.bodyAsText
import io.ktor.http.ContentType
import io.ktor.http.content.*
import kotlinx.serialization.builtins.serializer
import kotlinx.serialization.json.Json
import kotlin.collections.set

View File

@@ -2,6 +2,7 @@ package dev.inmo.tgbotapi.requests
import dev.inmo.tgbotapi.abstracts.WithCustomStartMediaData
import dev.inmo.tgbotapi.abstracts.types.MessageAction
import dev.inmo.tgbotapi.abstracts.types.OptionallyWithEffectId
import dev.inmo.tgbotapi.abstracts.types.ProtectContent
import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest
import dev.inmo.tgbotapi.requests.send.abstracts.OptionallyDirectMessageThreadRequest
@@ -38,7 +39,7 @@ data class ForwardMessage(
@SerialName(protectContentField)
override val protectContent: Boolean = false,
@SerialName(messageEffectIdField)
val effectId: EffectId? = null,
override val effectId: EffectId? = null,
@SerialName(suggestedPostParametersField)
override val suggestedPostParameters: SuggestedPostParameters? = null
): SimpleRequest<PossiblyForwardedMessage>,
@@ -47,7 +48,8 @@ data class ForwardMessage(
OptionallyMessageThreadRequest,
OptionallyDirectMessageThreadRequest,
OptionallySuggestedPostRequest,
WithCustomStartMediaData {
WithCustomStartMediaData,
OptionallyWithEffectId {
override val chatId: ChatIdentifier
get() = fromChatId

View File

@@ -0,0 +1,16 @@
package dev.inmo.tgbotapi.requests.bot
import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest
import kotlinx.serialization.DeserializationStrategy
import kotlinx.serialization.Serializable
import kotlinx.serialization.SerializationStrategy
import kotlinx.serialization.builtins.serializer
@Serializable
object RemoveMyProfilePhoto : SimpleRequest<Boolean> {
override fun method(): String = "removeMyProfilePhoto"
override val resultDeserializer: DeserializationStrategy<Boolean>
get() = Boolean.serializer()
override val requestSerializer: SerializationStrategy<*>
get() = serializer()
}

View File

@@ -0,0 +1,29 @@
package dev.inmo.tgbotapi.requests.bot
import dev.inmo.tgbotapi.requests.abstracts.*
import dev.inmo.tgbotapi.requests.business_connection.InputProfilePhoto
import dev.inmo.tgbotapi.types.photoField
import kotlinx.serialization.*
import kotlinx.serialization.builtins.serializer
import kotlinx.serialization.json.JsonObject
@Serializable
data class SetMyProfilePhoto(
@SerialName(photoField)
val photo: InputProfilePhoto
) : MultipartRequest.Common<Boolean> {
override fun method(): String = "setMyProfilePhoto"
override val resultDeserializer: DeserializationStrategy<Boolean>
get() = Boolean.serializer()
override val requestSerializer: SerializationStrategy<*>
get() = serializer()
override val data: SimpleRequest<Boolean>
get() = this
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
override val mediaMap: Map<String, MultipartFile> = mapOf(
photo.mediaPair
)
}

View File

@@ -15,11 +15,13 @@ import dev.inmo.tgbotapi.types.excludeFromBlockchainField
import dev.inmo.tgbotapi.types.sortByPriceField
import dev.inmo.tgbotapi.types.offsetField
import dev.inmo.tgbotapi.types.limitField
import dev.inmo.tgbotapi.types.gifts.GiftSentOrReceived
import dev.inmo.tgbotapi.types.gifts.GiftSentOrReceivedEvent
import dev.inmo.tgbotapi.types.gifts.OwnedGift
import kotlinx.serialization.DeserializationStrategy
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.SerializationStrategy
import kotlinx.serialization.builtins.serializer
@Serializable
data class GetBusinessAccountGifts(
@@ -45,16 +47,16 @@ data class GetBusinessAccountGifts(
val offset: String? = null,
@SerialName(limitField)
val limit: Int? = null,
) : BusinessRequest.Simple<OwnedGifts<GiftSentOrReceived.ReceivedInBusinessAccount>> {
) : BusinessRequest.Simple<OwnedGifts<OwnedGift.OwnedByBusinessAccount>> {
override fun method(): String = "getBusinessAccountGifts"
override val resultDeserializer: DeserializationStrategy<OwnedGifts<GiftSentOrReceived.ReceivedInBusinessAccount>>
override val resultDeserializer: DeserializationStrategy<OwnedGifts<OwnedGift.OwnedByBusinessAccount>>
get() = Companion.resultSerializer
override val requestSerializer: SerializationStrategy<*>
get() = serializer()
companion object {
@Warning("This API can be changed without any warranties of backward compatibility")
val resultSerializer = OwnedGifts.serializer(GiftSentOrReceived.ReceivedInBusinessAccount.serializer())
val resultSerializer = OwnedGifts.serializer(OwnedGift.OwnedByBusinessAccount.serializer())
}
}

View File

@@ -49,6 +49,8 @@ data class PromoteChatMember(
private val canDeleteStories: Boolean? = null,
@SerialName(canManageDirectMessagesField)
private val canManageDirectMessages: Boolean? = null,
@SerialName(canManageTagsField)
private val canManageTags: Boolean? = null,
) : ChatMemberRequest<Boolean>, UntilDate {
override fun method(): String = "promoteChatMember"
override val resultDeserializer: DeserializationStrategy<Boolean>
@@ -69,6 +71,7 @@ fun PromoteChatMember(
canPromoteMembers: Boolean? = null,
canManageVideoChats: Boolean? = null,
canManageChat: Boolean? = null,
canManageTags: Boolean? = null,
) = PromoteChatMember(
chatId = chatId,
userId = userId,
@@ -84,6 +87,7 @@ fun PromoteChatMember(
canPromoteMembers = canPromoteMembers,
canManageVideoChats = canManageVideoChats,
canManageChat = canManageChat,
canManageTags = canManageTags,
canManageTopics = null,
canPostStories = null,
canEditStories = null,
@@ -144,6 +148,7 @@ fun PromoteSupergroupAdministrator(
canManageVideoChats: Boolean? = null,
canManageChat: Boolean? = null,
canManageTopics: Boolean? = null,
canManageTags: Boolean? = null,
) = PromoteChatMember(
chatId = chatId,
userId = userId,
@@ -160,6 +165,7 @@ fun PromoteSupergroupAdministrator(
canManageVideoChats = canManageVideoChats,
canManageChat = canManageChat,
canManageTopics = canManageTopics,
canManageTags = canManageTags,
canPostStories = null,
canEditStories = null,
canDeleteStories = null

View File

@@ -0,0 +1,23 @@
package dev.inmo.tgbotapi.requests.chat.members
import dev.inmo.tgbotapi.requests.chat.abstracts.ChatMemberRequest
import dev.inmo.tgbotapi.types.*
import dev.inmo.tgbotapi.utils.serializers.UnitFromBooleanSerializer
import kotlinx.serialization.*
@Serializable
data class SetChatMemberTag(
@SerialName(chatIdField)
override val chatId: ChatIdentifier,
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@SerialName(userIdField)
override val userId: UserId,
@SerialName(tagField)
val tag: UserTag? = null
) : ChatMemberRequest<Unit> {
override fun method(): String = "setChatMemberTag"
override val resultDeserializer: DeserializationStrategy<Unit>
get() = UnitFromBooleanSerializer
override val requestSerializer: SerializationStrategy<*>
get() = serializer()
}

View File

@@ -0,0 +1,32 @@
package dev.inmo.tgbotapi.requests.get
import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest
import dev.inmo.tgbotapi.types.*
import dev.inmo.tgbotapi.types.UserProfileAudios
import kotlinx.serialization.*
@Serializable
data class GetUserProfileAudios(
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@SerialName(userIdField)
val userId: UserId,
@SerialName(offsetField)
val offset: Int? = null,
@SerialName(limitField)
val limit: Int? = null
): SimpleRequest<UserProfileAudios> {
init {
if (offset != null && offset < 0) {
throw IllegalArgumentException("Offset for getting user profile audios must be positive")
}
if (limit != null && limit !in userProfileAudiosRequestLimit) {
throw IllegalArgumentException("Limit for getting user profile audios must be in 0 .. 100 range")
}
}
override fun method(): String = "getUserProfileAudios"
override val resultDeserializer: DeserializationStrategy<UserProfileAudios>
get() = UserProfileAudios.serializer()
override val requestSerializer: SerializationStrategy<*>
get() = serializer()
}

View File

@@ -6,7 +6,16 @@ import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest
import dev.inmo.tgbotapi.types.ChatIdentifier
import dev.inmo.tgbotapi.types.OwnedGifts
import dev.inmo.tgbotapi.types.chatIdField
import dev.inmo.tgbotapi.types.gifts.GiftSentOrReceived
import dev.inmo.tgbotapi.types.excludeUnsavedField
import dev.inmo.tgbotapi.types.excludeSavedField
import dev.inmo.tgbotapi.types.excludeUnlimitedField
import dev.inmo.tgbotapi.types.excludeLimitedUpgradableField
import dev.inmo.tgbotapi.types.excludeLimitedNonUpgradableField
import dev.inmo.tgbotapi.types.excludeFromBlockchainField
import dev.inmo.tgbotapi.types.excludeUniqueField
import dev.inmo.tgbotapi.types.sortByPriceField
import dev.inmo.tgbotapi.types.gifts.GiftSentOrReceivedEvent
import dev.inmo.tgbotapi.types.gifts.OwnedGift
import dev.inmo.tgbotapi.types.limitField
import dev.inmo.tgbotapi.types.offsetField
import kotlinx.serialization.DeserializationStrategy
@@ -14,25 +23,40 @@ import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.SerializationStrategy
// TODO::Fix
@Serializable
data class GetChatGifts(
@SerialName(chatIdField)
override val chatId: ChatIdentifier,
@SerialName(excludeUnsavedField)
val excludeUnsaved: Boolean = false,
@SerialName(excludeSavedField)
val excludeSaved: Boolean = false,
@SerialName(excludeUnlimitedField)
val excludeUnlimited: Boolean = false,
@SerialName(excludeLimitedUpgradableField)
val excludeLimitedUpgradable: Boolean = false,
@SerialName(excludeLimitedNonUpgradableField)
val excludeLimitedNonUpgradable: Boolean = false,
@SerialName(excludeFromBlockchainField)
val excludeFromBlockchain: Boolean = false,
@SerialName(excludeUniqueField)
val excludeUnique: Boolean = false,
@SerialName(sortByPriceField)
val sortByPrice: Boolean = false,
@SerialName(offsetField)
val offset: String? = null,
@SerialName(limitField)
val limit: Int? = null,
) : SimpleRequest<OwnedGifts<GiftSentOrReceived>>, ChatRequest {
) : SimpleRequest<OwnedGifts<OwnedGift.Common>>, ChatRequest {
override fun method(): String = "getChatGifts"
override val resultDeserializer: DeserializationStrategy<OwnedGifts<GiftSentOrReceived>>
override val resultDeserializer: DeserializationStrategy<OwnedGifts<OwnedGift.Common>>
get() = Companion.resultSerializer
override val requestSerializer: SerializationStrategy<*>
get() = serializer()
companion object {
@Warning("This API can be changed without any warranties of backward compatibility")
val resultSerializer = OwnedGifts.serializer(GiftSentOrReceived.serializer())
val resultSerializer = OwnedGifts.serializer(OwnedGift.Common.serializer())
}
}

View File

@@ -4,7 +4,14 @@ import dev.inmo.micro_utils.common.Warning
import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest
import dev.inmo.tgbotapi.types.OwnedGifts
import dev.inmo.tgbotapi.types.UserId
import dev.inmo.tgbotapi.types.gifts.GiftSentOrReceived
import dev.inmo.tgbotapi.types.excludeUnlimitedField
import dev.inmo.tgbotapi.types.excludeLimitedUpgradableField
import dev.inmo.tgbotapi.types.excludeLimitedNonUpgradableField
import dev.inmo.tgbotapi.types.excludeFromBlockchainField
import dev.inmo.tgbotapi.types.excludeUniqueField
import dev.inmo.tgbotapi.types.sortByPriceField
import dev.inmo.tgbotapi.types.gifts.GiftSentOrReceivedEvent
import dev.inmo.tgbotapi.types.gifts.OwnedGift
import dev.inmo.tgbotapi.types.limitField
import dev.inmo.tgbotapi.types.offsetField
import dev.inmo.tgbotapi.types.userIdField
@@ -13,26 +20,37 @@ import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.SerializationStrategy
// TODO::Fix
@Serializable
data class GetUserGifts(
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@SerialName(userIdField)
val userId: UserId,
@SerialName(excludeUnlimitedField)
val excludeUnlimited: Boolean = false,
@SerialName(excludeLimitedUpgradableField)
val excludeLimitedUpgradable: Boolean = false,
@SerialName(excludeLimitedNonUpgradableField)
val excludeLimitedNonUpgradable: Boolean = false,
@SerialName(excludeFromBlockchainField)
val excludeFromBlockchain: Boolean = false,
@SerialName(excludeUniqueField)
val excludeUnique: Boolean = false,
@SerialName(sortByPriceField)
val sortByPrice: Boolean = false,
@SerialName(offsetField)
val offset: String? = null,
@SerialName(limitField)
val limit: Int? = null,
) : SimpleRequest<OwnedGifts<GiftSentOrReceived>> {
) : SimpleRequest<OwnedGifts<OwnedGift.Common>> {
override fun method(): String = "getUserGifts"
override val resultDeserializer: DeserializationStrategy<OwnedGifts<GiftSentOrReceived>>
override val resultDeserializer: DeserializationStrategy<OwnedGifts<OwnedGift.Common>>
get() = Companion.resultSerializer
override val requestSerializer: SerializationStrategy<*>
get() = serializer()
companion object {
@Warning("This API can be changed without any warranties of backward compatibility")
val resultSerializer = OwnedGifts.serializer(GiftSentOrReceived.serializer())
val resultSerializer = OwnedGifts.serializer(OwnedGift.Common.serializer())
}
}

View File

@@ -5,6 +5,7 @@ package dev.inmo.tgbotapi.requests.send
import dev.inmo.tgbotapi.abstracts.TextedOutput
import dev.inmo.tgbotapi.abstracts.WithCustomStartMediaData
import dev.inmo.tgbotapi.abstracts.types.MessageAction
import dev.inmo.tgbotapi.abstracts.types.OptionallyWithEffectId
import dev.inmo.tgbotapi.abstracts.types.ProtectContent
import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest
import dev.inmo.tgbotapi.requests.send.abstracts.OptionallyMessageThreadRequest
@@ -189,7 +190,7 @@ data class CopyMessage internal constructor(
@SerialName(allowPaidBroadcastField)
override val allowPaidBroadcast: Boolean = false,
@SerialName(messageEffectIdField)
val effectId: EffectId? = null,
override val effectId: EffectId? = null,
@SerialName(suggestedPostParametersField)
override val suggestedPostParameters: SuggestedPostParameters? = null,
@SerialName(replyParametersField)
@@ -203,7 +204,8 @@ data class CopyMessage internal constructor(
TextedOutput,
ProtectContent,
OptionallyMessageThreadRequest,
WithCustomStartMediaData {
WithCustomStartMediaData,
OptionallyWithEffectId {
override val chatId: ChatIdentifier
get() = fromChatId
override val textSources: List<TextSource>? by lazy {

View File

@@ -1,13 +1,11 @@
package dev.inmo.tgbotapi.requests.send
import dev.inmo.tgbotapi.abstracts.types.LinkPreviewOptionsContainer
import dev.inmo.tgbotapi.abstracts.TextedOutput
import dev.inmo.tgbotapi.requests.send.abstracts.*
import dev.inmo.tgbotapi.types.*
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
import dev.inmo.tgbotapi.types.message.textsources.TextSourcesList
import dev.inmo.tgbotapi.types.message.ParseMode
import dev.inmo.tgbotapi.types.message.parseModeField
import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup
import dev.inmo.tgbotapi.types.message.*
import dev.inmo.tgbotapi.types.message.RawMessageEntity
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
@@ -17,80 +15,44 @@ import dev.inmo.tgbotapi.types.message.toRawMessageEntities
import dev.inmo.tgbotapi.utils.extensions.makeString
import dev.inmo.tgbotapi.utils.throwRangeError
import kotlinx.serialization.*
internal val TextContentMessageDraftResultDeserializer: DeserializationStrategy<ContentMessage<TextContent>>
= TelegramBotAPIMessageDeserializationStrategyClass()
import kotlinx.serialization.builtins.serializer
fun SendMessageDraft(
chatId: ChatIdentifier,
chatId: IdChatIdentifier,
draftId: DraftId,
text: String,
parseMode: ParseMode? = null,
linkPreviewOptions: LinkPreviewOptions? = null,
threadId: MessageThreadId? = chatId.threadId,
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId,
disableNotification: Boolean = false,
protectContent: Boolean = false,
allowPaidBroadcast: Boolean = false,
effectId: EffectId? = null,
suggestedPostParameters: SuggestedPostParameters? = null,
replyParameters: ReplyParameters? = null,
replyMarkup: KeyboardMarkup? = null
threadId: MessageThreadId? = chatId.threadId
) = SendMessageDraft(
chatId = chatId,
draftId = draftId,
text = text,
parseMode = parseMode,
rawEntities = null,
threadId = threadId,
directMessageThreadId = directMessageThreadId,
businessConnectionId = businessConnectionId,
linkPreviewOptions = linkPreviewOptions,
disableNotification = disableNotification,
protectContent = protectContent,
allowPaidBroadcast = allowPaidBroadcast,
effectId = effectId,
suggestedPostParameters = suggestedPostParameters,
replyParameters = replyParameters,
replyMarkup = replyMarkup
threadId = threadId
)
fun SendMessageDraft(
chatId: ChatIdentifier,
chatId: IdChatIdentifier,
draftId: DraftId,
entities: TextSourcesList,
linkPreviewOptions: LinkPreviewOptions? = null,
threadId: MessageThreadId? = chatId.threadId,
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId,
disableNotification: Boolean = false,
protectContent: Boolean = false,
allowPaidBroadcast: Boolean = false,
effectId: EffectId? = null,
suggestedPostParameters: SuggestedPostParameters? = null,
replyParameters: ReplyParameters? = null,
replyMarkup: KeyboardMarkup? = null
threadId: MessageThreadId? = chatId.threadId
) = SendMessageDraft(
chatId = chatId,
draftId = draftId,
text = entities.makeString(),
parseMode = null,
rawEntities = entities.toRawMessageEntities(),
threadId = threadId,
directMessageThreadId = directMessageThreadId,
businessConnectionId = businessConnectionId,
linkPreviewOptions = linkPreviewOptions,
disableNotification = disableNotification,
protectContent = protectContent,
allowPaidBroadcast = allowPaidBroadcast,
effectId = effectId,
suggestedPostParameters = suggestedPostParameters,
replyParameters = replyParameters,
replyMarkup = replyMarkup
threadId = threadId
)
@ConsistentCopyVisibility
@Serializable
data class SendMessageDraft internal constructor(
@SerialName(chatIdField)
override val chatId: ChatIdentifier,
override val chatId: IdChatIdentifier,
@SerialName(draftIdField)
val draftId: DraftId,
@SerialName(textField)
override val text: String,
@SerialName(parseModeField)
@@ -100,33 +62,10 @@ data class SendMessageDraft internal constructor(
@OptIn(ExperimentalSerializationApi::class)
@SerialName(messageThreadIdField)
@EncodeDefault
override val threadId: MessageThreadId? = chatId.threadId,
@OptIn(ExperimentalSerializationApi::class)
@EncodeDefault
@SerialName(directMessagesTopicIdField)
override val directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
@SerialName(businessConnectionIdField)
override val businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId,
@SerialName(linkPreviewOptionsField)
override val linkPreviewOptions: LinkPreviewOptions? = null,
@SerialName(disableNotificationField)
override val disableNotification: Boolean = false,
@SerialName(protectContentField)
override val protectContent: Boolean = false,
@SerialName(allowPaidBroadcastField)
override val allowPaidBroadcast: Boolean = false,
@SerialName(messageEffectIdField)
override val effectId: EffectId? = null,
@SerialName(suggestedPostParametersField)
override val suggestedPostParameters: SuggestedPostParameters? = null,
@SerialName(replyParametersField)
override val replyParameters: ReplyParameters? = null,
@SerialName(replyMarkupField)
override val replyMarkup: KeyboardMarkup? = null
) : SendContentMessageRequest<ContentMessage<TextContent>>,
ReplyingMarkupSendMessageRequest<ContentMessage<TextContent>>,
TextableSendMessageRequest<ContentMessage<TextContent>>,
LinkPreviewOptionsContainer
override val threadId: MessageThreadId? = chatId.threadId
) : SendChatMessageRequest<Boolean>,
TextedOutput,
OptionallyMessageThreadRequest
{
override val textSources: TextSourcesList? by lazy {
rawEntities ?.asTextSources(text)
@@ -139,8 +78,8 @@ data class SendMessageDraft internal constructor(
}
override fun method(): String = "sendMessageDraft"
override val resultDeserializer: DeserializationStrategy<ContentMessage<TextContent>>
get() = TextContentMessageDraftResultDeserializer
override val resultDeserializer: DeserializationStrategy<Boolean>
get() = Boolean.serializer()
override val requestSerializer: SerializationStrategy<*>
get() = serializer()
}

View File

@@ -2,11 +2,8 @@ package dev.inmo.tgbotapi.requests.stories
import dev.inmo.tgbotapi.abstracts.types.WithBusinessConnectionId
import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest
import dev.inmo.tgbotapi.types.StoryId
import dev.inmo.tgbotapi.types.businessConnectionIdField
import dev.inmo.tgbotapi.types.*
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
import dev.inmo.tgbotapi.types.fromBusinessConnectionIdField
import dev.inmo.tgbotapi.types.storyIdField
import dev.inmo.tgbotapi.types.stories.Story
import kotlinx.serialization.DeserializationStrategy
import kotlinx.serialization.SerialName
@@ -17,10 +14,16 @@ import kotlinx.serialization.SerializationStrategy
data class RepostStory(
@SerialName(businessConnectionIdField)
override val businessConnectionId: BusinessConnectionId,
@SerialName(fromBusinessConnectionIdField)
val fromBusinessConnectionId: BusinessConnectionId,
@SerialName(storyIdField)
@SerialName(fromChatIdField)
val fromChatId: IdChatIdentifier,
@SerialName(fromStoryIdField)
val storyId: StoryId,
@SerialName(activePeriodField)
val activePeriod: Seconds,
@SerialName(postToChatPageField)
val postToChatPage: Boolean = false,
@SerialName(protectContentField)
val protectContent: Boolean = false,
) : SimpleRequest<Story>, WithBusinessConnectionId {
override fun method(): String = "repostStory"

View File

@@ -58,7 +58,8 @@ val callbackQueryAnswerLength = 0 until 200
val captionLength = 0 .. 1024
val storyCaptionLength = 0 .. 2048
val textLength = 1 .. 4096
val userProfilePhotosRequestLimit = 0 .. 100
val userProfilePhotosRequestLimit = 1 .. 100
val userProfileAudiosRequestLimit = 1 .. 100
val chatTitleLength = 1 until 255
val threadNameLength = 1 until 128
val chatDescriptionLength = 0 until 256
@@ -79,6 +80,7 @@ val livePeriodLimit = 60 .. LiveLocation.INDEFINITE_LIVE_PERIOD
val inlineQueryAnswerResultsLimit = 0 .. 50
val customTitleLength = 0 .. 16
val memberTagLength = 0 .. 16
val dartsCubeAndBowlingDiceResultLimit = 1 .. 6
val basketballAndFootballDiceResultLimit = 1 .. 5
@@ -174,6 +176,7 @@ const val languageCodeField = "language_code"
const val addedToAttachmentMenuField = "added_to_attachment_menu"
const val allowsWriteToPMField = "allows_write_to_pm"
const val isPremiumField = "is_premium"
const val isBurnedField = "is_burned"
const val hasPrivateForwardsField = "has_private_forwards"
const val hasRestrictedVoiceAndVideoMessagesField = "has_restricted_voice_and_video_messages"
const val emojiStatusCustomEmojiIdField = "emoji_status_custom_emoji_id"
@@ -270,10 +273,12 @@ const val correctOptionIdField = "correct_option_id"
const val allowsMultipleAnswersField = "allows_multiple_answers"
const val isAnonymousField = "is_anonymous"
const val canManageTopicsField = "can_manage_topics"
const val canEditTagField = "can_edit_tag"
const val canPostStoriesField = "can_post_stories"
const val canEditStoriesField = "can_edit_stories"
const val canDeleteStoriesField = "can_delete_stories"
const val canManageDirectMessagesField = "can_manage_direct_messages"
const val canManageTagsField = "can_manage_tags"
const val captionEntitiesField = "caption_entities"
const val hasSpoilerField = "has_spoiler"
const val showCaptionAboveMediaField = "show_caption_above_media"
@@ -329,6 +334,8 @@ const val checklistMessageField = "checklist_message"
const val markedAsDoneTaskIdsField = "marked_as_done_task_ids"
const val markedAsNotDoneTaskIdsField = "marked_as_not_done_task_ids"
const val styleField = "style"
const val requestContactField = "request_contact"
const val requestLocationField = "request_location"
const val requestPollField = "request_poll"
@@ -362,6 +369,7 @@ const val fileIdField = "file_id"
const val fileSizeField = "file_size"
const val fileDateField = "file_date"
const val filePathField = "file_path"
const val qualitiesField = "qualities"
const val requestWriteAccessField = "request_write_access"
@@ -483,6 +491,8 @@ const val headingField = "heading"
const val fromField = "from"
const val userChatIdField = "user_chat_id"
const val userField = "user"
const val tagField = "tag"
const val newOwnerField = "new_owner"
const val dateField = "date"
const val reactionsField = "reactions"
const val reactionField = "reaction"
@@ -533,6 +543,7 @@ const val subscriptionPeriodField = "subscription_period"
const val subscriptionPriceField = "subscription_price"
const val copyTextField = "copy_text"
const val topicIdField = "topic_id"
const val draftIdField = "draft_id"
const val isPublicField = "is_public"
@@ -540,6 +551,7 @@ const val giftField = "gift"
const val giftUpgradeSentField = "gift_upgrade_sent"
const val giftsField = "gifts"
const val rarityPerMilleField = "rarity_per_mille"
const val rarityField = "rarity"
const val acceptedGiftTypesField = "accepted_gift_types"
const val ownedGiftIdField = "owned_gift_id"
const val convertStarCountField = "convert_star_count"
@@ -604,6 +616,7 @@ const val shippingOptionsField = "shipping_options"
const val countryCodeField = "country_code"
const val countryCodesField = "country_codes"
const val totalCountField = "total_count"
const val audiosField = "audios"
const val remainingCountField = "remaining_count"
const val stateField = "state"
const val cityField = "city"
@@ -655,7 +668,9 @@ const val mediaField = "media"
const val mainFrameTimestampField = "main_frame_timestamp"
const val firstProfileAudioField = "first_profile_audio"
const val paidMessageStarCountField = "paid_message_star_count"
const val senderTagField = "sender_tag"
const val countField = "count"
const val ratingField = "rating"
const val uniqueGiftColorsField = "unique_gift_colors"
@@ -746,11 +761,12 @@ const val paidMediaField = "paid_media"
const val publisherChatField = "publisher_chat"
const val personalTotalCountField = "personal_total_count"
const val personalRemainingCountField = "personal_remaining_count"
const val isPremiumField2 = "is_premium"
const val hasColorsField = "has_colors"
const val uniqueGiftVariantCountField = "unique_gift_variant_count"
const val uniqueGiftNumberField = "unique_gift_number"
const val isSavedField = "is_saved"
const val isUpgradeSeparateField = "is_upgrade_separate"
const val canBeTransferredField = "can_be_transferred"
const val isFromBlockchainField = "is_from_blockchain"
const val centerColorField = "center_color"
@@ -797,6 +813,7 @@ const val businessLocationField = "business_location"
const val businessOpeningHoursField = "business_opening_hours"
const val storyIdField = "story_id"
const val fromStoryIdField = "from_story_id"
const val showGiftButtonField = "show_gift_button"
const val colorField = "color"
@@ -837,3 +854,5 @@ const val isFlippedField = "is_flipped"
const val temperatureField = "temperature"
const val backgroundColorField = "background_color"
const val keepOriginalDetailsField = "keep_original_details"
const val codecField = "codec"

View File

@@ -0,0 +1,113 @@
package dev.inmo.tgbotapi.types
import kotlinx.serialization.Serializable
/**
* Common interface for parts of date time format. Used for [dev.inmo.tgbotapi.types.message.textsources.DateTimeTextSource]
*
* @see TgDateTimeFormatBuilder
* @see buildDateTimeFormat
*/
@Serializable
sealed interface DateTimeFormatPart {
/**
* Character that represents this part in the format string. Used by [TgDateTimeFormatBuilder.build]
*/
val controlCharacter: String
/**
* Represents relative time format (e.g. "2 hours ago"). Control character: "r"
*/
@Serializable
data object Relative : DateTimeFormatPart { override val controlCharacter: String get() = "r" }
/**
* Represents day of the week format (e.g. "Monday"). Control character: "w"
*/
@Serializable
data object WeekDay : DateTimeFormatPart { override val controlCharacter: String get() = "w" }
/**
* Group for date-related format parts
*/
@Serializable
sealed interface Date : DateTimeFormatPart {
/**
* Represents short date format (e.g. "01.01.2023"). Control character: "d"
*/
@Serializable
data object Short : Date { override val controlCharacter: String get() = "d" }
/**
* Represents long date format (e.g. "January 1, 2023"). Control character: "D"
*/
@Serializable
data object Long : Date { override val controlCharacter: String get() = "D" }
}
/**
* Group for time-related format parts
*/
@Serializable
sealed interface Time : DateTimeFormatPart {
/**
* Represents short time format (e.g. "12:00"). Control character: "t"
*/
@Serializable
data object Short : Time { override val controlCharacter: String get() = "t" }
/**
* Represents long time format (e.g. "12:00:00"). Control character: "T"
*/
@Serializable
data object Long : Time { override val controlCharacter: String get() = "T" }
}
}
/**
* Builder for date time format string. Use [buildDateTimeFormat] for convenience
*/
class TgDateTimeFormatBuilder {
private val parts = mutableSetOf<DateTimeFormatPart>()
/**
* Adds [DateTimeFormatPart.Relative] to the format
*/
fun relative() = apply { parts.add(DateTimeFormatPart.Relative) }
/**
* Adds [DateTimeFormatPart.WeekDay] to the format
*/
fun weekDay() = apply { parts.add(DateTimeFormatPart.WeekDay) }
/**
* Adds [DateTimeFormatPart.Date.Short] to the format. Removes any other [DateTimeFormatPart.Date] parts
*/
fun dateShort() = apply {
parts.removeAll { it is DateTimeFormatPart.Date }
parts.add(DateTimeFormatPart.Date.Short)
}
/**
* Adds [DateTimeFormatPart.Time.Short] to the format. Removes any other [DateTimeFormatPart.Time] parts
*/
fun timeShort() = apply {
parts.removeAll { it is DateTimeFormatPart.Time }
parts.add(DateTimeFormatPart.Time.Short)
}
/**
* Adds [DateTimeFormatPart.Date.Long] to the format. Removes any other [DateTimeFormatPart.Date] parts
*/
fun dateLong() = apply {
parts.removeAll { it is DateTimeFormatPart.Date }
parts.add(DateTimeFormatPart.Date.Long)
}
/**
* Adds [DateTimeFormatPart.Time.Long] to the format. Removes any other [DateTimeFormatPart.Time] parts
*/
fun timeLong() = apply {
parts.removeAll { it is DateTimeFormatPart.Time }
parts.add(DateTimeFormatPart.Time.Long)
}
/**
* Joins all added parts into a single format string
*/
fun build() = parts.joinToString("")
}
/**
* Convenient way to build date time format string
*/
fun buildDateTimeFormat(block: TgDateTimeFormatBuilder.() -> Unit): String = TgDateTimeFormatBuilder().apply(block).build()

View File

@@ -0,0 +1,18 @@
package dev.inmo.tgbotapi.types
import dev.inmo.kslog.common.w
import dev.inmo.tgbotapi.utils.DefaultKTgBotAPIKSLog
import kotlinx.serialization.Serializable
import kotlin.jvm.JvmInline
@Serializable
@JvmInline
value class DraftId(
val long: Long
) {
init {
if (long == 0L) {
DefaultKTgBotAPIKSLog.w("DraftId", "In DraftId has been passed 0. According to the documentation it must not be 0")
}
}
}

View File

@@ -1,11 +1,11 @@
package dev.inmo.tgbotapi.types
import dev.inmo.tgbotapi.types.gifts.GiftSentOrReceived
import dev.inmo.tgbotapi.types.gifts.OwnedGift
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
@Serializable
data class OwnedGifts<GiftType: GiftSentOrReceived>(
data class OwnedGifts<GiftType: OwnedGift>(
@SerialName(totalCountField)
val totalCount: Int,
@SerialName(giftsField)

View File

@@ -23,6 +23,10 @@ data class TelegramDate(
val asDate: DateTime = DateTime(
date * 1000
)
companion object {
val Start = TelegramDate(0)
}
}
fun DateTime.toTelegramDate(): TelegramDate = TelegramDate(this)

View File

@@ -9,6 +9,7 @@ const val UPDATE_INLINE_QUERY = "inline_query"
const val UPDATE_CALLBACK_QUERY = "callback_query"
const val UPDATE_SHIPPING_QUERY = "shipping_query"
const val UPDATE_PRE_CHECKOUT_QUERY = "pre_checkout_query"
const val UPDATE_PURCHASED_PAID_MEDIA = "purchased_paid_media"
const val UPDATE_POLL = "poll"
const val UPDATE_POLL_ANSWER = "poll_answer"
const val UPDATE_MY_CHAT_MEMBER = "my_chat_member"
@@ -26,24 +27,36 @@ const val UPDATE_DELETED_BUSINESS_MESSAGES = "deleted_business_messages"
val ALL_UPDATES_LIST_WITHOUT_REACTIONS = listOf(
UPDATE_MESSAGE,
UPDATE_EDITED_MESSAGE,
UPDATE_CHANNEL_POST,
UPDATE_EDITED_CHANNEL_POST,
UPDATE_BUSINESS_CONNECTION,
UPDATE_BUSINESS_MESSAGE,
UPDATE_EDITED_BUSINESS_MESSAGE,
UPDATE_DELETED_BUSINESS_MESSAGES,
UPDATE_INLINE_QUERY,
UPDATE_CHOSEN_INLINE_RESULT,
UPDATE_CALLBACK_QUERY,
UPDATE_SHIPPING_QUERY,
UPDATE_PRE_CHECKOUT_QUERY,
UPDATE_PURCHASED_PAID_MEDIA,
UPDATE_POLL,
UPDATE_POLL_ANSWER,
UPDATE_MY_CHAT_MEMBER,
UPDATE_CHAT_MEMBER,
UPDATE_CHAT_JOIN_REQUEST,
UPDATE_CHAT_BOOST,
UPDATE_REMOVE_CHAT_BOOST,
UPDATE_BUSINESS_CONNECTION,
UPDATE_BUSINESS_MESSAGE,
UPDATE_EDITED_BUSINESS_MESSAGE,
UPDATE_DELETED_BUSINESS_MESSAGES
)
val ALL_UPDATES_LIST = ALL_UPDATES_LIST_WITHOUT_REACTIONS + listOf(

View File

@@ -0,0 +1,13 @@
package dev.inmo.tgbotapi.types
import dev.inmo.tgbotapi.types.files.AudioFile
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
@Serializable
data class UserProfileAudios(
@SerialName(totalCountField)
val totalCount: Int,
@SerialName(audiosField)
val audios: List<AudioFile>
)

View File

@@ -0,0 +1,16 @@
package dev.inmo.tgbotapi.types
import dev.inmo.kslog.common.w
import dev.inmo.tgbotapi.utils.DefaultKTgBotAPIKSLog
import kotlinx.serialization.Serializable
import kotlin.jvm.JvmInline
@Serializable
@JvmInline
value class UserTag(val string: String) {
init {
if (string.length !in memberTagLength) {
DefaultKTgBotAPIKSLog.w("UserTag", "Tag length must be in range $memberTagLength, but was ${string.length} ($string)")
}
}
}

View File

@@ -0,0 +1,5 @@
package dev.inmo.tgbotapi.types.abstracts
interface WithOptionalPaidMessageStarCount {
val paidMessageStarCount: Int?
}

View File

@@ -5,6 +5,7 @@ package dev.inmo.tgbotapi.types.buttons.InlineKeyboardButtons
import dev.inmo.tgbotapi.utils.internal.ClassCastsIncluded
import dev.inmo.tgbotapi.types.*
import dev.inmo.tgbotapi.types.buttons.KeyboardButtonStyle
import dev.inmo.tgbotapi.types.games.CallbackGame
import dev.inmo.tgbotapi.types.webapps.WebAppInfo
import kotlinx.serialization.*
@@ -18,6 +19,9 @@ import kotlinx.serialization.json.*
@ClassCastsIncluded
sealed interface InlineKeyboardButton {
val text: String
val style: KeyboardButtonStyle?
val iconCustomEmojiId: CustomEmojiId?
}
@Serializable
@@ -28,6 +32,10 @@ data class UnknownInlineKeyboardButton (
get() = runCatching {
rawData.jsonObject[textField] ?.jsonPrimitive ?.content
}.getOrNull() ?: ""
override val style: KeyboardButtonStyle?
get() = null
override val iconCustomEmojiId: CustomEmojiId?
get() = null
}
/**
@@ -36,7 +44,11 @@ data class UnknownInlineKeyboardButton (
*/
@Serializable
data class PayInlineKeyboardButton(
override val text: String
override val text: String,
@SerialName(iconCustomEmojiIdField)
override val iconCustomEmojiId: CustomEmojiId? = null,
@SerialName(styleField)
override val style: KeyboardButtonStyle? = null
) : InlineKeyboardButton {
@ExperimentalSerializationApi
@EncodeDefault
@@ -58,7 +70,11 @@ data class CallbackDataInlineKeyboardButton(
* You will receive this data in [dev.inmo.tgbotapi.types.queries.callback.DataCallbackQuery.data] field
*/
@SerialName(callbackDataField)
val callbackData: String
val callbackData: String,
@SerialName(iconCustomEmojiIdField)
override val iconCustomEmojiId: CustomEmojiId? = null,
@SerialName(styleField)
override val style: KeyboardButtonStyle? = null
) : InlineKeyboardButton
/**
@@ -67,7 +83,11 @@ data class CallbackDataInlineKeyboardButton(
@Serializable
data class CallbackGameInlineKeyboardButton(
@SerialName(textField)
override val text: String
override val text: String,
@SerialName(iconCustomEmojiIdField)
override val iconCustomEmojiId: CustomEmojiId? = null,
@SerialName(styleField)
override val style: KeyboardButtonStyle? = null
) : InlineKeyboardButton {
@SerialName(callbackGameField)
@EncodeDefault
@@ -81,7 +101,11 @@ data class CallbackGameInlineKeyboardButton(
data class LoginURLInlineKeyboardButton(
override val text: String,
@SerialName(loginUrlField)
val loginUrl: LoginURL
val loginUrl: LoginURL,
@SerialName(iconCustomEmojiIdField)
override val iconCustomEmojiId: CustomEmojiId? = null,
@SerialName(styleField)
override val style: KeyboardButtonStyle? = null
) : InlineKeyboardButton
/**
@@ -98,7 +122,11 @@ data class LoginURLInlineKeyboardButton(
data class SwitchInlineQueryCurrentChatInlineKeyboardButton(
override val text: String,
@SerialName(switchInlineQueryCurrentChatField)
val switchInlineQueryCurrentChat: String
val switchInlineQueryCurrentChat: String,
@SerialName(iconCustomEmojiIdField)
override val iconCustomEmojiId: CustomEmojiId? = null,
@SerialName(styleField)
override val style: KeyboardButtonStyle? = null
) : InlineKeyboardButton
/**
@@ -115,7 +143,11 @@ data class SwitchInlineQueryCurrentChatInlineKeyboardButton(
data class SwitchInlineQueryChosenChatInlineKeyboardButton(
override val text: String,
@SerialName(switchInlineQueryChosenChatField)
val parameters: SwitchInlineQueryChosenChat
val parameters: SwitchInlineQueryChosenChat,
@SerialName(iconCustomEmojiIdField)
override val iconCustomEmojiId: CustomEmojiId? = null,
@SerialName(styleField)
override val style: KeyboardButtonStyle? = null
) : InlineKeyboardButton
/**
@@ -131,7 +163,11 @@ data class SwitchInlineQueryChosenChatInlineKeyboardButton(
data class SwitchInlineQueryInlineKeyboardButton(
override val text: String,
@SerialName(switchInlineQueryField)
val switchInlineQuery: String
val switchInlineQuery: String,
@SerialName(iconCustomEmojiIdField)
override val iconCustomEmojiId: CustomEmojiId? = null,
@SerialName(styleField)
override val style: KeyboardButtonStyle? = null
) : InlineKeyboardButton
/**
@@ -141,7 +177,11 @@ data class SwitchInlineQueryInlineKeyboardButton(
data class URLInlineKeyboardButton(
override val text: String,
@SerialName(urlField)
val url: String
val url: String,
@SerialName(iconCustomEmojiIdField)
override val iconCustomEmojiId: CustomEmojiId? = null,
@SerialName(styleField)
override val style: KeyboardButtonStyle? = null
) : InlineKeyboardButton
/**
@@ -151,7 +191,11 @@ data class URLInlineKeyboardButton(
data class CopyTextButton(
override val text: String,
@SerialName(copyTextField)
val data: CopyTextButtonData
val data: CopyTextButtonData,
@SerialName(iconCustomEmojiIdField)
override val iconCustomEmojiId: CustomEmojiId? = null,
@SerialName(styleField)
override val style: KeyboardButtonStyle? = null
) : InlineKeyboardButton
/**
@@ -162,5 +206,9 @@ data class CopyTextButton(
data class WebAppInlineKeyboardButton(
override val text: String,
@SerialName(webAppField)
val webApp: WebAppInfo
val webApp: WebAppInfo,
@SerialName(iconCustomEmojiIdField)
override val iconCustomEmojiId: CustomEmojiId? = null,
@SerialName(styleField)
override val style: KeyboardButtonStyle? = null
) : InlineKeyboardButton

View File

@@ -19,6 +19,9 @@ import kotlinx.serialization.json.*
@Serializable(KeyboardButtonSerializer::class)
sealed interface KeyboardButton {
val text: String
val style: KeyboardButtonStyle?
val iconCustomEmojiId: CustomEmojiId?
}
/**
@@ -30,7 +33,11 @@ sealed interface KeyboardButton {
*/
@Serializable
data class SimpleKeyboardButton(
override val text: String
override val text: String,
@SerialName(iconCustomEmojiIdField)
override val iconCustomEmojiId: CustomEmojiId? = null,
@SerialName(styleField)
override val style: KeyboardButtonStyle? = null
) : KeyboardButton
@ConsistentCopyVisibility
@@ -38,7 +45,12 @@ data class SimpleKeyboardButton(
data class UnknownKeyboardButton internal constructor(
override val text: String,
val raw: String
) : KeyboardButton
) : KeyboardButton {
override val style: KeyboardButtonStyle?
get() = null
override val iconCustomEmojiId: CustomEmojiId?
get() = null
}
/**
* Private chats only. When user will tap on this button, his contact (with his number and name) will be sent to the bot. You will be able
@@ -49,7 +61,11 @@ data class UnknownKeyboardButton internal constructor(
*/
@Serializable
data class RequestContactKeyboardButton(
override val text: String
override val text: String,
@SerialName(iconCustomEmojiIdField)
override val iconCustomEmojiId: CustomEmojiId? = null,
@SerialName(styleField)
override val style: KeyboardButtonStyle? = null
) : KeyboardButton {
@SerialName(requestContactField)
@EncodeDefault
@@ -65,7 +81,11 @@ data class RequestContactKeyboardButton(
*/
@Serializable
data class RequestLocationKeyboardButton(
override val text: String
override val text: String,
@SerialName(iconCustomEmojiIdField)
override val iconCustomEmojiId: CustomEmojiId? = null,
@SerialName(styleField)
override val style: KeyboardButtonStyle? = null
) : KeyboardButton {
@SerialName(requestLocationField)
@Required
@@ -82,7 +102,11 @@ data class RequestLocationKeyboardButton(
data class WebAppKeyboardButton(
override val text: String,
@SerialName(webAppField)
val webApp: WebAppInfo
val webApp: WebAppInfo,
@SerialName(iconCustomEmojiIdField)
override val iconCustomEmojiId: CustomEmojiId? = null,
@SerialName(styleField)
override val style: KeyboardButtonStyle? = null
) : KeyboardButton
/**
@@ -96,7 +120,11 @@ data class WebAppKeyboardButton(
data class RequestPollKeyboardButton(
override val text: String,
@SerialName(requestPollField)
val requestPoll: KeyboardButtonPollType
val requestPoll: KeyboardButtonPollType,
@SerialName(iconCustomEmojiIdField)
override val iconCustomEmojiId: CustomEmojiId? = null,
@SerialName(styleField)
override val style: KeyboardButtonStyle? = null
) : KeyboardButton
/**
@@ -114,7 +142,11 @@ data class RequestPollKeyboardButton(
data class RequestUserKeyboardButton(
override val text: String,
@SerialName(requestUsersField)
val requestUsers: KeyboardButtonRequestUsers
val requestUsers: KeyboardButtonRequestUsers,
@SerialName(iconCustomEmojiIdField)
override val iconCustomEmojiId: CustomEmojiId? = null,
@SerialName(styleField)
override val style: KeyboardButtonStyle? = null
) : KeyboardButton
/**
@@ -132,7 +164,11 @@ data class RequestUserKeyboardButton(
data class RequestChatKeyboardButton(
override val text: String,
@SerialName(requestChatField)
val requestChat: KeyboardButtonRequestChat
val requestChat: KeyboardButtonRequestChat,
@SerialName(iconCustomEmojiIdField)
override val iconCustomEmojiId: CustomEmojiId? = null,
@SerialName(styleField)
override val style: KeyboardButtonStyle? = null
) : KeyboardButton
@RiskFeature
@@ -142,42 +178,73 @@ object KeyboardButtonSerializer : KSerializer<KeyboardButton> {
override fun deserialize(decoder: Decoder): KeyboardButton {
val asJson = internalSerializer.deserialize(decoder)
val styleData: KeyboardButtonStyle? by lazy {
(asJson as? JsonObject)
?.get(styleField)
?.jsonPrimitive
?.let { nonstrictJsonFormat.decodeFromJsonElement(KeyboardButtonStyle.serializer(), it) }
}
val iconCustomEmojiIdData: CustomEmojiId? by lazy {
(asJson as? JsonObject)
?.get(iconCustomEmojiIdField)
?.jsonPrimitive
?.let { nonstrictJsonFormat.decodeFromJsonElement(CustomEmojiId.serializer(), it) }
}
return when {
asJson is JsonPrimitive -> SimpleKeyboardButton(asJson.content)
asJson is JsonPrimitive -> SimpleKeyboardButton(
asJson.content
)
asJson is JsonObject && asJson[requestContactField] != null -> RequestContactKeyboardButton(
asJson[textField]!!.jsonPrimitive.content
asJson[textField]!!.jsonPrimitive.content,
iconCustomEmojiIdData,
styleData
)
asJson is JsonObject && asJson[requestLocationField] != null -> RequestLocationKeyboardButton(
asJson[textField]!!.jsonPrimitive.content
asJson[textField]!!.jsonPrimitive.content,
iconCustomEmojiIdData,
styleData
)
asJson is JsonObject && asJson[webAppField] != null -> WebAppKeyboardButton(
asJson[textField]!!.jsonPrimitive.content,
nonstrictJsonFormat.decodeFromJsonElement(
WebAppInfo.serializer(),
asJson[webAppField]!!
)
),
iconCustomEmojiIdData,
styleData
)
asJson is JsonObject && asJson[requestPollField] != null -> RequestPollKeyboardButton(
asJson[textField]!!.jsonPrimitive.content,
nonstrictJsonFormat.decodeFromJsonElement(
KeyboardButtonPollTypeSerializer,
asJson[requestPollField] ?.jsonObject ?: buildJsonObject { }
)
),
iconCustomEmojiIdData,
styleData
)
asJson is JsonObject && asJson[requestUsersField] != null -> RequestUserKeyboardButton(
asJson[textField]!!.jsonPrimitive.content,
nonstrictJsonFormat.decodeFromJsonElement(
KeyboardButtonRequestUsers.serializer(),
asJson[requestUsersField] ?.jsonObject ?: buildJsonObject { }
)
),
iconCustomEmojiIdData,
styleData
)
asJson is JsonObject && asJson[requestChatField] != null -> RequestChatKeyboardButton(
asJson[textField]!!.jsonPrimitive.content,
nonstrictJsonFormat.decodeFromJsonElement(
KeyboardButtonRequestChat.serializer(),
asJson[requestChatField] ?.jsonObject ?: buildJsonObject { }
)
),
iconCustomEmojiIdData,
styleData
)
asJson is JsonObject && asJson[textField] != null -> SimpleKeyboardButton(
asJson[textField]!!.jsonPrimitive.content,
iconCustomEmojiIdData,
styleData
)
else -> UnknownKeyboardButton(
when (asJson) {
@@ -196,7 +263,11 @@ object KeyboardButtonSerializer : KSerializer<KeyboardButton> {
is RequestLocationKeyboardButton -> RequestLocationKeyboardButton.serializer().serialize(encoder, value)
is WebAppKeyboardButton -> WebAppKeyboardButton.serializer().serialize(encoder, value)
is RequestPollKeyboardButton -> RequestPollKeyboardButton.serializer().serialize(encoder, value)
is SimpleKeyboardButton -> encoder.encodeString(value.text)
is SimpleKeyboardButton -> if (value.iconCustomEmojiId != null || value.style != null) {
SimpleKeyboardButton.serializer().serialize(encoder, value)
} else {
encoder.encodeString(value.text)
}
is RequestUserKeyboardButton -> RequestUserKeyboardButton.serializer().serialize(encoder, value)
is RequestChatKeyboardButton -> RequestChatKeyboardButton.serializer().serialize(encoder, value)
is UnknownKeyboardButton -> JsonElement.serializer().serialize(encoder, nonstrictJsonFormat.parseToJsonElement(value.raw))

View File

@@ -0,0 +1,51 @@
package dev.inmo.tgbotapi.types.buttons
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(KeyboardButtonStyle.Serializer::class)
sealed interface KeyboardButtonStyle {
val name: String
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@Serializable(KeyboardButtonStyle.Serializer::class)
data object Danger : KeyboardButtonStyle { override val name: String = "danger" }
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@Serializable(KeyboardButtonStyle.Serializer::class)
data object Success : KeyboardButtonStyle { override val name: String = "success" }
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@Serializable(KeyboardButtonStyle.Serializer::class)
data object Primary : KeyboardButtonStyle { override val name: String = "primary" }
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@Serializable(KeyboardButtonStyle.Serializer::class)
data class Custom(override val name: String = "primary") : KeyboardButtonStyle
object Serializer : KSerializer<KeyboardButtonStyle> {
override val descriptor: SerialDescriptor
get() = String.serializer().descriptor
override fun serialize(
encoder: Encoder,
value: KeyboardButtonStyle
) {
encoder.encodeString(value.name)
}
override fun deserialize(decoder: Decoder): KeyboardButtonStyle {
return when (val rawValue = decoder.decodeString()) {
Danger.name -> Danger
Success.name -> Success
Primary.name -> Primary
else -> Custom(rawValue)
}
}
}
}

View File

@@ -2,7 +2,8 @@
package dev.inmo.tgbotapi.types.buttons.inline
import dev.inmo.tgbotapi.types.LoginURL
import dev.inmo.tgbotapi.types.*
import dev.inmo.tgbotapi.types.buttons.KeyboardButtonStyle
import dev.inmo.tgbotapi.types.buttons.InlineKeyboardButtons.*
import dev.inmo.tgbotapi.types.webapps.WebAppInfo
@@ -10,63 +11,79 @@ import dev.inmo.tgbotapi.types.webapps.WebAppInfo
* Creates [PayInlineKeyboardButton]
*/
fun payInlineButton(
text: String
) = PayInlineKeyboardButton(text)
text: String,
iconCustomEmojiId: CustomEmojiId? = null,
style: KeyboardButtonStyle? = null
) = PayInlineKeyboardButton(text, iconCustomEmojiId, style)
/**
* Creates [CallbackDataInlineKeyboardButton]
*/
fun dataInlineButton(
text: String,
data: String
) = CallbackDataInlineKeyboardButton(text, data)
data: String,
iconCustomEmojiId: CustomEmojiId? = null,
style: KeyboardButtonStyle? = null
) = CallbackDataInlineKeyboardButton(text, data, iconCustomEmojiId, style)
/**
* Creates [CallbackGameInlineKeyboardButton]
*/
fun gameInlineButton(
text: String
) = CallbackGameInlineKeyboardButton(text)
text: String,
iconCustomEmojiId: CustomEmojiId? = null,
style: KeyboardButtonStyle? = null
) = CallbackGameInlineKeyboardButton(text, iconCustomEmojiId, style)
/**
* Creates [LoginURLInlineKeyboardButton]
*/
fun loginInlineButton(
text: String,
loginUrl: LoginURL
) = LoginURLInlineKeyboardButton(text, loginUrl)
loginUrl: LoginURL,
iconCustomEmojiId: CustomEmojiId? = null,
style: KeyboardButtonStyle? = null
) = LoginURLInlineKeyboardButton(text, loginUrl, iconCustomEmojiId, style)
/**
* Creates [CopyTextButton]
*/
fun copyTextButton(
text: String,
data: CopyTextButtonData
) = CopyTextButton(text, data)
data: CopyTextButtonData,
iconCustomEmojiId: CustomEmojiId? = null,
style: KeyboardButtonStyle? = null
) = CopyTextButton(text, data, iconCustomEmojiId, style)
/**
* Creates [CopyTextButton]
*/
fun copyTextButton(
text: String,
data: String
) = copyTextButton(text, CopyTextButtonData(data))
data: String,
iconCustomEmojiId: CustomEmojiId? = null,
style: KeyboardButtonStyle? = null
) = copyTextButton(text, CopyTextButtonData(data), iconCustomEmojiId, style)
/**
* Creates [SwitchInlineQueryCurrentChatInlineKeyboardButton]
*/
fun inlineQueryInCurrentChatInlineButton(
text: String,
data: String
) = SwitchInlineQueryCurrentChatInlineKeyboardButton(text, data)
data: String,
iconCustomEmojiId: CustomEmojiId? = null,
style: KeyboardButtonStyle? = null
) = SwitchInlineQueryCurrentChatInlineKeyboardButton(text, data, iconCustomEmojiId, style)
/**
* Creates [SwitchInlineQueryChosenChatInlineKeyboardButton]
*/
fun inlineQueryInCurrentChatInlineButton(
text: String,
parameters: SwitchInlineQueryChosenChat
) = SwitchInlineQueryChosenChatInlineKeyboardButton(text, parameters)
parameters: SwitchInlineQueryChosenChat,
iconCustomEmojiId: CustomEmojiId? = null,
style: KeyboardButtonStyle? = null
) = SwitchInlineQueryChosenChatInlineKeyboardButton(text, parameters, iconCustomEmojiId, style)
/**
* Creates [SwitchInlineQueryChosenChatInlineKeyboardButton]
@@ -78,6 +95,8 @@ fun inlineQueryInCurrentChatInlineButton(
allowBots: Boolean = false,
allowGroups: Boolean = false,
allowChannels: Boolean = false,
iconCustomEmojiId: CustomEmojiId? = null,
style: KeyboardButtonStyle? = null
) = inlineQueryInCurrentChatInlineButton(
text,
SwitchInlineQueryChosenChat(
@@ -86,7 +105,9 @@ fun inlineQueryInCurrentChatInlineButton(
allowBots = allowBots,
allowGroups = allowGroups,
allowChannels = allowChannels
)
),
iconCustomEmojiId,
style
)
/**
@@ -95,36 +116,46 @@ fun inlineQueryInCurrentChatInlineButton(
fun inlineQueryInAnyCurrentChatInlineButton(
text: String,
query: String? = null,
) = inlineQueryInCurrentChatInlineButton(text, query, allowUsers = true, allowBots = true, allowGroups = true, allowChannels = true)
iconCustomEmojiId: CustomEmojiId? = null,
style: KeyboardButtonStyle? = null
) = inlineQueryInCurrentChatInlineButton(text, query, allowUsers = true, allowBots = true, allowGroups = true, allowChannels = true, iconCustomEmojiId = iconCustomEmojiId, style = style)
/**
* Creates [SwitchInlineQueryInlineKeyboardButton]
*/
fun inlineQueryInlineButton(
text: String,
data: String
) = SwitchInlineQueryInlineKeyboardButton(text, data)
data: String,
iconCustomEmojiId: CustomEmojiId? = null,
style: KeyboardButtonStyle? = null
) = SwitchInlineQueryInlineKeyboardButton(text, data, iconCustomEmojiId, style)
/**
* Creates [URLInlineKeyboardButton]
*/
fun urlInlineButton(
text: String,
url: String
) = URLInlineKeyboardButton(text, url)
url: String,
iconCustomEmojiId: CustomEmojiId? = null,
style: KeyboardButtonStyle? = null
) = URLInlineKeyboardButton(text, url, iconCustomEmojiId, style)
/**
* Creates [WebAppInlineKeyboardButton]. Please, remember that this button is available in private chats only
*/
fun webAppInlineButton(
text: String,
webApp: WebAppInfo
) = WebAppInlineKeyboardButton(text, webApp)
webApp: WebAppInfo,
iconCustomEmojiId: CustomEmojiId? = null,
style: KeyboardButtonStyle? = null
) = WebAppInlineKeyboardButton(text, webApp, iconCustomEmojiId, style)
/**
* Creates [WebAppInlineKeyboardButton]. Please, remember that this button is available in private chats only
*/
fun webAppInlineButton(
text: String,
url: String
) = webAppInlineButton(text, WebAppInfo(url))
url: String,
iconCustomEmojiId: CustomEmojiId? = null,
style: KeyboardButtonStyle? = null
) = webAppInlineButton(text, WebAppInfo(url), iconCustomEmojiId, style)

View File

@@ -2,6 +2,7 @@
package dev.inmo.tgbotapi.types.buttons.reply
import dev.inmo.tgbotapi.types.*
import dev.inmo.tgbotapi.types.buttons.*
import dev.inmo.tgbotapi.types.chat.member.ChatCommonAdministratorRights
import dev.inmo.tgbotapi.types.keyboardButtonRequestUserLimit
@@ -13,46 +14,58 @@ import dev.inmo.tgbotapi.types.webapps.WebAppInfo
* Creates [SimpleKeyboardButton]
*/
fun simpleReplyButton(
text: String
) = SimpleKeyboardButton(text)
text: String,
iconCustomEmojiId: CustomEmojiId? = null,
style: KeyboardButtonStyle? = null
) = SimpleKeyboardButton(text, iconCustomEmojiId, style)
/**
* Creates [RequestContactKeyboardButton]
*/
fun requestContactReplyButton(
text: String
) = RequestContactKeyboardButton(text)
text: String,
iconCustomEmojiId: CustomEmojiId? = null,
style: KeyboardButtonStyle? = null
) = RequestContactKeyboardButton(text, iconCustomEmojiId, style)
/**
* Creates [RequestLocationKeyboardButton]
*/
fun requestLocationReplyButton(
text: String
) = RequestLocationKeyboardButton(text)
text: String,
iconCustomEmojiId: CustomEmojiId? = null,
style: KeyboardButtonStyle? = null
) = RequestLocationKeyboardButton(text, iconCustomEmojiId, style)
/**
* Creates [RequestPollKeyboardButton]
*/
fun requestPollReplyButton(
text: String,
pollType: KeyboardButtonPollType
) = RequestPollKeyboardButton(text, pollType)
pollType: KeyboardButtonPollType,
iconCustomEmojiId: CustomEmojiId? = null,
style: KeyboardButtonStyle? = null
) = RequestPollKeyboardButton(text, pollType, iconCustomEmojiId, style)
/**
* Creates [WebAppKeyboardButton]
*/
fun webAppReplyButton(
text: String,
webApp: WebAppInfo
) = WebAppKeyboardButton(text, webApp)
webApp: WebAppInfo,
iconCustomEmojiId: CustomEmojiId? = null,
style: KeyboardButtonStyle? = null
) = WebAppKeyboardButton(text, webApp, iconCustomEmojiId, style)
/**
* Creates [WebAppKeyboardButton]
*/
fun webAppReplyButton(
text: String,
url: String
) = webAppReplyButton(text, WebAppInfo(url))
url: String,
iconCustomEmojiId: CustomEmojiId? = null,
style: KeyboardButtonStyle? = null
) = webAppReplyButton(text, WebAppInfo(url), iconCustomEmojiId, style)
/**
@@ -60,10 +73,14 @@ fun webAppReplyButton(
*/
fun requestUsersReplyButton(
text: String,
requestUser: KeyboardButtonRequestUsers
requestUser: KeyboardButtonRequestUsers,
iconCustomEmojiId: CustomEmojiId? = null,
style: KeyboardButtonStyle? = null
) = RequestUserKeyboardButton(
text,
requestUser
requestUser,
iconCustomEmojiId,
style
)
/**
@@ -76,6 +93,8 @@ fun requestBotsReplyButton(
requestName: Boolean? = null,
requestUsername: Boolean? = null,
requestPhoto: Boolean? = null,
iconCustomEmojiId: CustomEmojiId? = null,
style: KeyboardButtonStyle? = null
) = requestUsersReplyButton(
text,
KeyboardButtonRequestUsers.Bot(
@@ -84,7 +103,9 @@ fun requestBotsReplyButton(
requestName = requestName,
requestUsername = requestUsername,
requestPhoto = requestPhoto
)
),
iconCustomEmojiId,
style
)
/**
@@ -98,6 +119,8 @@ fun requestUsersReplyButton(
requestName: Boolean? = null,
requestUsername: Boolean? = null,
requestPhoto: Boolean? = null,
iconCustomEmojiId: CustomEmojiId? = null,
style: KeyboardButtonStyle? = null
) = requestUsersReplyButton(
text,
KeyboardButtonRequestUsers.Common(
@@ -107,7 +130,9 @@ fun requestUsersReplyButton(
requestName = requestName,
requestUsername = requestUsername,
requestPhoto = requestPhoto
)
),
iconCustomEmojiId,
style
)
/**
@@ -121,6 +146,8 @@ fun requestUserReplyButton(
requestName: Boolean? = null,
requestUsername: Boolean? = null,
requestPhoto: Boolean? = null,
iconCustomEmojiId: CustomEmojiId? = null,
style: KeyboardButtonStyle? = null
) = requestUsersReplyButton(
text,
requestId,
@@ -128,7 +155,9 @@ fun requestUserReplyButton(
maxCount,
requestName = requestName,
requestUsername = requestUsername,
requestPhoto = requestPhoto
requestPhoto = requestPhoto,
iconCustomEmojiId = iconCustomEmojiId,
style = style
)
/**
@@ -142,6 +171,8 @@ fun requestUsersOrBotsReplyButton(
requestName: Boolean? = null,
requestUsername: Boolean? = null,
requestPhoto: Boolean? = null,
iconCustomEmojiId: CustomEmojiId? = null,
style: KeyboardButtonStyle? = null
) = requestUsersReplyButton(
text,
KeyboardButtonRequestUsers.Any(
@@ -151,7 +182,9 @@ fun requestUsersOrBotsReplyButton(
requestName = requestName,
requestUsername = requestUsername,
requestPhoto = requestPhoto
)
),
iconCustomEmojiId,
style
)
/**
@@ -163,6 +196,8 @@ fun requestUserOrBotReplyButton(
requestName: Boolean? = null,
requestUsername: Boolean? = null,
requestPhoto: Boolean? = null,
iconCustomEmojiId: CustomEmojiId? = null,
style: KeyboardButtonStyle? = null
) = requestUsersReplyButton(
text,
KeyboardButtonRequestUsers.Any(
@@ -170,7 +205,9 @@ fun requestUserOrBotReplyButton(
requestName = requestName,
requestUsername = requestUsername,
requestPhoto = requestPhoto
)
),
iconCustomEmojiId,
style
)
@@ -179,10 +216,14 @@ fun requestUserOrBotReplyButton(
*/
fun requestChatReplyButton(
text: String,
requestChat: KeyboardButtonRequestChat
requestChat: KeyboardButtonRequestChat,
iconCustomEmojiId: CustomEmojiId? = null,
style: KeyboardButtonStyle? = null
) = RequestChatKeyboardButton(
text,
requestChat
requestChat,
iconCustomEmojiId,
style
)
/**
@@ -201,6 +242,8 @@ fun requestChatReplyButton(
requestTitle: Boolean? = null,
requestUsername: Boolean? = null,
requestPhoto: Boolean? = null,
iconCustomEmojiId: CustomEmojiId? = null,
style: KeyboardButtonStyle? = null
) = requestChatReplyButton(
text,
KeyboardButtonRequestChat(
@@ -215,7 +258,9 @@ fun requestChatReplyButton(
requestTitle = requestTitle,
requestUsername = requestUsername,
requestPhoto = requestPhoto,
)
),
iconCustomEmojiId,
style
)
/**
@@ -232,6 +277,8 @@ fun requestChannelReplyButton(
requestTitle: Boolean? = null,
requestUsername: Boolean? = null,
requestPhoto: Boolean? = null,
iconCustomEmojiId: CustomEmojiId? = null,
style: KeyboardButtonStyle? = null
) = requestChatReplyButton(
text,
KeyboardButtonRequestChat.Channel(
@@ -244,7 +291,9 @@ fun requestChannelReplyButton(
requestTitle = requestTitle,
requestUsername = requestUsername,
requestPhoto = requestPhoto,
)
),
iconCustomEmojiId,
style
)
@@ -263,6 +312,8 @@ fun requestChannelReplyButton(
requestTitle: Boolean? = null,
requestUsername: Boolean? = null,
requestPhoto: Boolean? = null,
iconCustomEmojiId: CustomEmojiId? = null,
style: KeyboardButtonStyle? = null
) = requestChatReplyButton(
text,
KeyboardButtonRequestChat.Group(
@@ -276,5 +327,7 @@ fun requestChannelReplyButton(
requestTitle = requestTitle,
requestUsername = requestUsername,
requestPhoto = requestPhoto,
)
),
iconCustomEmojiId,
style
)

View File

@@ -33,6 +33,7 @@ interface ChatPermissions {
val canChangeInfo: Boolean?
val canInviteUsers: Boolean?
val canPinMessages: Boolean?
val canEditTag: Boolean?
@Transient
val isGranular
get() = canSendAudios != null ||
@@ -73,7 +74,9 @@ interface ChatPermissions {
@SerialName(canInviteUsersField)
override val canInviteUsers: Boolean? = null,
@SerialName(canPinMessagesField)
override val canPinMessages: Boolean? = null
override val canPinMessages: Boolean? = null,
@SerialName(canEditTagField)
override val canEditTag: Boolean = false,
) : ChatPermissions {
@Transient
override val isGranular: Boolean
@@ -93,7 +96,9 @@ interface ChatPermissions {
@SerialName(canInviteUsersField)
override val canInviteUsers: Boolean? = null,
@SerialName(canPinMessagesField)
override val canPinMessages: Boolean? = null
override val canPinMessages: Boolean? = null,
@SerialName(canEditTagField)
override val canEditTag: Boolean = false,
) : ChatPermissions {
@Transient
override val isGranular: Boolean

View File

@@ -5,6 +5,7 @@ import dev.inmo.tgbotapi.types.business_connection.BusinessIntro
import dev.inmo.tgbotapi.types.business_connection.BusinessLocation
import dev.inmo.tgbotapi.types.business_connection.BusinessOpeningHours
import dev.inmo.tgbotapi.types.colors.ColorId
import dev.inmo.tgbotapi.types.files.AudioFile
import dev.inmo.tgbotapi.types.gifts.AcceptedGiftTypes
import dev.inmo.tgbotapi.types.gifts.unique.UniqueGiftColors
import dev.inmo.tgbotapi.types.message.abstracts.Message
@@ -67,10 +68,6 @@ data class ExtendedChannelChatImpl(
override val newMembersSeeHistory: Boolean = false,
@SerialName(maxReactionCountField)
override val maxReactionsCount: Int = 3,
@SerialName(ratingField)
override val rating: UserRating? = null,
@SerialName(paidMessageStarCountField)
override val paidMessageStarCount: Int? = null,
@SerialName(uniqueGiftColorsField)
override val uniqueGiftColors: UniqueGiftColors? = null
) : ExtendedChannelChat
@@ -116,8 +113,6 @@ data class ExtendedGroupChatImpl(
override val maxReactionsCount: Int = 3,
@SerialName(acceptedGiftTypesField)
override val acceptedGiftTypes: AcceptedGiftTypes = AcceptedGiftTypes(),
@SerialName(ratingField)
override val rating: UserRating? = null,
@SerialName(paidMessageStarCountField)
override val paidMessageStarCount: Int? = null,
@SerialName(uniqueGiftColorsField)
@@ -176,6 +171,14 @@ data class ExtendedPrivateChatImpl(
override val maxReactionsCount: Int = 3,
@SerialName(acceptedGiftTypesField)
override val acceptedGiftTypes: AcceptedGiftTypes = AcceptedGiftTypes(),
@SerialName(paidMessageStarCountField)
override val paidMessageStarCount: Int? = null,
@SerialName(firstProfileAudioField)
override val firstProfileAudio: AudioFile? = null,
@SerialName(ratingField)
override val rating: UserRating? = null,
@SerialName(uniqueGiftColorsField)
override val uniqueGiftColors: UniqueGiftColors? = null,
) : ExtendedPrivateChat
@Serializable
@@ -230,6 +233,14 @@ data class ExtendedPrivateForumChatImpl(
override val maxReactionsCount: Int = 3,
@SerialName(acceptedGiftTypesField)
override val acceptedGiftTypes: AcceptedGiftTypes = AcceptedGiftTypes(),
@SerialName(paidMessageStarCountField)
override val paidMessageStarCount: Int? = null,
@SerialName(firstProfileAudioField)
override val firstProfileAudio: AudioFile? = null,
@SerialName(ratingField)
override val rating: UserRating? = null,
@SerialName(uniqueGiftColorsField)
override val uniqueGiftColors: UniqueGiftColors? = null,
) : ExtendedPrivateForumChat
typealias ExtendedUser = ExtendedPrivateChat
@@ -302,8 +313,6 @@ data class ExtendedSupergroupChatImpl(
override val maxReactionsCount: Int = 3,
@SerialName(acceptedGiftTypesField)
override val acceptedGiftTypes: AcceptedGiftTypes = AcceptedGiftTypes(),
@SerialName(ratingField)
override val rating: UserRating? = null,
@SerialName(paidMessageStarCountField)
override val paidMessageStarCount: Int? = null,
@SerialName(uniqueGiftColorsField)
@@ -378,8 +387,6 @@ data class ExtendedForumChatImpl(
override val maxReactionsCount: Int = 3,
@SerialName(acceptedGiftTypesField)
override val acceptedGiftTypes: AcceptedGiftTypes = AcceptedGiftTypes(),
@SerialName(ratingField)
override val rating: UserRating? = null,
@SerialName(paidMessageStarCountField)
override val paidMessageStarCount: Int? = null,
@SerialName(uniqueGiftColorsField)
@@ -457,8 +464,6 @@ data class ExtendedChannelDirectMessagesChatImpl(
override val maxReactionsCount: Int = 3,
@SerialName(acceptedGiftTypesField)
override val acceptedGiftTypes: AcceptedGiftTypes = AcceptedGiftTypes(),
@SerialName(ratingField)
override val rating: UserRating? = null,
@SerialName(paidMessageStarCountField)
override val paidMessageStarCount: Int? = null,
@SerialName(uniqueGiftColorsField)
@@ -510,6 +515,8 @@ data class ExtendedBot(
val allowUsersToCreateTopics: Boolean = false,
@SerialName(acceptedGiftTypesField)
override val acceptedGiftTypes: AcceptedGiftTypes = AcceptedGiftTypes(),
@SerialName(uniqueGiftColorsField)
override val uniqueGiftColors: UniqueGiftColors? = null,
) : Bot(), ExtendedChat {
@SerialName(isBotField)
private val isBot = true
@@ -543,4 +550,6 @@ data class UnknownExtendedChat(
override val maxReactionsCount: Int = 3
@SerialName(acceptedGiftTypesField)
override val acceptedGiftTypes: AcceptedGiftTypes = AcceptedGiftTypes()
@SerialName(uniqueGiftColorsField)
override val uniqueGiftColors: UniqueGiftColors? = null
}

View File

@@ -1,10 +1,12 @@
package dev.inmo.tgbotapi.types.chat
import dev.inmo.tgbotapi.types.*
import dev.inmo.tgbotapi.types.abstracts.WithOptionalPaidMessageStarCount
import dev.inmo.tgbotapi.types.business_connection.BusinessIntro
import dev.inmo.tgbotapi.types.business_connection.BusinessLocation
import dev.inmo.tgbotapi.types.business_connection.BusinessOpeningHours
import dev.inmo.tgbotapi.types.colors.ColorId
import dev.inmo.tgbotapi.types.files.AudioFile
import dev.inmo.tgbotapi.types.gifts.AcceptedGiftTypes
import dev.inmo.tgbotapi.types.gifts.unique.UniqueGiftColors
import dev.inmo.tgbotapi.types.message.abstracts.Message
@@ -23,6 +25,8 @@ sealed interface ExtendedChat : Chat {
val acceptedGiftTypes: AcceptedGiftTypes
val uniqueGiftColors: UniqueGiftColors?
@Deprecated(
message = "Telegram Bot API v9.0 introduced the new field, `acceptedGiftTypes`, to allow granular" +
" control over which types of gifts user, bot, or chat can accept.",
@@ -51,13 +55,16 @@ sealed interface ExtendedChannelChat : ChannelChat, ExtendedPublicChat, Extended
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@Serializable(ExtendedChatSerializer.Companion::class)
sealed interface ExtendedGroupChat : GroupChat, ExtendedPublicChat {
sealed interface ExtendedGroupChat : GroupChat, ExtendedPublicChat, WithOptionalPaidMessageStarCount {
val permissions: ChatPermissions
}
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@Serializable(ExtendedChatSerializer.Companion::class)
sealed interface ExtendedPrivateChat : PrivateUserChat, ExtendedChatWithUsername, ExtendedNonBotChat {
sealed interface ExtendedPrivateChat : PrivateUserChat,
ExtendedChatWithUsername,
ExtendedNonBotChat,
WithOptionalPaidMessageStarCount {
val bio: String
val hasPrivateForwards: Boolean
val hasRestrictedVoiceAndVideoMessages: Boolean
@@ -68,6 +75,8 @@ sealed interface ExtendedPrivateChat : PrivateUserChat, ExtendedChatWithUsername
val birthdate: Birthdate?
val personalChat: PreviewChannelChat?
val firstProfileAudio: AudioFile?
val rating: UserRating?
val allowCreateUserIdLink: Boolean
get() = hasPrivateForwards
@@ -86,9 +95,6 @@ sealed interface ExtendedPublicChat : ExtendedChat, PublicChat, ExtendedNonBotCh
val membersHidden: Boolean
val availableReactions: List<Reaction>?
val newMembersSeeHistory: Boolean
val rating: UserRating?
val paidMessageStarCount: Int?
val uniqueGiftColors: UniqueGiftColors?
}
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")

View File

@@ -48,6 +48,8 @@ data class AdministratorChatMemberImpl(
override val canDeleteStories: Boolean = false,
@SerialName(canManageDirectMessagesField)
override val canManageDirectMessages: Boolean = false,
@SerialName(canManageTagsField)
override val canManageTags: Boolean = false,
) : AdministratorChatMember {
@SerialName(statusField)
@Required

View File

@@ -20,6 +20,7 @@ sealed interface ChatAdministratorRights : SpecialChatAdministratorRights {
val canEditStories: Boolean
val canDeleteStories: Boolean
val canManageDirectMessages: Boolean
val canManageTags: Boolean
companion object {
operator fun invoke(

View File

@@ -38,4 +38,6 @@ data class ChatCommonAdministratorRights(
override val canDeleteStories: Boolean = false,
@SerialName(canManageDirectMessagesField)
override val canManageDirectMessages: Boolean = false,
@SerialName(canManageTagsField)
override val canManageTags: Boolean = false,
) : ChatAdministratorRights

View File

@@ -13,7 +13,9 @@ data class KickedChatMember(
@SerialName(userField)
override val user: PreviewUser,
@SerialName(untilDateField)
override val untilDate: TelegramDate? = null
override val untilDate: TelegramDate? = null,
@SerialName(tagField)
override val tag: UserTag? = null,
) : RestrictedChatMember {
@SerialName(statusField)
@Required

View File

@@ -1,7 +1,8 @@
package dev.inmo.tgbotapi.types.chat.member
import dev.inmo.tgbotapi.abstracts.OptionallyTagged
import kotlinx.serialization.Serializable
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@Serializable(ChatMemberSerializer::class)
sealed interface MemberChatMember : ChatMember
sealed interface MemberChatMember : ChatMember, OptionallyTagged

View File

@@ -10,7 +10,9 @@ import kotlinx.serialization.*
data class MemberChatMemberImpl(
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@SerialName(userField)
override val user: PreviewUser
override val user: PreviewUser,
@SerialName(tagField)
override val tag: UserTag? = null
) : MemberChatMember {
@SerialName(statusField)
@Required

View File

@@ -48,6 +48,8 @@ data class OwnerChatMember(
override val canDeleteStories: Boolean = true
@Transient
override val canManageDirectMessages: Boolean = true
@Transient
override val canManageTags: Boolean = true
@SerialName(statusField)
@Required

View File

@@ -1,5 +1,6 @@
package dev.inmo.tgbotapi.types.chat.member
import dev.inmo.tgbotapi.abstracts.OptionallyTagged
import dev.inmo.tgbotapi.abstracts.types.UntilDate
import dev.inmo.tgbotapi.types.*
import dev.inmo.tgbotapi.types.chat.PreviewUser
@@ -8,7 +9,7 @@ import kotlinx.serialization.Serializable
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@Serializable(ChatMemberSerializer::class)
sealed interface RestrictedChatMember : ChatMember, UntilDate {
sealed interface RestrictedChatMember : ChatMember, UntilDate, OptionallyTagged {
companion object {
// backward compatibility fun
@Deprecated(

View File

@@ -5,7 +5,6 @@ package dev.inmo.tgbotapi.types.chat.member
import dev.inmo.tgbotapi.types.*
import dev.inmo.tgbotapi.types.chat.ChatPermissions
import dev.inmo.tgbotapi.types.chat.PreviewUser
import dev.inmo.tgbotapi.types.chat.User
import kotlinx.serialization.*
/**
@@ -48,7 +47,11 @@ data class RestrictedMemberChatMember(
@SerialName(canPinMessagesField)
override val canPinMessages: Boolean = false,
@SerialName(canManageTopicsField)
override val canManageTopics: Boolean = false
override val canManageTopics: Boolean = false,
@SerialName(canEditTagField)
override val canEditTag: Boolean = false,
@SerialName(tagField)
override val tag: UserTag? = null,
) : RestrictedChatMember, SpecialRightsChatMember, MemberChatMember, ChatPermissions {
@SerialName(statusField)
@Required

View File

@@ -13,7 +13,9 @@ data class SubscriptionMemberChatMemberImpl(
override val user: PreviewUser,
@SerialName(untilDateField)
@Serializable(TelegramDateSerializer::class)
override val untilDate: TelegramDate
override val untilDate: TelegramDate,
@SerialName(tagField)
override val tag: UserTag? = null
) : SubscriptionMemberChatMember {
@SerialName(statusField)
@Required

View File

@@ -104,8 +104,8 @@ sealed interface ChecklistTask : TextedInput {
}
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@Serializable(Created.Serializer::class)
data class Undone(
@Serializable(Serializer::class)
data class Uncompleted(
@SerialName(idField)
override val id: ChecklistTaskId,
@SerialName(textEntitiesField)
@@ -125,103 +125,135 @@ sealed interface ChecklistTask : TextedInput {
)
}
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@Serializable(Created.Serializer::class)
data class Done(
@SerialName(idField)
override val id: ChecklistTaskId,
@SerialName(completedByUserField)
override val completedByUser: PreviewUser,
@SerialName(completedByChatField)
val completedByChat: PreviewChat? = null,
@SerialName(completionDateField)
override val completionDate: TelegramDate,
@SerialName(textEntitiesField)
override val textSources: List<TextSource> = emptyList()
) : ChecklistTask.Created {
@OptIn(ExperimentalSerializationApi::class)
@EncodeDefault
@Serializable
@SerialName(textField)
override val text: String = textSources.makeSourceString()
constructor(
id: ChecklistTaskId,
text: String,
completedByUser: PreviewUser,
completedByChat: PreviewChat? = null,
completionDate: TelegramDate,
): this(
id,
completedByUser,
completedByChat,
completionDate,
listOf(
RegularTextSource(text)
)
)
}
@Serializable(Created.Serializer::class)
@Serializable(Serializer::class)
sealed interface Created : ChecklistTask {
val completedByUser: PreviewUser?
get() = null
val completedByChat: PreviewChat?
get() = null
val completionDate: TelegramDate?
get() = null
}
@RiskFeature
object Serializer : KSerializer<Created> {
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@Serializable(Serializer::class)
sealed interface Completed : Created {
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@Serializable(Serializer::class)
data class ByUser(
@SerialName(idField)
override val id: ChecklistTaskId,
@SerialName(completedByUserField)
override val completedByUser: PreviewUser,
@SerialName(completionDateField)
override val completionDate: TelegramDate,
@SerialName(textEntitiesField)
override val textSources: List<TextSource> = emptyList()
) : Completed {
@OptIn(ExperimentalSerializationApi::class)
@EncodeDefault
@Serializable
private data class RawCreatedChecklistTask(
@SerialName(idField)
val id: ChecklistTaskId,
@SerialName(textField)
val text: String,
@SerialName(textEntitiesField)
val textSources: List<RawMessageEntity> = emptyList(),
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@SerialName(completedByUserField)
val completedByUser: PreviewUser? = null,
@SerialName(completedByChatField)
val completedByChat: PreviewChat? = null,
@SerialName(completionDateField)
val completionDate: TelegramDate = TelegramDate(0), // TelegramDate(0) is the default according to https://core.telegram.org/bots/api#checklisttask
@SerialName(textField)
override val text: String = textSources.makeSourceString()
}
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@Serializable(Serializer::class)
data class ByChat(
@SerialName(idField)
override val id: ChecklistTaskId,
@SerialName(completedByChatField)
override val completedByChat: PreviewChat,
@SerialName(completionDateField)
override val completionDate: TelegramDate,
@SerialName(textEntitiesField)
override val textSources: List<TextSource> = emptyList()
) : Completed {
@OptIn(ExperimentalSerializationApi::class)
@EncodeDefault
@Serializable
@SerialName(textField)
override val text: String = textSources.makeSourceString()
}
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@Serializable(Serializer::class)
data class Common(
@SerialName(idField)
override val id: ChecklistTaskId,
@SerialName(completionDateField)
override val completionDate: TelegramDate,
@SerialName(textEntitiesField)
override val textSources: List<TextSource> = emptyList()
) : Completed {
@OptIn(ExperimentalSerializationApi::class)
@EncodeDefault
@Serializable
@SerialName(textField)
override val text: String = textSources.makeSourceString()
}
}
@RiskFeature
object Serializer : KSerializer<Created> {
@Serializable
private data class RawCreatedChecklistTask(
@SerialName(idField)
val id: ChecklistTaskId,
@SerialName(textField)
val text: String,
@SerialName(textEntitiesField)
val textSources: List<RawMessageEntity> = emptyList(),
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@SerialName(completedByUserField)
val completedByUser: PreviewUser? = null,
@SerialName(completedByChatField)
val completedByChat: PreviewChat? = null,
@SerialName(completionDateField)
val completionDate: TelegramDate = TelegramDate.Start, // TelegramDate(0) is the default according to https://core.telegram.org/bots/api#checklisttask
)
override val descriptor: SerialDescriptor = RawCreatedChecklistTask.serializer().descriptor
override fun deserialize(decoder: Decoder): Created {
val raw = RawCreatedChecklistTask.serializer().deserialize(
decoder
)
override val descriptor: SerialDescriptor = RawCreatedChecklistTask.serializer().descriptor
override fun deserialize(decoder: Decoder): Created {
val raw = RawCreatedChecklistTask.serializer().deserialize(
decoder
return when {
raw.completionDate == TelegramDate.Start -> Uncompleted(
id = raw.id,
textSources = raw.textSources.asTextSources(raw.text),
)
return when {
raw.completedByUser != null -> Done(
id = raw.id,
completedByUser = raw.completedByUser,
completedByChat = raw.completedByChat,
completionDate = raw.completionDate,
textSources = raw.textSources.asTextSources(raw.text),
)
else -> Undone(
id = raw.id,
textSources = raw.textSources.asTextSources(raw.text),
)
}
}
override fun serialize(encoder: Encoder, value: Created) {
RawCreatedChecklistTask.serializer().serialize(
encoder,
RawCreatedChecklistTask(
id = value.id,
text = value.text,
completedByUser = value.completedByUser,
completedByChat = (value as? Done)?.completedByChat,
completionDate = value.completionDate ?: TelegramDate(0),
textSources = value.textSources.toRawMessageEntities()
)
raw.completedByChat != null -> Completed.ByChat(
id = raw.id,
completedByChat = raw.completedByChat,
completionDate = raw.completionDate,
textSources = raw.textSources.asTextSources(raw.text),
)
raw.completedByUser != null -> Completed.ByUser(
id = raw.id,
completedByUser = raw.completedByUser,
completionDate = raw.completionDate,
textSources = raw.textSources.asTextSources(raw.text),
)
else -> Completed.Common(
id = raw.id,
completionDate = raw.completionDate,
textSources = raw.textSources.asTextSources(raw.text),
)
}
}
override fun serialize(encoder: Encoder, value: Created) {
RawCreatedChecklistTask.serializer().serialize(
encoder,
RawCreatedChecklistTask(
id = value.id,
text = value.text,
completedByUser = value.completedByUser,
completedByChat = value.completedByChat,
completionDate = value.completionDate ?: TelegramDate.Start,
textSources = value.textSources.toRawMessageEntities()
)
)
}
}
}

View File

@@ -22,6 +22,6 @@ data class AnimationFile(
@SerialName(mimeTypeField)
override val mimeType: MimeType? = null,
@SerialName(fileSizeField)
override val fileSize: Long? = null
override val fileSize: FileSize? = null
) : TelegramMediaFile, MimedMediaFile, ThumbedMediaFile, PlayableMediaFile, CustomNamedMediaFile, SizedMediaFile,
MediaContentVariant

View File

@@ -25,10 +25,16 @@ data class AudioFile(
@SerialName(mimeTypeField)
override val mimeType: MimeType? = null,
@SerialName(fileSizeField)
override val fileSize: Long? = null,
override val fileSize: FileSize? = null,
@SerialName(thumbnailField)
override val thumbnail: PhotoSize? = null
) : TelegramMediaFile, CustomNamedMediaFile, MimedMediaFile, ThumbedMediaFile, PlayableMediaFile, TitledMediaFile,
Performerable, MediaContentVariant
fun AudioFile.asVoiceFile() = VoiceFile(fileId, fileUniqueId, duration, mimeType, fileSize)
fun AudioFile.asVoiceFile() = VoiceFile(
fileId = fileId,
fileUniqueId = fileUniqueId,
duration = duration,
mimeType = mimeType,
fileSize = fileSize
)

View File

@@ -14,7 +14,7 @@ data class DocumentFile(
@SerialName(fileUniqueIdField)
override val fileUniqueId: TgFileUniqueId,
@SerialName(fileSizeField)
override val fileSize: Long? = null,
override val fileSize: FileSize? = null,
override val thumbnail: PhotoSize? = null,
@SerialName(mimeTypeField)
override val mimeType: MimeType? = null,
@@ -27,11 +27,11 @@ inline fun TelegramMediaFile.asDocumentFile() = if (this is DocumentFile) {
this
} else {
DocumentFile(
fileId,
fileUniqueId,
fileSize,
(this as? ThumbedMediaFile) ?.thumbnail,
(this as? MimedMediaFile) ?.mimeType,
(this as? CustomNamedMediaFile) ?.fileName
fileId = fileId,
fileUniqueId = fileUniqueId,
fileSize = fileSize,
thumbnail = (this as? ThumbedMediaFile) ?.thumbnail,
mimeType = (this as? MimedMediaFile) ?.mimeType,
fileName = (this as? CustomNamedMediaFile) ?.fileName
)
}

View File

@@ -13,5 +13,5 @@ data class File(
@SerialName(fileUniqueIdField)
override val fileUniqueId: TgFileUniqueId,
@SerialName(fileSizeField)
override val fileSize: Long? = null
override val fileSize: FileSize? = null
): TelegramMediaFile

View File

@@ -0,0 +1,12 @@
package dev.inmo.tgbotapi.types.files
import kotlinx.serialization.Serializable
import kotlin.jvm.JvmInline
@Serializable
@JvmInline
value class FileSize(
val bytes: ULong
) : Comparable<FileSize> {
override fun compareTo(other: FileSize): Int = bytes.compareTo(other.bytes)
}

View File

@@ -19,5 +19,5 @@ data class PassportFile(
@SerialName(fileDateField)
val uploadingDate: TelegramDate,
@SerialName(fileSizeField)
override val fileSize: Long? = null
override val fileSize: FileSize? = null
) : TelegramMediaFile

View File

@@ -15,7 +15,7 @@ data class PathedFile(
@SerialName(filePathField)
val filePath: String,
@SerialName(fileSizeField)
override val fileSize: Long? = null
override val fileSize: FileSize? = null
): TelegramMediaFile {
@Suppress("TRANSIENT_IS_REDUNDANT")
@Transient

View File

@@ -17,7 +17,7 @@ value class PhotoFile(
get() = biggest.fileId
override val fileUniqueId: TgFileUniqueId
get() = biggest.fileUniqueId
override val fileSize: Long?
override val fileSize: FileSize?
get() = biggest.fileSize
init {
@@ -44,7 +44,7 @@ data class PhotoSize(
@SerialName(fileUniqueIdField)
override val fileUniqueId: TgFileUniqueId,
@SerialName(fileSizeField)
override val fileSize: Long? = null,
override val fileSize: FileSize? = null,
override val width: Int,
override val height: Int
) : SizedMediaFile {

View File

@@ -31,7 +31,7 @@ data class StickerSurrogate(
val premium_animation: File? = null,
val mask_position: MaskPosition? = null,
val custom_emoji_id: CustomEmojiId? = null,
val file_size: Long? = null,
val file_size: FileSize? = null,
val needs_repainting: Boolean = false,
)
@@ -267,7 +267,7 @@ data class RegularSimpleSticker(
@SerialName(premiumAnimationField)
override val premiumAnimationFile: File? = null,
@SerialName(fileSizeField)
override val fileSize: Long? = null,
override val fileSize: FileSize? = null,
) : RegularSticker {
@SerialName(stickerFormatField)
@EncodeDefault
@@ -299,7 +299,7 @@ data class RegularAnimatedSticker(
@SerialName(premiumAnimationField)
override val premiumAnimationFile: File? = null,
@SerialName(fileSizeField)
override val fileSize: Long? = null,
override val fileSize: FileSize? = null,
) : RegularSticker, AnimatedSticker {
@SerialName(stickerTypeField)
@Serializable(StickerType.Serializer::class)
@@ -327,7 +327,7 @@ data class RegularVideoSticker(
@SerialName(premiumAnimationField)
override val premiumAnimationFile: File? = null,
@SerialName(fileSizeField)
override val fileSize: Long? = null,
override val fileSize: FileSize? = null,
) : RegularSticker, VideoSticker {
@SerialName(stickerTypeField)
@Serializable(StickerType.Serializer::class)
@@ -371,7 +371,7 @@ data class MaskSimpleSticker(
@SerialName(stickerSetNameField)
override val stickerSetName: StickerSetName? = null,
@SerialName(fileSizeField)
override val fileSize: Long? = null,
override val fileSize: FileSize? = null,
) : MaskSticker {
@SerialName(stickerFormatField)
@EncodeDefault
@@ -403,7 +403,7 @@ data class MaskAnimatedSticker(
@SerialName(stickerSetNameField)
override val stickerSetName: StickerSetName? = null,
@SerialName(fileSizeField)
override val fileSize: Long? = null,
override val fileSize: FileSize? = null,
) : MaskSticker, AnimatedSticker {
@SerialName(stickerTypeField)
@Serializable(StickerType.Serializer::class)
@@ -431,7 +431,7 @@ data class MaskVideoSticker(
@SerialName(stickerSetNameField)
override val stickerSetName: StickerSetName? = null,
@SerialName(fileSizeField)
override val fileSize: Long? = null,
override val fileSize: FileSize? = null,
) : MaskSticker, VideoSticker {
@SerialName(stickerTypeField)
@Serializable(StickerType.Serializer::class)
@@ -476,7 +476,7 @@ data class CustomEmojiSimpleSticker(
@SerialName(stickerSetNameField)
override val stickerSetName: StickerSetName? = null,
@SerialName(fileSizeField)
override val fileSize: Long? = null,
override val fileSize: FileSize? = null,
@SerialName(needsRepaintingField)
override val needsRepainting: Boolean = false
) : CustomEmojiSticker {
@@ -510,7 +510,7 @@ data class CustomEmojiAnimatedSticker(
@SerialName(stickerSetNameField)
override val stickerSetName: StickerSetName? = null,
@SerialName(fileSizeField)
override val fileSize: Long? = null,
override val fileSize: FileSize? = null,
@SerialName(needsRepaintingField)
override val needsRepainting: Boolean = false,
) : CustomEmojiSticker, AnimatedSticker {
@@ -540,7 +540,7 @@ data class CustomEmojiVideoSticker(
@SerialName(stickerSetNameField)
override val stickerSetName: StickerSetName? = null,
@SerialName(fileSizeField)
override val fileSize: Long? = null,
override val fileSize: FileSize? = null,
@SerialName(needsRepaintingField)
override val needsRepainting: Boolean = false,
) : CustomEmojiSticker, VideoSticker {
@@ -569,7 +569,7 @@ data class UnknownSticker(
@SerialName(stickerSetNameField)
override val stickerSetName: StickerSetName? = null,
@SerialName(fileSizeField)
override val fileSize: Long? = null,
override val fileSize: FileSize? = null,
@SerialName(stickerFormatField)
override val stickerFormat: StickerFormat = StickerFormat.Static,
@SerialName(stickerTypeField)

View File

@@ -11,5 +11,5 @@ import dev.inmo.tgbotapi.types.TgFileUniqueId
sealed interface TelegramMediaFile {
val fileId: FileId
val fileUniqueId: TgFileUniqueId
val fileSize: Long?
val fileSize: FileSize?
}

View File

@@ -0,0 +1,53 @@
package dev.inmo.tgbotapi.types.files
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(VideoCodec.Serializer::class)
sealed interface VideoCodec {
val name: String
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@Serializable(VideoCodec.Serializer::class)
data object H264 : VideoCodec { override val name = "h264" }
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@Serializable(VideoCodec.Serializer::class)
data object H265 : VideoCodec { override val name = "h265" }
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@Serializable(VideoCodec.Serializer::class)
data object AV1 : VideoCodec { override val name = "av01" }
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@Serializable(VideoCodec.Serializer::class)
data class Custom(
override val name: String
) : VideoCodec
object Serializer : KSerializer<VideoCodec> {
override val descriptor: SerialDescriptor
get() = String.serializer().descriptor
override fun serialize(
encoder: Encoder,
value: VideoCodec
) {
encoder.encodeString(value.name)
}
override fun deserialize(decoder: Decoder): VideoCodec {
return when (val name = decoder.decodeString()) {
H264.name -> H264
H265.name -> H265
AV1.name -> AV1
else -> Custom(name)
}
}
}
}

View File

@@ -29,14 +29,24 @@ data class VideoFile(
override val cover: Photo? = null,
@SerialName(startTimestampField)
override val startTimestamp: Seconds? = null,
@SerialName(qualitiesField)
val qualities: List<VideoQuality>? = null,
@SerialName(fileNameField)
override val fileName: String? = null,
@SerialName(mimeTypeField)
override val mimeType: MimeType? = null,
@SerialName(fileSizeField)
override val fileSize: Long? = null
) : TelegramMediaFile, CustomNamedMediaFile, MimedMediaFile, CoveredMediaFile, CustomStartMediaFile, ThumbedMediaFile, PlayableMediaFile, SizedMediaFile,
MediaContentVariant, UsefulAsPaidMediaFile
override val fileSize: FileSize? = null
) : TelegramMediaFile,
CustomNamedMediaFile,
MimedMediaFile,
CoveredMediaFile,
CustomStartMediaFile,
ThumbedMediaFile,
PlayableMediaFile,
SizedMediaFile,
MediaContentVariant,
UsefulAsPaidMediaFile
@Suppress("NOTHING_TO_INLINE")
inline fun VideoFile.toTelegramMediaVideo(

View File

@@ -17,7 +17,7 @@ data class VideoNoteFile(
override val duration: Long? = null,
override val thumbnail: PhotoSize? = null,
@SerialName(fileSizeField)
override val fileSize: Long? = null
override val fileSize: FileSize? = null
) : TelegramMediaFile, ThumbedMediaFile, PlayableMediaFile, SizedMediaFile, MediaContentVariant {
override val height: Int
get() = width

View File

@@ -0,0 +1,24 @@
package dev.inmo.tgbotapi.types.files
import dev.inmo.tgbotapi.requests.abstracts.FileId
import dev.inmo.tgbotapi.types.*
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
@Serializable
data class VideoQuality(
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
@SerialName(fileIdField)
override val fileId: FileId,
@SerialName(fileUniqueIdField)
override val fileUniqueId: TgFileUniqueId,
@SerialName(widthField)
override val width: Int,
@SerialName(heightField)
override val height: Int,
@SerialName(codecField)
val codec: VideoCodec,
@SerialName(fileSizeField)
override val fileSize: FileSize? = null
) : TelegramMediaFile, SizedMediaFile {
}

View File

@@ -18,7 +18,7 @@ data class VoiceFile(
@SerialName(mimeTypeField)
override val mimeType: MimeType? = null,
@SerialName(fileSizeField)
override val fileSize: Long? = null
override val fileSize: FileSize? = null
) : TelegramMediaFile, MimedMediaFile, PlayableMediaFile, MediaContentVariant
fun VoiceFile.asAudioFile(

View File

@@ -18,6 +18,7 @@ import kotlinx.serialization.encoding.Encoder
sealed interface Gift {
val id: GiftId?
val publisherChat: PreviewChat?
val isPremium: Boolean
@Serializable(Regular.Companion::class)
sealed interface Regular : Gift {
override val id: GiftId
@@ -28,11 +29,13 @@ sealed interface Gift {
val remainingCount: Int?
val personalTotalCount: Int?
val personalRemainingCount: Int?
val isPremium: Boolean
val hasColors: Boolean
val background: dev.inmo.tgbotapi.types.gifts.GiftBackground?
val background: GiftBackground?
val uniqueGiftVariantCount: Int?
/**
* Represents a [Gift](https://core.telegram.org/bots/api#gift) for fields of unlimited gifts
*/
@Serializable
data class Unlimited(
@SerialName(idField)
@@ -49,12 +52,12 @@ sealed interface Gift {
override val personalTotalCount: Int? = null,
@SerialName(personalRemainingCountField)
override val personalRemainingCount: Int? = null,
@SerialName(isPremiumField2)
@SerialName(isPremiumField)
override val isPremium: Boolean = false,
@SerialName(hasColorsField)
override val hasColors: Boolean = false,
@SerialName(backgroundField)
override val background: dev.inmo.tgbotapi.types.gifts.GiftBackground? = null,
override val background: GiftBackground? = null,
@SerialName(uniqueGiftVariantCountField)
override val uniqueGiftVariantCount: Int? = null,
) : Regular {
@@ -64,6 +67,9 @@ sealed interface Gift {
get() = null
}
/**
* Represents a [Gift](https://core.telegram.org/bots/api#gift) for fields of limited gifts
*/
@Serializable
data class Limited(
@SerialName(idField)
@@ -84,12 +90,12 @@ sealed interface Gift {
override val personalTotalCount: Int? = null,
@SerialName(personalRemainingCountField)
override val personalRemainingCount: Int? = null,
@SerialName(isPremiumField2)
@SerialName(isPremiumField)
override val isPremium: Boolean = false,
@SerialName(hasColorsField)
override val hasColors: Boolean = false,
@SerialName(backgroundField)
override val background: dev.inmo.tgbotapi.types.gifts.GiftBackground? = null,
override val background: GiftBackground? = null,
@SerialName(uniqueGiftVariantCountField)
override val uniqueGiftVariantCount: Int? = null,
) : Regular
@@ -109,7 +115,7 @@ sealed interface Gift {
val personal_remaining_count: Int? = null,
val is_premium: Boolean = false,
val has_colors: Boolean = false,
val background: dev.inmo.tgbotapi.types.gifts.GiftBackground? = null,
val background: GiftBackground? = null,
val unique_gift_variant_count: Int? = null,
)
@@ -173,6 +179,9 @@ sealed interface Gift {
}
}
/**
* Represents a [UniqueGift](https://core.telegram.org/bots/api#uniquegift) from telegram bots api
*/
@Serializable
data class Unique(
@SerialName(giftIdField)
@@ -180,7 +189,7 @@ sealed interface Gift {
@SerialName(baseNameField)
val baseName: String,
@SerialName(nameField)
val name: String,
val name: UniqueGiftName,
@SerialName(numberField)
val number: Int,
@SerialName(modelField)
@@ -189,14 +198,16 @@ sealed interface Gift {
val symbol: UniqueGiftSymbol,
@SerialName(backdropField)
val backdrop: UniqueGiftBackdrop,
@SerialName(publisherChatField)
override val publisherChat: PreviewChat? = null,
@SerialName(isPremiumField)
override val isPremium: Boolean = false,
@SerialName(isBurnedField)
val isBurned: Boolean = false,
@SerialName(isFromBlockchainField)
val isFromBlockchain: Boolean = false,
@SerialName(isPremiumField2)
val isPremium: Boolean = false,
@SerialName(colorsField)
val colors: UniqueGiftColors? = null
val colors: UniqueGiftColors? = null,
@SerialName(publisherChatField)
override val publisherChat: PreviewChat? = null,
) : Gift
companion object : KSerializer<Gift> {
@@ -214,17 +225,17 @@ sealed interface Gift {
val personal_remaining_count: Int? = null,
val is_premium: Boolean = false,
val has_colors: Boolean = false,
val background: dev.inmo.tgbotapi.types.gifts.GiftBackground? = null,
val background: GiftBackground? = null,
val unique_gift_variant_count: Int? = null,
// unique gift fields
val base_name: String? = null,
val name: String? = null,
val name: UniqueGiftName? = null,
val number: Int? = null,
val model: UniqueGiftModel? = null,
val symbol: UniqueGiftSymbol? = null,
val backdrop: UniqueGiftBackdrop? = null,
val is_from_blockchain: Boolean = false,
val colors: dev.inmo.tgbotapi.types.gifts.unique.UniqueGiftColors? = null,
val colors: UniqueGiftColors? = null,
val publisher_chat: PreviewChat? = null,
)

View File

@@ -2,7 +2,6 @@ package dev.inmo.tgbotapi.types.gifts
import dev.inmo.tgbotapi.abstracts.TextedInput
import dev.inmo.tgbotapi.types.*
import dev.inmo.tgbotapi.types.gifts.GiftSentOrReceived.Unique.Common
import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.CommonEvent
import dev.inmo.tgbotapi.types.message.RawMessageEntities
import dev.inmo.tgbotapi.types.message.asTextSources
@@ -10,8 +9,6 @@ import dev.inmo.tgbotapi.types.message.textsources.TextSource
import dev.inmo.tgbotapi.types.message.textsources.TextSourcesList
import dev.inmo.tgbotapi.types.message.toRawMessageEntities
import dev.inmo.tgbotapi.types.payments.abstracts.Currency
import dev.inmo.tgbotapi.utils.internal.ClassCastsIncluded
import kotlinx.serialization.EncodeDefault
import kotlinx.serialization.KSerializer
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
@@ -25,28 +22,34 @@ import kotlin.jvm.JvmName
/**
* Represent Telegram Bots API abstraction [OwnedGiftUnique](https://core.telegram.org/bots/api#giftinfo) and
* Represent Telegram Bots API abstraction [GiftInfo](https://core.telegram.org/bots/api#giftinfo) and
* [UniqueGiftInfo](https://core.telegram.org/bots/api#uniquegiftinfo)
*
* @see ReceivedInBusinessAccount
* @see Regular.Common
* @see Regular.ReceivedInBusinessAccount
* @see Unique.Common
* @see Unique.ReceivedInBusinessAccount
* @see RegularGift.Common
* @see RegularGift.ReceivedInBusinessAccount
* @see UniqueGift.Common
* @see UniqueGift.ReceivedInBusinessAccount
*/
@Serializable
sealed interface GiftSentOrReceived : CommonEvent {
sealed interface GiftSentOrReceivedEvent : CommonEvent {
val ownedGiftId: GiftId?
val gift: Gift
val nextTransferDate: TelegramDate?
@Serializable
sealed interface ReceivedInBusinessAccount : GiftSentOrReceived {
sealed interface ReceivedInBusinessAccount : GiftSentOrReceivedEvent {
override val ownedGiftId: GiftId
}
@Serializable(Regular.Companion::class)
sealed interface Regular : GiftSentOrReceived, TextedInput {
/**
* Represent the hierarchy of [GiftInfo](https://core.telegram.org/bots/api#giftinfo).
*
* * For `GiftInfo` **with** `owned_gift_id` see [RegularGift.ReceivedInBusinessAccount]
* * For all other kinds see [RegularGift.Common]
*/
@Serializable(RegularGift.Companion::class)
sealed interface RegularGift : GiftSentOrReceivedEvent, TextedInput {
override val gift: Gift.Regular
val convertStarCount: Int?
val prepaidUpgradeStarCount: Int?
@@ -77,7 +80,7 @@ sealed interface GiftSentOrReceived : CommonEvent {
override val uniqueGiftNumber: Int? = null,
@SerialName(nextTransferDateField)
override val nextTransferDate: TelegramDate? = null
) : Regular {
) : RegularGift {
override val textSources: List<TextSource> by lazy {
entities ?.asTextSources(text ?: return@lazy emptyList()) ?: emptyList()
}
@@ -109,13 +112,13 @@ sealed interface GiftSentOrReceived : CommonEvent {
override val uniqueGiftNumber: Int? = null,
@SerialName(nextTransferDateField)
override val nextTransferDate: TelegramDate? = null
) : Regular, GiftSentOrReceived.ReceivedInBusinessAccount {
) : RegularGift, GiftSentOrReceivedEvent.ReceivedInBusinessAccount {
override val textSources: List<TextSource> by lazy {
entities ?.asTextSources(text ?: return@lazy emptyList()) ?: emptyList()
}
}
companion object : KSerializer<GiftSentOrReceived.Regular> {
companion object : KSerializer<GiftSentOrReceivedEvent.RegularGift> {
@Serializable
private data class Surrogate(
@SerialName(giftField)
@@ -145,14 +148,14 @@ sealed interface GiftSentOrReceived : CommonEvent {
override val descriptor: SerialDescriptor
get() = Surrogate.serializer().descriptor
override fun serialize(encoder: Encoder, value: Regular) {
override fun serialize(encoder: Encoder, value: RegularGift) {
when (value) {
is Common -> Common.serializer().serialize(encoder, value)
is ReceivedInBusinessAccount -> ReceivedInBusinessAccount.serializer().serialize(encoder, value)
}
}
override fun deserialize(decoder: Decoder): Regular {
override fun deserialize(decoder: Decoder): RegularGift {
val surrogate = Surrogate.serializer().deserialize(decoder)
return when {
@@ -227,8 +230,14 @@ sealed interface GiftSentOrReceived : CommonEvent {
}
}
@Serializable(Unique.Companion::class)
sealed interface Unique : GiftSentOrReceived {
/**
* Represent the hierarchy of [UniqueGiftInfo](https://core.telegram.org/bots/api#uniquegiftinfo).
*
* * For `UniqueGiftInfo` **with** `owned_gift_id` see [UniqueGift.ReceivedInBusinessAccount]
* * For all other kinds see [UniqueGift.Common]
*/
@Serializable(UniqueGift.Companion::class)
sealed interface UniqueGift : GiftSentOrReceivedEvent {
override val gift: Gift.Unique
val origin: String?
val originTyped: Origin?
@@ -299,7 +308,7 @@ sealed interface GiftSentOrReceived : CommonEvent {
override val transferStarCount: Int? = null,
@SerialName(nextTransferDateField)
override val nextTransferDate: TelegramDate? = null
) : Unique {
) : UniqueGift {
override val ownedGiftId: GiftId?
get() = null
@@ -344,7 +353,7 @@ sealed interface GiftSentOrReceived : CommonEvent {
override val transferStarCount: Int? = null,
@SerialName(nextTransferDateField)
override val nextTransferDate: TelegramDate? = null
) : Unique, GiftSentOrReceived.ReceivedInBusinessAccount {
) : UniqueGift, GiftSentOrReceivedEvent.ReceivedInBusinessAccount {
@Transient
override val origin: String? = originTyped ?.string
@@ -369,7 +378,7 @@ sealed interface GiftSentOrReceived : CommonEvent {
)
}
companion object : KSerializer<GiftSentOrReceived.Unique> {
companion object : KSerializer<GiftSentOrReceivedEvent.UniqueGift> {
@Serializable
private data class Surrogate(
@SerialName(giftField)
@@ -393,14 +402,14 @@ sealed interface GiftSentOrReceived : CommonEvent {
override val descriptor: SerialDescriptor
get() = Surrogate.serializer().descriptor
override fun serialize(encoder: Encoder, value: Unique) {
override fun serialize(encoder: Encoder, value: UniqueGift) {
when (value) {
is Common -> Common.serializer().serialize(encoder, value)
is ReceivedInBusinessAccount -> ReceivedInBusinessAccount.serializer().serialize(encoder, value)
}
}
override fun deserialize(decoder: Decoder): Unique {
override fun deserialize(decoder: Decoder): UniqueGift {
val surrogate = Surrogate.serializer().deserialize(decoder)
return when {
@@ -450,3 +459,6 @@ sealed interface GiftSentOrReceived : CommonEvent {
}
}
}
@Deprecated("Renamed to GiftSentOrReceivedEvent", ReplaceWith("GiftSentOrReceivedEvent", "dev.inmo.tgbotapi.types.gifts.GiftSentOrReceivedEvent"))
typealias GiftSentOrReceived = GiftSentOrReceivedEvent

View File

@@ -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")
}
}
}
}

View File

@@ -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)
}
}
}

View File

@@ -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"
}

View File

@@ -1,7 +1,9 @@
package dev.inmo.tgbotapi.types.gifts.unique
import dev.inmo.tgbotapi.types.files.Sticker
import dev.inmo.tgbotapi.types.gifts.Rarity
import dev.inmo.tgbotapi.types.nameField
import dev.inmo.tgbotapi.types.rarityField
import dev.inmo.tgbotapi.types.rarityPerMilleField
import dev.inmo.tgbotapi.types.stickerField
import kotlinx.serialization.SerialName
@@ -15,5 +17,7 @@ data class UniqueGiftModel(
@SerialName(stickerField)
val sticker: Sticker,
@SerialName(rarityPerMilleField)
val rarityPerMille: Int
val rarityPerMille: Int,
@SerialName(rarityField)
val rarity: Rarity? = null
)

View File

@@ -0,0 +1,13 @@
package dev.inmo.tgbotapi.types.message.ChatEvents
import dev.inmo.tgbotapi.types.chat.CommonUser
import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.PublicChatEvent
import dev.inmo.tgbotapi.types.newOwnerField
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
@Serializable
data class ChatOwnerChanged(
@SerialName(newOwnerField)
val newOwner: CommonUser
) : PublicChatEvent

View File

@@ -0,0 +1,13 @@
package dev.inmo.tgbotapi.types.message.ChatEvents
import dev.inmo.tgbotapi.types.chat.CommonUser
import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.PublicChatEvent
import dev.inmo.tgbotapi.types.newOwnerField
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
@Serializable
data class ChatOwnerLeft(
@SerialName(newOwnerField)
val newOwner: CommonUser? = null
) : PublicChatEvent

View File

@@ -0,0 +1,3 @@
package dev.inmo.tgbotapi.types.message.ChatEvents.abstracts
interface PrivateForumEvent : PrivateEvent

View File

@@ -5,6 +5,7 @@ import dev.inmo.tgbotapi.types.iconColorField
import dev.inmo.tgbotapi.types.iconCustomEmojiIdField
import dev.inmo.tgbotapi.types.isNameImplicitField
import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.ForumEvent
import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.PrivateForumEvent
import dev.inmo.tgbotapi.types.nameField
import dev.inmo.tgbotapi.utils.RGBColor
import kotlinx.serialization.SerialName
@@ -20,4 +21,4 @@ data class ForumTopicCreated(
val iconEmojiId: CustomEmojiId? = null,
@SerialName(isNameImplicitField)
val isNameImplicit: Boolean = false
) : ForumEvent
) : ForumEvent, PrivateForumEvent

View File

@@ -4,6 +4,7 @@ import dev.inmo.tgbotapi.types.CustomEmojiId
import dev.inmo.tgbotapi.types.iconColorField
import dev.inmo.tgbotapi.types.iconCustomEmojiIdField
import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.ForumEvent
import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.PrivateForumEvent
import dev.inmo.tgbotapi.types.nameField
import dev.inmo.tgbotapi.utils.RGBColor
import kotlinx.serialization.SerialName
@@ -15,4 +16,4 @@ data class ForumTopicEdited(
val name: String,
@SerialName(iconCustomEmojiIdField)
val iconEmojiId: CustomEmojiId? = null
) : ForumEvent
) : ForumEvent, PrivateForumEvent

View File

@@ -185,6 +185,8 @@ data class CommonGroupContentMessageImpl<T : MessageContent>(
override val fromOffline: Boolean,
@SerialName(paidMessageStarCountField)
override val cost: Int? = null,
@SerialName(senderTagField)
override val senderTag: UserTag? = null,
) : CommonGroupContentMessage<T> {
constructor(
chat: PreviewGroupChat,
@@ -463,6 +465,8 @@ data class CommonForumContentMessageImpl<T : MessageContent>(
override val fromOffline: Boolean,
@SerialName(paidMessageStarCountField)
override val cost: Int? = null,
@SerialName(senderTagField)
override val senderTag: UserTag? = null,
) : CommonForumContentMessage<T> {
constructor(
chat: PreviewForumChat,
@@ -520,6 +524,8 @@ data class CommonChannelDirectMessagesContentMessageImpl<T : MessageContent>(
override val fromOffline: Boolean,
@SerialName(paidMessageStarCountField)
override val cost: Int? = null,
@SerialName(senderTagField)
override val senderTag: UserTag? = null
) : CommonChannelDirectMessagesContentMessage<T> {
constructor(
chat: PreviewChannelDirectMessagesChat,
@@ -577,7 +583,9 @@ data class CommonSuggestedChannelDirectMessagesContentMessageImpl<T : MessageCon
override val fromOffline: Boolean,
override val suggestedPostInfo: SuggestedPostInfo,
@SerialName(paidMessageStarCountField)
override val cost: Int? = null
override val cost: Int? = null,
@SerialName(senderTagField)
override val senderTag: UserTag? = null
) : CommonSuggestedChannelDirectMessagesContentMessage<T> {
constructor(
chat: PreviewChannelDirectMessagesChat,

View File

@@ -0,0 +1,17 @@
package dev.inmo.tgbotapi.types.message
import korlibs.time.DateTime
import dev.inmo.tgbotapi.types.MessageId
import dev.inmo.tgbotapi.types.chat.PreviewPrivateChat
import dev.inmo.tgbotapi.types.chat.PreviewPrivateForumChat
import dev.inmo.tgbotapi.types.chat.PrivateChat
import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.PrivateEvent
import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.PrivateForumEvent
import dev.inmo.tgbotapi.types.message.abstracts.ChatEventMessage
data class PrivateForumEventMessage<T : PrivateForumEvent>(
override val messageId: MessageId,
override val chat: PreviewPrivateForumChat,
override val chatEvent: T,
override val date: DateTime
) : ChatEventMessage<T>

View File

@@ -14,7 +14,7 @@ import dev.inmo.tgbotapi.types.dice.Dice
import dev.inmo.tgbotapi.types.files.*
import dev.inmo.tgbotapi.types.files.Sticker
import dev.inmo.tgbotapi.types.games.RawGame
import dev.inmo.tgbotapi.types.gifts.GiftSentOrReceived
import dev.inmo.tgbotapi.types.gifts.GiftSentOrReceivedEvent
import dev.inmo.tgbotapi.types.giveaway.*
import dev.inmo.tgbotapi.types.message.content.GiveawayContent
import dev.inmo.tgbotapi.types.location.Location
@@ -65,6 +65,7 @@ internal data class RawMessage(
private val direct_messages_topic: DirectMessagesTopic? = null,
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
private val from: PreviewUser? = null,
private val sender_tag: UserTag? = null,
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
private val sender_chat: PreviewPublicChat? = null,
private val forward_origin: MessageOrigin? = null,
@@ -199,9 +200,11 @@ internal data class RawMessage(
private val suggested_post_refunded: SuggestedPostRefunded? = null,
private val suggested_post_info: SuggestedPostInfo? = null,
// Gifts
private val gift: GiftSentOrReceived.Regular? = null,
private val unique_gift: GiftSentOrReceived.Unique? = null,
private val gift_upgrade_sent: GiftSentOrReceived? = null,
private val gift: GiftSentOrReceivedEvent.RegularGift? = null,
private val unique_gift: GiftSentOrReceivedEvent.UniqueGift? = null,
private val gift_upgrade_sent: GiftSentOrReceivedEvent.RegularGift? = null,
private val chat_owner_left: ChatOwnerLeft? = null,
private val chat_owner_changed: ChatOwnerChanged? = null,
) {
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
private val checkedFrom = from ?.takeIf { !it.isFakeTelegramUser() }
@@ -300,6 +303,8 @@ internal data class RawMessage(
forum_topic_reopened != null -> forum_topic_reopened
video_chat_ended != null -> video_chat_ended
video_chat_participants_invited != null -> video_chat_participants_invited
chat_owner_left != null -> chat_owner_left
chat_owner_changed != null -> chat_owner_changed
delete_chat_photo -> DeleteChatPhoto()
group_chat_created -> GroupChatCreated(
migrate_to_chat_id
@@ -380,12 +385,37 @@ internal data class RawMessage(
chatEvent as? ChannelEvent ?: throwWrongChatEvent(ChannelEvent::class, chatEvent),
date.asDate
)
is PreviewPrivateChat -> PrivateEventMessage(
messageId,
chat,
chatEvent as? PrivateEvent ?: throwWrongChatEvent(PrivateEvent::class, chatEvent),
date.asDate
)
is PreviewPrivateChat -> if (chat is PrivateForumChat || is_topic_message == true || messageThreadId != null) {
PrivateEventMessage(
messageId,
if (chat is PrivateForumChat) {
chat
} else {
PrivateForumChatImpl(
id = if (messageThreadId == null) {
chat.id
} else {
ChatIdWithThreadId(
chat.id.chatId,
chat.id.threadId ?: messageThreadId
)
},
username = chat.username,
firstName = chat.firstName,
lastName = chat.lastName
)
},
chatEvent as? PrivateEvent ?: throwWrongChatEvent(PrivateEvent::class, chatEvent),
date.asDate
)
} else {
PrivateEventMessage(
messageId,
chat,
chatEvent as? PrivateEvent ?: throwWrongChatEvent(PrivateEvent::class, chatEvent),
date.asDate
)
}
else -> error("Expected one of the public chats, but was $chat (in extracting of chat event message)")
}
} ?: content?.let { content ->
@@ -447,6 +477,7 @@ internal data class RawMessage(
senderBoostsCount = sender_boost_count,
fromOffline = is_from_offline,
cost = paid_star_count,
senderTag = sender_tag,
)
}
}
@@ -490,6 +521,7 @@ internal data class RawMessage(
fromOffline = is_from_offline,
suggestedPostInfo = suggested_post_info,
cost = paid_star_count,
senderTag = sender_tag,
)
}
}
@@ -596,6 +628,7 @@ internal data class RawMessage(
senderBoostsCount = sender_boost_count,
fromOffline = is_from_offline,
cost = paid_star_count,
senderTag = sender_tag,
)
}
} else {
@@ -669,6 +702,7 @@ internal data class RawMessage(
senderBoostsCount = sender_boost_count,
fromOffline = is_from_offline,
cost = paid_star_count,
senderTag = sender_tag
)
}
}
@@ -744,6 +778,7 @@ internal data class RawMessage(
senderBoostsCount = sender_boost_count,
fromOffline = is_from_offline,
cost = paid_star_count,
senderTag = sender_tag,
)
}
}

View File

@@ -2,6 +2,7 @@ package dev.inmo.tgbotapi.types.message
import dev.inmo.micro_utils.common.Warning
import dev.inmo.tgbotapi.types.CustomEmojiId
import dev.inmo.tgbotapi.types.UnixTimeStamp
import dev.inmo.tgbotapi.types.chat.User
import dev.inmo.tgbotapi.types.message.textsources.*
import kotlinx.serialization.Serializable
@@ -15,7 +16,9 @@ data class RawMessageEntity(
val url: String? = null,
val user: User? = null,
val language: String? = null,
val custom_emoji_id: CustomEmojiId? = null
val custom_emoji_id: CustomEmojiId? = null,
val unix_time: UnixTimeStamp? = null,
val date_time_format: String? = null
) {
internal val range by lazy {
offset until (offset + length)
@@ -43,6 +46,7 @@ data class RawMessageEntity(
"code" -> 2
"pre" -> 2
"text_link" -> 2
"date_time" -> 2
else -> 2
}
}
@@ -75,6 +79,11 @@ fun RawMessageEntity.asTextSource(
sourceSubstring,
url ?: throw IllegalStateException("URL must not be null for text link")
)
"date_time" -> DateTimeTextSource(
sourceSubstring,
unix_time ?: throw IllegalStateException("Unix time must not be null for date_time"),
date_time_format
)
"text_mention" -> TextMentionTextSource(
sourceSubstring,
user ?: throw IllegalStateException("User must not be null for text mention"),
@@ -200,6 +209,7 @@ fun TextSource.toRawMessageEntities(offset: Int = 0): List<RawMessageEntity> {
is StrikethroughTextSource -> RawMessageEntity("strikethrough", offset, length)
is SpoilerTextSource -> RawMessageEntity("spoiler", offset, length)
is CustomEmojiTextSource -> RawMessageEntity("custom_emoji", offset, length, custom_emoji_id = customEmojiId)
is DateTimeTextSource -> RawMessageEntity("date_time", offset, length, unix_time = unixTimeStamp, date_time_format = dateTimeFormat)
is RegularTextSource -> null
}
) + if (this is MultilevelTextSource) {

View File

@@ -1,8 +1,8 @@
package dev.inmo.tgbotapi.types.message.abstracts
import dev.inmo.tgbotapi.requests.chat.forum.CreateForumTopic
import dev.inmo.tgbotapi.types.DirectMessageThreadId
import dev.inmo.tgbotapi.types.MessageThreadId
import dev.inmo.tgbotapi.types.UserTag
import dev.inmo.tgbotapi.types.chat.*
import dev.inmo.tgbotapi.types.message.ChatEvents.forum.ForumTopicCreated
import dev.inmo.tgbotapi.types.message.ChatEvents.suggested.SuggestedPostInfo
@@ -14,6 +14,7 @@ sealed interface GroupContentMessage<T : MessageContent> : PublicContentMessage<
sealed interface PotentiallyFromUserGroupContentMessage<T : MessageContent> : GroupContentMessage<T> {
val senderBoostsCount: Int?
val senderTag: UserTag?
}
sealed interface ForumContentMessage<T : MessageContent> : GroupContentMessage<T>, PossiblyTopicMessage {

View File

@@ -0,0 +1,26 @@
package dev.inmo.tgbotapi.types.message.textsources
import dev.inmo.tgbotapi.types.UnixTimeStamp
import dev.inmo.tgbotapi.utils.RiskFeature
import dev.inmo.tgbotapi.utils.internal.*
import kotlinx.serialization.Serializable
/**
* @see linkTextSource
*/
@Serializable
data class DateTimeTextSource @RiskFeature(DirectInvocationOfTextSourceConstructor) constructor (
override val source: String,
val unixTimeStamp: UnixTimeStamp,
val dateTimeFormat: String?
) : TextSource {
override val markdown: String by lazy { source.dateTimeMarkdown(unixTimeStamp, dateTimeFormat) }
override val markdownV2: String by lazy { source.dateTimeMarkdownV2(unixTimeStamp, dateTimeFormat) }
override val html: String by lazy { source.dateTimeHTML(unixTimeStamp, dateTimeFormat) }
}
fun dateTimeTextSource(
text: String,
unixTimeStamp: UnixTimeStamp,
dateTimeFormat: String?
) = DateTimeTextSource(text, unixTimeStamp, dateTimeFormat)

Some files were not shown because too many files have changed in this diff Show More