add publishing_autoschedule

This commit is contained in:
2023-03-18 13:12:05 +06:00
parent 7bc7bf6e8c
commit 7a4fb05bfb
9 changed files with 116 additions and 36 deletions

View File

@@ -11,11 +11,11 @@ class DefaultSelector (
private val ratingsRepo: RatingsRepo,
private val postsRepo: PostsRepo
) : Selector {
override suspend fun take(n: Int, now: DateTime): List<PostId> {
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, now) ?: break
val selected = config.active(now.time) ?.rating ?.select(ratingsRepo, postsRepo, result + exclude, now) ?: break
result.add(selected)
} while (result.size < n)

View File

@@ -4,5 +4,5 @@ import com.soywiz.klock.DateTime
import dev.inmo.plaguposter.posts.models.PostId
interface Selector {
suspend fun take(n: Int = 1, now: DateTime = DateTime.now()): List<PostId>
suspend fun take(n: Int = 1, now: DateTime = DateTime.now(), exclude: List<PostId> = emptyList()): List<PostId>
}