mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI.git
synced 2024-11-22 16:23:48 +00:00
replacement of CaptionAndTextSourcesToText
This commit is contained in:
parent
0a162c4129
commit
b484a31a4a
@ -59,11 +59,13 @@
|
|||||||
* New variant of `row` was added
|
* New variant of `row` was added
|
||||||
* `makeLinkToMessage` extensions has been deprecated (replaced into `TelegramBotAPI-extensions-utils`)
|
* `makeLinkToMessage` extensions has been deprecated (replaced into `TelegramBotAPI-extensions-utils`)
|
||||||
* All `String` formatting public extensions and functions was deprecated and replaced into `TelegramBotAPI-extensions-utils`
|
* All `String` formatting public extensions and functions was deprecated and replaced into `TelegramBotAPI-extensions-utils`
|
||||||
|
* All extensions like `CaptionedInput#toHtmlCaptions` was deprecated and replaced into `TelegramBotAPI-extensions-utils`
|
||||||
* `TelegramBotAPI-extensions-utils`:
|
* `TelegramBotAPI-extensions-utils`:
|
||||||
* `safely` function was introduced. It is in `PreviewFeature` state currently
|
* `safely` function was introduced. It is in `PreviewFeature` state currently
|
||||||
* `makeLinkToMessage` extensions has been added
|
* `makeLinkToMessage` extensions has been added
|
||||||
* `makeLinkToAddStickerSet` function and its variations were added
|
* `makeLinkToAddStickerSet` function and its variations were added
|
||||||
* All `String` formatting extensions and functions from `TelegramBotAPI` was added
|
* All `String` formatting extensions and functions from `TelegramBotAPI` was added
|
||||||
|
* All extensions like `CaptionedInput#toHtmlCaptions` from `TelegramBotAPI` was added
|
||||||
|
|
||||||
### 0.27.4
|
### 0.27.4
|
||||||
|
|
||||||
|
@ -0,0 +1,121 @@
|
|||||||
|
package com.github.insanusmokrassar.TelegramBotAPI.extensions.utils.formatting
|
||||||
|
|
||||||
|
import com.github.insanusmokrassar.TelegramBotAPI.CommonAbstracts.*
|
||||||
|
import com.github.insanusmokrassar.TelegramBotAPI.types.*
|
||||||
|
import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.*
|
||||||
|
import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.TextContent
|
||||||
|
import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.fullEntitiesList
|
||||||
|
|
||||||
|
fun createFormattedText(
|
||||||
|
entities: FullTextSourcesList,
|
||||||
|
partLength: Int = textLength.last,
|
||||||
|
mode: ParseMode = MarkdownParseMode
|
||||||
|
): List<String> {
|
||||||
|
val texts = mutableListOf<String>()
|
||||||
|
val textBuilder = StringBuilder(partLength)
|
||||||
|
for (entity in entities) {
|
||||||
|
val string = when (mode) {
|
||||||
|
is MarkdownParseMode -> entity.asMarkdownSource
|
||||||
|
is MarkdownV2ParseMode -> entity.asMarkdownV2Source
|
||||||
|
is HTMLParseMode -> entity.asHtmlSource
|
||||||
|
}
|
||||||
|
if (textBuilder.length + string.length > partLength) {
|
||||||
|
if (textBuilder.isNotEmpty()) {
|
||||||
|
texts.add(textBuilder.toString())
|
||||||
|
textBuilder.clear()
|
||||||
|
}
|
||||||
|
val chunked = string.chunked(partLength)
|
||||||
|
val last = chunked.last()
|
||||||
|
textBuilder.append(last)
|
||||||
|
val listToAdd = if (chunked.size > 1) {
|
||||||
|
chunked.subList(0, chunked.size - 1)
|
||||||
|
} else {
|
||||||
|
emptyList()
|
||||||
|
}
|
||||||
|
listToAdd.forEach {
|
||||||
|
texts.add(it)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
textBuilder.append(string)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (textBuilder.isNotEmpty()) {
|
||||||
|
texts.add(textBuilder.toString())
|
||||||
|
textBuilder.clear()
|
||||||
|
}
|
||||||
|
return texts
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
fun createMarkdownText(
|
||||||
|
entities: FullTextSourcesList,
|
||||||
|
partLength: Int = textLength.last
|
||||||
|
): List<String> = createFormattedText(entities, partLength, MarkdownParseMode)
|
||||||
|
|
||||||
|
fun FullTextSourcesList.toMarkdownCaptions(): List<String> = createMarkdownText(
|
||||||
|
this,
|
||||||
|
captionLength.last
|
||||||
|
)
|
||||||
|
fun CaptionedInput.toMarkdownCaptions(): List<String> = fullEntitiesList().toMarkdownCaptions()
|
||||||
|
|
||||||
|
fun FullTextSourcesList.toMarkdownTexts(): List<String> = createMarkdownText(
|
||||||
|
this,
|
||||||
|
textLength.last
|
||||||
|
)
|
||||||
|
fun TextContent.toMarkdownTexts(): List<String> = fullEntitiesList().toMarkdownTexts()
|
||||||
|
|
||||||
|
fun FullTextSourcesList.toMarkdownExplanations(): List<String> = createMarkdownText(
|
||||||
|
this,
|
||||||
|
explanationLimit.last
|
||||||
|
)
|
||||||
|
fun ExplainedInput.toMarkdownExplanations(): List<String> = fullEntitiesList().toMarkdownTexts()
|
||||||
|
|
||||||
|
|
||||||
|
fun createMarkdownV2Text(
|
||||||
|
entities: FullTextSourcesList,
|
||||||
|
partLength: Int = textLength.last
|
||||||
|
): List<String> = createFormattedText(entities, partLength, MarkdownV2ParseMode)
|
||||||
|
|
||||||
|
fun FullTextSourcesList.toMarkdownV2Captions(): List<String> = createMarkdownV2Text(
|
||||||
|
this,
|
||||||
|
captionLength.last
|
||||||
|
)
|
||||||
|
fun CaptionedInput.toMarkdownV2Captions(): List<String> = fullEntitiesList().toMarkdownV2Captions()
|
||||||
|
|
||||||
|
fun FullTextSourcesList.toMarkdownV2Texts(): List<String> = createMarkdownV2Text(
|
||||||
|
this,
|
||||||
|
textLength.last
|
||||||
|
)
|
||||||
|
fun TextContent.toMarkdownV2Texts(): List<String> = fullEntitiesList().toMarkdownV2Texts()
|
||||||
|
|
||||||
|
fun FullTextSourcesList.toMarkdownV2Explanations(): List<String> = createMarkdownV2Text(
|
||||||
|
this,
|
||||||
|
explanationLimit.last
|
||||||
|
)
|
||||||
|
fun ExplainedInput.toMarkdownV2Explanations(): List<String> = fullEntitiesList().toMarkdownV2Texts()
|
||||||
|
|
||||||
|
|
||||||
|
fun createHtmlText(
|
||||||
|
entities: FullTextSourcesList,
|
||||||
|
partLength: Int = textLength.last
|
||||||
|
): List<String> = createFormattedText(entities, partLength, HTMLParseMode)
|
||||||
|
|
||||||
|
fun FullTextSourcesList.toHtmlCaptions(): List<String> = createHtmlText(
|
||||||
|
this,
|
||||||
|
captionLength.last
|
||||||
|
)
|
||||||
|
fun CaptionedInput.toHtmlCaptions(): List<String> = fullEntitiesList().toHtmlCaptions()
|
||||||
|
|
||||||
|
fun FullTextSourcesList.toHtmlTexts(): List<String> = createHtmlText(
|
||||||
|
this,
|
||||||
|
textLength.last
|
||||||
|
)
|
||||||
|
fun TextContent.toHtmlTexts(): List<String> = fullEntitiesList().toHtmlTexts()
|
||||||
|
|
||||||
|
fun FullTextSourcesList.toHtmlExplanations(): List<String> = createHtmlText(
|
||||||
|
this,
|
||||||
|
explanationLimit.last
|
||||||
|
)
|
||||||
|
fun ExplainedInput.toHtmlExplanations(): List<String> = fullEntitiesList().toHtmlTexts()
|
||||||
|
|
||||||
|
|
@ -6,6 +6,7 @@ import com.github.insanusmokrassar.TelegramBotAPI.types.ParseMode.*
|
|||||||
import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.TextContent
|
import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.TextContent
|
||||||
import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.fullEntitiesList
|
import com.github.insanusmokrassar.TelegramBotAPI.types.message.content.fullEntitiesList
|
||||||
|
|
||||||
|
@Deprecated("Replaced into TelegramBotAPI-extensions-utils")
|
||||||
fun createFormattedText(
|
fun createFormattedText(
|
||||||
entities: FullTextSourcesList,
|
entities: FullTextSourcesList,
|
||||||
partLength: Int = textLength.last,
|
partLength: Int = textLength.last,
|
||||||
@ -47,75 +48,96 @@ fun createFormattedText(
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Deprecated("Replaced into TelegramBotAPI-extensions-utils")
|
||||||
fun createMarkdownText(
|
fun createMarkdownText(
|
||||||
entities: FullTextSourcesList,
|
entities: FullTextSourcesList,
|
||||||
partLength: Int = textLength.last
|
partLength: Int = textLength.last
|
||||||
): List<String> = createFormattedText(entities, partLength, MarkdownParseMode)
|
): List<String> = createFormattedText(entities, partLength, MarkdownParseMode)
|
||||||
|
|
||||||
|
@Deprecated("Replaced into TelegramBotAPI-extensions-utils")
|
||||||
fun FullTextSourcesList.toMarkdownCaptions(): List<String> = createMarkdownText(
|
fun FullTextSourcesList.toMarkdownCaptions(): List<String> = createMarkdownText(
|
||||||
this,
|
this,
|
||||||
captionLength.last
|
captionLength.last
|
||||||
)
|
)
|
||||||
|
@Deprecated("Replaced into TelegramBotAPI-extensions-utils")
|
||||||
fun CaptionedInput.toMarkdownCaptions(): List<String> = fullEntitiesList().toMarkdownCaptions()
|
fun CaptionedInput.toMarkdownCaptions(): List<String> = fullEntitiesList().toMarkdownCaptions()
|
||||||
|
|
||||||
|
@Deprecated("Replaced into TelegramBotAPI-extensions-utils")
|
||||||
fun FullTextSourcesList.toMarkdownTexts(): List<String> = createMarkdownText(
|
fun FullTextSourcesList.toMarkdownTexts(): List<String> = createMarkdownText(
|
||||||
this,
|
this,
|
||||||
textLength.last
|
textLength.last
|
||||||
)
|
)
|
||||||
|
@Deprecated("Replaced into TelegramBotAPI-extensions-utils")
|
||||||
fun TextContent.toMarkdownTexts(): List<String> = fullEntitiesList().toMarkdownTexts()
|
fun TextContent.toMarkdownTexts(): List<String> = fullEntitiesList().toMarkdownTexts()
|
||||||
|
|
||||||
|
@Deprecated("Replaced into TelegramBotAPI-extensions-utils")
|
||||||
fun FullTextSourcesList.toMarkdownExplanations(): List<String> = createMarkdownText(
|
fun FullTextSourcesList.toMarkdownExplanations(): List<String> = createMarkdownText(
|
||||||
this,
|
this,
|
||||||
explanationLimit.last
|
explanationLimit.last
|
||||||
)
|
)
|
||||||
|
@Deprecated("Replaced into TelegramBotAPI-extensions-utils")
|
||||||
fun ExplainedInput.toMarkdownExplanations(): List<String> = fullEntitiesList().toMarkdownTexts()
|
fun ExplainedInput.toMarkdownExplanations(): List<String> = fullEntitiesList().toMarkdownTexts()
|
||||||
|
|
||||||
|
|
||||||
|
@Deprecated("Replaced into TelegramBotAPI-extensions-utils")
|
||||||
fun createMarkdownV2Text(
|
fun createMarkdownV2Text(
|
||||||
entities: FullTextSourcesList,
|
entities: FullTextSourcesList,
|
||||||
partLength: Int = textLength.last
|
partLength: Int = textLength.last
|
||||||
): List<String> = createFormattedText(entities, partLength, MarkdownV2ParseMode)
|
): List<String> = createFormattedText(entities, partLength, MarkdownV2ParseMode)
|
||||||
|
|
||||||
|
@Deprecated("Replaced into TelegramBotAPI-extensions-utils")
|
||||||
fun FullTextSourcesList.toMarkdownV2Captions(): List<String> = createMarkdownV2Text(
|
fun FullTextSourcesList.toMarkdownV2Captions(): List<String> = createMarkdownV2Text(
|
||||||
this,
|
this,
|
||||||
captionLength.last
|
captionLength.last
|
||||||
)
|
)
|
||||||
|
@Deprecated("Replaced into TelegramBotAPI-extensions-utils")
|
||||||
fun CaptionedInput.toMarkdownV2Captions(): List<String> = fullEntitiesList().toMarkdownV2Captions()
|
fun CaptionedInput.toMarkdownV2Captions(): List<String> = fullEntitiesList().toMarkdownV2Captions()
|
||||||
|
|
||||||
|
@Deprecated("Replaced into TelegramBotAPI-extensions-utils")
|
||||||
fun FullTextSourcesList.toMarkdownV2Texts(): List<String> = createMarkdownV2Text(
|
fun FullTextSourcesList.toMarkdownV2Texts(): List<String> = createMarkdownV2Text(
|
||||||
this,
|
this,
|
||||||
textLength.last
|
textLength.last
|
||||||
)
|
)
|
||||||
|
@Deprecated("Replaced into TelegramBotAPI-extensions-utils")
|
||||||
fun TextContent.toMarkdownV2Texts(): List<String> = fullEntitiesList().toMarkdownV2Texts()
|
fun TextContent.toMarkdownV2Texts(): List<String> = fullEntitiesList().toMarkdownV2Texts()
|
||||||
|
|
||||||
|
@Deprecated("Replaced into TelegramBotAPI-extensions-utils")
|
||||||
fun FullTextSourcesList.toMarkdownV2Explanations(): List<String> = createMarkdownV2Text(
|
fun FullTextSourcesList.toMarkdownV2Explanations(): List<String> = createMarkdownV2Text(
|
||||||
this,
|
this,
|
||||||
explanationLimit.last
|
explanationLimit.last
|
||||||
)
|
)
|
||||||
|
@Deprecated("Replaced into TelegramBotAPI-extensions-utils")
|
||||||
fun ExplainedInput.toMarkdownV2Explanations(): List<String> = fullEntitiesList().toMarkdownV2Texts()
|
fun ExplainedInput.toMarkdownV2Explanations(): List<String> = fullEntitiesList().toMarkdownV2Texts()
|
||||||
|
|
||||||
|
|
||||||
|
@Deprecated("Replaced into TelegramBotAPI-extensions-utils")
|
||||||
fun createHtmlText(
|
fun createHtmlText(
|
||||||
entities: FullTextSourcesList,
|
entities: FullTextSourcesList,
|
||||||
partLength: Int = textLength.last
|
partLength: Int = textLength.last
|
||||||
): List<String> = createFormattedText(entities, partLength, HTMLParseMode)
|
): List<String> = createFormattedText(entities, partLength, HTMLParseMode)
|
||||||
|
|
||||||
|
@Deprecated("Replaced into TelegramBotAPI-extensions-utils")
|
||||||
fun FullTextSourcesList.toHtmlCaptions(): List<String> = createHtmlText(
|
fun FullTextSourcesList.toHtmlCaptions(): List<String> = createHtmlText(
|
||||||
this,
|
this,
|
||||||
captionLength.last
|
captionLength.last
|
||||||
)
|
)
|
||||||
|
@Deprecated("Replaced into TelegramBotAPI-extensions-utils")
|
||||||
fun CaptionedInput.toHtmlCaptions(): List<String> = fullEntitiesList().toHtmlCaptions()
|
fun CaptionedInput.toHtmlCaptions(): List<String> = fullEntitiesList().toHtmlCaptions()
|
||||||
|
|
||||||
|
@Deprecated("Replaced into TelegramBotAPI-extensions-utils")
|
||||||
fun FullTextSourcesList.toHtmlTexts(): List<String> = createHtmlText(
|
fun FullTextSourcesList.toHtmlTexts(): List<String> = createHtmlText(
|
||||||
this,
|
this,
|
||||||
textLength.last
|
textLength.last
|
||||||
)
|
)
|
||||||
|
@Deprecated("Replaced into TelegramBotAPI-extensions-utils")
|
||||||
fun TextContent.toHtmlTexts(): List<String> = fullEntitiesList().toHtmlTexts()
|
fun TextContent.toHtmlTexts(): List<String> = fullEntitiesList().toHtmlTexts()
|
||||||
|
|
||||||
|
@Deprecated("Replaced into TelegramBotAPI-extensions-utils")
|
||||||
fun FullTextSourcesList.toHtmlExplanations(): List<String> = createHtmlText(
|
fun FullTextSourcesList.toHtmlExplanations(): List<String> = createHtmlText(
|
||||||
this,
|
this,
|
||||||
explanationLimit.last
|
explanationLimit.last
|
||||||
)
|
)
|
||||||
|
@Deprecated("Replaced into TelegramBotAPI-extensions-utils")
|
||||||
fun ExplainedInput.toHtmlExplanations(): List<String> = fullEntitiesList().toHtmlTexts()
|
fun ExplainedInput.toHtmlExplanations(): List<String> = fullEntitiesList().toHtmlTexts()
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user