mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI.git
synced 2026-07-01 15:45:31 +00:00
refactor/fixes in rich parts
This commit is contained in:
@@ -35105,8 +35105,8 @@ public final class dev/inmo/tgbotapi/types/rich/RichBlockSectionHeading : dev/in
|
||||
public static synthetic fun copy$default (Ldev/inmo/tgbotapi/types/rich/RichBlockSectionHeading;Ldev/inmo/tgbotapi/types/rich/RichText;IILjava/lang/Object;)Ldev/inmo/tgbotapi/types/rich/RichBlockSectionHeading;
|
||||
public fun equals (Ljava/lang/Object;)Z
|
||||
public fun getHtml ()Ljava/lang/String;
|
||||
public final fun getLevel ()I
|
||||
public fun getMarkdown ()Ljava/lang/String;
|
||||
public final fun getSize ()I
|
||||
public final fun getText ()Ldev/inmo/tgbotapi/types/rich/RichText;
|
||||
public fun getType ()Ljava/lang/String;
|
||||
public fun hashCode ()I
|
||||
@@ -35369,8 +35369,8 @@ public final class dev/inmo/tgbotapi/types/rich/RichBlocksBuilder {
|
||||
public final fun divider ()V
|
||||
public final fun footer (Ljava/lang/String;)V
|
||||
public final fun footer (Lkotlin/jvm/functions/Function1;)V
|
||||
public final fun heading (ILjava/lang/String;)V
|
||||
public final fun heading (ILkotlin/jvm/functions/Function1;)V
|
||||
public final fun heading (Ljava/lang/String;I)V
|
||||
public final fun heading (Lkotlin/jvm/functions/Function1;I)V
|
||||
public final fun list (Lkotlin/jvm/functions/Function1;)V
|
||||
public final fun mathematicalExpression (Ljava/lang/String;)V
|
||||
public final fun paragraph (Ljava/lang/String;)V
|
||||
@@ -35589,8 +35589,8 @@ public final class dev/inmo/tgbotapi/types/rich/RichTextBuilder {
|
||||
public final fun code (Ljava/lang/String;)V
|
||||
public final fun code (Lkotlin/jvm/functions/Function1;)V
|
||||
public final fun customEmoji-R1fjqgo (Ljava/lang/String;Ljava/lang/String;)V
|
||||
public final fun dateTime (JLjava/lang/String;Ljava/lang/String;)V
|
||||
public final fun dateTime (JLjava/lang/String;Lkotlin/jvm/functions/Function1;)V
|
||||
public final fun dateTime (Ljava/lang/String;Ldev/inmo/tgbotapi/types/TelegramDate;Ljava/lang/String;)V
|
||||
public final fun dateTime (Lkotlin/jvm/functions/Function1;Ldev/inmo/tgbotapi/types/TelegramDate;Ljava/lang/String;)V
|
||||
public final fun email (Ljava/lang/String;Ljava/lang/String;)V
|
||||
public final fun email (Ljava/lang/String;Lkotlin/jvm/functions/Function1;)V
|
||||
public final fun hashtag (Ljava/lang/String;Ljava/lang/String;)V
|
||||
@@ -35735,12 +35735,12 @@ public final class dev/inmo/tgbotapi/types/rich/RichTextCustomEmoji$Companion {
|
||||
public final class dev/inmo/tgbotapi/types/rich/RichTextDateTime : dev/inmo/tgbotapi/types/rich/RichTextEntity {
|
||||
public static final field Companion Ldev/inmo/tgbotapi/types/rich/RichTextDateTime$Companion;
|
||||
public static final field TYPE Ljava/lang/String;
|
||||
public fun <init> (Ldev/inmo/tgbotapi/types/rich/RichText;JLjava/lang/String;)V
|
||||
public fun <init> (Ldev/inmo/tgbotapi/types/rich/RichText;Ldev/inmo/tgbotapi/types/TelegramDate;Ljava/lang/String;)V
|
||||
public final fun component1 ()Ldev/inmo/tgbotapi/types/rich/RichText;
|
||||
public final fun component2 ()J
|
||||
public final fun component2 ()Ldev/inmo/tgbotapi/types/TelegramDate;
|
||||
public final fun component3 ()Ljava/lang/String;
|
||||
public final fun copy (Ldev/inmo/tgbotapi/types/rich/RichText;JLjava/lang/String;)Ldev/inmo/tgbotapi/types/rich/RichTextDateTime;
|
||||
public static synthetic fun copy$default (Ldev/inmo/tgbotapi/types/rich/RichTextDateTime;Ldev/inmo/tgbotapi/types/rich/RichText;JLjava/lang/String;ILjava/lang/Object;)Ldev/inmo/tgbotapi/types/rich/RichTextDateTime;
|
||||
public final fun copy (Ldev/inmo/tgbotapi/types/rich/RichText;Ldev/inmo/tgbotapi/types/TelegramDate;Ljava/lang/String;)Ldev/inmo/tgbotapi/types/rich/RichTextDateTime;
|
||||
public static synthetic fun copy$default (Ldev/inmo/tgbotapi/types/rich/RichTextDateTime;Ldev/inmo/tgbotapi/types/rich/RichText;Ldev/inmo/tgbotapi/types/TelegramDate;Ljava/lang/String;ILjava/lang/Object;)Ldev/inmo/tgbotapi/types/rich/RichTextDateTime;
|
||||
public fun equals (Ljava/lang/Object;)Z
|
||||
public final fun getDateTimeFormat ()Ljava/lang/String;
|
||||
public fun getHtml ()Ljava/lang/String;
|
||||
@@ -35748,7 +35748,7 @@ public final class dev/inmo/tgbotapi/types/rich/RichTextDateTime : dev/inmo/tgbo
|
||||
public fun getRawText ()Ljava/lang/String;
|
||||
public final fun getText ()Ldev/inmo/tgbotapi/types/rich/RichText;
|
||||
public fun getType ()Ljava/lang/String;
|
||||
public final fun getUnixTime ()J
|
||||
public final fun getUnixTime ()Ldev/inmo/tgbotapi/types/TelegramDate;
|
||||
public fun hashCode ()I
|
||||
public fun toString ()Ljava/lang/String;
|
||||
}
|
||||
@@ -35765,8 +35765,8 @@ public final synthetic class dev/inmo/tgbotapi/types/rich/RichTextDateTime$$seri
|
||||
}
|
||||
|
||||
public final class dev/inmo/tgbotapi/types/rich/RichTextDateTime$Companion {
|
||||
public final fun html (Ldev/inmo/tgbotapi/types/rich/RichText;JLjava/lang/String;)Ljava/lang/String;
|
||||
public final fun markdown (Ldev/inmo/tgbotapi/types/rich/RichText;JLjava/lang/String;)Ljava/lang/String;
|
||||
public final fun html (Ldev/inmo/tgbotapi/types/rich/RichText;Ldev/inmo/tgbotapi/types/TelegramDate;Ljava/lang/String;)Ljava/lang/String;
|
||||
public final fun markdown (Ldev/inmo/tgbotapi/types/rich/RichText;Ldev/inmo/tgbotapi/types/TelegramDate;Ljava/lang/String;)Ljava/lang/String;
|
||||
public final fun serializer ()Lkotlinx/serialization/KSerializer;
|
||||
}
|
||||
|
||||
|
||||
@@ -72,14 +72,14 @@ data class RichBlockSectionHeading(
|
||||
* Relative size of the text font; 1-6, 1 is the largest, 6 is the smallest.
|
||||
*/
|
||||
@SerialName(sizeField)
|
||||
val size: Int
|
||||
val level: Int
|
||||
) : RichBlock {
|
||||
@EncodeDefault
|
||||
@SerialName(typeField)
|
||||
override val type: String = TYPE
|
||||
|
||||
override val markdown: String = markdown(text, size)
|
||||
override val html: String = html(text, size)
|
||||
override val markdown: String = markdown(text, level)
|
||||
override val html: String = html(text, level)
|
||||
|
||||
companion object {
|
||||
const val TYPE = "heading"
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package dev.inmo.tgbotapi.types.rich
|
||||
|
||||
import dev.inmo.tgbotapi.types.CustomEmojiId
|
||||
import dev.inmo.tgbotapi.types.TelegramDate
|
||||
import dev.inmo.tgbotapi.types.chat.User
|
||||
|
||||
/**
|
||||
@@ -56,12 +57,12 @@ class RichTextBuilder {
|
||||
fun code(text: String) = add(RichTextCode(RichTextPlain(text)))
|
||||
fun code(block: RichTextBuilder.() -> Unit) = add(RichTextCode(buildRichText(block)))
|
||||
|
||||
fun dateTime(unixTime: Long, dateTimeFormat: String, text: String) =
|
||||
fun dateTime(text: String, unixTime: TelegramDate, dateTimeFormat: String) =
|
||||
add(RichTextDateTime(RichTextPlain(text), unixTime, dateTimeFormat))
|
||||
fun dateTime(unixTime: Long, dateTimeFormat: String, block: RichTextBuilder.() -> Unit) =
|
||||
fun dateTime(unixTime: TelegramDate, dateTimeFormat: String, block: RichTextBuilder.() -> Unit) =
|
||||
add(RichTextDateTime(buildRichText(block), unixTime, dateTimeFormat))
|
||||
|
||||
fun textMention(user: User, text: String) = add(RichTextTextMention(RichTextPlain(text), user))
|
||||
fun textMention(text: String, user: User) = add(RichTextTextMention(RichTextPlain(text), user))
|
||||
fun textMention(user: User, block: RichTextBuilder.() -> Unit) = add(RichTextTextMention(buildRichText(block), user))
|
||||
|
||||
fun customEmoji(customEmojiId: CustomEmojiId, alternativeText: String) =
|
||||
@@ -69,44 +70,44 @@ class RichTextBuilder {
|
||||
|
||||
fun mathematicalExpression(expression: String) = add(RichTextMathematicalExpression(expression))
|
||||
|
||||
fun url(url: String, text: String) = add(RichTextUrl(RichTextPlain(text), url))
|
||||
fun url(text: String, url: String) = add(RichTextUrl(RichTextPlain(text), url))
|
||||
fun url(url: String, block: RichTextBuilder.() -> Unit) = add(RichTextUrl(buildRichText(block), url))
|
||||
|
||||
fun email(emailAddress: String, text: String) = add(RichTextEmailAddress(RichTextPlain(text), emailAddress))
|
||||
fun email(text: String, emailAddress: String) = add(RichTextEmailAddress(RichTextPlain(text), emailAddress))
|
||||
fun email(emailAddress: String, block: RichTextBuilder.() -> Unit) =
|
||||
add(RichTextEmailAddress(buildRichText(block), emailAddress))
|
||||
|
||||
fun phone(phoneNumber: String, text: String) = add(RichTextPhoneNumber(RichTextPlain(text), phoneNumber))
|
||||
fun phone(text: String, phoneNumber: String) = add(RichTextPhoneNumber(RichTextPlain(text), phoneNumber))
|
||||
fun phone(phoneNumber: String, block: RichTextBuilder.() -> Unit) =
|
||||
add(RichTextPhoneNumber(buildRichText(block), phoneNumber))
|
||||
|
||||
fun bankCard(bankCardNumber: String, text: String) = add(RichTextBankCardNumber(RichTextPlain(text), bankCardNumber))
|
||||
fun bankCard(text: String, bankCardNumber: String) = add(RichTextBankCardNumber(RichTextPlain(text), bankCardNumber))
|
||||
fun bankCard(bankCardNumber: String, block: RichTextBuilder.() -> Unit) =
|
||||
add(RichTextBankCardNumber(buildRichText(block), bankCardNumber))
|
||||
|
||||
fun mention(username: String, text: String) = add(RichTextMention(RichTextPlain(text), username))
|
||||
fun mention(text: String, username: String) = add(RichTextMention(RichTextPlain(text), username))
|
||||
fun mention(username: String, block: RichTextBuilder.() -> Unit) = add(RichTextMention(buildRichText(block), username))
|
||||
|
||||
fun hashtag(hashtag: String, text: String) = add(RichTextHashtag(RichTextPlain(text), hashtag))
|
||||
fun hashtag(text: String, hashtag: String) = add(RichTextHashtag(RichTextPlain(text), hashtag))
|
||||
fun hashtag(hashtag: String, block: RichTextBuilder.() -> Unit) = add(RichTextHashtag(buildRichText(block), hashtag))
|
||||
|
||||
fun cashtag(cashtag: String, text: String) = add(RichTextCashtag(RichTextPlain(text), cashtag))
|
||||
fun cashtag(text: String, cashtag: String) = add(RichTextCashtag(RichTextPlain(text), cashtag))
|
||||
fun cashtag(cashtag: String, block: RichTextBuilder.() -> Unit) = add(RichTextCashtag(buildRichText(block), cashtag))
|
||||
|
||||
fun botCommand(botCommand: String, text: String) = add(RichTextBotCommand(RichTextPlain(text), botCommand))
|
||||
fun botCommand(text: String, botCommand: String) = add(RichTextBotCommand(RichTextPlain(text), botCommand))
|
||||
fun botCommand(botCommand: String, block: RichTextBuilder.() -> Unit) =
|
||||
add(RichTextBotCommand(buildRichText(block), botCommand))
|
||||
|
||||
fun anchor(name: String) = add(RichTextAnchor(name))
|
||||
|
||||
fun anchorLink(anchorName: String, text: String) = add(RichTextAnchorLink(RichTextPlain(text), anchorName))
|
||||
fun anchorLink(text: String, anchorName: String) = add(RichTextAnchorLink(RichTextPlain(text), anchorName))
|
||||
fun anchorLink(anchorName: String, block: RichTextBuilder.() -> Unit) =
|
||||
add(RichTextAnchorLink(buildRichText(block), anchorName))
|
||||
|
||||
fun reference(name: String, text: String) = add(RichTextReference(RichTextPlain(text), name))
|
||||
fun reference(text: String, name: String) = add(RichTextReference(RichTextPlain(text), name))
|
||||
fun reference(name: String, block: RichTextBuilder.() -> Unit) = add(RichTextReference(buildRichText(block), name))
|
||||
|
||||
fun referenceLink(referenceName: String, text: String) =
|
||||
fun referenceLink(text: String, referenceName: String) =
|
||||
add(RichTextReferenceLink(RichTextPlain(text), referenceName))
|
||||
fun referenceLink(referenceName: String, block: RichTextBuilder.() -> Unit) =
|
||||
add(RichTextReferenceLink(buildRichText(block), referenceName))
|
||||
@@ -163,8 +164,8 @@ class RichBlocksBuilder {
|
||||
fun paragraph(text: String) = add(RichBlockParagraph(RichTextPlain(text)))
|
||||
fun paragraph(block: RichTextBuilder.() -> Unit) = add(RichBlockParagraph(buildRichText(block)))
|
||||
|
||||
fun heading(size: Int, text: String) = add(RichBlockSectionHeading(RichTextPlain(text), size))
|
||||
fun heading(size: Int, block: RichTextBuilder.() -> Unit) = add(RichBlockSectionHeading(buildRichText(block), size))
|
||||
fun heading(text: String, level: Int) = add(RichBlockSectionHeading(RichTextPlain(text), level))
|
||||
fun heading(level: Int, block: RichTextBuilder.() -> Unit) = add(RichBlockSectionHeading(buildRichText(block), level))
|
||||
|
||||
fun preformatted(text: String, language: String? = null) = add(RichBlockPreformatted(RichTextPlain(text), language))
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@ import dev.inmo.tgbotapi.types.internalUserLinkBeginning
|
||||
import dev.inmo.tgbotapi.types.nameField
|
||||
import dev.inmo.tgbotapi.types.phoneNumberField
|
||||
import dev.inmo.tgbotapi.types.referenceNameField
|
||||
import dev.inmo.tgbotapi.types.TelegramDate
|
||||
import dev.inmo.tgbotapi.types.textField
|
||||
import dev.inmo.tgbotapi.types.typeField
|
||||
import dev.inmo.tgbotapi.types.unixTimeField
|
||||
@@ -262,7 +263,7 @@ data class RichTextDateTime(
|
||||
@SerialName(textField)
|
||||
val text: RichText,
|
||||
@SerialName(unixTimeField)
|
||||
val unixTime: Long,
|
||||
val unixTime: TelegramDate,
|
||||
@SerialName(dateTimeFormatField)
|
||||
val dateTimeFormat: String
|
||||
) : RichTextEntity {
|
||||
@@ -276,10 +277,10 @@ data class RichTextDateTime(
|
||||
|
||||
companion object {
|
||||
const val TYPE = "date_time"
|
||||
fun markdown(text: RichText, unixTime: Long, dateTimeFormat: String): String =
|
||||
""
|
||||
fun html(text: RichText, unixTime: Long, dateTimeFormat: String): String =
|
||||
"<tg-time unix=\"$unixTime\" format=\"$dateTimeFormat\">${text.html}</tg-time>"
|
||||
fun markdown(text: RichText, unixTime: TelegramDate, dateTimeFormat: String): String =
|
||||
""
|
||||
fun html(text: RichText, unixTime: TelegramDate, dateTimeFormat: String): String =
|
||||
"<tg-time unix=\"${unixTime.date}\" format=\"$dateTimeFormat\">${text.html}</tg-time>"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ class RichMessageSerializationTest {
|
||||
|
||||
val heading = message.blocks[1] as RichBlockSectionHeading
|
||||
assertEquals(RichTextPlain("Title"), heading.text)
|
||||
assertEquals(1, heading.size)
|
||||
assertEquals(1, heading.level)
|
||||
|
||||
assertTrue(message.blocks[2] is RichBlockDivider)
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ class RichTextDslTest {
|
||||
@Test
|
||||
fun buildsBlocks() {
|
||||
val blocks = buildRichBlocks {
|
||||
heading(1, "Title")
|
||||
heading("Title", 1)
|
||||
paragraph {
|
||||
plain("Hello ")
|
||||
bold("world")
|
||||
|
||||
@@ -3,6 +3,7 @@ package dev.inmo.tgbotapi.types.rich
|
||||
import dev.inmo.tgbotapi.types.ChatId
|
||||
import dev.inmo.tgbotapi.types.CustomEmojiId
|
||||
import dev.inmo.tgbotapi.types.RawChatId
|
||||
import dev.inmo.tgbotapi.types.TelegramDate
|
||||
import dev.inmo.tgbotapi.types.chat.CommonUser
|
||||
import kotlin.test.Test
|
||||
import kotlin.test.assertEquals
|
||||
@@ -73,7 +74,7 @@ class RichTextFormattingTest {
|
||||
|
||||
@Test
|
||||
fun dateTime() {
|
||||
val entity = RichTextDateTime(RichTextPlain("now"), 1647531900L, "wDT")
|
||||
val entity = RichTextDateTime(RichTextPlain("now"), TelegramDate(1647531900L), "wDT")
|
||||
assertEquals("", entity.markdown)
|
||||
assertEquals("<tg-time unix=\"1647531900\" format=\"wDT\">now</tg-time>", entity.html)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user