1
0
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:
2021-05-29 15:34:14 +06:00
parent 72c3623d30
commit 5c0e58caec
128 changed files with 1481 additions and 579 deletions

View File

@@ -29,10 +29,8 @@ repositories {
}
kotlin {
jvm {
compilations.main.kotlinOptions.useIR = true
}
js(BOTH) {
jvm()
js(IR) {
browser()
nodejs()
}

View File

@@ -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

View File

@@ -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) =

View File

@@ -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()

View File

@@ -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)