mirror of
https://github.com/InsanusMokrassar/PlaguPoster.git
synced 2025-11-15 19:00:05 +00:00
add publisher
This commit is contained in:
@@ -1,12 +1,39 @@
|
||||
package dev.inmo.plaguposter.posts
|
||||
|
||||
import dev.inmo.kslog.common.logger
|
||||
import dev.inmo.kslog.common.w
|
||||
import dev.inmo.plagubot.Plugin
|
||||
import kotlinx.serialization.json.JsonObject
|
||||
import dev.inmo.plaguposter.posts.exposed.ExposedPostsRepo
|
||||
import dev.inmo.plaguposter.posts.repo.PostsRepo
|
||||
import dev.inmo.plaguposter.posts.sending.PostPublisher
|
||||
import dev.inmo.tgbotapi.types.ChatId
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.json.*
|
||||
import org.jetbrains.exposed.sql.Database
|
||||
import org.koin.core.module.Module
|
||||
|
||||
object Plugin : Plugin {
|
||||
@Serializable
|
||||
data class Config(
|
||||
@SerialName("targetChat")
|
||||
val targetChatId: ChatId,
|
||||
@SerialName("cacheChat")
|
||||
val cacheChatId: ChatId
|
||||
)
|
||||
|
||||
override fun Module.setupDI(database: Database, params: JsonObject) {
|
||||
TODO("Not yet implemented")
|
||||
val configJson = params["posts"] ?: this@Plugin.let {
|
||||
it.logger.w {
|
||||
"Unable to load posts plugin due to absence of `posts` key in config"
|
||||
}
|
||||
return
|
||||
}
|
||||
single { get<Json>().decodeFromJsonElement(Config.serializer(), configJson) }
|
||||
single<PostsRepo> { ExposedPostsRepo(database, get()) }
|
||||
single {
|
||||
val config = get<Config>()
|
||||
PostPublisher(get(), get(), config.cacheChatId, config.targetChatId)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,12 +4,8 @@ import com.benasher44.uuid.uuid4
|
||||
import dev.inmo.micro_utils.repos.KeyValuesRepo
|
||||
import dev.inmo.micro_utils.repos.exposed.*
|
||||
import dev.inmo.plaguposter.posts.models.*
|
||||
import dev.inmo.plaguposter.posts.repo.PostsRepo
|
||||
import dev.inmo.tgbotapi.types.ChatId
|
||||
import org.jetbrains.exposed.sql.*
|
||||
import org.jetbrains.exposed.sql.statements.InsertStatement
|
||||
import org.jetbrains.exposed.sql.statements.UpdateStatement
|
||||
import sun.security.pkcs.ContentInfo
|
||||
|
||||
internal class ExposedContentInfoRepo(
|
||||
override val database: Database,
|
||||
|
||||
Reference in New Issue
Block a user