1
0
mirror of https://github.com/InsanusMokrassar/TelegramBotAPI.git synced 2024-11-25 19:48:43 +00:00

Merge pull request #92 from InsanusMokrassar/0.27.7

0.27.7
This commit is contained in:
InsanusMokrassar 2020-06-26 17:50:05 +06:00 committed by GitHub
commit 36d30ef91b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 57 additions and 2 deletions

4
.github/labeler.yml vendored
View File

@ -4,4 +4,6 @@ core: "TelegramBotAPI/**" # currently not work
code: "**/*.kt" code: "**/*.kt"
gradle: "**/*.gradle" gradle: "**/*.gradle"
markdown: "**/*.md" markdown:
- "**/*.md"
- "!CHANGELOG.md"

View File

@ -49,6 +49,16 @@
* `closePollExactAfter` * `closePollExactAfter`
* `closePollAfter` * `closePollAfter`
### 0.27.7
* `TelegramBotAPI`:
* Operator function `unaryPlus` was added to `RowBuilder`. Now it is possible to write `row { +button }`
* Function `flatMatrix` was added for single-row columns
* Operator extension `RowBuilder#plus` was added to be able to write things like `row { this + button }`
* `TelegramBotAPI-extensions-utils`:
* Function `InlineKeyboardMarkup` for flat keyboards was added
* Function `ReplyKeyboardMarkup` for flat keyboards was added
### 0.27.6 ### 0.27.6
* `Common`: * `Common`:

View File

@ -0,0 +1,11 @@
package com.github.insanusmokrassar.TelegramBotAPI.extensions.utils.types.buttons
import com.github.insanusmokrassar.TelegramBotAPI.types.buttons.InlineKeyboardMarkup
import com.github.insanusmokrassar.TelegramBotAPI.types.buttons.InlineKeyboardButtons.InlineKeyboardButton
import com.github.insanusmokrassar.TelegramBotAPI.utils.*
fun InlineKeyboardMarkup(
vararg buttons: InlineKeyboardButton
): InlineKeyboardMarkup = InlineKeyboardMarkup(
flatMatrix { buttons.forEach { +it } }
)

View File

@ -0,0 +1,17 @@
package com.github.insanusmokrassar.TelegramBotAPI.extensions.utils.types.buttons
import com.github.insanusmokrassar.TelegramBotAPI.types.buttons.ReplyKeyboardMarkup
import com.github.insanusmokrassar.TelegramBotAPI.types.buttons.KeyboardButton
import com.github.insanusmokrassar.TelegramBotAPI.utils.flatMatrix
fun ReplyKeyboardMarkup(
vararg buttons: KeyboardButton,
resizeKeyboard: Boolean? = null,
oneTimeKeyboard: Boolean? = null,
selective: Boolean? = null
): ReplyKeyboardMarkup = ReplyKeyboardMarkup(
flatMatrix { buttons.forEach { +it } },
resizeKeyboard,
oneTimeKeyboard,
selective
)

View File

@ -18,12 +18,27 @@ fun <T> matrix(block: MatrixBuilder<T>.() -> Unit): Matrix<T> {
return MatrixBuilder<T>().also(block).matrix return MatrixBuilder<T>().also(block).matrix
} }
fun <T> flatMatrix(block: RowBuilder<T>.() -> Unit): Matrix<T> {
return MatrixBuilder<T>().apply {
row(block)
}.matrix
}
fun <T> flatMatrix(vararg elements: T): Matrix<T> {
return MatrixBuilder<T>().apply {
row { elements.forEach { +it } }
}.matrix
}
operator fun <T> RowBuilder<T>.plus(t: T) = add(t)
class RowBuilder<T> { class RowBuilder<T> {
private val mutRow: MutableList<T> = ArrayList() private val mutRow: MutableList<T> = ArrayList()
val row: List<T> val row: List<T>
get() = mutRow get() = mutRow
fun add(t: T) = mutRow.add(t) fun add(t: T) = mutRow.add(t)
operator fun T.unaryPlus() = add(this)
} }
class MatrixBuilder<T> { class MatrixBuilder<T> {

View File

@ -9,6 +9,6 @@ ktor_version=1.3.2
javax_activation_version=1.1.1 javax_activation_version=1.1.1
library_group=com.github.insanusmokrassar library_group=com.github.insanusmokrassar
library_version=0.27.6 library_version=0.27.7
gradle_bintray_plugin_version=1.8.4 gradle_bintray_plugin_version=1.8.4