mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI.git
synced 2026-06-17 16:55:15 +00:00
implement 'others' changes
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
package dev.inmo.tgbotapi.requests
|
||||
|
||||
import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest
|
||||
import dev.inmo.tgbotapi.types.ChatId
|
||||
import dev.inmo.tgbotapi.types.limitField
|
||||
import dev.inmo.tgbotapi.types.message.RawMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ChatMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
|
||||
import dev.inmo.tgbotapi.types.userIdField
|
||||
import kotlinx.serialization.*
|
||||
import kotlinx.serialization.builtins.ListSerializer
|
||||
import kotlinx.serialization.descriptors.SerialDescriptor
|
||||
import kotlinx.serialization.encoding.Decoder
|
||||
|
||||
@Serializable
|
||||
data class GetUserPersonalChatMessages(
|
||||
@SerialName(userIdField)
|
||||
val userId: ChatId,
|
||||
@SerialName(limitField)
|
||||
val limit: Int
|
||||
) : SimpleRequest<List<ChatContentMessage<*>>> {
|
||||
override fun method(): String = "getUserPersonalChatMessages"
|
||||
override val resultDeserializer: DeserializationStrategy<List<ChatContentMessage<*>>>
|
||||
get() = resultSerializer
|
||||
override val requestSerializer: SerializationStrategy<*>
|
||||
get() = serializer()
|
||||
|
||||
private object MessagesDeserializer : DeserializationStrategy<List<ChatContentMessage<*>>> {
|
||||
private val rawListSerializer = ListSerializer(RawMessage.serializer())
|
||||
override val descriptor: SerialDescriptor = rawListSerializer.descriptor
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
override fun deserialize(decoder: Decoder): List<ChatContentMessage<*>> {
|
||||
return rawListSerializer.deserialize(decoder).map {
|
||||
it.asMessage as ChatContentMessage<*>
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
companion object {
|
||||
internal val resultSerializer: DeserializationStrategy<List<ChatContentMessage<*>>> = MessagesDeserializer
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package dev.inmo.tgbotapi.requests.managed_bots
|
||||
|
||||
import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest
|
||||
import dev.inmo.tgbotapi.types.ChatId
|
||||
import dev.inmo.tgbotapi.types.managed_bots.BotAccessSettings
|
||||
import dev.inmo.tgbotapi.types.userIdField
|
||||
import kotlinx.serialization.*
|
||||
|
||||
@Serializable
|
||||
data class GetManagedBotAccessSettings(
|
||||
@SerialName(userIdField)
|
||||
val userId: ChatId
|
||||
) : SimpleRequest<BotAccessSettings> {
|
||||
override fun method(): String = "getManagedBotAccessSettings"
|
||||
override val resultDeserializer: DeserializationStrategy<BotAccessSettings>
|
||||
get() = BotAccessSettings.serializer()
|
||||
override val requestSerializer: SerializationStrategy<*>
|
||||
get() = serializer()
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package dev.inmo.tgbotapi.requests.managed_bots
|
||||
|
||||
import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest
|
||||
import dev.inmo.tgbotapi.types.ChatId
|
||||
import dev.inmo.tgbotapi.types.addedUserIdsField
|
||||
import dev.inmo.tgbotapi.types.isAccessRestrictedField
|
||||
import dev.inmo.tgbotapi.types.userIdField
|
||||
import dev.inmo.tgbotapi.utils.serializers.UnitFromBooleanSerializer
|
||||
import kotlinx.serialization.*
|
||||
|
||||
@Serializable
|
||||
data class SetManagedBotAccessSettings(
|
||||
@SerialName(userIdField)
|
||||
val userId: ChatId,
|
||||
@SerialName(addedUserIdsField)
|
||||
val addedUserIds: List<ChatId>? = null
|
||||
) : SimpleRequest<Unit> {
|
||||
@EncodeDefault
|
||||
@SerialName(isAccessRestrictedField)
|
||||
val isAccessRestricted: Boolean = addedUserIds != null
|
||||
override fun method(): String = "setManagedBotAccessSettings"
|
||||
override val resultDeserializer: DeserializationStrategy<Unit>
|
||||
get() = UnitFromBooleanSerializer
|
||||
override val requestSerializer: SerializationStrategy<*>
|
||||
get() = serializer()
|
||||
}
|
||||
@@ -62,7 +62,7 @@ val getUpdatesLimit = 1 .. 100
|
||||
val callbackQueryAnswerLength = 0 until 200
|
||||
val captionLength = 0 .. 1024
|
||||
val storyCaptionLength = 0 .. 2048
|
||||
val textLength = 1 .. 4096
|
||||
val textLength = 0 .. 4096
|
||||
val userProfilePhotosRequestLimit = 1 .. 100
|
||||
val userProfileAudiosRequestLimit = 1 .. 100
|
||||
val chatTitleLength = 1 until 255
|
||||
@@ -241,6 +241,9 @@ const val maskPositionField = "mask_position"
|
||||
const val phoneNumberField = "phone_number"
|
||||
const val userIdField = "user_id"
|
||||
const val userIdsField = "user_ids"
|
||||
const val isAccessRestrictedField = "is_access_restricted"
|
||||
const val addedUsersField = "added_users"
|
||||
const val addedUserIdsField = "added_user_ids"
|
||||
const val giftIdField = "gift_id"
|
||||
const val onlyIfBannedField = "only_if_banned"
|
||||
const val containsMasksField = "contains_masks"
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
package dev.inmo.tgbotapi.types.managed_bots
|
||||
|
||||
import dev.inmo.tgbotapi.types.addedUsersField
|
||||
import dev.inmo.tgbotapi.types.isAccessRestrictedField
|
||||
import dev.inmo.tgbotapi.types.chat.User
|
||||
import kotlinx.serialization.EncodeDefault
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
@Serializable
|
||||
data class BotAccessSettings(
|
||||
@SerialName(addedUsersField)
|
||||
val addedUsers: List<User>? = null
|
||||
) {
|
||||
@EncodeDefault
|
||||
@SerialName(isAccessRestrictedField)
|
||||
val isAccessRestricted: Boolean = addedUsers != null
|
||||
}
|
||||
Reference in New Issue
Block a user