mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI.git
synced 2024-12-22 16:47:13 +00:00
hotfix for username
This commit is contained in:
parent
3d786ee4bb
commit
a1b2aed78c
@ -28,6 +28,10 @@ work with media groups lists
|
||||
* Now most part of usernames in library have type `Username`
|
||||
* Fix `replyMarkup` in `InlineQueryResultArticle`
|
||||
|
||||
### 0.10.3
|
||||
|
||||
* Hotfix for username data class
|
||||
|
||||
## 0.9.0
|
||||
|
||||
* Old extension `OkHttpClient.Builder#useWith` now deprecated and must be replaced by the same in
|
||||
|
@ -1,4 +1,4 @@
|
||||
project.version = "0.10.2"
|
||||
project.version = "0.10.3"
|
||||
project.group = "com.github.insanusmokrassar"
|
||||
|
||||
buildscript {
|
||||
|
@ -19,19 +19,11 @@ fun Identifier.toChatId(): ChatId = ChatId(this)
|
||||
|
||||
@Serializable(ChatIdentifierSerializer::class)
|
||||
data class Username(
|
||||
private val baseUsername: String
|
||||
val username: String
|
||||
) : ChatIdentifier() {
|
||||
@Transient
|
||||
val username: String = if (!baseUsername.startsWith("@")) {
|
||||
"@$baseUsername"
|
||||
} else {
|
||||
baseUsername
|
||||
}
|
||||
|
||||
override fun equals(other: Any?): Boolean {
|
||||
return super.equals(other) || when (other) {
|
||||
is String -> super.equals("@$other")
|
||||
else -> false
|
||||
init {
|
||||
if (!username.startsWith("@")) {
|
||||
throw IllegalArgumentException("Username must starts with `@`")
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -44,7 +36,11 @@ internal class ChatIdentifierSerializer: KSerializer<ChatIdentifier> {
|
||||
val id = input.decodeString()
|
||||
return id.toLongOrNull() ?.let {
|
||||
ChatId(it)
|
||||
} ?: Username(id)
|
||||
} ?: if (!id.startsWith("@")) {
|
||||
Username("@$id")
|
||||
} else {
|
||||
Username(id)
|
||||
}
|
||||
}
|
||||
|
||||
override fun serialize(output: Encoder, obj: ChatIdentifier) {
|
||||
|
Loading…
Reference in New Issue
Block a user