mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI.git
synced 2024-12-23 00:57:13 +00:00
Merge pull request #669 from madhead/feature/initial-filters
Add `hasCommands` / `hasNoCommands` extensions on `CommonMessage`
This commit is contained in:
commit
70984424e3
@ -1,5 +1,10 @@
|
||||
# TelegramBotAPI changelog
|
||||
|
||||
## 3.4.0
|
||||
|
||||
* `Utils`:
|
||||
* New extensions on `CommonMessage`: `hasCommands` and `hasNoCommands`. Useful for the `initialFilter` parameter in behaviour builder triggers.
|
||||
|
||||
## 3.3.0
|
||||
|
||||
**THIS VERSION CONTAINS UPGRADE KOTLIN (AND ALL RELATED LIBRARIES) UP TO 1.7.20**
|
||||
|
@ -0,0 +1,42 @@
|
||||
package dev.inmo.tgbotapi.extensions.utils.updates
|
||||
|
||||
import dev.inmo.tgbotapi.extensions.utils.botCommandTextSourceOrNull
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.CommonMessage
|
||||
import dev.inmo.tgbotapi.types.message.content.TextContent
|
||||
|
||||
/**
|
||||
* A predicate to test whether a message contains any commands in its body.
|
||||
* Use it as the `initialFilter` parameter in behaviour builder triggers.
|
||||
* E.g.
|
||||
*
|
||||
* ```kotlin
|
||||
* onContentMessage(
|
||||
* initialFilter = CommonMessage<MessageContent>::hasCommands
|
||||
* ) {
|
||||
* // the message contains at least one command here
|
||||
* }
|
||||
* ```
|
||||
*
|
||||
* @return true if this [CommonMessage] contains any commands. False otherwise.
|
||||
* @see hasNoCommands
|
||||
*/
|
||||
fun CommonMessage<*>.hasCommands(): Boolean =
|
||||
(this.content as? TextContent)?.textSources?.any { it.botCommandTextSourceOrNull() != null } ?: false
|
||||
|
||||
/**
|
||||
* A predicate to test whether a message contains any commands in its body.
|
||||
* Use it as the `initialFilter` parameter in behaviour builder triggers.
|
||||
* E.g.
|
||||
*
|
||||
* ```kotlin
|
||||
* onContentMessage(
|
||||
* initialFilter = CommonMessage<MessageContent>::hasNoCommands
|
||||
* ) {
|
||||
* // the message contains no commands here
|
||||
* }
|
||||
* ```
|
||||
*
|
||||
* @return true if this [CommonMessage] does not contain any commands. False otherwise.
|
||||
* @see hasCommands
|
||||
*/
|
||||
fun CommonMessage<*>.hasNoCommands(): Boolean = !this.hasCommands()
|
Loading…
Reference in New Issue
Block a user