This commit is contained in:
2022-09-09 18:01:50 +06:00
parent 6d8bc0326f
commit 7549286c84
7 changed files with 41 additions and 21 deletions

View File

@@ -2,18 +2,20 @@ package dev.inmo.plaguposter.ratings.selector
import com.soywiz.klock.DateTime
import dev.inmo.plaguposter.posts.models.PostId
import dev.inmo.plaguposter.posts.repo.PostsRepo
import dev.inmo.plaguposter.ratings.repo.RatingsRepo
import dev.inmo.plaguposter.ratings.selector.models.SelectorConfig
class DefaultSelector (
private val config: SelectorConfig,
private val repo: RatingsRepo
private val ratingsRepo: RatingsRepo,
private val postsRepo: PostsRepo
) : Selector {
override suspend fun take(n: Int, now: DateTime): List<PostId> {
val result = mutableListOf<PostId>()
do {
val selected = config.active(now.time) ?.ratings ?.select(repo, result) ?: break
val selected = config.active(now.time) ?.rating ?.select(ratingsRepo, postsRepo, result, now) ?: break
result.add(selected)
} while (result.size < n)