29 lines
1000 B
Kotlin
29 lines
1000 B
Kotlin
|
package dev.inmo.plaguposter.triggers.timer
|
||
|
|
||
|
import dev.inmo.plaguposter.common.SuccessfulSymbol
|
||
|
import dev.inmo.plaguposter.common.UnsuccessfulSymbol
|
||
|
import dev.inmo.plaguposter.posts.models.RegisteredPost
|
||
|
import dev.inmo.plaguposter.posts.panel.PanelButtonBuilder
|
||
|
import dev.inmo.tgbotapi.types.buttons.InlineKeyboardButtons.CallbackDataInlineKeyboardButton
|
||
|
import dev.inmo.tgbotapi.types.buttons.InlineKeyboardButtons.InlineKeyboardButton
|
||
|
|
||
|
class TimerPanelButton(
|
||
|
private val timersRepo: TimersRepo
|
||
|
) : PanelButtonBuilder {
|
||
|
override val weight: Int
|
||
|
get() = 0
|
||
|
|
||
|
override suspend fun buildButton(post: RegisteredPost): InlineKeyboardButton? {
|
||
|
val publishingTime = timersRepo.get(post.id)
|
||
|
|
||
|
return CallbackDataInlineKeyboardButton(
|
||
|
"⏰ ${ if (publishingTime == null) UnsuccessfulSymbol else SuccessfulSymbol }",
|
||
|
"$timerSetPrefix ${post.id}"
|
||
|
)
|
||
|
}
|
||
|
|
||
|
companion object {
|
||
|
const val timerSetPrefix = "timer_set_init"
|
||
|
}
|
||
|
}
|