mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI.git
synced 2024-12-22 16:47:13 +00:00
commit
4f75bc792d
12
CHANGELOG.md
12
CHANGELOG.md
@ -1,5 +1,17 @@
|
||||
# TelegramBotAPI changelog
|
||||
|
||||
## 3.2.7
|
||||
|
||||
* `Versions`:
|
||||
* `MicroUtils`: `0.12.13` -> `0.12.17`
|
||||
* `Ktor`: `2.1.1` -> `2.1.2`
|
||||
* `Utils`:
|
||||
* Next classes become typealiases instead of classes:
|
||||
* `ReplyKeyboardBuilder`
|
||||
* `ReplyKeyboardRowBuilder`
|
||||
* `InlineKeyboardBuilder`
|
||||
* `InlineKeyboardRowBuilder`
|
||||
|
||||
## 3.2.6
|
||||
|
||||
* `Core`:
|
||||
|
@ -6,4 +6,4 @@ kotlin.incremental=true
|
||||
kotlin.incremental.js=true
|
||||
|
||||
library_group=dev.inmo
|
||||
library_version=3.2.6
|
||||
library_version=3.2.7
|
||||
|
@ -8,12 +8,12 @@ javax-activation = "1.1.1"
|
||||
|
||||
korlibs = "3.1.0"
|
||||
uuid = "0.5.0"
|
||||
ktor = "2.1.1"
|
||||
ktor = "2.1.2"
|
||||
|
||||
ksp = "1.7.10-1.0.6"
|
||||
kotlin-poet = "1.12.0"
|
||||
|
||||
microutils = "0.12.13"
|
||||
microutils = "0.12.17"
|
||||
|
||||
github-release-plugin = "2.4.1"
|
||||
|
||||
|
@ -0,0 +1,102 @@
|
||||
package dev.inmo.tgbotapi.types.buttons.inline
|
||||
|
||||
import dev.inmo.tgbotapi.types.LoginURL
|
||||
import dev.inmo.tgbotapi.types.buttons.InlineKeyboardButtons.*
|
||||
import dev.inmo.tgbotapi.types.webapps.WebAppInfo
|
||||
|
||||
/**
|
||||
* Creates and put [PayInlineKeyboardButton]
|
||||
*
|
||||
* @see inlineKeyboard
|
||||
* @see InlineKeyboardBuilder.row
|
||||
*/
|
||||
inline fun payInlineButton(
|
||||
text: String
|
||||
) = PayInlineKeyboardButton(text)
|
||||
|
||||
/**
|
||||
* Creates and put [CallbackDataInlineKeyboardButton]
|
||||
*
|
||||
* @see inlineKeyboard
|
||||
* @see InlineKeyboardBuilder.row
|
||||
*/
|
||||
inline fun dataInlineButton(
|
||||
text: String,
|
||||
data: String
|
||||
) = CallbackDataInlineKeyboardButton(text, data)
|
||||
|
||||
/**
|
||||
* Creates and put [CallbackGameInlineKeyboardButton]
|
||||
*
|
||||
* @see inlineKeyboard
|
||||
* @see InlineKeyboardBuilder.row
|
||||
*/
|
||||
inline fun gameInlineButton(
|
||||
text: String
|
||||
) = CallbackGameInlineKeyboardButton(text)
|
||||
|
||||
/**
|
||||
* Creates and put [LoginURLInlineKeyboardButton]
|
||||
*
|
||||
* @see inlineKeyboard
|
||||
* @see InlineKeyboardBuilder.row
|
||||
*/
|
||||
inline fun loginInlineButton(
|
||||
text: String,
|
||||
loginUrl: LoginURL
|
||||
) = LoginURLInlineKeyboardButton(text, loginUrl)
|
||||
|
||||
/**
|
||||
* Creates and put [SwitchInlineQueryCurrentChatInlineKeyboardButton]
|
||||
*
|
||||
* @see inlineKeyboard
|
||||
* @see InlineKeyboardBuilder.row
|
||||
*/
|
||||
inline fun inlineQueryInCurrentChatInlineButton(
|
||||
text: String,
|
||||
data: String
|
||||
) = SwitchInlineQueryCurrentChatInlineKeyboardButton(text, data)
|
||||
|
||||
/**
|
||||
* Creates and put [SwitchInlineQueryInlineKeyboardButton]
|
||||
*
|
||||
* @see inlineKeyboard
|
||||
* @see InlineKeyboardBuilder.row
|
||||
*/
|
||||
inline fun inlineQueryInlineButton(
|
||||
text: String,
|
||||
data: String
|
||||
) = SwitchInlineQueryInlineKeyboardButton(text, data)
|
||||
|
||||
/**
|
||||
* Creates and put [URLInlineKeyboardButton]
|
||||
*
|
||||
* @see inlineKeyboard
|
||||
* @see InlineKeyboardBuilder.row
|
||||
*/
|
||||
inline fun urlInlineButton(
|
||||
text: String,
|
||||
url: String
|
||||
) = URLInlineKeyboardButton(text, url)
|
||||
|
||||
/**
|
||||
* Creates and put [WebAppInlineKeyboardButton]. Please, remember that this button is available in private chats only
|
||||
*
|
||||
* @see inlineKeyboard
|
||||
* @see InlineKeyboardBuilder.row
|
||||
*/
|
||||
inline fun webAppInlineButton(
|
||||
text: String,
|
||||
webApp: WebAppInfo
|
||||
) = WebAppInlineKeyboardButton(text, webApp)
|
||||
|
||||
/**
|
||||
* Creates and put [WebAppInlineKeyboardButton]. Please, remember that this button is available in private chats only
|
||||
*
|
||||
* @see inlineKeyboard
|
||||
* @see InlineKeyboardBuilder.row
|
||||
*/
|
||||
inline fun webAppInlineButton(
|
||||
text: String,
|
||||
url: String
|
||||
) = webAppInlineButton(text, WebAppInfo(url))
|
@ -0,0 +1,69 @@
|
||||
package dev.inmo.tgbotapi.types.buttons.reply
|
||||
|
||||
import dev.inmo.tgbotapi.types.buttons.*
|
||||
import dev.inmo.tgbotapi.types.buttons.InlineKeyboardButtons.*
|
||||
import dev.inmo.tgbotapi.types.webapps.WebAppInfo
|
||||
|
||||
|
||||
/**
|
||||
* Creates and put [SimpleKeyboardButton]
|
||||
*
|
||||
* @see replyKeyboard
|
||||
* @see ReplyKeyboardBuilder.row
|
||||
*/
|
||||
inline fun simpleReplyButton(
|
||||
text: String
|
||||
) = SimpleKeyboardButton(text)
|
||||
|
||||
/**
|
||||
* Creates and put [RequestContactKeyboardButton]
|
||||
*
|
||||
* @see replyKeyboard
|
||||
* @see ReplyKeyboardBuilder.row
|
||||
*/
|
||||
inline fun requestContactReplyButton(
|
||||
text: String
|
||||
) = RequestContactKeyboardButton(text)
|
||||
|
||||
/**
|
||||
* Creates and put [RequestLocationKeyboardButton]
|
||||
*
|
||||
* @see replyKeyboard
|
||||
* @see ReplyKeyboardBuilder.row
|
||||
*/
|
||||
inline fun requestLocationReplyButton(
|
||||
text: String
|
||||
) = RequestLocationKeyboardButton(text)
|
||||
|
||||
/**
|
||||
* Creates and put [RequestPollKeyboardButton]
|
||||
*
|
||||
* @see replyKeyboard
|
||||
* @see ReplyKeyboardBuilder.row
|
||||
*/
|
||||
inline fun requestPollReplyButton(
|
||||
text: String,
|
||||
pollType: KeyboardButtonPollType
|
||||
) = RequestPollKeyboardButton(text, pollType)
|
||||
|
||||
/**
|
||||
* Creates and put [WebAppKeyboardButton]
|
||||
*
|
||||
* @see replyKeyboard
|
||||
* @see ReplyKeyboardBuilder.row
|
||||
*/
|
||||
inline fun webAppReplyButton(
|
||||
text: String,
|
||||
webApp: WebAppInfo
|
||||
) = WebAppKeyboardButton(text, webApp)
|
||||
|
||||
/**
|
||||
* Creates and put [WebAppKeyboardButton]
|
||||
*
|
||||
* @see replyKeyboard
|
||||
* @see ReplyKeyboardBuilder.row
|
||||
*/
|
||||
inline fun webAppReplyButton(
|
||||
text: String,
|
||||
url: String
|
||||
) = webAppReplyButton(text, WebAppInfo(url))
|
@ -6,23 +6,23 @@ import dev.inmo.tgbotapi.types.buttons.Matrix
|
||||
* @see dev.inmo.tgbotapi.extensions.utils.types.buttons.InlineKeyboardRowBuilder
|
||||
* @see dev.inmo.tgbotapi.extensions.utils.types.buttons.ReplyKeyboardRowBuilder
|
||||
*/
|
||||
fun <T> row(block: RowBuilder<T>.() -> Unit): List<T> {
|
||||
return RowBuilder<T>().also(block).row
|
||||
inline fun <T> row(block: RowBuilder<T>.() -> Unit): List<T> {
|
||||
return RowBuilder<T>().apply(block).row
|
||||
}
|
||||
|
||||
/**
|
||||
* @see dev.inmo.tgbotapi.extensions.utils.types.buttons.InlineKeyboardRowBuilder
|
||||
* @see dev.inmo.tgbotapi.extensions.utils.types.buttons.ReplyKeyboardRowBuilder
|
||||
*/
|
||||
fun <T> MatrixBuilder<T>.row(block: RowBuilder<T>.() -> Unit) {
|
||||
add(RowBuilder<T>().also(block).row)
|
||||
inline fun <T> MatrixBuilder<T>.row(block: RowBuilder<T>.() -> Unit) {
|
||||
add(RowBuilder<T>().apply(block).row)
|
||||
}
|
||||
|
||||
/**
|
||||
* @see dev.inmo.tgbotapi.extensions.utils.types.buttons.InlineKeyboardRowBuilder
|
||||
* @see dev.inmo.tgbotapi.extensions.utils.types.buttons.ReplyKeyboardRowBuilder
|
||||
*/
|
||||
fun <T> MatrixBuilder<T>.row(vararg elements: T) {
|
||||
inline fun <T> MatrixBuilder<T>.row(vararg elements: T) {
|
||||
add(elements.toList())
|
||||
}
|
||||
|
||||
@ -30,7 +30,7 @@ fun <T> MatrixBuilder<T>.row(vararg elements: T) {
|
||||
* @see dev.inmo.tgbotapi.extensions.utils.types.buttons.InlineKeyboardBuilder
|
||||
* @see dev.inmo.tgbotapi.extensions.utils.types.buttons.ReplyKeyboardBuilder
|
||||
*/
|
||||
fun <T> matrix(block: MatrixBuilder<T>.() -> Unit): Matrix<T> {
|
||||
inline fun <T> matrix(block: MatrixBuilder<T>.() -> Unit): Matrix<T> {
|
||||
return MatrixBuilder<T>().also(block).matrix
|
||||
}
|
||||
|
||||
@ -38,7 +38,7 @@ fun <T> matrix(block: MatrixBuilder<T>.() -> Unit): Matrix<T> {
|
||||
* @see dev.inmo.tgbotapi.extensions.utils.types.buttons.InlineKeyboardBuilder
|
||||
* @see dev.inmo.tgbotapi.extensions.utils.types.buttons.ReplyKeyboardBuilder
|
||||
*/
|
||||
fun <T> flatMatrix(block: RowBuilder<T>.() -> Unit): Matrix<T> {
|
||||
inline fun <T> flatMatrix(block: RowBuilder<T>.() -> Unit): Matrix<T> {
|
||||
return MatrixBuilder<T>().apply {
|
||||
row(block)
|
||||
}.matrix
|
||||
@ -48,7 +48,7 @@ fun <T> flatMatrix(block: RowBuilder<T>.() -> Unit): Matrix<T> {
|
||||
* @see dev.inmo.tgbotapi.extensions.utils.types.buttons.InlineKeyboardBuilder
|
||||
* @see dev.inmo.tgbotapi.extensions.utils.types.buttons.ReplyKeyboardBuilder
|
||||
*/
|
||||
fun <T> flatMatrix(vararg elements: T): Matrix<T> {
|
||||
inline fun <T> flatMatrix(vararg elements: T): Matrix<T> {
|
||||
return MatrixBuilder<T>().apply {
|
||||
row { elements.forEach { +it } }
|
||||
}.matrix
|
||||
|
@ -4,8 +4,7 @@ import dev.inmo.tgbotapi.types.LoginURL
|
||||
import dev.inmo.tgbotapi.types.buttons.InlineKeyboardButtons.*
|
||||
import dev.inmo.tgbotapi.types.buttons.InlineKeyboardMarkup
|
||||
import dev.inmo.tgbotapi.types.webapps.WebAppInfo
|
||||
import dev.inmo.tgbotapi.utils.MatrixBuilder
|
||||
import dev.inmo.tgbotapi.utils.RowBuilder
|
||||
import dev.inmo.tgbotapi.utils.*
|
||||
|
||||
/**
|
||||
* Core DSL part of Inline Keyboard DSL. Can accept only [InlineKeyboardButton] and returns ready to use
|
||||
@ -15,12 +14,12 @@ import dev.inmo.tgbotapi.utils.RowBuilder
|
||||
* @see InlineKeyboardBuilder.row
|
||||
* @see InlineKeyboardRowBuilder
|
||||
*/
|
||||
class InlineKeyboardBuilder : MatrixBuilder<InlineKeyboardButton>() {
|
||||
/**
|
||||
* Creates [InlineKeyboardMarkup] using internal [matrix]
|
||||
*/
|
||||
fun build() = InlineKeyboardMarkup(matrix)
|
||||
}
|
||||
typealias InlineKeyboardBuilder = MatrixBuilder<InlineKeyboardButton>
|
||||
|
||||
/**
|
||||
* Creates [InlineKeyboardMarkup] using internal [matrix]
|
||||
*/
|
||||
fun InlineKeyboardBuilder.build() = InlineKeyboardMarkup(matrix)
|
||||
|
||||
/**
|
||||
* Row builder of [InlineKeyboardBuilder]
|
||||
@ -28,7 +27,7 @@ class InlineKeyboardBuilder : MatrixBuilder<InlineKeyboardButton>() {
|
||||
* @see inlineKeyboard
|
||||
* @see InlineKeyboardBuilder.row
|
||||
*/
|
||||
class InlineKeyboardRowBuilder : RowBuilder<InlineKeyboardButton>()
|
||||
typealias InlineKeyboardRowBuilder = RowBuilder<InlineKeyboardButton>
|
||||
|
||||
/**
|
||||
* Factory-function for [InlineKeyboardBuilder]. It will [apply] [block] to internally created [InlineKeyboardMarkup]
|
||||
@ -48,7 +47,7 @@ inline fun inlineKeyboard(
|
||||
*/
|
||||
inline fun flatInlineKeyboard(
|
||||
block: InlineKeyboardRowBuilder.() -> Unit
|
||||
) = inlineKeyboard { row(block) }
|
||||
) = inlineKeyboard { row<InlineKeyboardButton>(block) }
|
||||
|
||||
/**
|
||||
* Creates an [InlineKeyboardRowBuilder] and [apply] [block] with this builder
|
||||
@ -61,6 +60,7 @@ inline fun flatInlineKeyboard(
|
||||
* @see inlineQueryButton
|
||||
* @see urlButton
|
||||
*/
|
||||
@Deprecated("Redundant", ReplaceWith("this.row(block)", "dev.inmo.tgbotapi.utils.row"))
|
||||
inline fun InlineKeyboardBuilder.row(
|
||||
block: InlineKeyboardRowBuilder.() -> Unit
|
||||
) = add(InlineKeyboardRowBuilder().apply(block).row)
|
||||
|
@ -2,8 +2,7 @@ package dev.inmo.tgbotapi.extensions.utils.types.buttons
|
||||
|
||||
import dev.inmo.tgbotapi.types.buttons.*
|
||||
import dev.inmo.tgbotapi.types.webapps.WebAppInfo
|
||||
import dev.inmo.tgbotapi.utils.MatrixBuilder
|
||||
import dev.inmo.tgbotapi.utils.RowBuilder
|
||||
import dev.inmo.tgbotapi.utils.*
|
||||
|
||||
/**
|
||||
* Core DSL part of Keyboard DSL. Can accept only [KeyboardButton] and returns ready to use
|
||||
@ -13,17 +12,17 @@ import dev.inmo.tgbotapi.utils.RowBuilder
|
||||
* @see ReplyKeyboardBuilder.row
|
||||
* @see ReplyKeyboardRowBuilder
|
||||
*/
|
||||
class ReplyKeyboardBuilder : MatrixBuilder<KeyboardButton>() {
|
||||
/**
|
||||
* Creates [InlineKeyboardMarkup] using internal [matrix]
|
||||
*/
|
||||
fun build(
|
||||
resizeKeyboard: Boolean? = null,
|
||||
oneTimeKeyboard: Boolean? = null,
|
||||
inputFieldPlaceholder: String? = null,
|
||||
selective: Boolean? = null,
|
||||
) = ReplyKeyboardMarkup(matrix, resizeKeyboard, oneTimeKeyboard, inputFieldPlaceholder, selective)
|
||||
}
|
||||
typealias ReplyKeyboardBuilder = MatrixBuilder<KeyboardButton>
|
||||
|
||||
/**
|
||||
* Creates [InlineKeyboardMarkup] using internal [matrix]
|
||||
*/
|
||||
fun ReplyKeyboardBuilder.build(
|
||||
resizeKeyboard: Boolean? = null,
|
||||
oneTimeKeyboard: Boolean? = null,
|
||||
inputFieldPlaceholder: String? = null,
|
||||
selective: Boolean? = null,
|
||||
) = ReplyKeyboardMarkup(matrix, resizeKeyboard, oneTimeKeyboard, inputFieldPlaceholder, selective)
|
||||
|
||||
/**
|
||||
* Row builder of [KeyboardButton]
|
||||
@ -31,7 +30,7 @@ class ReplyKeyboardBuilder : MatrixBuilder<KeyboardButton>() {
|
||||
* @see replyKeyboard
|
||||
* @see ReplyKeyboardBuilder.row
|
||||
*/
|
||||
class ReplyKeyboardRowBuilder : RowBuilder<KeyboardButton>()
|
||||
typealias ReplyKeyboardRowBuilder = RowBuilder<KeyboardButton>
|
||||
|
||||
/**
|
||||
* Factory-function for [ReplyKeyboardBuilder]. It will [apply] [block] to internally created [ReplyKeyboardMarkup]
|
||||
@ -58,7 +57,7 @@ inline fun flatReplyKeyboard(
|
||||
selective: Boolean? = null,
|
||||
block: ReplyKeyboardRowBuilder.() -> Unit
|
||||
) = replyKeyboard(resizeKeyboard, oneTimeKeyboard, inputFieldPlaceholder, selective) {
|
||||
row(block)
|
||||
row<KeyboardButton>(block)
|
||||
}
|
||||
|
||||
/**
|
||||
@ -69,6 +68,7 @@ inline fun flatReplyKeyboard(
|
||||
* @see requestLocationButton
|
||||
* @see requestPollButton
|
||||
*/
|
||||
@Deprecated("Redundant", ReplaceWith("this.row(block)", "dev.inmo.tgbotapi.utils.row"))
|
||||
inline fun ReplyKeyboardBuilder.row(
|
||||
block: ReplyKeyboardRowBuilder.() -> Unit
|
||||
) = add(ReplyKeyboardRowBuilder().apply(block).row)
|
||||
|
Loading…
Reference in New Issue
Block a user