diff --git a/CHANGELOG.md b/CHANGELOG.md index 93a4348..fe9b683 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ ## 0.23.0 +* `Versions`: + * `PlaguBot`: `10.0.0` + * `TelegramBotAPILibraries`: `0.25.0` + ## 0.22.0 * `Versions`: diff --git a/bans/src/main/kotlin/BanPlugin.kt b/bans/src/main/kotlin/BanPlugin.kt index d9eec16..792812a 100644 --- a/bans/src/main/kotlin/BanPlugin.kt +++ b/bans/src/main/kotlin/BanPlugin.kt @@ -8,11 +8,11 @@ import dev.inmo.micro_utils.common.mapOnSecond import dev.inmo.micro_utils.common.onFirst import dev.inmo.micro_utils.common.onSecond import dev.inmo.micro_utils.coroutines.runCatchingSafely -import dev.inmo.micro_utils.coroutines.safelyWithResult import dev.inmo.micro_utils.koin.singleWithBinds import dev.inmo.micro_utils.repos.add import dev.inmo.micro_utils.repos.set import dev.inmo.plagubot.Plugin +import dev.inmo.plagubot.database import dev.inmo.plagubot.plugins.bans.db.ChatsSettingsTable import dev.inmo.plagubot.plugins.bans.db.WarningsTable import dev.inmo.plagubot.plugins.bans.db.chatsSettingsTable @@ -30,7 +30,6 @@ import dev.inmo.tgbotapi.extensions.api.send.reply import dev.inmo.tgbotapi.extensions.behaviour_builder.BehaviourContext import dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.onCommand import dev.inmo.tgbotapi.extensions.behaviour_builder.utils.marker_factories.ByUserMessageMarkerFactory -import dev.inmo.tgbotapi.extensions.utils.asUser import dev.inmo.tgbotapi.extensions.utils.userOrNull import dev.inmo.tgbotapi.libraries.cache.admins.AdminsCacheAPI import dev.inmo.tgbotapi.libraries.cache.admins.doAfterVerification @@ -54,7 +53,6 @@ import dev.inmo.tgbotapi.utils.mention import dev.inmo.tgbotapi.utils.regular import kotlinx.serialization.Serializable import kotlinx.serialization.json.JsonObject -import org.jetbrains.exposed.sql.Database import org.koin.core.Koin import org.koin.core.module.Module import org.koin.core.qualifier.named @@ -80,7 +78,7 @@ internal const val banCommand = "ban" @Serializable class BanPlugin : Plugin { - override fun Module.setupDI(database: Database, params: JsonObject) { + override fun Module.setupDI(config: JsonObject) { single(named("warningsTable")) { database.warningsTable } single(named("chatsSettingsTable")) { database.chatsSettingsTable } singleWithBinds (named("BanPluginSettingsProvider")) { diff --git a/captcha/src/main/kotlin/Plugin.kt b/captcha/src/main/kotlin/Plugin.kt index 6b0b8a2..3de7871 100644 --- a/captcha/src/main/kotlin/Plugin.kt +++ b/captcha/src/main/kotlin/Plugin.kt @@ -7,6 +7,7 @@ import dev.inmo.micro_utils.coroutines.safelyWithoutExceptions import dev.inmo.micro_utils.koin.singleWithRandomQualifier import dev.inmo.micro_utils.repos.create import dev.inmo.plagubot.Plugin +import dev.inmo.plagubot.database import dev.inmo.plagubot.plugins.captcha.cas.CASChecker import dev.inmo.plagubot.plugins.captcha.cas.KtorCASChecker import dev.inmo.plagubot.plugins.captcha.db.CaptchaChatsSettingsRepo @@ -44,7 +45,6 @@ import dev.inmo.tgbotapi.types.chat.RestrictionsChatPermissions import dev.inmo.tgbotapi.types.chat.User import dev.inmo.tgbotapi.types.commands.BotCommandScope import dev.inmo.tgbotapi.types.message.abstracts.AccessibleMessage -import dev.inmo.tgbotapi.types.message.abstracts.Message import dev.inmo.tgbotapi.utils.buildEntities import dev.inmo.tgbotapi.utils.link import dev.inmo.tgbotapi.utils.mention @@ -53,7 +53,6 @@ import korlibs.time.DateTime import kotlinx.coroutines.delay import kotlinx.serialization.Serializable import kotlinx.serialization.json.JsonObject -import org.jetbrains.exposed.sql.Database import org.koin.core.Koin import org.koin.core.module.Module import org.koin.core.qualifier.named @@ -83,7 +82,7 @@ private val changeCaptchaMethodCommandRegex = Regex( @Serializable class CaptchaBotPlugin : Plugin { - override fun Module.setupDI(database: Database, params: JsonObject) { + override fun Module.setupDI(config: JsonObject) { single { CaptchaChatsSettingsRepo(database) } single(named(uuid4().toString())) { diff --git a/commands/src/main/kotlin/CommandsPlugin.kt b/commands/src/main/kotlin/CommandsPlugin.kt index 510e9eb..d39eaf4 100644 --- a/commands/src/main/kotlin/CommandsPlugin.kt +++ b/commands/src/main/kotlin/CommandsPlugin.kt @@ -15,7 +15,6 @@ import dev.inmo.tgbotapi.types.BotCommand import dev.inmo.tgbotapi.types.botCommandsLimit import kotlinx.serialization.Serializable import kotlinx.serialization.json.JsonObject -import org.jetbrains.exposed.sql.Database import org.koin.core.Koin import org.koin.core.module.Module @@ -32,7 +31,7 @@ object CommandsPlugin : Plugin { * Creating [CommandsKeeper] and pass it to the DI. It uses [org.koin.core.scope.Scope.getAll] to get all the * [BotCommandFullInfo] instances declared in the DI. */ - override fun Module.setupDI(database: Database, params: JsonObject) { + override fun Module.setupDI(config: JsonObject) { single { CommandsKeeper(getAll().distinct()) } } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index f22afe6..6977e32 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -3,11 +3,11 @@ kotlin = "2.0.20" kotlin-serialization = "1.7.2" -plagubot = "9.3.0" +plagubot = "10.0.0" kslog = "1.3.6" microutils = "0.22.2" -tgbotapi-libraries = "0.24.0" +tgbotapi-libraries = "0.25.0" gh-release = "2.5.2" dokka = "1.9.20" diff --git a/inline/buttons/src/main/kotlin/InlineButtonsPlugin.kt b/inline/buttons/src/main/kotlin/InlineButtonsPlugin.kt index 16637f2..66c2d00 100644 --- a/inline/buttons/src/main/kotlin/InlineButtonsPlugin.kt +++ b/inline/buttons/src/main/kotlin/InlineButtonsPlugin.kt @@ -90,7 +90,7 @@ class InlineButtonsPlugin : InlineButtonsDrawer, Plugin{ } } - override fun Module.setupDI(database: Database, params: JsonObject) { + override fun Module.setupDI(params: JsonObject) { single { this@InlineButtonsPlugin } binds arrayOf( InlineButtonsDrawer::class ) diff --git a/inline/queries/src/main/kotlin/Plugin.kt b/inline/queries/src/main/kotlin/Plugin.kt index 375ac25..c7932ce 100644 --- a/inline/queries/src/main/kotlin/Plugin.kt +++ b/inline/queries/src/main/kotlin/Plugin.kt @@ -6,6 +6,7 @@ import dev.inmo.plagubot.Plugin import dev.inmo.plagubot.plugins.inline.queries.models.Format import dev.inmo.plagubot.plugins.inline.queries.models.OfferTemplate import dev.inmo.plagubot.plugins.inline.queries.repos.InlineTemplatesRepo +import dev.inmo.plagubot.registerConfig import dev.inmo.tgbotapi.bot.exceptions.RequestException import dev.inmo.tgbotapi.extensions.api.answers.answerInlineQuery import dev.inmo.tgbotapi.extensions.api.send.reply @@ -16,9 +17,7 @@ import dev.inmo.tgbotapi.extensions.utils.types.buttons.flatInlineKeyboard import dev.inmo.tgbotapi.extensions.utils.types.buttons.inlineQueryInCurrentChatButton import dev.inmo.tgbotapi.types.inlineQueryAnswerResultsLimit import kotlinx.serialization.Serializable -import kotlinx.serialization.json.Json import kotlinx.serialization.json.JsonObject -import org.jetbrains.exposed.sql.Database import org.koin.core.Koin import org.koin.core.module.Module @@ -27,8 +26,8 @@ object Plugin : Plugin { internal data class Config( val preset: List ) - override fun Module.setupDI(database: Database, params: JsonObject) { - single { get().decodeFromJsonElement(Config.serializer(), params["inlines"] ?: return@single Config(emptyList())) } + override fun Module.setupDI(config: JsonObject) { + registerConfig("inlines") { Config(emptyList()) } single { InlineTemplatesRepo(getOrNull() ?.preset ?.toMutableSet() ?: mutableSetOf()) } } diff --git a/welcome/src/main/kotlin/WelcomePlugin.kt b/welcome/src/main/kotlin/WelcomePlugin.kt index f279efb..59cedae 100644 --- a/welcome/src/main/kotlin/WelcomePlugin.kt +++ b/welcome/src/main/kotlin/WelcomePlugin.kt @@ -2,6 +2,7 @@ package dev.inmo.plagubot.plugins.welcome import dev.inmo.kslog.common.logger import dev.inmo.plagubot.Plugin +import dev.inmo.plagubot.database import dev.inmo.plagubot.plugins.commands.full import dev.inmo.plagubot.plugins.inline.buttons.InlineButtonsDrawer import dev.inmo.plagubot.plugins.welcome.WelcomePlugin.Companion.pluginConfigSectionName @@ -9,6 +10,7 @@ import dev.inmo.plagubot.plugins.welcome.WelcomePlugin.Config import dev.inmo.plagubot.plugins.welcome.db.WelcomeTable import dev.inmo.plagubot.plugins.welcome.model.ChatSettings import dev.inmo.plagubot.plugins.welcome.model.sendWelcome +import dev.inmo.plagubot.registerConfig import dev.inmo.tgbotapi.extensions.api.answers.answer import dev.inmo.tgbotapi.extensions.api.delete import dev.inmo.tgbotapi.extensions.api.edit.edit @@ -83,8 +85,8 @@ class WelcomePlugin : Plugin { /** * DI configuration of current plugin. Here we are decoding [Config] and put it into [Module] receiver */ - override fun Module.setupDI(database: Database, params: JsonObject) { - single { get().decodeFromJsonElement(Config.serializer(), params[pluginConfigSectionName] ?: return@single Config()) } + override fun Module.setupDI(params: JsonObject) { + registerConfig(pluginConfigSectionName) { Config() } single { WelcomeTable(database) } single(named("welcome")) { BotCommand("welcome", "Use to setup welcome message").full(BotCommandScope.AllChatAdministrators) } single(named("welcome")) { WelcomeInlineButtons(get(), get(), get().recacheChatId) } binds arrayOf(