improvements in cachedratingsrepo

This commit is contained in:
InsanusMokrassar 2024-05-13 21:42:57 +06:00
parent aa6c62d66e
commit 991b0ef3d3
3 changed files with 31 additions and 18 deletions

View File

@ -4,7 +4,13 @@ project.group = "$group"
apply from: "$publishGradlePath"
kotlin {
jvm()
jvm {
compilations.main {
kotlinOptions {
jvmTarget = "17"
}
}
}
js (IR) {
browser()
nodejs()
@ -38,3 +44,8 @@ kotlin {
}
}
java {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}

View File

@ -15,14 +15,14 @@ class CachedRatingsRepo(
private val scope: CoroutineScope,
private val kvCache: MapKeyValueRepo<PostId, Rating> = MapKeyValueRepo()
) : RatingsRepo, KeyValueRepo<PostId, Rating> by FullKeyValueCacheRepo(base, kvCache, scope) {
override suspend fun getPosts(
range: ClosedRange<Rating>,
private suspend fun getPosts(
reversed: Boolean,
count: Int?,
exclude: List<PostId>
exclude: List<PostId>,
ratingFilter: (Rating) -> Boolean
): Map<PostId, Rating> {
return kvCache.getAll().filter { (it, rating) ->
it !in exclude && rating in range
it !in exclude && ratingFilter(rating)
}.let {
if (count == null) {
it
@ -32,28 +32,30 @@ class CachedRatingsRepo(
}
}
}
override suspend fun getPosts(
range: ClosedRange<Rating>,
reversed: Boolean,
count: Int?,
exclude: List<PostId>
): Map<PostId, Rating> = getPosts(reversed, count, exclude) {
it in range
}
override suspend fun getPostsWithRatingGreaterEq(
then: Rating,
reversed: Boolean,
count: Int?,
exclude: List<PostId>
): Map<PostId, Rating> = getPosts(
then .. Rating(Double.MAX_VALUE),
reversed,
count,
exclude
)
): Map<PostId, Rating> = getPosts(reversed, count, exclude) {
it >= then
}
override suspend fun getPostsWithRatingLessEq(
then: Rating,
reversed: Boolean,
count: Int?,
exclude: List<PostId>
): Map<PostId, Rating> = getPosts(
Rating(Double.MIN_VALUE) .. then,
reversed,
count,
exclude
)
): Map<PostId, Rating> = getPosts(reversed, count, exclude) {
it <= then
}
}

View File

@ -15,7 +15,7 @@ function assert_success() {
app=plaguposter
version="`grep ../gradle.properties -e "^version=" | sed -e "s/version=\(.*\)/\1/"`"
server=insanusmokrassar
server=docker.inmo.dev
assert_success ../gradlew build
assert_success sudo docker build -t $app:"$version" .