From 60e50f94928f82e6818f6de6d5e19dd32125010d Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Sun, 7 Jan 2024 21:56:31 +0600 Subject: [PATCH] improvements in Username --- .../dev/inmo/tgbotapi/types/ChatIdentifier.kt | 8 ++++++-- .../utils/formatting/LinksFormatting.kt | 16 ++++++++-------- 2 files changed, 14 insertions(+), 10 deletions(-) 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 79537d5231..30270966cd 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 @@ -87,12 +87,16 @@ fun Byte.toChatId(): IdChatIdentifier = toLong().toChatId() @Serializable(ChatIdentifierSerializer::class) @JvmInline value class Username( + @Deprecated("Renamed", ReplaceWith("full")) val username: String ) : ChatIdentifier { - val usernameWithoutAt - get() = username.dropWhile { it == '@' } val full: String get() = username + val withoutAt + get() = full.dropWhile { it == '@' } + @Deprecated("Renamed", ReplaceWith("withoutAt")) + val usernameWithoutAt + get() = withoutAt init { if (!username.startsWith("@")) { 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 af8342df7a..5364f4cdda 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 @@ -21,24 +21,24 @@ fun makeInternalTgUsernameDeepLinkPrefix(username: String) = "${makeInternalTgUs fun makeUsernameStartattachPrefix(username: String) = "$internalLinkBeginning/$username?startattach" fun makeUsernameStartattachLink(username: String, data: String? = null) = "${makeUsernameStartattachPrefix(username)}${data?.let { "=$it" } ?: ""}" inline val Username.usernameLink - get() = makeUsernameLink(usernameWithoutAt) + get() = makeUsernameLink(withoutAt) val IdChatIdentifier.chatLink: String get() = makeChatLink(chatId, threadId) fun ChatId.link(threadId: MessageThreadId?) = makeChatLink(chatId, threadId) -inline fun Username.link(threadId: MessageThreadId?) = makeUsernameLink(usernameWithoutAt, threadId) +inline fun Username.link(threadId: MessageThreadId?) = makeUsernameLink(withoutAt, threadId) inline val Username.deepLinkPrefix - get() = makeUsernameDeepLinkPrefix(usernameWithoutAt) + get() = makeUsernameDeepLinkPrefix(withoutAt) inline val Username.startattachPrefix - get() = makeUsernameStartattachPrefix(usernameWithoutAt) + get() = makeUsernameStartattachPrefix(withoutAt) inline fun makeLink(username: Username, threadId: MessageThreadId? = null) = username.link(threadId) inline fun makeTelegramDeepLink(username: String, startParameter: String) = "${makeUsernameDeepLinkPrefix(username)}$startParameter".encodeURLQueryComponent() inline fun makeInternalTgDeepLink(username: String, startParameter: String) = "${makeInternalTgUsernameDeepLinkPrefix(username)}$startParameter".encodeURLQueryComponent() inline fun makeInternalTgDeepLink(username: Username, startParameter: String) = - makeInternalTgDeepLink(username.usernameWithoutAt, startParameter) + makeInternalTgDeepLink(username.withoutAt, startParameter) inline fun makeTelegramStartattach(username: String, data: String? = null) = makeUsernameStartattachLink(username, data) -inline fun makeDeepLink(username: Username, startParameter: String) = makeTelegramDeepLink(username.usernameWithoutAt, startParameter) +inline fun makeDeepLink(username: Username, startParameter: String) = makeTelegramDeepLink(username.withoutAt, startParameter) inline fun makeTelegramDeepLink(username: Username, startParameter: String) = makeDeepLink(username, startParameter) -inline fun makeTelegramStartattach(username: Username, data: String? = null) = makeTelegramStartattach(username.usernameWithoutAt, data) +inline fun makeTelegramStartattach(username: Username, data: String? = null) = makeTelegramStartattach(username.withoutAt, data) private val linkIdRedundantPartRegex = Regex("^-100") private val usernameBeginSymbolRegex = Regex("^@") @@ -52,7 +52,7 @@ fun makeLinkToMessage( username: Username, messageId: MessageId, threadId: MessageThreadId? = null -): String = makeLinkToMessage(username.usernameWithoutAt, messageId, threadId) +): String = makeLinkToMessage(username.withoutAt, messageId, threadId) fun makeLinkToMessage( chatId: Identifier, messageId: MessageId,