mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI.git
synced 2024-11-23 02:28:45 +00:00
fixed problem that usually string formatting did not trigger escaping of control characters
This commit is contained in:
parent
f68edebd24
commit
dbef69ffac
@ -13,6 +13,7 @@
|
|||||||
* All parseMode-specific functions in `StringFormatting` now are not `infix`
|
* All parseMode-specific functions in `StringFormatting` now are not `infix`
|
||||||
* Now will not be thrown exception when there is income unknown type of `MessageEntity`. Instead of this will be
|
* Now will not be thrown exception when there is income unknown type of `MessageEntity`. Instead of this will be
|
||||||
created `RegularTextMessageEntity` with the same text
|
created `RegularTextMessageEntity` with the same text
|
||||||
|
* Fixed problem that usually string formatting did not trigger escaping of control characters
|
||||||
* Removed constructor of `TextMentionMessageEntity`, which was deprecated previously
|
* Removed constructor of `TextMentionMessageEntity`, which was deprecated previously
|
||||||
* Removed constructor of `TextMentionTextSource`, which was deprecated previously
|
* Removed constructor of `TextMentionTextSource`, which was deprecated previously
|
||||||
* All `TelegramMediaFile` instances now have field `fileUniqueId`, which represents `file_unique_id` field from API
|
* All `TelegramMediaFile` instances now have field `fileUniqueId`, which represents `file_unique_id` field from API
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
package com.github.insanusmokrassar.TelegramBotAPI.types.MessageEntity.textsources
|
package com.github.insanusmokrassar.TelegramBotAPI.types.MessageEntity.textsources
|
||||||
|
|
||||||
import com.github.insanusmokrassar.TelegramBotAPI.CommonAbstracts.TextSource
|
import com.github.insanusmokrassar.TelegramBotAPI.CommonAbstracts.TextSource
|
||||||
import com.github.insanusmokrassar.TelegramBotAPI.utils.extensions.toHtml
|
import com.github.insanusmokrassar.TelegramBotAPI.utils.regularHtml
|
||||||
import com.github.insanusmokrassar.TelegramBotAPI.utils.extensions.toMarkdown
|
import com.github.insanusmokrassar.TelegramBotAPI.utils.regularMarkdown
|
||||||
|
|
||||||
class RegularTextSource(
|
class RegularTextSource(
|
||||||
override val rawSource: String
|
override val rawSource: String
|
||||||
) : TextSource {
|
) : TextSource {
|
||||||
override val asMarkdownSource: String
|
override val asMarkdownSource: String
|
||||||
get() = rawSource.toMarkdown()
|
get() = rawSource.regularMarkdown()
|
||||||
override val asHtmlSource: String
|
override val asHtmlSource: String
|
||||||
get() = rawSource.toHtml()
|
get() = rawSource.regularHtml()
|
||||||
}
|
}
|
||||||
|
@ -17,11 +17,11 @@ const val htmlPreControl = "pre"
|
|||||||
const val htmlUnderlineControl = "u"
|
const val htmlUnderlineControl = "u"
|
||||||
const val htmlStrikethroughControl = "s"
|
const val htmlStrikethroughControl = "s"
|
||||||
|
|
||||||
private fun String.markdownDefault(controlSymbol: String) = "$controlSymbol$this$controlSymbol"
|
private fun String.markdownDefault(controlSymbol: String) = "$controlSymbol${toMarkdown()}$controlSymbol"
|
||||||
private fun String.htmlDefault(controlSymbol: String) = "<$controlSymbol>$this</$controlSymbol>"
|
private fun String.htmlDefault(controlSymbol: String) = "<$controlSymbol>${toHtml()}</$controlSymbol>"
|
||||||
|
|
||||||
fun String.linkMarkdown(link: String): String = "[$this]($link)"
|
fun String.linkMarkdown(link: String): String = "[${toMarkdown()}]($link)"
|
||||||
fun String.linkHTML(link: String): String = "<a href=\"$link\">$this</a>"
|
fun String.linkHTML(link: String): String = "<a href=\"$link\">${toHtml()}</a>"
|
||||||
|
|
||||||
|
|
||||||
fun String.boldMarkdown(): String = markdownDefault(markdownBoldControl)
|
fun String.boldMarkdown(): String = markdownDefault(markdownBoldControl)
|
||||||
@ -40,8 +40,8 @@ fun String.preMarkdown(): String = markdownDefault(markdownPreControl)
|
|||||||
fun String.preHTML(): String = htmlDefault(htmlPreControl)
|
fun String.preHTML(): String = htmlDefault(htmlPreControl)
|
||||||
|
|
||||||
|
|
||||||
fun String.emailMarkdown(): String = linkMarkdown("mailto://$this")
|
fun String.emailMarkdown(): String = linkMarkdown("mailto://$${toMarkdown()}")
|
||||||
fun String.emailHTML(): String = linkHTML("mailto://$this")
|
fun String.emailHTML(): String = linkHTML("mailto://$${toHtml()}")
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Crutch for support of strikethrough in default markdown. Simply add modifier, but it will not look like correct
|
* Crutch for support of strikethrough in default markdown. Simply add modifier, but it will not look like correct
|
||||||
@ -58,14 +58,14 @@ fun String.underlineHTML(): String = htmlDefault(htmlUnderlineControl)
|
|||||||
|
|
||||||
|
|
||||||
private inline fun String.mention(adapt: String.() -> String): String = if (startsWith("@")) {
|
private inline fun String.mention(adapt: String.() -> String): String = if (startsWith("@")) {
|
||||||
this
|
adapt()
|
||||||
} else {
|
} else {
|
||||||
"@${adapt()}"
|
"@${adapt()}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private inline fun String.hashTag(adapt: String.() -> String): String = if (startsWith("#")) {
|
private inline fun String.hashTag(adapt: String.() -> String): String = if (startsWith("#")) {
|
||||||
this
|
adapt()
|
||||||
} else {
|
} else {
|
||||||
"#${adapt()}"
|
"#${adapt()}"
|
||||||
}
|
}
|
||||||
@ -87,14 +87,18 @@ fun String.phoneMarkdown(): String = toMarkdown()
|
|||||||
fun String.phoneHTML(): String = toHtml()
|
fun String.phoneHTML(): String = toHtml()
|
||||||
|
|
||||||
|
|
||||||
fun String.command(): String = if (startsWith("/")) {
|
fun String.command(adapt: String.() -> String): String = if (startsWith("/")) {
|
||||||
this
|
adapt()
|
||||||
} else {
|
} else {
|
||||||
"/$this"
|
"/${adapt()}"
|
||||||
}
|
}
|
||||||
|
|
||||||
fun String.commandMarkdown(): String = command()
|
fun String.commandMarkdown(): String = command(String::toMarkdown)
|
||||||
fun String.commandHTML(): String = command()
|
fun String.commandHTML(): String = command(String::toHtml)
|
||||||
|
|
||||||
|
|
||||||
|
fun String.regularMarkdown(): String = toMarkdown()
|
||||||
|
fun String.regularHtml(): String = toHtml()
|
||||||
|
|
||||||
|
|
||||||
infix fun String.bold(parseMode: ParseMode): String = when (parseMode) {
|
infix fun String.bold(parseMode: ParseMode): String = when (parseMode) {
|
||||||
|
@ -25,7 +25,4 @@ fun String.toHtml(): String = replace(
|
|||||||
).replace(
|
).replace(
|
||||||
"&",
|
"&",
|
||||||
"&"
|
"&"
|
||||||
).replace(
|
|
||||||
"\"",
|
|
||||||
"""
|
|
||||||
)
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user