mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI.git
synced 2024-11-22 16:23:48 +00:00
add support of custom emojies in mv2 and html
This commit is contained in:
parent
68f6d8553c
commit
9a5a196e41
@ -13,8 +13,9 @@ import kotlinx.serialization.json.JsonPrimitive
|
|||||||
import kotlinx.serialization.json.longOrNull
|
import kotlinx.serialization.json.longOrNull
|
||||||
import kotlin.jvm.JvmInline
|
import kotlin.jvm.JvmInline
|
||||||
|
|
||||||
|
const val internalTgLinksBeginning = "tg://"
|
||||||
const val internalLinkBeginning = "https://t.me"
|
const val internalLinkBeginning = "https://t.me"
|
||||||
const val internalUserLinkBeginning = "tg://user?id="
|
const val internalUserLinkBeginning = "${internalTgLinksBeginning}user?id="
|
||||||
|
|
||||||
@Serializable(ChatIdentifierSerializer::class)
|
@Serializable(ChatIdentifierSerializer::class)
|
||||||
@ClassCastsIncluded
|
@ClassCastsIncluded
|
||||||
|
@ -41,7 +41,10 @@ typealias WebAppQueryId = String
|
|||||||
@JvmInline
|
@JvmInline
|
||||||
value class CustomEmojiId(
|
value class CustomEmojiId(
|
||||||
val string: String
|
val string: String
|
||||||
)
|
) {
|
||||||
|
val appLink
|
||||||
|
get() = "${internalTgLinksBeginning}emoji?id=$this"
|
||||||
|
}
|
||||||
|
|
||||||
typealias Seconds = Int
|
typealias Seconds = Int
|
||||||
typealias MilliSeconds = Long
|
typealias MilliSeconds = Long
|
||||||
|
@ -16,8 +16,8 @@ data class CustomEmojiTextSource @RiskFeature(DirectInvocationOfTextSourceConstr
|
|||||||
override val subsources: TextSourcesList
|
override val subsources: TextSourcesList
|
||||||
) : MultilevelTextSource {
|
) : MultilevelTextSource {
|
||||||
override val markdown: String by lazy { source.customEmojiMarkdown() }
|
override val markdown: String by lazy { source.customEmojiMarkdown() }
|
||||||
override val markdownV2: String by lazy { source.customEmojiMarkdownV2() }
|
override val markdownV2: String by lazy { source.customEmojiMarkdownV2(customEmojiId) }
|
||||||
override val html: String by lazy { source.customEmojiHTML() }
|
override val html: String by lazy { source.customEmojiHTML(customEmojiId) }
|
||||||
}
|
}
|
||||||
|
|
||||||
@Suppress("NOTHING_TO_INLINE", "EXPERIMENTAL_API_USAGE")
|
@Suppress("NOTHING_TO_INLINE", "EXPERIMENTAL_API_USAGE")
|
||||||
|
@ -24,6 +24,7 @@ const val htmlCodeControl = "code"
|
|||||||
const val htmlPreControl = "pre"
|
const val htmlPreControl = "pre"
|
||||||
const val htmlUnderlineControl = "u"
|
const val htmlUnderlineControl = "u"
|
||||||
const val htmlStrikethroughControl = "s"
|
const val htmlStrikethroughControl = "s"
|
||||||
|
const val htmlCustomEmojiControl = "tg-emoji"
|
||||||
|
|
||||||
private fun String.markdownDefault(
|
private fun String.markdownDefault(
|
||||||
openControlSymbol: String,
|
openControlSymbol: String,
|
||||||
@ -120,8 +121,8 @@ internal fun String.commandMarkdownV2(): String = command(String::escapeMarkdown
|
|||||||
internal fun String.commandHTML(): String = command(String::toHtml)
|
internal fun String.commandHTML(): String = command(String::toHtml)
|
||||||
|
|
||||||
internal fun String.customEmojiMarkdown(): String = toMarkdown()
|
internal fun String.customEmojiMarkdown(): String = toMarkdown()
|
||||||
internal fun String.customEmojiMarkdownV2(): String = escapeMarkdownV2Common()
|
internal fun String.customEmojiMarkdownV2(customEmojiId: CustomEmojiId): String = "!${linkMarkdownV2(customEmojiId.appLink)}"
|
||||||
internal fun String.customEmojiHTML(): String = toHtml()
|
internal fun String.customEmojiHTML(customEmojiId: CustomEmojiId): String = "<$htmlCustomEmojiControl $htmlCustomEmojiControl=\"${customEmojiId.string}\">$this</$htmlCustomEmojiControl>"
|
||||||
|
|
||||||
internal fun String.regularMarkdown(): String = toMarkdown()
|
internal fun String.regularMarkdown(): String = toMarkdown()
|
||||||
internal fun String.regularMarkdownV2(): String = escapeMarkdownV2Common()
|
internal fun String.regularMarkdownV2(): String = escapeMarkdownV2Common()
|
||||||
|
Loading…
Reference in New Issue
Block a user