mirror of
https://github.com/InsanusMokrassar/PlaguPoster.git
synced 2024-11-17 13:33:47 +00:00
update dependencies
This commit is contained in:
parent
66b2b21c1c
commit
defc83740d
@ -11,15 +11,14 @@ import kotlinx.coroutines.SupervisorJob
|
||||
import kotlinx.serialization.json.JsonObject
|
||||
import kotlinx.serialization.json.JsonPrimitive
|
||||
import kotlinx.serialization.json.booleanOrNull
|
||||
import org.jetbrains.exposed.sql.Database
|
||||
import org.koin.core.Koin
|
||||
import org.koin.core.module.Module
|
||||
|
||||
object CommonPlugin : Plugin {
|
||||
private val Log = logger
|
||||
override fun Module.setupDI(database: Database, params: JsonObject) {
|
||||
override fun Module.setupDI(config: JsonObject) {
|
||||
single { CoroutineScope(Dispatchers.Default + SupervisorJob()) }
|
||||
val useCache = (params["useCache"] as? JsonPrimitive) ?.booleanOrNull ?: true
|
||||
val useCache = (config["useCache"] as? JsonPrimitive) ?.booleanOrNull ?: true
|
||||
useCache(useCache)
|
||||
}
|
||||
|
||||
|
@ -3,12 +3,12 @@
|
||||
kotlin = "2.0.20"
|
||||
kotlin-serialization = "1.7.2"
|
||||
|
||||
plagubot = "9.2.0"
|
||||
tgbotapi = "18.1.0"
|
||||
plagubot = "10.0.0"
|
||||
tgbotapi = "18.2.0"
|
||||
microutils = "0.22.2"
|
||||
kslog = "1.3.6"
|
||||
krontab = "2.4.0"
|
||||
plagubot-plugins = "0.21.0"
|
||||
krontab = "2.5.0"
|
||||
plagubot-plugins = "0.23.0"
|
||||
|
||||
dokka = "1.9.20"
|
||||
|
||||
|
@ -14,7 +14,7 @@ private val actualPlugin = dev.inmo.plagubot.plugins.inline.queries.Plugin
|
||||
object Plugin : Plugin by actualPlugin {
|
||||
private val log = TagLogger("InlinePlugin")
|
||||
|
||||
override fun Module.setupDI(database: Database, params: JsonObject) {
|
||||
override fun Module.setupDI(params: JsonObject) {
|
||||
single { actualPlugin }
|
||||
}
|
||||
|
||||
|
@ -14,6 +14,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.plaguposter.common.ChatConfig
|
||||
import dev.inmo.plaguposter.posts.models.NewPost
|
||||
import dev.inmo.plaguposter.posts.models.PostContentInfo
|
||||
@ -38,7 +39,6 @@ import kotlinx.coroutines.flow.filter
|
||||
import kotlinx.coroutines.flow.first
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.json.*
|
||||
import org.jetbrains.exposed.sql.Database
|
||||
import org.koin.core.Koin
|
||||
import org.koin.core.module.Module
|
||||
|
||||
@ -49,10 +49,8 @@ object Plugin : Plugin {
|
||||
val throttlingMillis: MilliSeconds = 1000,
|
||||
val doFullCheck: Boolean = false
|
||||
)
|
||||
override fun Module.setupDI(database: Database, params: JsonObject) {
|
||||
params["messagesChecker"] ?.let { element ->
|
||||
single { get<Json>().decodeFromJsonElement(Config.serializer(), element) }
|
||||
}
|
||||
override fun Module.setupDI(config: JsonObject) {
|
||||
registerConfig<Config>("messagesChecker") { null }
|
||||
}
|
||||
|
||||
private val gcLogger = KSLog("GarbageCollector")
|
||||
|
@ -10,6 +10,7 @@ import dev.inmo.micro_utils.repos.cache.cached
|
||||
import dev.inmo.micro_utils.repos.cache.full.cached
|
||||
import dev.inmo.micro_utils.repos.cache.full.fullyCached
|
||||
import dev.inmo.plagubot.Plugin
|
||||
import dev.inmo.plagubot.registerConfig
|
||||
import dev.inmo.plaguposter.common.ChatConfig
|
||||
import dev.inmo.plaguposter.common.UnsuccessfulSymbol
|
||||
import dev.inmo.plaguposter.common.useCache
|
||||
@ -55,10 +56,8 @@ object Plugin : Plugin {
|
||||
val rootButtonText: String = "◀️",
|
||||
val refreshButtonText: String? = "\uD83D\uDD04"
|
||||
)
|
||||
override fun Module.setupDI(database: Database, params: JsonObject) {
|
||||
params["panel"] ?.let { element ->
|
||||
single { get<Json>().decodeFromJsonElement(Config.serializer(), element) }
|
||||
}
|
||||
override fun Module.setupDI(params: JsonObject) {
|
||||
registerConfig<Config>("panel") { null }
|
||||
single {
|
||||
val config = getOrNull<Config>() ?: Config()
|
||||
val builtInButtons = listOfNotNull(
|
||||
|
@ -7,6 +7,7 @@ import dev.inmo.micro_utils.coroutines.subscribeSafelyWithoutExceptions
|
||||
import dev.inmo.micro_utils.koin.singleWithBinds
|
||||
import dev.inmo.micro_utils.repos.deleteById
|
||||
import dev.inmo.plagubot.Plugin
|
||||
import dev.inmo.plagubot.database
|
||||
import dev.inmo.plaguposter.common.SuccessfulSymbol
|
||||
import dev.inmo.plaguposter.common.UnsuccessfulSymbol
|
||||
import dev.inmo.plaguposter.posts.exposed.ExposedPostsRepo
|
||||
@ -26,7 +27,6 @@ import dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.onComman
|
||||
import dev.inmo.tgbotapi.types.message.textsources.regular
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.json.*
|
||||
import org.jetbrains.exposed.sql.Database
|
||||
import org.koin.core.Koin
|
||||
import org.koin.core.module.Module
|
||||
|
||||
@ -37,8 +37,8 @@ object Plugin : Plugin {
|
||||
val autoRemoveMessages: Boolean = true,
|
||||
val deleteAfterPublishing: Boolean = true
|
||||
)
|
||||
override fun Module.setupDI(database: Database, params: JsonObject) {
|
||||
val configJson = params["posts"] ?: this@Plugin.let {
|
||||
override fun Module.setupDI(config: JsonObject) {
|
||||
val configJson = config["posts"] ?: this@Plugin.let {
|
||||
it.logger.w {
|
||||
"Unable to load posts plugin due to absence of `posts` key in config"
|
||||
}
|
||||
|
@ -15,6 +15,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.plaguposter.posts.models.PostId
|
||||
import dev.inmo.plaguposter.posts.repo.PostsRepo
|
||||
import dev.inmo.plaguposter.ratings.models.Rating
|
||||
@ -41,8 +42,8 @@ object Plugin : Plugin {
|
||||
val skipPostAge: Seconds? = null
|
||||
)
|
||||
}
|
||||
override fun Module.setupDI(database: Database, params: JsonObject) {
|
||||
single { get<Json>().decodeFromJsonElement(Config.serializer(), params["gc"] ?: return@single null) }
|
||||
override fun Module.setupDI(params: JsonObject) {
|
||||
registerConfig<Config>("gc") { null }
|
||||
}
|
||||
|
||||
override suspend fun BehaviourContext.setupBotPlugin(koin: Koin) {
|
||||
|
@ -4,17 +4,17 @@ 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.plagubot.registerConfig
|
||||
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) }
|
||||
override fun Module.setupDI(config: JsonObject) {
|
||||
registerConfig<SelectorConfig>("selector") { null }
|
||||
single<KeyValueRepo<PostId, DateTime>>(qualifier("latestChosenRepo")) {
|
||||
ExposedKeyValueRepo(
|
||||
get(),
|
||||
|
@ -10,10 +10,12 @@ import dev.inmo.micro_utils.repos.id
|
||||
import dev.inmo.micro_utils.repos.pagination.getAll
|
||||
import dev.inmo.micro_utils.repos.set
|
||||
import dev.inmo.plagubot.Plugin
|
||||
import dev.inmo.plagubot.database
|
||||
import dev.inmo.plaguposter.common.*
|
||||
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.plaguposter.posts.models.PostId
|
||||
import dev.inmo.plaguposter.posts.panel.PanelButtonBuilder
|
||||
import dev.inmo.plaguposter.posts.panel.PanelButtonsAPI
|
||||
@ -67,10 +69,8 @@ object Plugin : Plugin {
|
||||
val panelButtonText: String = "Ratings"
|
||||
)
|
||||
|
||||
override fun Module.setupDI(database: Database, params: JsonObject) {
|
||||
single {
|
||||
get<Json>().decodeFromJsonElement(Config.serializer(), params["ratingsPolls"] ?: error("Unable to load config for rating polls in $params"))
|
||||
}
|
||||
override fun Module.setupDI(params: JsonObject) {
|
||||
registerConfig<Config>("ratingsPolls")
|
||||
single<RatingsVariants>(ratingVariantsQualifier) { get<Config>().variants }
|
||||
|
||||
single { ExposedPollsToPostsIdsRepo(database) }
|
||||
|
@ -4,18 +4,18 @@ import dev.inmo.micro_utils.coroutines.subscribeSafelyWithoutExceptions
|
||||
import dev.inmo.micro_utils.koin.singleWithBinds
|
||||
import dev.inmo.micro_utils.repos.unset
|
||||
import dev.inmo.plagubot.Plugin
|
||||
import dev.inmo.plagubot.database
|
||||
import dev.inmo.plaguposter.common.useCache
|
||||
import dev.inmo.plaguposter.posts.repo.PostsRepo
|
||||
import dev.inmo.plaguposter.ratings.exposed.ExposedRatingsRepo
|
||||
import dev.inmo.plaguposter.ratings.repo.*
|
||||
import dev.inmo.tgbotapi.extensions.behaviour_builder.BehaviourContext
|
||||
import kotlinx.serialization.json.*
|
||||
import org.jetbrains.exposed.sql.Database
|
||||
import org.koin.core.Koin
|
||||
import org.koin.core.module.Module
|
||||
|
||||
object Plugin : Plugin {
|
||||
override fun Module.setupDI(database: Database, params: JsonObject) {
|
||||
override fun Module.setupDI(config: JsonObject) {
|
||||
single { ExposedRatingsRepo(database) }
|
||||
singleWithBinds<RatingsRepo> {
|
||||
val base = get<ExposedRatingsRepo>()
|
||||
|
@ -7,6 +7,7 @@ import dev.inmo.plaguposter.common.SuccessfulSymbol
|
||||
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.plaguposter.posts.models.PostId
|
||||
import dev.inmo.plaguposter.posts.panel.PanelButtonBuilder
|
||||
import dev.inmo.plaguposter.posts.panel.PanelButtonsAPI
|
||||
@ -45,10 +46,8 @@ object Plugin : Plugin {
|
||||
internal data class Config(
|
||||
val panelButtonText: String? = "Publish"
|
||||
)
|
||||
override fun Module.setupDI(database: Database, params: JsonObject) {
|
||||
params["publish_command"] ?.let { configJson ->
|
||||
single { get<Json>().decodeFromJsonElement(Config.serializer(), configJson) }
|
||||
}
|
||||
override fun Module.setupDI(params: JsonObject) {
|
||||
registerConfig<Config>("publish_command") { null }
|
||||
}
|
||||
|
||||
override suspend fun BehaviourContextWithFSM<State>.setupBotPlugin(koin: Koin) {
|
||||
|
@ -16,6 +16,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.plaguposter.common.ChatConfig
|
||||
import dev.inmo.plaguposter.posts.models.PostId
|
||||
import dev.inmo.plaguposter.posts.repo.ReadPostsRepo
|
||||
@ -62,8 +63,8 @@ object Plugin : Plugin {
|
||||
@Transient
|
||||
val format: DateFormat = DateFormat(dateTimeFormat)
|
||||
}
|
||||
override fun Module.setupDI(database: Database, params: JsonObject) {
|
||||
single { get<Json>().decodeFromJsonElement(Config.serializer(), params["timer_trigger"] ?: return@single null) }
|
||||
override fun Module.setupDI(params: JsonObject) {
|
||||
registerConfig<Config>("timer_trigger") { null }
|
||||
}
|
||||
|
||||
@OptIn(FlowPreview::class)
|
||||
|
@ -1,21 +1,15 @@
|
||||
package dev.inmo.plaguposter.triggers.timer.disablers.autoposts
|
||||
|
||||
import dev.inmo.micro_utils.coroutines.subscribeSafelyWithoutExceptions
|
||||
import dev.inmo.micro_utils.koin.singleWithRandomQualifier
|
||||
import dev.inmo.micro_utils.koin.singleWithRandomQualifierAndBinds
|
||||
import dev.inmo.micro_utils.pagination.FirstPagePagination
|
||||
import dev.inmo.micro_utils.repos.unset
|
||||
import dev.inmo.plagubot.Plugin
|
||||
import dev.inmo.plaguposter.ratings.repo.RatingsRepo
|
||||
import dev.inmo.plaguposter.triggers.selector_with_timer.AutopostFilter
|
||||
import dev.inmo.plaguposter.triggers.timer.TimersRepo
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.serialization.json.*
|
||||
import org.jetbrains.exposed.sql.Database
|
||||
import org.koin.core.module.Module
|
||||
|
||||
object Plugin : Plugin {
|
||||
override fun Module.setupDI(database: Database, params: JsonObject) {
|
||||
override fun Module.setupDI(config: JsonObject) {
|
||||
singleWithRandomQualifier<AutopostFilter> {
|
||||
val timersRepo = get<TimersRepo>()
|
||||
AutopostFilter { _, dateTime ->
|
||||
|
@ -8,11 +8,10 @@ import dev.inmo.plaguposter.ratings.repo.RatingsRepo
|
||||
import dev.inmo.plaguposter.triggers.timer.TimersRepo
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.serialization.json.*
|
||||
import org.jetbrains.exposed.sql.Database
|
||||
import org.koin.core.module.Module
|
||||
|
||||
object Plugin : Plugin {
|
||||
override fun Module.setupDI(database: Database, params: JsonObject) {
|
||||
override fun Module.setupDI(config: JsonObject) {
|
||||
singleWithRandomQualifier(createdAtStart = true) {
|
||||
val timersRepo = get<TimersRepo>()
|
||||
val ratingsRepo = get<RatingsRepo>()
|
||||
|
@ -1,7 +1,5 @@
|
||||
package dev.inmo.plaguposter.triggers.timer
|
||||
|
||||
import korlibs.time.DateTime
|
||||
import dev.inmo.micro_utils.coroutines.runCatchingSafely
|
||||
import dev.inmo.micro_utils.coroutines.subscribeSafelyWithoutExceptions
|
||||
import dev.inmo.micro_utils.koin.singleWithRandomQualifierAndBinds
|
||||
import dev.inmo.micro_utils.repos.set
|
||||
@ -9,24 +7,19 @@ import dev.inmo.plagubot.Plugin
|
||||
import dev.inmo.plaguposter.common.ChatConfig
|
||||
import dev.inmo.plaguposter.posts.models.PostId
|
||||
import dev.inmo.plaguposter.posts.panel.PanelButtonsAPI
|
||||
import dev.inmo.plaguposter.posts.repo.ReadPostsRepo
|
||||
import dev.inmo.plaguposter.triggers.timer.repo.ExposedTimersRepo
|
||||
import dev.inmo.tgbotapi.extensions.api.answers.answer
|
||||
import dev.inmo.tgbotapi.extensions.api.edit.edit
|
||||
import dev.inmo.tgbotapi.extensions.api.send.reply
|
||||
import dev.inmo.tgbotapi.extensions.api.send.send
|
||||
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.triggers_handling.onMessageDataCallbackQuery
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.serialization.json.*
|
||||
import org.jetbrains.exposed.sql.Database
|
||||
import org.koin.core.Koin
|
||||
import org.koin.core.module.Module
|
||||
import org.koin.dsl.binds
|
||||
|
||||
object Plugin : Plugin {
|
||||
override fun Module.setupDI(database: Database, params: JsonObject) {
|
||||
override fun Module.setupDI(config: JsonObject) {
|
||||
single { ExposedTimersRepo(get(), get(), get()) } binds arrayOf(TimersRepo::class)
|
||||
single(createdAtStart = true) { TimersHandler(get(), get(), get()) }
|
||||
singleWithRandomQualifierAndBinds { TimerPanelButton(get()) }
|
||||
|
Loading…
Reference in New Issue
Block a user