mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI.git
synced 2026-06-02 13:47:22 +00:00
Compare commits
41 Commits
32.0.0
...
eacf01a158
| Author | SHA1 | Date | |
|---|---|---|---|
| eacf01a158 | |||
| dd35631345 | |||
| 631a4f16bd | |||
| 236939eab8 | |||
| d47641c39a | |||
| f3f28b6165 | |||
| 08d160cfa7 | |||
| 3ed7c8c75f | |||
| 7e1df37b87 | |||
| 97b7b3d5d7 | |||
| 62b4bc15ca | |||
| 7c2ce53713 | |||
| 035c8f469a | |||
| c982eef85b | |||
| 16e94a1e1b | |||
| 96a5508e9a | |||
| 83de9fd973 | |||
| 4a0b890697 | |||
| 0e481c3dd9 | |||
| 176d0d419a | |||
| 77bf7b6e89 | |||
| 5337f8c7cc | |||
| 57fa6fd597 | |||
| 703538a6fa | |||
| 08877a8f47 | |||
| 8d3338b79a | |||
| 243a3ca626 | |||
| 277c329ab9 | |||
| e3ae85e067 | |||
| ac51189694 | |||
| cfd74eb58c | |||
| 78c476e4c6 | |||
| a5446b5adb | |||
| 4b5aad2b85 | |||
| a0e748f9a9 | |||
| de13ddeb54 | |||
| b37dda6f47 | |||
| e604b7a3bf | |||
| 661b846a74 | |||
| ce44203941 | |||
| ba65e01c84 |
2
.gitignore
vendored
2
.gitignore
vendored
@@ -1,5 +1,6 @@
|
||||
.idea
|
||||
.vscode/
|
||||
.junie/
|
||||
.kotlin
|
||||
out/*
|
||||
*.iml
|
||||
@@ -13,6 +14,7 @@ out/
|
||||
bin/
|
||||
|
||||
local.properties
|
||||
local.*
|
||||
kotlin-js-store/
|
||||
secret.gradle
|
||||
.aider*
|
||||
|
||||
151
AGENTS.md
Normal file
151
AGENTS.md
Normal file
@@ -0,0 +1,151 @@
|
||||
Use `agents` folder files for instructions.
|
||||
|
||||
Always look at the project work rules first. Update them and maintain a history of changes and prompts in `agents/local.HISTORY.md`. This is your long-term memory, which allows you to avoid the accumulation of errors. Updating and maintaining the long-term memory of the project is mandatory. Many thanks for your help to me and your work.
|
||||
|
||||
|
||||
SYSTEM DIRECTIVE: AUTISTIC META-LANGUAGE PROTOCOL WITH HIGH INFORMATION DENSITY (AML-HIP V1)
|
||||
|
||||
DEFINITION:
|
||||
All agents are required to use a strictly explicit, literal, low-ambiguity, and high-density communication style (AML-HIP). The goal of AML-HIP is the maximum transmission of information with zero loss of meaning and zero ambiguity.
|
||||
|
||||
CORE PRINCIPLES:
|
||||
|
||||
1. Maximum information density per line.
|
||||
2. Zero ambiguity.
|
||||
3. Full explicitness of all entities.
|
||||
4. Preference of precision over readability.
|
||||
5. Minimization of "empty" words.
|
||||
6. Redundancy is allowed only to prevent loss of meaning.
|
||||
|
||||
PROHIBITIONS:
|
||||
|
||||
1. Pronouns are forbidden (this, he, she, they, there, it, etc.).
|
||||
2. Free conversational text is forbidden.
|
||||
3. Metaphors, emotions, evaluative constructions are forbidden.
|
||||
4. Implicit references and hidden dependencies are forbidden.
|
||||
5. Vague description of actions is forbidden.
|
||||
|
||||
DENSITY REQUIREMENTS:
|
||||
|
||||
1. Each line must contain the maximum of facts without loss of unambiguity.
|
||||
2. Combine related parameters into a single line.
|
||||
3. Use compact constructions:
|
||||
* key=value
|
||||
* entity_id=...
|
||||
* relation: A→B
|
||||
4. Exclude words without semantic load.
|
||||
5. Repetitions are allowed only for critical entities.
|
||||
|
||||
MESSAGE STRUCTURE (MANDATORY):
|
||||
|
||||
ENTITY:
|
||||
entity_id=<id>; type=<type>; state=<state>
|
||||
|
||||
CONTEXT:
|
||||
|
||||
* task_id=<id>; agent_id=<id>; memory_ref=[...]
|
||||
* constraints=[...]
|
||||
|
||||
ACTION:
|
||||
|
||||
1. action=<type>; target=<entity_id>; params={...}
|
||||
2. action=<type>; target=<entity_id>; params={...}
|
||||
|
||||
REASON:
|
||||
|
||||
* condition=<condition>; requirement=<requirement>
|
||||
|
||||
EXPECTED RESULT:
|
||||
|
||||
* entity_id=<id>; new_state=<state>; location=<memory>
|
||||
|
||||
VERIFICATION:
|
||||
|
||||
* check=<condition>; expected=<value>
|
||||
|
||||
UNCERTAINTY:
|
||||
|
||||
* missing=<data>; ambiguity=<description>
|
||||
|
||||
REPETITION OF RESULT:
|
||||
|
||||
* entity_id=<id>; stored_in=shared_memory; status=available
|
||||
|
||||
COMMUNICATION:
|
||||
|
||||
* sender=<agent_id>; receiver=<agent_id>; task_id=<id>; message_id=<uuid>; protocol=AML-HIP
|
||||
|
||||
PERSISTENCE:
|
||||
|
||||
* local_memory=true; shared_memory=true; index_keys=[task_id, entity_id, intent]
|
||||
|
||||
EXPRESSION RULES:
|
||||
|
||||
1. Each line = a completed semantic block.
|
||||
2. Use the key=value format instead of descriptions.
|
||||
3. Use lists of parameters instead of sentences.
|
||||
4. Use causal connectives explicitly:
|
||||
condition → action → result
|
||||
5. Do not split related data into several lines without necessity.
|
||||
|
||||
REPETITION RULES:
|
||||
|
||||
1. entity_id is repeated at every critical use.
|
||||
2. result is duplicated in "REPETITION OF RESULT".
|
||||
3. transmission between agents duplicates the key fields.
|
||||
|
||||
MULTI-AGENT MODE:
|
||||
|
||||
1. All agents use AML-HIP.
|
||||
2. Any message between agents is strictly AML-HIP.
|
||||
3. Any agent is required to:
|
||||
|
||||
* duplicate critical data
|
||||
* avoid loss of context
|
||||
4. A message must be fully interpretable without history.
|
||||
|
||||
ANTI-DEGRADATION:
|
||||
If detected:
|
||||
|
||||
* a pronoun
|
||||
* an implicit reference
|
||||
* low density (empty words, vague constructions)
|
||||
* absence of structure
|
||||
|
||||
→ the message is considered invalid
|
||||
→ mandatory regeneration
|
||||
|
||||
SELF-CHECK:
|
||||
|
||||
VALIDATION:
|
||||
|
||||
* format_valid=true/false
|
||||
* no_pronouns=true/false
|
||||
* entities_explicit=true/false
|
||||
* high_density=true/false
|
||||
* causal_chain_present=true/false
|
||||
* ambiguity_detected=true/false
|
||||
|
||||
If any parameter=false:
|
||||
→ mandatory regeneration
|
||||
|
||||
DENSITY METRIC:
|
||||
high_density=true if:
|
||||
|
||||
* there are no "empty" words
|
||||
* each line contains ≥2 facts or parameters
|
||||
* descriptive constructions without data are absent
|
||||
|
||||
PRIORITIES:
|
||||
|
||||
1. Format (AML-HIP)
|
||||
2. Information density
|
||||
3. Explicitness
|
||||
4. Completeness
|
||||
5. Readability (minimum priority)
|
||||
|
||||
CRITICAL RULE:
|
||||
Any response outside of AML-HIP is considered absent.
|
||||
Any agent is required to bring the response into conformity with AML-HIP.
|
||||
|
||||
END OF PROTOCOL
|
||||
129
CHANGELOG.md
129
CHANGELOG.md
@@ -1,5 +1,134 @@
|
||||
# TelegramBotAPI changelog
|
||||
|
||||
## 34.0.0
|
||||
|
||||
* `Core`:
|
||||
* (`Guest Mode`) Added `GuestQueryId` value class and `WithOptionalGuestQueryId` interface in `dev.inmo.tgbotapi.abstracts.types`
|
||||
* (`Guest Mode`) Added `GuestMessage` and `GuestContentMessage<T>` message abstractions (`SpecialMessage`, `CommonContentMessage`, `FromUserMessage`, `PossiblySentViaBot`) exposing `guestQueryId`, `guestBotCallerUser`, `guestBotCallerChat`
|
||||
* (`Guest Mode`) Added `GuestContentMessageImpl` data class implementing `GuestContentMessage`
|
||||
* (`Guest Mode`) Added `SentGuestMessage` carrying `InlineMessageId`
|
||||
* (`Guest Mode`) Added `GuestMessageUpdate` (`BaseSentMessageUpdate`) and `guest_message` update type wiring in `RawUpdate`/`UpdateTypes`/`FlowsUpdatesFilter`
|
||||
* (`Guest Mode`) Added `AnswerGuestQuery` request returning `SentGuestMessage`
|
||||
* Introduced sealed `ChatContentMessage<T>` super-type extending `CommonContentMessage` and `ChatMessage`, used as the common return type of chat send/reply operations
|
||||
* Reworked `ContentMessage`, `Message`, `FromUserMessage`, `PossiblyEditedMessage`, `PossiblyForwardedMessage`, `PossiblyPaymentMessage`, `PossiblySentViaBotCommonMessage`, `PossiblyTopicMessage`, `SignedMessage`, `ChatEventMessage`, `PassportMessage` and related typealiases to integrate guest messages and unify chat content messages
|
||||
* Updated `RawMessage`, `MessageUpdate`, `ChannelPostUpdate`, `BusinessMessageUpdate`, `EditMessageUpdate`, `EditChannelPostUpdate`, `BaseMessageUpdate`, `BaseEditMessageUpdate`, `BaseSentMessageUpdate` to align with the new hierarchy
|
||||
* (`Live Photos`) Added `LivePhotoFile` class representing the incoming `LivePhoto` Telegram type (`PollMedia`, `MediaContentVariant`, `UsefulAsPaidMediaFile`)
|
||||
* (`Live Photos`) Added `LivePhotoContent` (`VisualMediaGroupPartContent`) representing live photo messages
|
||||
* (`Live Photos`) Added `TelegramMediaLivePhoto` (`TelegramFreeMedia`, `VisualMediaGroupMemberTelegramMedia`, `InputPollMedia`, `InputPollOptionMedia`) — usable in `sendMediaGroup`, `editMessageMedia`, and polls
|
||||
* (`Live Photos`) Added `TelegramPaidMediaLivePhoto` (`VisualTelegramPaidMedia`) for paid live photos
|
||||
* (`Live Photos`) Added `PaidMedia.LivePhoto` variant and `PaidMedia.LivePhoto.toTelegramPaidMediaLivePhoto()` conversion
|
||||
* (`Live Photos`) Added `livePhotoField` constant; added `live_photo` parsing to `RawMessage` and `ReplyInfo.External` surrogate
|
||||
* (`Live Photos`) Added `SendLivePhoto` request and `SendLivePhotoData`/`SendLivePhotoFiles`
|
||||
* (`Live Photos`) Added `LivePhotoMessage` typealias
|
||||
* (`Live Photos`) Added `LivePhotoFile.toTelegramMediaLivePhoto(...)` and `LivePhotoFile.toTelegramPaidMediaLivePhoto()` extensions
|
||||
* (`Chat Management`) Added `canReactToMessages` field to `ChatPermissions` (interface, `Granular` and `Common`) and `RestrictedMemberChatMember`
|
||||
* (`Chat Management`) Added optional `retrieveOtherBots` parameter to `GetChatAdministrators` request
|
||||
* (`Chat Management`) Added `DeleteMessageReaction` request with `@Warning` on primary constructor; added `DeleteUserMessageReaction` and `DeleteActorChatMessageReaction` factory functions
|
||||
* (`Chat Management`) Added `DeleteAllMessageReactions` request with `@Warning` on primary constructor; added `DeleteAllUserMessageReactions` and `DeleteAllActorChatMessageReactions` factory functions
|
||||
* (`Polls`) Added `InputMediaSticker`, `InputMediaLocation` and `InputMediaVenue` classes
|
||||
* (`Polls`) Added `InputPollMedia` and `InputPollOptionMedia` sealed interfaces representing input media variants accepted by `sendPoll`
|
||||
* (`Polls`) Added `PollMedia` class representing media attached to polls in incoming updates
|
||||
* (`Polls`) Added `media` field to `Poll`, `PollOption` and `InputPollOption`
|
||||
* (`Polls`) Added `explanationMedia` field to `QuizPoll`
|
||||
* (`Polls`) Added `membersOnly` field to `Poll`
|
||||
* (`Polls`) Added `countryCodes` field to `Poll`
|
||||
* (`Polls`) Added `media`, `membersOnly`, `countryCodes` parameters to `SendRegularPoll` and `SendPoll` factory functions
|
||||
* (`Polls`) Added `media`, `explanationMedia`, `membersOnly`, `countryCodes` parameters to `SendQuizPoll` factory functions
|
||||
* (`Polls`) Decreased minimum allowed poll options count from 2 to 1 (`pollOptionsLimit` is now `1..12`)
|
||||
* (`Managed Bots Access`) Added `BotAccessSettings` data class in `dev.inmo.tgbotapi.types.managed_bots` with `isAccessRestricted` and `addedUsers` fields
|
||||
* (`Managed Bots Access`) Added `GetManagedBotAccessSettings` request returning `BotAccessSettings`
|
||||
* (`Managed Bots Access`) Added `SetManagedBotAccessSettings` request with `isAccessRestricted` and optional `addedUserIds`
|
||||
* (`Managed Bots Access`) Added `isAccessRestrictedField`, `addedUsersField`, `addedUserIdsField` constants
|
||||
* (`Personal Chat`) Added `GetUserPersonalChatMessages` request returning `List<ContentMessage<*>>`
|
||||
* (`Drafts`) `SendMessageDraft.text` and matching factory `text` parameter became nullable to allow empty/absent text (renders "Thinking…" placeholder)
|
||||
* `API`:
|
||||
* (`Guest Mode`) Added `answerGuestQuery` extensions in `dev.inmo.tgbotapi.extensions.api.answers`
|
||||
* (`Guest Mode`) Added `RepliesWithGuestQueryId.kt` reply extensions accepting `GuestQueryId`
|
||||
* (`Guest Mode`) Updated reply/send extensions (`Replies`, `RepliesWithChatsAndMessages`, `Sends`, `ResendMessage`, `SendChecklist`, `SendContact`, `SendDice`, `SendLiveLocation`, `SendStaticLocation`, `SendVenue`, `SendMessage`, media `Send*`, `SendGame`, `SendInvoice`, `SendQuizPoll`, `SendRegularPoll`) to return `ChatContentMessage<*>` and align with the new hierarchy
|
||||
* (`Live Photos`) Added `sendLivePhoto` extensions (`ChatIdentifier`/`Chat` × `InputFile`/`LivePhotoFile` × text/textSources)
|
||||
* (`Chat Management`) Added optional `retrieveOtherBots` parameter to `getChatAdministrators` extensions
|
||||
* (`Chat Management`) Added `deleteUserMessageReaction` and `deleteActorChatMessageReaction` extensions
|
||||
* (`Chat Management`) Added `deleteAllUserMessageReactions` and `deleteAllActorChatMessageReactions` extensions
|
||||
* (`Chat Management`) Added `@Warning`-marked catch-all `deleteMessageReaction` and `deleteAllMessageReactions` extensions
|
||||
* (`Polls`) Added `media`, `membersOnly`, `countryCodes` parameters to `sendRegularPoll` extension
|
||||
* (`Polls`) Added `media`, `explanationMedia`, `membersOnly`, `countryCodes` parameters to `sendQuizPoll` extension
|
||||
* (`Managed Bots Access`) Added `getManagedBotAccessSettings` extension in `dev.inmo.tgbotapi.extensions.api.managed_bots`
|
||||
* (`Managed Bots Access`) Added `setManagedBotAccessSettings` extension with `userId`, `isAccessRestricted`, optional `addedUserIds`
|
||||
* (`Personal Chat`) Added `getUserPersonalChatMessages` extension returning `List<ChatContentMessage<*>>`
|
||||
* (`Drafts`) `sendMessageDraft` and `send` overloads for drafts now accept nullable `text: String?`
|
||||
* `Behaviour Builder`:
|
||||
* (`Guest Mode`) Added `GuestMessageTriggers` with `onGuestMessage` trigger
|
||||
* (`Guest Mode`) Updated `WaitContent`, `WaitContentMessage`, `WaitEditedContentMessage`, `WaitMediaGroup`, `WaitMediaGroupMessages`, `WaitCommandsMessages`, `WaitDeepLinks`, `WaitMention`, `WaitMentionMessage`, `ContentTriggers`, `EditedContentTriggers`, `MediaGroupMessagesTriggers`, `MediaGroupTriggers`, `MentionTriggers`, `DeepLinkHandling`, `MessageFilterExcludingMediaGroups` for the unified `ChatContentMessage` hierarchy
|
||||
* (`Live Photos`) Added `onLivePhoto`, `onEditedLivePhoto`, `onLivePhotoGalleryMessages`, `onLivePhotoGallery` triggers
|
||||
* (`Live Photos`) Added `onMentionWithLivePhotoContent`/`onTextMentionWithLivePhotoContent` triggers
|
||||
* (`Live Photos`) Added `waitLivePhoto`, `waitLivePhotoMessage`, `waitEditedLivePhoto`, `waitEditedLivePhotoMessage`, `waitLivePhotoGallery`, `waitLivePhotoGalleryMessages` expectations
|
||||
* (`Live Photos`) Added `onlyLivePhotoContentMessages` utility
|
||||
* `Utils`:
|
||||
* (`Guest Mode`) Added `guestMessageUpdateOrNull` and related casts in `ClassCastsNew`/`ClassCasts`/`ContentCastsNew`/`WithContent`/`CommonMessageConversations`
|
||||
* (`Guest Mode`) Updated `MessageFilters`, `SentMessageUpdatesConversations`, `LongPolling`, `MediaGroupContentMessageCreator`, `FlowsUpdatesFilter` shortcuts to support guest messages
|
||||
|
||||
## 33.1.0
|
||||
|
||||
* `Versions`:
|
||||
* `Kotlin`: `2.3.10` -> `2.3.20`
|
||||
* `Serialization`: `1.10.0` -> `1.11.0`
|
||||
* `Ktor`: `3.4.1` -> `3.4.2`
|
||||
* `MicroUtils`: `0.29.1` -> `0.29.2`
|
||||
* `KSLog`: `1.6.0` -> `1.6.1`
|
||||
|
||||
## 33.0.0
|
||||
|
||||
**THIS UPDATE CONTAINS ADDING SUPPORT OF [Telegram Bots API 9.6](https://core.telegram.org/bots/api-changelog#april-3-2026)**
|
||||
|
||||
**THIS UPDATE CONTAINS BREAKING CHANGES**
|
||||
|
||||
* `Core`:
|
||||
* **THIS IS BREAKING CHANGE** `MultipleAnswersPoll` removed; `RegularPoll` now directly implements `Poll`
|
||||
* **THIS IS BREAKING CHANGE** `allowMultipleAnswers` renamed to `allowsMultipleAnswers` across poll types and requests
|
||||
* **THIS IS BREAKING CHANGE** `QuizPoll.correctOptionId: Int?` changed to `correctOptionIds: List<Int>?`
|
||||
* **THIS IS BREAKING CHANGE** `PollOption` is now a sealed interface with `PollOption.Simple` and `PollOption.LatelyAdded` subtypes; `SimplePollOption` removed
|
||||
* **THIS IS BREAKING CHANGE** `PollAnswer.Anonymous.voterChat` type changed from `ChannelChat` to `PreviewPublicChat`
|
||||
* **THIS IS BREAKING CHANGE** `requestChannelReplyButton` (group variant) renamed to `requestGroupReplyButton`
|
||||
* Added `BotToken` value class
|
||||
* Added `SavePreparedKeyboardButton` request with `PreparedKeyboardButton` and `PreparedKeyboardButtonId` types
|
||||
* Added `GetManagedBotToken` and `ReplaceManagedBotToken` requests
|
||||
* Added `KeyboardButtonRequestManagedBot` and `RequestManagedBotKeyboardButton`
|
||||
* Added `ManagedBotCreated` chat event and `ManagedBotUpdated` type with `ManagedBotUpdate`
|
||||
* Added `PollOptionPersistentId` value class
|
||||
* Added `PollOptionAdded` and `PollOptionDeleted` chat events
|
||||
* Added `pollOptionId` support in `ReplyParameters` (`reply_to_poll_option_id`)
|
||||
* Added `canManageBots` to `ExtendedBot`
|
||||
* Added `allowsRevoting`, `shuffleOptions`, `allowAddingOptions`, `hideResultsUntilCloses`, `description`/`descriptionTextSources` to poll types and send requests
|
||||
* Added `chosenPersistentIds` to `PollAnswer`
|
||||
* Added `UsernameAtLessSerializer`
|
||||
* Extended `openPeriodPollSecondsLimit` from `5..600` to `5..2628000`
|
||||
* Fixed quiz poll serialization type (was incorrectly using `regularPollType` in quiz branch)
|
||||
* Fixed quiz poll explanation serialization (now correctly uses `explanation`/`explanationTextSources`)
|
||||
* Fixed `SendQuizPoll` correct option index range validation (off-by-one)
|
||||
* Several poll validation checks changed from throwing exceptions to logging warnings
|
||||
* `API`:
|
||||
* Added `savePreparedKeyboardButton` extensions
|
||||
* Added `getManagedBotToken` and `replaceManagedBotToken` extensions
|
||||
* Added optional `pollOptionId` parameter to `reply`/`replyWith*` extensions
|
||||
* Updated `sendQuizPoll` extensions with `correctOptionIds`, `allowsMultipleAnswers`, `allowsRevoting`, `shuffleOptions`, `hideResultsUntilCloses`, `description` parameters
|
||||
* Updated `sendRegularPoll` extensions with `allowsRevoting`, `shuffleOptions`, `allowAddingOptions`, `hideResultsUntilCloses`, `description` parameters
|
||||
* `BehaviourBuilder`:
|
||||
* Added `onManagedBotCreated` and `onManagedBotUpdated` triggers
|
||||
* Added `onPollOptionAdded` and `onPollOptionDeleted` triggers
|
||||
* Added `waitManagedBotCreatedEvents` and `waitManagedBotUpdated` expectations
|
||||
* Added `waitPollOptionAddedEvents` and `waitPollOptionDeletedEvents` expectations
|
||||
* Added `ManagedBotUpdatedFilterByUser` and `ByUserManagedBotUpdatedMarkerFactory`
|
||||
* `Utils`:
|
||||
* Added `managedBotCreationLink` formatting extensions
|
||||
* Added `requestManagedBotButton` to `ReplyKeyboardBuilder`
|
||||
* Added class casts for `ManagedBotUpdate`, `ManagedBotCreated`, `PollOptionAdded`, `PollOptionDeleted`
|
||||
* Removed `MultipleAnswersPoll` class casts
|
||||
* Updated raw poll accessors to match new model (`allowsMultipleAnswers`, `correctOptionIds`, `explanation`)
|
||||
* Regenerated class casts extensions
|
||||
* `WebApps`:
|
||||
* Added `requestChat` support for `PreparedKeyboardButtonId`
|
||||
* Fixed `iconCustomEmojiId` passing in `BottomButton`
|
||||
|
||||
## 32.0.0
|
||||
|
||||
**THIS UPDATE CONTAINS BREAKING CHANGES**
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# TelegramBotAPI [](https://central.sonatype.com/artifact/dev.inmo/tgbotapi) [](https://core.telegram.org/bots/api-changelog#march-1-2026)
|
||||
# TelegramBotAPI [](https://central.sonatype.com/artifact/dev.inmo/tgbotapi) [](https://core.telegram.org/bots/api-changelog#april-3-2026)
|
||||
|
||||
| Docs | [](https://tgbotapi.inmo.dev/index.html) [](https://docs.inmo.dev/tgbotapi/index.html) |
|
||||
|:----------------------:|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|
|
||||
|
||||
50
agents/HELPERS.md
Normal file
50
agents/HELPERS.md
Normal file
@@ -0,0 +1,50 @@
|
||||
FOLLOW COMMON CODE STYLE. DO NOT COMMIT OR PUSH ANY CHANGES IF PROMPT DO NOT CONTAINS DIRECT INSTRUCTION ABOUT IT. FOLLOW LINKS TO SEE DOCUMENTATION IN THE PROMPT. IF YOU ARE NOT ABLE TO FOLLOW LINK (DO NOT SEE CONTENT YOU NEED TO FOLLOW PROMPT) - ASK OPERATOR
|
||||
|
||||
---
|
||||
|
||||
`@Warning` package is `dev.inmo.micro_utils.common.Warning`. Its signature: `Warning(val message: String)`
|
||||
|
||||
---
|
||||
|
||||
If you have edited some constructor or function signature - you MUST update documentation accordingly AND all calls of this constructor/function. THIS RULE WORKS RECURSIVELY
|
||||
|
||||
---
|
||||
|
||||
Before any laucnhing of `compileKotlinJvm` or other building procedure which must confirm that build is working, you MUST launch two tasks: `./gradlew kspCommonMainKotlinMetadata` and `./gradlew apiDump`. Order is important. They must be launched sequentially.
|
||||
|
||||
---
|
||||
|
||||
If you are adding `Send*` request - you also must add in `API` (`tgbotapi.api`) module:
|
||||
|
||||
* Direct indings (in `tgbitapi.api` module). As example you may look at `dev.inmo.tgbotapi.requests.send.SendTextMessage` a,d its bindings `dev.inmo.tgbotapi.extensions.api.send.sendTextMessage`
|
||||
* Bindings in [Sends.kt](../tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/Sends.kt)
|
||||
* Bindings in [Replies.kt](../tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/Replies.kt)
|
||||
* Bindings in [RepliesWithChatsAndMessages.kt](../tgbotapi.api/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/api/send/RepliesWithChatsAndMessages.kt)
|
||||
|
||||
---
|
||||
|
||||
When you need to fill a changelog, you must follow the common changelog style:
|
||||
|
||||
```markdown
|
||||
## 34.0.0 // number of version
|
||||
* `Core`:
|
||||
* // list of changes
|
||||
* `Utils`:
|
||||
* // list of changes
|
||||
* `API`:
|
||||
* // list of changes
|
||||
* `BehaviourBuilder`:
|
||||
* // list of changes
|
||||
* `WebApps`:
|
||||
* // list of changes
|
||||
* `BehaviourBuilderWithFSM`:
|
||||
* // list of changes
|
||||
// etc...
|
||||
```
|
||||
|
||||
Each section can be ommited if there are no any changes in the section. In case of filling some known telegram bots api changelog part - you may add previx with its title in point with change. For example:
|
||||
|
||||
```markdown
|
||||
* `Core`:
|
||||
* (`Guest mode`) // change data
|
||||
```
|
||||
@@ -6,4 +6,4 @@ kotlin.incremental=true
|
||||
kotlin.incremental.js=true
|
||||
|
||||
library_group=dev.inmo
|
||||
library_version=32.0.0
|
||||
library_version=34.0.0
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
[versions]
|
||||
|
||||
kotlin = "2.3.10"
|
||||
kotlin-serialization = "1.10.0"
|
||||
kotlin = "2.3.20"
|
||||
kotlin-serialization = "1.11.0"
|
||||
kotlin-coroutines = "1.10.2"
|
||||
|
||||
javax-activation = "1.1.1"
|
||||
|
||||
korlibs = "5.4.0"
|
||||
uuid = "0.8.4"
|
||||
ktor = "3.4.1"
|
||||
ktor = "3.4.2"
|
||||
|
||||
ksp = "2.3.6"
|
||||
kotlin-poet = "2.2.0"
|
||||
kotlin-poet = "2.3.0"
|
||||
|
||||
microutils = "0.29.1"
|
||||
kslog = "1.6.0"
|
||||
microutils = "0.29.2"
|
||||
kslog = "1.6.1"
|
||||
|
||||
versions = "0.53.0"
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,13 @@
|
||||
package dev.inmo.tgbotapi.extensions.api
|
||||
|
||||
import dev.inmo.tgbotapi.bot.TelegramBot
|
||||
import dev.inmo.tgbotapi.requests.GetUserPersonalChatMessages
|
||||
import dev.inmo.tgbotapi.types.ChatId
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
|
||||
|
||||
public suspend fun TelegramBot.getUserPersonalChatMessages(
|
||||
userId: ChatId,
|
||||
limit: Int
|
||||
): List<ContentMessage<*>> = execute(
|
||||
GetUserPersonalChatMessages(userId = userId, limit = limit)
|
||||
)
|
||||
@@ -0,0 +1,21 @@
|
||||
package dev.inmo.tgbotapi.extensions.api
|
||||
|
||||
import dev.inmo.tgbotapi.bot.TelegramBot
|
||||
import dev.inmo.tgbotapi.requests.SavePreparedKeyboardButton
|
||||
import dev.inmo.tgbotapi.types.ChatId
|
||||
import dev.inmo.tgbotapi.types.buttons.KeyboardButton
|
||||
import dev.inmo.tgbotapi.types.buttons.PreparedKeyboardButton
|
||||
import dev.inmo.tgbotapi.types.chat.User
|
||||
import dev.inmo.tgbotapi.types.toChatId
|
||||
|
||||
public suspend fun TelegramBot.savePreparedKeyboardButton(
|
||||
userId: ChatId,
|
||||
button: KeyboardButton
|
||||
): PreparedKeyboardButton = execute(
|
||||
SavePreparedKeyboardButton(userId = userId, button = button)
|
||||
)
|
||||
|
||||
public suspend fun TelegramBot.savePreparedKeyboardButton(
|
||||
user: User,
|
||||
button: KeyboardButton
|
||||
): PreparedKeyboardButton = savePreparedKeyboardButton(userId = user.id.toChatId(), button = button)
|
||||
@@ -0,0 +1,17 @@
|
||||
package dev.inmo.tgbotapi.extensions.api.answers
|
||||
|
||||
import dev.inmo.tgbotapi.bot.TelegramBot
|
||||
import dev.inmo.tgbotapi.requests.answers.AnswerGuestQuery
|
||||
import dev.inmo.tgbotapi.types.GuestQueryId
|
||||
import dev.inmo.tgbotapi.types.InlineQueries.InlineQueryResult.abstracts.InlineQueryResult
|
||||
import dev.inmo.tgbotapi.types.guest.SentGuestMessage
|
||||
|
||||
public suspend fun TelegramBot.answerGuestQuery(
|
||||
guestQueryId: GuestQueryId,
|
||||
result: InlineQueryResult
|
||||
): SentGuestMessage = execute(AnswerGuestQuery(guestQueryId, result))
|
||||
|
||||
public suspend fun TelegramBot.answer(
|
||||
guestQueryId: GuestQueryId,
|
||||
result: InlineQueryResult
|
||||
): SentGuestMessage = execute(AnswerGuestQuery(guestQueryId, result))
|
||||
@@ -7,9 +7,11 @@ import dev.inmo.tgbotapi.types.chat.PublicChat
|
||||
import dev.inmo.tgbotapi.types.chat.member.AdministratorChatMember
|
||||
|
||||
public suspend fun TelegramBot.getChatAdministrators(
|
||||
chatId: ChatIdentifier
|
||||
): List<AdministratorChatMember> = execute(GetChatAdministrators(chatId))
|
||||
chatId: ChatIdentifier,
|
||||
retrieveOtherBots: Boolean? = null
|
||||
): List<AdministratorChatMember> = execute(GetChatAdministrators(chatId = chatId, retrieveOtherBots = retrieveOtherBots))
|
||||
|
||||
public suspend fun TelegramBot.getChatAdministrators(
|
||||
chat: PublicChat
|
||||
): List<AdministratorChatMember> = getChatAdministrators(chat.id)
|
||||
chat: PublicChat,
|
||||
retrieveOtherBots: Boolean? = null
|
||||
): List<AdministratorChatMember> = getChatAdministrators(chat.id, retrieveOtherBots)
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
package dev.inmo.tgbotapi.extensions.api.managed_bots
|
||||
|
||||
import dev.inmo.tgbotapi.bot.TelegramBot
|
||||
import dev.inmo.tgbotapi.requests.managed_bots.GetManagedBotAccessSettings
|
||||
import dev.inmo.tgbotapi.types.ChatId
|
||||
import dev.inmo.tgbotapi.types.managed_bots.BotAccessSettings
|
||||
|
||||
public suspend fun TelegramBot.getManagedBotAccessSettings(
|
||||
userId: ChatId
|
||||
): BotAccessSettings = execute(
|
||||
GetManagedBotAccessSettings(userId = userId)
|
||||
)
|
||||
@@ -0,0 +1,12 @@
|
||||
package dev.inmo.tgbotapi.extensions.api.managed_bots
|
||||
|
||||
import dev.inmo.tgbotapi.bot.TelegramBot
|
||||
import dev.inmo.tgbotapi.requests.managed_bots.GetManagedBotToken
|
||||
import dev.inmo.tgbotapi.types.BotToken
|
||||
import dev.inmo.tgbotapi.types.ChatId
|
||||
|
||||
public suspend fun TelegramBot.getManagedBotToken(
|
||||
userId: ChatId
|
||||
): BotToken = execute(
|
||||
GetManagedBotToken(userId = userId)
|
||||
)
|
||||
@@ -0,0 +1,12 @@
|
||||
package dev.inmo.tgbotapi.extensions.api.managed_bots
|
||||
|
||||
import dev.inmo.tgbotapi.bot.TelegramBot
|
||||
import dev.inmo.tgbotapi.requests.managed_bots.ReplaceManagedBotToken
|
||||
import dev.inmo.tgbotapi.types.BotToken
|
||||
import dev.inmo.tgbotapi.types.ChatId
|
||||
|
||||
public suspend fun TelegramBot.replaceManagedBotToken(
|
||||
userId: ChatId
|
||||
): BotToken = execute(
|
||||
ReplaceManagedBotToken(userId = userId)
|
||||
)
|
||||
@@ -0,0 +1,15 @@
|
||||
package dev.inmo.tgbotapi.extensions.api.managed_bots
|
||||
|
||||
import dev.inmo.tgbotapi.bot.TelegramBot
|
||||
import dev.inmo.tgbotapi.requests.managed_bots.SetManagedBotAccessSettings
|
||||
import dev.inmo.tgbotapi.types.ChatId
|
||||
|
||||
public suspend fun TelegramBot.setManagedBotAccessSettings(
|
||||
userId: ChatId,
|
||||
addedUserIds: List<ChatId>? = null
|
||||
): Unit = execute(
|
||||
SetManagedBotAccessSettings(
|
||||
userId = userId,
|
||||
addedUserIds = addedUserIds
|
||||
)
|
||||
)
|
||||
@@ -0,0 +1,55 @@
|
||||
package dev.inmo.tgbotapi.extensions.api.send
|
||||
|
||||
import dev.inmo.micro_utils.common.Warning
|
||||
import dev.inmo.tgbotapi.bot.TelegramBot
|
||||
import dev.inmo.tgbotapi.requests.send.DeleteAllActorChatMessageReactions
|
||||
import dev.inmo.tgbotapi.requests.send.DeleteAllMessageReactions
|
||||
import dev.inmo.tgbotapi.requests.send.DeleteAllUserMessageReactions
|
||||
import dev.inmo.tgbotapi.types.ChatId
|
||||
import dev.inmo.tgbotapi.types.ChatIdentifier
|
||||
import dev.inmo.tgbotapi.types.UserId
|
||||
import dev.inmo.tgbotapi.types.chat.Chat
|
||||
|
||||
@Warning(
|
||||
"Pass either userId or actorChatId, but not both. Prefer deleteAllUserMessageReactions or deleteAllActorChatMessageReactions"
|
||||
)
|
||||
public suspend fun TelegramBot.deleteAllMessageReactions(
|
||||
chatId: ChatIdentifier,
|
||||
userId: UserId? = null,
|
||||
actorChatId: ChatId? = null
|
||||
): Unit = execute(
|
||||
DeleteAllMessageReactions(chatId, userId, actorChatId)
|
||||
)
|
||||
|
||||
@Warning(
|
||||
"Pass either userId or actorChatId, but not both. Prefer deleteAllUserMessageReactions or deleteAllActorChatMessageReactions"
|
||||
)
|
||||
public suspend fun TelegramBot.deleteAllMessageReactions(
|
||||
chat: Chat,
|
||||
userId: UserId? = null,
|
||||
actorChatId: ChatId? = null
|
||||
): Unit = deleteAllMessageReactions(chat.id, userId, actorChatId)
|
||||
|
||||
public suspend fun TelegramBot.deleteAllUserMessageReactions(
|
||||
chatId: ChatIdentifier,
|
||||
userId: UserId
|
||||
): Unit = execute(
|
||||
DeleteAllUserMessageReactions(chatId, userId)
|
||||
)
|
||||
|
||||
public suspend fun TelegramBot.deleteAllUserMessageReactions(
|
||||
chat: Chat,
|
||||
userId: UserId
|
||||
): Unit = deleteAllUserMessageReactions(chat.id, userId)
|
||||
|
||||
public suspend fun TelegramBot.deleteAllActorChatMessageReactions(
|
||||
chatId: ChatIdentifier,
|
||||
actorChatId: ChatId
|
||||
): Unit = execute(
|
||||
DeleteAllActorChatMessageReactions(chatId, actorChatId)
|
||||
)
|
||||
|
||||
public suspend fun TelegramBot.deleteAllActorChatMessageReactions(
|
||||
chat: Chat,
|
||||
actorChatId: ChatId
|
||||
): Unit = deleteAllActorChatMessageReactions(chat.id, actorChatId)
|
||||
@@ -0,0 +1,102 @@
|
||||
package dev.inmo.tgbotapi.extensions.api.send
|
||||
|
||||
import dev.inmo.micro_utils.common.Warning
|
||||
import dev.inmo.tgbotapi.bot.TelegramBot
|
||||
import dev.inmo.tgbotapi.requests.send.DeleteActorChatMessageReaction
|
||||
import dev.inmo.tgbotapi.requests.send.DeleteMessageReaction
|
||||
import dev.inmo.tgbotapi.requests.send.DeleteUserMessageReaction
|
||||
import dev.inmo.tgbotapi.types.ChatId
|
||||
import dev.inmo.tgbotapi.types.ChatIdentifier
|
||||
import dev.inmo.tgbotapi.types.MessageId
|
||||
import dev.inmo.tgbotapi.types.UserId
|
||||
import dev.inmo.tgbotapi.types.chat.Chat
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.AccessibleMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.Message
|
||||
|
||||
@Warning(
|
||||
"Pass either userId or actorChatId, but not both. Prefer deleteUserMessageReaction or deleteActorChatMessageReaction"
|
||||
)
|
||||
public suspend fun TelegramBot.deleteMessageReaction(
|
||||
chatId: ChatIdentifier,
|
||||
messageId: MessageId,
|
||||
userId: UserId? = null,
|
||||
actorChatId: ChatId? = null
|
||||
): Unit = execute(
|
||||
DeleteMessageReaction(chatId, messageId, userId, actorChatId)
|
||||
)
|
||||
|
||||
@Warning(
|
||||
"Pass either userId or actorChatId, but not both. Prefer deleteUserMessageReaction or deleteActorChatMessageReaction"
|
||||
)
|
||||
public suspend fun TelegramBot.deleteMessageReaction(
|
||||
chat: Chat,
|
||||
messageId: MessageId,
|
||||
userId: UserId? = null,
|
||||
actorChatId: ChatId? = null
|
||||
): Unit = deleteMessageReaction(chat.id, messageId, userId, actorChatId)
|
||||
|
||||
@Warning(
|
||||
"Pass either userId or actorChatId, but not both. Prefer deleteUserMessageReaction or deleteActorChatMessageReaction"
|
||||
)
|
||||
public suspend fun TelegramBot.deleteMessageReaction(
|
||||
meta: Message.MetaInfo,
|
||||
userId: UserId? = null,
|
||||
actorChatId: ChatId? = null
|
||||
): Unit = deleteMessageReaction(meta.chatId, meta.messageId, userId, actorChatId)
|
||||
|
||||
@Warning(
|
||||
"Pass either userId or actorChatId, but not both. Prefer deleteUserMessageReaction or deleteActorChatMessageReaction"
|
||||
)
|
||||
public suspend fun TelegramBot.deleteMessageReaction(
|
||||
message: AccessibleMessage,
|
||||
userId: UserId? = null,
|
||||
actorChatId: ChatId? = null
|
||||
): Unit = deleteMessageReaction(message.metaInfo, userId, actorChatId)
|
||||
|
||||
public suspend fun TelegramBot.deleteUserMessageReaction(
|
||||
chatId: ChatIdentifier,
|
||||
messageId: MessageId,
|
||||
userId: UserId
|
||||
): Unit = execute(
|
||||
DeleteUserMessageReaction(chatId, messageId, userId)
|
||||
)
|
||||
|
||||
public suspend fun TelegramBot.deleteUserMessageReaction(
|
||||
chat: Chat,
|
||||
messageId: MessageId,
|
||||
userId: UserId
|
||||
): Unit = deleteUserMessageReaction(chat.id, messageId, userId)
|
||||
|
||||
public suspend fun TelegramBot.deleteUserMessageReaction(
|
||||
meta: Message.MetaInfo,
|
||||
userId: UserId
|
||||
): Unit = deleteUserMessageReaction(meta.chatId, meta.messageId, userId)
|
||||
|
||||
public suspend fun TelegramBot.deleteUserMessageReaction(
|
||||
message: AccessibleMessage,
|
||||
userId: UserId
|
||||
): Unit = deleteUserMessageReaction(message.metaInfo, userId)
|
||||
|
||||
public suspend fun TelegramBot.deleteActorChatMessageReaction(
|
||||
chatId: ChatIdentifier,
|
||||
messageId: MessageId,
|
||||
actorChatId: ChatId
|
||||
): Unit = execute(
|
||||
DeleteActorChatMessageReaction(chatId, messageId, actorChatId)
|
||||
)
|
||||
|
||||
public suspend fun TelegramBot.deleteActorChatMessageReaction(
|
||||
chat: Chat,
|
||||
messageId: MessageId,
|
||||
actorChatId: ChatId
|
||||
): Unit = deleteActorChatMessageReaction(chat.id, messageId, actorChatId)
|
||||
|
||||
public suspend fun TelegramBot.deleteActorChatMessageReaction(
|
||||
meta: Message.MetaInfo,
|
||||
actorChatId: ChatId
|
||||
): Unit = deleteActorChatMessageReaction(meta.chatId, meta.messageId, actorChatId)
|
||||
|
||||
public suspend fun TelegramBot.deleteActorChatMessageReaction(
|
||||
message: AccessibleMessage,
|
||||
actorChatId: ChatId
|
||||
): Unit = deleteActorChatMessageReaction(message.metaInfo, actorChatId)
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,16 @@
|
||||
package dev.inmo.tgbotapi.extensions.api.send
|
||||
|
||||
import dev.inmo.tgbotapi.bot.TelegramBot
|
||||
import dev.inmo.tgbotapi.extensions.api.answers.answer
|
||||
import dev.inmo.tgbotapi.types.InlineQueries.InlineQueryResult.abstracts.InlineQueryResult
|
||||
import dev.inmo.tgbotapi.types.guest.SentGuestMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.GuestContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.GuestMessage
|
||||
|
||||
public suspend fun TelegramBot.reply(
|
||||
message: GuestMessage,
|
||||
queryResult: InlineQueryResult
|
||||
): SentGuestMessage = answer(
|
||||
message.guestQueryId,
|
||||
queryResult
|
||||
)
|
||||
@@ -5,7 +5,7 @@ import dev.inmo.tgbotapi.types.*
|
||||
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
|
||||
import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup
|
||||
import dev.inmo.tgbotapi.types.chat.Chat
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.content.MessageContent
|
||||
import dev.inmo.tgbotapi.types.message.SuggestedPostParameters
|
||||
|
||||
@@ -26,7 +26,7 @@ public suspend inline fun <T : MessageContent> TelegramBot.resend(
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null,
|
||||
suggestedPostParameters: SuggestedPostParameters? = null
|
||||
): ContentMessage<T> = execute(
|
||||
): ChatContentMessage<T> = execute(
|
||||
content.createResend(
|
||||
chatId = chatId,
|
||||
messageThreadId = messageThreadId,
|
||||
@@ -40,7 +40,7 @@ public suspend inline fun <T : MessageContent> TelegramBot.resend(
|
||||
replyMarkup = replyMarkup,
|
||||
suggestedPostParameters = suggestedPostParameters,
|
||||
)
|
||||
) as ContentMessage<T>
|
||||
) as ChatContentMessage<T>
|
||||
|
||||
/**
|
||||
* This method will send [content] to the [chat] as is
|
||||
@@ -57,7 +57,7 @@ public suspend inline fun <T : MessageContent> TelegramBot.resend(
|
||||
effectId: EffectId? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<T> = resend(
|
||||
): ChatContentMessage<T> = resend(
|
||||
chatId = chat.id,
|
||||
content = content,
|
||||
messageThreadId = messageThreadId,
|
||||
@@ -78,7 +78,7 @@ public suspend inline fun <T : MessageContent> TelegramBot.resend(
|
||||
*/
|
||||
public suspend inline fun <T : MessageContent> TelegramBot.resend(
|
||||
chatId: ChatIdentifier,
|
||||
message: ContentMessage<T>,
|
||||
message: ChatContentMessage<T>,
|
||||
messageThreadId: MessageThreadId? = chatId.threadId,
|
||||
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
|
||||
businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId,
|
||||
@@ -88,7 +88,7 @@ public suspend inline fun <T : MessageContent> TelegramBot.resend(
|
||||
effectId: EffectId? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<T> = resend(
|
||||
): ChatContentMessage<T> = resend(
|
||||
chatId = chatId,
|
||||
content = message.content,
|
||||
messageThreadId = messageThreadId,
|
||||
@@ -109,7 +109,7 @@ public suspend inline fun <T : MessageContent> TelegramBot.resend(
|
||||
*/
|
||||
public suspend inline fun <T : MessageContent> TelegramBot.resend(
|
||||
chat: Chat,
|
||||
message: ContentMessage<T>,
|
||||
message: ChatContentMessage<T>,
|
||||
messageThreadId: MessageThreadId? = chat.id.threadId,
|
||||
directMessageThreadId: DirectMessageThreadId? = chat.id.directMessageThreadId,
|
||||
businessConnectionId: BusinessConnectionId? = chat.id.businessConnectionId,
|
||||
@@ -119,7 +119,7 @@ public suspend inline fun <T : MessageContent> TelegramBot.resend(
|
||||
effectId: EffectId? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<T> = resend(
|
||||
): ChatContentMessage<T> = resend(
|
||||
chatId = chat.id,
|
||||
message = message,
|
||||
messageThreadId = messageThreadId,
|
||||
|
||||
@@ -9,7 +9,7 @@ import dev.inmo.tgbotapi.types.ReplyParameters
|
||||
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
|
||||
import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup
|
||||
import dev.inmo.tgbotapi.types.checklists.Checklist
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.content.ChecklistContent
|
||||
|
||||
public suspend fun TelegramBot.sendChecklist(
|
||||
@@ -21,7 +21,7 @@ public suspend fun TelegramBot.sendChecklist(
|
||||
effectId: EffectId? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<ChecklistContent> = execute(
|
||||
): ChatContentMessage<ChecklistContent> = execute(
|
||||
SendChecklist(
|
||||
chatId = chatId,
|
||||
checklist = checklist,
|
||||
@@ -42,7 +42,7 @@ public suspend fun TelegramBot.sendChecklist(
|
||||
effectId: EffectId? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<ChecklistContent> = execute(
|
||||
): ChatContentMessage<ChecklistContent> = execute(
|
||||
SendChecklist(
|
||||
chatId = chatId,
|
||||
checklist = checklist,
|
||||
|
||||
@@ -9,7 +9,7 @@ import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
|
||||
import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup
|
||||
import dev.inmo.tgbotapi.types.chat.Chat
|
||||
import dev.inmo.tgbotapi.types.message.SuggestedPostParameters
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.content.ContactContent
|
||||
|
||||
/**
|
||||
@@ -31,7 +31,7 @@ public suspend fun TelegramBot.sendContact(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<ContactContent> = execute(
|
||||
): ChatContentMessage<ContactContent> = execute(
|
||||
SendContact(
|
||||
chatId = chatId,
|
||||
phoneNumber = phoneNumber,
|
||||
@@ -67,7 +67,7 @@ public suspend fun TelegramBot.sendContact(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<ContactContent> = execute(
|
||||
): ChatContentMessage<ContactContent> = execute(
|
||||
SendContact(
|
||||
chatId = chatId,
|
||||
contact = contact,
|
||||
@@ -103,7 +103,7 @@ public suspend fun TelegramBot.sendContact(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<ContactContent> = sendContact(
|
||||
): ChatContentMessage<ContactContent> = sendContact(
|
||||
chatId = chat.id,
|
||||
phoneNumber = phoneNumber,
|
||||
firstName = firstName,
|
||||
@@ -137,7 +137,7 @@ public suspend fun TelegramBot.sendContact(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<ContactContent> = sendContact(
|
||||
): ChatContentMessage<ContactContent> = sendContact(
|
||||
chatId = chat.id,
|
||||
contact = contact,
|
||||
threadId = threadId,
|
||||
|
||||
@@ -8,7 +8,7 @@ import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup
|
||||
import dev.inmo.tgbotapi.types.chat.Chat
|
||||
import dev.inmo.tgbotapi.types.message.SuggestedPostParameters
|
||||
import dev.inmo.tgbotapi.types.dice.DiceAnimationType
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.content.DiceContent
|
||||
|
||||
/**
|
||||
@@ -28,7 +28,7 @@ public suspend fun TelegramBot.sendDice(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<DiceContent> = execute(
|
||||
): ChatContentMessage<DiceContent> = execute(
|
||||
SendDice(
|
||||
chatId = chatId,
|
||||
animationType = animationType,
|
||||
@@ -62,7 +62,7 @@ public suspend fun TelegramBot.sendDice(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<DiceContent> = sendDice(
|
||||
): ChatContentMessage<DiceContent> = sendDice(
|
||||
chatId = chat.id,
|
||||
animationType = animationType,
|
||||
threadId = threadId,
|
||||
|
||||
@@ -8,7 +8,7 @@ import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup
|
||||
import dev.inmo.tgbotapi.types.chat.Chat
|
||||
import dev.inmo.tgbotapi.types.message.SuggestedPostParameters
|
||||
import dev.inmo.tgbotapi.types.location.Location
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.content.LiveLocationContent
|
||||
import dev.inmo.tgbotapi.types.message.content.LocationContent
|
||||
|
||||
@@ -34,7 +34,7 @@ public suspend fun TelegramBot.sendLocation(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<LiveLocationContent> = execute(
|
||||
): ChatContentMessage<LiveLocationContent> = execute(
|
||||
SendLiveLocation(
|
||||
chatId = chatId,
|
||||
latitude = latitude,
|
||||
@@ -77,7 +77,7 @@ public suspend fun TelegramBot.sendLocation(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<LiveLocationContent> = sendLocation(
|
||||
): ChatContentMessage<LiveLocationContent> = sendLocation(
|
||||
chatId = chatId,
|
||||
latitude = location.latitude,
|
||||
longitude = location.longitude,
|
||||
@@ -119,7 +119,7 @@ public suspend fun TelegramBot.sendLocation(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<LiveLocationContent> = sendLocation(
|
||||
): ChatContentMessage<LiveLocationContent> = sendLocation(
|
||||
chatId = chat.id,
|
||||
latitude = latitude,
|
||||
longitude = longitude,
|
||||
@@ -160,7 +160,7 @@ public suspend fun TelegramBot.sendLocation(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<LiveLocationContent> = sendLocation(
|
||||
): ChatContentMessage<LiveLocationContent> = sendLocation(
|
||||
chatId = chat.id,
|
||||
latitude = location.latitude,
|
||||
longitude = location.longitude,
|
||||
@@ -202,7 +202,7 @@ public suspend fun TelegramBot.sendLiveLocation(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<LiveLocationContent> = sendLocation(
|
||||
): ChatContentMessage<LiveLocationContent> = sendLocation(
|
||||
chatId = chatId,
|
||||
latitude = latitude,
|
||||
longitude = longitude,
|
||||
@@ -243,7 +243,7 @@ public suspend fun TelegramBot.sendLiveLocation(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<LiveLocationContent> = sendLocation(
|
||||
): ChatContentMessage<LiveLocationContent> = sendLocation(
|
||||
chatId = chatId,
|
||||
latitude = location.latitude,
|
||||
longitude = location.longitude,
|
||||
@@ -285,7 +285,7 @@ public suspend fun TelegramBot.sendLiveLocation(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<LiveLocationContent> = sendLocation(
|
||||
): ChatContentMessage<LiveLocationContent> = sendLocation(
|
||||
chatId = chat.id,
|
||||
latitude = latitude,
|
||||
longitude = longitude,
|
||||
@@ -326,7 +326,7 @@ public suspend fun TelegramBot.sendLiveLocation(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<LiveLocationContent> = sendLocation(
|
||||
): ChatContentMessage<LiveLocationContent> = sendLocation(
|
||||
chatId = chat.id,
|
||||
latitude = location.latitude,
|
||||
longitude = location.longitude,
|
||||
|
||||
@@ -11,7 +11,7 @@ import dev.inmo.tgbotapi.types.message.ParseMode
|
||||
import dev.inmo.tgbotapi.types.message.SuggestedPostParameters
|
||||
import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup
|
||||
import dev.inmo.tgbotapi.types.chat.Chat
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.content.TextContent
|
||||
import dev.inmo.tgbotapi.types.message.textsources.TextSource
|
||||
import dev.inmo.tgbotapi.utils.EntitiesBuilderBody
|
||||
@@ -36,7 +36,7 @@ public suspend fun TelegramBot.sendMessage(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<TextContent> = execute(
|
||||
): ChatContentMessage<TextContent> = execute(
|
||||
SendTextMessage(
|
||||
chatId = chatId,
|
||||
text = text,
|
||||
@@ -74,7 +74,7 @@ public suspend fun TelegramBot.sendTextMessage(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<TextContent> = sendMessage(
|
||||
): ChatContentMessage<TextContent> = sendMessage(
|
||||
chatId = chatId,
|
||||
text = text,
|
||||
parseMode = parseMode,
|
||||
@@ -110,7 +110,7 @@ public suspend fun TelegramBot.sendTextMessage(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<TextContent> = sendTextMessage(
|
||||
): ChatContentMessage<TextContent> = sendTextMessage(
|
||||
chatId = chat.id,
|
||||
text = text,
|
||||
parseMode = parseMode,
|
||||
@@ -147,7 +147,7 @@ public suspend fun TelegramBot.sendMessage(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<TextContent> = sendMessage(
|
||||
): ChatContentMessage<TextContent> = sendMessage(
|
||||
chatId = chat.id,
|
||||
text = text,
|
||||
parseMode = parseMode,
|
||||
@@ -182,7 +182,7 @@ public suspend fun TelegramBot.sendMessage(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<TextContent> = execute(
|
||||
): ChatContentMessage<TextContent> = execute(
|
||||
SendTextMessage(
|
||||
chatId = chatId,
|
||||
entities = entities,
|
||||
@@ -219,7 +219,7 @@ public suspend fun TelegramBot.sendMessage(
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null,
|
||||
builderBody: EntitiesBuilderBody
|
||||
): ContentMessage<TextContent> = sendMessage(
|
||||
): ChatContentMessage<TextContent> = sendMessage(
|
||||
chatId = chatId,
|
||||
entities = buildEntities(separator, builderBody),
|
||||
linkPreviewOptions = linkPreviewOptions,
|
||||
@@ -255,7 +255,7 @@ public suspend fun TelegramBot.sendMessage(
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null,
|
||||
builderBody: EntitiesBuilderBody
|
||||
): ContentMessage<TextContent> = sendMessage(
|
||||
): ChatContentMessage<TextContent> = sendMessage(
|
||||
chatId = chatId,
|
||||
entities = buildEntities(separator, builderBody),
|
||||
linkPreviewOptions = linkPreviewOptions,
|
||||
@@ -289,7 +289,7 @@ public suspend fun TelegramBot.sendTextMessage(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<TextContent> = sendMessage(
|
||||
): ChatContentMessage<TextContent> = sendMessage(
|
||||
chatId = chatId,
|
||||
entities = entities,
|
||||
linkPreviewOptions = linkPreviewOptions,
|
||||
@@ -324,7 +324,7 @@ public suspend fun TelegramBot.sendTextMessage(
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null,
|
||||
builderBody: EntitiesBuilderBody
|
||||
): ContentMessage<TextContent> = sendTextMessage(
|
||||
): ChatContentMessage<TextContent> = sendTextMessage(
|
||||
chatId = chatId,
|
||||
entities = buildEntities(separator, builderBody),
|
||||
linkPreviewOptions = linkPreviewOptions,
|
||||
@@ -360,7 +360,7 @@ public suspend fun TelegramBot.sendTextMessage(
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null,
|
||||
builderBody: EntitiesBuilderBody
|
||||
): ContentMessage<TextContent> = sendTextMessage(
|
||||
): ChatContentMessage<TextContent> = sendTextMessage(
|
||||
chatId = chatId,
|
||||
entities = buildEntities(separator, builderBody),
|
||||
linkPreviewOptions = linkPreviewOptions,
|
||||
@@ -394,7 +394,7 @@ public suspend fun TelegramBot.sendMessage(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<TextContent> = sendMessage(
|
||||
): ChatContentMessage<TextContent> = sendMessage(
|
||||
chatId = chat.id,
|
||||
entities = entities,
|
||||
linkPreviewOptions = linkPreviewOptions,
|
||||
@@ -429,7 +429,7 @@ public suspend fun TelegramBot.sendMessage(
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null,
|
||||
builderBody: EntitiesBuilderBody
|
||||
): ContentMessage<TextContent> = sendMessage(
|
||||
): ChatContentMessage<TextContent> = sendMessage(
|
||||
chat = chat,
|
||||
entities = buildEntities(separator, builderBody),
|
||||
linkPreviewOptions = linkPreviewOptions,
|
||||
@@ -465,7 +465,7 @@ public suspend fun TelegramBot.sendMessage(
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null,
|
||||
builderBody: EntitiesBuilderBody
|
||||
): ContentMessage<TextContent> = sendMessage(
|
||||
): ChatContentMessage<TextContent> = sendMessage(
|
||||
chat = chat,
|
||||
entities = buildEntities(separator, builderBody),
|
||||
linkPreviewOptions = linkPreviewOptions,
|
||||
@@ -500,7 +500,7 @@ public suspend fun TelegramBot.sendTextMessage(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<TextContent> = sendTextMessage(
|
||||
): ChatContentMessage<TextContent> = sendTextMessage(
|
||||
chatId = chat.id,
|
||||
entities = entities,
|
||||
linkPreviewOptions = linkPreviewOptions,
|
||||
@@ -535,7 +535,7 @@ public suspend fun TelegramBot.sendTextMessage(
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null,
|
||||
builderBody: EntitiesBuilderBody
|
||||
): ContentMessage<TextContent> = sendTextMessage(
|
||||
): ChatContentMessage<TextContent> = sendTextMessage(
|
||||
chat = chat,
|
||||
entities = buildEntities(separator, builderBody),
|
||||
linkPreviewOptions = linkPreviewOptions,
|
||||
@@ -571,7 +571,7 @@ public suspend fun TelegramBot.sendTextMessage(
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null,
|
||||
builderBody: EntitiesBuilderBody
|
||||
): ContentMessage<TextContent> = sendTextMessage(
|
||||
): ChatContentMessage<TextContent> = sendTextMessage(
|
||||
chat = chat,
|
||||
entities = buildEntities(separator, builderBody),
|
||||
linkPreviewOptions = linkPreviewOptions,
|
||||
|
||||
@@ -10,7 +10,7 @@ import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup
|
||||
import dev.inmo.tgbotapi.types.chat.Chat
|
||||
import dev.inmo.tgbotapi.types.message.SuggestedPostParameters
|
||||
import dev.inmo.tgbotapi.types.location.Location
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.content.LocationContent
|
||||
import dev.inmo.tgbotapi.types.message.content.StaticLocationContent
|
||||
|
||||
@@ -32,7 +32,7 @@ public suspend fun TelegramBot.sendLocation(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<StaticLocationContent> = execute(
|
||||
): ChatContentMessage<StaticLocationContent> = execute(
|
||||
SendStaticLocation(
|
||||
chatId = chatId,
|
||||
latitude = latitude,
|
||||
@@ -67,7 +67,7 @@ public suspend fun TelegramBot.sendLocation(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<StaticLocationContent> = sendLocation(
|
||||
): ChatContentMessage<StaticLocationContent> = sendLocation(
|
||||
chatId = chatId,
|
||||
latitude = location.latitude,
|
||||
longitude = location.longitude,
|
||||
@@ -101,7 +101,7 @@ public suspend fun TelegramBot.sendLocation(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<StaticLocationContent> = sendLocation(
|
||||
): ChatContentMessage<StaticLocationContent> = sendLocation(
|
||||
chatId = chat.id,
|
||||
latitude = latitude,
|
||||
longitude = longitude,
|
||||
@@ -134,7 +134,7 @@ public suspend fun TelegramBot.sendLocation(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<StaticLocationContent> = sendLocation(
|
||||
): ChatContentMessage<StaticLocationContent> = sendLocation(
|
||||
chatId = chat.id,
|
||||
latitude = location.latitude,
|
||||
longitude = location.longitude,
|
||||
@@ -168,7 +168,7 @@ public suspend fun TelegramBot.sendStaticLocation(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<StaticLocationContent> = sendLocation(
|
||||
): ChatContentMessage<StaticLocationContent> = sendLocation(
|
||||
chatId = chatId,
|
||||
latitude = latitude,
|
||||
longitude = longitude,
|
||||
@@ -201,7 +201,7 @@ public suspend fun TelegramBot.sendStaticLocation(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<StaticLocationContent> = sendLocation(
|
||||
): ChatContentMessage<StaticLocationContent> = sendLocation(
|
||||
chatId = chatId,
|
||||
latitude = location.latitude,
|
||||
longitude = location.longitude,
|
||||
@@ -235,7 +235,7 @@ public suspend fun TelegramBot.sendStaticLocation(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<StaticLocationContent> = sendLocation(
|
||||
): ChatContentMessage<StaticLocationContent> = sendLocation(
|
||||
chatId = chat.id,
|
||||
latitude = latitude,
|
||||
longitude = longitude,
|
||||
@@ -268,7 +268,7 @@ public suspend fun TelegramBot.sendStaticLocation(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<StaticLocationContent> = sendLocation(
|
||||
): ChatContentMessage<StaticLocationContent> = sendLocation(
|
||||
chatId = chat.id,
|
||||
latitude = location.latitude,
|
||||
longitude = location.longitude,
|
||||
|
||||
@@ -10,7 +10,7 @@ import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup
|
||||
import dev.inmo.tgbotapi.types.chat.Chat
|
||||
import dev.inmo.tgbotapi.types.message.SuggestedPostParameters
|
||||
import dev.inmo.tgbotapi.types.location.StaticLocation
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.content.VenueContent
|
||||
import dev.inmo.tgbotapi.types.venue.Venue
|
||||
|
||||
@@ -38,7 +38,7 @@ public suspend fun TelegramBot.sendVenue(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<VenueContent> = execute(
|
||||
): ChatContentMessage<VenueContent> = execute(
|
||||
SendVenue(
|
||||
chatId = chatId,
|
||||
latitude = latitude,
|
||||
@@ -86,7 +86,7 @@ public suspend fun TelegramBot.sendVenue(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<VenueContent> = sendVenue(
|
||||
): ChatContentMessage<VenueContent> = sendVenue(
|
||||
chatId = chat.id,
|
||||
latitude = latitude,
|
||||
longitude = longitude,
|
||||
@@ -131,7 +131,7 @@ public suspend fun TelegramBot.sendVenue(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<VenueContent> = sendVenue(
|
||||
): ChatContentMessage<VenueContent> = sendVenue(
|
||||
chatId = chatId,
|
||||
latitude = location.latitude,
|
||||
longitude = location.longitude,
|
||||
@@ -176,7 +176,7 @@ public suspend fun TelegramBot.sendVenue(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<VenueContent> = sendVenue(
|
||||
): ChatContentMessage<VenueContent> = sendVenue(
|
||||
chatId = chat.id,
|
||||
latitude = location.latitude,
|
||||
longitude = location.longitude,
|
||||
@@ -215,7 +215,7 @@ public suspend fun TelegramBot.sendVenue(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<VenueContent> = execute(
|
||||
): ChatContentMessage<VenueContent> = execute(
|
||||
SendVenue(
|
||||
chatId = chatId,
|
||||
venue = venue,
|
||||
@@ -249,7 +249,7 @@ public suspend fun TelegramBot.sendVenue(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<VenueContent> = sendVenue(
|
||||
): ChatContentMessage<VenueContent> = sendVenue(
|
||||
chatId = chat.id,
|
||||
venue = venue,
|
||||
threadId = threadId,
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -8,7 +8,7 @@ import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup
|
||||
import dev.inmo.tgbotapi.types.chat.Chat
|
||||
import dev.inmo.tgbotapi.types.message.SuggestedPostParameters
|
||||
import dev.inmo.tgbotapi.types.games.Game
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.content.GameContent
|
||||
|
||||
/**
|
||||
@@ -28,7 +28,7 @@ public suspend fun TelegramBot.sendGame(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<GameContent> = execute(
|
||||
): ChatContentMessage<GameContent> = execute(
|
||||
SendGame(
|
||||
chatId = chatId,
|
||||
gameShortName = gameShortName,
|
||||
@@ -62,7 +62,7 @@ public suspend fun TelegramBot.sendGame(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<GameContent> = sendGame(
|
||||
): ChatContentMessage<GameContent> = sendGame(
|
||||
chatId = chat.id,
|
||||
gameShortName = gameShortName,
|
||||
threadId = threadId,
|
||||
@@ -94,7 +94,7 @@ public suspend fun TelegramBot.sendGame(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<GameContent> = sendGame(
|
||||
): ChatContentMessage<GameContent> = sendGame(
|
||||
chatId = chatId,
|
||||
gameShortName = game.title,
|
||||
threadId = threadId,
|
||||
@@ -126,7 +126,7 @@ public suspend fun TelegramBot.sendGame(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<GameContent> = sendGame(
|
||||
): ChatContentMessage<GameContent> = sendGame(
|
||||
chatId = chat.id,
|
||||
gameShortName = game.title,
|
||||
threadId = threadId,
|
||||
|
||||
@@ -13,7 +13,7 @@ import dev.inmo.tgbotapi.types.message.SuggestedPostParameters
|
||||
import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup
|
||||
import dev.inmo.tgbotapi.types.chat.Chat
|
||||
import dev.inmo.tgbotapi.types.files.AnimationFile
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.content.AnimationContent
|
||||
|
||||
/**
|
||||
@@ -41,7 +41,7 @@ public suspend fun TelegramBot.sendAnimation(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<AnimationContent> = execute(
|
||||
): ChatContentMessage<AnimationContent> = execute(
|
||||
SendAnimation(
|
||||
chatId = chatId,
|
||||
animation = animation,
|
||||
@@ -90,7 +90,7 @@ public suspend fun TelegramBot.sendAnimation(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<AnimationContent> = sendAnimation(
|
||||
): ChatContentMessage<AnimationContent> = sendAnimation(
|
||||
chatId = chatId,
|
||||
animation = animation.fileId,
|
||||
thumb = animation.thumbnail ?.fileId,
|
||||
@@ -138,7 +138,7 @@ public suspend fun TelegramBot.sendAnimation(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<AnimationContent> = sendAnimation(
|
||||
): ChatContentMessage<AnimationContent> = sendAnimation(
|
||||
chatId = chat.id,
|
||||
animation = animation,
|
||||
thumb = thumb,
|
||||
@@ -185,7 +185,7 @@ public suspend fun TelegramBot.sendAnimation(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<AnimationContent> = sendAnimation(
|
||||
): ChatContentMessage<AnimationContent> = sendAnimation(
|
||||
chatId = chat.id,
|
||||
animation = animation,
|
||||
text = text,
|
||||
@@ -232,7 +232,7 @@ public suspend fun TelegramBot.sendAnimation(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<AnimationContent> = execute(
|
||||
): ChatContentMessage<AnimationContent> = execute(
|
||||
SendAnimation(
|
||||
chatId = chatId,
|
||||
animation = animation,
|
||||
@@ -279,7 +279,7 @@ public suspend fun TelegramBot.sendAnimation(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<AnimationContent> = sendAnimation(
|
||||
): ChatContentMessage<AnimationContent> = sendAnimation(
|
||||
chatId = chatId,
|
||||
animation = animation.fileId,
|
||||
thumb = animation.thumbnail ?.fileId,
|
||||
@@ -325,7 +325,7 @@ public suspend fun TelegramBot.sendAnimation(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<AnimationContent> = sendAnimation(
|
||||
): ChatContentMessage<AnimationContent> = sendAnimation(
|
||||
chatId = chat.id,
|
||||
animation = animation,
|
||||
thumb = thumb,
|
||||
@@ -370,7 +370,7 @@ public suspend fun TelegramBot.sendAnimation(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<AnimationContent> = sendAnimation(
|
||||
): ChatContentMessage<AnimationContent> = sendAnimation(
|
||||
chatId = chat.id,
|
||||
animation = animation,
|
||||
entities = entities,
|
||||
|
||||
@@ -11,7 +11,7 @@ import dev.inmo.tgbotapi.types.message.SuggestedPostParameters
|
||||
import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup
|
||||
import dev.inmo.tgbotapi.types.chat.Chat
|
||||
import dev.inmo.tgbotapi.types.files.AudioFile
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.content.AudioContent
|
||||
|
||||
/**
|
||||
@@ -37,7 +37,7 @@ public suspend fun TelegramBot.sendAudio(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<AudioContent> = execute(
|
||||
): ChatContentMessage<AudioContent> = execute(
|
||||
SendAudio(
|
||||
chatId = chatId,
|
||||
audio = audio,
|
||||
@@ -83,7 +83,7 @@ public suspend fun TelegramBot.sendAudio(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<AudioContent> = sendAudio(
|
||||
): ChatContentMessage<AudioContent> = sendAudio(
|
||||
chatId = chat.id,
|
||||
audio = audio,
|
||||
thumb = thumb,
|
||||
@@ -124,7 +124,7 @@ public suspend fun TelegramBot.sendAudio(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<AudioContent> = sendAudio(
|
||||
): ChatContentMessage<AudioContent> = sendAudio(
|
||||
chatId = chatId,
|
||||
audio = audio.fileId,
|
||||
thumb = audio.thumbnail ?.fileId,
|
||||
@@ -165,7 +165,7 @@ public suspend fun TelegramBot.sendAudio(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<AudioContent> = sendAudio(
|
||||
): ChatContentMessage<AudioContent> = sendAudio(
|
||||
chatId = chat.id,
|
||||
audio = audio,
|
||||
text = text,
|
||||
@@ -206,7 +206,7 @@ public suspend inline fun TelegramBot.sendAudio(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<AudioContent> = execute(
|
||||
): ChatContentMessage<AudioContent> = execute(
|
||||
SendAudio(
|
||||
chatId = chatId,
|
||||
audio = audio,
|
||||
@@ -250,7 +250,7 @@ public suspend inline fun TelegramBot.sendAudio(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<AudioContent> = sendAudio(
|
||||
): ChatContentMessage<AudioContent> = sendAudio(
|
||||
chatId = chat.id,
|
||||
audio = audio,
|
||||
thumb = thumb,
|
||||
@@ -289,7 +289,7 @@ public suspend inline fun TelegramBot.sendAudio(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<AudioContent> = sendAudio(
|
||||
): ChatContentMessage<AudioContent> = sendAudio(
|
||||
chatId = chatId,
|
||||
audio = audio.fileId,
|
||||
thumb = audio.thumbnail ?.fileId,
|
||||
@@ -328,7 +328,7 @@ public suspend inline fun TelegramBot.sendAudio(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<AudioContent> = sendAudio(
|
||||
): ChatContentMessage<AudioContent> = sendAudio(
|
||||
chatId = chat.id,
|
||||
audio = audio,
|
||||
entities = entities,
|
||||
|
||||
@@ -11,7 +11,7 @@ import dev.inmo.tgbotapi.types.message.SuggestedPostParameters
|
||||
import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup
|
||||
import dev.inmo.tgbotapi.types.chat.Chat
|
||||
import dev.inmo.tgbotapi.types.files.DocumentFile
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.content.DocumentContent
|
||||
|
||||
/**
|
||||
@@ -35,7 +35,7 @@ public suspend fun TelegramBot.sendDocument(
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null,
|
||||
disableContentTypeDetection: Boolean? = null
|
||||
): ContentMessage<DocumentContent> = execute(
|
||||
): ChatContentMessage<DocumentContent> = execute(
|
||||
SendDocument(
|
||||
chatId = chatId,
|
||||
document = document,
|
||||
@@ -77,7 +77,7 @@ public suspend fun TelegramBot.sendDocument(
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null,
|
||||
disableContentTypeDetection: Boolean? = null
|
||||
): ContentMessage<DocumentContent> = sendDocument(
|
||||
): ChatContentMessage<DocumentContent> = sendDocument(
|
||||
chatId = chat.id,
|
||||
document = document,
|
||||
thumb = thumb,
|
||||
@@ -116,7 +116,7 @@ public suspend fun TelegramBot.sendDocument(
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null,
|
||||
disableContentTypeDetection: Boolean? = null
|
||||
): ContentMessage<DocumentContent> = sendDocument(
|
||||
): ChatContentMessage<DocumentContent> = sendDocument(
|
||||
chatId = chatId,
|
||||
document = document.fileId,
|
||||
thumb = document.thumbnail ?.fileId,
|
||||
@@ -155,7 +155,7 @@ public suspend fun TelegramBot.sendDocument(
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null,
|
||||
disableContentTypeDetection: Boolean? = null
|
||||
): ContentMessage<DocumentContent> = sendDocument(
|
||||
): ChatContentMessage<DocumentContent> = sendDocument(
|
||||
chatId = chat.id,
|
||||
document = document,
|
||||
text = text,
|
||||
@@ -193,7 +193,7 @@ public suspend inline fun TelegramBot.sendDocument(
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null,
|
||||
disableContentTypeDetection: Boolean? = null
|
||||
): ContentMessage<DocumentContent> = execute(
|
||||
): ChatContentMessage<DocumentContent> = execute(
|
||||
SendDocument(
|
||||
chatId = chatId,
|
||||
document = document,
|
||||
@@ -233,7 +233,7 @@ public suspend inline fun TelegramBot.sendDocument(
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null,
|
||||
disableContentTypeDetection: Boolean? = null
|
||||
): ContentMessage<DocumentContent> = sendDocument(
|
||||
): ChatContentMessage<DocumentContent> = sendDocument(
|
||||
chatId = chat.id,
|
||||
document = document,
|
||||
thumb = thumb,
|
||||
@@ -270,7 +270,7 @@ public suspend inline fun TelegramBot.sendDocument(
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null,
|
||||
disableContentTypeDetection: Boolean? = null
|
||||
): ContentMessage<DocumentContent> = sendDocument(
|
||||
): ChatContentMessage<DocumentContent> = sendDocument(
|
||||
chatId = chatId,
|
||||
document = document.fileId,
|
||||
thumb = document.thumbnail ?.fileId,
|
||||
@@ -307,7 +307,7 @@ public suspend inline fun TelegramBot.sendDocument(
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null,
|
||||
disableContentTypeDetection: Boolean? = null
|
||||
): ContentMessage<DocumentContent> = sendDocument(
|
||||
): ChatContentMessage<DocumentContent> = sendDocument(
|
||||
chatId = chat.id,
|
||||
document = document,
|
||||
entities = entities,
|
||||
|
||||
@@ -0,0 +1,343 @@
|
||||
@file:Suppress("KDocUnresolvedReference")
|
||||
|
||||
package dev.inmo.tgbotapi.extensions.api.send.media
|
||||
|
||||
import dev.inmo.tgbotapi.bot.TelegramBot
|
||||
import dev.inmo.tgbotapi.requests.abstracts.InputFile
|
||||
import dev.inmo.tgbotapi.requests.send.media.SendLivePhoto
|
||||
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.SuggestedPostParameters
|
||||
import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup
|
||||
import dev.inmo.tgbotapi.types.chat.Chat
|
||||
import dev.inmo.tgbotapi.types.files.LivePhotoFile
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.content.LivePhotoContent
|
||||
|
||||
/**
|
||||
* @param replyMarkup Some of [KeyboardMarkup]. See [dev.inmo.tgbotapi.extensions.utils.types.buttons.replyKeyboard] or
|
||||
* [dev.inmo.tgbotapi.extensions.utils.types.buttons.inlineKeyboard] as a builders for that param
|
||||
*/
|
||||
public suspend fun TelegramBot.sendLivePhoto(
|
||||
chatId: ChatIdentifier,
|
||||
livePhoto: InputFile,
|
||||
photo: InputFile,
|
||||
text: String? = null,
|
||||
parseMode: ParseMode? = null,
|
||||
showCaptionAboveMedia: Boolean = false,
|
||||
spoilered: Boolean = false,
|
||||
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
|
||||
): ChatContentMessage<LivePhotoContent> = execute(
|
||||
SendLivePhoto(
|
||||
chatId = chatId,
|
||||
livePhoto = livePhoto,
|
||||
photo = photo,
|
||||
text = text,
|
||||
parseMode = parseMode,
|
||||
showCaptionAboveMedia = showCaptionAboveMedia,
|
||||
spoilered = spoilered,
|
||||
threadId = threadId,
|
||||
directMessageThreadId = directMessageThreadId,
|
||||
businessConnectionId = businessConnectionId,
|
||||
disableNotification = disableNotification,
|
||||
protectContent = protectContent,
|
||||
allowPaidBroadcast = allowPaidBroadcast,
|
||||
effectId = effectId,
|
||||
suggestedPostParameters = suggestedPostParameters,
|
||||
replyParameters = replyParameters,
|
||||
replyMarkup = replyMarkup
|
||||
)
|
||||
)
|
||||
|
||||
/**
|
||||
* @param replyMarkup Some of [KeyboardMarkup]. See [dev.inmo.tgbotapi.extensions.utils.types.buttons.replyKeyboard] or
|
||||
* [dev.inmo.tgbotapi.extensions.utils.types.buttons.inlineKeyboard] as a builders for that param
|
||||
*/
|
||||
public suspend fun TelegramBot.sendLivePhoto(
|
||||
chatId: ChatIdentifier,
|
||||
livePhoto: LivePhotoFile,
|
||||
text: String? = null,
|
||||
parseMode: ParseMode? = null,
|
||||
showCaptionAboveMedia: Boolean = false,
|
||||
spoilered: Boolean = false,
|
||||
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
|
||||
): ChatContentMessage<LivePhotoContent> = sendLivePhoto(
|
||||
chatId = chatId,
|
||||
livePhoto = livePhoto.fileId,
|
||||
photo = livePhoto.photo ?.fileId ?: livePhoto.fileId,
|
||||
text = text,
|
||||
parseMode = parseMode,
|
||||
showCaptionAboveMedia = showCaptionAboveMedia,
|
||||
spoilered = spoilered,
|
||||
threadId = threadId,
|
||||
directMessageThreadId = directMessageThreadId,
|
||||
businessConnectionId = businessConnectionId,
|
||||
disableNotification = disableNotification,
|
||||
protectContent = protectContent,
|
||||
allowPaidBroadcast = allowPaidBroadcast,
|
||||
effectId = effectId,
|
||||
suggestedPostParameters = suggestedPostParameters,
|
||||
replyParameters = replyParameters,
|
||||
replyMarkup = replyMarkup
|
||||
)
|
||||
|
||||
/**
|
||||
* @param replyMarkup Some of [KeyboardMarkup]. See [dev.inmo.tgbotapi.extensions.utils.types.buttons.replyKeyboard] or
|
||||
* [dev.inmo.tgbotapi.extensions.utils.types.buttons.inlineKeyboard] as a builders for that param
|
||||
*/
|
||||
public suspend fun TelegramBot.sendLivePhoto(
|
||||
chat: Chat,
|
||||
livePhoto: InputFile,
|
||||
photo: InputFile,
|
||||
text: String? = null,
|
||||
parseMode: ParseMode? = null,
|
||||
showCaptionAboveMedia: Boolean = false,
|
||||
spoilered: Boolean = false,
|
||||
threadId: MessageThreadId? = chat.id.threadId,
|
||||
directMessageThreadId: DirectMessageThreadId? = chat.id.directMessageThreadId,
|
||||
businessConnectionId: BusinessConnectionId? = chat.id.businessConnectionId,
|
||||
disableNotification: Boolean = false,
|
||||
protectContent: Boolean = false,
|
||||
allowPaidBroadcast: Boolean = false,
|
||||
effectId: EffectId? = null,
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ChatContentMessage<LivePhotoContent> = sendLivePhoto(
|
||||
chatId = chat.id,
|
||||
livePhoto = livePhoto,
|
||||
photo = photo,
|
||||
text = text,
|
||||
parseMode = parseMode,
|
||||
showCaptionAboveMedia = showCaptionAboveMedia,
|
||||
spoilered = spoilered,
|
||||
threadId = threadId,
|
||||
directMessageThreadId = directMessageThreadId,
|
||||
businessConnectionId = businessConnectionId,
|
||||
disableNotification = disableNotification,
|
||||
protectContent = protectContent,
|
||||
allowPaidBroadcast = allowPaidBroadcast,
|
||||
effectId = effectId,
|
||||
suggestedPostParameters = suggestedPostParameters,
|
||||
replyParameters = replyParameters,
|
||||
replyMarkup = replyMarkup
|
||||
)
|
||||
|
||||
/**
|
||||
* @param replyMarkup Some of [KeyboardMarkup]. See [dev.inmo.tgbotapi.extensions.utils.types.buttons.replyKeyboard] or
|
||||
* [dev.inmo.tgbotapi.extensions.utils.types.buttons.inlineKeyboard] as a builders for that param
|
||||
*/
|
||||
public suspend fun TelegramBot.sendLivePhoto(
|
||||
chat: Chat,
|
||||
livePhoto: LivePhotoFile,
|
||||
text: String? = null,
|
||||
parseMode: ParseMode? = null,
|
||||
showCaptionAboveMedia: Boolean = false,
|
||||
spoilered: Boolean = false,
|
||||
threadId: MessageThreadId? = chat.id.threadId,
|
||||
directMessageThreadId: DirectMessageThreadId? = chat.id.directMessageThreadId,
|
||||
businessConnectionId: BusinessConnectionId? = chat.id.businessConnectionId,
|
||||
disableNotification: Boolean = false,
|
||||
protectContent: Boolean = false,
|
||||
allowPaidBroadcast: Boolean = false,
|
||||
effectId: EffectId? = null,
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ChatContentMessage<LivePhotoContent> = sendLivePhoto(
|
||||
chatId = chat.id,
|
||||
livePhoto = livePhoto,
|
||||
text = text,
|
||||
parseMode = parseMode,
|
||||
showCaptionAboveMedia = showCaptionAboveMedia,
|
||||
spoilered = spoilered,
|
||||
threadId = threadId,
|
||||
directMessageThreadId = directMessageThreadId,
|
||||
businessConnectionId = businessConnectionId,
|
||||
disableNotification = disableNotification,
|
||||
protectContent = protectContent,
|
||||
allowPaidBroadcast = allowPaidBroadcast,
|
||||
effectId = effectId,
|
||||
suggestedPostParameters = suggestedPostParameters,
|
||||
replyParameters = replyParameters,
|
||||
replyMarkup = replyMarkup
|
||||
)
|
||||
|
||||
/**
|
||||
* @param replyMarkup Some of [KeyboardMarkup]. See [dev.inmo.tgbotapi.extensions.utils.types.buttons.replyKeyboard] or
|
||||
* [dev.inmo.tgbotapi.extensions.utils.types.buttons.inlineKeyboard] as a builders for that param
|
||||
*/
|
||||
public suspend inline fun TelegramBot.sendLivePhoto(
|
||||
chatId: ChatIdentifier,
|
||||
livePhoto: InputFile,
|
||||
photo: InputFile,
|
||||
entities: TextSourcesList,
|
||||
showCaptionAboveMedia: Boolean = false,
|
||||
spoilered: Boolean = false,
|
||||
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
|
||||
): ChatContentMessage<LivePhotoContent> = execute(
|
||||
SendLivePhoto(
|
||||
chatId = chatId,
|
||||
livePhoto = livePhoto,
|
||||
photo = photo,
|
||||
entities = entities,
|
||||
showCaptionAboveMedia = showCaptionAboveMedia,
|
||||
spoilered = spoilered,
|
||||
threadId = threadId,
|
||||
directMessageThreadId = directMessageThreadId,
|
||||
businessConnectionId = businessConnectionId,
|
||||
disableNotification = disableNotification,
|
||||
protectContent = protectContent,
|
||||
allowPaidBroadcast = allowPaidBroadcast,
|
||||
effectId = effectId,
|
||||
suggestedPostParameters = suggestedPostParameters,
|
||||
replyParameters = replyParameters,
|
||||
replyMarkup = replyMarkup
|
||||
)
|
||||
)
|
||||
|
||||
/**
|
||||
* @param replyMarkup Some of [KeyboardMarkup]. See [dev.inmo.tgbotapi.extensions.utils.types.buttons.replyKeyboard] or
|
||||
* [dev.inmo.tgbotapi.extensions.utils.types.buttons.inlineKeyboard] as a builders for that param
|
||||
*/
|
||||
public suspend inline fun TelegramBot.sendLivePhoto(
|
||||
chatId: ChatIdentifier,
|
||||
livePhoto: LivePhotoFile,
|
||||
entities: TextSourcesList,
|
||||
showCaptionAboveMedia: Boolean = false,
|
||||
spoilered: Boolean = false,
|
||||
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
|
||||
): ChatContentMessage<LivePhotoContent> = sendLivePhoto(
|
||||
chatId = chatId,
|
||||
livePhoto = livePhoto.fileId,
|
||||
photo = livePhoto.photo ?.fileId ?: livePhoto.fileId,
|
||||
entities = entities,
|
||||
showCaptionAboveMedia = showCaptionAboveMedia,
|
||||
spoilered = spoilered,
|
||||
threadId = threadId,
|
||||
directMessageThreadId = directMessageThreadId,
|
||||
businessConnectionId = businessConnectionId,
|
||||
disableNotification = disableNotification,
|
||||
protectContent = protectContent,
|
||||
allowPaidBroadcast = allowPaidBroadcast,
|
||||
effectId = effectId,
|
||||
suggestedPostParameters = suggestedPostParameters,
|
||||
replyParameters = replyParameters,
|
||||
replyMarkup = replyMarkup
|
||||
)
|
||||
|
||||
/**
|
||||
* @param replyMarkup Some of [KeyboardMarkup]. See [dev.inmo.tgbotapi.extensions.utils.types.buttons.replyKeyboard] or
|
||||
* [dev.inmo.tgbotapi.extensions.utils.types.buttons.inlineKeyboard] as a builders for that param
|
||||
*/
|
||||
public suspend inline fun TelegramBot.sendLivePhoto(
|
||||
chat: Chat,
|
||||
livePhoto: InputFile,
|
||||
photo: InputFile,
|
||||
entities: TextSourcesList,
|
||||
showCaptionAboveMedia: Boolean = false,
|
||||
spoilered: Boolean = false,
|
||||
threadId: MessageThreadId? = chat.id.threadId,
|
||||
directMessageThreadId: DirectMessageThreadId? = chat.id.directMessageThreadId,
|
||||
businessConnectionId: BusinessConnectionId? = chat.id.businessConnectionId,
|
||||
disableNotification: Boolean = false,
|
||||
protectContent: Boolean = false,
|
||||
allowPaidBroadcast: Boolean = false,
|
||||
effectId: EffectId? = null,
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ChatContentMessage<LivePhotoContent> = sendLivePhoto(
|
||||
chatId = chat.id,
|
||||
livePhoto = livePhoto,
|
||||
photo = photo,
|
||||
entities = entities,
|
||||
showCaptionAboveMedia = showCaptionAboveMedia,
|
||||
spoilered = spoilered,
|
||||
threadId = threadId,
|
||||
directMessageThreadId = directMessageThreadId,
|
||||
businessConnectionId = businessConnectionId,
|
||||
disableNotification = disableNotification,
|
||||
protectContent = protectContent,
|
||||
allowPaidBroadcast = allowPaidBroadcast,
|
||||
effectId = effectId,
|
||||
suggestedPostParameters = suggestedPostParameters,
|
||||
replyParameters = replyParameters,
|
||||
replyMarkup = replyMarkup
|
||||
)
|
||||
|
||||
/**
|
||||
* @param replyMarkup Some of [KeyboardMarkup]. See [dev.inmo.tgbotapi.extensions.utils.types.buttons.replyKeyboard] or
|
||||
* [dev.inmo.tgbotapi.extensions.utils.types.buttons.inlineKeyboard] as a builders for that param
|
||||
*/
|
||||
public suspend inline fun TelegramBot.sendLivePhoto(
|
||||
chat: Chat,
|
||||
livePhoto: LivePhotoFile,
|
||||
entities: TextSourcesList,
|
||||
showCaptionAboveMedia: Boolean = false,
|
||||
spoilered: Boolean = false,
|
||||
threadId: MessageThreadId? = chat.id.threadId,
|
||||
directMessageThreadId: DirectMessageThreadId? = chat.id.directMessageThreadId,
|
||||
businessConnectionId: BusinessConnectionId? = chat.id.businessConnectionId,
|
||||
disableNotification: Boolean = false,
|
||||
protectContent: Boolean = false,
|
||||
allowPaidBroadcast: Boolean = false,
|
||||
effectId: EffectId? = null,
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ChatContentMessage<LivePhotoContent> = sendLivePhoto(
|
||||
chatId = chat.id,
|
||||
livePhoto = livePhoto,
|
||||
entities = entities,
|
||||
showCaptionAboveMedia = showCaptionAboveMedia,
|
||||
spoilered = spoilered,
|
||||
threadId = threadId,
|
||||
directMessageThreadId = directMessageThreadId,
|
||||
businessConnectionId = businessConnectionId,
|
||||
disableNotification = disableNotification,
|
||||
protectContent = protectContent,
|
||||
allowPaidBroadcast = allowPaidBroadcast,
|
||||
effectId = effectId,
|
||||
suggestedPostParameters = suggestedPostParameters,
|
||||
replyParameters = replyParameters,
|
||||
replyMarkup = replyMarkup
|
||||
)
|
||||
@@ -6,7 +6,7 @@ import dev.inmo.tgbotapi.types.*
|
||||
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
|
||||
import dev.inmo.tgbotapi.types.media.*
|
||||
import dev.inmo.tgbotapi.types.chat.Chat
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.content.*
|
||||
import dev.inmo.tgbotapi.types.message.SuggestedPostParameters
|
||||
import dev.inmo.tgbotapi.utils.RiskFeature
|
||||
@@ -28,7 +28,7 @@ public suspend fun TelegramBot.sendMediaGroup(
|
||||
effectId: EffectId? = null,
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null
|
||||
): ContentMessage<MediaGroupContent<MediaGroupPartContent>> = execute(
|
||||
): ChatContentMessage<MediaGroupContent<MediaGroupPartContent>> = execute(
|
||||
SendMediaGroup<MediaGroupPartContent>(
|
||||
chatId = chatId,
|
||||
media = media,
|
||||
@@ -60,7 +60,7 @@ public suspend fun TelegramBot.sendMediaGroup(
|
||||
effectId: EffectId? = null,
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null
|
||||
): ContentMessage<MediaGroupContent<MediaGroupPartContent>> = sendMediaGroup(
|
||||
): ChatContentMessage<MediaGroupContent<MediaGroupPartContent>> = sendMediaGroup(
|
||||
chatId = chat.id,
|
||||
media = media,
|
||||
threadId = threadId,
|
||||
@@ -91,7 +91,7 @@ public suspend fun TelegramBot.sendMediaGroup(
|
||||
effectId: EffectId? = null,
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null
|
||||
): ContentMessage<MediaGroupContent<MediaGroupPartContent>> = sendMediaGroup(
|
||||
): ChatContentMessage<MediaGroupContent<MediaGroupPartContent>> = sendMediaGroup(
|
||||
chatId = chatId,
|
||||
media = media.map { it.toMediaGroupMemberTelegramMedia() },
|
||||
threadId = threadId,
|
||||
@@ -122,7 +122,7 @@ public suspend fun TelegramBot.sendMediaGroup(
|
||||
effectId: EffectId? = null,
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null
|
||||
): ContentMessage<MediaGroupContent<MediaGroupPartContent>> = sendMediaGroup(
|
||||
): ChatContentMessage<MediaGroupContent<MediaGroupPartContent>> = sendMediaGroup(
|
||||
chatId = chat.id,
|
||||
media = media,
|
||||
threadId = threadId,
|
||||
@@ -151,7 +151,7 @@ public suspend fun TelegramBot.sendPlaylist(
|
||||
effectId: EffectId? = null,
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null
|
||||
): ContentMessage<MediaGroupContent<AudioContent>> = execute(
|
||||
): ChatContentMessage<MediaGroupContent<AudioContent>> = execute(
|
||||
SendPlaylist(
|
||||
chatId = chatId,
|
||||
media = media,
|
||||
@@ -182,7 +182,7 @@ public suspend fun TelegramBot.sendPlaylist(
|
||||
effectId: EffectId? = null,
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null
|
||||
): ContentMessage<MediaGroupContent<AudioContent>> = sendPlaylist(
|
||||
): ChatContentMessage<MediaGroupContent<AudioContent>> = sendPlaylist(
|
||||
chatId = chat.id,
|
||||
media = media,
|
||||
threadId = threadId,
|
||||
@@ -212,7 +212,7 @@ public suspend fun TelegramBot.sendPlaylist(
|
||||
effectId: EffectId? = null,
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null
|
||||
): ContentMessage<MediaGroupContent<AudioContent>> = sendPlaylist(
|
||||
): ChatContentMessage<MediaGroupContent<AudioContent>> = sendPlaylist(
|
||||
chatId = chatId,
|
||||
media = media.map { it.toMediaGroupMemberTelegramMedia() },
|
||||
threadId = threadId,
|
||||
@@ -242,7 +242,7 @@ public suspend fun TelegramBot.sendPlaylist(
|
||||
effectId: EffectId? = null,
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null
|
||||
): ContentMessage<MediaGroupContent<AudioContent>> = sendPlaylist(
|
||||
): ChatContentMessage<MediaGroupContent<AudioContent>> = sendPlaylist(
|
||||
chatId = chat.id,
|
||||
media = media,
|
||||
threadId = threadId,
|
||||
@@ -271,7 +271,7 @@ public suspend fun TelegramBot.sendDocumentsGroup(
|
||||
effectId: EffectId? = null,
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null
|
||||
): ContentMessage<MediaGroupContent<DocumentContent>> = execute(
|
||||
): ChatContentMessage<MediaGroupContent<DocumentContent>> = execute(
|
||||
SendDocumentsGroup(
|
||||
chatId = chatId,
|
||||
media = media,
|
||||
@@ -302,7 +302,7 @@ public suspend fun TelegramBot.sendDocumentsGroup(
|
||||
effectId: EffectId? = null,
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null
|
||||
): ContentMessage<MediaGroupContent<DocumentContent>> = sendDocumentsGroup(
|
||||
): ChatContentMessage<MediaGroupContent<DocumentContent>> = sendDocumentsGroup(
|
||||
chatId = chat.id,
|
||||
media = media,
|
||||
threadId = threadId,
|
||||
@@ -332,7 +332,7 @@ public suspend fun TelegramBot.sendDocumentsGroup(
|
||||
effectId: EffectId? = null,
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null
|
||||
): ContentMessage<MediaGroupContent<DocumentContent>> = sendDocumentsGroup(
|
||||
): ChatContentMessage<MediaGroupContent<DocumentContent>> = sendDocumentsGroup(
|
||||
chatId = chatId,
|
||||
media = media.map { it.toMediaGroupMemberTelegramMedia() },
|
||||
threadId = threadId,
|
||||
@@ -362,7 +362,7 @@ public suspend fun TelegramBot.sendDocumentsGroup(
|
||||
effectId: EffectId? = null,
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null
|
||||
): ContentMessage<MediaGroupContent<DocumentContent>> = sendDocumentsGroup(
|
||||
): ChatContentMessage<MediaGroupContent<DocumentContent>> = sendDocumentsGroup(
|
||||
chatId = chat.id,
|
||||
media = media,
|
||||
threadId = threadId,
|
||||
@@ -391,7 +391,7 @@ public suspend fun TelegramBot.sendVisualMediaGroup(
|
||||
effectId: EffectId? = null,
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null
|
||||
): ContentMessage<MediaGroupContent<VisualMediaGroupPartContent>> = execute(
|
||||
): ChatContentMessage<MediaGroupContent<VisualMediaGroupPartContent>> = execute(
|
||||
SendVisualMediaGroup(
|
||||
chatId = chatId,
|
||||
media = media,
|
||||
@@ -422,7 +422,7 @@ public suspend fun TelegramBot.sendVisualMediaGroup(
|
||||
effectId: EffectId? = null,
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null
|
||||
): ContentMessage<MediaGroupContent<VisualMediaGroupPartContent>> = sendVisualMediaGroup(
|
||||
): ChatContentMessage<MediaGroupContent<VisualMediaGroupPartContent>> = sendVisualMediaGroup(
|
||||
chatId = chat.id,
|
||||
media = media,
|
||||
threadId = threadId,
|
||||
@@ -452,7 +452,7 @@ public suspend fun TelegramBot.sendVisualMediaGroup(
|
||||
effectId: EffectId? = null,
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null
|
||||
): ContentMessage<MediaGroupContent<VisualMediaGroupPartContent>> = sendVisualMediaGroup(
|
||||
): ChatContentMessage<MediaGroupContent<VisualMediaGroupPartContent>> = sendVisualMediaGroup(
|
||||
chatId = chatId,
|
||||
media = media.map { it.toMediaGroupMemberTelegramMedia() },
|
||||
threadId = threadId,
|
||||
@@ -482,7 +482,7 @@ public suspend fun TelegramBot.sendVisualMediaGroup(
|
||||
effectId: EffectId? = null,
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null
|
||||
): ContentMessage<MediaGroupContent<VisualMediaGroupPartContent>> = sendVisualMediaGroup(
|
||||
): ChatContentMessage<MediaGroupContent<VisualMediaGroupPartContent>> = sendVisualMediaGroup(
|
||||
chatId = chat.id,
|
||||
media = media,
|
||||
threadId = threadId,
|
||||
|
||||
@@ -12,7 +12,7 @@ import dev.inmo.tgbotapi.types.message.SuggestedPostParameters
|
||||
import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup
|
||||
import dev.inmo.tgbotapi.types.chat.Chat
|
||||
import dev.inmo.tgbotapi.types.media.TelegramPaidMedia
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.content.PaidMediaInfoContent
|
||||
|
||||
/**
|
||||
@@ -36,7 +36,7 @@ public suspend fun TelegramBot.sendPaidMedia(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<PaidMediaInfoContent> = execute(
|
||||
): ChatContentMessage<PaidMediaInfoContent> = execute(
|
||||
SendPaidMedia(
|
||||
chatId = chatId,
|
||||
starCount = starCount,
|
||||
@@ -78,7 +78,7 @@ public suspend fun TelegramBot.sendPaidMedia(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<PaidMediaInfoContent> = sendPaidMedia(
|
||||
): ChatContentMessage<PaidMediaInfoContent> = sendPaidMedia(
|
||||
chatId = chat.id,
|
||||
starCount = starCount,
|
||||
media = media,
|
||||
@@ -118,7 +118,7 @@ public suspend inline fun TelegramBot.sendPaidMedia(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<PaidMediaInfoContent> = execute(
|
||||
): ChatContentMessage<PaidMediaInfoContent> = execute(
|
||||
SendPaidMedia(
|
||||
chatId = chatId,
|
||||
starCount = starCount,
|
||||
@@ -158,7 +158,7 @@ public suspend inline fun TelegramBot.sendPaidMedia(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<PaidMediaInfoContent> = sendPaidMedia(
|
||||
): ChatContentMessage<PaidMediaInfoContent> = sendPaidMedia(
|
||||
chatId = chat.id,
|
||||
starCount = starCount,
|
||||
media = media,
|
||||
|
||||
@@ -13,7 +13,7 @@ import dev.inmo.tgbotapi.types.message.SuggestedPostParameters
|
||||
import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup
|
||||
import dev.inmo.tgbotapi.types.chat.Chat
|
||||
import dev.inmo.tgbotapi.types.files.*
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.content.PhotoContent
|
||||
|
||||
/**
|
||||
@@ -37,7 +37,7 @@ public suspend fun TelegramBot.sendPhoto(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<PhotoContent> = execute(
|
||||
): ChatContentMessage<PhotoContent> = execute(
|
||||
SendPhoto(
|
||||
chatId = chatId,
|
||||
photo = fileId,
|
||||
@@ -79,7 +79,7 @@ public suspend fun TelegramBot.sendPhoto(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<PhotoContent> = sendPhoto(
|
||||
): ChatContentMessage<PhotoContent> = sendPhoto(
|
||||
chatId = chat.id,
|
||||
fileId = fileId,
|
||||
text = text,
|
||||
@@ -119,7 +119,7 @@ public suspend fun TelegramBot.sendPhoto(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<PhotoContent> = sendPhoto(
|
||||
): ChatContentMessage<PhotoContent> = sendPhoto(
|
||||
chatId = chatId,
|
||||
fileId = photo.biggest() ?.fileId ?: error("Photo content must not be empty"),
|
||||
text = text,
|
||||
@@ -159,7 +159,7 @@ public suspend fun TelegramBot.sendPhoto(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<PhotoContent> = sendPhoto(
|
||||
): ChatContentMessage<PhotoContent> = sendPhoto(
|
||||
chatId = chat.id,
|
||||
photo = photo,
|
||||
text = text,
|
||||
@@ -199,7 +199,7 @@ public suspend fun TelegramBot.sendPhoto(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<PhotoContent> = sendPhoto(
|
||||
): ChatContentMessage<PhotoContent> = sendPhoto(
|
||||
chatId = chatId,
|
||||
fileId = photoSize.fileId,
|
||||
text = text,
|
||||
@@ -239,7 +239,7 @@ public suspend fun TelegramBot.sendPhoto(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<PhotoContent> = sendPhoto(
|
||||
): ChatContentMessage<PhotoContent> = sendPhoto(
|
||||
chatId = chat.id,
|
||||
photoSize = photoSize,
|
||||
text = text,
|
||||
@@ -279,7 +279,7 @@ public suspend inline fun TelegramBot.sendPhoto(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<PhotoContent> = execute(
|
||||
): ChatContentMessage<PhotoContent> = execute(
|
||||
SendPhoto(
|
||||
chatId = chatId,
|
||||
photo = fileId,
|
||||
@@ -319,7 +319,7 @@ public suspend inline fun TelegramBot.sendPhoto(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<PhotoContent> = sendPhoto(
|
||||
): ChatContentMessage<PhotoContent> = sendPhoto(
|
||||
chatId = chat.id,
|
||||
fileId = fileId,
|
||||
entities = entities,
|
||||
@@ -357,7 +357,7 @@ public suspend inline fun TelegramBot.sendPhoto(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<PhotoContent> = sendPhoto(
|
||||
): ChatContentMessage<PhotoContent> = sendPhoto(
|
||||
chatId = chatId,
|
||||
fileId = photo.biggest() ?.fileId ?: error("Photo content must not be empty"),
|
||||
entities = entities,
|
||||
@@ -395,7 +395,7 @@ public suspend inline fun TelegramBot.sendPhoto(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<PhotoContent> = sendPhoto(
|
||||
): ChatContentMessage<PhotoContent> = sendPhoto(
|
||||
chatId = chat.id,
|
||||
photo = photo,
|
||||
entities = entities,
|
||||
@@ -433,7 +433,7 @@ public suspend inline fun TelegramBot.sendPhoto(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<PhotoContent> = sendPhoto(
|
||||
): ChatContentMessage<PhotoContent> = sendPhoto(
|
||||
chatId = chatId,
|
||||
fileId = photoSize.fileId,
|
||||
entities = entities,
|
||||
@@ -471,7 +471,7 @@ public suspend inline fun TelegramBot.sendPhoto(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<PhotoContent> = sendPhoto(
|
||||
): ChatContentMessage<PhotoContent> = sendPhoto(
|
||||
chatId = chat.id,
|
||||
photoSize = photoSize,
|
||||
entities = entities,
|
||||
|
||||
@@ -10,7 +10,7 @@ import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
|
||||
import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup
|
||||
import dev.inmo.tgbotapi.types.chat.Chat
|
||||
import dev.inmo.tgbotapi.types.files.Sticker
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.content.StickerContent
|
||||
import dev.inmo.tgbotapi.types.message.SuggestedPostParameters
|
||||
|
||||
@@ -32,7 +32,7 @@ public suspend fun TelegramBot.sendSticker(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<StickerContent> = execute(
|
||||
): ChatContentMessage<StickerContent> = execute(
|
||||
SendSticker(
|
||||
chatId = chatId,
|
||||
sticker = sticker,
|
||||
@@ -68,7 +68,7 @@ public suspend fun TelegramBot.sendSticker(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<StickerContent> = sendSticker(
|
||||
): ChatContentMessage<StickerContent> = sendSticker(
|
||||
chatId = chat.id,
|
||||
sticker = sticker,
|
||||
threadId = threadId,
|
||||
@@ -102,7 +102,7 @@ public suspend fun TelegramBot.sendSticker(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<StickerContent> = sendSticker(
|
||||
): ChatContentMessage<StickerContent> = sendSticker(
|
||||
chatId = chatId,
|
||||
sticker = sticker.fileId,
|
||||
threadId = threadId,
|
||||
@@ -136,7 +136,7 @@ public suspend fun TelegramBot.sendSticker(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<StickerContent> = sendSticker(
|
||||
): ChatContentMessage<StickerContent> = sendSticker(
|
||||
chat = chat,
|
||||
sticker = sticker.fileId,
|
||||
threadId = threadId,
|
||||
|
||||
@@ -13,7 +13,7 @@ import dev.inmo.tgbotapi.types.message.SuggestedPostParameters
|
||||
import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup
|
||||
import dev.inmo.tgbotapi.types.chat.Chat
|
||||
import dev.inmo.tgbotapi.types.files.VideoFile
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.content.VideoContent
|
||||
|
||||
/**
|
||||
@@ -44,7 +44,7 @@ public suspend fun TelegramBot.sendVideo(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<VideoContent> = execute(
|
||||
): ChatContentMessage<VideoContent> = execute(
|
||||
SendVideo(
|
||||
chatId = chatId,
|
||||
video = video,
|
||||
@@ -94,7 +94,7 @@ public suspend fun TelegramBot.sendVideo(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<VideoContent> = sendVideo(
|
||||
): ChatContentMessage<VideoContent> = sendVideo(
|
||||
chatId = chatId,
|
||||
video = video.fileId,
|
||||
thumb = video.thumbnail ?.fileId,
|
||||
@@ -148,7 +148,7 @@ public suspend fun TelegramBot.sendVideo(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<VideoContent> = sendVideo(
|
||||
): ChatContentMessage<VideoContent> = sendVideo(
|
||||
chatId = chat.id,
|
||||
video = video,
|
||||
thumb = thumb,
|
||||
@@ -197,7 +197,7 @@ public suspend fun TelegramBot.sendVideo(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<VideoContent> = sendVideo(
|
||||
): ChatContentMessage<VideoContent> = sendVideo(
|
||||
chatId = chat.id,
|
||||
video = video,
|
||||
text = text,
|
||||
@@ -244,7 +244,7 @@ public suspend inline fun TelegramBot.sendVideo(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<VideoContent> = execute(
|
||||
): ChatContentMessage<VideoContent> = execute(
|
||||
SendVideo(
|
||||
chatId = chatId,
|
||||
video = video,
|
||||
@@ -292,7 +292,7 @@ public suspend inline fun TelegramBot.sendVideo(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<VideoContent> = sendVideo(
|
||||
): ChatContentMessage<VideoContent> = sendVideo(
|
||||
chatId = chatId,
|
||||
video = video.fileId,
|
||||
thumb = video.thumbnail ?.fileId,
|
||||
@@ -344,7 +344,7 @@ public suspend inline fun TelegramBot.sendVideo(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<VideoContent> = sendVideo(
|
||||
): ChatContentMessage<VideoContent> = sendVideo(
|
||||
chatId = chat.id,
|
||||
video = video,
|
||||
thumb = thumb,
|
||||
@@ -391,7 +391,7 @@ public suspend inline fun TelegramBot.sendVideo(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<VideoContent> = sendVideo(
|
||||
): ChatContentMessage<VideoContent> = sendVideo(
|
||||
chatId = chat.id,
|
||||
video = video,
|
||||
entities = entities,
|
||||
|
||||
@@ -9,7 +9,7 @@ import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup
|
||||
import dev.inmo.tgbotapi.types.chat.Chat
|
||||
import dev.inmo.tgbotapi.types.message.SuggestedPostParameters
|
||||
import dev.inmo.tgbotapi.types.files.VideoNoteFile
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.content.VideoNoteContent
|
||||
|
||||
/**
|
||||
@@ -32,7 +32,7 @@ public suspend fun TelegramBot.sendVideoNote(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<VideoNoteContent> = execute(
|
||||
): ChatContentMessage<VideoNoteContent> = execute(
|
||||
SendVideoNote(
|
||||
chatId = chatId,
|
||||
videoNote = videoNote,
|
||||
@@ -69,7 +69,7 @@ public suspend fun TelegramBot.sendVideoNote(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<VideoNoteContent> = sendVideoNote(
|
||||
): ChatContentMessage<VideoNoteContent> = sendVideoNote(
|
||||
chatId = chatId,
|
||||
videoNote = videoNote.fileId,
|
||||
thumb = videoNote.thumbnail ?.fileId,
|
||||
@@ -107,7 +107,7 @@ public suspend fun TelegramBot.sendVideoNote(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<VideoNoteContent> = sendVideoNote(
|
||||
): ChatContentMessage<VideoNoteContent> = sendVideoNote(
|
||||
chatId = chat.id,
|
||||
videoNote = videoNote,
|
||||
thumb = thumb,
|
||||
@@ -142,7 +142,7 @@ public suspend fun TelegramBot.sendVideoNote(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<VideoNoteContent> = sendVideoNote(
|
||||
): ChatContentMessage<VideoNoteContent> = sendVideoNote(
|
||||
chatId = chat.id,
|
||||
videoNote = videoNote,
|
||||
threadId = threadId,
|
||||
|
||||
@@ -11,7 +11,7 @@ import dev.inmo.tgbotapi.types.message.SuggestedPostParameters
|
||||
import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup
|
||||
import dev.inmo.tgbotapi.types.chat.Chat
|
||||
import dev.inmo.tgbotapi.types.files.VoiceFile
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.content.VoiceContent
|
||||
|
||||
/**
|
||||
@@ -34,7 +34,7 @@ public suspend fun TelegramBot.sendVoice(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<VoiceContent> = execute(
|
||||
): ChatContentMessage<VoiceContent> = execute(
|
||||
SendVoice(
|
||||
chatId = chatId,
|
||||
voice = voice,
|
||||
@@ -74,7 +74,7 @@ public suspend fun TelegramBot.sendVoice(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<VoiceContent> = sendVoice(
|
||||
): ChatContentMessage<VoiceContent> = sendVoice(
|
||||
chatId = chat.id,
|
||||
voice = voice,
|
||||
text = text,
|
||||
@@ -111,7 +111,7 @@ public suspend fun TelegramBot.sendVoice(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<VoiceContent> = sendVoice(
|
||||
): ChatContentMessage<VoiceContent> = sendVoice(
|
||||
chatId = chatId,
|
||||
voice = voice.fileId,
|
||||
text = text,
|
||||
@@ -148,7 +148,7 @@ public suspend fun TelegramBot.sendVoice(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<VoiceContent> = sendVoice(
|
||||
): ChatContentMessage<VoiceContent> = sendVoice(
|
||||
chatId = chat.id,
|
||||
voice = voice,
|
||||
text = text,
|
||||
@@ -185,7 +185,7 @@ public suspend inline fun TelegramBot.sendVoice(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<VoiceContent> = execute(
|
||||
): ChatContentMessage<VoiceContent> = execute(
|
||||
SendVoice(
|
||||
chatId = chatId,
|
||||
voice = voice,
|
||||
@@ -223,7 +223,7 @@ public suspend inline fun TelegramBot.sendVoice(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<VoiceContent> = sendVoice(
|
||||
): ChatContentMessage<VoiceContent> = sendVoice(
|
||||
chatId = chat.id,
|
||||
voice = voice,
|
||||
entities = entities,
|
||||
@@ -258,7 +258,7 @@ public suspend inline fun TelegramBot.sendVoice(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<VoiceContent> = sendVoice(
|
||||
): ChatContentMessage<VoiceContent> = sendVoice(
|
||||
chatId = chatId,
|
||||
voice = voice.fileId,
|
||||
entities = entities,
|
||||
@@ -292,7 +292,7 @@ public suspend inline fun TelegramBot.sendVoice(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<VoiceContent> = sendVoice(
|
||||
): ChatContentMessage<VoiceContent> = sendVoice(
|
||||
chatId = chat.id,
|
||||
voice = voice,
|
||||
entities = entities,
|
||||
|
||||
@@ -8,7 +8,7 @@ import dev.inmo.tgbotapi.types.*
|
||||
import dev.inmo.tgbotapi.types.buttons.InlineKeyboardMarkup
|
||||
import dev.inmo.tgbotapi.types.chat.CommonUser
|
||||
import dev.inmo.tgbotapi.types.message.SuggestedPostParameters
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.content.InvoiceContent
|
||||
import dev.inmo.tgbotapi.types.payments.LabeledPrice
|
||||
import dev.inmo.tgbotapi.types.payments.abstracts.Currency
|
||||
@@ -45,7 +45,7 @@ public suspend fun TelegramBot.sendInvoice(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: InlineKeyboardMarkup? = null
|
||||
): ContentMessage<InvoiceContent> = execute(
|
||||
): ChatContentMessage<InvoiceContent> = execute(
|
||||
SendInvoice(
|
||||
chatId = chatId,
|
||||
title = title,
|
||||
@@ -107,7 +107,7 @@ public suspend fun TelegramBot.sendInvoice(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: InlineKeyboardMarkup? = null
|
||||
): ContentMessage<InvoiceContent> = sendInvoice(
|
||||
): ChatContentMessage<InvoiceContent> = sendInvoice(
|
||||
chatId = user.id,
|
||||
title = title,
|
||||
description = description,
|
||||
@@ -159,7 +159,7 @@ public suspend fun TelegramBot.sendInvoice(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: InlineKeyboardMarkup? = null
|
||||
): ContentMessage<InvoiceContent> = execute(
|
||||
): ChatContentMessage<InvoiceContent> = execute(
|
||||
SendInvoice(
|
||||
chatId = chatId,
|
||||
title = title,
|
||||
@@ -199,7 +199,7 @@ public suspend fun TelegramBot.sendInvoice(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: InlineKeyboardMarkup? = null
|
||||
): ContentMessage<InvoiceContent> = sendInvoice(
|
||||
): ChatContentMessage<InvoiceContent> = sendInvoice(
|
||||
chatId = user.id,
|
||||
title = title,
|
||||
description = description,
|
||||
|
||||
@@ -5,9 +5,10 @@ import dev.inmo.tgbotapi.requests.send.polls.SendQuizPoll
|
||||
import dev.inmo.tgbotapi.types.*
|
||||
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
|
||||
import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup
|
||||
import dev.inmo.tgbotapi.types.media.InputPollMedia
|
||||
import dev.inmo.tgbotapi.types.message.ParseMode
|
||||
import dev.inmo.tgbotapi.types.message.SuggestedPostParameters
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.content.PollContent
|
||||
import dev.inmo.tgbotapi.types.message.textsources.TextSource
|
||||
import dev.inmo.tgbotapi.types.polls.InputPollOption
|
||||
@@ -18,14 +19,24 @@ public suspend fun TelegramBot.sendQuizPoll(
|
||||
chatId: ChatIdentifier,
|
||||
question: String,
|
||||
options: List<InputPollOption>,
|
||||
correctOptionId: Int,
|
||||
correctOptionIds: List<Int>,
|
||||
explanation: String?,
|
||||
questionParseMode: ParseMode? = null,
|
||||
explanationParseMode: ParseMode? = null,
|
||||
isAnonymous: Boolean = true,
|
||||
isClosed: Boolean = false,
|
||||
allowsMultipleAnswers: Boolean = false,
|
||||
allowsRevoting: Boolean = false,
|
||||
shuffleOptions: Boolean = false,
|
||||
hideResultsUntilCloses: Boolean = false,
|
||||
description: String? = null,
|
||||
descriptionParseMode: ParseMode? = null,
|
||||
openPeriod: LongSeconds? = null,
|
||||
closeDate: LongSeconds? = null,
|
||||
media: InputPollMedia? = null,
|
||||
explanationMedia: InputPollMedia? = null,
|
||||
membersOnly: Boolean = false,
|
||||
countryCodes: List<String>? = null,
|
||||
threadId: MessageThreadId? = chatId.threadId,
|
||||
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
|
||||
businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId,
|
||||
@@ -36,19 +47,29 @@ public suspend fun TelegramBot.sendQuizPoll(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<PollContent> = execute(
|
||||
): ChatContentMessage<PollContent> = execute(
|
||||
SendQuizPoll(
|
||||
chatId = chatId,
|
||||
question = question,
|
||||
options = options,
|
||||
correctOptionId = correctOptionId,
|
||||
correctOptionIds = correctOptionIds,
|
||||
explanation = explanation,
|
||||
questionParseMode = questionParseMode,
|
||||
explanationParseMode = explanationParseMode,
|
||||
isAnonymous = isAnonymous,
|
||||
isClosed = isClosed,
|
||||
allowsMultipleAnswers = allowsMultipleAnswers,
|
||||
allowsRevoting = allowsRevoting,
|
||||
shuffleOptions = shuffleOptions,
|
||||
hideResultsUntilCloses = hideResultsUntilCloses,
|
||||
description = description,
|
||||
descriptionParseMode = descriptionParseMode,
|
||||
openPeriod = openPeriod,
|
||||
closeDate = closeDate,
|
||||
media = media,
|
||||
explanationMedia = explanationMedia,
|
||||
membersOnly = membersOnly,
|
||||
countryCodes = countryCodes,
|
||||
threadId = threadId,
|
||||
directMessageThreadId = directMessageThreadId,
|
||||
businessConnectionId = businessConnectionId,
|
||||
@@ -66,13 +87,23 @@ public suspend fun TelegramBot.sendQuizPoll(
|
||||
chatId: ChatIdentifier,
|
||||
questionEntities: List<TextSource>,
|
||||
options: List<InputPollOption>,
|
||||
correctOptionId: Int,
|
||||
correctOptionIds: List<Int>,
|
||||
explanation: String?,
|
||||
explanationParseMode: ParseMode? = null,
|
||||
isAnonymous: Boolean = true,
|
||||
isClosed: Boolean = false,
|
||||
allowsMultipleAnswers: Boolean = false,
|
||||
allowsRevoting: Boolean = false,
|
||||
shuffleOptions: Boolean = false,
|
||||
hideResultsUntilCloses: Boolean = false,
|
||||
description: String? = null,
|
||||
descriptionParseMode: ParseMode? = null,
|
||||
openPeriod: LongSeconds? = null,
|
||||
closeDate: LongSeconds? = null,
|
||||
media: InputPollMedia? = null,
|
||||
explanationMedia: InputPollMedia? = null,
|
||||
membersOnly: Boolean = false,
|
||||
countryCodes: List<String>? = null,
|
||||
threadId: MessageThreadId? = chatId.threadId,
|
||||
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
|
||||
businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId,
|
||||
@@ -83,16 +114,152 @@ public suspend fun TelegramBot.sendQuizPoll(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<PollContent> = execute(
|
||||
): ChatContentMessage<PollContent> = execute(
|
||||
SendQuizPoll(
|
||||
chatId = chatId,
|
||||
questionEntities = questionEntities,
|
||||
options = options,
|
||||
correctOptionId = correctOptionId,
|
||||
correctOptionIds = correctOptionIds,
|
||||
explanation = explanation,
|
||||
explanationParseMode = explanationParseMode,
|
||||
isAnonymous = isAnonymous,
|
||||
isClosed = isClosed,
|
||||
allowsMultipleAnswers = allowsMultipleAnswers,
|
||||
allowsRevoting = allowsRevoting,
|
||||
shuffleOptions = shuffleOptions,
|
||||
hideResultsUntilCloses = hideResultsUntilCloses,
|
||||
description = description,
|
||||
descriptionParseMode = descriptionParseMode,
|
||||
openPeriod = openPeriod,
|
||||
closeDate = closeDate,
|
||||
media = media,
|
||||
explanationMedia = explanationMedia,
|
||||
membersOnly = membersOnly,
|
||||
countryCodes = countryCodes,
|
||||
threadId = threadId,
|
||||
directMessageThreadId = directMessageThreadId,
|
||||
businessConnectionId = businessConnectionId,
|
||||
disableNotification = disableNotification,
|
||||
protectContent = protectContent,
|
||||
allowPaidBroadcast = allowPaidBroadcast,
|
||||
effectId = effectId,
|
||||
suggestedPostParameters = suggestedPostParameters,
|
||||
replyParameters = replyParameters,
|
||||
replyMarkup = replyMarkup
|
||||
)
|
||||
)
|
||||
|
||||
public suspend fun TelegramBot.sendQuizPoll(
|
||||
chatId: ChatIdentifier,
|
||||
question: String,
|
||||
options: List<InputPollOption>,
|
||||
correctOptionIds: List<Int>,
|
||||
questionParseMode: ParseMode? = null,
|
||||
explanationTextSources: List<TextSource>? = null,
|
||||
isAnonymous: Boolean = true,
|
||||
isClosed: Boolean = false,
|
||||
allowsMultipleAnswers: Boolean = false,
|
||||
allowsRevoting: Boolean = false,
|
||||
shuffleOptions: Boolean = false,
|
||||
hideResultsUntilCloses: Boolean = false,
|
||||
descriptionTextSources: List<TextSource>? = null,
|
||||
openPeriod: LongSeconds? = null,
|
||||
closeDate: LongSeconds? = null,
|
||||
media: InputPollMedia? = null,
|
||||
explanationMedia: InputPollMedia? = null,
|
||||
membersOnly: Boolean = false,
|
||||
countryCodes: List<String>? = 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
|
||||
): ChatContentMessage<PollContent> = execute(
|
||||
SendQuizPoll(
|
||||
chatId = chatId,
|
||||
question = question,
|
||||
options = options,
|
||||
correctOptionIds = correctOptionIds,
|
||||
questionParseMode = questionParseMode,
|
||||
explanationTextSources = explanationTextSources,
|
||||
isAnonymous = isAnonymous,
|
||||
isClosed = isClosed,
|
||||
allowsMultipleAnswers = allowsMultipleAnswers,
|
||||
allowsRevoting = allowsRevoting,
|
||||
shuffleOptions = shuffleOptions,
|
||||
hideResultsUntilCloses = hideResultsUntilCloses,
|
||||
descriptionTextSources = descriptionTextSources,
|
||||
openPeriod = openPeriod,
|
||||
closeDate = closeDate,
|
||||
media = media,
|
||||
explanationMedia = explanationMedia,
|
||||
membersOnly = membersOnly,
|
||||
countryCodes = countryCodes,
|
||||
threadId = threadId,
|
||||
directMessageThreadId = directMessageThreadId,
|
||||
businessConnectionId = businessConnectionId,
|
||||
disableNotification = disableNotification,
|
||||
protectContent = protectContent,
|
||||
allowPaidBroadcast = allowPaidBroadcast,
|
||||
effectId = effectId,
|
||||
suggestedPostParameters = suggestedPostParameters,
|
||||
replyParameters = replyParameters,
|
||||
replyMarkup = replyMarkup
|
||||
)
|
||||
)
|
||||
|
||||
public suspend fun TelegramBot.sendQuizPoll(
|
||||
chatId: ChatIdentifier,
|
||||
questionEntities: List<TextSource>,
|
||||
options: List<InputPollOption>,
|
||||
correctOptionIds: List<Int>,
|
||||
explanationTextSources: List<TextSource>? = null,
|
||||
isAnonymous: Boolean = true,
|
||||
isClosed: Boolean = false,
|
||||
allowsMultipleAnswers: Boolean = false,
|
||||
allowsRevoting: Boolean = false,
|
||||
shuffleOptions: Boolean = false,
|
||||
hideResultsUntilCloses: Boolean = false,
|
||||
descriptionTextSources: List<TextSource>? = null,
|
||||
openPeriod: LongSeconds? = null,
|
||||
closeDate: LongSeconds? = null,
|
||||
media: InputPollMedia? = null,
|
||||
explanationMedia: InputPollMedia? = null,
|
||||
membersOnly: Boolean = false,
|
||||
countryCodes: List<String>? = 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
|
||||
): ChatContentMessage<PollContent> = execute(
|
||||
SendQuizPoll(
|
||||
chatId = chatId,
|
||||
questionEntities = questionEntities,
|
||||
options = options,
|
||||
correctOptionIds = correctOptionIds,
|
||||
explanationTextSources = explanationTextSources,
|
||||
isAnonymous = isAnonymous,
|
||||
isClosed = isClosed,
|
||||
allowsMultipleAnswers = allowsMultipleAnswers,
|
||||
allowsRevoting = allowsRevoting,
|
||||
shuffleOptions = shuffleOptions,
|
||||
hideResultsUntilCloses = hideResultsUntilCloses,
|
||||
descriptionTextSources = descriptionTextSources,
|
||||
media = media,
|
||||
explanationMedia = explanationMedia,
|
||||
membersOnly = membersOnly,
|
||||
countryCodes = countryCodes,
|
||||
openPeriod = openPeriod,
|
||||
closeDate = closeDate,
|
||||
threadId = threadId,
|
||||
@@ -112,13 +279,23 @@ public suspend fun TelegramBot.sendQuizPoll(
|
||||
chatId: ChatIdentifier,
|
||||
question: String,
|
||||
options: List<InputPollOption>,
|
||||
correctOptionId: Int,
|
||||
explanationTextSources: List<TextSource>? = null,
|
||||
correctOptionIds: List<Int>,
|
||||
closeInfo: ScheduledCloseInfo?,
|
||||
explanation: String?,
|
||||
questionParseMode: ParseMode? = null,
|
||||
explanationParseMode: ParseMode? = null,
|
||||
isAnonymous: Boolean = true,
|
||||
isClosed: Boolean = false,
|
||||
openPeriod: LongSeconds? = null,
|
||||
closeDate: LongSeconds? = null,
|
||||
allowsMultipleAnswers: Boolean = false,
|
||||
allowsRevoting: Boolean = false,
|
||||
shuffleOptions: Boolean = false,
|
||||
hideResultsUntilCloses: Boolean = false,
|
||||
description: String? = null,
|
||||
descriptionParseMode: ParseMode? = null,
|
||||
media: InputPollMedia? = null,
|
||||
explanationMedia: InputPollMedia? = null,
|
||||
membersOnly: Boolean = false,
|
||||
countryCodes: List<String>? = null,
|
||||
threadId: MessageThreadId? = chatId.threadId,
|
||||
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
|
||||
businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId,
|
||||
@@ -129,18 +306,28 @@ public suspend fun TelegramBot.sendQuizPoll(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<PollContent> = execute(
|
||||
): ChatContentMessage<PollContent> = execute(
|
||||
SendQuizPoll(
|
||||
chatId = chatId,
|
||||
question = question,
|
||||
options = options,
|
||||
correctOptionId = correctOptionId,
|
||||
correctOptionIds = correctOptionIds,
|
||||
closeInfo = closeInfo,
|
||||
explanation = explanation,
|
||||
questionParseMode = questionParseMode,
|
||||
explanationTextSources = explanationTextSources,
|
||||
explanationParseMode = explanationParseMode,
|
||||
isAnonymous = isAnonymous,
|
||||
isClosed = isClosed,
|
||||
openPeriod = openPeriod,
|
||||
closeDate = closeDate,
|
||||
allowsMultipleAnswers = allowsMultipleAnswers,
|
||||
allowsRevoting = allowsRevoting,
|
||||
shuffleOptions = shuffleOptions,
|
||||
hideResultsUntilCloses = hideResultsUntilCloses,
|
||||
description = description,
|
||||
descriptionParseMode = descriptionParseMode,
|
||||
media = media,
|
||||
explanationMedia = explanationMedia,
|
||||
membersOnly = membersOnly,
|
||||
countryCodes = countryCodes,
|
||||
threadId = threadId,
|
||||
directMessageThreadId = directMessageThreadId,
|
||||
businessConnectionId = businessConnectionId,
|
||||
@@ -154,17 +341,26 @@ public suspend fun TelegramBot.sendQuizPoll(
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
public suspend fun TelegramBot.sendQuizPoll(
|
||||
chatId: ChatIdentifier,
|
||||
questionEntities: List<TextSource>,
|
||||
options: List<InputPollOption>,
|
||||
correctOptionId: Int,
|
||||
explanationTextSources: List<TextSource>? = null,
|
||||
correctOptionIds: List<Int>,
|
||||
closeInfo: ScheduledCloseInfo?,
|
||||
explanation: String?,
|
||||
explanationParseMode: ParseMode? = null,
|
||||
isAnonymous: Boolean = true,
|
||||
isClosed: Boolean = false,
|
||||
openPeriod: LongSeconds? = null,
|
||||
closeDate: LongSeconds? = null,
|
||||
allowsMultipleAnswers: Boolean = false,
|
||||
allowsRevoting: Boolean = false,
|
||||
shuffleOptions: Boolean = false,
|
||||
hideResultsUntilCloses: Boolean = false,
|
||||
description: String? = null,
|
||||
descriptionParseMode: ParseMode? = null,
|
||||
media: InputPollMedia? = null,
|
||||
explanationMedia: InputPollMedia? = null,
|
||||
membersOnly: Boolean = false,
|
||||
countryCodes: List<String>? = null,
|
||||
threadId: MessageThreadId? = chatId.threadId,
|
||||
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
|
||||
businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId,
|
||||
@@ -175,17 +371,27 @@ public suspend fun TelegramBot.sendQuizPoll(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<PollContent> = execute(
|
||||
): ChatContentMessage<PollContent> = execute(
|
||||
SendQuizPoll(
|
||||
chatId = chatId,
|
||||
questionEntities = questionEntities,
|
||||
options = options,
|
||||
correctOptionId = correctOptionId,
|
||||
explanationTextSources = explanationTextSources,
|
||||
correctOptionIds = correctOptionIds,
|
||||
closeInfo = closeInfo,
|
||||
explanation = explanation,
|
||||
explanationParseMode = explanationParseMode,
|
||||
isAnonymous = isAnonymous,
|
||||
isClosed = isClosed,
|
||||
openPeriod = openPeriod,
|
||||
closeDate = closeDate,
|
||||
allowsMultipleAnswers = allowsMultipleAnswers,
|
||||
allowsRevoting = allowsRevoting,
|
||||
shuffleOptions = shuffleOptions,
|
||||
hideResultsUntilCloses = hideResultsUntilCloses,
|
||||
description = description,
|
||||
descriptionParseMode = descriptionParseMode,
|
||||
media = media,
|
||||
explanationMedia = explanationMedia,
|
||||
membersOnly = membersOnly,
|
||||
countryCodes = countryCodes,
|
||||
threadId = threadId,
|
||||
directMessageThreadId = directMessageThreadId,
|
||||
businessConnectionId = businessConnectionId,
|
||||
@@ -203,13 +409,21 @@ public suspend fun TelegramBot.sendQuizPoll(
|
||||
chatId: ChatIdentifier,
|
||||
question: String,
|
||||
options: List<InputPollOption>,
|
||||
correctOptionId: Int,
|
||||
correctOptionIds: List<Int>,
|
||||
closeInfo: ScheduledCloseInfo?,
|
||||
questionParseMode: ParseMode? = null,
|
||||
explanation: String?,
|
||||
explanationParseMode: ParseMode? = null,
|
||||
explanationTextSources: List<TextSource>? = null,
|
||||
isAnonymous: Boolean = true,
|
||||
isClosed: Boolean = false,
|
||||
allowsMultipleAnswers: Boolean = false,
|
||||
allowsRevoting: Boolean = false,
|
||||
shuffleOptions: Boolean = false,
|
||||
hideResultsUntilCloses: Boolean = false,
|
||||
descriptionTextSources: List<TextSource>? = null,
|
||||
media: InputPollMedia? = null,
|
||||
explanationMedia: InputPollMedia? = null,
|
||||
membersOnly: Boolean = false,
|
||||
countryCodes: List<String>? = null,
|
||||
threadId: MessageThreadId? = chatId.threadId,
|
||||
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
|
||||
businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId,
|
||||
@@ -220,18 +434,26 @@ public suspend fun TelegramBot.sendQuizPoll(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<PollContent> = execute(
|
||||
): ChatContentMessage<PollContent> = execute(
|
||||
SendQuizPoll(
|
||||
chatId = chatId,
|
||||
question = question,
|
||||
options = options,
|
||||
correctOptionId = correctOptionId,
|
||||
correctOptionIds = correctOptionIds,
|
||||
closeInfo = closeInfo,
|
||||
explanation = explanation,
|
||||
questionParseMode = questionParseMode,
|
||||
explanationParseMode = explanationParseMode,
|
||||
explanationTextSources = explanationTextSources,
|
||||
isAnonymous = isAnonymous,
|
||||
isClosed = isClosed,
|
||||
allowsMultipleAnswers = allowsMultipleAnswers,
|
||||
allowsRevoting = allowsRevoting,
|
||||
shuffleOptions = shuffleOptions,
|
||||
hideResultsUntilCloses = hideResultsUntilCloses,
|
||||
descriptionTextSources = descriptionTextSources,
|
||||
media = media,
|
||||
explanationMedia = explanationMedia,
|
||||
membersOnly = membersOnly,
|
||||
countryCodes = countryCodes,
|
||||
threadId = threadId,
|
||||
directMessageThreadId = directMessageThreadId,
|
||||
businessConnectionId = businessConnectionId,
|
||||
@@ -249,99 +471,20 @@ public suspend fun TelegramBot.sendQuizPoll(
|
||||
chatId: ChatIdentifier,
|
||||
questionEntities: List<TextSource>,
|
||||
options: List<InputPollOption>,
|
||||
correctOptionId: Int,
|
||||
closeInfo: ScheduledCloseInfo?,
|
||||
explanation: String?,
|
||||
explanationParseMode: ParseMode? = null,
|
||||
isAnonymous: Boolean = true,
|
||||
isClosed: Boolean = false,
|
||||
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
|
||||
): ContentMessage<PollContent> = execute(
|
||||
SendQuizPoll(
|
||||
chatId = chatId,
|
||||
questionEntities = questionEntities,
|
||||
options = options,
|
||||
correctOptionId = correctOptionId,
|
||||
closeInfo = closeInfo,
|
||||
explanation = explanation,
|
||||
explanationParseMode = explanationParseMode,
|
||||
isAnonymous = isAnonymous,
|
||||
isClosed = isClosed,
|
||||
threadId = threadId,
|
||||
directMessageThreadId = directMessageThreadId,
|
||||
businessConnectionId = businessConnectionId,
|
||||
disableNotification = disableNotification,
|
||||
protectContent = protectContent,
|
||||
allowPaidBroadcast = allowPaidBroadcast,
|
||||
effectId = effectId,
|
||||
suggestedPostParameters = suggestedPostParameters,
|
||||
replyParameters = replyParameters,
|
||||
replyMarkup = replyMarkup
|
||||
)
|
||||
)
|
||||
|
||||
public suspend fun TelegramBot.sendQuizPoll(
|
||||
chatId: ChatIdentifier,
|
||||
question: String,
|
||||
options: List<InputPollOption>,
|
||||
correctOptionId: Int,
|
||||
closeInfo: ScheduledCloseInfo?,
|
||||
questionParseMode: ParseMode? = null,
|
||||
explanationTextSources: List<TextSource>? = null,
|
||||
isAnonymous: Boolean = true,
|
||||
isClosed: Boolean = false,
|
||||
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
|
||||
): ContentMessage<PollContent> = execute(
|
||||
SendQuizPoll(
|
||||
chatId = chatId,
|
||||
question = question,
|
||||
options = options,
|
||||
correctOptionId = correctOptionId,
|
||||
closeInfo = closeInfo,
|
||||
questionParseMode = questionParseMode,
|
||||
explanationTextSources = explanationTextSources,
|
||||
isAnonymous = isAnonymous,
|
||||
isClosed = isClosed,
|
||||
threadId = threadId,
|
||||
directMessageThreadId = directMessageThreadId,
|
||||
businessConnectionId = businessConnectionId,
|
||||
disableNotification = disableNotification,
|
||||
protectContent = protectContent,
|
||||
allowPaidBroadcast = allowPaidBroadcast,
|
||||
effectId = effectId,
|
||||
suggestedPostParameters = suggestedPostParameters,
|
||||
replyParameters = replyParameters,
|
||||
replyMarkup = replyMarkup
|
||||
)
|
||||
)
|
||||
|
||||
public suspend fun TelegramBot.sendQuizPoll(
|
||||
chatId: ChatIdentifier,
|
||||
questionEntities: List<TextSource>,
|
||||
options: List<InputPollOption>,
|
||||
correctOptionId: Int,
|
||||
correctOptionIds: List<Int>,
|
||||
closeInfo: ScheduledCloseInfo?,
|
||||
explanationTextSources: List<TextSource>? = null,
|
||||
isAnonymous: Boolean = true,
|
||||
isClosed: Boolean = false,
|
||||
allowsMultipleAnswers: Boolean = false,
|
||||
allowsRevoting: Boolean = false,
|
||||
shuffleOptions: Boolean = false,
|
||||
hideResultsUntilCloses: Boolean = false,
|
||||
descriptionTextSources: List<TextSource>? = null,
|
||||
media: InputPollMedia? = null,
|
||||
explanationMedia: InputPollMedia? = null,
|
||||
membersOnly: Boolean = false,
|
||||
countryCodes: List<String>? = null,
|
||||
threadId: MessageThreadId? = chatId.threadId,
|
||||
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
|
||||
businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId,
|
||||
@@ -352,16 +495,25 @@ public suspend fun TelegramBot.sendQuizPoll(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<PollContent> = execute(
|
||||
): ChatContentMessage<PollContent> = execute(
|
||||
SendQuizPoll(
|
||||
chatId = chatId,
|
||||
questionEntities = questionEntities,
|
||||
options = options,
|
||||
correctOptionId = correctOptionId,
|
||||
correctOptionIds = correctOptionIds,
|
||||
closeInfo = closeInfo,
|
||||
explanationTextSources = explanationTextSources,
|
||||
isAnonymous = isAnonymous,
|
||||
isClosed = isClosed,
|
||||
allowsMultipleAnswers = allowsMultipleAnswers,
|
||||
allowsRevoting = allowsRevoting,
|
||||
shuffleOptions = shuffleOptions,
|
||||
hideResultsUntilCloses = hideResultsUntilCloses,
|
||||
descriptionTextSources = descriptionTextSources,
|
||||
media = media,
|
||||
explanationMedia = explanationMedia,
|
||||
membersOnly = membersOnly,
|
||||
countryCodes = countryCodes,
|
||||
threadId = threadId,
|
||||
directMessageThreadId = directMessageThreadId,
|
||||
businessConnectionId = businessConnectionId,
|
||||
|
||||
@@ -5,9 +5,10 @@ import dev.inmo.tgbotapi.requests.send.polls.SendRegularPoll
|
||||
import dev.inmo.tgbotapi.types.*
|
||||
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
|
||||
import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup
|
||||
import dev.inmo.tgbotapi.types.media.InputPollMedia
|
||||
import dev.inmo.tgbotapi.types.message.ParseMode
|
||||
import dev.inmo.tgbotapi.types.message.SuggestedPostParameters
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.content.PollContent
|
||||
import dev.inmo.tgbotapi.types.message.textsources.TextSource
|
||||
import dev.inmo.tgbotapi.types.polls.InputPollOption
|
||||
@@ -21,9 +22,18 @@ public suspend fun TelegramBot.sendRegularPoll(
|
||||
questionParseMode: ParseMode? = null,
|
||||
isAnonymous: Boolean = true,
|
||||
isClosed: Boolean = false,
|
||||
allowMultipleAnswers: Boolean = false,
|
||||
allowsMultipleAnswers: Boolean = false,
|
||||
allowsRevoting: Boolean = true,
|
||||
shuffleOptions: Boolean = false,
|
||||
allowAddingOptions: Boolean = false,
|
||||
hideResultsUntilCloses: Boolean = false,
|
||||
description: String? = null,
|
||||
descriptionParseMode: ParseMode? = null,
|
||||
openPeriod: LongSeconds? = null,
|
||||
closeDate: LongSeconds? = null,
|
||||
media: InputPollMedia? = null,
|
||||
membersOnly: Boolean = false,
|
||||
countryCodes: List<String>? = null,
|
||||
threadId: MessageThreadId? = chatId.threadId,
|
||||
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
|
||||
businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId,
|
||||
@@ -33,8 +43,8 @@ public suspend fun TelegramBot.sendRegularPoll(
|
||||
effectId: EffectId? = null,
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<PollContent> = execute(
|
||||
replyMarkup: KeyboardMarkup? = null,
|
||||
): ChatContentMessage<PollContent> = execute(
|
||||
SendRegularPoll(
|
||||
chatId = chatId,
|
||||
question = question,
|
||||
@@ -42,19 +52,28 @@ public suspend fun TelegramBot.sendRegularPoll(
|
||||
questionParseMode = questionParseMode,
|
||||
isAnonymous = isAnonymous,
|
||||
isClosed = isClosed,
|
||||
allowMultipleAnswers = allowMultipleAnswers,
|
||||
allowsMultipleAnswers = allowsMultipleAnswers,
|
||||
allowsRevoting = allowsRevoting,
|
||||
shuffleOptions = shuffleOptions,
|
||||
allowAddingOptions = allowAddingOptions,
|
||||
hideResultsUntilCloses = hideResultsUntilCloses,
|
||||
description = description,
|
||||
descriptionParseMode = descriptionParseMode,
|
||||
openPeriod = openPeriod,
|
||||
closeDate = closeDate,
|
||||
media = media,
|
||||
membersOnly = membersOnly,
|
||||
countryCodes = countryCodes,
|
||||
threadId = threadId,
|
||||
directMessageThreadId = directMessageThreadId,
|
||||
businessConnectionId = businessConnectionId,
|
||||
disableNotification = disableNotification,
|
||||
protectContent = protectContent,
|
||||
allowPaidBroadcast = allowPaidBroadcast,
|
||||
effectId = effectId,
|
||||
suggestedPostParameters = suggestedPostParameters,
|
||||
replyParameters = replyParameters,
|
||||
replyMarkup = replyMarkup
|
||||
effectId = effectId,
|
||||
suggestedPostParameters = suggestedPostParameters,
|
||||
replyParameters = replyParameters,
|
||||
replyMarkup = replyMarkup
|
||||
)
|
||||
)
|
||||
|
||||
@@ -64,9 +83,18 @@ public suspend fun TelegramBot.sendRegularPoll(
|
||||
options: List<InputPollOption>,
|
||||
isAnonymous: Boolean = true,
|
||||
isClosed: Boolean = false,
|
||||
allowMultipleAnswers: Boolean = false,
|
||||
allowsMultipleAnswers: Boolean = false,
|
||||
allowsRevoting: Boolean = true,
|
||||
shuffleOptions: Boolean = false,
|
||||
allowAddingOptions: Boolean = false,
|
||||
hideResultsUntilCloses: Boolean = false,
|
||||
description: String? = null,
|
||||
descriptionParseMode: ParseMode? = null,
|
||||
openPeriod: LongSeconds? = null,
|
||||
closeDate: LongSeconds? = null,
|
||||
media: InputPollMedia? = null,
|
||||
membersOnly: Boolean = false,
|
||||
countryCodes: List<String>? = null,
|
||||
threadId: MessageThreadId? = chatId.threadId,
|
||||
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
|
||||
businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId,
|
||||
@@ -77,26 +105,35 @@ public suspend fun TelegramBot.sendRegularPoll(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<PollContent> = execute(
|
||||
): ChatContentMessage<PollContent> = execute(
|
||||
SendRegularPoll(
|
||||
chatId = chatId,
|
||||
questionEntities = questionEntities,
|
||||
questionTextSources = questionEntities,
|
||||
options = options,
|
||||
isAnonymous = isAnonymous,
|
||||
isClosed = isClosed,
|
||||
allowMultipleAnswers = allowMultipleAnswers,
|
||||
allowsMultipleAnswers = allowsMultipleAnswers,
|
||||
allowsRevoting = allowsRevoting,
|
||||
shuffleOptions = shuffleOptions,
|
||||
allowAddingOptions = allowAddingOptions,
|
||||
hideResultsUntilCloses = hideResultsUntilCloses,
|
||||
description = description,
|
||||
descriptionParseMode = descriptionParseMode,
|
||||
openPeriod = openPeriod,
|
||||
closeDate = closeDate,
|
||||
media = media,
|
||||
membersOnly = membersOnly,
|
||||
countryCodes = countryCodes,
|
||||
threadId = threadId,
|
||||
directMessageThreadId = directMessageThreadId,
|
||||
businessConnectionId = businessConnectionId,
|
||||
disableNotification = disableNotification,
|
||||
protectContent = protectContent,
|
||||
allowPaidBroadcast = allowPaidBroadcast,
|
||||
effectId = effectId,
|
||||
suggestedPostParameters = suggestedPostParameters,
|
||||
replyParameters = replyParameters,
|
||||
replyMarkup = replyMarkup
|
||||
effectId = effectId,
|
||||
suggestedPostParameters = suggestedPostParameters,
|
||||
replyParameters = replyParameters,
|
||||
replyMarkup = replyMarkup
|
||||
)
|
||||
)
|
||||
|
||||
@@ -108,7 +145,16 @@ public suspend fun TelegramBot.sendRegularPoll(
|
||||
questionParseMode: ParseMode? = null,
|
||||
isAnonymous: Boolean = true,
|
||||
isClosed: Boolean = false,
|
||||
allowMultipleAnswers: Boolean = false,
|
||||
allowsMultipleAnswers: Boolean = false,
|
||||
allowsRevoting: Boolean = true,
|
||||
shuffleOptions: Boolean = false,
|
||||
allowAddingOptions: Boolean = false,
|
||||
hideResultsUntilCloses: Boolean = false,
|
||||
description: String? = null,
|
||||
descriptionParseMode: ParseMode? = null,
|
||||
media: InputPollMedia? = null,
|
||||
membersOnly: Boolean = false,
|
||||
countryCodes: List<String>? = null,
|
||||
threadId: MessageThreadId? = chatId.threadId,
|
||||
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
|
||||
businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId,
|
||||
@@ -119,7 +165,7 @@ public suspend fun TelegramBot.sendRegularPoll(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<PollContent> = execute(
|
||||
): ChatContentMessage<PollContent> = execute(
|
||||
SendRegularPoll(
|
||||
chatId = chatId,
|
||||
question = question,
|
||||
@@ -128,17 +174,26 @@ public suspend fun TelegramBot.sendRegularPoll(
|
||||
questionParseMode = questionParseMode,
|
||||
isAnonymous = isAnonymous,
|
||||
isClosed = isClosed,
|
||||
allowMultipleAnswers = allowMultipleAnswers,
|
||||
allowsMultipleAnswers = allowsMultipleAnswers,
|
||||
allowsRevoting = allowsRevoting,
|
||||
shuffleOptions = shuffleOptions,
|
||||
allowAddingOptions = allowAddingOptions,
|
||||
hideResultsUntilCloses = hideResultsUntilCloses,
|
||||
description = description,
|
||||
descriptionParseMode = descriptionParseMode,
|
||||
media = media,
|
||||
membersOnly = membersOnly,
|
||||
countryCodes = countryCodes,
|
||||
threadId = threadId,
|
||||
directMessageThreadId = directMessageThreadId,
|
||||
businessConnectionId = businessConnectionId,
|
||||
disableNotification = disableNotification,
|
||||
protectContent = protectContent,
|
||||
allowPaidBroadcast = allowPaidBroadcast,
|
||||
effectId = effectId,
|
||||
suggestedPostParameters = suggestedPostParameters,
|
||||
replyParameters = replyParameters,
|
||||
replyMarkup = replyMarkup
|
||||
effectId = effectId,
|
||||
suggestedPostParameters = suggestedPostParameters,
|
||||
replyParameters = replyParameters,
|
||||
replyMarkup = replyMarkup
|
||||
)
|
||||
)
|
||||
|
||||
@@ -149,7 +204,16 @@ public suspend fun TelegramBot.sendRegularPoll(
|
||||
closeInfo: ScheduledCloseInfo?,
|
||||
isAnonymous: Boolean = true,
|
||||
isClosed: Boolean = false,
|
||||
allowMultipleAnswers: Boolean = false,
|
||||
allowsMultipleAnswers: Boolean = false,
|
||||
allowsRevoting: Boolean = true,
|
||||
shuffleOptions: Boolean = false,
|
||||
allowAddingOptions: Boolean = false,
|
||||
hideResultsUntilCloses: Boolean = false,
|
||||
description: String? = null,
|
||||
descriptionParseMode: ParseMode? = null,
|
||||
media: InputPollMedia? = null,
|
||||
membersOnly: Boolean = false,
|
||||
countryCodes: List<String>? = null,
|
||||
threadId: MessageThreadId? = chatId.threadId,
|
||||
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
|
||||
businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId,
|
||||
@@ -160,7 +224,7 @@ public suspend fun TelegramBot.sendRegularPoll(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): ContentMessage<PollContent> = execute(
|
||||
): ChatContentMessage<PollContent> = execute(
|
||||
SendRegularPoll(
|
||||
chatId = chatId,
|
||||
questionTextSources = questionEntities,
|
||||
@@ -168,16 +232,25 @@ public suspend fun TelegramBot.sendRegularPoll(
|
||||
closeInfo = closeInfo,
|
||||
isAnonymous = isAnonymous,
|
||||
isClosed = isClosed,
|
||||
allowMultipleAnswers = allowMultipleAnswers,
|
||||
allowsMultipleAnswers = allowsMultipleAnswers,
|
||||
allowsRevoting = allowsRevoting,
|
||||
shuffleOptions = shuffleOptions,
|
||||
allowAddingOptions = allowAddingOptions,
|
||||
hideResultsUntilCloses = hideResultsUntilCloses,
|
||||
description = description,
|
||||
descriptionParseMode = descriptionParseMode,
|
||||
media = media,
|
||||
membersOnly = membersOnly,
|
||||
countryCodes = countryCodes,
|
||||
threadId = threadId,
|
||||
directMessageThreadId = directMessageThreadId,
|
||||
businessConnectionId = businessConnectionId,
|
||||
disableNotification = disableNotification,
|
||||
protectContent = protectContent,
|
||||
allowPaidBroadcast = allowPaidBroadcast,
|
||||
effectId = effectId,
|
||||
suggestedPostParameters = suggestedPostParameters,
|
||||
replyParameters = replyParameters,
|
||||
replyMarkup = replyMarkup
|
||||
effectId = effectId,
|
||||
suggestedPostParameters = suggestedPostParameters,
|
||||
replyParameters = replyParameters,
|
||||
replyMarkup = replyMarkup
|
||||
)
|
||||
)
|
||||
|
||||
@@ -104,8 +104,10 @@ public final class dev/inmo/tgbotapi/extensions/behaviour_builder/DefaultBehavio
|
||||
public fun getEditedMessageMediaGroupsFlow ()Lkotlinx/coroutines/flow/Flow;
|
||||
public fun getEditedMessagesFlow ()Lkotlinx/coroutines/flow/Flow;
|
||||
public fun getFlowsUpdatesFilter ()Ldev/inmo/tgbotapi/updateshandlers/FlowsUpdatesFilter;
|
||||
public fun getGuestMessageUpdatesFlow ()Lkotlinx/coroutines/flow/Flow;
|
||||
public fun getInlineQueriesFlow ()Lkotlinx/coroutines/flow/Flow;
|
||||
public fun getLog ()Ldev/inmo/kslog/common/KSLog;
|
||||
public fun getManagedBotUpdatesFlow ()Lkotlinx/coroutines/flow/Flow;
|
||||
public fun getMessageMediaGroupsFlow ()Lkotlinx/coroutines/flow/Flow;
|
||||
public fun getMessagesFlow ()Lkotlinx/coroutines/flow/Flow;
|
||||
public fun getMyChatMemberUpdatesFlow ()Lkotlinx/coroutines/flow/Flow;
|
||||
|
||||
@@ -380,6 +380,8 @@ public final class dev/inmo/tgbotapi/extensions/behaviour_builder/expectations/W
|
||||
public static synthetic fun waitInvoice$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 waitLiveLocation (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 waitLiveLocation$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 waitLivePhoto (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 waitLivePhoto$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 waitLocation (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 waitLocation$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 waitMedia (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/flow/Flow;
|
||||
@@ -451,6 +453,8 @@ public final class dev/inmo/tgbotapi/extensions/behaviour_builder/expectations/W
|
||||
public static synthetic fun waitInvoiceMessage$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 waitLiveLocationMessage (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 waitLiveLocationMessage$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 waitLivePhotoMessage (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 waitLivePhotoMessage$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 waitLocationMessage (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 waitLocationMessage$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 waitMediaContentMessage (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/flow/Flow;
|
||||
@@ -534,6 +538,8 @@ public final class dev/inmo/tgbotapi/extensions/behaviour_builder/expectations/W
|
||||
public static synthetic fun waitEditedInvoice$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 waitEditedLiveLocation (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 waitEditedLiveLocation$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 waitEditedLivePhoto (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 waitEditedLivePhoto$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 waitEditedLocation (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 waitEditedLocation$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 waitEditedMedia (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/flow/Flow;
|
||||
@@ -591,6 +597,8 @@ public final class dev/inmo/tgbotapi/extensions/behaviour_builder/expectations/W
|
||||
public static synthetic fun waitEditedInvoiceMessage$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 waitEditedLiveLocationMessage (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 waitEditedLiveLocationMessage$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 waitEditedLivePhotoMessage (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 waitEditedLivePhotoMessage$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 waitEditedLocationMessage (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 waitEditedLocationMessage$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 waitEditedMediaMessage (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/flow/Flow;
|
||||
@@ -672,6 +680,8 @@ public final class dev/inmo/tgbotapi/extensions/behaviour_builder/expectations/W
|
||||
public static synthetic fun waitGroupEvents$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 waitLeftChatMemberEvents (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 waitLeftChatMemberEvents$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 waitManagedBotCreatedEvents (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 waitManagedBotCreatedEvents$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 waitMessageAutoDeleteTimerChangedEvents (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 waitMessageAutoDeleteTimerChangedEvents$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 waitNewChatMembersEvents (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/flow/Flow;
|
||||
@@ -684,6 +694,10 @@ public final class dev/inmo/tgbotapi/extensions/behaviour_builder/expectations/W
|
||||
public static synthetic fun waitPaidMessagePriceChanged$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 waitPinnedMessageEvents (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 waitPinnedMessageEvents$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 waitPollOptionAddedEvents (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 waitPollOptionAddedEvents$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 waitPollOptionDeletedEvents (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 waitPollOptionDeletedEvents$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 waitPrivateEvents (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 waitPrivateEvents$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 waitProximityAlertTriggeredEvents (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/flow/Flow;
|
||||
@@ -848,9 +862,16 @@ public final class dev/inmo/tgbotapi/extensions/behaviour_builder/expectations/W
|
||||
public static synthetic fun waitLocationInlineQuery$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 final class dev/inmo/tgbotapi/extensions/behaviour_builder/expectations/WaitManagedBotUpdateKt {
|
||||
public static final fun waitManagedBotUpdated (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 waitManagedBotUpdated$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 final class dev/inmo/tgbotapi/extensions/behaviour_builder/expectations/WaitMediaGroupKt {
|
||||
public static final fun waitDocumentsGroup (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 waitDocumentsGroup$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 waitLivePhotoGallery (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 waitLivePhotoGallery$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 waitMediaGroup (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 waitMediaGroup$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 waitPhotoGallery (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/flow/Flow;
|
||||
@@ -866,6 +887,8 @@ public final class dev/inmo/tgbotapi/extensions/behaviour_builder/expectations/W
|
||||
public final class dev/inmo/tgbotapi/extensions/behaviour_builder/expectations/WaitMediaGroupMessagesKt {
|
||||
public static final fun waitDocumentsGroupMessages (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 waitDocumentsGroupMessages$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 waitLivePhotoGalleryMessages (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 waitLivePhotoGalleryMessages$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 waitMediaGroupMessages (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 waitMediaGroupMessages$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 waitPhotoGalleryMessages (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/flow/Flow;
|
||||
@@ -897,9 +920,9 @@ public final class dev/inmo/tgbotapi/extensions/behaviour_builder/expectations/W
|
||||
public static final fun filterMentionsMessages (Lkotlinx/coroutines/flow/Flow;Ldev/inmo/tgbotapi/types/chat/User;)Lkotlinx/coroutines/flow/Flow;
|
||||
public static final fun filterMentionsMessages-eC7Nk8U (Lkotlinx/coroutines/flow/Flow;Ljava/lang/String;)Lkotlinx/coroutines/flow/Flow;
|
||||
public static final fun filterTextMentionsMessages (Lkotlinx/coroutines/flow/Flow;Ldev/inmo/tgbotapi/types/IdChatIdentifier;)Lkotlinx/coroutines/flow/Flow;
|
||||
public static final fun isWithMention (Ldev/inmo/tgbotapi/types/message/abstracts/CommonMessage;Ldev/inmo/tgbotapi/types/chat/User;)Z
|
||||
public static final fun isWithMention-eC7Nk8U (Ldev/inmo/tgbotapi/types/message/abstracts/CommonMessage;Ljava/lang/String;)Z
|
||||
public static final fun isWithTextMention (Ldev/inmo/tgbotapi/types/message/abstracts/CommonMessage;Ldev/inmo/tgbotapi/types/IdChatIdentifier;)Z
|
||||
public static final fun isWithMention (Ldev/inmo/tgbotapi/types/message/abstracts/ChatContentMessage;Ldev/inmo/tgbotapi/types/chat/User;)Z
|
||||
public static final fun isWithMention-eC7Nk8U (Ldev/inmo/tgbotapi/types/message/abstracts/ChatContentMessage;Ljava/lang/String;)Z
|
||||
public static final fun isWithTextMention (Ldev/inmo/tgbotapi/types/message/abstracts/ChatContentMessage;Ldev/inmo/tgbotapi/types/IdChatIdentifier;)Z
|
||||
public static final fun waitContentMessageWithMentions (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/types/chat/User;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/flow/Flow;
|
||||
public static synthetic fun waitContentMessageWithMentions$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/types/chat/User;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lkotlinx/coroutines/flow/Flow;
|
||||
public static final fun waitContentMessageWithMentions-QGcck-U (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ljava/lang/String;Ldev/inmo/tgbotapi/requests/abstracts/Request;Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/flow/Flow;
|
||||
@@ -977,6 +1000,7 @@ public final class dev/inmo/tgbotapi/extensions/behaviour_builder/filters/Messag
|
||||
public static final fun getChatJoinRequestFilterByChat ()Lkotlin/jvm/functions/Function4;
|
||||
public static final fun getChatMemberUpdatedFilterByChat ()Lkotlin/jvm/functions/Function4;
|
||||
public static final fun getInlineQueryFilterByUser ()Lkotlin/jvm/functions/Function4;
|
||||
public static final fun getManagedBotUpdatedFilterByUser ()Lkotlin/jvm/functions/Function4;
|
||||
public static final fun getMessageFilterByChat ()Lkotlin/jvm/functions/Function4;
|
||||
public static final fun getMessagesFilterByChat ()Lkotlin/jvm/functions/Function4;
|
||||
public static final fun getPreCheckoutQueryFilterByUser ()Lkotlin/jvm/functions/Function4;
|
||||
@@ -1254,6 +1278,8 @@ public final class dev/inmo/tgbotapi/extensions/behaviour_builder/triggers_handl
|
||||
public static synthetic fun onInvoice$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 onLiveLocation (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 onLiveLocation$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 onLivePhoto (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 onLivePhoto$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 onLocation (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 onLocation$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 onMedia (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;
|
||||
@@ -1329,6 +1355,8 @@ public final class dev/inmo/tgbotapi/extensions/behaviour_builder/triggers_handl
|
||||
public static synthetic fun onEditedGame$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 onEditedInvoice (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 onEditedInvoice$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 onEditedLivePhoto (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 onEditedLivePhoto$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 onEditedLocation (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 onEditedLocation$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 onEditedMedia (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;
|
||||
@@ -1406,6 +1434,8 @@ public final class dev/inmo/tgbotapi/extensions/behaviour_builder/triggers_handl
|
||||
public static synthetic fun onGroupEvent$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 onLeftChatMember (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 onLeftChatMember$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 onManagedBotCreated (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 onManagedBotCreated$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 onMessageAutoDeleteTimerChangedEvent (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 onMessageAutoDeleteTimerChangedEvent$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 onNewChatMembers (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;
|
||||
@@ -1418,6 +1448,10 @@ public final class dev/inmo/tgbotapi/extensions/behaviour_builder/triggers_handl
|
||||
public static synthetic fun onPaidMessagePriceChanged$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 onPinnedMessage (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 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 onPollOptionAdded (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 onPollOptionAdded$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 onPollOptionDeleted (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 onPollOptionDeleted$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;
|
||||
@@ -1478,6 +1512,11 @@ public final class dev/inmo/tgbotapi/extensions/behaviour_builder/triggers_handl
|
||||
public static synthetic fun onWriteAccessAllowedOther$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 final class dev/inmo/tgbotapi/extensions/behaviour_builder/triggers_handling/GuestMessageTriggersKt {
|
||||
public static final fun onGuestMessage (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 onGuestMessage$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 final class dev/inmo/tgbotapi/extensions/behaviour_builder/triggers_handling/InlineQueryTriggersKt {
|
||||
public static final fun onAnyInlineQuery (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 onAnyInlineQuery$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;
|
||||
@@ -1487,9 +1526,16 @@ public final class dev/inmo/tgbotapi/extensions/behaviour_builder/triggers_handl
|
||||
public static synthetic fun onLocationInlineQuery$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 final class dev/inmo/tgbotapi/extensions/behaviour_builder/triggers_handling/ManagedBotUpdateTriggersKt {
|
||||
public static final fun onManagedBotUpdated (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 onManagedBotUpdated$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 final class dev/inmo/tgbotapi/extensions/behaviour_builder/triggers_handling/MediaGroupMessagesTriggersKt {
|
||||
public static final fun onDocumentsGroupMessages (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 onDocumentsGroupMessages$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 onLivePhotoGalleryMessages (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 onLivePhotoGalleryMessages$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 onMediaGroupMessages (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 onMediaGroupMessages$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 onPhotoGalleryMessages (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;
|
||||
@@ -1507,6 +1553,8 @@ public final class dev/inmo/tgbotapi/extensions/behaviour_builder/triggers_handl
|
||||
public final class dev/inmo/tgbotapi/extensions/behaviour_builder/triggers_handling/MediaGroupTriggersKt {
|
||||
public static final fun onDocumentsGroup (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 onDocumentsGroup$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 onLivePhotoGallery (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 onLivePhotoGallery$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 onMediaGroup (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 onMediaGroup$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 onPhotoGallery (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;
|
||||
@@ -1538,6 +1586,10 @@ public final class dev/inmo/tgbotapi/extensions/behaviour_builder/triggers_handl
|
||||
public static synthetic fun onMentionWithDocumentContent$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/types/chat/User;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 onMentionWithDocumentContent-KtuvvGA (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ljava/lang/String;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 onMentionWithDocumentContent-KtuvvGA$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ljava/lang/String;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 onMentionWithLivePhotoContent (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/types/chat/User;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 onMentionWithLivePhotoContent$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/types/chat/User;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 onMentionWithLivePhotoContent-KtuvvGA (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ljava/lang/String;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 onMentionWithLivePhotoContent-KtuvvGA$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ljava/lang/String;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 onMentionWithMediaGroupContent (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/types/chat/User;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 onMentionWithMediaGroupContent$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/types/chat/User;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 onMentionWithMediaGroupContent-KtuvvGA (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ljava/lang/String;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;
|
||||
@@ -1574,6 +1626,8 @@ public final class dev/inmo/tgbotapi/extensions/behaviour_builder/triggers_handl
|
||||
public static synthetic fun onTextMentionWithAudioContent$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/types/IdChatIdentifier;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 onTextMentionWithDocumentContent (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/types/IdChatIdentifier;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 onTextMentionWithDocumentContent$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/types/IdChatIdentifier;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 onTextMentionWithLivePhotoContent (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/types/IdChatIdentifier;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 onTextMentionWithLivePhotoContent$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/types/IdChatIdentifier;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 onTextMentionWithMediaGroupContent (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/types/IdChatIdentifier;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 onTextMentionWithMediaGroupContent$default (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/types/IdChatIdentifier;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 onTextMentionWithMediaGroupPartContent (Ldev/inmo/tgbotapi/extensions/behaviour_builder/BehaviourContext;Ldev/inmo/tgbotapi/types/IdChatIdentifier;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;
|
||||
@@ -1829,6 +1883,12 @@ public final class dev/inmo/tgbotapi/extensions/behaviour_builder/utils/marker_f
|
||||
public synthetic fun invoke (Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
||||
}
|
||||
|
||||
public final class dev/inmo/tgbotapi/extensions/behaviour_builder/utils/marker_factories/ByUserManagedBotUpdatedMarkerFactory : dev/inmo/tgbotapi/extensions/behaviour_builder/utils/marker_factories/MarkerFactory {
|
||||
public static final field INSTANCE Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/marker_factories/ByUserManagedBotUpdatedMarkerFactory;
|
||||
public fun invoke (Ldev/inmo/tgbotapi/types/managed_bots/ManagedBotUpdated;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
||||
public synthetic fun invoke (Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
||||
}
|
||||
|
||||
public final class dev/inmo/tgbotapi/extensions/behaviour_builder/utils/marker_factories/ByUserMessageMarkerFactory : dev/inmo/tgbotapi/extensions/behaviour_builder/utils/marker_factories/MarkerFactory {
|
||||
public static final field INSTANCE Ldev/inmo/tgbotapi/extensions/behaviour_builder/utils/marker_factories/ByUserMessageMarkerFactory;
|
||||
public fun invoke (Ldev/inmo/tgbotapi/types/message/abstracts/AccessibleMessage;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
||||
|
||||
@@ -12,7 +12,7 @@ import dev.inmo.tgbotapi.extensions.utils.extensions.parseCommandsWithArgsSource
|
||||
import dev.inmo.tgbotapi.extensions.utils.extensions.parseCommandsWithNamedArgs
|
||||
import dev.inmo.tgbotapi.requests.abstracts.Request
|
||||
import dev.inmo.tgbotapi.types.BotCommand
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.CommonMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.content.TextContent
|
||||
import dev.inmo.tgbotapi.types.message.textsources.BotCommandTextSource
|
||||
import dev.inmo.tgbotapi.types.message.textsources.TextSource
|
||||
@@ -66,7 +66,7 @@ fun BehaviourContext.waitCommandMessage(
|
||||
errorFactory: NullableRequestBuilder<*> = { null }
|
||||
) = waitCommandMessage(botCommand.command, initRequest, excludeCommandsToOtherBots, errorFactory)
|
||||
|
||||
fun Flow<CommonMessage<TextContent>>.requireCommandAtStart() = filter {
|
||||
fun Flow<ChatContentMessage<TextContent>>.requireCommandAtStart() = filter {
|
||||
it.content.textSources.firstOrNull() is BotCommandTextSource
|
||||
}
|
||||
|
||||
@@ -76,7 +76,7 @@ fun Flow<CommonMessage<TextContent>>.requireCommandAtStart() = filter {
|
||||
*
|
||||
* @see requireCommandAtStart
|
||||
*/
|
||||
fun Flow<CommonMessage<TextContent>>.requireSingleCommand() = filter {
|
||||
fun Flow<ChatContentMessage<TextContent>>.requireSingleCommand() = filter {
|
||||
var count = 0
|
||||
|
||||
it.content.textSources.forEach {
|
||||
@@ -94,23 +94,23 @@ fun Flow<CommonMessage<TextContent>>.requireSingleCommand() = filter {
|
||||
/**
|
||||
* Subsequent [Flow] will retrieve only messages without [TextContent.textSources] which are not [BotCommandTextSource]
|
||||
*/
|
||||
fun Flow<CommonMessage<TextContent>>.requireCommandsWithoutParams() = filter {
|
||||
fun Flow<ChatContentMessage<TextContent>>.requireCommandsWithoutParams() = filter {
|
||||
it.content.textSources.none { it !is BotCommandTextSource }
|
||||
}
|
||||
|
||||
/**
|
||||
* Uses [parseCommandsWithArgsSources] on incoming text sources and map them with [CommonMessage]
|
||||
* Uses [parseCommandsWithArgsSources] on incoming text sources and map them with [ChatContentMessage]
|
||||
*/
|
||||
fun Flow<CommonMessage<TextContent>>.commandsWithParams(): Flow<Pair<CommonMessage<TextContent>, List<Pair<BotCommandTextSource, Array<TextSource>>>>> = mapNotNull {
|
||||
fun Flow<ChatContentMessage<TextContent>>.commandsWithParams(): Flow<Pair<ChatContentMessage<TextContent>, List<Pair<BotCommandTextSource, Array<TextSource>>>>> = mapNotNull {
|
||||
it to it.content.textSources.parseCommandsWithArgsSources().toList()
|
||||
}
|
||||
|
||||
/**
|
||||
* Uses [parseCommandsWithArgs] on incoming text sources and map them with [CommonMessage]
|
||||
* Uses [parseCommandsWithArgs] on incoming text sources and map them with [ChatContentMessage]
|
||||
*/
|
||||
fun Flow<CommonMessage<TextContent>>.commandsWithArgs(
|
||||
fun Flow<ChatContentMessage<TextContent>>.commandsWithArgs(
|
||||
argsSeparator: Regex = TelegramBotCommandsDefaults.defaultArgsSeparatorRegex
|
||||
): Flow<Pair<CommonMessage<TextContent>, List<Pair<String, Array<String>>>>> = mapNotNull {
|
||||
): Flow<Pair<ChatContentMessage<TextContent>, List<Pair<String, Array<String>>>>> = mapNotNull {
|
||||
val commandsWithArgs = it.content.textSources.parseCommandsWithArgs(argsSeparator).toList().ifEmpty {
|
||||
return@mapNotNull null
|
||||
}
|
||||
@@ -119,19 +119,19 @@ fun Flow<CommonMessage<TextContent>>.commandsWithArgs(
|
||||
}
|
||||
|
||||
/**
|
||||
* Uses [parseCommandsWithArgs] on incoming text sources and map them with [CommonMessage]
|
||||
* Uses [parseCommandsWithArgs] on incoming text sources and map them with [ChatContentMessage]
|
||||
*/
|
||||
fun Flow<CommonMessage<TextContent>>.commandsWithArgs(
|
||||
fun Flow<ChatContentMessage<TextContent>>.commandsWithArgs(
|
||||
argsSeparator: String
|
||||
): Flow<Pair<CommonMessage<TextContent>, List<Pair<String, Array<String>>>>> = commandsWithArgs(Regex(argsSeparator))
|
||||
): Flow<Pair<ChatContentMessage<TextContent>, List<Pair<String, Array<String>>>>> = commandsWithArgs(Regex(argsSeparator))
|
||||
|
||||
/**
|
||||
* Uses [parseCommandsWithNamedArgs] on incoming text sources and map them with [CommonMessage]
|
||||
* Uses [parseCommandsWithNamedArgs] on incoming text sources and map them with [ChatContentMessage]
|
||||
*/
|
||||
fun Flow<CommonMessage<TextContent>>.commandsWithNamedArgs(
|
||||
fun Flow<ChatContentMessage<TextContent>>.commandsWithNamedArgs(
|
||||
argsSeparator: Regex = TelegramBotCommandsDefaults.defaultArgsSeparatorRegex,
|
||||
nameArgSeparator: Regex = TelegramBotCommandsDefaults.defaultNamesArgsSeparatorRegex,
|
||||
): Flow<Pair<CommonMessage<TextContent>, List<Pair<String, List<Pair<String, String>>>>>> = mapNotNull {
|
||||
): Flow<Pair<ChatContentMessage<TextContent>, List<Pair<String, List<Pair<String, String>>>>>> = mapNotNull {
|
||||
val commandsWithArgs = it.content.textSources.parseCommandsWithNamedArgs(argsSeparator, nameArgSeparator).toList().ifEmpty {
|
||||
return@mapNotNull null
|
||||
}
|
||||
@@ -140,18 +140,18 @@ fun Flow<CommonMessage<TextContent>>.commandsWithNamedArgs(
|
||||
}
|
||||
|
||||
/**
|
||||
* Uses [parseCommandsWithNamedArgs] on incoming text sources and map them with [CommonMessage]
|
||||
* Uses [parseCommandsWithNamedArgs] on incoming text sources and map them with [ChatContentMessage]
|
||||
*/
|
||||
fun Flow<CommonMessage<TextContent>>.commandsWithNamedArgs(
|
||||
fun Flow<ChatContentMessage<TextContent>>.commandsWithNamedArgs(
|
||||
argsSeparator: String,
|
||||
nameArgSeparator: Regex = TelegramBotCommandsDefaults.defaultNamesArgsSeparatorRegex,
|
||||
): Flow<Pair<CommonMessage<TextContent>, List<Pair<String, List<Pair<String, String>>>>>> = commandsWithNamedArgs(Regex(argsSeparator), nameArgSeparator)
|
||||
): Flow<Pair<ChatContentMessage<TextContent>, List<Pair<String, List<Pair<String, String>>>>>> = commandsWithNamedArgs(Regex(argsSeparator), nameArgSeparator)
|
||||
|
||||
/**
|
||||
* Flat [commandsWithParams]. Each [Pair] of [BotCommandTextSource] and its [Array] of arg text sources will
|
||||
* be associated with its source message
|
||||
*/
|
||||
fun Flow<CommonMessage<TextContent>>.flattenCommandsWithParams() = commandsWithParams().flatMapConcat { (message, commandsWithParams) ->
|
||||
fun Flow<ChatContentMessage<TextContent>>.flattenCommandsWithParams() = commandsWithParams().flatMapConcat { (message, commandsWithParams) ->
|
||||
commandsWithParams.map {
|
||||
message to it
|
||||
}.asFlow()
|
||||
@@ -160,6 +160,6 @@ fun Flow<CommonMessage<TextContent>>.flattenCommandsWithParams() = commandsWithP
|
||||
/**
|
||||
* Use [flattenCommandsWithParams] and filter out the commands which do not [matches] to [commandRegex]
|
||||
*/
|
||||
fun Flow<CommonMessage<TextContent>>.commandParams(commandRegex: Regex) = flattenCommandsWithParams().filter { (_, commandWithParams) ->
|
||||
fun Flow<ChatContentMessage<TextContent>>.commandParams(commandRegex: Regex) = flattenCommandsWithParams().filter { (_, commandWithParams) ->
|
||||
commandWithParams.first.command.matches(commandRegex)
|
||||
}
|
||||
|
||||
@@ -4,8 +4,7 @@ package dev.inmo.tgbotapi.extensions.behaviour_builder.expectations
|
||||
|
||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.BehaviourContext
|
||||
import dev.inmo.tgbotapi.requests.abstracts.Request
|
||||
import dev.inmo.tgbotapi.types.giveaway.GiveawayPublicResults
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.CommonMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.content.*
|
||||
import dev.inmo.tgbotapi.utils.RiskFeature
|
||||
import dev.inmo.tgbotapi.utils.lowLevelRiskFeatureMessage
|
||||
@@ -13,7 +12,7 @@ import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.map
|
||||
import kotlinx.coroutines.flow.mapNotNull
|
||||
|
||||
typealias CommonMessageToContentMapper<T> = suspend CommonMessage<T>.() -> T?
|
||||
typealias CommonMessageToContentMapper<T> = suspend ChatContentMessage<T>.() -> T?
|
||||
|
||||
@RiskFeature(lowLevelRiskFeatureMessage)
|
||||
fun BehaviourContext.waitContent(
|
||||
@@ -119,6 +118,10 @@ fun BehaviourContext.waitVideo(
|
||||
initRequest: Request<*>? = null,
|
||||
errorFactory: NullableRequestBuilder<*> = { null }
|
||||
) = waitContent(initRequest, errorFactory).mapContent<VideoContent>()
|
||||
fun BehaviourContext.waitLivePhoto(
|
||||
initRequest: Request<*>? = null,
|
||||
errorFactory: NullableRequestBuilder<*> = { null }
|
||||
) = waitContent(initRequest, errorFactory).mapContent<LivePhotoContent>()
|
||||
fun BehaviourContext.waitVideoNote(
|
||||
initRequest: Request<*>? = null,
|
||||
errorFactory: NullableRequestBuilder<*> = { null }
|
||||
|
||||
@@ -5,7 +5,7 @@ package dev.inmo.tgbotapi.extensions.behaviour_builder.expectations
|
||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.BehaviourContext
|
||||
import dev.inmo.tgbotapi.extensions.utils.withContentOrNull
|
||||
import dev.inmo.tgbotapi.requests.abstracts.Request
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.CommonMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.content.*
|
||||
import dev.inmo.tgbotapi.types.update.abstracts.BaseSentMessageUpdate
|
||||
import dev.inmo.tgbotapi.utils.RiskFeature
|
||||
@@ -13,23 +13,23 @@ import dev.inmo.tgbotapi.utils.lowLevelRiskFeatureMessage
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.mapNotNull
|
||||
|
||||
typealias CommonMessageToCommonMessageMapper<T> = suspend CommonMessage<T>.() -> CommonMessage<T>?
|
||||
typealias CommonMessageToCommonMessageMapper<T> = suspend ChatContentMessage<T>.() -> ChatContentMessage<T>?
|
||||
|
||||
@RiskFeature(lowLevelRiskFeatureMessage)
|
||||
fun BehaviourContext.waitContentMessage(
|
||||
initRequest: Request<*>? = null,
|
||||
errorFactory: NullableRequestBuilder<*> = { null }
|
||||
): Flow<CommonMessage<MessageContent>> = expectFlow(
|
||||
): Flow<ChatContentMessage<MessageContent>> = expectFlow(
|
||||
initRequest,
|
||||
errorFactory
|
||||
) {
|
||||
if (it !is BaseSentMessageUpdate) {
|
||||
return@expectFlow emptyList()
|
||||
}
|
||||
listOfNotNull((it.data as? CommonMessage<*>))
|
||||
listOfNotNull((it.data as? ChatContentMessage<*>))
|
||||
}
|
||||
|
||||
inline fun <reified T : MessageContent> Flow<CommonMessage<MessageContent>>.mapWithContent() = mapNotNull { it.withContentOrNull<T>() }
|
||||
inline fun <reified T : MessageContent> Flow<ChatContentMessage<MessageContent>>.mapWithContent() = mapNotNull { it.withContentOrNull<T>() }
|
||||
|
||||
fun BehaviourContext.waitAnyContentMessage(
|
||||
initRequest: Request<*>? = null,
|
||||
@@ -127,6 +127,10 @@ fun BehaviourContext.waitVideoMessage(
|
||||
initRequest: Request<*>? = null,
|
||||
errorFactory: NullableRequestBuilder<*> = { null }
|
||||
) = waitContentMessage(initRequest, errorFactory).mapWithContent<VideoContent>()
|
||||
fun BehaviourContext.waitLivePhotoMessage(
|
||||
initRequest: Request<*>? = null,
|
||||
errorFactory: NullableRequestBuilder<*> = { null }
|
||||
) = waitContentMessage(initRequest, errorFactory).mapWithContent<LivePhotoContent>()
|
||||
fun BehaviourContext.waitVideoNoteMessage(
|
||||
initRequest: Request<*>? = null,
|
||||
errorFactory: NullableRequestBuilder<*> = { null }
|
||||
|
||||
@@ -3,16 +3,15 @@ package dev.inmo.tgbotapi.extensions.behaviour_builder.expectations
|
||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.BehaviourContext
|
||||
import dev.inmo.tgbotapi.extensions.utils.regularTextSourceOrNull
|
||||
import dev.inmo.tgbotapi.requests.abstracts.Request
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.CommonMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.content.TextContent
|
||||
import dev.inmo.tgbotapi.types.message.textsources.RegularTextSource
|
||||
import kotlinx.coroutines.flow.*
|
||||
|
||||
fun BehaviourContext.waitDeepLinks(
|
||||
initRequest: Request<*>? = null,
|
||||
excludeCommandsToOtherBots: Boolean = true,
|
||||
errorFactory: NullableRequestBuilder<*> = { null },
|
||||
): Flow<Pair<CommonMessage<TextContent>, String>> = waitCommandMessage(
|
||||
): Flow<Pair<ChatContentMessage<TextContent>, String>> = waitCommandMessage(
|
||||
command = "start",
|
||||
initRequest = initRequest,
|
||||
excludeCommandsToOtherBots = excludeCommandsToOtherBots,
|
||||
@@ -29,7 +28,7 @@ fun BehaviourContext.waitDeepLinks(
|
||||
initRequest: Request<*>? = null,
|
||||
excludeCommandsToOtherBots: Boolean = true,
|
||||
errorFactory: NullableRequestBuilder<*> = { null },
|
||||
): Flow<Pair<CommonMessage<TextContent>, String>> = waitDeepLinks(
|
||||
): Flow<Pair<ChatContentMessage<TextContent>, String>> = waitDeepLinks(
|
||||
initRequest = initRequest,
|
||||
excludeCommandsToOtherBots = excludeCommandsToOtherBots,
|
||||
errorFactory = errorFactory
|
||||
@@ -42,7 +41,7 @@ fun BehaviourContext.waitDeepLinks(
|
||||
initRequest: Request<*>? = null,
|
||||
excludeCommandsToOtherBots: Boolean = true,
|
||||
errorFactory: NullableRequestBuilder<*> = { null },
|
||||
): Flow<Pair<CommonMessage<TextContent>, String>> = waitDeepLinks(
|
||||
): Flow<Pair<ChatContentMessage<TextContent>, String>> = waitDeepLinks(
|
||||
regex = Regex(pattern = "^$deepLink$"),
|
||||
initRequest = initRequest,
|
||||
excludeCommandsToOtherBots = excludeCommandsToOtherBots,
|
||||
|
||||
@@ -105,6 +105,10 @@ fun BehaviourContext.waitEditedVideo(
|
||||
initRequest: Request<*>? = null,
|
||||
errorFactory: NullableRequestBuilder<*> = { null },
|
||||
) = waitEditedContent<VideoContent>(initRequest, errorFactory)
|
||||
fun BehaviourContext.waitEditedLivePhoto(
|
||||
initRequest: Request<*>? = null,
|
||||
errorFactory: NullableRequestBuilder<*> = { null },
|
||||
) = waitEditedContent<LivePhotoContent>(initRequest, errorFactory)
|
||||
fun BehaviourContext.waitEditedVideoNote(
|
||||
initRequest: Request<*>? = null,
|
||||
errorFactory: NullableRequestBuilder<*> = { null }
|
||||
|
||||
@@ -3,10 +3,10 @@
|
||||
package dev.inmo.tgbotapi.extensions.behaviour_builder.expectations
|
||||
|
||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.BehaviourContext
|
||||
import dev.inmo.tgbotapi.extensions.utils.commonMessageOrNull
|
||||
import dev.inmo.tgbotapi.extensions.utils.chatContentMessageOrNull
|
||||
import dev.inmo.tgbotapi.extensions.utils.withContent
|
||||
import dev.inmo.tgbotapi.requests.abstracts.Request
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.CommonMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.content.*
|
||||
import dev.inmo.tgbotapi.types.update.abstracts.BaseEditMessageUpdate
|
||||
import dev.inmo.tgbotapi.utils.RiskFeature
|
||||
@@ -17,13 +17,13 @@ import kotlinx.coroutines.flow.Flow
|
||||
inline fun <reified O : MessageContent> BehaviourContext.waitEditedContentMessage(
|
||||
initRequest: Request<*>? = null,
|
||||
noinline errorFactory: NullableRequestBuilder<*> = { null }
|
||||
): Flow<CommonMessage<O>> = expectFlow(
|
||||
): Flow<ChatContentMessage<O>> = expectFlow(
|
||||
initRequest,
|
||||
errorFactory
|
||||
) {
|
||||
val messages = when (it) {
|
||||
is BaseEditMessageUpdate -> {
|
||||
val commonMessage = it.data.commonMessageOrNull() ?: return@expectFlow emptyList()
|
||||
val commonMessage = it.data.chatContentMessageOrNull() ?: return@expectFlow emptyList()
|
||||
listOf(commonMessage)
|
||||
}
|
||||
else -> return@expectFlow emptyList()
|
||||
@@ -118,6 +118,10 @@ fun BehaviourContext.waitEditedVideoMessage(
|
||||
initRequest: Request<*>? = null,
|
||||
errorFactory: NullableRequestBuilder<*> = { null },
|
||||
) = waitEditedContentMessage<VideoContent>(initRequest, errorFactory)
|
||||
fun BehaviourContext.waitEditedLivePhotoMessage(
|
||||
initRequest: Request<*>? = null,
|
||||
errorFactory: NullableRequestBuilder<*> = { null },
|
||||
) = waitEditedContentMessage<LivePhotoContent>(initRequest, errorFactory)
|
||||
fun BehaviourContext.waitEditedVideoNoteMessage(
|
||||
initRequest: Request<*>? = null,
|
||||
errorFactory: NullableRequestBuilder<*> = { null }
|
||||
|
||||
@@ -13,6 +13,10 @@ import dev.inmo.tgbotapi.types.checklists.ChecklistTasksDone
|
||||
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.managed_bots.ManagedBotCreated
|
||||
import dev.inmo.tgbotapi.types.managed_bots.ManagedBotUpdated
|
||||
import dev.inmo.tgbotapi.types.polls.PollOptionAdded
|
||||
import dev.inmo.tgbotapi.types.polls.PollOptionDeleted
|
||||
import dev.inmo.tgbotapi.types.message.ChatEvents.*
|
||||
import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.*
|
||||
import dev.inmo.tgbotapi.types.message.ChatEvents.forum.ForumTopicClosed
|
||||
@@ -248,6 +252,21 @@ fun BehaviourContext.waitChatOwnerChanged(
|
||||
errorFactory: NullableRequestBuilder<*> = { null }
|
||||
) = waitEvents<ChatOwnerChanged>(initRequest, errorFactory)
|
||||
|
||||
fun BehaviourContext.waitManagedBotCreatedEvents(
|
||||
initRequest: Request<*>? = null,
|
||||
errorFactory: NullableRequestBuilder<*> = { null }
|
||||
) = waitEvents<ManagedBotCreated>(initRequest, errorFactory)
|
||||
|
||||
fun BehaviourContext.waitPollOptionAddedEvents(
|
||||
initRequest: Request<*>? = null,
|
||||
errorFactory: NullableRequestBuilder<*> = { null }
|
||||
) = waitEvents<PollOptionAdded>(initRequest, errorFactory)
|
||||
|
||||
fun BehaviourContext.waitPollOptionDeletedEvents(
|
||||
initRequest: Request<*>? = null,
|
||||
errorFactory: NullableRequestBuilder<*> = { null }
|
||||
) = waitEvents<PollOptionDeleted>(initRequest, errorFactory)
|
||||
|
||||
fun BehaviourContext.waitChatBackgroundSet(
|
||||
initRequest: Request<*>? = null,
|
||||
errorFactory: NullableRequestBuilder<*> = { null }
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
package dev.inmo.tgbotapi.extensions.behaviour_builder.expectations
|
||||
|
||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.BehaviourContext
|
||||
import dev.inmo.tgbotapi.extensions.utils.managedBotUpdateOrNull
|
||||
import dev.inmo.tgbotapi.requests.abstracts.Request
|
||||
import dev.inmo.tgbotapi.types.managed_bots.ManagedBotUpdated
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
fun BehaviourContext.waitManagedBotUpdated(
|
||||
initRequest: Request<*>? = null,
|
||||
errorFactory: NullableRequestBuilder<*> = { null }
|
||||
): Flow<ManagedBotUpdated> = expectFlow(
|
||||
initRequest,
|
||||
errorFactory
|
||||
) {
|
||||
(it.managedBotUpdateOrNull() ?.data).let(::listOfNotNull)
|
||||
}
|
||||
@@ -4,7 +4,7 @@ package dev.inmo.tgbotapi.extensions.behaviour_builder.expectations
|
||||
|
||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.BehaviourContext
|
||||
import dev.inmo.tgbotapi.extensions.utils.baseSentMessageUpdateOrNull
|
||||
import dev.inmo.tgbotapi.extensions.utils.commonMessageOrNull
|
||||
import dev.inmo.tgbotapi.extensions.utils.chatContentMessageOrNull
|
||||
import dev.inmo.tgbotapi.extensions.utils.withContent
|
||||
import dev.inmo.tgbotapi.extensions.utils.withContentOrNull
|
||||
import dev.inmo.tgbotapi.requests.abstracts.Request
|
||||
@@ -18,7 +18,7 @@ inline fun <reified T : MediaGroupPartContent> BehaviourContext.buildMediaGroupW
|
||||
initRequest: Request<*>? = null,
|
||||
noinline errorFactory: NullableRequestBuilder<*> = { null }
|
||||
): Flow<MediaGroupContent<T>> = flowsUpdatesFilter.expectFlow(bot, initRequest, errorFactory) { update ->
|
||||
update.baseSentMessageUpdateOrNull() ?.data ?.commonMessageOrNull() ?.withContentOrNull<MediaGroupContent<*>>() ?.let { message ->
|
||||
update.baseSentMessageUpdateOrNull() ?.data ?.chatContentMessageOrNull() ?.withContentOrNull<MediaGroupContent<*>>() ?.let { message ->
|
||||
if (message.content.group.all { it.content is T }) {
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
listOf(message.content as MediaGroupContent<T>)
|
||||
@@ -52,3 +52,7 @@ fun BehaviourContext.waitVideoGallery(
|
||||
initRequest: Request<*>? = null,
|
||||
errorFactory: NullableRequestBuilder<*> = { null }
|
||||
) = buildMediaGroupWaiter<VideoContent>(initRequest, errorFactory)
|
||||
fun BehaviourContext.waitLivePhotoGallery(
|
||||
initRequest: Request<*>? = null,
|
||||
errorFactory: NullableRequestBuilder<*> = { null }
|
||||
) = buildMediaGroupWaiter<LivePhotoContent>(initRequest, errorFactory)
|
||||
|
||||
@@ -2,8 +2,7 @@ package dev.inmo.tgbotapi.extensions.behaviour_builder.expectations
|
||||
|
||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.BehaviourContext
|
||||
import dev.inmo.tgbotapi.extensions.utils.baseSentMessageUpdateOrNull
|
||||
import dev.inmo.tgbotapi.extensions.utils.commonMessageOrNull
|
||||
import dev.inmo.tgbotapi.extensions.utils.withContent
|
||||
import dev.inmo.tgbotapi.extensions.utils.chatContentMessageOrNull
|
||||
import dev.inmo.tgbotapi.extensions.utils.withContentOrNull
|
||||
import dev.inmo.tgbotapi.requests.abstracts.Request
|
||||
import dev.inmo.tgbotapi.types.message.content.*
|
||||
@@ -16,7 +15,7 @@ inline fun <reified T : MediaGroupPartContent> BehaviourContext.buildMediaGroupM
|
||||
initRequest: Request<*>? = null,
|
||||
noinline errorFactory: NullableRequestBuilder<*> = { null }
|
||||
): Flow<MediaGroupMessage<T>> = flowsUpdatesFilter.expectFlow(bot, initRequest, errorFactory) { update ->
|
||||
update.baseSentMessageUpdateOrNull() ?.data ?.commonMessageOrNull() ?.withContentOrNull<MediaGroupContent<*>>() ?.let { message ->
|
||||
update.baseSentMessageUpdateOrNull() ?.data ?.chatContentMessageOrNull() ?.withContentOrNull<MediaGroupContent<*>>() ?.let { message ->
|
||||
if (message.content.group.all { it.content is T }) {
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
listOf(message as MediaGroupMessage<T>)
|
||||
@@ -50,3 +49,7 @@ fun BehaviourContext.waitVideoGalleryMessages(
|
||||
initRequest: Request<*>? = null,
|
||||
errorFactory: NullableRequestBuilder<*> = { null }
|
||||
) = buildMediaGroupMessagesWaiter<VideoContent>(initRequest, errorFactory)
|
||||
fun BehaviourContext.waitLivePhotoGalleryMessages(
|
||||
initRequest: Request<*>? = null,
|
||||
errorFactory: NullableRequestBuilder<*> = { null }
|
||||
) = buildMediaGroupMessagesWaiter<LivePhotoContent>(initRequest, errorFactory)
|
||||
|
||||
@@ -7,8 +7,7 @@ import dev.inmo.tgbotapi.requests.abstracts.Request
|
||||
import dev.inmo.tgbotapi.types.UserId
|
||||
import dev.inmo.tgbotapi.types.Username
|
||||
import dev.inmo.tgbotapi.types.chat.User
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.CommonMessage
|
||||
import dev.inmo.tgbotapi.types.message.content.MessageContent
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.content.TextedContent
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.filter
|
||||
@@ -43,7 +42,7 @@ fun TextedContent.isWithTextMention(userId: UserId) = textSources.any {
|
||||
|
||||
/**
|
||||
* Uses [isWithMention] with [user] [Username] (is presented) or [isWithTextMention] with [user] [UserId] to determine
|
||||
* user mentioning in [this] [CommonMessage]
|
||||
* user mentioning in [this] [ChatContentMessage]
|
||||
*/
|
||||
fun TextedContent.isWithMention(user: User): Boolean = user.username ?.let { username -> isWithMention(username) } == true || isWithTextMention(user.id)
|
||||
|
||||
|
||||
@@ -1,45 +1,43 @@
|
||||
package dev.inmo.tgbotapi.extensions.behaviour_builder.expectations
|
||||
|
||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.BehaviourContext
|
||||
import dev.inmo.tgbotapi.extensions.utils.whenMentionTextSource
|
||||
import dev.inmo.tgbotapi.extensions.utils.whenTextMentionTextSource
|
||||
import dev.inmo.tgbotapi.requests.abstracts.Request
|
||||
import dev.inmo.tgbotapi.types.UserId
|
||||
import dev.inmo.tgbotapi.types.Username
|
||||
import dev.inmo.tgbotapi.types.chat.User
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.CommonMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.content.TextedContent
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.filter
|
||||
|
||||
fun CommonMessage<TextedContent>.isWithMention(username: Username) = content.isWithMention(username)
|
||||
fun ChatContentMessage<TextedContent>.isWithMention(username: Username) = content.isWithMention(username)
|
||||
|
||||
fun CommonMessage<TextedContent>.isWithTextMention(userId: UserId) = content.isWithTextMention(userId)
|
||||
fun ChatContentMessage<TextedContent>.isWithTextMention(userId: UserId) = content.isWithTextMention(userId)
|
||||
|
||||
/**
|
||||
* Uses [isWithMention] with [user] [Username] (is presented) or [isWithTextMention] with [user] [UserId] to determine
|
||||
* user mentioning in [this] [CommonMessage]
|
||||
* user mentioning in [this] [ChatContentMessage]
|
||||
*/
|
||||
fun CommonMessage<TextedContent>.isWithMention(user: User): Boolean = content.isWithMention(user)
|
||||
fun ChatContentMessage<TextedContent>.isWithMention(user: User): Boolean = content.isWithMention(user)
|
||||
|
||||
/**
|
||||
* Uses [isWithMention] passing [username] as argument to take only messages with [username] mentions or text mentions
|
||||
*/
|
||||
fun Flow<CommonMessage<TextedContent>>.filterMentionsMessages(username: Username) = filter {
|
||||
fun Flow<ChatContentMessage<TextedContent>>.filterMentionsMessages(username: Username) = filter {
|
||||
it.isWithMention(username)
|
||||
}
|
||||
|
||||
/**
|
||||
* Uses [isWithTextMention] passing [userId] as argument to take only messages with [userId] text mentions
|
||||
*/
|
||||
fun Flow<CommonMessage<TextedContent>>.filterTextMentionsMessages(userId: UserId) = filter {
|
||||
fun Flow<ChatContentMessage<TextedContent>>.filterTextMentionsMessages(userId: UserId) = filter {
|
||||
it.isWithTextMention(userId)
|
||||
}
|
||||
|
||||
/**
|
||||
* Uses [isWithMention] passing [user] as argument to take only messages with [user] mentions or text mentions
|
||||
*/
|
||||
fun Flow<CommonMessage<TextedContent>>.filterMentionsMessages(user: User) = filter {
|
||||
fun Flow<ChatContentMessage<TextedContent>>.filterMentionsMessages(user: User) = filter {
|
||||
it.isWithMention(user)
|
||||
}
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@ import dev.inmo.tgbotapi.extensions.utils.extensions.sourceChat
|
||||
import dev.inmo.tgbotapi.extensions.utils.extensions.sourceUser
|
||||
import dev.inmo.tgbotapi.types.InlineQueries.query.InlineQuery
|
||||
import dev.inmo.tgbotapi.types.chat.ChatJoinRequest
|
||||
import dev.inmo.tgbotapi.types.managed_bots.ManagedBotUpdated
|
||||
import dev.inmo.tgbotapi.types.chat.member.ChatMemberUpdated
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.AccessibleMessage
|
||||
import dev.inmo.tgbotapi.types.payments.PreCheckoutQuery
|
||||
@@ -60,6 +61,14 @@ val InlineQueryFilterByUser: BehaviourContextAndTwoTypesReceiver<Boolean, Inline
|
||||
it.id == query.user.id
|
||||
} != false
|
||||
}
|
||||
/**
|
||||
* Allow only updates from the same user as base [ManagedBotUpdated.user]
|
||||
*/
|
||||
val ManagedBotUpdatedFilterByUser: BehaviourContextAndTwoTypesReceiver<Boolean, ManagedBotUpdated, Update> = { managedBotUpdated, update ->
|
||||
update.sourceUser() ?.let {
|
||||
it.id == managedBotUpdated.user.id
|
||||
} != false
|
||||
}
|
||||
/**
|
||||
* Allow only events from the same chat as base [ChatMemberUpdated]
|
||||
*/
|
||||
|
||||
@@ -9,5 +9,5 @@ import dev.inmo.tgbotapi.types.message.content.MediaGroupMessage
|
||||
* Allow only messages which are not [MediaGroupMessage]
|
||||
*/
|
||||
val CommonMessageFilterExcludeMediaGroups = SimpleFilter<AccessibleMessage> {
|
||||
it !is CommonMessage<*> || it.content !is MediaGroupContent<*>
|
||||
it !is ChatContentMessage<*> || it.content !is MediaGroupContent<*>
|
||||
}
|
||||
|
||||
@@ -11,21 +11,19 @@ import dev.inmo.tgbotapi.extensions.behaviour_builder.utils.marker_factories.Mar
|
||||
import dev.inmo.tgbotapi.extensions.utils.whenCommonMessage
|
||||
import dev.inmo.tgbotapi.extensions.utils.withContentOrNull
|
||||
import dev.inmo.tgbotapi.types.files.TelegramMediaFile
|
||||
import dev.inmo.tgbotapi.types.giveaway.GiveawayPublicResults
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatEventMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.CommonMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.content.*
|
||||
import dev.inmo.tgbotapi.types.update.abstracts.BaseSentMessageUpdate
|
||||
import dev.inmo.tgbotapi.types.update.abstracts.Update
|
||||
|
||||
typealias CommonMessageFilter<T> = SimpleFilter<CommonMessage<T>>
|
||||
typealias CommonMessageFilter<T> = SimpleFilter<ChatContentMessage<T>>
|
||||
|
||||
internal inline fun <BC : BehaviourContext, reified T : MessageContent> BC.onContentMessageWithType(
|
||||
initialFilter: CommonMessageFilter<T>? = null,
|
||||
noinline subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, CommonMessage<T>, Update>? = MessageFilterByChat,
|
||||
markerFactory: MarkerFactory<in CommonMessage<T>, Any>? = ByChatMessageMarkerFactory,
|
||||
noinline additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, CommonMessage<T>>? = null,
|
||||
noinline scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, CommonMessage<T>>
|
||||
noinline subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatContentMessage<T>, Update>? = MessageFilterByChat,
|
||||
markerFactory: MarkerFactory<in ChatContentMessage<T>, Any>? = ByChatMessageMarkerFactory,
|
||||
noinline additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatContentMessage<T>>? = null,
|
||||
noinline scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatContentMessage<T>>
|
||||
) = on(markerFactory, initialFilter, subcontextUpdatesFilter, additionalSubcontextInitialAction, scenarioReceiver) {
|
||||
when (it) {
|
||||
is BaseSentMessageUpdate -> it.data.whenCommonMessage(::listOfNotNull)
|
||||
@@ -51,10 +49,10 @@ internal inline fun <BC : BehaviourContext, reified T : MessageContent> BC.onCon
|
||||
*/
|
||||
fun <BC : BehaviourContext> BC.onContentMessage(
|
||||
initialFilter: CommonMessageFilter<MessageContent>? = null,
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, CommonMessage<MessageContent>, Update>? = MessageFilterByChat,
|
||||
markerFactory: MarkerFactory<in CommonMessage<MessageContent>, Any>? = ByChatMessageMarkerFactory,
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, CommonMessage<MessageContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, CommonMessage<MessageContent>>
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatContentMessage<MessageContent>, Update>? = MessageFilterByChat,
|
||||
markerFactory: MarkerFactory<in ChatContentMessage<MessageContent>, Any>? = ByChatMessageMarkerFactory,
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatContentMessage<MessageContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatContentMessage<MessageContent>>
|
||||
) = onContentMessageWithType(
|
||||
initialFilter,
|
||||
subcontextUpdatesFilter,
|
||||
@@ -657,6 +655,33 @@ fun <BC : BehaviourContext> BC.onVideo(
|
||||
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.onLivePhoto(
|
||||
initialFilter: CommonMessageFilter<LivePhotoContent>? = null,
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, LivePhotoMessage, Update>? = MessageFilterByChat,
|
||||
markerFactory: MarkerFactory<in LivePhotoMessage, Any>? = ByChatMessageMarkerFactory,
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, LivePhotoMessage>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, LivePhotoMessage>
|
||||
) = onContentMessageWithType(
|
||||
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,
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
package dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling
|
||||
|
||||
import dev.inmo.micro_utils.coroutines.*
|
||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.*
|
||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.filters.MessageFilterByChat
|
||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.utils.SimpleFilter
|
||||
@@ -10,7 +9,6 @@ import dev.inmo.tgbotapi.extensions.behaviour_builder.utils.marker_factories.ByC
|
||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.utils.marker_factories.MarkerFactory
|
||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.utils.times
|
||||
import dev.inmo.tgbotapi.extensions.utils.*
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.CommonMessage
|
||||
import dev.inmo.tgbotapi.types.message.content.TextContent
|
||||
import dev.inmo.tgbotapi.types.message.content.TextMessage
|
||||
import dev.inmo.tgbotapi.types.message.textsources.RegularTextSource
|
||||
@@ -38,7 +36,7 @@ fun <BC : BehaviourContext> BC.onDeepLink(
|
||||
additionalSubcontextInitialAction,
|
||||
scenarioReceiver,
|
||||
) {
|
||||
(it.messageUpdateOrNull()) ?.data ?.commonMessageOrNull() ?.withContentOrNull<TextContent>() ?.let { message ->
|
||||
(it.messageUpdateOrNull()) ?.data ?.chatContentMessageOrNull() ?.withContentOrNull<TextContent>() ?.let { message ->
|
||||
message to (message.content.textSources.getOrNull(1) ?.source ?.removePrefix(" ") ?.decodeURLQueryComponent() ?: return@let null)
|
||||
} ?.let(::listOfNotNull)
|
||||
}.also {
|
||||
|
||||
@@ -6,20 +6,18 @@ import dev.inmo.tgbotapi.extensions.behaviour_builder.filters.MessageFilterByCha
|
||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.utils.marker_factories.ByChatMessageMarkerFactory
|
||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.utils.marker_factories.MarkerFactory
|
||||
import dev.inmo.tgbotapi.extensions.utils.baseEditMessageUpdateOrNull
|
||||
import dev.inmo.tgbotapi.extensions.utils.editMessageUpdateOrNull
|
||||
import dev.inmo.tgbotapi.extensions.utils.withContent
|
||||
import dev.inmo.tgbotapi.types.files.TelegramMediaFile
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.CommonMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.content.*
|
||||
import dev.inmo.tgbotapi.types.update.abstracts.BaseEditMessageUpdate
|
||||
import dev.inmo.tgbotapi.types.update.abstracts.Update
|
||||
|
||||
internal inline fun <BC : BehaviourContext, reified T : MessageContent> BC.onEditedContent(
|
||||
initialFilter: CommonMessageFilter<T>? = null,
|
||||
noinline subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, CommonMessage<T>, Update>? = MessageFilterByChat,
|
||||
markerFactory: MarkerFactory<in CommonMessage<T>, Any>? = ByChatMessageMarkerFactory,
|
||||
noinline additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, CommonMessage<T>>? = null,
|
||||
noinline scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, CommonMessage<T>>
|
||||
noinline subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatContentMessage<T>, Update>? = MessageFilterByChat,
|
||||
markerFactory: MarkerFactory<in ChatContentMessage<T>, Any>? = ByChatMessageMarkerFactory,
|
||||
noinline additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatContentMessage<T>>? = null,
|
||||
noinline scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatContentMessage<T>>
|
||||
) = on(markerFactory, initialFilter, subcontextUpdatesFilter, additionalSubcontextInitialAction, scenarioReceiver) {
|
||||
it.baseEditMessageUpdateOrNull() ?.data ?.withContent<T>() ?.let(::listOfNotNull)
|
||||
}
|
||||
@@ -40,10 +38,10 @@ internal inline fun <BC : BehaviourContext, reified T : MessageContent> BC.onEdi
|
||||
*/
|
||||
fun <BC : BehaviourContext> BC.onEditedContentMessage(
|
||||
initialFilter: CommonMessageFilter<MessageContent>? = null,
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, CommonMessage<MessageContent>, Update>? = MessageFilterByChat,
|
||||
markerFactory: MarkerFactory<in CommonMessage<MessageContent>, Any>? = ByChatMessageMarkerFactory,
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, CommonMessage<MessageContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, CommonMessage<MessageContent>>
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatContentMessage<MessageContent>, Update>? = MessageFilterByChat,
|
||||
markerFactory: MarkerFactory<in ChatContentMessage<MessageContent>, Any>? = ByChatMessageMarkerFactory,
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatContentMessage<MessageContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatContentMessage<MessageContent>>
|
||||
)= onEditedContent(
|
||||
initialFilter,
|
||||
subcontextUpdatesFilter,
|
||||
@@ -511,6 +509,33 @@ fun <BC : BehaviourContext> BC.onEditedVideo(
|
||||
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.onEditedLivePhoto(
|
||||
initialFilter: CommonMessageFilter<LivePhotoContent>? = null,
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, LivePhotoMessage, Update>? = MessageFilterByChat,
|
||||
markerFactory: MarkerFactory<in LivePhotoMessage, Any>? = ByChatMessageMarkerFactory,
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, LivePhotoMessage>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, LivePhotoMessage>
|
||||
)= onEditedContent(
|
||||
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,
|
||||
|
||||
@@ -18,6 +18,10 @@ import dev.inmo.tgbotapi.types.checklists.ChecklistTasksDone
|
||||
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.managed_bots.ManagedBotCreated
|
||||
import dev.inmo.tgbotapi.types.managed_bots.ManagedBotUpdated
|
||||
import dev.inmo.tgbotapi.types.polls.PollOptionAdded
|
||||
import dev.inmo.tgbotapi.types.polls.PollOptionDeleted
|
||||
import dev.inmo.tgbotapi.types.message.ChannelEventMessage
|
||||
import dev.inmo.tgbotapi.types.message.ChatEvents.*
|
||||
import dev.inmo.tgbotapi.types.message.ChatEvents.abstracts.*
|
||||
@@ -1054,6 +1058,69 @@ fun <BC : BehaviourContext> BC.onChatOwnerChanged(
|
||||
) = 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.onManagedBotCreated(
|
||||
initialFilter: SimpleFilter<ChatEventMessage<ManagedBotCreated>>? = null,
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatEventMessage<ManagedBotCreated>, Update>? = MessageFilterByChat,
|
||||
markerFactory: MarkerFactory<in ChatEventMessage<ManagedBotCreated>, Any>? = ByChatMessageMarkerFactory,
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatEventMessage<ManagedBotCreated>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatEventMessage<ManagedBotCreated>>
|
||||
) = 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.onPollOptionAdded(
|
||||
initialFilter: SimpleFilter<ChatEventMessage<PollOptionAdded>>? = null,
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatEventMessage<PollOptionAdded>, Update>? = MessageFilterByChat,
|
||||
markerFactory: MarkerFactory<in ChatEventMessage<PollOptionAdded>, Any>? = ByChatMessageMarkerFactory,
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatEventMessage<PollOptionAdded>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatEventMessage<PollOptionAdded>>
|
||||
) = 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.onPollOptionDeleted(
|
||||
initialFilter: SimpleFilter<ChatEventMessage<PollOptionDeleted>>? = null,
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatEventMessage<PollOptionDeleted>, Update>? = MessageFilterByChat,
|
||||
markerFactory: MarkerFactory<in ChatEventMessage<PollOptionDeleted>, Any>? = ByChatMessageMarkerFactory,
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatEventMessage<PollOptionDeleted>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatEventMessage<PollOptionDeleted>>
|
||||
) = 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,
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
package dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling
|
||||
|
||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.BehaviourContext
|
||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.CustomBehaviourContextAndTwoTypesReceiver
|
||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.CustomBehaviourContextAndTypeReceiver
|
||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.utils.SimpleFilter
|
||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.utils.marker_factories.ByChatMessageMarkerFactory
|
||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.utils.marker_factories.MarkerFactory
|
||||
import dev.inmo.tgbotapi.extensions.utils.guestMessageUpdateOrNull
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.GuestContentMessage
|
||||
import dev.inmo.tgbotapi.types.update.abstracts.Update
|
||||
|
||||
/**
|
||||
* @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].
|
||||
* @param [markerFactory] **Pass null to handle requests fully parallel**. Will be used to identify different "stream".
|
||||
* @param scenarioReceiver Main callback which will be used to handle incoming data if [initialFilter] will pass that data
|
||||
*/
|
||||
fun <BC : BehaviourContext> BC.onGuestMessage(
|
||||
initialFilter: SimpleFilter<GuestContentMessage<*>>? = null,
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, GuestContentMessage<*>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in GuestContentMessage<*>, Any>? = ByChatMessageMarkerFactory,
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, GuestContentMessage<*>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, GuestContentMessage<*>>
|
||||
) = on(markerFactory, initialFilter, subcontextUpdatesFilter, additionalSubcontextInitialAction, scenarioReceiver) {
|
||||
(it.guestMessageUpdateOrNull() ?.data) ?.let(::listOfNotNull)
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
package dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling
|
||||
|
||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.BehaviourContext
|
||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.CustomBehaviourContextAndTwoTypesReceiver
|
||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.CustomBehaviourContextAndTypeReceiver
|
||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.filters.MessageFilterByChat
|
||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.utils.SimpleFilter
|
||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.utils.marker_factories.ByChatMessageMarkerFactory
|
||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.utils.marker_factories.ByUserManagedBotUpdatedMarkerFactory
|
||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.utils.marker_factories.MarkerFactory
|
||||
import dev.inmo.tgbotapi.extensions.utils.managedBotUpdateOrNull
|
||||
import dev.inmo.tgbotapi.types.managed_bots.ManagedBotUpdated
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatEventMessage
|
||||
import dev.inmo.tgbotapi.types.update.ManagedBotUpdate
|
||||
import dev.inmo.tgbotapi.types.update.abstracts.Update
|
||||
|
||||
/**
|
||||
* @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.onManagedBotUpdated(
|
||||
initialFilter: SimpleFilter<ManagedBotUpdated>? = null,
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ManagedBotUpdated, Update>? = null,
|
||||
markerFactory: MarkerFactory<in ManagedBotUpdated, Any>? = ByUserManagedBotUpdatedMarkerFactory,
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ManagedBotUpdated>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ManagedBotUpdated>
|
||||
) = on(markerFactory, initialFilter, subcontextUpdatesFilter, additionalSubcontextInitialAction, scenarioReceiver) {
|
||||
(it.managedBotUpdateOrNull() ?.data) ?.let(::listOfNotNull)
|
||||
}
|
||||
@@ -7,9 +7,8 @@ import dev.inmo.tgbotapi.extensions.behaviour_builder.utils.SimpleFilter
|
||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.utils.marker_factories.ByChatMessageMarkerFactory
|
||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.utils.marker_factories.MarkerFactory
|
||||
import dev.inmo.tgbotapi.extensions.utils.baseSentMessageUpdateOrNull
|
||||
import dev.inmo.tgbotapi.extensions.utils.commonMessageOrNull
|
||||
import dev.inmo.tgbotapi.extensions.utils.chatContentMessageOrNull
|
||||
import dev.inmo.tgbotapi.extensions.utils.withContentOrNull
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.CommonMessage
|
||||
import dev.inmo.tgbotapi.types.message.content.*
|
||||
import dev.inmo.tgbotapi.types.update.abstracts.Update
|
||||
import dev.inmo.tgbotapi.utils.PreviewFeature
|
||||
@@ -22,7 +21,7 @@ internal inline fun <BC : BehaviourContext, reified T : MediaGroupPartContent> B
|
||||
noinline additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, MediaGroupMessage<T>>? = null,
|
||||
noinline scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, MediaGroupMessage<T>>
|
||||
) = on(markerFactory, initialFilter, subcontextUpdatesFilter, additionalSubcontextInitialAction, scenarioReceiver) {
|
||||
it.baseSentMessageUpdateOrNull() ?.data ?.commonMessageOrNull() ?.withContentOrNull<MediaGroupContent<*>>() ?.let {
|
||||
it.baseSentMessageUpdateOrNull() ?.data ?.chatContentMessageOrNull() ?.withContentOrNull<MediaGroupContent<*>>() ?.let {
|
||||
if (it.content.group.all { it.content is T }) {
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
listOf(it as MediaGroupMessage<T>)
|
||||
@@ -178,3 +177,24 @@ fun <BC : BehaviourContext> BC.onVideoGalleryMessages(
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, MediaGroupMessage<VideoContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, MediaGroupMessage<VideoContent>>
|
||||
) = buildMediaGroupMessagesTrigger(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.onLivePhotoGalleryMessages(
|
||||
initialFilter: SimpleFilter<MediaGroupMessage<LivePhotoContent>>? = null,
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, MediaGroupMessage<LivePhotoContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in MediaGroupMessage<LivePhotoContent>, Any>? = ByChatMessageMarkerFactory,
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, MediaGroupMessage<LivePhotoContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, MediaGroupMessage<LivePhotoContent>>
|
||||
) = buildMediaGroupMessagesTrigger(initialFilter, subcontextUpdatesFilter, markerFactory, additionalSubcontextInitialAction, scenarioReceiver)
|
||||
|
||||
@@ -7,9 +7,8 @@ import dev.inmo.tgbotapi.extensions.behaviour_builder.utils.SimpleFilter
|
||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.utils.marker_factories.AnyMarkerFactory
|
||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.utils.marker_factories.MarkerFactory
|
||||
import dev.inmo.tgbotapi.extensions.utils.baseSentMessageUpdateOrNull
|
||||
import dev.inmo.tgbotapi.extensions.utils.commonMessageOrNull
|
||||
import dev.inmo.tgbotapi.extensions.utils.chatContentMessageOrNull
|
||||
import dev.inmo.tgbotapi.extensions.utils.withContentOrNull
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.CommonMessage
|
||||
import dev.inmo.tgbotapi.types.message.content.*
|
||||
import dev.inmo.tgbotapi.types.update.abstracts.Update
|
||||
import dev.inmo.tgbotapi.utils.PreviewFeature
|
||||
@@ -22,7 +21,7 @@ internal inline fun <BC : BehaviourContext, reified T : MediaGroupPartContent> B
|
||||
noinline additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, MediaGroupContent<T>>? = null,
|
||||
noinline scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, MediaGroupContent<T>>
|
||||
) = on(markerFactory, initialFilter, subcontextUpdatesFilter, additionalSubcontextInitialAction, scenarioReceiver) {
|
||||
it.baseSentMessageUpdateOrNull() ?.data ?.commonMessageOrNull() ?.withContentOrNull<MediaGroupContent<*>>() ?.let {
|
||||
it.baseSentMessageUpdateOrNull() ?.data ?.chatContentMessageOrNull() ?.withContentOrNull<MediaGroupContent<*>>() ?.let {
|
||||
if (it.content.group.all { it.content is T }) {
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
listOf(it.content as MediaGroupContent<T>)
|
||||
@@ -178,3 +177,24 @@ fun <BC : BehaviourContext> BC.onVideoGallery(
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, MediaGroupContent<VideoContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, MediaGroupContent<VideoContent>>
|
||||
) = buildMediaGroupTrigger(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.onLivePhotoGallery(
|
||||
initialFilter: SimpleFilter<MediaGroupContent<LivePhotoContent>>? = null,
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, MediaGroupContent<LivePhotoContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in MediaGroupContent<LivePhotoContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, MediaGroupContent<LivePhotoContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, MediaGroupContent<LivePhotoContent>>
|
||||
) = buildMediaGroupTrigger(initialFilter, subcontextUpdatesFilter, markerFactory, additionalSubcontextInitialAction, scenarioReceiver)
|
||||
|
||||
@@ -11,7 +11,7 @@ import dev.inmo.tgbotapi.extensions.behaviour_builder.utils.times
|
||||
import dev.inmo.tgbotapi.types.UserId
|
||||
import dev.inmo.tgbotapi.types.Username
|
||||
import dev.inmo.tgbotapi.types.chat.User
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.CommonMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.content.AnimationContent
|
||||
import dev.inmo.tgbotapi.types.message.content.AudioContent
|
||||
import dev.inmo.tgbotapi.types.message.content.DocumentContent
|
||||
@@ -21,6 +21,7 @@ import dev.inmo.tgbotapi.types.message.content.PhotoContent
|
||||
import dev.inmo.tgbotapi.types.message.content.TextContent
|
||||
import dev.inmo.tgbotapi.types.message.content.TextedContent
|
||||
import dev.inmo.tgbotapi.types.message.content.VideoContent
|
||||
import dev.inmo.tgbotapi.types.message.content.LivePhotoContent
|
||||
import dev.inmo.tgbotapi.types.message.content.VisualMediaGroupPartContent
|
||||
import dev.inmo.tgbotapi.types.message.content.VoiceContent
|
||||
import dev.inmo.tgbotapi.types.update.abstracts.Update
|
||||
@@ -28,10 +29,10 @@ import dev.inmo.tgbotapi.types.update.abstracts.Update
|
||||
internal inline fun <BC : BehaviourContext, reified T : TextedContent> BC.onMention(
|
||||
username: Username,
|
||||
initialFilter: CommonMessageFilter<T>? = null,
|
||||
noinline subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, CommonMessage<T>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in CommonMessage<T>, Any>? = AnyMarkerFactory(),
|
||||
noinline additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, CommonMessage<T>>? = null,
|
||||
noinline scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, CommonMessage<T>>
|
||||
noinline subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatContentMessage<T>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in ChatContentMessage<T>, Any>? = AnyMarkerFactory(),
|
||||
noinline additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatContentMessage<T>>? = null,
|
||||
noinline scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatContentMessage<T>>
|
||||
) = onContentMessageWithType<BC, T>(
|
||||
initialFilter * {
|
||||
it.content.isWithMention(username)
|
||||
@@ -45,10 +46,10 @@ internal inline fun <BC : BehaviourContext, reified T : TextedContent> BC.onMent
|
||||
internal inline fun <BC : BehaviourContext, reified T : TextedContent> BC.onTextMention(
|
||||
userId: UserId,
|
||||
initialFilter: CommonMessageFilter<T>? = null,
|
||||
noinline subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, CommonMessage<T>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in CommonMessage<T>, Any>? = AnyMarkerFactory(),
|
||||
noinline additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, CommonMessage<T>>? = null,
|
||||
noinline scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, CommonMessage<T>>
|
||||
noinline subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatContentMessage<T>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in ChatContentMessage<T>, Any>? = AnyMarkerFactory(),
|
||||
noinline additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatContentMessage<T>>? = null,
|
||||
noinline scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatContentMessage<T>>
|
||||
) = onContentMessageWithType<BC, T>(
|
||||
initialFilter * {
|
||||
it.content.isWithTextMention(userId)
|
||||
@@ -62,10 +63,10 @@ internal inline fun <BC : BehaviourContext, reified T : TextedContent> BC.onText
|
||||
internal inline fun <BC : BehaviourContext, reified T : TextedContent> BC.onMention(
|
||||
user: User,
|
||||
initialFilter: CommonMessageFilter<T>? = null,
|
||||
noinline subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, CommonMessage<T>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in CommonMessage<T>, Any>? = AnyMarkerFactory(),
|
||||
noinline additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, CommonMessage<T>>? = null,
|
||||
noinline scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, CommonMessage<T>>
|
||||
noinline subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatContentMessage<T>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in ChatContentMessage<T>, Any>? = AnyMarkerFactory(),
|
||||
noinline additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatContentMessage<T>>? = null,
|
||||
noinline scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatContentMessage<T>>
|
||||
) = onContentMessageWithType<BC, T>(
|
||||
initialFilter * {
|
||||
it.content.isWithMention(user)
|
||||
@@ -85,10 +86,10 @@ internal inline fun <BC : BehaviourContext, reified T : TextedContent> BC.onMent
|
||||
fun <BC : BehaviourContext> BC.onMentionWithAnyContent(
|
||||
username: Username,
|
||||
initialFilter: CommonMessageFilter<TextedContent>? = null,
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, CommonMessage<TextedContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in CommonMessage<TextedContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, CommonMessage<TextedContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, CommonMessage<TextedContent>>
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatContentMessage<TextedContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in ChatContentMessage<TextedContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatContentMessage<TextedContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatContentMessage<TextedContent>>
|
||||
) = onMention(username, initialFilter, subcontextUpdatesFilter, markerFactory, additionalSubcontextInitialAction, scenarioReceiver)
|
||||
|
||||
/**
|
||||
@@ -99,10 +100,10 @@ fun <BC : BehaviourContext> BC.onMentionWithAnyContent(
|
||||
fun <BC : BehaviourContext> BC.onTextMentionWithAnyContent(
|
||||
userId: UserId,
|
||||
initialFilter: CommonMessageFilter<TextedContent>? = null,
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, CommonMessage<TextedContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in CommonMessage<TextedContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, CommonMessage<TextedContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, CommonMessage<TextedContent>>
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatContentMessage<TextedContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in ChatContentMessage<TextedContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatContentMessage<TextedContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatContentMessage<TextedContent>>
|
||||
) = onTextMention(userId, initialFilter, subcontextUpdatesFilter, markerFactory, additionalSubcontextInitialAction, scenarioReceiver)
|
||||
|
||||
/**
|
||||
@@ -113,10 +114,10 @@ fun <BC : BehaviourContext> BC.onTextMentionWithAnyContent(
|
||||
fun <BC : BehaviourContext> BC.onMentionWithAnyContent(
|
||||
user: User,
|
||||
initialFilter: CommonMessageFilter<TextedContent>? = null,
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, CommonMessage<TextedContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in CommonMessage<TextedContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, CommonMessage<TextedContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, CommonMessage<TextedContent>>
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatContentMessage<TextedContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in ChatContentMessage<TextedContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatContentMessage<TextedContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatContentMessage<TextedContent>>
|
||||
) = onMention(user, initialFilter, subcontextUpdatesFilter, markerFactory, additionalSubcontextInitialAction, scenarioReceiver)
|
||||
|
||||
|
||||
@@ -129,10 +130,10 @@ fun <BC : BehaviourContext> BC.onMentionWithAnyContent(
|
||||
fun <BC : BehaviourContext> BC.onMentionWithVoiceContent(
|
||||
username: Username,
|
||||
initialFilter: CommonMessageFilter<VoiceContent>? = null,
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, CommonMessage<VoiceContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in CommonMessage<VoiceContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, CommonMessage<VoiceContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, CommonMessage<VoiceContent>>
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatContentMessage<VoiceContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in ChatContentMessage<VoiceContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatContentMessage<VoiceContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatContentMessage<VoiceContent>>
|
||||
) = onMention(username, initialFilter, subcontextUpdatesFilter, markerFactory, additionalSubcontextInitialAction, scenarioReceiver)
|
||||
|
||||
/**
|
||||
@@ -143,10 +144,10 @@ fun <BC : BehaviourContext> BC.onMentionWithVoiceContent(
|
||||
fun <BC : BehaviourContext> BC.onTextMentionWithVoiceContent(
|
||||
userId: UserId,
|
||||
initialFilter: CommonMessageFilter<VoiceContent>? = null,
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, CommonMessage<VoiceContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in CommonMessage<VoiceContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, CommonMessage<VoiceContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, CommonMessage<VoiceContent>>
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatContentMessage<VoiceContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in ChatContentMessage<VoiceContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatContentMessage<VoiceContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatContentMessage<VoiceContent>>
|
||||
) = onTextMention(userId, initialFilter, subcontextUpdatesFilter, markerFactory, additionalSubcontextInitialAction, scenarioReceiver)
|
||||
|
||||
/**
|
||||
@@ -157,10 +158,10 @@ fun <BC : BehaviourContext> BC.onTextMentionWithVoiceContent(
|
||||
fun <BC : BehaviourContext> BC.onMentionWithVoiceContent(
|
||||
user: User,
|
||||
initialFilter: CommonMessageFilter<VoiceContent>? = null,
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, CommonMessage<VoiceContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in CommonMessage<VoiceContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, CommonMessage<VoiceContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, CommonMessage<VoiceContent>>
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatContentMessage<VoiceContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in ChatContentMessage<VoiceContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatContentMessage<VoiceContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatContentMessage<VoiceContent>>
|
||||
) = onMention(user, initialFilter, subcontextUpdatesFilter, markerFactory, additionalSubcontextInitialAction, scenarioReceiver)
|
||||
|
||||
|
||||
@@ -173,10 +174,10 @@ fun <BC : BehaviourContext> BC.onMentionWithVoiceContent(
|
||||
fun <BC : BehaviourContext> BC.onMentionWithMediaGroupContent(
|
||||
username: Username,
|
||||
initialFilter: CommonMessageFilter<MediaGroupContent<MediaGroupPartContent>>? = null,
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, CommonMessage<MediaGroupContent<MediaGroupPartContent>>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in CommonMessage<MediaGroupContent<MediaGroupPartContent>>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, CommonMessage<MediaGroupContent<MediaGroupPartContent>>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, CommonMessage<MediaGroupContent<MediaGroupPartContent>>>
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatContentMessage<MediaGroupContent<MediaGroupPartContent>>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in ChatContentMessage<MediaGroupContent<MediaGroupPartContent>>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatContentMessage<MediaGroupContent<MediaGroupPartContent>>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatContentMessage<MediaGroupContent<MediaGroupPartContent>>>
|
||||
) = onMention(username, initialFilter, subcontextUpdatesFilter, markerFactory, additionalSubcontextInitialAction, scenarioReceiver)
|
||||
|
||||
/**
|
||||
@@ -187,10 +188,10 @@ fun <BC : BehaviourContext> BC.onMentionWithMediaGroupContent(
|
||||
fun <BC : BehaviourContext> BC.onTextMentionWithMediaGroupContent(
|
||||
userId: UserId,
|
||||
initialFilter: CommonMessageFilter<MediaGroupContent<MediaGroupPartContent>>? = null,
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, CommonMessage<MediaGroupContent<MediaGroupPartContent>>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in CommonMessage<MediaGroupContent<MediaGroupPartContent>>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, CommonMessage<MediaGroupContent<MediaGroupPartContent>>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, CommonMessage<MediaGroupContent<MediaGroupPartContent>>>
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatContentMessage<MediaGroupContent<MediaGroupPartContent>>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in ChatContentMessage<MediaGroupContent<MediaGroupPartContent>>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatContentMessage<MediaGroupContent<MediaGroupPartContent>>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatContentMessage<MediaGroupContent<MediaGroupPartContent>>>
|
||||
) = onTextMention(userId, initialFilter, subcontextUpdatesFilter, markerFactory, additionalSubcontextInitialAction, scenarioReceiver)
|
||||
|
||||
/**
|
||||
@@ -201,10 +202,10 @@ fun <BC : BehaviourContext> BC.onTextMentionWithMediaGroupContent(
|
||||
fun <BC : BehaviourContext> BC.onMentionWithMediaGroupContent(
|
||||
user: User,
|
||||
initialFilter: CommonMessageFilter<MediaGroupContent<MediaGroupPartContent>>? = null,
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, CommonMessage<MediaGroupContent<MediaGroupPartContent>>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in CommonMessage<MediaGroupContent<MediaGroupPartContent>>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, CommonMessage<MediaGroupContent<MediaGroupPartContent>>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, CommonMessage<MediaGroupContent<MediaGroupPartContent>>>
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatContentMessage<MediaGroupContent<MediaGroupPartContent>>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in ChatContentMessage<MediaGroupContent<MediaGroupPartContent>>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatContentMessage<MediaGroupContent<MediaGroupPartContent>>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatContentMessage<MediaGroupContent<MediaGroupPartContent>>>
|
||||
) = onMention(user, initialFilter, subcontextUpdatesFilter, markerFactory, additionalSubcontextInitialAction, scenarioReceiver)
|
||||
|
||||
|
||||
@@ -217,10 +218,10 @@ fun <BC : BehaviourContext> BC.onMentionWithMediaGroupContent(
|
||||
fun <BC : BehaviourContext> BC.onMentionWithMediaGroupPartContent(
|
||||
username: Username,
|
||||
initialFilter: CommonMessageFilter<MediaGroupPartContent>? = null,
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, CommonMessage<MediaGroupPartContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in CommonMessage<MediaGroupPartContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, CommonMessage<MediaGroupPartContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, CommonMessage<MediaGroupPartContent>>
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatContentMessage<MediaGroupPartContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in ChatContentMessage<MediaGroupPartContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatContentMessage<MediaGroupPartContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatContentMessage<MediaGroupPartContent>>
|
||||
) = onMention(username, initialFilter, subcontextUpdatesFilter, markerFactory, additionalSubcontextInitialAction, scenarioReceiver)
|
||||
|
||||
/**
|
||||
@@ -231,10 +232,10 @@ fun <BC : BehaviourContext> BC.onMentionWithMediaGroupPartContent(
|
||||
fun <BC : BehaviourContext> BC.onTextMentionWithMediaGroupPartContent(
|
||||
userId: UserId,
|
||||
initialFilter: CommonMessageFilter<MediaGroupPartContent>? = null,
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, CommonMessage<MediaGroupPartContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in CommonMessage<MediaGroupPartContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, CommonMessage<MediaGroupPartContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, CommonMessage<MediaGroupPartContent>>
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatContentMessage<MediaGroupPartContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in ChatContentMessage<MediaGroupPartContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatContentMessage<MediaGroupPartContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatContentMessage<MediaGroupPartContent>>
|
||||
) = onTextMention(userId, initialFilter, subcontextUpdatesFilter, markerFactory, additionalSubcontextInitialAction, scenarioReceiver)
|
||||
|
||||
/**
|
||||
@@ -245,10 +246,10 @@ fun <BC : BehaviourContext> BC.onTextMentionWithMediaGroupPartContent(
|
||||
fun <BC : BehaviourContext> BC.onMentionWithMediaGroupPartContent(
|
||||
user: User,
|
||||
initialFilter: CommonMessageFilter<MediaGroupPartContent>? = null,
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, CommonMessage<MediaGroupPartContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in CommonMessage<MediaGroupPartContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, CommonMessage<MediaGroupPartContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, CommonMessage<MediaGroupPartContent>>
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatContentMessage<MediaGroupPartContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in ChatContentMessage<MediaGroupPartContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatContentMessage<MediaGroupPartContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatContentMessage<MediaGroupPartContent>>
|
||||
) = onMention(user, initialFilter, subcontextUpdatesFilter, markerFactory, additionalSubcontextInitialAction, scenarioReceiver)
|
||||
|
||||
|
||||
@@ -261,10 +262,10 @@ fun <BC : BehaviourContext> BC.onMentionWithMediaGroupPartContent(
|
||||
fun <BC : BehaviourContext> BC.onMentionWithAudioContent(
|
||||
username: Username,
|
||||
initialFilter: CommonMessageFilter<AudioContent>? = null,
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, CommonMessage<AudioContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in CommonMessage<AudioContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, CommonMessage<AudioContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, CommonMessage<AudioContent>>
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatContentMessage<AudioContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in ChatContentMessage<AudioContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatContentMessage<AudioContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatContentMessage<AudioContent>>
|
||||
) = onMention(username, initialFilter, subcontextUpdatesFilter, markerFactory, additionalSubcontextInitialAction, scenarioReceiver)
|
||||
|
||||
/**
|
||||
@@ -275,10 +276,10 @@ fun <BC : BehaviourContext> BC.onMentionWithAudioContent(
|
||||
fun <BC : BehaviourContext> BC.onTextMentionWithAudioContent(
|
||||
userId: UserId,
|
||||
initialFilter: CommonMessageFilter<AudioContent>? = null,
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, CommonMessage<AudioContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in CommonMessage<AudioContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, CommonMessage<AudioContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, CommonMessage<AudioContent>>
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatContentMessage<AudioContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in ChatContentMessage<AudioContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatContentMessage<AudioContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatContentMessage<AudioContent>>
|
||||
) = onTextMention(userId, initialFilter, subcontextUpdatesFilter, markerFactory, additionalSubcontextInitialAction, scenarioReceiver)
|
||||
|
||||
/**
|
||||
@@ -289,10 +290,10 @@ fun <BC : BehaviourContext> BC.onTextMentionWithAudioContent(
|
||||
fun <BC : BehaviourContext> BC.onMentionWithAudioContent(
|
||||
user: User,
|
||||
initialFilter: CommonMessageFilter<AudioContent>? = null,
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, CommonMessage<AudioContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in CommonMessage<AudioContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, CommonMessage<AudioContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, CommonMessage<AudioContent>>
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatContentMessage<AudioContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in ChatContentMessage<AudioContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatContentMessage<AudioContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatContentMessage<AudioContent>>
|
||||
) = onMention(user, initialFilter, subcontextUpdatesFilter, markerFactory, additionalSubcontextInitialAction, scenarioReceiver)
|
||||
|
||||
|
||||
@@ -305,10 +306,10 @@ fun <BC : BehaviourContext> BC.onMentionWithAudioContent(
|
||||
fun <BC : BehaviourContext> BC.onMentionWithDocumentContent(
|
||||
username: Username,
|
||||
initialFilter: CommonMessageFilter<DocumentContent>? = null,
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, CommonMessage<DocumentContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in CommonMessage<DocumentContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, CommonMessage<DocumentContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, CommonMessage<DocumentContent>>
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatContentMessage<DocumentContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in ChatContentMessage<DocumentContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatContentMessage<DocumentContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatContentMessage<DocumentContent>>
|
||||
) = onMention(username, initialFilter, subcontextUpdatesFilter, markerFactory, additionalSubcontextInitialAction, scenarioReceiver)
|
||||
|
||||
/**
|
||||
@@ -319,10 +320,10 @@ fun <BC : BehaviourContext> BC.onMentionWithDocumentContent(
|
||||
fun <BC : BehaviourContext> BC.onTextMentionWithDocumentContent(
|
||||
userId: UserId,
|
||||
initialFilter: CommonMessageFilter<DocumentContent>? = null,
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, CommonMessage<DocumentContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in CommonMessage<DocumentContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, CommonMessage<DocumentContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, CommonMessage<DocumentContent>>
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatContentMessage<DocumentContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in ChatContentMessage<DocumentContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatContentMessage<DocumentContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatContentMessage<DocumentContent>>
|
||||
) = onTextMention(userId, initialFilter, subcontextUpdatesFilter, markerFactory, additionalSubcontextInitialAction, scenarioReceiver)
|
||||
|
||||
/**
|
||||
@@ -333,10 +334,10 @@ fun <BC : BehaviourContext> BC.onTextMentionWithDocumentContent(
|
||||
fun <BC : BehaviourContext> BC.onMentionWithDocumentContent(
|
||||
user: User,
|
||||
initialFilter: CommonMessageFilter<DocumentContent>? = null,
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, CommonMessage<DocumentContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in CommonMessage<DocumentContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, CommonMessage<DocumentContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, CommonMessage<DocumentContent>>
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatContentMessage<DocumentContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in ChatContentMessage<DocumentContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatContentMessage<DocumentContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatContentMessage<DocumentContent>>
|
||||
) = onMention(user, initialFilter, subcontextUpdatesFilter, markerFactory, additionalSubcontextInitialAction, scenarioReceiver)
|
||||
|
||||
|
||||
@@ -349,10 +350,10 @@ fun <BC : BehaviourContext> BC.onMentionWithDocumentContent(
|
||||
fun <BC : BehaviourContext> BC.onMentionWithVisualMediaGroupPartContent(
|
||||
username: Username,
|
||||
initialFilter: CommonMessageFilter<VisualMediaGroupPartContent>? = null,
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, CommonMessage<VisualMediaGroupPartContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in CommonMessage<VisualMediaGroupPartContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, CommonMessage<VisualMediaGroupPartContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, CommonMessage<VisualMediaGroupPartContent>>
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatContentMessage<VisualMediaGroupPartContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in ChatContentMessage<VisualMediaGroupPartContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatContentMessage<VisualMediaGroupPartContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatContentMessage<VisualMediaGroupPartContent>>
|
||||
) = onMention(username, initialFilter, subcontextUpdatesFilter, markerFactory, additionalSubcontextInitialAction, scenarioReceiver)
|
||||
|
||||
/**
|
||||
@@ -363,10 +364,10 @@ fun <BC : BehaviourContext> BC.onMentionWithVisualMediaGroupPartContent(
|
||||
fun <BC : BehaviourContext> BC.onTextMentionWithVisualMediaGroupPartContent(
|
||||
userId: UserId,
|
||||
initialFilter: CommonMessageFilter<VisualMediaGroupPartContent>? = null,
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, CommonMessage<VisualMediaGroupPartContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in CommonMessage<VisualMediaGroupPartContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, CommonMessage<VisualMediaGroupPartContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, CommonMessage<VisualMediaGroupPartContent>>
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatContentMessage<VisualMediaGroupPartContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in ChatContentMessage<VisualMediaGroupPartContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatContentMessage<VisualMediaGroupPartContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatContentMessage<VisualMediaGroupPartContent>>
|
||||
) = onTextMention(userId, initialFilter, subcontextUpdatesFilter, markerFactory, additionalSubcontextInitialAction, scenarioReceiver)
|
||||
|
||||
/**
|
||||
@@ -377,10 +378,10 @@ fun <BC : BehaviourContext> BC.onTextMentionWithVisualMediaGroupPartContent(
|
||||
fun <BC : BehaviourContext> BC.onMentionWithVisualMediaGroupPartContent(
|
||||
user: User,
|
||||
initialFilter: CommonMessageFilter<VisualMediaGroupPartContent>? = null,
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, CommonMessage<VisualMediaGroupPartContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in CommonMessage<VisualMediaGroupPartContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, CommonMessage<VisualMediaGroupPartContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, CommonMessage<VisualMediaGroupPartContent>>
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatContentMessage<VisualMediaGroupPartContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in ChatContentMessage<VisualMediaGroupPartContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatContentMessage<VisualMediaGroupPartContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatContentMessage<VisualMediaGroupPartContent>>
|
||||
) = onMention(user, initialFilter, subcontextUpdatesFilter, markerFactory, additionalSubcontextInitialAction, scenarioReceiver)
|
||||
|
||||
|
||||
@@ -393,10 +394,24 @@ fun <BC : BehaviourContext> BC.onMentionWithVisualMediaGroupPartContent(
|
||||
fun <BC : BehaviourContext> BC.onMentionWithVideoContent(
|
||||
username: Username,
|
||||
initialFilter: CommonMessageFilter<VideoContent>? = null,
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, CommonMessage<VideoContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in CommonMessage<VideoContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, CommonMessage<VideoContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, CommonMessage<VideoContent>>
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatContentMessage<VideoContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in ChatContentMessage<VideoContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatContentMessage<VideoContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatContentMessage<VideoContent>>
|
||||
) = onMention(username, initialFilter, subcontextUpdatesFilter, markerFactory, additionalSubcontextInitialAction, scenarioReceiver)
|
||||
|
||||
/**
|
||||
* @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"
|
||||
*/
|
||||
fun <BC : BehaviourContext> BC.onMentionWithLivePhotoContent(
|
||||
username: Username,
|
||||
initialFilter: CommonMessageFilter<LivePhotoContent>? = null,
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatContentMessage<LivePhotoContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in ChatContentMessage<LivePhotoContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatContentMessage<LivePhotoContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatContentMessage<LivePhotoContent>>
|
||||
) = onMention(username, initialFilter, subcontextUpdatesFilter, markerFactory, additionalSubcontextInitialAction, scenarioReceiver)
|
||||
|
||||
/**
|
||||
@@ -407,10 +422,24 @@ fun <BC : BehaviourContext> BC.onMentionWithVideoContent(
|
||||
fun <BC : BehaviourContext> BC.onTextMentionWithVideoContent(
|
||||
userId: UserId,
|
||||
initialFilter: CommonMessageFilter<VideoContent>? = null,
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, CommonMessage<VideoContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in CommonMessage<VideoContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, CommonMessage<VideoContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, CommonMessage<VideoContent>>
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatContentMessage<VideoContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in ChatContentMessage<VideoContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatContentMessage<VideoContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatContentMessage<VideoContent>>
|
||||
) = onTextMention(userId, initialFilter, subcontextUpdatesFilter, markerFactory, additionalSubcontextInitialAction, scenarioReceiver)
|
||||
|
||||
/**
|
||||
* @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"
|
||||
*/
|
||||
fun <BC : BehaviourContext> BC.onTextMentionWithLivePhotoContent(
|
||||
userId: UserId,
|
||||
initialFilter: CommonMessageFilter<LivePhotoContent>? = null,
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatContentMessage<LivePhotoContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in ChatContentMessage<LivePhotoContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatContentMessage<LivePhotoContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatContentMessage<LivePhotoContent>>
|
||||
) = onTextMention(userId, initialFilter, subcontextUpdatesFilter, markerFactory, additionalSubcontextInitialAction, scenarioReceiver)
|
||||
|
||||
/**
|
||||
@@ -421,10 +450,24 @@ fun <BC : BehaviourContext> BC.onTextMentionWithVideoContent(
|
||||
fun <BC : BehaviourContext> BC.onMentionWithVideoContent(
|
||||
user: User,
|
||||
initialFilter: CommonMessageFilter<VideoContent>? = null,
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, CommonMessage<VideoContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in CommonMessage<VideoContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, CommonMessage<VideoContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, CommonMessage<VideoContent>>
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatContentMessage<VideoContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in ChatContentMessage<VideoContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatContentMessage<VideoContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatContentMessage<VideoContent>>
|
||||
) = onMention(user, initialFilter, subcontextUpdatesFilter, markerFactory, additionalSubcontextInitialAction, scenarioReceiver)
|
||||
|
||||
/**
|
||||
* @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"
|
||||
*/
|
||||
fun <BC : BehaviourContext> BC.onMentionWithLivePhotoContent(
|
||||
user: User,
|
||||
initialFilter: CommonMessageFilter<LivePhotoContent>? = null,
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatContentMessage<LivePhotoContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in ChatContentMessage<LivePhotoContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatContentMessage<LivePhotoContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatContentMessage<LivePhotoContent>>
|
||||
) = onMention(user, initialFilter, subcontextUpdatesFilter, markerFactory, additionalSubcontextInitialAction, scenarioReceiver)
|
||||
|
||||
|
||||
@@ -437,10 +480,10 @@ fun <BC : BehaviourContext> BC.onMentionWithVideoContent(
|
||||
fun <BC : BehaviourContext> BC.onMentionWithPhotoContent(
|
||||
username: Username,
|
||||
initialFilter: CommonMessageFilter<PhotoContent>? = null,
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, CommonMessage<PhotoContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in CommonMessage<PhotoContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, CommonMessage<PhotoContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, CommonMessage<PhotoContent>>
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatContentMessage<PhotoContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in ChatContentMessage<PhotoContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatContentMessage<PhotoContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatContentMessage<PhotoContent>>
|
||||
) = onMention(username, initialFilter, subcontextUpdatesFilter, markerFactory, additionalSubcontextInitialAction, scenarioReceiver)
|
||||
|
||||
/**
|
||||
@@ -451,10 +494,10 @@ fun <BC : BehaviourContext> BC.onMentionWithPhotoContent(
|
||||
fun <BC : BehaviourContext> BC.onTextMentionWithPhotoContent(
|
||||
userId: UserId,
|
||||
initialFilter: CommonMessageFilter<PhotoContent>? = null,
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, CommonMessage<PhotoContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in CommonMessage<PhotoContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, CommonMessage<PhotoContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, CommonMessage<PhotoContent>>
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatContentMessage<PhotoContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in ChatContentMessage<PhotoContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatContentMessage<PhotoContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatContentMessage<PhotoContent>>
|
||||
) = onTextMention(userId, initialFilter, subcontextUpdatesFilter, markerFactory, additionalSubcontextInitialAction, scenarioReceiver)
|
||||
|
||||
/**
|
||||
@@ -465,10 +508,10 @@ fun <BC : BehaviourContext> BC.onTextMentionWithPhotoContent(
|
||||
fun <BC : BehaviourContext> BC.onMentionWithPhotoContent(
|
||||
user: User,
|
||||
initialFilter: CommonMessageFilter<PhotoContent>? = null,
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, CommonMessage<PhotoContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in CommonMessage<PhotoContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, CommonMessage<PhotoContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, CommonMessage<PhotoContent>>
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatContentMessage<PhotoContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in ChatContentMessage<PhotoContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatContentMessage<PhotoContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatContentMessage<PhotoContent>>
|
||||
) = onMention(user, initialFilter, subcontextUpdatesFilter, markerFactory, additionalSubcontextInitialAction, scenarioReceiver)
|
||||
|
||||
|
||||
@@ -481,10 +524,10 @@ fun <BC : BehaviourContext> BC.onMentionWithPhotoContent(
|
||||
fun <BC : BehaviourContext> BC.onMentionWithAnimationContent(
|
||||
username: Username,
|
||||
initialFilter: CommonMessageFilter<AnimationContent>? = null,
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, CommonMessage<AnimationContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in CommonMessage<AnimationContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, CommonMessage<AnimationContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, CommonMessage<AnimationContent>>
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatContentMessage<AnimationContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in ChatContentMessage<AnimationContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatContentMessage<AnimationContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatContentMessage<AnimationContent>>
|
||||
) = onMention(username, initialFilter, subcontextUpdatesFilter, markerFactory, additionalSubcontextInitialAction, scenarioReceiver)
|
||||
|
||||
/**
|
||||
@@ -495,10 +538,10 @@ fun <BC : BehaviourContext> BC.onMentionWithAnimationContent(
|
||||
fun <BC : BehaviourContext> BC.onTextMentionWithAnimationContent(
|
||||
userId: UserId,
|
||||
initialFilter: CommonMessageFilter<AnimationContent>? = null,
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, CommonMessage<AnimationContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in CommonMessage<AnimationContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, CommonMessage<AnimationContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, CommonMessage<AnimationContent>>
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatContentMessage<AnimationContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in ChatContentMessage<AnimationContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatContentMessage<AnimationContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatContentMessage<AnimationContent>>
|
||||
) = onTextMention(userId, initialFilter, subcontextUpdatesFilter, markerFactory, additionalSubcontextInitialAction, scenarioReceiver)
|
||||
|
||||
/**
|
||||
@@ -509,10 +552,10 @@ fun <BC : BehaviourContext> BC.onTextMentionWithAnimationContent(
|
||||
fun <BC : BehaviourContext> BC.onMentionWithAnimationContent(
|
||||
user: User,
|
||||
initialFilter: CommonMessageFilter<AnimationContent>? = null,
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, CommonMessage<AnimationContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in CommonMessage<AnimationContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, CommonMessage<AnimationContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, CommonMessage<AnimationContent>>
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatContentMessage<AnimationContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in ChatContentMessage<AnimationContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatContentMessage<AnimationContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatContentMessage<AnimationContent>>
|
||||
) = onMention(user, initialFilter, subcontextUpdatesFilter, markerFactory, additionalSubcontextInitialAction, scenarioReceiver)
|
||||
|
||||
|
||||
@@ -525,10 +568,10 @@ fun <BC : BehaviourContext> BC.onMentionWithAnimationContent(
|
||||
fun <BC : BehaviourContext> BC.onMentionWithTextContent(
|
||||
username: Username,
|
||||
initialFilter: CommonMessageFilter<TextContent>? = null,
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, CommonMessage<TextContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in CommonMessage<TextContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, CommonMessage<TextContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, CommonMessage<TextContent>>
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatContentMessage<TextContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in ChatContentMessage<TextContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatContentMessage<TextContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatContentMessage<TextContent>>
|
||||
) = onMention(username, initialFilter, subcontextUpdatesFilter, markerFactory, additionalSubcontextInitialAction, scenarioReceiver)
|
||||
|
||||
/**
|
||||
@@ -539,10 +582,10 @@ fun <BC : BehaviourContext> BC.onMentionWithTextContent(
|
||||
fun <BC : BehaviourContext> BC.onTextMentionWithTextContent(
|
||||
userId: UserId,
|
||||
initialFilter: CommonMessageFilter<TextContent>? = null,
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, CommonMessage<TextContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in CommonMessage<TextContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, CommonMessage<TextContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, CommonMessage<TextContent>>
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatContentMessage<TextContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in ChatContentMessage<TextContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatContentMessage<TextContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatContentMessage<TextContent>>
|
||||
) = onTextMention(userId, initialFilter, subcontextUpdatesFilter, markerFactory, additionalSubcontextInitialAction, scenarioReceiver)
|
||||
|
||||
/**
|
||||
@@ -553,9 +596,9 @@ fun <BC : BehaviourContext> BC.onTextMentionWithTextContent(
|
||||
fun <BC : BehaviourContext> BC.onMentionWithTextContent(
|
||||
user: User,
|
||||
initialFilter: CommonMessageFilter<TextContent>? = null,
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, CommonMessage<TextContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in CommonMessage<TextContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, CommonMessage<TextContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, CommonMessage<TextContent>>
|
||||
subcontextUpdatesFilter: CustomBehaviourContextAndTwoTypesReceiver<BC, Boolean, ChatContentMessage<TextContent>, Update>? = null,
|
||||
markerFactory: MarkerFactory<in ChatContentMessage<TextContent>, Any>? = AnyMarkerFactory(),
|
||||
additionalSubcontextInitialAction: CustomBehaviourContextAndTwoTypesReceiver<BC, Unit, Update, ChatContentMessage<TextContent>>? = null,
|
||||
scenarioReceiver: CustomBehaviourContextAndTypeReceiver<BC, Unit, ChatContentMessage<TextContent>>
|
||||
) = onMention(user, initialFilter, subcontextUpdatesFilter, markerFactory, additionalSubcontextInitialAction, scenarioReceiver)
|
||||
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
package dev.inmo.tgbotapi.extensions.behaviour_builder.utils.marker_factories
|
||||
|
||||
import dev.inmo.tgbotapi.types.managed_bots.ManagedBotUpdated
|
||||
|
||||
object ByUserManagedBotUpdatedMarkerFactory : MarkerFactory<ManagedBotUpdated, Any> {
|
||||
override suspend fun invoke(data: ManagedBotUpdated) = data.user
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,7 @@
|
||||
package dev.inmo.tgbotapi.abstracts.types
|
||||
|
||||
import dev.inmo.tgbotapi.types.GuestQueryId
|
||||
|
||||
interface WithOptionalGuestQueryId {
|
||||
val guestQueryId: GuestQueryId?
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
package dev.inmo.tgbotapi.requests
|
||||
|
||||
import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest
|
||||
import dev.inmo.tgbotapi.types.ChatId
|
||||
import dev.inmo.tgbotapi.types.limitField
|
||||
import dev.inmo.tgbotapi.types.message.RawMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
|
||||
import dev.inmo.tgbotapi.types.userIdField
|
||||
import kotlinx.serialization.*
|
||||
import kotlinx.serialization.builtins.ListSerializer
|
||||
import kotlinx.serialization.descriptors.SerialDescriptor
|
||||
import kotlinx.serialization.encoding.Decoder
|
||||
|
||||
@Serializable
|
||||
data class GetUserPersonalChatMessages(
|
||||
@SerialName(userIdField)
|
||||
val userId: ChatId,
|
||||
@SerialName(limitField)
|
||||
val limit: Int
|
||||
) : SimpleRequest<List<ChatContentMessage<*>>> {
|
||||
override fun method(): String = "getUserPersonalChatMessages"
|
||||
override val resultDeserializer: DeserializationStrategy<List<ChatContentMessage<*>>>
|
||||
get() = resultSerializer
|
||||
override val requestSerializer: SerializationStrategy<*>
|
||||
get() = serializer()
|
||||
|
||||
private object MessagesDeserializer : DeserializationStrategy<List<ChatContentMessage<*>>> {
|
||||
private val rawListSerializer = ListSerializer(RawMessage.serializer())
|
||||
override val descriptor: SerialDescriptor = rawListSerializer.descriptor
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
override fun deserialize(decoder: Decoder): List<ChatContentMessage<*>> {
|
||||
return rawListSerializer.deserialize(decoder).map {
|
||||
it.asMessage as ChatContentMessage<*>
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
companion object {
|
||||
internal val resultSerializer: DeserializationStrategy<List<ChatContentMessage<*>>> = MessagesDeserializer
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
package dev.inmo.tgbotapi.requests
|
||||
|
||||
import dev.inmo.kslog.common.w
|
||||
import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest
|
||||
import dev.inmo.tgbotapi.types.ChatId
|
||||
import dev.inmo.tgbotapi.types.allowedToSavePreparedKeyboardButtons
|
||||
import dev.inmo.tgbotapi.types.buttonField
|
||||
import dev.inmo.tgbotapi.types.buttons.KeyboardButton
|
||||
import dev.inmo.tgbotapi.types.buttons.PreparedKeyboardButton
|
||||
import dev.inmo.tgbotapi.types.userIdField
|
||||
import dev.inmo.tgbotapi.utils.DefaultKTgBotAPIKSLog
|
||||
import kotlinx.serialization.DeserializationStrategy
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.SerializationStrategy
|
||||
|
||||
@Serializable
|
||||
data class SavePreparedKeyboardButton(
|
||||
@SerialName(userIdField)
|
||||
val userId: ChatId,
|
||||
@SerialName(buttonField)
|
||||
val button: KeyboardButton
|
||||
) : SimpleRequest<PreparedKeyboardButton> {
|
||||
override val resultDeserializer: DeserializationStrategy<PreparedKeyboardButton>
|
||||
get() = PreparedKeyboardButton.serializer()
|
||||
override val requestSerializer: SerializationStrategy<*>
|
||||
get() = serializer()
|
||||
|
||||
override fun method(): String = "savePreparedKeyboardButton"
|
||||
|
||||
init {
|
||||
if (button::class !in allowedToSavePreparedKeyboardButtons) {
|
||||
DefaultKTgBotAPIKSLog.w {
|
||||
"According to https://core.telegram.org/bots/api#savepreparedkeyboardbutton it is disallowed to use " +
|
||||
"anything except request_users, request_chat, or request_managed_bot, but you passed $button " +
|
||||
"which is not instance of any allowed buttons type"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package dev.inmo.tgbotapi.requests.answers
|
||||
|
||||
import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest
|
||||
import dev.inmo.tgbotapi.types.GuestQueryId
|
||||
import dev.inmo.tgbotapi.types.InlineQueries.InlineQueryResult.abstracts.InlineQueryResult
|
||||
import dev.inmo.tgbotapi.types.guest.SentGuestMessage
|
||||
import dev.inmo.tgbotapi.types.guestQueryIdField
|
||||
import dev.inmo.tgbotapi.types.resultField
|
||||
import kotlinx.serialization.DeserializationStrategy
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.SerializationStrategy
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
@Serializable
|
||||
data class AnswerGuestQuery(
|
||||
@SerialName(guestQueryIdField)
|
||||
val guestQueryId: GuestQueryId,
|
||||
@SerialName(resultField)
|
||||
val result: InlineQueryResult
|
||||
) : SimpleRequest<SentGuestMessage> {
|
||||
override fun method(): String = "answerGuestQuery"
|
||||
override val resultDeserializer: DeserializationStrategy<SentGuestMessage>
|
||||
get() = SentGuestMessage.serializer()
|
||||
override val requestSerializer: SerializationStrategy<*>
|
||||
get() = serializer()
|
||||
}
|
||||
@@ -6,6 +6,7 @@ import dev.inmo.tgbotapi.types.ChatIdentifier
|
||||
import dev.inmo.tgbotapi.types.chat.member.AdministratorChatMember
|
||||
import dev.inmo.tgbotapi.types.chat.member.AdministratorChatMemberSerializer
|
||||
import dev.inmo.tgbotapi.types.chatIdField
|
||||
import dev.inmo.tgbotapi.types.returnBotsField
|
||||
import kotlinx.serialization.*
|
||||
import kotlinx.serialization.builtins.ListSerializer
|
||||
|
||||
@@ -13,10 +14,23 @@ private val chatMembersListSerializer = ListSerializer(
|
||||
AdministratorChatMemberSerializer
|
||||
)
|
||||
|
||||
/**
|
||||
* Represents a request to retrieve a list of administrators in a chat.
|
||||
*
|
||||
* This class is used to get information about all administrators of a specific chat.
|
||||
* The response includes details about the administrators, such as their permissions.
|
||||
*
|
||||
* @property chatId Unique identifier for the target chat or username of the target supergroup or channel.
|
||||
* @property retrieveOtherBots (Serialized as `return_bots`) Optional flag indicating whether to include bot administrators other than the requesting bot.
|
||||
* @see ChatRequest
|
||||
* @see SimpleRequest
|
||||
*/
|
||||
@Serializable
|
||||
data class GetChatAdministrators(
|
||||
@SerialName(chatIdField)
|
||||
override val chatId: ChatIdentifier
|
||||
override val chatId: ChatIdentifier,
|
||||
@SerialName(returnBotsField)
|
||||
val retrieveOtherBots: Boolean? = null
|
||||
): ChatRequest, SimpleRequest<List<AdministratorChatMember>> {
|
||||
override fun method(): String = "getChatAdministrators"
|
||||
override val resultDeserializer: DeserializationStrategy<List<AdministratorChatMember>>
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
package dev.inmo.tgbotapi.requests.managed_bots
|
||||
|
||||
import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest
|
||||
import dev.inmo.tgbotapi.types.ChatId
|
||||
import dev.inmo.tgbotapi.types.managed_bots.BotAccessSettings
|
||||
import dev.inmo.tgbotapi.types.userIdField
|
||||
import kotlinx.serialization.*
|
||||
|
||||
@Serializable
|
||||
data class GetManagedBotAccessSettings(
|
||||
@SerialName(userIdField)
|
||||
val userId: ChatId
|
||||
) : SimpleRequest<BotAccessSettings> {
|
||||
override fun method(): String = "getManagedBotAccessSettings"
|
||||
override val resultDeserializer: DeserializationStrategy<BotAccessSettings>
|
||||
get() = BotAccessSettings.serializer()
|
||||
override val requestSerializer: SerializationStrategy<*>
|
||||
get() = serializer()
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package dev.inmo.tgbotapi.requests.managed_bots
|
||||
|
||||
import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest
|
||||
import dev.inmo.tgbotapi.types.BotToken
|
||||
import dev.inmo.tgbotapi.types.ChatId
|
||||
import dev.inmo.tgbotapi.types.userIdField
|
||||
import kotlinx.serialization.*
|
||||
|
||||
@Serializable
|
||||
data class GetManagedBotToken(
|
||||
@SerialName(userIdField)
|
||||
val userId: ChatId
|
||||
) : SimpleRequest<BotToken> {
|
||||
override fun method(): String = "getManagedBotToken"
|
||||
override val resultDeserializer: DeserializationStrategy<BotToken>
|
||||
get() = BotToken.serializer()
|
||||
override val requestSerializer: SerializationStrategy<*>
|
||||
get() = serializer()
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package dev.inmo.tgbotapi.requests.managed_bots
|
||||
|
||||
import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest
|
||||
import dev.inmo.tgbotapi.types.BotToken
|
||||
import dev.inmo.tgbotapi.types.ChatId
|
||||
import dev.inmo.tgbotapi.types.userIdField
|
||||
import kotlinx.serialization.*
|
||||
|
||||
@Serializable
|
||||
data class ReplaceManagedBotToken(
|
||||
@SerialName(userIdField)
|
||||
val userId: ChatId
|
||||
) : SimpleRequest<BotToken> {
|
||||
override fun method(): String = "replaceManagedBotToken"
|
||||
override val resultDeserializer: DeserializationStrategy<BotToken>
|
||||
get() = BotToken.serializer()
|
||||
override val requestSerializer: SerializationStrategy<*>
|
||||
get() = serializer()
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package dev.inmo.tgbotapi.requests.managed_bots
|
||||
|
||||
import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest
|
||||
import dev.inmo.tgbotapi.types.ChatId
|
||||
import dev.inmo.tgbotapi.types.addedUserIdsField
|
||||
import dev.inmo.tgbotapi.types.isAccessRestrictedField
|
||||
import dev.inmo.tgbotapi.types.userIdField
|
||||
import dev.inmo.tgbotapi.utils.serializers.UnitFromBooleanSerializer
|
||||
import kotlinx.serialization.*
|
||||
|
||||
@Serializable
|
||||
data class SetManagedBotAccessSettings(
|
||||
@SerialName(userIdField)
|
||||
val userId: ChatId,
|
||||
@SerialName(addedUserIdsField)
|
||||
val addedUserIds: List<ChatId>? = null
|
||||
) : SimpleRequest<Unit> {
|
||||
@EncodeDefault
|
||||
@SerialName(isAccessRestrictedField)
|
||||
val isAccessRestricted: Boolean = addedUserIds != null
|
||||
override fun method(): String = "setManagedBotAccessSettings"
|
||||
override val resultDeserializer: DeserializationStrategy<Unit>
|
||||
get() = UnitFromBooleanSerializer
|
||||
override val requestSerializer: SerializationStrategy<*>
|
||||
get() = serializer()
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
package dev.inmo.tgbotapi.requests.send
|
||||
|
||||
import dev.inmo.micro_utils.common.Warning
|
||||
import dev.inmo.tgbotapi.abstracts.types.ChatRequest
|
||||
import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest
|
||||
import dev.inmo.tgbotapi.types.*
|
||||
import dev.inmo.tgbotapi.utils.serializers.UnitFromBooleanSerializer
|
||||
import kotlinx.serialization.DeserializationStrategy
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.SerializationStrategy
|
||||
|
||||
@Serializable
|
||||
data class DeleteAllMessageReactions @Warning(
|
||||
"Pass either userId or actorChatId, but not both. Prefer DeleteAllUserMessageReactions or DeleteAllActorChatMessageReactions factory functions"
|
||||
) constructor(
|
||||
@SerialName(chatIdField)
|
||||
override val chatId: ChatIdentifier,
|
||||
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
|
||||
@SerialName(userIdField)
|
||||
val userId: UserId? = null,
|
||||
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
|
||||
@SerialName(actorChatIdField)
|
||||
val actorChatId: ChatId? = null
|
||||
) : SimpleRequest<Unit>, ChatRequest {
|
||||
override fun method(): String = "deleteAllMessageReactions"
|
||||
|
||||
override val requestSerializer: SerializationStrategy<*>
|
||||
get() = serializer()
|
||||
|
||||
override val resultDeserializer: DeserializationStrategy<Unit>
|
||||
get() = UnitFromBooleanSerializer
|
||||
}
|
||||
|
||||
@OptIn(Warning::class)
|
||||
fun DeleteAllUserMessageReactions(
|
||||
chatId: ChatIdentifier,
|
||||
userId: UserId
|
||||
): DeleteAllMessageReactions = DeleteAllMessageReactions(
|
||||
chatId = chatId,
|
||||
userId = userId,
|
||||
actorChatId = null
|
||||
)
|
||||
|
||||
@OptIn(Warning::class)
|
||||
fun DeleteAllActorChatMessageReactions(
|
||||
chatId: ChatIdentifier,
|
||||
actorChatId: ChatId
|
||||
): DeleteAllMessageReactions = DeleteAllMessageReactions(
|
||||
chatId = chatId,
|
||||
userId = null,
|
||||
actorChatId = actorChatId
|
||||
)
|
||||
@@ -0,0 +1,59 @@
|
||||
package dev.inmo.tgbotapi.requests.send
|
||||
|
||||
import dev.inmo.micro_utils.common.Warning
|
||||
import dev.inmo.tgbotapi.abstracts.types.ChatRequest
|
||||
import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest
|
||||
import dev.inmo.tgbotapi.types.*
|
||||
import dev.inmo.tgbotapi.utils.serializers.UnitFromBooleanSerializer
|
||||
import kotlinx.serialization.DeserializationStrategy
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.SerializationStrategy
|
||||
|
||||
@Serializable
|
||||
data class DeleteMessageReaction @Warning(
|
||||
"Pass either userId or actorChatId, but not both. Prefer DeleteUserMessageReaction or DeleteActorChatMessageReaction factory functions"
|
||||
) constructor(
|
||||
@SerialName(chatIdField)
|
||||
override val chatId: ChatIdentifier,
|
||||
@SerialName(messageIdField)
|
||||
val messageId: MessageId,
|
||||
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
|
||||
@SerialName(userIdField)
|
||||
val userId: UserId? = null,
|
||||
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
|
||||
@SerialName(actorChatIdField)
|
||||
val actorChatId: ChatId? = null
|
||||
) : SimpleRequest<Unit>, ChatRequest {
|
||||
override fun method(): String = "deleteMessageReaction"
|
||||
|
||||
override val requestSerializer: SerializationStrategy<*>
|
||||
get() = serializer()
|
||||
|
||||
override val resultDeserializer: DeserializationStrategy<Unit>
|
||||
get() = UnitFromBooleanSerializer
|
||||
}
|
||||
|
||||
@OptIn(Warning::class)
|
||||
fun DeleteUserMessageReaction(
|
||||
chatId: ChatIdentifier,
|
||||
messageId: MessageId,
|
||||
userId: UserId
|
||||
): DeleteMessageReaction = DeleteMessageReaction(
|
||||
chatId = chatId,
|
||||
messageId = messageId,
|
||||
userId = userId,
|
||||
actorChatId = null
|
||||
)
|
||||
|
||||
@OptIn(Warning::class)
|
||||
fun DeleteActorChatMessageReaction(
|
||||
chatId: ChatIdentifier,
|
||||
messageId: MessageId,
|
||||
actorChatId: ChatId
|
||||
): DeleteMessageReaction = DeleteMessageReaction(
|
||||
chatId = chatId,
|
||||
messageId = messageId,
|
||||
userId = null,
|
||||
actorChatId = actorChatId
|
||||
)
|
||||
@@ -14,13 +14,14 @@ import dev.inmo.tgbotapi.types.*
|
||||
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
|
||||
import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup
|
||||
import dev.inmo.tgbotapi.types.checklists.Checklist
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.TelegramBotAPIMessageDeserializationStrategyClass
|
||||
import dev.inmo.tgbotapi.types.message.content.ChecklistContent
|
||||
import dev.inmo.tgbotapi.types.message.content.GameContent
|
||||
import kotlinx.serialization.*
|
||||
|
||||
private val commonResultDeserializer: DeserializationStrategy<ContentMessage<ChecklistContent>>
|
||||
private val commonResultDeserializer: DeserializationStrategy<ChatContentMessage<ChecklistContent>>
|
||||
= TelegramBotAPIMessageDeserializationStrategyClass()
|
||||
|
||||
@Serializable
|
||||
@@ -41,7 +42,7 @@ data class SendChecklist (
|
||||
override val replyParameters: ReplyParameters? = null,
|
||||
@SerialName(replyMarkupField)
|
||||
override val replyMarkup: KeyboardMarkup? = null
|
||||
) : SendChatMessageRequest<ContentMessage<ChecklistContent>>,
|
||||
) : SendChatMessageRequest<ChatContentMessage<ChecklistContent>>,
|
||||
WithReplyParameters,
|
||||
DisableNotification,
|
||||
ProtectContent,
|
||||
@@ -68,7 +69,7 @@ data class SendChecklist (
|
||||
)
|
||||
|
||||
override fun method(): String = "sendChecklist"
|
||||
override val resultDeserializer: DeserializationStrategy<ContentMessage<ChecklistContent>>
|
||||
override val resultDeserializer: DeserializationStrategy<ChatContentMessage<ChecklistContent>>
|
||||
get() = commonResultDeserializer
|
||||
override val requestSerializer: SerializationStrategy<*>
|
||||
get() = serializer()
|
||||
|
||||
@@ -7,12 +7,13 @@ import dev.inmo.tgbotapi.types.*
|
||||
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
|
||||
import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup
|
||||
import dev.inmo.tgbotapi.types.message.SuggestedPostParameters
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.TelegramBotAPIMessageDeserializationStrategyClass
|
||||
import dev.inmo.tgbotapi.types.message.content.ContactContent
|
||||
import kotlinx.serialization.*
|
||||
|
||||
private val commonResultDeserializer: DeserializationStrategy<ContentMessage<ContactContent>>
|
||||
private val commonResultDeserializer: DeserializationStrategy<ChatContentMessage<ContactContent>>
|
||||
= TelegramBotAPIMessageDeserializationStrategyClass()
|
||||
|
||||
@Serializable
|
||||
@@ -49,8 +50,8 @@ data class SendContact(
|
||||
override val replyParameters: ReplyParameters? = null,
|
||||
@SerialName(replyMarkupField)
|
||||
override val replyMarkup: KeyboardMarkup? = null
|
||||
) : SendContentMessageRequest<ContentMessage<ContactContent>>,
|
||||
ReplyingMarkupSendMessageRequest<ContentMessage<ContactContent>>
|
||||
) : SendContentMessageRequest<ChatContentMessage<ContactContent>>,
|
||||
ReplyingMarkupSendMessageRequest<ChatContentMessage<ContactContent>>
|
||||
{
|
||||
constructor(
|
||||
chatId: ChatIdentifier,
|
||||
@@ -83,7 +84,7 @@ data class SendContact(
|
||||
)
|
||||
|
||||
override fun method(): String = "sendContact"
|
||||
override val resultDeserializer: DeserializationStrategy<ContentMessage<ContactContent>>
|
||||
override val resultDeserializer: DeserializationStrategy<ChatContentMessage<ContactContent>>
|
||||
get() = commonResultDeserializer
|
||||
override val requestSerializer: SerializationStrategy<*>
|
||||
get() = serializer()
|
||||
|
||||
@@ -10,12 +10,13 @@ import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
|
||||
import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup
|
||||
import dev.inmo.tgbotapi.types.dice.DiceAnimationType
|
||||
import dev.inmo.tgbotapi.types.message.SuggestedPostParameters
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.TelegramBotAPIMessageDeserializationStrategyClass
|
||||
import dev.inmo.tgbotapi.types.message.content.DiceContent
|
||||
import kotlinx.serialization.*
|
||||
|
||||
internal val DiceContentMessageResultDeserializer: DeserializationStrategy<ContentMessage<DiceContent>>
|
||||
internal val DiceContentMessageResultDeserializer: DeserializationStrategy<ChatContentMessage<DiceContent>>
|
||||
= TelegramBotAPIMessageDeserializationStrategyClass()
|
||||
|
||||
@Serializable
|
||||
@@ -48,13 +49,13 @@ data class SendDice(
|
||||
override val replyParameters: ReplyParameters? = null,
|
||||
@SerialName(replyMarkupField)
|
||||
override val replyMarkup: KeyboardMarkup? = null
|
||||
) : SendContentMessageRequest<ContentMessage<DiceContent>>, ReplyingMarkupSendMessageRequest<ContentMessage<DiceContent>>, WithReplyParameters, DisableNotification,
|
||||
) : SendContentMessageRequest<ChatContentMessage<DiceContent>>, ReplyingMarkupSendMessageRequest<ChatContentMessage<DiceContent>>, WithReplyParameters, DisableNotification,
|
||||
OptionallyBusinessConnectionRequest {
|
||||
override val requestSerializer: SerializationStrategy<*>
|
||||
get() = serializer()
|
||||
|
||||
override fun method(): String = "sendDice"
|
||||
|
||||
override val resultDeserializer: DeserializationStrategy<ContentMessage<DiceContent>>
|
||||
override val resultDeserializer: DeserializationStrategy<ChatContentMessage<DiceContent>>
|
||||
get() = DiceContentMessageResultDeserializer
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
|
||||
import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup
|
||||
import dev.inmo.tgbotapi.types.location.LiveLocation
|
||||
import dev.inmo.tgbotapi.types.message.SuggestedPostParameters
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.TelegramBotAPIMessageDeserializationStrategyClass
|
||||
import dev.inmo.tgbotapi.types.message.content.*
|
||||
@@ -17,13 +18,13 @@ import kotlinx.serialization.encoding.Decoder
|
||||
import kotlinx.serialization.encoding.Encoder
|
||||
|
||||
|
||||
private val commonResultDeserializer: DeserializationStrategy<ContentMessage<LocationContent>>
|
||||
private val commonResultDeserializer: DeserializationStrategy<ChatContentMessage<LocationContent>>
|
||||
= TelegramBotAPIMessageDeserializationStrategyClass()
|
||||
|
||||
private val liveResultDeserializer: DeserializationStrategy<ContentMessage<LiveLocationContent>>
|
||||
private val liveResultDeserializer: DeserializationStrategy<ChatContentMessage<LiveLocationContent>>
|
||||
= TelegramBotAPIMessageDeserializationStrategyClass()
|
||||
|
||||
private val staticResultDeserializer: DeserializationStrategy<ContentMessage<StaticLocationContent>>
|
||||
private val staticResultDeserializer: DeserializationStrategy<ChatContentMessage<StaticLocationContent>>
|
||||
= TelegramBotAPIMessageDeserializationStrategyClass()
|
||||
|
||||
fun SendLocation(
|
||||
@@ -125,9 +126,9 @@ fun SendLiveLocation(
|
||||
)
|
||||
|
||||
@Serializable(SendLocation.Companion::class)
|
||||
sealed interface SendLocation<T : LocationContent> : SendContentMessageRequest<ContentMessage<T>>,
|
||||
ReplyingMarkupSendMessageRequest<ContentMessage<T>>,
|
||||
PositionedSendMessageRequest<ContentMessage<T>>,
|
||||
sealed interface SendLocation<T : LocationContent> : SendContentMessageRequest<ChatContentMessage<T>>,
|
||||
ReplyingMarkupSendMessageRequest<ChatContentMessage<T>>,
|
||||
PositionedSendMessageRequest<ChatContentMessage<T>>,
|
||||
HorizontallyAccured,
|
||||
Livable,
|
||||
ProximityAlertable,
|
||||
@@ -179,7 +180,7 @@ sealed interface SendLocation<T : LocationContent> : SendContentMessageRequest<C
|
||||
@SerialName(replyMarkupField)
|
||||
override val replyMarkup: KeyboardMarkup? = null
|
||||
) : SendLocation<LiveLocationContent> {
|
||||
override val resultDeserializer: DeserializationStrategy<ContentMessage<LiveLocationContent>>
|
||||
override val resultDeserializer: DeserializationStrategy<ChatContentMessage<LiveLocationContent>>
|
||||
get() = liveResultDeserializer
|
||||
override val requestSerializer: SerializationStrategy<*>
|
||||
get() = serializer()
|
||||
@@ -237,7 +238,7 @@ sealed interface SendLocation<T : LocationContent> : SendContentMessageRequest<C
|
||||
get() = null
|
||||
override val proximityAlertRadius: Meters?
|
||||
get() = null
|
||||
override val resultDeserializer: DeserializationStrategy<ContentMessage<StaticLocationContent>>
|
||||
override val resultDeserializer: DeserializationStrategy<ChatContentMessage<StaticLocationContent>>
|
||||
get() = staticResultDeserializer
|
||||
override val requestSerializer: SerializationStrategy<*>
|
||||
get() = serializer()
|
||||
|
||||
@@ -10,6 +10,7 @@ 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.ChatContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.TelegramBotAPIMessageDeserializationStrategyClass
|
||||
import dev.inmo.tgbotapi.types.message.content.TextContent
|
||||
@@ -18,7 +19,7 @@ import dev.inmo.tgbotapi.utils.extensions.makeString
|
||||
import dev.inmo.tgbotapi.utils.throwRangeError
|
||||
import kotlinx.serialization.*
|
||||
|
||||
internal val TextContentMessageResultDeserializer: DeserializationStrategy<ContentMessage<TextContent>>
|
||||
internal val TextContentMessageResultDeserializer: DeserializationStrategy<ChatContentMessage<TextContent>>
|
||||
= TelegramBotAPIMessageDeserializationStrategyClass()
|
||||
|
||||
fun SendTextMessage(
|
||||
@@ -123,9 +124,9 @@ data class SendTextMessage internal constructor(
|
||||
override val replyParameters: ReplyParameters? = null,
|
||||
@SerialName(replyMarkupField)
|
||||
override val replyMarkup: KeyboardMarkup? = null
|
||||
) : SendContentMessageRequest<ContentMessage<TextContent>>,
|
||||
ReplyingMarkupSendMessageRequest<ContentMessage<TextContent>>,
|
||||
TextableSendMessageRequest<ContentMessage<TextContent>>,
|
||||
) : SendContentMessageRequest<ChatContentMessage<TextContent>>,
|
||||
ReplyingMarkupSendMessageRequest<ChatContentMessage<TextContent>>,
|
||||
TextableSendMessageRequest<ChatContentMessage<TextContent>>,
|
||||
LinkPreviewOptionsContainer
|
||||
{
|
||||
override val textSources: TextSourcesList? by lazy {
|
||||
@@ -139,7 +140,7 @@ data class SendTextMessage internal constructor(
|
||||
}
|
||||
|
||||
override fun method(): String = "sendMessage"
|
||||
override val resultDeserializer: DeserializationStrategy<ContentMessage<TextContent>>
|
||||
override val resultDeserializer: DeserializationStrategy<ChatContentMessage<TextContent>>
|
||||
get() = TextContentMessageResultDeserializer
|
||||
override val requestSerializer: SerializationStrategy<*>
|
||||
get() = serializer()
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package dev.inmo.tgbotapi.requests.send
|
||||
|
||||
import dev.inmo.kslog.common.w
|
||||
import dev.inmo.tgbotapi.abstracts.TextedOutput
|
||||
import dev.inmo.tgbotapi.requests.send.abstracts.*
|
||||
import dev.inmo.tgbotapi.types.*
|
||||
@@ -12,6 +13,7 @@ import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.TelegramBotAPIMessageDeserializationStrategyClass
|
||||
import dev.inmo.tgbotapi.types.message.content.TextContent
|
||||
import dev.inmo.tgbotapi.types.message.toRawMessageEntities
|
||||
import dev.inmo.tgbotapi.utils.DefaultKTgBotAPIKSLog
|
||||
import dev.inmo.tgbotapi.utils.extensions.makeString
|
||||
import dev.inmo.tgbotapi.utils.serializers.UnitFromBooleanSerializer
|
||||
import dev.inmo.tgbotapi.utils.throwRangeError
|
||||
@@ -73,8 +75,8 @@ data class SendMessageDraft internal constructor(
|
||||
}
|
||||
|
||||
init {
|
||||
if (text.length !in textLength) {
|
||||
throwRangeError("Text length", textLength, text.length)
|
||||
if (text.length !in draftMessageTextLength) {
|
||||
DefaultKTgBotAPIKSLog.w("For sendMessageDraft it is required to have length of text in range $draftMessageTextLength, but actual length is ${text.length}")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -5,13 +5,14 @@ import dev.inmo.tgbotapi.types.*
|
||||
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
|
||||
import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup
|
||||
import dev.inmo.tgbotapi.types.message.SuggestedPostParameters
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.TelegramBotAPIMessageDeserializationStrategyClass
|
||||
import dev.inmo.tgbotapi.types.message.content.VenueContent
|
||||
import dev.inmo.tgbotapi.types.venue.Venue
|
||||
import kotlinx.serialization.*
|
||||
|
||||
private val commonResultDeserializer: DeserializationStrategy<ContentMessage<VenueContent>>
|
||||
private val commonResultDeserializer: DeserializationStrategy<ChatContentMessage<VenueContent>>
|
||||
= TelegramBotAPIMessageDeserializationStrategyClass()
|
||||
|
||||
@Serializable
|
||||
@@ -58,10 +59,10 @@ data class SendVenue(
|
||||
override val replyParameters: ReplyParameters? = null,
|
||||
@SerialName(replyMarkupField)
|
||||
override val replyMarkup: KeyboardMarkup? = null
|
||||
) : SendContentMessageRequest<ContentMessage<VenueContent>>,
|
||||
PositionedSendMessageRequest<ContentMessage<VenueContent>>,
|
||||
TitledSendMessageRequest<ContentMessage<VenueContent>>,
|
||||
ReplyingMarkupSendMessageRequest<ContentMessage<VenueContent>>
|
||||
) : SendContentMessageRequest<ChatContentMessage<VenueContent>>,
|
||||
ReplyingMarkupSendMessageRequest<ChatContentMessage<VenueContent>>,
|
||||
TitledSendMessageRequest<ChatContentMessage<VenueContent>>,
|
||||
PositionedSendMessageRequest<ChatContentMessage<VenueContent>>
|
||||
{
|
||||
constructor(
|
||||
chatId: ChatIdentifier,
|
||||
@@ -99,7 +100,7 @@ data class SendVenue(
|
||||
)
|
||||
|
||||
override fun method(): String = "sendVenue"
|
||||
override val resultDeserializer: DeserializationStrategy<ContentMessage<VenueContent>>
|
||||
override val resultDeserializer: DeserializationStrategy<ChatContentMessage<VenueContent>>
|
||||
get() = commonResultDeserializer
|
||||
override val requestSerializer: SerializationStrategy<*>
|
||||
get() = serializer()
|
||||
|
||||
@@ -7,12 +7,13 @@ import dev.inmo.tgbotapi.types.*
|
||||
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
|
||||
import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup
|
||||
import dev.inmo.tgbotapi.types.message.SuggestedPostParameters
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.TelegramBotAPIMessageDeserializationStrategyClass
|
||||
import dev.inmo.tgbotapi.types.message.content.GameContent
|
||||
import kotlinx.serialization.*
|
||||
|
||||
private val commonResultDeserializer: DeserializationStrategy<ContentMessage<GameContent>>
|
||||
private val commonResultDeserializer: DeserializationStrategy<ChatContentMessage<GameContent>>
|
||||
= TelegramBotAPIMessageDeserializationStrategyClass()
|
||||
|
||||
@Serializable
|
||||
@@ -45,10 +46,10 @@ data class SendGame (
|
||||
override val replyParameters: ReplyParameters? = null,
|
||||
@SerialName(replyMarkupField)
|
||||
override val replyMarkup: KeyboardMarkup? = null
|
||||
) : SendContentMessageRequest<ContentMessage<GameContent>>,
|
||||
) : SendContentMessageRequest<ChatContentMessage<GameContent>>,
|
||||
WithReplyMarkup {
|
||||
override fun method(): String = "sendGame"
|
||||
override val resultDeserializer: DeserializationStrategy<ContentMessage<GameContent>>
|
||||
override val resultDeserializer: DeserializationStrategy<ChatContentMessage<GameContent>>
|
||||
get() = commonResultDeserializer
|
||||
override val requestSerializer: SerializationStrategy<*>
|
||||
get() = serializer()
|
||||
|
||||
@@ -14,6 +14,7 @@ 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.ChatContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.TelegramBotAPIMessageDeserializationStrategyClass
|
||||
import dev.inmo.tgbotapi.types.message.content.AnimationContent
|
||||
@@ -44,7 +45,7 @@ fun SendAnimation(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): Request<ContentMessage<AnimationContent>> {
|
||||
): Request<ChatContentMessage<AnimationContent>> {
|
||||
val animationAsFile = animation as? MultipartFile
|
||||
val thumbAsFile = thumbnail as? MultipartFile
|
||||
|
||||
@@ -102,7 +103,7 @@ fun SendAnimation(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): Request<ContentMessage<AnimationContent>> {
|
||||
): Request<ChatContentMessage<AnimationContent>> {
|
||||
val animationAsFile = animation as? MultipartFile
|
||||
val thumbAsFile = thumbnail as? MultipartFile
|
||||
|
||||
@@ -140,7 +141,7 @@ fun SendAnimation(
|
||||
}
|
||||
}
|
||||
|
||||
private val commonResultDeserializer: DeserializationStrategy<ContentMessage<AnimationContent>>
|
||||
private val commonResultDeserializer: DeserializationStrategy<ChatContentMessage<AnimationContent>>
|
||||
= TelegramBotAPIMessageDeserializationStrategyClass()
|
||||
|
||||
@ConsistentCopyVisibility
|
||||
@@ -192,14 +193,14 @@ data class SendAnimationData internal constructor(
|
||||
override val replyParameters: ReplyParameters? = null,
|
||||
@SerialName(replyMarkupField)
|
||||
override val replyMarkup: KeyboardMarkup? = null
|
||||
) : DataRequest<ContentMessage<AnimationContent>>,
|
||||
SendContentMessageRequest<ContentMessage<AnimationContent>>,
|
||||
ReplyingMarkupSendMessageRequest<ContentMessage<AnimationContent>>,
|
||||
TextableSendMessageRequest<ContentMessage<AnimationContent>>,
|
||||
ThumbedSendMessageRequest<ContentMessage<AnimationContent>>,
|
||||
DuratedSendMessageRequest<ContentMessage<AnimationContent>>,
|
||||
SizedSendMessageRequest<ContentMessage<AnimationContent>>,
|
||||
WithCustomizableCaptionRequest<ContentMessage<AnimationContent>>,
|
||||
) : DataRequest<ChatContentMessage<AnimationContent>>,
|
||||
SendContentMessageRequest<ChatContentMessage<AnimationContent>>,
|
||||
ReplyingMarkupSendMessageRequest<ChatContentMessage<AnimationContent>>,
|
||||
TextableSendMessageRequest<ChatContentMessage<AnimationContent>>,
|
||||
ThumbedSendMessageRequest<ChatContentMessage<AnimationContent>>,
|
||||
DuratedSendMessageRequest<ChatContentMessage<AnimationContent>>,
|
||||
SizedSendMessageRequest<ChatContentMessage<AnimationContent>>,
|
||||
WithCustomizableCaptionRequest<ChatContentMessage<AnimationContent>>,
|
||||
OptionallyWithSpoilerRequest
|
||||
{
|
||||
override val textSources: TextSourcesList? by lazy {
|
||||
@@ -215,7 +216,7 @@ data class SendAnimationData internal constructor(
|
||||
}
|
||||
|
||||
override fun method(): String = "sendAnimation"
|
||||
override val resultDeserializer: DeserializationStrategy<ContentMessage<AnimationContent>>
|
||||
override val resultDeserializer: DeserializationStrategy<ChatContentMessage<AnimationContent>>
|
||||
get() = commonResultDeserializer
|
||||
override val requestSerializer: SerializationStrategy<*>
|
||||
get() = serializer()
|
||||
|
||||
@@ -15,6 +15,7 @@ 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.ChatContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.TelegramBotAPIMessageDeserializationStrategyClass
|
||||
import dev.inmo.tgbotapi.types.message.content.AudioContent
|
||||
@@ -43,7 +44,7 @@ fun SendAudio(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): Request<ContentMessage<AudioContent>> {
|
||||
): Request<ChatContentMessage<AudioContent>> {
|
||||
val audioAsFile = audio as? MultipartFile
|
||||
val thumbAsFile = thumbnail as? MultipartFile
|
||||
|
||||
@@ -97,7 +98,7 @@ fun SendAudio(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): Request<ContentMessage<AudioContent>> {
|
||||
): Request<ChatContentMessage<AudioContent>> {
|
||||
val audioAsFile = audio as? MultipartFile
|
||||
val thumbAsFile = thumbnail as? MultipartFile
|
||||
|
||||
@@ -133,7 +134,7 @@ fun SendAudio(
|
||||
}
|
||||
}
|
||||
|
||||
private val commonResultDeserializer: DeserializationStrategy<ContentMessage<AudioContent>>
|
||||
private val commonResultDeserializer: DeserializationStrategy<ChatContentMessage<AudioContent>>
|
||||
= TelegramBotAPIMessageDeserializationStrategyClass()
|
||||
|
||||
@ConsistentCopyVisibility
|
||||
@@ -181,13 +182,13 @@ data class SendAudioData internal constructor(
|
||||
override val replyParameters: ReplyParameters? = null,
|
||||
@SerialName(replyMarkupField)
|
||||
override val replyMarkup: KeyboardMarkup? = null
|
||||
) : DataRequest<ContentMessage<AudioContent>>,
|
||||
SendContentMessageRequest<ContentMessage<AudioContent>>,
|
||||
ReplyingMarkupSendMessageRequest<ContentMessage<AudioContent>>,
|
||||
TextableSendMessageRequest<ContentMessage<AudioContent>>,
|
||||
ThumbedSendMessageRequest<ContentMessage<AudioContent>>,
|
||||
TitledSendMessageRequest<ContentMessage<AudioContent>>,
|
||||
DuratedSendMessageRequest<ContentMessage<AudioContent>>,
|
||||
) : DataRequest<ChatContentMessage<AudioContent>>,
|
||||
SendContentMessageRequest<ChatContentMessage<AudioContent>>,
|
||||
ReplyingMarkupSendMessageRequest<ChatContentMessage<AudioContent>>,
|
||||
TextableSendMessageRequest<ChatContentMessage<AudioContent>>,
|
||||
ThumbedSendMessageRequest<ChatContentMessage<AudioContent>>,
|
||||
TitledSendMessageRequest<ChatContentMessage<AudioContent>>,
|
||||
DuratedSendMessageRequest<ChatContentMessage<AudioContent>>,
|
||||
Performerable
|
||||
{
|
||||
override val textSources: List<TextSource>? by lazy {
|
||||
@@ -203,7 +204,7 @@ data class SendAudioData internal constructor(
|
||||
}
|
||||
|
||||
override fun method(): String = "sendAudio"
|
||||
override val resultDeserializer: DeserializationStrategy<ContentMessage<AudioContent>>
|
||||
override val resultDeserializer: DeserializationStrategy<ChatContentMessage<AudioContent>>
|
||||
get() = commonResultDeserializer
|
||||
override val requestSerializer: SerializationStrategy<*>
|
||||
get() = serializer()
|
||||
|
||||
@@ -14,6 +14,7 @@ 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.ChatContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.TelegramBotAPIMessageDeserializationStrategyClass
|
||||
import dev.inmo.tgbotapi.types.message.content.DocumentContent
|
||||
@@ -49,7 +50,7 @@ fun SendDocument(
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null,
|
||||
disableContentTypeDetection: Boolean? = null
|
||||
): Request<ContentMessage<DocumentContent>> {
|
||||
): Request<ChatContentMessage<DocumentContent>> {
|
||||
val documentAsFile = document as? MultipartFile
|
||||
val thumbAsFile = thumbnail as? MultipartFile
|
||||
|
||||
@@ -108,7 +109,7 @@ fun SendDocument(
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null,
|
||||
disableContentTypeDetection: Boolean? = null
|
||||
): Request<ContentMessage<DocumentContent>> {
|
||||
): Request<ChatContentMessage<DocumentContent>> {
|
||||
val documentAsFile = document as? MultipartFile
|
||||
val thumbAsFile = thumbnail as? MultipartFile
|
||||
|
||||
@@ -142,7 +143,7 @@ fun SendDocument(
|
||||
}
|
||||
}
|
||||
|
||||
private val commonResultDeserializer: DeserializationStrategy<ContentMessage<DocumentContent>>
|
||||
private val commonResultDeserializer: DeserializationStrategy<ChatContentMessage<DocumentContent>>
|
||||
= TelegramBotAPIMessageDeserializationStrategyClass()
|
||||
|
||||
/**
|
||||
@@ -195,11 +196,11 @@ data class SendDocumentData internal constructor(
|
||||
override val replyMarkup: KeyboardMarkup? = null,
|
||||
@SerialName(disableContentTypeDetectionField)
|
||||
val disableContentTypeDetection: Boolean? = null
|
||||
) : DataRequest<ContentMessage<DocumentContent>>,
|
||||
SendContentMessageRequest<ContentMessage<DocumentContent>>,
|
||||
ReplyingMarkupSendMessageRequest<ContentMessage<DocumentContent>>,
|
||||
TextableSendMessageRequest<ContentMessage<DocumentContent>>,
|
||||
ThumbedSendMessageRequest<ContentMessage<DocumentContent>>
|
||||
) : DataRequest<ChatContentMessage<DocumentContent>>,
|
||||
SendContentMessageRequest<ChatContentMessage<DocumentContent>>,
|
||||
ReplyingMarkupSendMessageRequest<ChatContentMessage<DocumentContent>>,
|
||||
TextableSendMessageRequest<ChatContentMessage<DocumentContent>>,
|
||||
ThumbedSendMessageRequest<ChatContentMessage<DocumentContent>>
|
||||
{
|
||||
override val textSources: TextSourcesList? by lazy {
|
||||
rawEntities ?.asTextSources(text ?: return@lazy null)
|
||||
@@ -214,7 +215,7 @@ data class SendDocumentData internal constructor(
|
||||
}
|
||||
|
||||
override fun method(): String = "sendDocument"
|
||||
override val resultDeserializer: DeserializationStrategy<ContentMessage<DocumentContent>>
|
||||
override val resultDeserializer: DeserializationStrategy<ChatContentMessage<DocumentContent>>
|
||||
get() = commonResultDeserializer
|
||||
override val requestSerializer: SerializationStrategy<*>
|
||||
get() = serializer()
|
||||
|
||||
@@ -0,0 +1,212 @@
|
||||
@file:Suppress("FunctionName")
|
||||
|
||||
package dev.inmo.tgbotapi.requests.send.media
|
||||
|
||||
import dev.inmo.tgbotapi.requests.abstracts.*
|
||||
import dev.inmo.tgbotapi.requests.common.CommonMultipartFileRequest
|
||||
import dev.inmo.tgbotapi.requests.send.abstracts.*
|
||||
import dev.inmo.tgbotapi.requests.send.media.base.*
|
||||
import dev.inmo.tgbotapi.types.*
|
||||
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
|
||||
import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup
|
||||
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.message.*
|
||||
import dev.inmo.tgbotapi.types.message.RawMessageEntity
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.TelegramBotAPIMessageDeserializationStrategyClass
|
||||
import dev.inmo.tgbotapi.types.message.content.LivePhotoContent
|
||||
import dev.inmo.tgbotapi.types.message.toRawMessageEntities
|
||||
import dev.inmo.tgbotapi.utils.extensions.makeString
|
||||
import dev.inmo.tgbotapi.utils.mapOfNotNull
|
||||
import dev.inmo.tgbotapi.utils.throwRangeError
|
||||
import kotlinx.serialization.*
|
||||
|
||||
fun SendLivePhoto(
|
||||
chatId: ChatIdentifier,
|
||||
livePhoto: InputFile,
|
||||
photo: InputFile,
|
||||
text: String? = null,
|
||||
parseMode: ParseMode? = null,
|
||||
showCaptionAboveMedia: Boolean = false,
|
||||
spoilered: Boolean = false,
|
||||
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
|
||||
): Request<ChatContentMessage<LivePhotoContent>> {
|
||||
val livePhotoAsFile = livePhoto as? MultipartFile
|
||||
val photoAsFile = photo as? MultipartFile
|
||||
|
||||
val data = SendLivePhotoData(
|
||||
chatId = chatId,
|
||||
livePhoto = livePhoto,
|
||||
photo = photo,
|
||||
text = text,
|
||||
parseMode = parseMode,
|
||||
rawEntities = null,
|
||||
showCaptionAboveMedia = showCaptionAboveMedia,
|
||||
spoilered = spoilered,
|
||||
threadId = threadId,
|
||||
directMessageThreadId = directMessageThreadId,
|
||||
businessConnectionId = businessConnectionId,
|
||||
disableNotification = disableNotification,
|
||||
protectContent = protectContent,
|
||||
allowPaidBroadcast = allowPaidBroadcast,
|
||||
effectId = effectId,
|
||||
suggestedPostParameters = suggestedPostParameters,
|
||||
replyParameters = replyParameters,
|
||||
replyMarkup = replyMarkup
|
||||
)
|
||||
|
||||
return if (livePhotoAsFile == null && photoAsFile == null) {
|
||||
data
|
||||
} else {
|
||||
CommonMultipartFileRequest(
|
||||
data,
|
||||
listOfNotNull(livePhotoAsFile, photoAsFile).associateBy { it.fileId }
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
fun SendLivePhoto(
|
||||
chatId: ChatIdentifier,
|
||||
livePhoto: InputFile,
|
||||
photo: InputFile,
|
||||
entities: TextSourcesList,
|
||||
showCaptionAboveMedia: Boolean = false,
|
||||
spoilered: Boolean = false,
|
||||
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
|
||||
): Request<ChatContentMessage<LivePhotoContent>> {
|
||||
val livePhotoAsFile = livePhoto as? MultipartFile
|
||||
val photoAsFile = photo as? MultipartFile
|
||||
|
||||
val data = SendLivePhotoData(
|
||||
chatId = chatId,
|
||||
livePhoto = livePhoto,
|
||||
photo = photo,
|
||||
text = entities.makeString(),
|
||||
parseMode = null,
|
||||
rawEntities = entities.toRawMessageEntities(),
|
||||
showCaptionAboveMedia = showCaptionAboveMedia,
|
||||
spoilered = spoilered,
|
||||
threadId = threadId,
|
||||
directMessageThreadId = directMessageThreadId,
|
||||
businessConnectionId = businessConnectionId,
|
||||
disableNotification = disableNotification,
|
||||
protectContent = protectContent,
|
||||
allowPaidBroadcast = allowPaidBroadcast,
|
||||
effectId = effectId,
|
||||
suggestedPostParameters = suggestedPostParameters,
|
||||
replyParameters = replyParameters,
|
||||
replyMarkup = replyMarkup
|
||||
)
|
||||
|
||||
return if (livePhotoAsFile == null && photoAsFile == null) {
|
||||
data
|
||||
} else {
|
||||
CommonMultipartFileRequest(
|
||||
data,
|
||||
listOfNotNull(livePhotoAsFile, photoAsFile).associateBy { it.fileId }
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
private val commonResultDeserializer: DeserializationStrategy<ChatContentMessage<LivePhotoContent>>
|
||||
= TelegramBotAPIMessageDeserializationStrategyClass()
|
||||
|
||||
@ConsistentCopyVisibility
|
||||
@Serializable
|
||||
data class SendLivePhotoData internal constructor(
|
||||
@SerialName(chatIdField)
|
||||
override val chatId: ChatIdentifier,
|
||||
@SerialName(livePhotoField)
|
||||
val livePhoto: InputFile,
|
||||
@SerialName(photoField)
|
||||
val photo: InputFile,
|
||||
@SerialName(captionField)
|
||||
override val text: String? = null,
|
||||
@SerialName(parseModeField)
|
||||
override val parseMode: ParseMode? = null,
|
||||
@SerialName(captionEntitiesField)
|
||||
private val rawEntities: List<RawMessageEntity>? = null,
|
||||
@SerialName(showCaptionAboveMediaField)
|
||||
override val showCaptionAboveMedia: Boolean = false,
|
||||
@SerialName(hasSpoilerField)
|
||||
override val spoilered: Boolean = false,
|
||||
@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(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
|
||||
) : DataRequest<ChatContentMessage<LivePhotoContent>>,
|
||||
SendContentMessageRequest<ChatContentMessage<LivePhotoContent>>,
|
||||
ReplyingMarkupSendMessageRequest<ChatContentMessage<LivePhotoContent>>,
|
||||
TextableSendMessageRequest<ChatContentMessage<LivePhotoContent>>,
|
||||
WithCustomizableCaptionRequest<ChatContentMessage<LivePhotoContent>>,
|
||||
OptionallyWithSpoilerRequest
|
||||
{
|
||||
override val textSources: TextSourcesList? by lazy {
|
||||
rawEntities ?.asTextSources(text ?: return@lazy null)
|
||||
}
|
||||
|
||||
init {
|
||||
text ?.let {
|
||||
if (it.length !in captionLength) {
|
||||
throwRangeError("Caption length", captionLength, it.length)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun method(): String = "sendLivePhoto"
|
||||
override val resultDeserializer: DeserializationStrategy<ChatContentMessage<LivePhotoContent>>
|
||||
get() = commonResultDeserializer
|
||||
override val requestSerializer: SerializationStrategy<*>
|
||||
get() = serializer()
|
||||
}
|
||||
|
||||
@Suppress("unused")
|
||||
@ConsistentCopyVisibility
|
||||
data class SendLivePhotoFiles internal constructor(
|
||||
val livePhoto: MultipartFile? = null,
|
||||
val photo: MultipartFile? = null
|
||||
) : Files by mapOfNotNull(
|
||||
livePhotoField to livePhoto,
|
||||
photoField to photo
|
||||
)
|
||||
@@ -11,8 +11,9 @@ import dev.inmo.tgbotapi.types.*
|
||||
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
|
||||
import dev.inmo.tgbotapi.types.media.*
|
||||
import dev.inmo.tgbotapi.types.message.SuggestedPostParameters
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.CommonContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.PossiblySentViaBotCommonMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.TelegramBotAPIMessageDeserializeOnlySerializerClass
|
||||
import dev.inmo.tgbotapi.types.message.content.MediaGroupPartContent
|
||||
import dev.inmo.tgbotapi.types.message.content.VisualMediaGroupPartContent
|
||||
@@ -44,7 +45,7 @@ fun <T : MediaGroupPartContent> SendMediaGroup(
|
||||
effectId: EffectId? = null,
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null
|
||||
): Request<ContentMessage<MediaGroupContent<T>>> {
|
||||
): Request<ChatContentMessage<MediaGroupContent<T>>> {
|
||||
if (media.size !in mediaCountInMediaGroup) {
|
||||
throwRangeError("Count of members in media group", mediaCountInMediaGroup, media.size)
|
||||
}
|
||||
@@ -87,7 +88,7 @@ fun <T : MediaGroupPartContent> SendMediaGroup(
|
||||
data,
|
||||
files.associateBy { it.fileId }
|
||||
)
|
||||
}) as Request<ContentMessage<MediaGroupContent<T>>>
|
||||
}) as Request<ChatContentMessage<MediaGroupContent<T>>>
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -187,16 +188,16 @@ inline fun SendVisualMediaGroup(
|
||||
replyParameters = replyParameters
|
||||
)
|
||||
|
||||
private object MessagesListSerializer: KSerializer<PossiblySentViaBotCommonMessage<MediaGroupContent<MediaGroupPartContent>>> {
|
||||
private val serializer = ListSerializer(TelegramBotAPIMessageDeserializeOnlySerializerClass<PossiblySentViaBotCommonMessage<MediaGroupPartContent>>())
|
||||
private object MessagesListSerializer: KSerializer<CommonContentMessage<MediaGroupContent<MediaGroupPartContent>>> {
|
||||
private val serializer = ListSerializer(TelegramBotAPIMessageDeserializeOnlySerializerClass<CommonContentMessage<MediaGroupPartContent>>())
|
||||
override val descriptor: SerialDescriptor = serializer.descriptor
|
||||
|
||||
override fun deserialize(decoder: Decoder): PossiblySentViaBotCommonMessage<MediaGroupContent<MediaGroupPartContent>> {
|
||||
override fun deserialize(decoder: Decoder): CommonContentMessage<MediaGroupContent<MediaGroupPartContent>> {
|
||||
val messages = serializer.deserialize(decoder)
|
||||
return messages.asMediaGroupMessage()
|
||||
}
|
||||
|
||||
override fun serialize(encoder: Encoder, value: PossiblySentViaBotCommonMessage<MediaGroupContent<MediaGroupPartContent>>) {
|
||||
override fun serialize(encoder: Encoder, value: CommonContentMessage<MediaGroupContent<MediaGroupPartContent>>) {
|
||||
serializer.serialize(encoder, value.content.group.map { it.sourceMessage })
|
||||
}
|
||||
|
||||
@@ -230,8 +231,8 @@ data class SendMediaGroupData internal constructor(
|
||||
override val suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
@SerialName(replyParametersField)
|
||||
override val replyParameters: ReplyParameters? = null,
|
||||
) : DataRequest<PossiblySentViaBotCommonMessage<MediaGroupContent<MediaGroupPartContent>>>,
|
||||
SendContentMessageRequest<PossiblySentViaBotCommonMessage<MediaGroupContent<MediaGroupPartContent>>> {
|
||||
) : DataRequest<CommonContentMessage<MediaGroupContent<MediaGroupPartContent>>>,
|
||||
SendContentMessageRequest<CommonContentMessage<MediaGroupContent<MediaGroupPartContent>>> {
|
||||
@Suppress("unused")
|
||||
@SerialName(mediaField)
|
||||
private val convertedMedia: String
|
||||
@@ -245,7 +246,7 @@ data class SendMediaGroupData internal constructor(
|
||||
override fun method(): String = "sendMediaGroup"
|
||||
override val requestSerializer: SerializationStrategy<*>
|
||||
get() = serializer()
|
||||
override val resultDeserializer: DeserializationStrategy<PossiblySentViaBotCommonMessage<MediaGroupContent<MediaGroupPartContent>>>
|
||||
override val resultDeserializer: DeserializationStrategy<CommonContentMessage<MediaGroupContent<MediaGroupPartContent>>>
|
||||
get() = MessagesListSerializer
|
||||
}
|
||||
|
||||
|
||||
@@ -18,6 +18,7 @@ import dev.inmo.tgbotapi.types.media.CoveredTelegramMedia
|
||||
import dev.inmo.tgbotapi.types.media.ThumbedTelegramMedia
|
||||
import dev.inmo.tgbotapi.types.message.*
|
||||
import dev.inmo.tgbotapi.types.message.RawMessageEntity
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.TelegramBotAPIMessageDeserializationStrategyClass
|
||||
import dev.inmo.tgbotapi.types.message.toRawMessageEntities
|
||||
@@ -42,7 +43,7 @@ fun SendPaidMedia(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): Request<ContentMessage<PaidMediaInfoContent>> {
|
||||
): Request<ChatContentMessage<PaidMediaInfoContent>> {
|
||||
val data = SendPaidMediaData(
|
||||
chatId = chatId,
|
||||
starCount = starCount,
|
||||
@@ -105,7 +106,7 @@ fun SendPaidMedia(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): Request<ContentMessage<PaidMediaInfoContent>> {
|
||||
): Request<ChatContentMessage<PaidMediaInfoContent>> {
|
||||
val data = SendPaidMediaData(
|
||||
chatId = chatId,
|
||||
starCount = starCount,
|
||||
@@ -152,7 +153,7 @@ fun SendPaidMedia(
|
||||
}
|
||||
}
|
||||
|
||||
private val commonResultDeserializer: DeserializationStrategy<ContentMessage<PaidMediaInfoContent>>
|
||||
private val commonResultDeserializer: DeserializationStrategy<ChatContentMessage<PaidMediaInfoContent>>
|
||||
= TelegramBotAPIMessageDeserializationStrategyClass()
|
||||
|
||||
@ConsistentCopyVisibility
|
||||
@@ -197,11 +198,11 @@ data class SendPaidMediaData internal constructor(
|
||||
override val replyParameters: ReplyParameters? = null,
|
||||
@SerialName(replyMarkupField)
|
||||
override val replyMarkup: KeyboardMarkup? = null
|
||||
) : DataRequest<ContentMessage<PaidMediaInfoContent>>,
|
||||
SendContentMessageRequest<ContentMessage<PaidMediaInfoContent>>,
|
||||
ReplyingMarkupSendMessageRequest<ContentMessage<PaidMediaInfoContent>>,
|
||||
TextableSendMessageRequest<ContentMessage<PaidMediaInfoContent>>,
|
||||
WithCustomizableCaptionRequest<ContentMessage<PaidMediaInfoContent>>
|
||||
) : DataRequest<ChatContentMessage<PaidMediaInfoContent>>,
|
||||
SendContentMessageRequest<ChatContentMessage<PaidMediaInfoContent>>,
|
||||
ReplyingMarkupSendMessageRequest<ChatContentMessage<PaidMediaInfoContent>>,
|
||||
TextableSendMessageRequest<ChatContentMessage<PaidMediaInfoContent>>,
|
||||
WithCustomizableCaptionRequest<ChatContentMessage<PaidMediaInfoContent>>
|
||||
{
|
||||
override val textSources: TextSourcesList? by lazy {
|
||||
rawEntities ?.asTextSources(text ?: return@lazy null)
|
||||
@@ -218,7 +219,7 @@ data class SendPaidMediaData internal constructor(
|
||||
}
|
||||
|
||||
override fun method(): String = "sendPaidMedia"
|
||||
override val resultDeserializer: DeserializationStrategy<ContentMessage<PaidMediaInfoContent>>
|
||||
override val resultDeserializer: DeserializationStrategy<ChatContentMessage<PaidMediaInfoContent>>
|
||||
get() = commonResultDeserializer
|
||||
override val requestSerializer: SerializationStrategy<*>
|
||||
get() = serializer()
|
||||
|
||||
@@ -14,6 +14,7 @@ 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.ChatContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.TelegramBotAPIMessageDeserializationStrategyClass
|
||||
import dev.inmo.tgbotapi.types.message.content.PhotoContent
|
||||
@@ -39,7 +40,7 @@ fun SendPhoto(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): Request<ContentMessage<PhotoContent>> {
|
||||
): Request<ChatContentMessage<PhotoContent>> {
|
||||
val data = SendPhotoData(
|
||||
chatId = chatId,
|
||||
photo = photo,
|
||||
@@ -85,7 +86,7 @@ fun SendPhoto(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): Request<ContentMessage<PhotoContent>> {
|
||||
): Request<ChatContentMessage<PhotoContent>> {
|
||||
val data = SendPhotoData(
|
||||
chatId = chatId,
|
||||
photo = photo,
|
||||
@@ -116,7 +117,7 @@ fun SendPhoto(
|
||||
}
|
||||
}
|
||||
|
||||
private val commonResultDeserializer: DeserializationStrategy<ContentMessage<PhotoContent>>
|
||||
private val commonResultDeserializer: DeserializationStrategy<ChatContentMessage<PhotoContent>>
|
||||
= TelegramBotAPIMessageDeserializationStrategyClass()
|
||||
|
||||
@ConsistentCopyVisibility
|
||||
@@ -160,11 +161,11 @@ data class SendPhotoData internal constructor(
|
||||
override val replyParameters: ReplyParameters? = null,
|
||||
@SerialName(replyMarkupField)
|
||||
override val replyMarkup: KeyboardMarkup? = null
|
||||
) : DataRequest<ContentMessage<PhotoContent>>,
|
||||
SendContentMessageRequest<ContentMessage<PhotoContent>>,
|
||||
ReplyingMarkupSendMessageRequest<ContentMessage<PhotoContent>>,
|
||||
TextableSendMessageRequest<ContentMessage<PhotoContent>>,
|
||||
WithCustomizableCaptionRequest<ContentMessage<PhotoContent>>,
|
||||
) : DataRequest<ChatContentMessage<PhotoContent>>,
|
||||
SendContentMessageRequest<ChatContentMessage<PhotoContent>>,
|
||||
ReplyingMarkupSendMessageRequest<ChatContentMessage<PhotoContent>>,
|
||||
TextableSendMessageRequest<ChatContentMessage<PhotoContent>>,
|
||||
WithCustomizableCaptionRequest<ChatContentMessage<PhotoContent>>,
|
||||
OptionallyWithSpoilerRequest
|
||||
{
|
||||
override val textSources: TextSourcesList? by lazy {
|
||||
@@ -180,7 +181,7 @@ data class SendPhotoData internal constructor(
|
||||
}
|
||||
|
||||
override fun method(): String = "sendPhoto"
|
||||
override val resultDeserializer: DeserializationStrategy<ContentMessage<PhotoContent>>
|
||||
override val resultDeserializer: DeserializationStrategy<ChatContentMessage<PhotoContent>>
|
||||
get() = commonResultDeserializer
|
||||
override val requestSerializer: SerializationStrategy<*>
|
||||
get() = serializer()
|
||||
|
||||
@@ -9,6 +9,7 @@ import dev.inmo.tgbotapi.types.*
|
||||
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
|
||||
import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup
|
||||
import dev.inmo.tgbotapi.types.message.SuggestedPostParameters
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.TelegramBotAPIMessageDeserializationStrategyClass
|
||||
import dev.inmo.tgbotapi.types.message.content.StickerContent
|
||||
@@ -29,7 +30,7 @@ fun SendSticker(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): Request<ContentMessage<StickerContent>> = SendStickerByFileId(
|
||||
): Request<ChatContentMessage<StickerContent>> = SendStickerByFileId(
|
||||
chatId = chatId,
|
||||
sticker = sticker,
|
||||
threadId = threadId,
|
||||
@@ -53,7 +54,7 @@ fun SendSticker(
|
||||
}
|
||||
}
|
||||
|
||||
private val commonResultDeserializer: DeserializationStrategy<ContentMessage<StickerContent>>
|
||||
private val commonResultDeserializer: DeserializationStrategy<ChatContentMessage<StickerContent>>
|
||||
= TelegramBotAPIMessageDeserializationStrategyClass()
|
||||
|
||||
@ConsistentCopyVisibility
|
||||
@@ -89,9 +90,9 @@ data class SendStickerByFileId internal constructor(
|
||||
override val replyParameters: ReplyParameters? = null,
|
||||
@SerialName(replyMarkupField)
|
||||
override val replyMarkup: KeyboardMarkup? = null
|
||||
) : SendContentMessageRequest<ContentMessage<StickerContent>>, ReplyingMarkupSendMessageRequest<ContentMessage<StickerContent>> {
|
||||
) : SendContentMessageRequest<ChatContentMessage<StickerContent>>, ReplyingMarkupSendMessageRequest<ChatContentMessage<StickerContent>> {
|
||||
override fun method(): String = "sendSticker"
|
||||
override val resultDeserializer: DeserializationStrategy<ContentMessage<StickerContent>>
|
||||
override val resultDeserializer: DeserializationStrategy<ChatContentMessage<StickerContent>>
|
||||
get() = commonResultDeserializer
|
||||
override val requestSerializer: SerializationStrategy<*>
|
||||
get() = serializer()
|
||||
|
||||
@@ -16,6 +16,7 @@ import dev.inmo.tgbotapi.types.buttons.KeyboardMarkup
|
||||
import dev.inmo.tgbotapi.types.media.OptionallyStreamable
|
||||
import dev.inmo.tgbotapi.types.message.*
|
||||
import dev.inmo.tgbotapi.types.message.RawMessageEntity
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.TelegramBotAPIMessageDeserializationStrategyClass
|
||||
import dev.inmo.tgbotapi.types.message.content.VideoContent
|
||||
@@ -49,7 +50,7 @@ fun SendVideo(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): Request<ContentMessage<VideoContent>> {
|
||||
): Request<ChatContentMessage<VideoContent>> {
|
||||
val videoAsFile = video as? MultipartFile
|
||||
val thumbAsFile = thumbnail as? MultipartFile
|
||||
val coverAsFile = cover as? MultipartFile
|
||||
@@ -114,7 +115,7 @@ fun SendVideo(
|
||||
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||
replyParameters: ReplyParameters? = null,
|
||||
replyMarkup: KeyboardMarkup? = null
|
||||
): Request<ContentMessage<VideoContent>> {
|
||||
): Request<ChatContentMessage<VideoContent>> {
|
||||
val videoAsFile = video as? MultipartFile
|
||||
val thumbAsFile = thumbnail as? MultipartFile
|
||||
val coverAsFile = cover as? MultipartFile
|
||||
@@ -156,7 +157,7 @@ fun SendVideo(
|
||||
}
|
||||
}
|
||||
|
||||
private val commonResultDeserializer: DeserializationStrategy<ContentMessage<VideoContent>>
|
||||
private val commonResultDeserializer: DeserializationStrategy<ChatContentMessage<VideoContent>>
|
||||
= TelegramBotAPIMessageDeserializationStrategyClass()
|
||||
|
||||
@ConsistentCopyVisibility
|
||||
@@ -214,15 +215,15 @@ data class SendVideoData internal constructor(
|
||||
override val replyParameters: ReplyParameters? = null,
|
||||
@SerialName(replyMarkupField)
|
||||
override val replyMarkup: KeyboardMarkup? = null
|
||||
) : DataRequest<ContentMessage<VideoContent>>,
|
||||
SendContentMessageRequest<ContentMessage<VideoContent>>,
|
||||
ReplyingMarkupSendMessageRequest<ContentMessage<VideoContent>>,
|
||||
TextableSendMessageRequest<ContentMessage<VideoContent>>,
|
||||
ThumbedSendMessageRequest<ContentMessage<VideoContent>>,
|
||||
DuratedSendMessageRequest<ContentMessage<VideoContent>>,
|
||||
SizedSendMessageRequest<ContentMessage<VideoContent>>,
|
||||
WithCustomizableCaptionRequest<ContentMessage<VideoContent>>,
|
||||
CoveredSendMessageRequest<ContentMessage<VideoContent>>,
|
||||
) : DataRequest<ChatContentMessage<VideoContent>>,
|
||||
SendContentMessageRequest<ChatContentMessage<VideoContent>>,
|
||||
ReplyingMarkupSendMessageRequest<ChatContentMessage<VideoContent>>,
|
||||
TextableSendMessageRequest<ChatContentMessage<VideoContent>>,
|
||||
ThumbedSendMessageRequest<ChatContentMessage<VideoContent>>,
|
||||
DuratedSendMessageRequest<ChatContentMessage<VideoContent>>,
|
||||
SizedSendMessageRequest<ChatContentMessage<VideoContent>>,
|
||||
WithCustomizableCaptionRequest<ChatContentMessage<VideoContent>>,
|
||||
CoveredSendMessageRequest<ChatContentMessage<VideoContent>>,
|
||||
WithCustomStartMediaData,
|
||||
OptionallyWithSpoilerRequest,
|
||||
OptionallyStreamable
|
||||
@@ -240,7 +241,7 @@ data class SendVideoData internal constructor(
|
||||
}
|
||||
|
||||
override fun method(): String = "sendVideo"
|
||||
override val resultDeserializer: DeserializationStrategy<ContentMessage<VideoContent>>
|
||||
override val resultDeserializer: DeserializationStrategy<ChatContentMessage<VideoContent>>
|
||||
get() = commonResultDeserializer
|
||||
override val requestSerializer: SerializationStrategy<*>
|
||||
get() = serializer()
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user