diff --git a/CHANGELOG.md b/CHANGELOG.md index d3adb3df99..25d5ad3bcc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,20 @@ # TelegramBotAPI changelog +## 2.1.3 + +* `Versions`: + * `MicroUtils`: `0.11.9` -> `0.11.12` +* `Utils`: + * Rename `UserId` extension `link` to `userLink` +* `Core` + * `ChatJoinRequest#inviteLink` is nullable due to the fact that join requests without link do not require invite link + ## 2.1.2 * `Versions`: - * `Coroutines`: `1.6.1` -> `1.6.3` - * `Ktor`: `2.0.2` -> `2.0.3` - * `MicroUtils`: `0.11.6` -> `0.11.9` + * `Coroutines`: `1.6.1` -> `1.6.3` + * `Ktor`: `2.0.2` -> `2.0.3` + * `MicroUtils`: `0.11.6` -> `0.11.9` ## 2.1.1 diff --git a/gradle.properties b/gradle.properties index 790b2f75cf..073afa5cca 100644 --- a/gradle.properties +++ b/gradle.properties @@ -6,4 +6,4 @@ kotlin.incremental=true kotlin.incremental.js=true library_group=dev.inmo -library_version=2.1.2 +library_version=2.1.3 diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 055ce188e3..9db6193ec4 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -11,7 +11,7 @@ korlibs = "2.7.0" uuid = "0.4.1" ktor = "2.0.3" -microutils = "0.11.9" +microutils = "0.11.12" github-release-plugin = "2.4.1" 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 b7ea893b3c..69044c875b 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 @@ -11,6 +11,8 @@ import kotlinx.serialization.encoding.Encoder import kotlinx.serialization.json.JsonPrimitive import kotlinx.serialization.json.longOrNull +const val internalLinkBeginning = "https://t.me" + @Serializable(ChatIdentifierSerializer::class) sealed class ChatIdentifier @@ -26,16 +28,29 @@ data class ChatId( * https://core.telegram.org/bots/api#formatting-options */ @Warning("This API have restrictions in Telegram System") -val Identifier.link: String +val Identifier.userLink: String get() = "tg://user?id=$this" /** * https://core.telegram.org/bots/api#formatting-options */ @Warning("This API have restrictions in Telegram System") -val UserId.link: String - get() = chatId.link +val UserId.userLink: String + get() = chatId.userLink val User.link: String - get() = id.link + get() = id.userLink + +/** + * https://core.telegram.org/bots/api#formatting-options + */ +@Deprecated("Renamed", ReplaceWith("userLink", "dev.inmo.tgbotapi.types.userLink")) +val Identifier.link: String + get() = "tg://user?id=$this" +/** + * https://core.telegram.org/bots/api#formatting-options + */ +@Deprecated("Renamed", ReplaceWith("userLink", "dev.inmo.tgbotapi.types.userLink")) +val ChatId.link: String + get() = chatId.link typealias UserId = ChatId diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/chat/ChatJoinRequest.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/chat/ChatJoinRequest.kt index 25af5c9e36..738e95adc6 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/chat/ChatJoinRequest.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/chat/ChatJoinRequest.kt @@ -18,7 +18,7 @@ data class ChatJoinRequest( @SerialName(dateField) val date: TelegramDate, @SerialName(inviteLinkField) - val inviteLink: ChatInviteLink, + val inviteLink: ChatInviteLink? = null, @SerialName(bioField) val bio: String? = null ) : FromUser { diff --git a/tgbotapi.core/src/commonTest/kotlin/dev/inmo/tgbotapi/types/ChatIdentifierTests.kt b/tgbotapi.core/src/commonTest/kotlin/dev/inmo/tgbotapi/types/ChatIdentifierTests.kt index a90efac2c1..004de4dc0f 100644 --- a/tgbotapi.core/src/commonTest/kotlin/dev/inmo/tgbotapi/types/ChatIdentifierTests.kt +++ b/tgbotapi.core/src/commonTest/kotlin/dev/inmo/tgbotapi/types/ChatIdentifierTests.kt @@ -28,7 +28,7 @@ class ChatIdentifierTests { @Test fun `Creating_link_from_ChatId_is_correct`() { val chatId = chatIdentifierChatId.toChatId() - assertEquals(chatIdentifierLink, chatId.link) + assertEquals(chatIdentifierLink, chatId.userLink) } @Test diff --git a/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/extensions/raw/ChatJoinRequest.kt b/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/extensions/raw/ChatJoinRequest.kt index 0a30d062d3..3ddb0f9da1 100644 --- a/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/extensions/raw/ChatJoinRequest.kt +++ b/tgbotapi.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/extensions/raw/ChatJoinRequest.kt @@ -5,5 +5,5 @@ import dev.inmo.tgbotapi.types.chat.ChatJoinRequest import dev.inmo.tgbotapi.utils.RiskFeature @RiskFeature(RawFieldsUsageWarning) -val ChatJoinRequest.invite_link: ChatInviteLink +val ChatJoinRequest.invite_link: ChatInviteLink? get() = inviteLink 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 289d5cafe8..284900af4e 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 @@ -5,8 +5,6 @@ import dev.inmo.tgbotapi.types.message.textsources.link import dev.inmo.tgbotapi.types.chat.* import dev.inmo.tgbotapi.types.message.abstracts.Message -private const val internalLinkBeginning = "https://t.me" - fun makeUsernameLink(username: String) = "$internalLinkBeginning/$username" fun makeUsernameDeepLinkPrefix(username: String) = "${makeUsernameLink(username)}?start=" inline val Username.link @@ -73,7 +71,7 @@ val Message.link: String? val Chat.link: String? get() { if (this is UsernameChat) { - username ?.username ?.let { return it } + username ?.link } if (this is ExtendedPublicChat) { inviteLink ?.let { return it }