mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI.git
synced 2026-04-07 02:22:27 +00:00
reimplementation of PollOption and SendPoll
This commit is contained in:
@@ -24,6 +24,10 @@ public suspend fun TelegramBot.sendQuizPoll(
|
|||||||
explanationParseMode: ParseMode? = null,
|
explanationParseMode: ParseMode? = null,
|
||||||
isAnonymous: Boolean = true,
|
isAnonymous: Boolean = true,
|
||||||
isClosed: Boolean = false,
|
isClosed: Boolean = false,
|
||||||
|
shuffleOptions: Boolean = false,
|
||||||
|
hideResultsUntilCloses: Boolean = false,
|
||||||
|
description: String? = null,
|
||||||
|
descriptionParseMode: ParseMode? = null,
|
||||||
openPeriod: LongSeconds? = null,
|
openPeriod: LongSeconds? = null,
|
||||||
closeDate: LongSeconds? = null,
|
closeDate: LongSeconds? = null,
|
||||||
threadId: MessageThreadId? = chatId.threadId,
|
threadId: MessageThreadId? = chatId.threadId,
|
||||||
@@ -47,6 +51,10 @@ public suspend fun TelegramBot.sendQuizPoll(
|
|||||||
explanationParseMode = explanationParseMode,
|
explanationParseMode = explanationParseMode,
|
||||||
isAnonymous = isAnonymous,
|
isAnonymous = isAnonymous,
|
||||||
isClosed = isClosed,
|
isClosed = isClosed,
|
||||||
|
shuffleOptions = shuffleOptions,
|
||||||
|
hideResultsUntilCloses = hideResultsUntilCloses,
|
||||||
|
description = description,
|
||||||
|
descriptionParseMode = descriptionParseMode,
|
||||||
openPeriod = openPeriod,
|
openPeriod = openPeriod,
|
||||||
closeDate = closeDate,
|
closeDate = closeDate,
|
||||||
threadId = threadId,
|
threadId = threadId,
|
||||||
@@ -71,6 +79,10 @@ public suspend fun TelegramBot.sendQuizPoll(
|
|||||||
explanationParseMode: ParseMode? = null,
|
explanationParseMode: ParseMode? = null,
|
||||||
isAnonymous: Boolean = true,
|
isAnonymous: Boolean = true,
|
||||||
isClosed: Boolean = false,
|
isClosed: Boolean = false,
|
||||||
|
shuffleOptions: Boolean = false,
|
||||||
|
hideResultsUntilCloses: Boolean = false,
|
||||||
|
description: String? = null,
|
||||||
|
descriptionParseMode: ParseMode? = null,
|
||||||
openPeriod: LongSeconds? = null,
|
openPeriod: LongSeconds? = null,
|
||||||
closeDate: LongSeconds? = null,
|
closeDate: LongSeconds? = null,
|
||||||
threadId: MessageThreadId? = chatId.threadId,
|
threadId: MessageThreadId? = chatId.threadId,
|
||||||
@@ -93,6 +105,10 @@ public suspend fun TelegramBot.sendQuizPoll(
|
|||||||
explanationParseMode = explanationParseMode,
|
explanationParseMode = explanationParseMode,
|
||||||
isAnonymous = isAnonymous,
|
isAnonymous = isAnonymous,
|
||||||
isClosed = isClosed,
|
isClosed = isClosed,
|
||||||
|
shuffleOptions = shuffleOptions,
|
||||||
|
hideResultsUntilCloses = hideResultsUntilCloses,
|
||||||
|
description = description,
|
||||||
|
descriptionParseMode = descriptionParseMode,
|
||||||
openPeriod = openPeriod,
|
openPeriod = openPeriod,
|
||||||
closeDate = closeDate,
|
closeDate = closeDate,
|
||||||
threadId = threadId,
|
threadId = threadId,
|
||||||
@@ -113,10 +129,13 @@ public suspend fun TelegramBot.sendQuizPoll(
|
|||||||
question: String,
|
question: String,
|
||||||
options: List<InputPollOption>,
|
options: List<InputPollOption>,
|
||||||
correctOptionIds: List<Int>,
|
correctOptionIds: List<Int>,
|
||||||
explanationTextSources: List<TextSource>? = null,
|
|
||||||
questionParseMode: ParseMode? = null,
|
questionParseMode: ParseMode? = null,
|
||||||
|
explanationTextSources: List<TextSource>? = null,
|
||||||
isAnonymous: Boolean = true,
|
isAnonymous: Boolean = true,
|
||||||
isClosed: Boolean = false,
|
isClosed: Boolean = false,
|
||||||
|
shuffleOptions: Boolean = false,
|
||||||
|
hideResultsUntilCloses: Boolean = false,
|
||||||
|
descriptionTextSources: List<TextSource>? = null,
|
||||||
openPeriod: LongSeconds? = null,
|
openPeriod: LongSeconds? = null,
|
||||||
closeDate: LongSeconds? = null,
|
closeDate: LongSeconds? = null,
|
||||||
threadId: MessageThreadId? = chatId.threadId,
|
threadId: MessageThreadId? = chatId.threadId,
|
||||||
@@ -139,6 +158,9 @@ public suspend fun TelegramBot.sendQuizPoll(
|
|||||||
explanationTextSources = explanationTextSources,
|
explanationTextSources = explanationTextSources,
|
||||||
isAnonymous = isAnonymous,
|
isAnonymous = isAnonymous,
|
||||||
isClosed = isClosed,
|
isClosed = isClosed,
|
||||||
|
shuffleOptions = shuffleOptions,
|
||||||
|
hideResultsUntilCloses = hideResultsUntilCloses,
|
||||||
|
descriptionTextSources = descriptionTextSources,
|
||||||
openPeriod = openPeriod,
|
openPeriod = openPeriod,
|
||||||
closeDate = closeDate,
|
closeDate = closeDate,
|
||||||
threadId = threadId,
|
threadId = threadId,
|
||||||
@@ -154,7 +176,6 @@ public suspend fun TelegramBot.sendQuizPoll(
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
public suspend fun TelegramBot.sendQuizPoll(
|
public suspend fun TelegramBot.sendQuizPoll(
|
||||||
chatId: ChatIdentifier,
|
chatId: ChatIdentifier,
|
||||||
questionEntities: List<TextSource>,
|
questionEntities: List<TextSource>,
|
||||||
@@ -163,6 +184,9 @@ public suspend fun TelegramBot.sendQuizPoll(
|
|||||||
explanationTextSources: List<TextSource>? = null,
|
explanationTextSources: List<TextSource>? = null,
|
||||||
isAnonymous: Boolean = true,
|
isAnonymous: Boolean = true,
|
||||||
isClosed: Boolean = false,
|
isClosed: Boolean = false,
|
||||||
|
shuffleOptions: Boolean = false,
|
||||||
|
hideResultsUntilCloses: Boolean = false,
|
||||||
|
descriptionTextSources: List<TextSource>? = null,
|
||||||
openPeriod: LongSeconds? = null,
|
openPeriod: LongSeconds? = null,
|
||||||
closeDate: LongSeconds? = null,
|
closeDate: LongSeconds? = null,
|
||||||
threadId: MessageThreadId? = chatId.threadId,
|
threadId: MessageThreadId? = chatId.threadId,
|
||||||
@@ -184,6 +208,9 @@ public suspend fun TelegramBot.sendQuizPoll(
|
|||||||
explanationTextSources = explanationTextSources,
|
explanationTextSources = explanationTextSources,
|
||||||
isAnonymous = isAnonymous,
|
isAnonymous = isAnonymous,
|
||||||
isClosed = isClosed,
|
isClosed = isClosed,
|
||||||
|
shuffleOptions = shuffleOptions,
|
||||||
|
hideResultsUntilCloses = hideResultsUntilCloses,
|
||||||
|
descriptionTextSources = descriptionTextSources,
|
||||||
openPeriod = openPeriod,
|
openPeriod = openPeriod,
|
||||||
closeDate = closeDate,
|
closeDate = closeDate,
|
||||||
threadId = threadId,
|
threadId = threadId,
|
||||||
@@ -205,11 +232,15 @@ public suspend fun TelegramBot.sendQuizPoll(
|
|||||||
options: List<InputPollOption>,
|
options: List<InputPollOption>,
|
||||||
correctOptionIds: List<Int>,
|
correctOptionIds: List<Int>,
|
||||||
closeInfo: ScheduledCloseInfo?,
|
closeInfo: ScheduledCloseInfo?,
|
||||||
questionParseMode: ParseMode? = null,
|
|
||||||
explanation: String?,
|
explanation: String?,
|
||||||
|
questionParseMode: ParseMode? = null,
|
||||||
explanationParseMode: ParseMode? = null,
|
explanationParseMode: ParseMode? = null,
|
||||||
isAnonymous: Boolean = true,
|
isAnonymous: Boolean = true,
|
||||||
isClosed: Boolean = false,
|
isClosed: Boolean = false,
|
||||||
|
shuffleOptions: Boolean = false,
|
||||||
|
hideResultsUntilCloses: Boolean = false,
|
||||||
|
description: String? = null,
|
||||||
|
descriptionParseMode: ParseMode? = null,
|
||||||
threadId: MessageThreadId? = chatId.threadId,
|
threadId: MessageThreadId? = chatId.threadId,
|
||||||
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
|
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
|
||||||
businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId,
|
businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId,
|
||||||
@@ -232,6 +263,10 @@ public suspend fun TelegramBot.sendQuizPoll(
|
|||||||
explanationParseMode = explanationParseMode,
|
explanationParseMode = explanationParseMode,
|
||||||
isAnonymous = isAnonymous,
|
isAnonymous = isAnonymous,
|
||||||
isClosed = isClosed,
|
isClosed = isClosed,
|
||||||
|
shuffleOptions = shuffleOptions,
|
||||||
|
hideResultsUntilCloses = hideResultsUntilCloses,
|
||||||
|
description = description,
|
||||||
|
descriptionParseMode = descriptionParseMode,
|
||||||
threadId = threadId,
|
threadId = threadId,
|
||||||
directMessageThreadId = directMessageThreadId,
|
directMessageThreadId = directMessageThreadId,
|
||||||
businessConnectionId = businessConnectionId,
|
businessConnectionId = businessConnectionId,
|
||||||
@@ -255,6 +290,10 @@ public suspend fun TelegramBot.sendQuizPoll(
|
|||||||
explanationParseMode: ParseMode? = null,
|
explanationParseMode: ParseMode? = null,
|
||||||
isAnonymous: Boolean = true,
|
isAnonymous: Boolean = true,
|
||||||
isClosed: Boolean = false,
|
isClosed: Boolean = false,
|
||||||
|
shuffleOptions: Boolean = false,
|
||||||
|
hideResultsUntilCloses: Boolean = false,
|
||||||
|
description: String? = null,
|
||||||
|
descriptionParseMode: ParseMode? = null,
|
||||||
threadId: MessageThreadId? = chatId.threadId,
|
threadId: MessageThreadId? = chatId.threadId,
|
||||||
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
|
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
|
||||||
businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId,
|
businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId,
|
||||||
@@ -276,6 +315,10 @@ public suspend fun TelegramBot.sendQuizPoll(
|
|||||||
explanationParseMode = explanationParseMode,
|
explanationParseMode = explanationParseMode,
|
||||||
isAnonymous = isAnonymous,
|
isAnonymous = isAnonymous,
|
||||||
isClosed = isClosed,
|
isClosed = isClosed,
|
||||||
|
shuffleOptions = shuffleOptions,
|
||||||
|
hideResultsUntilCloses = hideResultsUntilCloses,
|
||||||
|
description = description,
|
||||||
|
descriptionParseMode = descriptionParseMode,
|
||||||
threadId = threadId,
|
threadId = threadId,
|
||||||
directMessageThreadId = directMessageThreadId,
|
directMessageThreadId = directMessageThreadId,
|
||||||
businessConnectionId = businessConnectionId,
|
businessConnectionId = businessConnectionId,
|
||||||
@@ -299,6 +342,9 @@ public suspend fun TelegramBot.sendQuizPoll(
|
|||||||
explanationTextSources: List<TextSource>? = null,
|
explanationTextSources: List<TextSource>? = null,
|
||||||
isAnonymous: Boolean = true,
|
isAnonymous: Boolean = true,
|
||||||
isClosed: Boolean = false,
|
isClosed: Boolean = false,
|
||||||
|
shuffleOptions: Boolean = false,
|
||||||
|
hideResultsUntilCloses: Boolean = false,
|
||||||
|
descriptionTextSources: List<TextSource>? = null,
|
||||||
threadId: MessageThreadId? = chatId.threadId,
|
threadId: MessageThreadId? = chatId.threadId,
|
||||||
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
|
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
|
||||||
businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId,
|
businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId,
|
||||||
@@ -320,6 +366,9 @@ public suspend fun TelegramBot.sendQuizPoll(
|
|||||||
explanationTextSources = explanationTextSources,
|
explanationTextSources = explanationTextSources,
|
||||||
isAnonymous = isAnonymous,
|
isAnonymous = isAnonymous,
|
||||||
isClosed = isClosed,
|
isClosed = isClosed,
|
||||||
|
shuffleOptions = shuffleOptions,
|
||||||
|
hideResultsUntilCloses = hideResultsUntilCloses,
|
||||||
|
descriptionTextSources = descriptionTextSources,
|
||||||
threadId = threadId,
|
threadId = threadId,
|
||||||
directMessageThreadId = directMessageThreadId,
|
directMessageThreadId = directMessageThreadId,
|
||||||
businessConnectionId = businessConnectionId,
|
businessConnectionId = businessConnectionId,
|
||||||
@@ -342,6 +391,9 @@ public suspend fun TelegramBot.sendQuizPoll(
|
|||||||
explanationTextSources: List<TextSource>? = null,
|
explanationTextSources: List<TextSource>? = null,
|
||||||
isAnonymous: Boolean = true,
|
isAnonymous: Boolean = true,
|
||||||
isClosed: Boolean = false,
|
isClosed: Boolean = false,
|
||||||
|
shuffleOptions: Boolean = false,
|
||||||
|
hideResultsUntilCloses: Boolean = false,
|
||||||
|
descriptionTextSources: List<TextSource>? = null,
|
||||||
threadId: MessageThreadId? = chatId.threadId,
|
threadId: MessageThreadId? = chatId.threadId,
|
||||||
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
|
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
|
||||||
businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId,
|
businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId,
|
||||||
@@ -362,6 +414,9 @@ public suspend fun TelegramBot.sendQuizPoll(
|
|||||||
explanationTextSources = explanationTextSources,
|
explanationTextSources = explanationTextSources,
|
||||||
isAnonymous = isAnonymous,
|
isAnonymous = isAnonymous,
|
||||||
isClosed = isClosed,
|
isClosed = isClosed,
|
||||||
|
shuffleOptions = shuffleOptions,
|
||||||
|
hideResultsUntilCloses = hideResultsUntilCloses,
|
||||||
|
descriptionTextSources = descriptionTextSources,
|
||||||
threadId = threadId,
|
threadId = threadId,
|
||||||
directMessageThreadId = directMessageThreadId,
|
directMessageThreadId = directMessageThreadId,
|
||||||
businessConnectionId = businessConnectionId,
|
businessConnectionId = businessConnectionId,
|
||||||
|
|||||||
@@ -22,6 +22,12 @@ public suspend fun TelegramBot.sendRegularPoll(
|
|||||||
isAnonymous: Boolean = true,
|
isAnonymous: Boolean = true,
|
||||||
isClosed: Boolean = false,
|
isClosed: Boolean = false,
|
||||||
allowMultipleAnswers: Boolean = false,
|
allowMultipleAnswers: Boolean = false,
|
||||||
|
allowsRevoting: Boolean = true,
|
||||||
|
shuffleOptions: Boolean = false,
|
||||||
|
allowAddingOptions: Boolean = false,
|
||||||
|
hideResultsUntilCloses: Boolean = false,
|
||||||
|
description: String? = null,
|
||||||
|
descriptionParseMode: ParseMode? = null,
|
||||||
openPeriod: LongSeconds? = null,
|
openPeriod: LongSeconds? = null,
|
||||||
closeDate: LongSeconds? = null,
|
closeDate: LongSeconds? = null,
|
||||||
threadId: MessageThreadId? = chatId.threadId,
|
threadId: MessageThreadId? = chatId.threadId,
|
||||||
@@ -43,6 +49,12 @@ public suspend fun TelegramBot.sendRegularPoll(
|
|||||||
isAnonymous = isAnonymous,
|
isAnonymous = isAnonymous,
|
||||||
isClosed = isClosed,
|
isClosed = isClosed,
|
||||||
allowMultipleAnswers = allowMultipleAnswers,
|
allowMultipleAnswers = allowMultipleAnswers,
|
||||||
|
allowsRevoting = allowsRevoting,
|
||||||
|
shuffleOptions = shuffleOptions,
|
||||||
|
allowAddingOptions = allowAddingOptions,
|
||||||
|
hideResultsUntilCloses = hideResultsUntilCloses,
|
||||||
|
description = description,
|
||||||
|
descriptionParseMode = descriptionParseMode,
|
||||||
openPeriod = openPeriod,
|
openPeriod = openPeriod,
|
||||||
closeDate = closeDate,
|
closeDate = closeDate,
|
||||||
threadId = threadId,
|
threadId = threadId,
|
||||||
@@ -51,10 +63,10 @@ public suspend fun TelegramBot.sendRegularPoll(
|
|||||||
disableNotification = disableNotification,
|
disableNotification = disableNotification,
|
||||||
protectContent = protectContent,
|
protectContent = protectContent,
|
||||||
allowPaidBroadcast = allowPaidBroadcast,
|
allowPaidBroadcast = allowPaidBroadcast,
|
||||||
effectId = effectId,
|
effectId = effectId,
|
||||||
suggestedPostParameters = suggestedPostParameters,
|
suggestedPostParameters = suggestedPostParameters,
|
||||||
replyParameters = replyParameters,
|
replyParameters = replyParameters,
|
||||||
replyMarkup = replyMarkup
|
replyMarkup = replyMarkup
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -65,6 +77,12 @@ public suspend fun TelegramBot.sendRegularPoll(
|
|||||||
isAnonymous: Boolean = true,
|
isAnonymous: Boolean = true,
|
||||||
isClosed: Boolean = false,
|
isClosed: Boolean = false,
|
||||||
allowMultipleAnswers: Boolean = false,
|
allowMultipleAnswers: Boolean = false,
|
||||||
|
allowsRevoting: Boolean = true,
|
||||||
|
shuffleOptions: Boolean = false,
|
||||||
|
allowAddingOptions: Boolean = false,
|
||||||
|
hideResultsUntilCloses: Boolean = false,
|
||||||
|
description: String? = null,
|
||||||
|
descriptionParseMode: ParseMode? = null,
|
||||||
openPeriod: LongSeconds? = null,
|
openPeriod: LongSeconds? = null,
|
||||||
closeDate: LongSeconds? = null,
|
closeDate: LongSeconds? = null,
|
||||||
threadId: MessageThreadId? = chatId.threadId,
|
threadId: MessageThreadId? = chatId.threadId,
|
||||||
@@ -85,6 +103,12 @@ public suspend fun TelegramBot.sendRegularPoll(
|
|||||||
isAnonymous = isAnonymous,
|
isAnonymous = isAnonymous,
|
||||||
isClosed = isClosed,
|
isClosed = isClosed,
|
||||||
allowMultipleAnswers = allowMultipleAnswers,
|
allowMultipleAnswers = allowMultipleAnswers,
|
||||||
|
allowsRevoting = allowsRevoting,
|
||||||
|
shuffleOptions = shuffleOptions,
|
||||||
|
allowAddingOptions = allowAddingOptions,
|
||||||
|
hideResultsUntilCloses = hideResultsUntilCloses,
|
||||||
|
description = description,
|
||||||
|
descriptionParseMode = descriptionParseMode,
|
||||||
openPeriod = openPeriod,
|
openPeriod = openPeriod,
|
||||||
closeDate = closeDate,
|
closeDate = closeDate,
|
||||||
threadId = threadId,
|
threadId = threadId,
|
||||||
@@ -93,10 +117,10 @@ public suspend fun TelegramBot.sendRegularPoll(
|
|||||||
disableNotification = disableNotification,
|
disableNotification = disableNotification,
|
||||||
protectContent = protectContent,
|
protectContent = protectContent,
|
||||||
allowPaidBroadcast = allowPaidBroadcast,
|
allowPaidBroadcast = allowPaidBroadcast,
|
||||||
effectId = effectId,
|
effectId = effectId,
|
||||||
suggestedPostParameters = suggestedPostParameters,
|
suggestedPostParameters = suggestedPostParameters,
|
||||||
replyParameters = replyParameters,
|
replyParameters = replyParameters,
|
||||||
replyMarkup = replyMarkup
|
replyMarkup = replyMarkup
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -109,6 +133,12 @@ public suspend fun TelegramBot.sendRegularPoll(
|
|||||||
isAnonymous: Boolean = true,
|
isAnonymous: Boolean = true,
|
||||||
isClosed: Boolean = false,
|
isClosed: Boolean = false,
|
||||||
allowMultipleAnswers: Boolean = false,
|
allowMultipleAnswers: Boolean = false,
|
||||||
|
allowsRevoting: Boolean = true,
|
||||||
|
shuffleOptions: Boolean = false,
|
||||||
|
allowAddingOptions: Boolean = false,
|
||||||
|
hideResultsUntilCloses: Boolean = false,
|
||||||
|
description: String? = null,
|
||||||
|
descriptionParseMode: ParseMode? = null,
|
||||||
threadId: MessageThreadId? = chatId.threadId,
|
threadId: MessageThreadId? = chatId.threadId,
|
||||||
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
|
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
|
||||||
businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId,
|
businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId,
|
||||||
@@ -129,16 +159,22 @@ public suspend fun TelegramBot.sendRegularPoll(
|
|||||||
isAnonymous = isAnonymous,
|
isAnonymous = isAnonymous,
|
||||||
isClosed = isClosed,
|
isClosed = isClosed,
|
||||||
allowMultipleAnswers = allowMultipleAnswers,
|
allowMultipleAnswers = allowMultipleAnswers,
|
||||||
|
allowsRevoting = allowsRevoting,
|
||||||
|
shuffleOptions = shuffleOptions,
|
||||||
|
allowAddingOptions = allowAddingOptions,
|
||||||
|
hideResultsUntilCloses = hideResultsUntilCloses,
|
||||||
|
description = description,
|
||||||
|
descriptionParseMode = descriptionParseMode,
|
||||||
threadId = threadId,
|
threadId = threadId,
|
||||||
directMessageThreadId = directMessageThreadId,
|
directMessageThreadId = directMessageThreadId,
|
||||||
businessConnectionId = businessConnectionId,
|
businessConnectionId = businessConnectionId,
|
||||||
disableNotification = disableNotification,
|
disableNotification = disableNotification,
|
||||||
protectContent = protectContent,
|
protectContent = protectContent,
|
||||||
allowPaidBroadcast = allowPaidBroadcast,
|
allowPaidBroadcast = allowPaidBroadcast,
|
||||||
effectId = effectId,
|
effectId = effectId,
|
||||||
suggestedPostParameters = suggestedPostParameters,
|
suggestedPostParameters = suggestedPostParameters,
|
||||||
replyParameters = replyParameters,
|
replyParameters = replyParameters,
|
||||||
replyMarkup = replyMarkup
|
replyMarkup = replyMarkup
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -150,6 +186,12 @@ public suspend fun TelegramBot.sendRegularPoll(
|
|||||||
isAnonymous: Boolean = true,
|
isAnonymous: Boolean = true,
|
||||||
isClosed: Boolean = false,
|
isClosed: Boolean = false,
|
||||||
allowMultipleAnswers: Boolean = false,
|
allowMultipleAnswers: Boolean = false,
|
||||||
|
allowsRevoting: Boolean = true,
|
||||||
|
shuffleOptions: Boolean = false,
|
||||||
|
allowAddingOptions: Boolean = false,
|
||||||
|
hideResultsUntilCloses: Boolean = false,
|
||||||
|
description: String? = null,
|
||||||
|
descriptionParseMode: ParseMode? = null,
|
||||||
threadId: MessageThreadId? = chatId.threadId,
|
threadId: MessageThreadId? = chatId.threadId,
|
||||||
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
|
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
|
||||||
businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId,
|
businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId,
|
||||||
@@ -169,15 +211,21 @@ public suspend fun TelegramBot.sendRegularPoll(
|
|||||||
isAnonymous = isAnonymous,
|
isAnonymous = isAnonymous,
|
||||||
isClosed = isClosed,
|
isClosed = isClosed,
|
||||||
allowMultipleAnswers = allowMultipleAnswers,
|
allowMultipleAnswers = allowMultipleAnswers,
|
||||||
|
allowsRevoting = allowsRevoting,
|
||||||
|
shuffleOptions = shuffleOptions,
|
||||||
|
allowAddingOptions = allowAddingOptions,
|
||||||
|
hideResultsUntilCloses = hideResultsUntilCloses,
|
||||||
|
description = description,
|
||||||
|
descriptionParseMode = descriptionParseMode,
|
||||||
threadId = threadId,
|
threadId = threadId,
|
||||||
directMessageThreadId = directMessageThreadId,
|
directMessageThreadId = directMessageThreadId,
|
||||||
businessConnectionId = businessConnectionId,
|
businessConnectionId = businessConnectionId,
|
||||||
disableNotification = disableNotification,
|
disableNotification = disableNotification,
|
||||||
protectContent = protectContent,
|
protectContent = protectContent,
|
||||||
allowPaidBroadcast = allowPaidBroadcast,
|
allowPaidBroadcast = allowPaidBroadcast,
|
||||||
effectId = effectId,
|
effectId = effectId,
|
||||||
suggestedPostParameters = suggestedPostParameters,
|
suggestedPostParameters = suggestedPostParameters,
|
||||||
replyParameters = replyParameters,
|
replyParameters = replyParameters,
|
||||||
replyMarkup = replyMarkup
|
replyMarkup = replyMarkup
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -49,6 +49,12 @@ fun SendPoll(
|
|||||||
questionParseMode: ParseMode? = null,
|
questionParseMode: ParseMode? = null,
|
||||||
isAnonymous: Boolean = true,
|
isAnonymous: Boolean = true,
|
||||||
isClosed: Boolean = false,
|
isClosed: Boolean = false,
|
||||||
|
allowsRevoting: Boolean = true,
|
||||||
|
shuffleOptions: Boolean = false,
|
||||||
|
allowAddingOptions: Boolean = false,
|
||||||
|
hideResultsUntilCloses: Boolean = false,
|
||||||
|
description: String? = null,
|
||||||
|
descriptionParseMode: ParseMode? = null,
|
||||||
threadId: MessageThreadId? = chatId.threadId,
|
threadId: MessageThreadId? = chatId.threadId,
|
||||||
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
|
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
|
||||||
businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId,
|
businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId,
|
||||||
@@ -59,14 +65,20 @@ fun SendPoll(
|
|||||||
replyParameters: ReplyParameters? = null,
|
replyParameters: ReplyParameters? = null,
|
||||||
replyMarkup: KeyboardMarkup? = null
|
replyMarkup: KeyboardMarkup? = null
|
||||||
) = SendRegularPoll(
|
) = SendRegularPoll(
|
||||||
chatId,
|
chatId = chatId,
|
||||||
question,
|
question = question,
|
||||||
options,
|
options = options,
|
||||||
null,
|
closeInfo = null,
|
||||||
questionParseMode,
|
questionParseMode = questionParseMode,
|
||||||
isAnonymous,
|
isAnonymous = isAnonymous,
|
||||||
isClosed,
|
isClosed = isClosed,
|
||||||
false,
|
allowMultipleAnswers = false,
|
||||||
|
allowsRevoting = allowsRevoting,
|
||||||
|
shuffleOptions = shuffleOptions,
|
||||||
|
allowAddingOptions = allowAddingOptions,
|
||||||
|
hideResultsUntilCloses = hideResultsUntilCloses,
|
||||||
|
description = description,
|
||||||
|
descriptionParseMode = descriptionParseMode,
|
||||||
threadId = threadId,
|
threadId = threadId,
|
||||||
directMessageThreadId = directMessageThreadId,
|
directMessageThreadId = directMessageThreadId,
|
||||||
businessConnectionId = businessConnectionId,
|
businessConnectionId = businessConnectionId,
|
||||||
@@ -84,6 +96,12 @@ fun SendPoll(
|
|||||||
options: List<InputPollOption>,
|
options: List<InputPollOption>,
|
||||||
isAnonymous: Boolean = true,
|
isAnonymous: Boolean = true,
|
||||||
isClosed: Boolean = false,
|
isClosed: Boolean = false,
|
||||||
|
allowsRevoting: Boolean = true,
|
||||||
|
shuffleOptions: Boolean = false,
|
||||||
|
allowAddingOptions: Boolean = false,
|
||||||
|
hideResultsUntilCloses: Boolean = false,
|
||||||
|
description: String? = null,
|
||||||
|
descriptionParseMode: ParseMode? = null,
|
||||||
threadId: MessageThreadId? = chatId.threadId,
|
threadId: MessageThreadId? = chatId.threadId,
|
||||||
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
|
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
|
||||||
businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId,
|
businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId,
|
||||||
@@ -101,6 +119,12 @@ fun SendPoll(
|
|||||||
isAnonymous = isAnonymous,
|
isAnonymous = isAnonymous,
|
||||||
isClosed = isClosed,
|
isClosed = isClosed,
|
||||||
allowMultipleAnswers = false,
|
allowMultipleAnswers = false,
|
||||||
|
allowsRevoting = allowsRevoting,
|
||||||
|
shuffleOptions = shuffleOptions,
|
||||||
|
allowAddingOptions = allowAddingOptions,
|
||||||
|
hideResultsUntilCloses = hideResultsUntilCloses,
|
||||||
|
description = description,
|
||||||
|
descriptionParseMode = descriptionParseMode,
|
||||||
threadId = threadId,
|
threadId = threadId,
|
||||||
directMessageThreadId = directMessageThreadId,
|
directMessageThreadId = directMessageThreadId,
|
||||||
businessConnectionId = businessConnectionId,
|
businessConnectionId = businessConnectionId,
|
||||||
@@ -149,7 +173,7 @@ fun Poll.createRequest(
|
|||||||
replyParameters = replyParameters,
|
replyParameters = replyParameters,
|
||||||
replyMarkup = replyMarkup
|
replyMarkup = replyMarkup
|
||||||
)
|
)
|
||||||
is QuizPoll -> correctOptionIds ?.let { correctOptionIds ->
|
is QuizPoll -> correctOptionIds?.let { correctOptionIds ->
|
||||||
SendQuizPoll(
|
SendQuizPoll(
|
||||||
chatId = chatId,
|
chatId = chatId,
|
||||||
questionEntities = textSources,
|
questionEntities = textSources,
|
||||||
|
|||||||
@@ -39,12 +39,22 @@ class SendQuizPoll internal constructor(
|
|||||||
override val isAnonymous: Boolean = true,
|
override val isAnonymous: Boolean = true,
|
||||||
@SerialName(isClosedField)
|
@SerialName(isClosedField)
|
||||||
override val isClosed: Boolean = false,
|
override val isClosed: Boolean = false,
|
||||||
|
@SerialName(shuffleOptionsField)
|
||||||
|
val shuffleOptions: Boolean = false,
|
||||||
|
@SerialName(hideResultsUntilClosesField)
|
||||||
|
val hideResultsUntilCloses: Boolean = false,
|
||||||
@SerialName(explanationField)
|
@SerialName(explanationField)
|
||||||
val explanation: String? = null,
|
val explanation: String? = null,
|
||||||
@SerialName(explanationParseModeField)
|
@SerialName(explanationParseModeField)
|
||||||
val explanationParseMode: ParseMode? = null,
|
val explanationParseMode: ParseMode? = null,
|
||||||
@SerialName(explanationEntitiesField)
|
@SerialName(explanationEntitiesField)
|
||||||
private val rawExplanationEntities: List<RawMessageEntity>? = null,
|
private val rawExplanationEntities: List<RawMessageEntity>? = null,
|
||||||
|
@SerialName(descriptionField)
|
||||||
|
val description: String? = null,
|
||||||
|
@SerialName(descriptionParseModeField)
|
||||||
|
val descriptionParseMode: ParseMode? = null,
|
||||||
|
@SerialName(descriptionEntitiesField)
|
||||||
|
private val rawDescriptionEntities: List<RawMessageEntity>? = null,
|
||||||
@SerialName(openPeriodField)
|
@SerialName(openPeriodField)
|
||||||
override val openPeriod: LongSeconds? = null,
|
override val openPeriod: LongSeconds? = null,
|
||||||
@SerialName(closeDateField)
|
@SerialName(closeDateField)
|
||||||
@@ -80,7 +90,10 @@ class SendQuizPoll internal constructor(
|
|||||||
override val textSources: List<TextSource>
|
override val textSources: List<TextSource>
|
||||||
get() = rawQuestionEntities.asTextSources(question)
|
get() = rawQuestionEntities.asTextSources(question)
|
||||||
val explanationTextEntities: List<TextSource>? by lazy {
|
val explanationTextEntities: List<TextSource>? by lazy {
|
||||||
rawExplanationEntities ?.asTextSources(text ?: return@lazy null)
|
rawExplanationEntities?.asTextSources(text ?: return@lazy null)
|
||||||
|
}
|
||||||
|
val descriptionTextSources: List<TextSource>? by lazy {
|
||||||
|
rawDescriptionEntities?.asTextSources(description ?: return@lazy null)
|
||||||
}
|
}
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
@@ -93,6 +106,10 @@ class SendQuizPoll internal constructor(
|
|||||||
explanationParseMode: ParseMode? = null,
|
explanationParseMode: ParseMode? = null,
|
||||||
isAnonymous: Boolean = true,
|
isAnonymous: Boolean = true,
|
||||||
isClosed: Boolean = false,
|
isClosed: Boolean = false,
|
||||||
|
shuffleOptions: Boolean = false,
|
||||||
|
hideResultsUntilCloses: Boolean = false,
|
||||||
|
description: String? = null,
|
||||||
|
descriptionParseMode: ParseMode? = null,
|
||||||
openPeriod: LongSeconds? = null,
|
openPeriod: LongSeconds? = null,
|
||||||
closeDate: LongSeconds? = null,
|
closeDate: LongSeconds? = null,
|
||||||
threadId: MessageThreadId? = chatId.threadId,
|
threadId: MessageThreadId? = chatId.threadId,
|
||||||
@@ -114,9 +131,14 @@ class SendQuizPoll internal constructor(
|
|||||||
rawQuestionEntities = emptyList(),
|
rawQuestionEntities = emptyList(),
|
||||||
isAnonymous = isAnonymous,
|
isAnonymous = isAnonymous,
|
||||||
isClosed = isClosed,
|
isClosed = isClosed,
|
||||||
|
shuffleOptions = shuffleOptions,
|
||||||
|
hideResultsUntilCloses = hideResultsUntilCloses,
|
||||||
explanation = explanation,
|
explanation = explanation,
|
||||||
explanationParseMode = explanationParseMode,
|
explanationParseMode = explanationParseMode,
|
||||||
rawExplanationEntities = emptyList(),
|
rawExplanationEntities = emptyList(),
|
||||||
|
description = description,
|
||||||
|
descriptionParseMode = descriptionParseMode,
|
||||||
|
rawDescriptionEntities = null,
|
||||||
openPeriod = openPeriod,
|
openPeriod = openPeriod,
|
||||||
closeDate = closeDate,
|
closeDate = closeDate,
|
||||||
threadId = threadId,
|
threadId = threadId,
|
||||||
@@ -140,6 +162,10 @@ class SendQuizPoll internal constructor(
|
|||||||
explanationParseMode: ParseMode? = null,
|
explanationParseMode: ParseMode? = null,
|
||||||
isAnonymous: Boolean = true,
|
isAnonymous: Boolean = true,
|
||||||
isClosed: Boolean = false,
|
isClosed: Boolean = false,
|
||||||
|
shuffleOptions: Boolean = false,
|
||||||
|
hideResultsUntilCloses: Boolean = false,
|
||||||
|
description: String? = null,
|
||||||
|
descriptionParseMode: ParseMode? = null,
|
||||||
openPeriod: LongSeconds? = null,
|
openPeriod: LongSeconds? = null,
|
||||||
closeDate: LongSeconds? = null,
|
closeDate: LongSeconds? = null,
|
||||||
threadId: MessageThreadId? = chatId.threadId,
|
threadId: MessageThreadId? = chatId.threadId,
|
||||||
@@ -161,9 +187,14 @@ class SendQuizPoll internal constructor(
|
|||||||
rawQuestionEntities = questionEntities.toRawMessageEntities(),
|
rawQuestionEntities = questionEntities.toRawMessageEntities(),
|
||||||
isAnonymous = isAnonymous,
|
isAnonymous = isAnonymous,
|
||||||
isClosed = isClosed,
|
isClosed = isClosed,
|
||||||
|
shuffleOptions = shuffleOptions,
|
||||||
|
hideResultsUntilCloses = hideResultsUntilCloses,
|
||||||
explanation = explanation,
|
explanation = explanation,
|
||||||
explanationParseMode = explanationParseMode,
|
explanationParseMode = explanationParseMode,
|
||||||
rawExplanationEntities = emptyList(),
|
rawExplanationEntities = emptyList(),
|
||||||
|
description = description,
|
||||||
|
descriptionParseMode = descriptionParseMode,
|
||||||
|
rawDescriptionEntities = null,
|
||||||
openPeriod = openPeriod,
|
openPeriod = openPeriod,
|
||||||
closeDate = closeDate,
|
closeDate = closeDate,
|
||||||
threadId = threadId,
|
threadId = threadId,
|
||||||
@@ -187,6 +218,9 @@ class SendQuizPoll internal constructor(
|
|||||||
explanationTextSources: List<TextSource>? = null,
|
explanationTextSources: List<TextSource>? = null,
|
||||||
isAnonymous: Boolean = true,
|
isAnonymous: Boolean = true,
|
||||||
isClosed: Boolean = false,
|
isClosed: Boolean = false,
|
||||||
|
shuffleOptions: Boolean = false,
|
||||||
|
hideResultsUntilCloses: Boolean = false,
|
||||||
|
descriptionTextSources: List<TextSource>? = null,
|
||||||
openPeriod: LongSeconds? = null,
|
openPeriod: LongSeconds? = null,
|
||||||
closeDate: LongSeconds? = null,
|
closeDate: LongSeconds? = null,
|
||||||
threadId: MessageThreadId? = chatId.threadId,
|
threadId: MessageThreadId? = chatId.threadId,
|
||||||
@@ -208,9 +242,14 @@ class SendQuizPoll internal constructor(
|
|||||||
rawQuestionEntities = emptyList(),
|
rawQuestionEntities = emptyList(),
|
||||||
isAnonymous = isAnonymous,
|
isAnonymous = isAnonymous,
|
||||||
isClosed = isClosed,
|
isClosed = isClosed,
|
||||||
explanation = explanationTextSources ?.makeSourceString(),
|
shuffleOptions = shuffleOptions,
|
||||||
|
hideResultsUntilCloses = hideResultsUntilCloses,
|
||||||
|
explanation = explanationTextSources?.makeSourceString(),
|
||||||
explanationParseMode = null,
|
explanationParseMode = null,
|
||||||
rawExplanationEntities = explanationTextSources ?.toRawMessageEntities(),
|
rawExplanationEntities = explanationTextSources?.toRawMessageEntities(),
|
||||||
|
description = descriptionTextSources?.makeSourceString(),
|
||||||
|
descriptionParseMode = null,
|
||||||
|
rawDescriptionEntities = descriptionTextSources?.toRawMessageEntities(),
|
||||||
openPeriod = openPeriod,
|
openPeriod = openPeriod,
|
||||||
closeDate = closeDate,
|
closeDate = closeDate,
|
||||||
threadId = threadId,
|
threadId = threadId,
|
||||||
@@ -233,6 +272,9 @@ class SendQuizPoll internal constructor(
|
|||||||
explanationTextSources: List<TextSource>? = null,
|
explanationTextSources: List<TextSource>? = null,
|
||||||
isAnonymous: Boolean = true,
|
isAnonymous: Boolean = true,
|
||||||
isClosed: Boolean = false,
|
isClosed: Boolean = false,
|
||||||
|
shuffleOptions: Boolean = false,
|
||||||
|
hideResultsUntilCloses: Boolean = false,
|
||||||
|
descriptionTextSources: List<TextSource>? = null,
|
||||||
openPeriod: LongSeconds? = null,
|
openPeriod: LongSeconds? = null,
|
||||||
closeDate: LongSeconds? = null,
|
closeDate: LongSeconds? = null,
|
||||||
threadId: MessageThreadId? = chatId.threadId,
|
threadId: MessageThreadId? = chatId.threadId,
|
||||||
@@ -254,9 +296,14 @@ class SendQuizPoll internal constructor(
|
|||||||
rawQuestionEntities = questionEntities.toRawMessageEntities(),
|
rawQuestionEntities = questionEntities.toRawMessageEntities(),
|
||||||
isAnonymous = isAnonymous,
|
isAnonymous = isAnonymous,
|
||||||
isClosed = isClosed,
|
isClosed = isClosed,
|
||||||
explanation = explanationTextSources ?.makeSourceString(),
|
shuffleOptions = shuffleOptions,
|
||||||
|
hideResultsUntilCloses = hideResultsUntilCloses,
|
||||||
|
explanation = explanationTextSources?.makeSourceString(),
|
||||||
explanationParseMode = null,
|
explanationParseMode = null,
|
||||||
rawExplanationEntities = explanationTextSources ?.toRawMessageEntities(),
|
rawExplanationEntities = explanationTextSources?.toRawMessageEntities(),
|
||||||
|
description = descriptionTextSources?.makeSourceString(),
|
||||||
|
descriptionParseMode = null,
|
||||||
|
rawDescriptionEntities = descriptionTextSources?.toRawMessageEntities(),
|
||||||
openPeriod = openPeriod,
|
openPeriod = openPeriod,
|
||||||
closeDate = closeDate,
|
closeDate = closeDate,
|
||||||
threadId = threadId,
|
threadId = threadId,
|
||||||
@@ -273,7 +320,7 @@ class SendQuizPoll internal constructor(
|
|||||||
|
|
||||||
init {
|
init {
|
||||||
checkPollInfo(question, options)
|
checkPollInfo(question, options)
|
||||||
closeInfo ?.checkSendData()
|
closeInfo?.checkSendData()
|
||||||
val correctOptionIdsRange = 0 until options.size
|
val correctOptionIdsRange = 0 until options.size
|
||||||
correctOptionIds?.forEach { id ->
|
correctOptionIds?.forEach { id ->
|
||||||
if (id !in correctOptionIdsRange) {
|
if (id !in correctOptionIdsRange) {
|
||||||
@@ -299,6 +346,10 @@ fun SendQuizPoll(
|
|||||||
explanationParseMode: ParseMode? = null,
|
explanationParseMode: ParseMode? = null,
|
||||||
isAnonymous: Boolean = true,
|
isAnonymous: Boolean = true,
|
||||||
isClosed: Boolean = false,
|
isClosed: Boolean = false,
|
||||||
|
shuffleOptions: Boolean = false,
|
||||||
|
hideResultsUntilCloses: Boolean = false,
|
||||||
|
description: String? = null,
|
||||||
|
descriptionParseMode: ParseMode? = null,
|
||||||
threadId: MessageThreadId? = chatId.threadId,
|
threadId: MessageThreadId? = chatId.threadId,
|
||||||
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
|
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
|
||||||
businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId,
|
businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId,
|
||||||
@@ -319,6 +370,10 @@ fun SendQuizPoll(
|
|||||||
explanationParseMode = explanationParseMode,
|
explanationParseMode = explanationParseMode,
|
||||||
isAnonymous = isAnonymous,
|
isAnonymous = isAnonymous,
|
||||||
isClosed = isClosed,
|
isClosed = isClosed,
|
||||||
|
shuffleOptions = shuffleOptions,
|
||||||
|
hideResultsUntilCloses = hideResultsUntilCloses,
|
||||||
|
description = description,
|
||||||
|
descriptionParseMode = descriptionParseMode,
|
||||||
openPeriod = (closeInfo as? ApproximateScheduledCloseInfo)?.openPeriod,
|
openPeriod = (closeInfo as? ApproximateScheduledCloseInfo)?.openPeriod,
|
||||||
closeDate = (closeInfo as? ExactScheduledCloseInfo)?.closeDate,
|
closeDate = (closeInfo as? ExactScheduledCloseInfo)?.closeDate,
|
||||||
threadId = threadId,
|
threadId = threadId,
|
||||||
@@ -343,6 +398,10 @@ fun SendQuizPoll(
|
|||||||
explanationParseMode: ParseMode? = null,
|
explanationParseMode: ParseMode? = null,
|
||||||
isAnonymous: Boolean = true,
|
isAnonymous: Boolean = true,
|
||||||
isClosed: Boolean = false,
|
isClosed: Boolean = false,
|
||||||
|
shuffleOptions: Boolean = false,
|
||||||
|
hideResultsUntilCloses: Boolean = false,
|
||||||
|
description: String? = null,
|
||||||
|
descriptionParseMode: ParseMode? = null,
|
||||||
threadId: MessageThreadId? = chatId.threadId,
|
threadId: MessageThreadId? = chatId.threadId,
|
||||||
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
|
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
|
||||||
businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId,
|
businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId,
|
||||||
@@ -362,6 +421,10 @@ fun SendQuizPoll(
|
|||||||
explanationParseMode = explanationParseMode,
|
explanationParseMode = explanationParseMode,
|
||||||
isAnonymous = isAnonymous,
|
isAnonymous = isAnonymous,
|
||||||
isClosed = isClosed,
|
isClosed = isClosed,
|
||||||
|
shuffleOptions = shuffleOptions,
|
||||||
|
hideResultsUntilCloses = hideResultsUntilCloses,
|
||||||
|
description = description,
|
||||||
|
descriptionParseMode = descriptionParseMode,
|
||||||
openPeriod = (closeInfo as? ApproximateScheduledCloseInfo)?.openPeriod,
|
openPeriod = (closeInfo as? ApproximateScheduledCloseInfo)?.openPeriod,
|
||||||
closeDate = (closeInfo as? ExactScheduledCloseInfo)?.closeDate,
|
closeDate = (closeInfo as? ExactScheduledCloseInfo)?.closeDate,
|
||||||
threadId = threadId,
|
threadId = threadId,
|
||||||
@@ -386,6 +449,9 @@ fun SendQuizPoll(
|
|||||||
explanationTextSources: List<TextSource>? = null,
|
explanationTextSources: List<TextSource>? = null,
|
||||||
isAnonymous: Boolean = true,
|
isAnonymous: Boolean = true,
|
||||||
isClosed: Boolean = false,
|
isClosed: Boolean = false,
|
||||||
|
shuffleOptions: Boolean = false,
|
||||||
|
hideResultsUntilCloses: Boolean = false,
|
||||||
|
descriptionTextSources: List<TextSource>? = null,
|
||||||
threadId: MessageThreadId? = chatId.threadId,
|
threadId: MessageThreadId? = chatId.threadId,
|
||||||
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
|
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
|
||||||
businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId,
|
businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId,
|
||||||
@@ -405,6 +471,9 @@ fun SendQuizPoll(
|
|||||||
explanationTextSources = explanationTextSources,
|
explanationTextSources = explanationTextSources,
|
||||||
isAnonymous = isAnonymous,
|
isAnonymous = isAnonymous,
|
||||||
isClosed = isClosed,
|
isClosed = isClosed,
|
||||||
|
shuffleOptions = shuffleOptions,
|
||||||
|
hideResultsUntilCloses = hideResultsUntilCloses,
|
||||||
|
descriptionTextSources = descriptionTextSources,
|
||||||
openPeriod = (closeInfo as? ApproximateScheduledCloseInfo)?.openPeriod,
|
openPeriod = (closeInfo as? ApproximateScheduledCloseInfo)?.openPeriod,
|
||||||
closeDate = (closeInfo as? ExactScheduledCloseInfo)?.closeDate,
|
closeDate = (closeInfo as? ExactScheduledCloseInfo)?.closeDate,
|
||||||
threadId = threadId,
|
threadId = threadId,
|
||||||
@@ -428,6 +497,9 @@ fun SendQuizPoll(
|
|||||||
explanationTextSources: List<TextSource>? = null,
|
explanationTextSources: List<TextSource>? = null,
|
||||||
isAnonymous: Boolean = true,
|
isAnonymous: Boolean = true,
|
||||||
isClosed: Boolean = false,
|
isClosed: Boolean = false,
|
||||||
|
shuffleOptions: Boolean = false,
|
||||||
|
hideResultsUntilCloses: Boolean = false,
|
||||||
|
descriptionTextSources: List<TextSource>? = null,
|
||||||
threadId: MessageThreadId? = chatId.threadId,
|
threadId: MessageThreadId? = chatId.threadId,
|
||||||
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
|
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
|
||||||
businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId,
|
businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId,
|
||||||
@@ -446,6 +518,9 @@ fun SendQuizPoll(
|
|||||||
explanationTextSources = explanationTextSources,
|
explanationTextSources = explanationTextSources,
|
||||||
isAnonymous = isAnonymous,
|
isAnonymous = isAnonymous,
|
||||||
isClosed = isClosed,
|
isClosed = isClosed,
|
||||||
|
shuffleOptions = shuffleOptions,
|
||||||
|
hideResultsUntilCloses = hideResultsUntilCloses,
|
||||||
|
descriptionTextSources = descriptionTextSources,
|
||||||
openPeriod = (closeInfo as? ApproximateScheduledCloseInfo)?.openPeriod,
|
openPeriod = (closeInfo as? ApproximateScheduledCloseInfo)?.openPeriod,
|
||||||
closeDate = (closeInfo as? ExactScheduledCloseInfo)?.closeDate,
|
closeDate = (closeInfo as? ExactScheduledCloseInfo)?.closeDate,
|
||||||
threadId = threadId,
|
threadId = threadId,
|
||||||
|
|||||||
@@ -40,8 +40,22 @@ class SendRegularPoll constructor(
|
|||||||
override val isClosed: Boolean = false,
|
override val isClosed: Boolean = false,
|
||||||
@SerialName(allowsMultipleAnswersField)
|
@SerialName(allowsMultipleAnswersField)
|
||||||
val allowMultipleAnswers: Boolean = false,
|
val allowMultipleAnswers: Boolean = false,
|
||||||
|
@SerialName(allowsRevotingField)
|
||||||
|
val allowsRevoting: Boolean = true,
|
||||||
|
@SerialName(shuffleOptionsField)
|
||||||
|
val shuffleOptions: Boolean = false,
|
||||||
|
@SerialName(allowAddingOptionsField)
|
||||||
|
val allowAddingOptions: Boolean = false,
|
||||||
|
@SerialName(hideResultsUntilClosesField)
|
||||||
|
val hideResultsUntilCloses: Boolean = false,
|
||||||
|
@SerialName(descriptionField)
|
||||||
|
val description: String? = null,
|
||||||
|
@SerialName(descriptionParseModeField)
|
||||||
|
val descriptionParseMode: ParseMode? = null,
|
||||||
|
@SerialName(descriptionEntitiesField)
|
||||||
|
private val rawDescriptionEntities: List<RawMessageEntity>? = null,
|
||||||
@SerialName(openPeriodField)
|
@SerialName(openPeriodField)
|
||||||
override val openPeriod: LongSeconds?= null,
|
override val openPeriod: LongSeconds? = null,
|
||||||
@SerialName(closeDateField)
|
@SerialName(closeDateField)
|
||||||
override val closeDate: LongSeconds? = null,
|
override val closeDate: LongSeconds? = null,
|
||||||
@OptIn(ExperimentalSerializationApi::class)
|
@OptIn(ExperimentalSerializationApi::class)
|
||||||
@@ -71,6 +85,9 @@ class SendRegularPoll constructor(
|
|||||||
) : SendPoll() {
|
) : SendPoll() {
|
||||||
override val textSources: List<TextSource>
|
override val textSources: List<TextSource>
|
||||||
get() = rawQuestionEntities.asTextSources(text)
|
get() = rawQuestionEntities.asTextSources(text)
|
||||||
|
val descriptionTextSources: List<TextSource>? by lazy {
|
||||||
|
rawDescriptionEntities?.asTextSources(description ?: return@lazy null)
|
||||||
|
}
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
chatId: ChatIdentifier,
|
chatId: ChatIdentifier,
|
||||||
@@ -79,7 +96,13 @@ class SendRegularPoll constructor(
|
|||||||
isAnonymous: Boolean = true,
|
isAnonymous: Boolean = true,
|
||||||
isClosed: Boolean = false,
|
isClosed: Boolean = false,
|
||||||
allowMultipleAnswers: Boolean = false,
|
allowMultipleAnswers: Boolean = false,
|
||||||
openPeriod: LongSeconds?= null,
|
allowsRevoting: Boolean = true,
|
||||||
|
shuffleOptions: Boolean = false,
|
||||||
|
allowAddingOptions: Boolean = false,
|
||||||
|
hideResultsUntilCloses: Boolean = false,
|
||||||
|
description: String? = null,
|
||||||
|
descriptionParseMode: ParseMode? = null,
|
||||||
|
openPeriod: LongSeconds? = null,
|
||||||
closeDate: LongSeconds? = null,
|
closeDate: LongSeconds? = null,
|
||||||
threadId: MessageThreadId? = chatId.threadId,
|
threadId: MessageThreadId? = chatId.threadId,
|
||||||
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
|
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
|
||||||
@@ -100,6 +123,13 @@ class SendRegularPoll constructor(
|
|||||||
isAnonymous = isAnonymous,
|
isAnonymous = isAnonymous,
|
||||||
isClosed = isClosed,
|
isClosed = isClosed,
|
||||||
allowMultipleAnswers = allowMultipleAnswers,
|
allowMultipleAnswers = allowMultipleAnswers,
|
||||||
|
allowsRevoting = allowsRevoting,
|
||||||
|
shuffleOptions = shuffleOptions,
|
||||||
|
allowAddingOptions = allowAddingOptions,
|
||||||
|
hideResultsUntilCloses = hideResultsUntilCloses,
|
||||||
|
description = description,
|
||||||
|
descriptionParseMode = descriptionParseMode,
|
||||||
|
rawDescriptionEntities = null,
|
||||||
openPeriod = openPeriod,
|
openPeriod = openPeriod,
|
||||||
closeDate = closeDate,
|
closeDate = closeDate,
|
||||||
threadId = threadId,
|
threadId = threadId,
|
||||||
@@ -122,7 +152,13 @@ class SendRegularPoll constructor(
|
|||||||
isAnonymous: Boolean = true,
|
isAnonymous: Boolean = true,
|
||||||
isClosed: Boolean = false,
|
isClosed: Boolean = false,
|
||||||
allowMultipleAnswers: Boolean = false,
|
allowMultipleAnswers: Boolean = false,
|
||||||
openPeriod: LongSeconds?= null,
|
allowsRevoting: Boolean = true,
|
||||||
|
shuffleOptions: Boolean = false,
|
||||||
|
allowAddingOptions: Boolean = false,
|
||||||
|
hideResultsUntilCloses: Boolean = false,
|
||||||
|
description: String? = null,
|
||||||
|
descriptionParseMode: ParseMode? = null,
|
||||||
|
openPeriod: LongSeconds? = null,
|
||||||
closeDate: LongSeconds? = null,
|
closeDate: LongSeconds? = null,
|
||||||
threadId: MessageThreadId? = chatId.threadId,
|
threadId: MessageThreadId? = chatId.threadId,
|
||||||
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
|
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
|
||||||
@@ -143,6 +179,122 @@ class SendRegularPoll constructor(
|
|||||||
isAnonymous = isAnonymous,
|
isAnonymous = isAnonymous,
|
||||||
isClosed = isClosed,
|
isClosed = isClosed,
|
||||||
allowMultipleAnswers = allowMultipleAnswers,
|
allowMultipleAnswers = allowMultipleAnswers,
|
||||||
|
allowsRevoting = allowsRevoting,
|
||||||
|
shuffleOptions = shuffleOptions,
|
||||||
|
allowAddingOptions = allowAddingOptions,
|
||||||
|
hideResultsUntilCloses = hideResultsUntilCloses,
|
||||||
|
description = description,
|
||||||
|
descriptionParseMode = descriptionParseMode,
|
||||||
|
rawDescriptionEntities = null,
|
||||||
|
openPeriod = openPeriod,
|
||||||
|
closeDate = closeDate,
|
||||||
|
threadId = threadId,
|
||||||
|
directMessageThreadId = directMessageThreadId,
|
||||||
|
businessConnectionId = businessConnectionId,
|
||||||
|
disableNotification = disableNotification,
|
||||||
|
protectContent = protectContent,
|
||||||
|
allowPaidBroadcast = allowPaidBroadcast,
|
||||||
|
effectId = effectId,
|
||||||
|
suggestedPostParameters = suggestedPostParameters,
|
||||||
|
replyParameters = replyParameters,
|
||||||
|
replyMarkup = replyMarkup
|
||||||
|
)
|
||||||
|
|
||||||
|
constructor(
|
||||||
|
chatId: ChatIdentifier,
|
||||||
|
question: String,
|
||||||
|
options: List<InputPollOption>,
|
||||||
|
questionParseMode: ParseMode? = null,
|
||||||
|
isAnonymous: Boolean = true,
|
||||||
|
isClosed: Boolean = false,
|
||||||
|
allowMultipleAnswers: Boolean = false,
|
||||||
|
allowsRevoting: Boolean = true,
|
||||||
|
shuffleOptions: Boolean = false,
|
||||||
|
allowAddingOptions: Boolean = false,
|
||||||
|
hideResultsUntilCloses: Boolean = false,
|
||||||
|
descriptionTextSources: List<TextSource>? = null,
|
||||||
|
openPeriod: LongSeconds? = null,
|
||||||
|
closeDate: LongSeconds? = null,
|
||||||
|
threadId: MessageThreadId? = chatId.threadId,
|
||||||
|
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
|
||||||
|
businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId,
|
||||||
|
disableNotification: Boolean = false,
|
||||||
|
protectContent: Boolean = false,
|
||||||
|
allowPaidBroadcast: Boolean = false,
|
||||||
|
effectId: EffectId? = null,
|
||||||
|
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||||
|
replyParameters: ReplyParameters? = null,
|
||||||
|
replyMarkup: KeyboardMarkup? = null
|
||||||
|
) : this(
|
||||||
|
chatId = chatId,
|
||||||
|
question = question,
|
||||||
|
options = options,
|
||||||
|
questionParseMode = questionParseMode,
|
||||||
|
rawQuestionEntities = emptyList(),
|
||||||
|
isAnonymous = isAnonymous,
|
||||||
|
isClosed = isClosed,
|
||||||
|
allowMultipleAnswers = allowMultipleAnswers,
|
||||||
|
allowsRevoting = allowsRevoting,
|
||||||
|
shuffleOptions = shuffleOptions,
|
||||||
|
allowAddingOptions = allowAddingOptions,
|
||||||
|
hideResultsUntilCloses = hideResultsUntilCloses,
|
||||||
|
description = descriptionTextSources?.makeSourceString(),
|
||||||
|
descriptionParseMode = null,
|
||||||
|
rawDescriptionEntities = descriptionTextSources?.toRawMessageEntities(),
|
||||||
|
openPeriod = openPeriod,
|
||||||
|
closeDate = closeDate,
|
||||||
|
threadId = threadId,
|
||||||
|
directMessageThreadId = directMessageThreadId,
|
||||||
|
businessConnectionId = businessConnectionId,
|
||||||
|
disableNotification = disableNotification,
|
||||||
|
protectContent = protectContent,
|
||||||
|
allowPaidBroadcast = allowPaidBroadcast,
|
||||||
|
effectId = effectId,
|
||||||
|
suggestedPostParameters = suggestedPostParameters,
|
||||||
|
replyParameters = replyParameters,
|
||||||
|
replyMarkup = replyMarkup
|
||||||
|
)
|
||||||
|
|
||||||
|
constructor(
|
||||||
|
chatId: ChatIdentifier,
|
||||||
|
questionEntities: List<TextSource>,
|
||||||
|
options: List<InputPollOption>,
|
||||||
|
isAnonymous: Boolean = true,
|
||||||
|
isClosed: Boolean = false,
|
||||||
|
allowMultipleAnswers: Boolean = false,
|
||||||
|
allowsRevoting: Boolean = true,
|
||||||
|
shuffleOptions: Boolean = false,
|
||||||
|
allowAddingOptions: Boolean = false,
|
||||||
|
hideResultsUntilCloses: Boolean = false,
|
||||||
|
descriptionTextSources: List<TextSource>? = null,
|
||||||
|
openPeriod: LongSeconds? = null,
|
||||||
|
closeDate: LongSeconds? = null,
|
||||||
|
threadId: MessageThreadId? = chatId.threadId,
|
||||||
|
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
|
||||||
|
businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId,
|
||||||
|
disableNotification: Boolean = false,
|
||||||
|
protectContent: Boolean = false,
|
||||||
|
allowPaidBroadcast: Boolean = false,
|
||||||
|
effectId: EffectId? = null,
|
||||||
|
suggestedPostParameters: SuggestedPostParameters? = null,
|
||||||
|
replyParameters: ReplyParameters? = null,
|
||||||
|
replyMarkup: KeyboardMarkup? = null
|
||||||
|
) : this(
|
||||||
|
chatId = chatId,
|
||||||
|
question = questionEntities.makeSourceString(),
|
||||||
|
options = options,
|
||||||
|
questionParseMode = null,
|
||||||
|
rawQuestionEntities = questionEntities.toRawMessageEntities(),
|
||||||
|
isAnonymous = isAnonymous,
|
||||||
|
isClosed = isClosed,
|
||||||
|
allowMultipleAnswers = allowMultipleAnswers,
|
||||||
|
allowsRevoting = allowsRevoting,
|
||||||
|
shuffleOptions = shuffleOptions,
|
||||||
|
allowAddingOptions = allowAddingOptions,
|
||||||
|
hideResultsUntilCloses = hideResultsUntilCloses,
|
||||||
|
description = descriptionTextSources?.makeSourceString(),
|
||||||
|
descriptionParseMode = null,
|
||||||
|
rawDescriptionEntities = descriptionTextSources?.toRawMessageEntities(),
|
||||||
openPeriod = openPeriod,
|
openPeriod = openPeriod,
|
||||||
closeDate = closeDate,
|
closeDate = closeDate,
|
||||||
threadId = threadId,
|
threadId = threadId,
|
||||||
@@ -163,7 +315,7 @@ class SendRegularPoll constructor(
|
|||||||
|
|
||||||
init {
|
init {
|
||||||
checkPollInfo(question, options)
|
checkPollInfo(question, options)
|
||||||
closeInfo ?.checkSendData()
|
closeInfo?.checkSendData()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -176,6 +328,12 @@ fun SendRegularPoll(
|
|||||||
isAnonymous: Boolean = true,
|
isAnonymous: Boolean = true,
|
||||||
isClosed: Boolean = false,
|
isClosed: Boolean = false,
|
||||||
allowMultipleAnswers: Boolean = false,
|
allowMultipleAnswers: Boolean = false,
|
||||||
|
allowsRevoting: Boolean = true,
|
||||||
|
shuffleOptions: Boolean = false,
|
||||||
|
allowAddingOptions: Boolean = false,
|
||||||
|
hideResultsUntilCloses: Boolean = false,
|
||||||
|
description: String? = null,
|
||||||
|
descriptionParseMode: ParseMode? = null,
|
||||||
threadId: MessageThreadId? = chatId.threadId,
|
threadId: MessageThreadId? = chatId.threadId,
|
||||||
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
|
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
|
||||||
businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId,
|
businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId,
|
||||||
@@ -194,8 +352,14 @@ fun SendRegularPoll(
|
|||||||
isAnonymous = isAnonymous,
|
isAnonymous = isAnonymous,
|
||||||
isClosed = isClosed,
|
isClosed = isClosed,
|
||||||
allowMultipleAnswers = allowMultipleAnswers,
|
allowMultipleAnswers = allowMultipleAnswers,
|
||||||
openPeriod = (closeInfo as? ApproximateScheduledCloseInfo) ?.openPeriod,
|
allowsRevoting = allowsRevoting,
|
||||||
closeDate = (closeInfo as? ExactScheduledCloseInfo) ?.closeDate,
|
shuffleOptions = shuffleOptions,
|
||||||
|
allowAddingOptions = allowAddingOptions,
|
||||||
|
hideResultsUntilCloses = hideResultsUntilCloses,
|
||||||
|
description = description,
|
||||||
|
descriptionParseMode = descriptionParseMode,
|
||||||
|
openPeriod = (closeInfo as? ApproximateScheduledCloseInfo)?.openPeriod,
|
||||||
|
closeDate = (closeInfo as? ExactScheduledCloseInfo)?.closeDate,
|
||||||
threadId = threadId,
|
threadId = threadId,
|
||||||
directMessageThreadId = directMessageThreadId,
|
directMessageThreadId = directMessageThreadId,
|
||||||
businessConnectionId = businessConnectionId,
|
businessConnectionId = businessConnectionId,
|
||||||
@@ -216,6 +380,12 @@ fun SendRegularPoll(
|
|||||||
isAnonymous: Boolean = true,
|
isAnonymous: Boolean = true,
|
||||||
isClosed: Boolean = false,
|
isClosed: Boolean = false,
|
||||||
allowMultipleAnswers: Boolean = false,
|
allowMultipleAnswers: Boolean = false,
|
||||||
|
allowsRevoting: Boolean = true,
|
||||||
|
shuffleOptions: Boolean = false,
|
||||||
|
allowAddingOptions: Boolean = false,
|
||||||
|
hideResultsUntilCloses: Boolean = false,
|
||||||
|
description: String? = null,
|
||||||
|
descriptionParseMode: ParseMode? = null,
|
||||||
threadId: MessageThreadId? = chatId.threadId,
|
threadId: MessageThreadId? = chatId.threadId,
|
||||||
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
|
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
|
||||||
businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId,
|
businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId,
|
||||||
@@ -233,8 +403,14 @@ fun SendRegularPoll(
|
|||||||
isAnonymous = isAnonymous,
|
isAnonymous = isAnonymous,
|
||||||
isClosed = isClosed,
|
isClosed = isClosed,
|
||||||
allowMultipleAnswers = allowMultipleAnswers,
|
allowMultipleAnswers = allowMultipleAnswers,
|
||||||
openPeriod = (closeInfo as? ApproximateScheduledCloseInfo) ?.openPeriod,
|
allowsRevoting = allowsRevoting,
|
||||||
closeDate = (closeInfo as? ExactScheduledCloseInfo) ?.closeDate,
|
shuffleOptions = shuffleOptions,
|
||||||
|
allowAddingOptions = allowAddingOptions,
|
||||||
|
hideResultsUntilCloses = hideResultsUntilCloses,
|
||||||
|
description = description,
|
||||||
|
descriptionParseMode = descriptionParseMode,
|
||||||
|
openPeriod = (closeInfo as? ApproximateScheduledCloseInfo)?.openPeriod,
|
||||||
|
closeDate = (closeInfo as? ExactScheduledCloseInfo)?.closeDate,
|
||||||
threadId = threadId,
|
threadId = threadId,
|
||||||
directMessageThreadId = directMessageThreadId,
|
directMessageThreadId = directMessageThreadId,
|
||||||
businessConnectionId = businessConnectionId,
|
businessConnectionId = businessConnectionId,
|
||||||
@@ -254,6 +430,12 @@ fun SendRegularPoll(
|
|||||||
isAnonymous: Boolean = true,
|
isAnonymous: Boolean = true,
|
||||||
isClosed: Boolean = false,
|
isClosed: Boolean = false,
|
||||||
allowMultipleAnswers: Boolean = false,
|
allowMultipleAnswers: Boolean = false,
|
||||||
|
allowsRevoting: Boolean = true,
|
||||||
|
shuffleOptions: Boolean = false,
|
||||||
|
allowAddingOptions: Boolean = false,
|
||||||
|
hideResultsUntilCloses: Boolean = false,
|
||||||
|
description: String? = null,
|
||||||
|
descriptionParseMode: ParseMode? = null,
|
||||||
threadId: MessageThreadId? = chatId.threadId,
|
threadId: MessageThreadId? = chatId.threadId,
|
||||||
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
|
directMessageThreadId: DirectMessageThreadId? = chatId.directMessageThreadId,
|
||||||
businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId,
|
businessConnectionId: BusinessConnectionId? = chatId.businessConnectionId,
|
||||||
@@ -273,6 +455,12 @@ fun SendRegularPoll(
|
|||||||
isAnonymous = isAnonymous,
|
isAnonymous = isAnonymous,
|
||||||
isClosed = isClosed,
|
isClosed = isClosed,
|
||||||
allowMultipleAnswers = allowMultipleAnswers,
|
allowMultipleAnswers = allowMultipleAnswers,
|
||||||
|
allowsRevoting = allowsRevoting,
|
||||||
|
shuffleOptions = shuffleOptions,
|
||||||
|
allowAddingOptions = allowAddingOptions,
|
||||||
|
hideResultsUntilCloses = hideResultsUntilCloses,
|
||||||
|
description = description,
|
||||||
|
descriptionParseMode = descriptionParseMode,
|
||||||
threadId = threadId,
|
threadId = threadId,
|
||||||
directMessageThreadId = directMessageThreadId,
|
directMessageThreadId = directMessageThreadId,
|
||||||
businessConnectionId = businessConnectionId,
|
businessConnectionId = businessConnectionId,
|
||||||
|
|||||||
@@ -100,7 +100,7 @@ val mediaCountInMediaGroup: IntRange = 2 .. 10
|
|||||||
|
|
||||||
val explanationLimit = 0 .. 200
|
val explanationLimit = 0 .. 200
|
||||||
|
|
||||||
val openPeriodPollSecondsLimit = 5 .. 600
|
val openPeriodPollSecondsLimit = 5 .. 2628000
|
||||||
|
|
||||||
val membersLimit = 1 .. 99999
|
val membersLimit = 1 .. 99999
|
||||||
|
|
||||||
@@ -278,11 +278,19 @@ const val lastErrorDateField = "last_error_date"
|
|||||||
const val lastSynchronizationErrorDateField = "last_synchronization_error_date"
|
const val lastSynchronizationErrorDateField = "last_synchronization_error_date"
|
||||||
const val lastErrorMessageField = "last_error_message"
|
const val lastErrorMessageField = "last_error_message"
|
||||||
const val votesCountField = "voter_count"
|
const val votesCountField = "voter_count"
|
||||||
|
const val addedByUserField = "added_by_user"
|
||||||
|
const val addedByChatField = "added_by_chat"
|
||||||
|
const val additionDateField = "addition_date"
|
||||||
|
const val persistentIdField = "persistent_id"
|
||||||
const val isClosedField = "is_closed"
|
const val isClosedField = "is_closed"
|
||||||
const val totalVoterCountField = "total_voter_count"
|
const val totalVoterCountField = "total_voter_count"
|
||||||
const val correctOptionIdField = "correct_option_id"
|
const val correctOptionIdField = "correct_option_id"
|
||||||
const val correctOptionIdsField = "correct_option_ids"
|
const val correctOptionIdsField = "correct_option_ids"
|
||||||
const val allowsMultipleAnswersField = "allows_multiple_answers"
|
const val allowsMultipleAnswersField = "allows_multiple_answers"
|
||||||
|
const val allowsRevotingField = "allows_revoting"
|
||||||
|
const val shuffleOptionsField = "shuffle_options"
|
||||||
|
const val allowAddingOptionsField = "allow_adding_options"
|
||||||
|
const val hideResultsUntilClosesField = "hide_results_until_closes"
|
||||||
const val isAnonymousField = "is_anonymous"
|
const val isAnonymousField = "is_anonymous"
|
||||||
const val canManageTopicsField = "can_manage_topics"
|
const val canManageTopicsField = "can_manage_topics"
|
||||||
const val canEditTagField = "can_edit_tag"
|
const val canEditTagField = "can_edit_tag"
|
||||||
@@ -598,6 +606,8 @@ const val chatTypeField = "chat_type"
|
|||||||
|
|
||||||
const val explanationEntitiesField = "explanation_entities"
|
const val explanationEntitiesField = "explanation_entities"
|
||||||
const val explanationParseModeField = "explanation_parse_mode"
|
const val explanationParseModeField = "explanation_parse_mode"
|
||||||
|
const val descriptionParseModeField = "description_parse_mode"
|
||||||
|
const val descriptionEntitiesField = "description_entities"
|
||||||
const val openPeriodField = "open_period"
|
const val openPeriodField = "open_period"
|
||||||
const val closeDateField = "close_date"
|
const val closeDateField = "close_date"
|
||||||
const val openingMinuteField = "opening_minute"
|
const val openingMinuteField = "opening_minute"
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
package dev.inmo.tgbotapi.types.polls
|
package dev.inmo.tgbotapi.types.polls
|
||||||
|
|
||||||
import dev.inmo.tgbotapi.abstracts.TextedInput
|
import dev.inmo.tgbotapi.abstracts.TextedInput
|
||||||
|
import dev.inmo.tgbotapi.types.*
|
||||||
|
import dev.inmo.tgbotapi.types.chat.Chat
|
||||||
|
import dev.inmo.tgbotapi.types.chat.User
|
||||||
import dev.inmo.tgbotapi.types.message.RawMessageEntity
|
import dev.inmo.tgbotapi.types.message.RawMessageEntity
|
||||||
import dev.inmo.tgbotapi.types.message.asTextSources
|
import dev.inmo.tgbotapi.types.message.asTextSources
|
||||||
import dev.inmo.tgbotapi.types.message.textsources.TextSource
|
import dev.inmo.tgbotapi.types.message.textsources.TextSource
|
||||||
import dev.inmo.tgbotapi.types.message.toRawMessageEntities
|
import dev.inmo.tgbotapi.types.message.toRawMessageEntities
|
||||||
import dev.inmo.tgbotapi.types.textEntitiesField
|
|
||||||
import dev.inmo.tgbotapi.types.textField
|
|
||||||
import dev.inmo.tgbotapi.types.votesCountField
|
|
||||||
import dev.inmo.tgbotapi.utils.EntitiesBuilder
|
import dev.inmo.tgbotapi.utils.EntitiesBuilder
|
||||||
import dev.inmo.tgbotapi.utils.EntitiesBuilderBody
|
import dev.inmo.tgbotapi.utils.EntitiesBuilderBody
|
||||||
import dev.inmo.tgbotapi.utils.RiskFeature
|
import dev.inmo.tgbotapi.utils.RiskFeature
|
||||||
@@ -17,75 +17,220 @@ import kotlinx.serialization.descriptors.SerialDescriptor
|
|||||||
import kotlinx.serialization.encoding.Decoder
|
import kotlinx.serialization.encoding.Decoder
|
||||||
import kotlinx.serialization.encoding.Encoder
|
import kotlinx.serialization.encoding.Encoder
|
||||||
|
|
||||||
@Serializable(PollOptionSerializer::class)
|
@Serializable
|
||||||
sealed class PollOption : TextedInput {
|
private data class PollOptionSurrogate(
|
||||||
abstract val votes: Int
|
@SerialName(persistentIdField)
|
||||||
|
val id: PollOptionPersistentId,
|
||||||
|
@SerialName(textField)
|
||||||
|
val text: String,
|
||||||
|
@SerialName(textEntitiesField)
|
||||||
|
val textEntities: List<RawMessageEntity> = emptyList(),
|
||||||
|
@SerialName(votesCountField)
|
||||||
|
val votes: Int = 0,
|
||||||
|
@SerialName(addedByUserField)
|
||||||
|
val addedByUser: User? = null,
|
||||||
|
@SerialName(addedByChatField)
|
||||||
|
val addedByChat: Chat? = null,
|
||||||
|
@Serializable(TelegramDateSerializer::class)
|
||||||
|
@SerialName(additionDateField)
|
||||||
|
val additionDate: TelegramDate? = null
|
||||||
|
)
|
||||||
|
|
||||||
abstract fun asInput(): InputPollOption
|
@Serializable(PollOption.Companion::class)
|
||||||
|
sealed interface PollOption : TextedInput {
|
||||||
|
val id: PollOptionPersistentId
|
||||||
|
val votes: Int
|
||||||
|
|
||||||
|
fun asInput(): InputPollOption
|
||||||
|
|
||||||
|
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
|
||||||
|
@Serializable(PollOption.Companion::class)
|
||||||
|
data class Simple(
|
||||||
|
@SerialName(persistentIdField)
|
||||||
|
override val id: PollOptionPersistentId,
|
||||||
|
@SerialName(textField)
|
||||||
|
override val text: String,
|
||||||
|
@SerialName(textEntitiesField)
|
||||||
|
override val textSources: List<TextSource> = emptyList(),
|
||||||
|
@SerialName(votesCountField)
|
||||||
|
override val votes: Int = 0
|
||||||
|
) : PollOption {
|
||||||
|
override fun asInput(): InputPollOption = InputPollOption(text, null, textSources)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Serializable(PollOption.LatelyAdded.Companion::class)
|
||||||
|
sealed interface LatelyAdded : PollOption {
|
||||||
|
val additionDate: TelegramDate?
|
||||||
|
|
||||||
|
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
|
||||||
|
@Serializable(PollOption.LatelyAdded.Companion::class)
|
||||||
|
data class AddedByUser(
|
||||||
|
@SerialName(persistentIdField)
|
||||||
|
override val id: PollOptionPersistentId,
|
||||||
|
@SerialName(textField)
|
||||||
|
override val text: String,
|
||||||
|
@SerialName(textEntitiesField)
|
||||||
|
override val textSources: List<TextSource> = emptyList(),
|
||||||
|
@SerialName(votesCountField)
|
||||||
|
override val votes: Int = 0,
|
||||||
|
@SerialName(addedByUserField)
|
||||||
|
val addedByUser: User,
|
||||||
|
@Serializable(TelegramDateSerializer::class)
|
||||||
|
@SerialName(additionDateField)
|
||||||
|
override val additionDate: TelegramDate? = null
|
||||||
|
) : LatelyAdded {
|
||||||
|
override fun asInput(): InputPollOption = InputPollOption(text, null, textSources)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
|
||||||
|
@Serializable(PollOption.LatelyAdded.Companion::class)
|
||||||
|
data class AddedByChat(
|
||||||
|
@SerialName(persistentIdField)
|
||||||
|
override val id: PollOptionPersistentId,
|
||||||
|
@SerialName(textField)
|
||||||
|
override val text: String,
|
||||||
|
@SerialName(textEntitiesField)
|
||||||
|
override val textSources: List<TextSource> = emptyList(),
|
||||||
|
@SerialName(votesCountField)
|
||||||
|
override val votes: Int = 0,
|
||||||
|
@SerialName(addedByChatField)
|
||||||
|
val addedByChat: Chat,
|
||||||
|
@Serializable(TelegramDateSerializer::class)
|
||||||
|
@SerialName(additionDateField)
|
||||||
|
override val additionDate: TelegramDate? = null
|
||||||
|
) : LatelyAdded {
|
||||||
|
override fun asInput(): InputPollOption = InputPollOption(text, null, textSources)
|
||||||
|
}
|
||||||
|
|
||||||
|
@RiskFeature
|
||||||
|
companion object : KSerializer<LatelyAdded> {
|
||||||
|
override val descriptor: SerialDescriptor = PollOptionSurrogate.serializer().descriptor
|
||||||
|
|
||||||
|
override fun deserialize(decoder: Decoder): LatelyAdded {
|
||||||
|
val surrogate = PollOptionSurrogate.serializer().deserialize(decoder)
|
||||||
|
val textSources = surrogate.textEntities.asTextSources(surrogate.text)
|
||||||
|
return when {
|
||||||
|
surrogate.addedByUser != null -> AddedByUser(
|
||||||
|
surrogate.id, surrogate.text, textSources, surrogate.votes,
|
||||||
|
surrogate.addedByUser, surrogate.additionDate
|
||||||
|
)
|
||||||
|
surrogate.addedByChat != null -> AddedByChat(
|
||||||
|
surrogate.id, surrogate.text, textSources, surrogate.votes,
|
||||||
|
surrogate.addedByChat, surrogate.additionDate
|
||||||
|
)
|
||||||
|
else -> error("LatelyAdded poll option must have either added_by_user or added_by_chat")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun serialize(encoder: Encoder, value: LatelyAdded) {
|
||||||
|
PollOptionSurrogate.serializer().serialize(
|
||||||
|
encoder,
|
||||||
|
when (value) {
|
||||||
|
is AddedByUser -> PollOptionSurrogate(
|
||||||
|
id = value.id,
|
||||||
|
text = value.text,
|
||||||
|
textEntities = value.textSources.toRawMessageEntities(),
|
||||||
|
votes = value.votes,
|
||||||
|
addedByUser = value.addedByUser,
|
||||||
|
additionDate = value.additionDate
|
||||||
|
)
|
||||||
|
is AddedByChat -> PollOptionSurrogate(
|
||||||
|
id = value.id,
|
||||||
|
text = value.text,
|
||||||
|
textEntities = value.textSources.toRawMessageEntities(),
|
||||||
|
votes = value.votes,
|
||||||
|
addedByChat = value.addedByChat,
|
||||||
|
additionDate = value.additionDate
|
||||||
|
)
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@RiskFeature
|
||||||
|
companion object : KSerializer<PollOption> {
|
||||||
|
override val descriptor: SerialDescriptor = PollOptionSurrogate.serializer().descriptor
|
||||||
|
|
||||||
companion object {
|
|
||||||
fun simple(
|
fun simple(
|
||||||
|
id: PollOptionPersistentId,
|
||||||
text: String,
|
text: String,
|
||||||
textSources: List<TextSource>,
|
textSources: List<TextSource>,
|
||||||
votes: Int = 0
|
votes: Int = 0
|
||||||
) = SimplePollOption(text, textSources, votes)
|
) = Simple(id, text, textSources, votes)
|
||||||
fun simple(
|
fun simple(
|
||||||
|
id: PollOptionPersistentId,
|
||||||
textSources: List<TextSource>,
|
textSources: List<TextSource>,
|
||||||
votes: Int = 0
|
votes: Int = 0
|
||||||
) = SimplePollOption(textSources.makeSourceString(), textSources, votes)
|
) = Simple(id, textSources.makeSourceString(), textSources, votes)
|
||||||
fun simple(
|
fun simple(
|
||||||
|
id: PollOptionPersistentId,
|
||||||
votes: Int = 0,
|
votes: Int = 0,
|
||||||
builder: EntitiesBuilderBody
|
builder: EntitiesBuilderBody
|
||||||
) = simple(
|
) = simple(
|
||||||
|
id,
|
||||||
EntitiesBuilder().apply(builder).build(),
|
EntitiesBuilder().apply(builder).build(),
|
||||||
votes
|
votes
|
||||||
)
|
)
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Suppress("SERIALIZER_TYPE_INCOMPATIBLE")
|
override fun deserialize(decoder: Decoder): PollOption {
|
||||||
@Serializable(PollOptionSerializer::class)
|
val surrogate = PollOptionSurrogate.serializer().deserialize(decoder)
|
||||||
data class SimplePollOption (
|
val textSources = surrogate.textEntities.asTextSources(surrogate.text)
|
||||||
@SerialName(textField)
|
return when {
|
||||||
override val text: String,
|
surrogate.addedByUser != null -> LatelyAdded.AddedByUser(
|
||||||
@SerialName(textEntitiesField)
|
id = surrogate.id,
|
||||||
override val textSources: List<TextSource> = emptyList(),
|
text = surrogate.text,
|
||||||
@SerialName(votesCountField)
|
textSources = textSources,
|
||||||
override val votes: Int = 0
|
votes = surrogate.votes,
|
||||||
) : PollOption() {
|
addedByUser = surrogate.addedByUser,
|
||||||
override fun asInput(): InputPollOption = InputPollOption(text, null, textSources)
|
additionDate = surrogate.additionDate
|
||||||
}
|
|
||||||
|
|
||||||
@RiskFeature
|
|
||||||
object PollOptionSerializer : KSerializer<PollOption> {
|
|
||||||
@Serializable
|
|
||||||
private data class RawPollOption(
|
|
||||||
@SerialName(textField)
|
|
||||||
val text: String,
|
|
||||||
@SerialName(textEntitiesField)
|
|
||||||
val textSources: List<RawMessageEntity> = emptyList(),
|
|
||||||
@SerialName(votesCountField)
|
|
||||||
val votes: Int = 0
|
|
||||||
)
|
|
||||||
override val descriptor: SerialDescriptor = RawPollOption.serializer().descriptor
|
|
||||||
|
|
||||||
override fun deserialize(decoder: Decoder): PollOption {
|
|
||||||
val raw = RawPollOption.serializer().deserialize(
|
|
||||||
decoder
|
|
||||||
)
|
|
||||||
|
|
||||||
return SimplePollOption(raw.text, raw.textSources.asTextSources(raw.text), raw.votes)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun serialize(encoder: Encoder, value: PollOption) {
|
|
||||||
when (value) {
|
|
||||||
is SimplePollOption -> RawPollOption.serializer().serialize(
|
|
||||||
encoder,
|
|
||||||
RawPollOption(
|
|
||||||
value.text,
|
|
||||||
value.textSources.toRawMessageEntities(),
|
|
||||||
value.votes
|
|
||||||
)
|
)
|
||||||
|
surrogate.addedByChat != null -> LatelyAdded.AddedByChat(
|
||||||
|
id = surrogate.id,
|
||||||
|
text = surrogate.text,
|
||||||
|
textSources = textSources,
|
||||||
|
votes = surrogate.votes,
|
||||||
|
addedByChat = surrogate.addedByChat,
|
||||||
|
additionDate = surrogate.additionDate
|
||||||
|
)
|
||||||
|
else -> Simple(
|
||||||
|
id = surrogate.id,
|
||||||
|
text = surrogate.text,
|
||||||
|
textSources = textSources,
|
||||||
|
votes = surrogate.votes
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun serialize(encoder: Encoder, value: PollOption) {
|
||||||
|
PollOptionSurrogate.serializer().serialize(
|
||||||
|
encoder,
|
||||||
|
when (value) {
|
||||||
|
is Simple -> PollOptionSurrogate(
|
||||||
|
id = value.id,
|
||||||
|
text = value.text,
|
||||||
|
textEntities = value.textSources.toRawMessageEntities(),
|
||||||
|
votes = value.votes
|
||||||
|
)
|
||||||
|
is LatelyAdded -> when (value) {
|
||||||
|
is LatelyAdded.AddedByUser -> PollOptionSurrogate(
|
||||||
|
id = value.id,
|
||||||
|
text = value.text,
|
||||||
|
textEntities = value.textSources.toRawMessageEntities(),
|
||||||
|
votes = value.votes,
|
||||||
|
addedByUser = value.addedByUser,
|
||||||
|
additionDate = value.additionDate
|
||||||
|
)
|
||||||
|
is LatelyAdded.AddedByChat -> PollOptionSurrogate(
|
||||||
|
id = value.id,
|
||||||
|
text = value.text,
|
||||||
|
textEntities = value.textSources.toRawMessageEntities(),
|
||||||
|
votes = value.votes,
|
||||||
|
addedByChat = value.addedByChat,
|
||||||
|
additionDate = value.additionDate
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user