From 9c4292f515ba12c0d49a16e1cdbab7ba1962a43c Mon Sep 17 00:00:00 2001 From: Jannik Reimers Date: Thu, 3 Apr 2025 22:58:52 +0200 Subject: [PATCH] also maybe enable the database? --- src/main/kotlin/dev/jansel/aglaea/App.kt | 2 ++ .../kotlin/dev/jansel/aglaea/utils/_Utils.kt | 26 +++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/src/main/kotlin/dev/jansel/aglaea/App.kt b/src/main/kotlin/dev/jansel/aglaea/App.kt index fdd1337..3233225 100644 --- a/src/main/kotlin/dev/jansel/aglaea/App.kt +++ b/src/main/kotlin/dev/jansel/aglaea/App.kt @@ -5,6 +5,7 @@ package dev.jansel.aglaea import com.github.twitch4j.TwitchClient import dev.jansel.aglaea.extensions.ReplayExtension +import dev.jansel.aglaea.utils.database import dev.jansel.aglaea.utils.twitch import dev.kord.common.entity.Snowflake import dev.kordex.core.ExtensibleBot @@ -27,6 +28,7 @@ suspend fun main() { extensions { add(::ReplayExtension) } + database(true) twitch(true) if (devMode) { // In development mode, load any plugins from `src/main/dist/plugin` if it exists. diff --git a/src/main/kotlin/dev/jansel/aglaea/utils/_Utils.kt b/src/main/kotlin/dev/jansel/aglaea/utils/_Utils.kt index 3f364bb..9353d42 100644 --- a/src/main/kotlin/dev/jansel/aglaea/utils/_Utils.kt +++ b/src/main/kotlin/dev/jansel/aglaea/utils/_Utils.kt @@ -1,9 +1,13 @@ package dev.jansel.aglaea.utils +import dev.jansel.aglaea.database.Database +import dev.jansel.aglaea.database.collections.MetaCollection +import dev.jansel.aglaea.database.collections.ReplayCollection import dev.jansel.aglaea.twitchClient import dev.kordex.core.builders.ExtensibleBotBuilder import dev.kordex.core.utils.env import dev.kordex.core.utils.loadModule +import kotlinx.coroutines.runBlocking import org.koin.dsl.bind val twitchcid = env("TWITCH_CLIENT_ID") @@ -11,6 +15,28 @@ val twitchcs = env("TWITCH_CLIENT_SECRET") val twitchToken = env("TWITCH_OAUTH_TOKEN") val mongoUri = env("MONGO_URI") +suspend inline fun ExtensibleBotBuilder.database(migrate: Boolean) { + val db = Database() + + hooks { + beforeKoinSetup { + loadModule { + single { db } bind Database::class + } + + loadModule { + single { MetaCollection() } bind MetaCollection::class + single { ReplayCollection() } bind ReplayCollection::class + } + + if (migrate) { + runBlocking { db.migrate() } + } + } + } +} + + suspend inline fun ExtensibleBotBuilder.twitch(active: Boolean) { hooks { beforeKoinSetup {