improvements in rich messages bot

This commit is contained in:
2026-08-17 23:48:59 +06:00
parent 1d9c7a35eb
commit 2dd20f51db

View File

@@ -34,12 +34,14 @@ import dev.inmo.tgbotapi.types.media.TelegramMediaAudio
import dev.inmo.tgbotapi.types.media.TelegramMediaPhoto import dev.inmo.tgbotapi.types.media.TelegramMediaPhoto
import dev.inmo.tgbotapi.types.media.TelegramMediaVideo import dev.inmo.tgbotapi.types.media.TelegramMediaVideo
import dev.inmo.tgbotapi.types.media.TelegramMediaVoiceNote import dev.inmo.tgbotapi.types.media.TelegramMediaVoiceNote
import dev.inmo.tgbotapi.types.rich.InputRichMessage
import dev.inmo.tgbotapi.types.rich.InputRichMessageBlocks import dev.inmo.tgbotapi.types.rich.InputRichMessageBlocks
import dev.inmo.tgbotapi.types.rich.InputRichMessageHTML import dev.inmo.tgbotapi.types.rich.InputRichMessageHTML
import dev.inmo.tgbotapi.types.rich.InputRichMessageMarkdown import dev.inmo.tgbotapi.types.rich.InputRichMessageMarkdown
import dev.inmo.tgbotapi.types.rich.InputRichMessageMedia import dev.inmo.tgbotapi.types.rich.InputRichMessageMedia
import dev.inmo.tgbotapi.types.rich.RichBlockCaption import dev.inmo.tgbotapi.types.rich.RichBlockCaption
import dev.inmo.tgbotapi.types.rich.RichBlockTableCell import dev.inmo.tgbotapi.types.rich.RichBlockTableCellAlign
import dev.inmo.tgbotapi.types.rich.RichBlockTableCellVAlign
import dev.inmo.tgbotapi.types.rich.RichTextPlain import dev.inmo.tgbotapi.types.rich.RichTextPlain
import dev.inmo.tgbotapi.types.rich.buildRichText import dev.inmo.tgbotapi.types.rich.buildRichText
import dev.inmo.tgbotapi.types.toChatId import dev.inmo.tgbotapi.types.toChatId
@@ -375,18 +377,17 @@ suspend fun main(vararg args: String) {
paragraph("Block quotation started\nBlock quotation continued on the next line\nBlock quotation continued on the same line\nThe last line of the block quotation") paragraph("Block quotation started\nBlock quotation continued on the next line\nBlock quotation continued on the same line\nThe last line of the block quotation")
} }
table( table {
listOf( row {
listOf( headerCell(align = RichBlockTableCellAlign.Left, valign = RichBlockTableCellVAlign.Top) { plain("Header 1") }
RichBlockTableCell(RichTextPlain("Header 1"), isHeader = true, align = "left", valign = "middle"), headerCell(align = RichBlockTableCellAlign.Center, valign = RichBlockTableCellVAlign.Middle) { plain("Header 2") }
RichBlockTableCell(RichTextPlain("Header 2"), isHeader = true, align = "center", valign = "middle") headerCell(align = RichBlockTableCellAlign.Right, valign = RichBlockTableCellVAlign.Bottom) { plain("Header 2") }
), }
listOf( row {
RichBlockTableCell(RichTextPlain("left"), align = "left", valign = "middle"), cell(align = RichBlockTableCellAlign.Left, valign = RichBlockTableCellVAlign.Top) { plain("left") }
RichBlockTableCell(RichTextPlain("center"), align = "center", valign = "middle") cell(align = RichBlockTableCellAlign.Center, valign = RichBlockTableCellVAlign.Middle) { plain("center") }
) }
) }
)
paragraph { paragraph {
plain("Text with a reference") plain("Text with a reference")
referenceLink("id1", "id1") referenceLink("id1", "id1")
@@ -474,22 +475,24 @@ suspend fun main(vararg args: String) {
} }
} }
} }
table( table {
listOf( row {
listOf( headerCell(align = RichBlockTableCellAlign.Left, valign = RichBlockTableCellVAlign.Middle) { plain("Metric") }
RichBlockTableCell(RichTextPlain("Metric"), isHeader = true, align = "left", valign = "middle"), headerCell(align = RichBlockTableCellAlign.Right, valign = RichBlockTableCellVAlign.Middle) { plain("Value") }
RichBlockTableCell(RichTextPlain("Value"), isHeader = true, align = "right", valign = "middle") }
), row {
listOf( cell(align = RichBlockTableCellAlign.Left, valign = RichBlockTableCellVAlign.Middle) { plain("Speed") }
RichBlockTableCell(RichTextPlain("Speed"), align = "left", valign = "middle"), cell(align = RichBlockTableCellAlign.Right, valign = RichBlockTableCellVAlign.Middle) {
RichBlockTableCell(buildRichText { bold("42"); plain(" "); superscript("ms") }, align = "right", valign = "middle") bold("42")
), plain(" ")
listOf( superscript("ms")
RichBlockTableCell(RichTextPlain("Status"), align = "left", valign = "middle"), }
RichBlockTableCell(buildRichText { spoiler("ready") }, align = "right", valign = "middle") }
) row {
) cell(align = RichBlockTableCellAlign.Left, valign = RichBlockTableCellVAlign.Middle) { plain("Status") }
) cell(align = RichBlockTableCellAlign.Right, valign = RichBlockTableCellVAlign.Middle) { spoiler("ready") }
}
}
paragraph { paragraph {
reference("note") { reference("note") {
plain("Footnote with ") plain("Footnote with ")
@@ -659,13 +662,35 @@ suspend fun main(vararg args: String) {
onCommand("rich_markdown") { onCommand("rich_markdown") {
val sent = sendRichMessage( val sent = sendRichMessage(
it.chat.id, it.chat.id,
testMarkdownInputRichMessageBlocks InputRichMessageMarkdown(
testMarkdownText
)
) )
println(sent) println(sent)
} }
// sendRichMessage with Markdown-formatted content // sendRichMessage with Markdown-formatted content
onCommand("rich_markdown_medialess") { onCommand("rich_markdown_medialess") {
val sent = sendRichMessage(
it.chat.id,
InputRichMessageMarkdown(
testMarkdownMediaLessText
)
)
println(sent)
}
// sendRichMessage with Markdown-formatted content
onCommand("rich_markdown_blocks") {
val sent = sendRichMessage(
it.chat.id,
testMarkdownInputRichMessageBlocks
)
println(sent)
}
// sendRichMessage with Markdown-formatted content
onCommand("rich_markdown_medialess_blocks") {
val sent = sendRichMessage( val sent = sendRichMessage(
it.chat.id, it.chat.id,
testMarkdownMediaLessInputRichMessageBlocks testMarkdownMediaLessInputRichMessageBlocks