mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI.git
synced 2025-12-17 19:55:49 +00:00
buildable except of jvm tests
This commit is contained in:
@@ -29,10 +29,8 @@ repositories {
|
||||
}
|
||||
|
||||
kotlin {
|
||||
jvm {
|
||||
compilations.main.kotlinOptions.useIR = true
|
||||
}
|
||||
js(BOTH) {
|
||||
jvm()
|
||||
js(IR) {
|
||||
browser()
|
||||
nodejs()
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,6 @@
|
||||
package dev.inmo.tgbotapi.extensions.utils.extensions
|
||||
|
||||
import dev.inmo.tgbotapi.CommonAbstracts.*
|
||||
import dev.inmo.tgbotapi.CommonAbstracts.TextedWithTextSources
|
||||
import dev.inmo.tgbotapi.types.MessageEntity.textsources.BotCommandTextSource
|
||||
import dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSource
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
|
||||
|
||||
@@ -2,9 +2,11 @@
|
||||
|
||||
package dev.inmo.tgbotapi.extensions.utils.formatting
|
||||
|
||||
import dev.inmo.tgbotapi.types.MessageEntity.textsources.MutableTextSourcesList
|
||||
import dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSourcesList
|
||||
import dev.inmo.tgbotapi.types.User
|
||||
|
||||
fun buildEntities(init: EntitiesBuilder.() -> Unit): List<dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSource> = EntitiesBuilder().apply(init).build()
|
||||
fun buildEntities(init: EntitiesBuilder.() -> Unit): TextSourcesList = EntitiesBuilder().apply(init).build()
|
||||
|
||||
/**
|
||||
* This builder can be used to provide building of [TextSource]s [List]
|
||||
@@ -12,25 +14,25 @@ fun buildEntities(init: EntitiesBuilder.() -> Unit): List<dev.inmo.tgbotapi.type
|
||||
* @see buildEntities
|
||||
*/
|
||||
class EntitiesBuilder internal constructor(
|
||||
private val entitiesList: MutableList<dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSource> = mutableListOf()
|
||||
private val entitiesList: MutableTextSourcesList = mutableListOf()
|
||||
) {
|
||||
/**
|
||||
* It is not safe field which contains potentially changeable [List]
|
||||
*/
|
||||
val entities: List<dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSource>
|
||||
val entities: TextSourcesList
|
||||
get() = entitiesList
|
||||
|
||||
/**
|
||||
* @return New immutable list which will be deattached from this builder
|
||||
*/
|
||||
fun build(): List<dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSource> = entities.toList()
|
||||
fun build(): TextSourcesList = entities.toList()
|
||||
|
||||
fun add(source: dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSource) {
|
||||
entitiesList.add(source)
|
||||
}
|
||||
|
||||
operator fun dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSource.unaryPlus() = add(this)
|
||||
operator fun List<dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSource>.unaryPlus() = entitiesList.addAll(this)
|
||||
operator fun TextSourcesList.unaryPlus() = entitiesList.addAll(this)
|
||||
operator fun invoke(vararg source: dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSource) = entitiesList.addAll(source)
|
||||
|
||||
operator fun String.unaryPlus() {
|
||||
@@ -38,7 +40,7 @@ class EntitiesBuilder internal constructor(
|
||||
}
|
||||
}
|
||||
|
||||
inline fun EntitiesBuilder.bold(parts: List<dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSource>) = add(dev.inmo.tgbotapi.types.MessageEntity.textsources.bold(parts))
|
||||
inline fun EntitiesBuilder.bold(parts: TextSourcesList) = add(dev.inmo.tgbotapi.types.MessageEntity.textsources.bold(parts))
|
||||
|
||||
inline fun EntitiesBuilder.bold(vararg parts: dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSource) =
|
||||
add(dev.inmo.tgbotapi.types.MessageEntity.textsources.bold(*parts))
|
||||
@@ -48,7 +50,7 @@ inline fun EntitiesBuilder.bold(text: String) = add(dev.inmo.tgbotapi.types.Mess
|
||||
inline fun EntitiesBuilder.botCommand(command: String) =
|
||||
add(dev.inmo.tgbotapi.types.MessageEntity.textsources.botCommand(command))
|
||||
|
||||
inline fun EntitiesBuilder.cashTag(parts: List<dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSource>) =
|
||||
inline fun EntitiesBuilder.cashTag(parts: TextSourcesList) =
|
||||
add(dev.inmo.tgbotapi.types.MessageEntity.textsources.cashTag(parts))
|
||||
|
||||
inline fun EntitiesBuilder.cashTag(vararg parts: dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSource) =
|
||||
@@ -58,7 +60,7 @@ inline fun EntitiesBuilder.cashTag(text: String) = add(dev.inmo.tgbotapi.types.M
|
||||
|
||||
inline fun EntitiesBuilder.code(code: String) = add(dev.inmo.tgbotapi.types.MessageEntity.textsources.code(code))
|
||||
|
||||
inline fun EntitiesBuilder.email(parts: List<dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSource>) =
|
||||
inline fun EntitiesBuilder.email(parts: TextSourcesList) =
|
||||
add(dev.inmo.tgbotapi.types.MessageEntity.textsources.email(parts))
|
||||
|
||||
inline fun EntitiesBuilder.email(vararg parts: dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSource) =
|
||||
@@ -67,7 +69,7 @@ inline fun EntitiesBuilder.email(vararg parts: dev.inmo.tgbotapi.types.MessageEn
|
||||
inline fun EntitiesBuilder.email(emailAddress: String) =
|
||||
add(dev.inmo.tgbotapi.types.MessageEntity.textsources.email(emailAddress))
|
||||
|
||||
inline fun EntitiesBuilder.hashtag(parts: List<dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSource>) =
|
||||
inline fun EntitiesBuilder.hashtag(parts: TextSourcesList) =
|
||||
add(dev.inmo.tgbotapi.types.MessageEntity.textsources.hashtag(parts))
|
||||
|
||||
inline fun EntitiesBuilder.hashtag(vararg parts: dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSource) =
|
||||
@@ -75,7 +77,7 @@ inline fun EntitiesBuilder.hashtag(vararg parts: dev.inmo.tgbotapi.types.Message
|
||||
|
||||
inline fun EntitiesBuilder.hashtag(hashtag: String) = add(dev.inmo.tgbotapi.types.MessageEntity.textsources.hashtag(hashtag))
|
||||
|
||||
inline fun EntitiesBuilder.italic(parts: List<dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSource>) =
|
||||
inline fun EntitiesBuilder.italic(parts: TextSourcesList) =
|
||||
add(dev.inmo.tgbotapi.types.MessageEntity.textsources.italic(parts))
|
||||
|
||||
inline fun EntitiesBuilder.italic(vararg parts: dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSource) =
|
||||
@@ -83,7 +85,7 @@ inline fun EntitiesBuilder.italic(vararg parts: dev.inmo.tgbotapi.types.MessageE
|
||||
|
||||
inline fun EntitiesBuilder.italic(text: String) = add(dev.inmo.tgbotapi.types.MessageEntity.textsources.italic(text))
|
||||
|
||||
inline fun EntitiesBuilder.mention(parts: List<dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSource>) =
|
||||
inline fun EntitiesBuilder.mention(parts: TextSourcesList) =
|
||||
add(dev.inmo.tgbotapi.types.MessageEntity.textsources.mention(parts))
|
||||
|
||||
inline fun EntitiesBuilder.mention(vararg parts: dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSource) =
|
||||
@@ -92,7 +94,7 @@ inline fun EntitiesBuilder.mention(vararg parts: dev.inmo.tgbotapi.types.Message
|
||||
inline fun EntitiesBuilder.mention(whoToMention: String) =
|
||||
add(dev.inmo.tgbotapi.types.MessageEntity.textsources.mention(whoToMention))
|
||||
|
||||
inline fun EntitiesBuilder.mention(parts: List<dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSource>, user: User) =
|
||||
inline fun EntitiesBuilder.mention(parts: TextSourcesList, user: User) =
|
||||
add(dev.inmo.tgbotapi.types.MessageEntity.textsources.mention(parts, user))
|
||||
|
||||
inline fun EntitiesBuilder.mention(
|
||||
@@ -104,7 +106,7 @@ inline fun EntitiesBuilder.mention(
|
||||
inline fun EntitiesBuilder.mention(text: String, user: User) =
|
||||
add(dev.inmo.tgbotapi.types.MessageEntity.textsources.mention(text, user))
|
||||
|
||||
inline fun EntitiesBuilder.phone(parts: List<dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSource>) =
|
||||
inline fun EntitiesBuilder.phone(parts: TextSourcesList) =
|
||||
add(dev.inmo.tgbotapi.types.MessageEntity.textsources.phone(parts))
|
||||
|
||||
inline fun EntitiesBuilder.phone(vararg parts: dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSource) =
|
||||
@@ -119,7 +121,7 @@ inline fun EntitiesBuilder.pre(code: String, language: String?) =
|
||||
inline fun EntitiesBuilder.regular(text: String) =
|
||||
add(dev.inmo.tgbotapi.types.MessageEntity.textsources.regular(text))
|
||||
|
||||
inline fun EntitiesBuilder.strikethrough(parts: List<dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSource>) =
|
||||
inline fun EntitiesBuilder.strikethrough(parts: TextSourcesList) =
|
||||
add(dev.inmo.tgbotapi.types.MessageEntity.textsources.strikethrough(parts))
|
||||
|
||||
inline fun EntitiesBuilder.strikethrough(vararg parts: dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSource) =
|
||||
@@ -134,7 +136,7 @@ inline fun EntitiesBuilder.link(text: String, url: String) =
|
||||
inline fun EntitiesBuilder.link(url: String) =
|
||||
add(dev.inmo.tgbotapi.types.MessageEntity.textsources.link(url))
|
||||
|
||||
inline fun EntitiesBuilder.underline(parts: List<dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSource>) =
|
||||
inline fun EntitiesBuilder.underline(parts: TextSourcesList) =
|
||||
add(dev.inmo.tgbotapi.types.MessageEntity.textsources.underline(parts))
|
||||
|
||||
inline fun EntitiesBuilder.underline(vararg parts: dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSource) =
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package dev.inmo.tgbotapi.extensions.utils.formatting
|
||||
|
||||
import dev.inmo.tgbotapi.CommonAbstracts.*
|
||||
import dev.inmo.tgbotapi.types.*
|
||||
import dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSourcesList
|
||||
import dev.inmo.tgbotapi.types.ParseMode.*
|
||||
import dev.inmo.tgbotapi.types.message.content.TextContent
|
||||
|
||||
@@ -56,8 +56,6 @@ fun TextSourcesList.toMarkdownCaptions(): List<String> = createMarkdownText(
|
||||
captionLength.last
|
||||
)
|
||||
|
||||
fun CaptionedInput.toMarkdownCaptions(): List<String> = textSources.toMarkdownCaptions()
|
||||
|
||||
fun TextSourcesList.toMarkdownTexts(): List<String> = createMarkdownText(
|
||||
this,
|
||||
textLength.last
|
||||
@@ -70,8 +68,6 @@ fun TextSourcesList.toMarkdownExplanations(): List<String> = createMarkdownText(
|
||||
explanationLimit.last
|
||||
)
|
||||
|
||||
fun ExplainedInput.toMarkdownExplanations(): List<String> = textSources.toMarkdownTexts()
|
||||
|
||||
|
||||
fun createMarkdownV2Text(
|
||||
entities: TextSourcesList,
|
||||
@@ -83,8 +79,6 @@ fun TextSourcesList.toMarkdownV2Captions(): List<String> = createMarkdownV2Text(
|
||||
captionLength.last
|
||||
)
|
||||
|
||||
fun CaptionedInput.toMarkdownV2Captions(): List<String> = textSources.toMarkdownV2Captions()
|
||||
|
||||
fun TextSourcesList.toMarkdownV2Texts(): List<String> = createMarkdownV2Text(
|
||||
this,
|
||||
textLength.last
|
||||
@@ -97,8 +91,6 @@ fun TextSourcesList.toMarkdownV2Explanations(): List<String> = createMarkdownV2T
|
||||
explanationLimit.last
|
||||
)
|
||||
|
||||
fun ExplainedInput.toMarkdownV2Explanations(): List<String> = textSources.toMarkdownV2Texts()
|
||||
|
||||
|
||||
fun createHtmlText(
|
||||
entities: TextSourcesList,
|
||||
@@ -110,8 +102,6 @@ fun TextSourcesList.toHtmlCaptions(): List<String> = createHtmlText(
|
||||
captionLength.last
|
||||
)
|
||||
|
||||
fun CaptionedInput.toHtmlCaptions(): List<String> = textSources.toHtmlCaptions()
|
||||
|
||||
fun TextSourcesList.toHtmlTexts(): List<String> = createHtmlText(
|
||||
this,
|
||||
textLength.last
|
||||
@@ -124,6 +114,4 @@ fun TextSourcesList.toHtmlExplanations(): List<String> = createHtmlText(
|
||||
explanationLimit.last
|
||||
)
|
||||
|
||||
fun ExplainedInput.toHtmlExplanations(): List<String> = textSources.toHtmlTexts()
|
||||
|
||||
|
||||
|
||||
@@ -2,8 +2,7 @@ package dev.inmo.tgbotapi.extensions.utils.updates
|
||||
|
||||
import dev.inmo.tgbotapi.extensions.utils.onlyTextContentMessages
|
||||
import dev.inmo.tgbotapi.extensions.utils.shortcuts.*
|
||||
import dev.inmo.tgbotapi.types.MessageEntity.textsources.BotCommandTextSource
|
||||
import dev.inmo.tgbotapi.types.MessageEntity.textsources.RegularTextSource
|
||||
import dev.inmo.tgbotapi.types.MessageEntity.textsources.*
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.content.TextContent
|
||||
import dev.inmo.tgbotapi.types.update.abstracts.BaseSentMessageUpdate
|
||||
@@ -59,4 +58,4 @@ fun <T : BaseSentMessageUpdate> Flow<T>.filterCommandsInsideTextMessages(
|
||||
*/
|
||||
fun <T : BaseSentMessageUpdate> Flow<T>.filterCommandsWithArgs(
|
||||
commandRegex: Regex
|
||||
): Flow<Pair<ContentMessage<TextContent>, List<dev.inmo.tgbotapi.types.MessageEntity.textsources.TextSource>>> = textMessages().filterCommandsWithArgs(commandRegex)
|
||||
): Flow<Pair<ContentMessage<TextContent>, TextSourcesList>> = textMessages().filterCommandsWithArgs(commandRegex)
|
||||
|
||||
Reference in New Issue
Block a user