From dad42cf9390873c39e43bfcfce5cad46be45b218 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Mon, 13 Feb 2023 11:16:49 +0600 Subject: [PATCH] makeUserLink --- CHANGELOG.md | 3 +++ .../kotlin/dev/inmo/tgbotapi/types/ChatIdentifier.kt | 3 ++- .../tgbotapi/extensions/utils/formatting/LinksFormatting.kt | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 99dedf75a5..878dba441f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ ## 5.1.1 +* `Core`: + * Add opportunity to get user link with `makeUserLink` + ## 5.1.0 [Bot API 6.5](https://core.telegram.org/bots/api-changelog#february-3-2023) support diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/ChatIdentifier.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/ChatIdentifier.kt index 625b8eaa4c..9165779964 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/ChatIdentifier.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/ChatIdentifier.kt @@ -14,6 +14,7 @@ import kotlinx.serialization.json.longOrNull import kotlin.jvm.JvmInline const val internalLinkBeginning = "https://t.me" +const val internalUserLinkBeginning = "tg://user?id=" @Serializable(ChatIdentifierSerializer::class) @ClassCastsIncluded @@ -66,7 +67,7 @@ fun IdChatIdentifier.toChatWithThreadId(threadId: MessageThreadId) = IdChatIdent */ @Warning("This API have restrictions in Telegram System") val Identifier.userLink: String - get() = "tg://user?id=$this" + get() = "$internalUserLinkBeginning$this" /** * https://core.telegram.org/bots/api#formatting-options */ diff --git a/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/formatting/LinksFormatting.kt b/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/formatting/LinksFormatting.kt index d44a86475e..06fdef0e89 100644 --- a/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/formatting/LinksFormatting.kt +++ b/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/formatting/LinksFormatting.kt @@ -8,6 +8,7 @@ import io.ktor.http.encodeURLQueryComponent fun makeUsernameLink(username: String, threadId: MessageThreadId? = null) = "$internalLinkBeginning/$username${threadId ?.let { "/$it" } ?: ""}" +fun makeUserLink(userId: UserId) = userId.userLink fun makeChatLink(identifier: Identifier, threadId: MessageThreadId? = null) = identifier.toString().replace( linkIdRedundantPartRegex, ""