mirror of
https://github.com/InsanusMokrassar/PlaguPoster.git
synced 2025-11-14 02:10:05 +00:00
0.5.1
This commit is contained in:
@@ -1,14 +1,33 @@
|
||||
package dev.inmo.plaguposter.ratings.selector
|
||||
|
||||
import dev.inmo.micro_utils.repos.KeyValueRepo
|
||||
import dev.inmo.micro_utils.repos.exposed.keyvalue.ExposedKeyValueRepo
|
||||
import dev.inmo.micro_utils.repos.mappers.withMapper
|
||||
import dev.inmo.plagubot.Plugin
|
||||
import dev.inmo.plaguposter.posts.models.PostId
|
||||
import dev.inmo.plaguposter.ratings.selector.models.SelectorConfig
|
||||
import korlibs.time.DateTime
|
||||
import kotlinx.serialization.json.*
|
||||
import org.jetbrains.exposed.sql.Database
|
||||
import org.koin.core.module.Module
|
||||
import org.koin.core.qualifier.qualifier
|
||||
|
||||
object Plugin : Plugin {
|
||||
override fun Module.setupDI(database: Database, params: JsonObject) {
|
||||
single { get<Json>().decodeFromJsonElement(SelectorConfig.serializer(), params["selector"] ?: return@single null) }
|
||||
single<Selector> { DefaultSelector(get(), get(), get()) }
|
||||
single<KeyValueRepo<PostId, DateTime>>(qualifier("latestChosenRepo")) {
|
||||
ExposedKeyValueRepo(
|
||||
get(),
|
||||
{ text("post_id") },
|
||||
{ double("date_time") },
|
||||
"LatestChosenRepo"
|
||||
).withMapper(
|
||||
{ string },
|
||||
{ unixMillis },
|
||||
{ PostId(this) },
|
||||
{ DateTime(this) }
|
||||
)
|
||||
}
|
||||
single<Selector> { DefaultSelector(get(), get(), get(), get(qualifier("latestChosenRepo"))) }
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user