mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI.git
synced 2025-11-25 08:45:50 +00:00
add checklist as field in ExternalReplyInfo and add support of EditMessageChecklist
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
package dev.inmo.tgbotapi.requests.edit.checklist
|
||||
|
||||
import dev.inmo.tgbotapi.requests.edit.abstracts.EditChatMessage
|
||||
import dev.inmo.tgbotapi.requests.edit.abstracts.EditReplyMessage
|
||||
import dev.inmo.tgbotapi.types.*
|
||||
import dev.inmo.tgbotapi.types.business_connection.BusinessConnectionId
|
||||
import dev.inmo.tgbotapi.types.buttons.InlineKeyboardMarkup
|
||||
import dev.inmo.tgbotapi.types.checklists.Checklist
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.ContentMessage
|
||||
import dev.inmo.tgbotapi.types.message.abstracts.TelegramBotAPIMessageDeserializationStrategyClass
|
||||
import dev.inmo.tgbotapi.types.message.content.ChecklistContent
|
||||
import dev.inmo.tgbotapi.types.message.content.MessageContent
|
||||
import kotlinx.serialization.*
|
||||
|
||||
const val editMessageChecklistMethod = "editMessageChecklist"
|
||||
|
||||
private val commonResultDeserializer = TelegramBotAPIMessageDeserializationStrategyClass<ContentMessage<ChecklistContent>>()
|
||||
|
||||
@Serializable
|
||||
data class EditMessageChecklist(
|
||||
@SerialName(chatIdField)
|
||||
override val chatId: ChatIdentifier,
|
||||
@SerialName(messageIdField)
|
||||
override val messageId: MessageId,
|
||||
@SerialName(businessConnectionIdField)
|
||||
override val businessConnectionId: BusinessConnectionId,
|
||||
@SerialName(checklistField)
|
||||
val checklist: Checklist.Input,
|
||||
@SerialName(replyMarkupField)
|
||||
override val replyMarkup: InlineKeyboardMarkup? = null
|
||||
) : EditChatMessage<ChecklistContent>, EditReplyMessage {
|
||||
override fun method(): String = editMessageChecklistMethod
|
||||
override val resultDeserializer: DeserializationStrategy<ContentMessage<ChecklistContent>>
|
||||
get() = commonResultDeserializer
|
||||
override val requestSerializer: SerializationStrategy<*>
|
||||
get() = serializer()
|
||||
}
|
||||
@@ -2,6 +2,7 @@ package dev.inmo.tgbotapi.types
|
||||
|
||||
import dev.inmo.tgbotapi.abstracts.SpoilerableData
|
||||
import dev.inmo.tgbotapi.types.chat.SuperPublicChat
|
||||
import dev.inmo.tgbotapi.types.checklists.Checklist
|
||||
import dev.inmo.tgbotapi.types.dice.Dice
|
||||
import dev.inmo.tgbotapi.types.files.*
|
||||
import dev.inmo.tgbotapi.types.games.RawGame
|
||||
@@ -105,6 +106,7 @@ sealed interface ReplyInfo {
|
||||
private val invoice: Invoice? = null,
|
||||
private val dice: Dice? = null,
|
||||
private val giveaway: Giveaway? = null,
|
||||
private val checklist: Checklist.Created? = null,
|
||||
private val giveaway_winners: GiveawayPublicResults? = null,
|
||||
) {
|
||||
val asExternalReplyInfo: External
|
||||
@@ -137,6 +139,7 @@ sealed interface ReplyInfo {
|
||||
invoice != null -> invoice
|
||||
giveaway != null -> giveaway
|
||||
giveaway_winners != null -> giveaway_winners
|
||||
checklist != null -> checklist
|
||||
else -> null
|
||||
}
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@ package dev.inmo.tgbotapi.types.checklists
|
||||
|
||||
import dev.inmo.micro_utils.common.Warning
|
||||
import dev.inmo.tgbotapi.abstracts.TitledInput
|
||||
import dev.inmo.tgbotapi.types.ReplyInfo
|
||||
import dev.inmo.tgbotapi.types.checklists.ChecklistTask.Input
|
||||
import dev.inmo.tgbotapi.types.message.ParseMode
|
||||
import dev.inmo.tgbotapi.types.message.RawMessageEntity
|
||||
@@ -135,7 +136,7 @@ sealed interface Checklist : TitledInput {
|
||||
override val othersCanAddTasks: Boolean = false,
|
||||
@SerialName(othersCanMarkTasksAsDoneField)
|
||||
override val othersCanCompleteTasks: Boolean = false,
|
||||
): Checklist {
|
||||
): Checklist, ReplyInfo.External.ContentVariant {
|
||||
override val title: String by lazy {
|
||||
titleTextSources.makeSourceString()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user