mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI.git
synced 2025-11-24 16:26:01 +00:00
UpdateId is value class now
This commit is contained in:
@@ -21,7 +21,7 @@ private val updatesListSerializer = ListSerializer(
|
||||
*/
|
||||
@Serializable
|
||||
data class GetUpdates(
|
||||
override val offset: UpdateIdentifier? = null,// set `last update id + 1` to receive next part of updates
|
||||
override val offset: UpdateId? = null,// set `last update id + 1` to receive next part of updates
|
||||
override val limit: Int = getUpdatesLimit.last,
|
||||
override val timeout: Seconds? = null,
|
||||
override val allowed_updates: List<String>? = ALL_UPDATES_LIST
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
package dev.inmo.tgbotapi.requests
|
||||
|
||||
import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest
|
||||
import dev.inmo.tgbotapi.types.ALL_UPDATES_LIST
|
||||
import dev.inmo.tgbotapi.types.Seconds
|
||||
import dev.inmo.tgbotapi.types.UpdateIdentifier
|
||||
import dev.inmo.tgbotapi.types.UpdateId
|
||||
import dev.inmo.tgbotapi.types.getUpdatesLimit
|
||||
import kotlinx.serialization.DeserializationStrategy
|
||||
import kotlinx.serialization.Serializable
|
||||
@@ -16,7 +15,7 @@ import kotlinx.serialization.json.JsonArray
|
||||
*/
|
||||
@Serializable
|
||||
data class GetUpdatesRaw(
|
||||
override val offset: UpdateIdentifier? = null,// set `last update id + 1` to receive next part of updates
|
||||
override val offset: UpdateId? = null,// set `last update id + 1` to receive next part of updates
|
||||
override val limit: Int = getUpdatesLimit.last,
|
||||
override val timeout: Seconds? = null,
|
||||
override val allowed_updates: List<String>? = ALL_UPDATES_LIST
|
||||
|
||||
@@ -1,14 +1,11 @@
|
||||
package dev.inmo.tgbotapi.requests
|
||||
|
||||
import dev.inmo.tgbotapi.requests.abstracts.Request
|
||||
import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest
|
||||
import dev.inmo.tgbotapi.types.ALL_UPDATES_LIST
|
||||
import dev.inmo.tgbotapi.types.Seconds
|
||||
import dev.inmo.tgbotapi.types.UpdateIdentifier
|
||||
import dev.inmo.tgbotapi.types.getUpdatesLimit
|
||||
import dev.inmo.tgbotapi.types.UpdateId
|
||||
|
||||
interface GetUpdatesRequest<T : Any> : SimpleRequest<T> {
|
||||
val offset: UpdateIdentifier?
|
||||
val offset: UpdateId?
|
||||
val limit: Int
|
||||
val timeout: Seconds?
|
||||
val allowed_updates: List<String>?
|
||||
|
||||
@@ -11,7 +11,6 @@ import kotlin.jvm.JvmInline
|
||||
|
||||
typealias Identifier = Long
|
||||
typealias MessageIdentifier = MessageId
|
||||
typealias UpdateIdentifier = Long
|
||||
typealias ForwardSignature = String
|
||||
typealias ForwardSenderName = String
|
||||
typealias AuthorSignature = ForwardSignature
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
package dev.inmo.tgbotapi.types
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlin.jvm.JvmInline
|
||||
|
||||
@Serializable
|
||||
@JvmInline
|
||||
value class UpdateId(
|
||||
val long: Long
|
||||
) : Comparable<UpdateId> {
|
||||
operator fun plus(long: Long) = UpdateId(this.long + long)
|
||||
operator fun minus(long: Long) = UpdateId(this.long - long)
|
||||
|
||||
override fun compareTo(other: UpdateId): Int {
|
||||
return long.compareTo(other.long)
|
||||
}
|
||||
}
|
||||
|
||||
@Deprecated("Renamed", ReplaceWith("UpdateId", "dev.inmo.tgbotapi.types.UpdateId"))
|
||||
typealias UpdateIdentifier = UpdateId
|
||||
@@ -1,10 +1,10 @@
|
||||
package dev.inmo.tgbotapi.types.update
|
||||
|
||||
import dev.inmo.tgbotapi.types.queries.callback.CallbackQuery
|
||||
import dev.inmo.tgbotapi.types.UpdateIdentifier
|
||||
import dev.inmo.tgbotapi.types.UpdateId
|
||||
import dev.inmo.tgbotapi.types.update.abstracts.Update
|
||||
|
||||
data class CallbackQueryUpdate(
|
||||
override val updateId: UpdateIdentifier,
|
||||
override val updateId: UpdateId,
|
||||
override val data: CallbackQuery
|
||||
) : Update
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
package dev.inmo.tgbotapi.types.update
|
||||
|
||||
import dev.inmo.tgbotapi.types.UpdateIdentifier
|
||||
import dev.inmo.tgbotapi.types.UpdateId
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.AccessibleMessage
|
||||
import dev.inmo.tgbotapi.types.update.abstracts.BaseSentMessageUpdate
|
||||
|
||||
data class ChannelPostUpdate(
|
||||
override val updateId: UpdateIdentifier,
|
||||
override val updateId: UpdateId,
|
||||
override val data: AccessibleMessage
|
||||
) : BaseSentMessageUpdate {
|
||||
override fun copy(newData: AccessibleMessage): BaseSentMessageUpdate = copy(updateId, newData)
|
||||
|
||||
@@ -1,14 +1,12 @@
|
||||
package dev.inmo.tgbotapi.types.update
|
||||
|
||||
import dev.inmo.tgbotapi.types.UpdateIdentifier
|
||||
import dev.inmo.tgbotapi.types.UpdateId
|
||||
import dev.inmo.tgbotapi.types.boosts.ChatBoostRemoved
|
||||
import dev.inmo.tgbotapi.types.boosts.ChatBoostUpdated
|
||||
import dev.inmo.tgbotapi.types.chat.ChatMessageReactionUpdated
|
||||
import dev.inmo.tgbotapi.types.update.abstracts.Update
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
@Serializable
|
||||
data class ChatBoostRemovedUpdate(
|
||||
override val updateId: UpdateIdentifier,
|
||||
override val updateId: UpdateId,
|
||||
override val data: ChatBoostRemoved
|
||||
) : Update
|
||||
@@ -1,13 +1,12 @@
|
||||
package dev.inmo.tgbotapi.types.update
|
||||
|
||||
import dev.inmo.tgbotapi.types.UpdateIdentifier
|
||||
import dev.inmo.tgbotapi.types.UpdateId
|
||||
import dev.inmo.tgbotapi.types.boosts.ChatBoostUpdated
|
||||
import dev.inmo.tgbotapi.types.chat.ChatMessageReactionUpdated
|
||||
import dev.inmo.tgbotapi.types.update.abstracts.Update
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
@Serializable
|
||||
data class ChatBoostUpdatedUpdate(
|
||||
override val updateId: UpdateIdentifier,
|
||||
override val updateId: UpdateId,
|
||||
override val data: ChatBoostUpdated
|
||||
) : Update
|
||||
@@ -1,10 +1,10 @@
|
||||
package dev.inmo.tgbotapi.types.update
|
||||
|
||||
import dev.inmo.tgbotapi.types.chat.ChatJoinRequest
|
||||
import dev.inmo.tgbotapi.types.UpdateIdentifier
|
||||
import dev.inmo.tgbotapi.types.UpdateId
|
||||
import dev.inmo.tgbotapi.types.update.abstracts.Update
|
||||
|
||||
data class ChatJoinRequestUpdate(
|
||||
override val updateId: UpdateIdentifier,
|
||||
override val updateId: UpdateId,
|
||||
override val data: ChatJoinRequest
|
||||
) : Update
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
package dev.inmo.tgbotapi.types.update
|
||||
|
||||
import dev.inmo.tgbotapi.types.UpdateIdentifier
|
||||
import dev.inmo.tgbotapi.types.UpdateId
|
||||
import dev.inmo.tgbotapi.types.chat.ChatMessageReactionUpdated
|
||||
import dev.inmo.tgbotapi.types.update.abstracts.Update
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
@Serializable
|
||||
data class ChatMessageReactionUpdatedUpdate(
|
||||
override val updateId: UpdateIdentifier,
|
||||
override val updateId: UpdateId,
|
||||
override val data: ChatMessageReactionUpdated
|
||||
) : Update
|
||||
@@ -1,13 +1,12 @@
|
||||
package dev.inmo.tgbotapi.types.update
|
||||
|
||||
import dev.inmo.tgbotapi.types.UpdateIdentifier
|
||||
import dev.inmo.tgbotapi.types.chat.ChatMessageReactionUpdated
|
||||
import dev.inmo.tgbotapi.types.UpdateId
|
||||
import dev.inmo.tgbotapi.types.chat.ChatMessageReactionsCountUpdated
|
||||
import dev.inmo.tgbotapi.types.update.abstracts.Update
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
@Serializable
|
||||
data class ChatMessageReactionsCountUpdatedUpdate(
|
||||
override val updateId: UpdateIdentifier,
|
||||
override val updateId: UpdateId,
|
||||
override val data: ChatMessageReactionsCountUpdated
|
||||
) : Update
|
||||
@@ -1,10 +1,10 @@
|
||||
package dev.inmo.tgbotapi.types.update
|
||||
|
||||
import dev.inmo.tgbotapi.types.InlineQueries.ChosenInlineResult.ChosenInlineResult
|
||||
import dev.inmo.tgbotapi.types.UpdateIdentifier
|
||||
import dev.inmo.tgbotapi.types.UpdateId
|
||||
import dev.inmo.tgbotapi.types.update.abstracts.Update
|
||||
|
||||
data class ChosenInlineResultUpdate(
|
||||
override val updateId: UpdateIdentifier,
|
||||
override val updateId: UpdateId,
|
||||
override val data: ChosenInlineResult
|
||||
) : Update
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
package dev.inmo.tgbotapi.types.update
|
||||
|
||||
import dev.inmo.tgbotapi.types.chat.member.ChatMemberUpdated
|
||||
import dev.inmo.tgbotapi.types.UpdateIdentifier
|
||||
import dev.inmo.tgbotapi.types.UpdateId
|
||||
import dev.inmo.tgbotapi.types.update.abstracts.ChatMemberUpdatedUpdate
|
||||
|
||||
data class CommonChatMemberUpdatedUpdate(
|
||||
override val updateId: UpdateIdentifier,
|
||||
override val updateId: UpdateId,
|
||||
override val data: ChatMemberUpdated
|
||||
) : ChatMemberUpdatedUpdate
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
package dev.inmo.tgbotapi.types.update
|
||||
|
||||
import dev.inmo.tgbotapi.types.UpdateIdentifier
|
||||
import dev.inmo.tgbotapi.types.UpdateId
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.CommonMessage
|
||||
import dev.inmo.tgbotapi.types.update.abstracts.BaseEditMessageUpdate
|
||||
|
||||
data class EditChannelPostUpdate(
|
||||
override val updateId: UpdateIdentifier,
|
||||
override val updateId: UpdateId,
|
||||
override val data: CommonMessage<*>
|
||||
) : BaseEditMessageUpdate
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
package dev.inmo.tgbotapi.types.update
|
||||
|
||||
import dev.inmo.tgbotapi.types.UpdateIdentifier
|
||||
import dev.inmo.tgbotapi.types.UpdateId
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.CommonMessage
|
||||
import dev.inmo.tgbotapi.types.update.abstracts.BaseEditMessageUpdate
|
||||
|
||||
data class EditMessageUpdate(
|
||||
override val updateId: UpdateIdentifier,
|
||||
override val updateId: UpdateId,
|
||||
override val data: CommonMessage<*>
|
||||
) : BaseEditMessageUpdate
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
package dev.inmo.tgbotapi.types.update
|
||||
|
||||
import dev.inmo.tgbotapi.types.InlineQueries.query.InlineQuery
|
||||
import dev.inmo.tgbotapi.types.UpdateIdentifier
|
||||
import dev.inmo.tgbotapi.types.UpdateId
|
||||
import dev.inmo.tgbotapi.types.update.abstracts.Update
|
||||
|
||||
data class InlineQueryUpdate(
|
||||
override val updateId: UpdateIdentifier,
|
||||
override val updateId: UpdateId,
|
||||
override val data: InlineQuery
|
||||
) : Update
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
package dev.inmo.tgbotapi.types.update
|
||||
|
||||
import dev.inmo.tgbotapi.types.UpdateIdentifier
|
||||
import dev.inmo.tgbotapi.types.UpdateId
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.AccessibleMessage
|
||||
import dev.inmo.tgbotapi.types.update.abstracts.BaseSentMessageUpdate
|
||||
|
||||
data class MessageUpdate(
|
||||
override val updateId: UpdateIdentifier,
|
||||
override val updateId: UpdateId,
|
||||
override val data: AccessibleMessage
|
||||
) : BaseSentMessageUpdate {
|
||||
override fun copy(newData: AccessibleMessage) = copy(updateId, newData)
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
package dev.inmo.tgbotapi.types.update
|
||||
|
||||
import dev.inmo.tgbotapi.types.chat.member.ChatMemberUpdated
|
||||
import dev.inmo.tgbotapi.types.UpdateIdentifier
|
||||
import dev.inmo.tgbotapi.types.UpdateId
|
||||
import dev.inmo.tgbotapi.types.update.abstracts.ChatMemberUpdatedUpdate
|
||||
|
||||
data class MyChatMemberUpdatedUpdate(
|
||||
override val updateId: UpdateIdentifier,
|
||||
override val updateId: UpdateId,
|
||||
override val data: ChatMemberUpdated
|
||||
) : ChatMemberUpdatedUpdate
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
package dev.inmo.tgbotapi.types.update
|
||||
|
||||
import dev.inmo.tgbotapi.types.UpdateIdentifier
|
||||
import dev.inmo.tgbotapi.types.UpdateId
|
||||
import dev.inmo.tgbotapi.types.polls.PollAnswer
|
||||
import dev.inmo.tgbotapi.types.update.abstracts.Update
|
||||
|
||||
data class PollAnswerUpdate(
|
||||
override val updateId: UpdateIdentifier,
|
||||
override val updateId: UpdateId,
|
||||
override val data: PollAnswer
|
||||
) : Update
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
package dev.inmo.tgbotapi.types.update
|
||||
|
||||
import dev.inmo.tgbotapi.types.UpdateIdentifier
|
||||
import dev.inmo.tgbotapi.types.UpdateId
|
||||
import dev.inmo.tgbotapi.types.polls.Poll
|
||||
import dev.inmo.tgbotapi.types.update.abstracts.Update
|
||||
|
||||
data class PollUpdate(
|
||||
override val updateId: UpdateIdentifier,
|
||||
override val updateId: UpdateId,
|
||||
override val data: Poll
|
||||
) : Update
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
package dev.inmo.tgbotapi.types.update
|
||||
|
||||
import dev.inmo.tgbotapi.types.UpdateIdentifier
|
||||
import dev.inmo.tgbotapi.types.UpdateId
|
||||
import dev.inmo.tgbotapi.types.payments.PreCheckoutQuery
|
||||
import dev.inmo.tgbotapi.types.update.abstracts.Update
|
||||
|
||||
data class PreCheckoutQueryUpdate(
|
||||
override val updateId: UpdateIdentifier,
|
||||
override val updateId: UpdateId,
|
||||
override val data: PreCheckoutQuery
|
||||
) : Update
|
||||
|
||||
@@ -24,7 +24,7 @@ import kotlinx.serialization.json.jsonObject
|
||||
@Serializable
|
||||
internal data class RawUpdate constructor(
|
||||
@SerialName(updateIdField)
|
||||
val updateId: UpdateIdentifier,
|
||||
val updateId: UpdateId,
|
||||
@Serializable(TelegramBotAPIMessageDeserializeOnlySerializer::class)
|
||||
private val edited_message: CommonMessage<*>? = null,
|
||||
@Serializable(TelegramBotAPIMessageDeserializeOnlySerializer::class)
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
package dev.inmo.tgbotapi.types.update
|
||||
|
||||
import dev.inmo.tgbotapi.types.UpdateIdentifier
|
||||
import dev.inmo.tgbotapi.types.UpdateId
|
||||
import dev.inmo.tgbotapi.types.payments.ShippingQuery
|
||||
import dev.inmo.tgbotapi.types.update.abstracts.Update
|
||||
|
||||
data class ShippingQueryUpdate(
|
||||
override val updateId: UpdateIdentifier,
|
||||
override val updateId: UpdateId,
|
||||
override val data: ShippingQuery
|
||||
) : Update
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package dev.inmo.tgbotapi.types.update.abstracts
|
||||
|
||||
import dev.inmo.tgbotapi.utils.internal.ClassCastsIncluded
|
||||
import dev.inmo.tgbotapi.types.UpdateIdentifier
|
||||
import dev.inmo.tgbotapi.types.UpdateId
|
||||
import dev.inmo.tgbotapi.types.update.RawUpdate
|
||||
import dev.inmo.tgbotapi.types.updateIdField
|
||||
import dev.inmo.tgbotapi.utils.RiskFeature
|
||||
@@ -17,12 +17,12 @@ import kotlinx.serialization.json.longOrNull
|
||||
|
||||
@ClassCastsIncluded
|
||||
interface Update {
|
||||
val updateId: UpdateIdentifier
|
||||
val updateId: UpdateId
|
||||
val data: Any
|
||||
}
|
||||
|
||||
data class UnknownUpdate(
|
||||
override val updateId: UpdateIdentifier,
|
||||
override val updateId: UpdateId,
|
||||
override val data: JsonElement,
|
||||
val throwable: Throwable? = null
|
||||
) : Update {
|
||||
@@ -60,7 +60,7 @@ object UpdateDeserializationStrategy : DeserializationStrategy<Update> {
|
||||
)
|
||||
}.getOrElse {
|
||||
UnknownUpdate(
|
||||
(asJson as? JsonObject) ?.get(updateIdField) ?.jsonPrimitive ?.longOrNull ?: -1L,
|
||||
UpdateId((asJson as? JsonObject) ?.get(updateIdField) ?.jsonPrimitive ?.longOrNull ?: -1L),
|
||||
asJson,
|
||||
it
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user