mirror of
https://github.com/InsanusMokrassar/PlaguPoster.git
synced 2025-12-06 21:15:39 +00:00
0.5.1
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
package dev.inmo.plaguposter.ratings.selector
|
||||
|
||||
import dev.inmo.micro_utils.repos.KeyValueRepo
|
||||
import korlibs.time.DateTime
|
||||
import dev.inmo.plaguposter.posts.models.PostId
|
||||
import dev.inmo.plaguposter.posts.repo.PostsRepo
|
||||
@@ -9,13 +10,14 @@ import dev.inmo.plaguposter.ratings.selector.models.SelectorConfig
|
||||
class DefaultSelector (
|
||||
private val config: SelectorConfig,
|
||||
private val ratingsRepo: RatingsRepo,
|
||||
private val postsRepo: PostsRepo
|
||||
private val postsRepo: PostsRepo,
|
||||
private val latestChosenRepo: KeyValueRepo<PostId, DateTime>
|
||||
) : Selector {
|
||||
override suspend fun take(n: Int, now: DateTime, exclude: List<PostId>): List<PostId> {
|
||||
val result = mutableListOf<PostId>()
|
||||
|
||||
do {
|
||||
val selected = config.active(now.time) ?.rating ?.select(ratingsRepo, postsRepo, result + exclude, now) ?: break
|
||||
val selected = config.active(now.time) ?.rating ?.select(ratingsRepo, postsRepo, result + exclude, now, latestChosenRepo) ?: break
|
||||
result.add(selected)
|
||||
} while (result.size < n)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user