diff --git a/CHANGELOG.md b/CHANGELOG.md index b0a50cc6d2..70c364dd6c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -42,6 +42,11 @@ * All `RequestsExecutor#sendQuizPoll` extensions now accept additional parameters `caption: String` and `parseMode: ParseMode` for `explanation` functionality and `closeInfo: ScheduledCloseInfo?` for autoclose poll functionality +* `TelegramBotAPI-extensions-utils`: + * Several shortcuts for `ScheduledCloseInfo` was added: + * `closePollExactAt` + * `closePollExactAfter` + * `closePollAfter` ## 0.26.0 diff --git a/TelegramBotAPI-extensions-utils/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/extensions/utils/shortcuts/PollCloseShortcuts.kt b/TelegramBotAPI-extensions-utils/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/extensions/utils/shortcuts/PollCloseShortcuts.kt new file mode 100644 index 0000000000..0a47b8490e --- /dev/null +++ b/TelegramBotAPI-extensions-utils/src/commonMain/kotlin/com/github/insanusmokrassar/TelegramBotAPI/extensions/utils/shortcuts/PollCloseShortcuts.kt @@ -0,0 +1,35 @@ +package com.github.insanusmokrassar.TelegramBotAPI.extensions.utils.shortcuts + +import com.github.insanusmokrassar.TelegramBotAPI.types.LongSeconds +import com.github.insanusmokrassar.TelegramBotAPI.types.Seconds +import com.github.insanusmokrassar.TelegramBotAPI.types.polls.ApproximateScheduledCloseInfo +import com.github.insanusmokrassar.TelegramBotAPI.types.polls.ExactScheduledCloseInfo +import com.soywiz.klock.DateTime +import com.soywiz.klock.TimeSpan + +fun closePollExactAt( + dateTime: DateTime +) = ExactScheduledCloseInfo( + dateTime +) + +fun closePollExactAfter( + seconds: LongSeconds +) = closePollExactAt( + DateTime.now() + TimeSpan(seconds.toDouble() * 1000L) +) +fun closePollExactAfter( + seconds: Seconds +) = closePollExactAfter( + seconds.toLong() +) + +fun closePollAfter( + seconds: LongSeconds +) = ApproximateScheduledCloseInfo( + TimeSpan(seconds.toDouble() * 1000L) +) + +fun closePollAfter( + seconds: Seconds +) = closePollAfter(seconds.toLong())