PlaguPoster/common/src/jvmMain/kotlin/CommonPlugin.kt

34 lines
1.3 KiB
Kotlin
Raw Normal View History

2022-11-17 09:09:10 +00:00
package dev.inmo.plaguposter.common
import dev.inmo.kslog.common.iS
import dev.inmo.kslog.common.logger
import dev.inmo.plagubot.Plugin
import dev.inmo.tgbotapi.extensions.api.chat.get.getChat
import dev.inmo.tgbotapi.extensions.behaviour_builder.BehaviourContext
2022-12-14 05:50:02 +00:00
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.SupervisorJob
import kotlinx.serialization.json.JsonObject
2023-01-18 17:22:49 +00:00
import kotlinx.serialization.json.JsonPrimitive
import kotlinx.serialization.json.booleanOrNull
2022-12-14 05:50:02 +00:00
import org.jetbrains.exposed.sql.Database
2022-11-17 09:09:10 +00:00
import org.koin.core.Koin
2022-12-14 05:50:02 +00:00
import org.koin.core.module.Module
2022-11-17 09:09:10 +00:00
object CommonPlugin : Plugin {
private val Log = logger
2022-12-14 05:50:02 +00:00
override fun Module.setupDI(database: Database, params: JsonObject) {
single { CoroutineScope(Dispatchers.Default + SupervisorJob()) }
2023-01-18 17:22:49 +00:00
val useCache = (params["useCache"] as? JsonPrimitive) ?.booleanOrNull ?: true
useCache(useCache)
2022-12-14 05:50:02 +00:00
}
2022-11-17 09:09:10 +00:00
override suspend fun BehaviourContext.setupBotPlugin(koin: Koin) {
val config = koin.get<ChatConfig>()
Log.iS { "Target chats info: ${config.allTargetChatIds.map { getChat(it) }.joinToString()}" }
Log.iS { "Source chats info: ${config.allSourceChatIds.map { getChat(it) }.joinToString()}" }
2022-11-17 09:09:10 +00:00
Log.iS { "Cache chat info: ${getChat(config.cacheChatId)}" }
}
}