All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.insanusmokrassar.AutoPostTelegramBot.plugins.choosers.MostRatedRandomChooser.kt Maven / Gradle / Ivy

package com.github.insanusmokrassar.AutoPostTelegramBot.plugins.choosers

import com.github.insanusmokrassar.AutoPostTelegramBot.base.models.FinalConfig
import com.github.insanusmokrassar.AutoPostTelegramBot.base.models.PostId
import com.github.insanusmokrassar.AutoPostTelegramBot.base.plugins.PluginManager
import com.github.insanusmokrassar.TelegramBotAPI.bot.RequestsExecutor
import kotlinx.serialization.Serializable
import kotlinx.serialization.Transient
import org.joda.time.DateTime
import java.util.*

@Serializable
class MostRatedRandomChooser : RateChooser() {
    @Transient
    private val random = Random()
    @Transient
    private val mostRatedChooser = MostRatedChooser()

    override suspend fun onInit(executor: RequestsExecutor, baseConfig: FinalConfig, pluginManager: PluginManager) {
        mostRatedChooser.onInit(executor, baseConfig, pluginManager)
    }

    override suspend fun triggerChoose(time: DateTime, exceptions: List): Collection {
        return mostRatedChooser.triggerChoose(time, exceptions).let {
            if (it.isEmpty()) {
                it
            } else {
                listOf(it.elementAt(random.nextInt(it.size)))
            }
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy