diff --git a/build.gradle b/build.gradle index 323b197..a3d07be 100644 --- a/build.gradle +++ b/build.gradle @@ -10,6 +10,7 @@ buildscript { classpath libs.kotlin.gradle.plugin classpath libs.kotlin.serialization.plugin classpath libs.kotlin.dokka.plugin + classpath libs.github.release } } diff --git a/changelog_parser.sh b/changelog_parser.sh old mode 100644 new mode 100755 diff --git a/github_release.gradle b/github_release.gradle index 3e10ad6..716ec64 100644 --- a/github_release.gradle +++ b/github_release.gradle @@ -25,14 +25,14 @@ if (secretFile.exists() || project.hasProperty(githubTokenVariableName) || (gith githubRelease { token githubReleaseToken - owner "InsanusMokrassar" - repo "PlaguPoster" + owner = "InsanusMokrassar" + repo = "PlaguPoster" - tagName "v${project.version}" - releaseName "${project.version}" - targetCommitish "${project.version}" + tagName = "v${project.version}" + releaseName = "${project.version}" + targetCommitish = "${project.version}" - body getCurrentVersionChangelog() + body = getCurrentVersionChangelog() } } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index ac2302a..e64208a 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,21 +1,23 @@ [versions] -kotlin = "2.2.0" -kotlin-serialization = "1.9.0" +kotlin = "2.3.10" +kotlin-serialization = "1.10.0" -plagubot = "10.7.0" -tgbotapi = "27.1.2" -microutils = "0.26.2" -kslog = "1.5.0" -krontab = "2.7.2" -plagubot-plugins = "0.24.5" +plagubot = "11.0.0" +tgbotapi = "32.0.0" +microutils = "0.29.1" +kslog = "1.6.0" +krontab = "2.8.0" +plagubot-plugins = "0.25.0" -nmcp="1.0.2" +nmcp = "1.4.4" dokka = "2.0.0" psql = "42.6.0" +github-release = "2.5.2" + [libraries] kotlin = { module = "org.jetbrains.kotlin:kotlin-stdlib", version.ref = "kotlin" } @@ -44,6 +46,7 @@ psql = { module = "org.postgresql:postgresql", version.ref = "psql" } kotlin-gradle-plugin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" } kotlin-serialization-plugin = { module = "org.jetbrains.kotlin:kotlin-serialization", version.ref = "kotlin" } kotlin-dokka-plugin = { module = "org.jetbrains.dokka:dokka-gradle-plugin", version.ref = "dokka" } +github-release = { module = "com.github.breadmoirai:github-release", version.ref = "github-release" } [plugins] diff --git a/inlines/src/jvmMain/kotlin/Plugin.kt b/inlines/src/jvmMain/kotlin/Plugin.kt index a4a512e..ec09144 100644 --- a/inlines/src/jvmMain/kotlin/Plugin.kt +++ b/inlines/src/jvmMain/kotlin/Plugin.kt @@ -5,7 +5,6 @@ import dev.inmo.kslog.common.w import dev.inmo.plagubot.Plugin import dev.inmo.tgbotapi.extensions.behaviour_builder.BehaviourContext import kotlinx.serialization.json.JsonObject -import org.jetbrains.exposed.sql.Database import org.koin.core.Koin import org.koin.core.module.Module diff --git a/posts/panel/src/jvmMain/kotlin/Plugin.kt b/posts/panel/src/jvmMain/kotlin/Plugin.kt index f8c6861..03d85b8 100644 --- a/posts/panel/src/jvmMain/kotlin/Plugin.kt +++ b/posts/panel/src/jvmMain/kotlin/Plugin.kt @@ -5,9 +5,6 @@ import dev.inmo.micro_utils.coroutines.runCatchingSafely import dev.inmo.micro_utils.coroutines.subscribeSafelyWithoutExceptions import dev.inmo.micro_utils.koin.getAllDistinct import dev.inmo.micro_utils.repos.* -import dev.inmo.micro_utils.repos.cache.cache.FullKVCache -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 @@ -42,7 +39,6 @@ import dev.inmo.tgbotapi.utils.italic 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 diff --git a/posts/panel/src/jvmMain/kotlin/repos/PostsMessages.kt b/posts/panel/src/jvmMain/kotlin/repos/PostsMessages.kt index baa52b5..f40f7bf 100644 --- a/posts/panel/src/jvmMain/kotlin/repos/PostsMessages.kt +++ b/posts/panel/src/jvmMain/kotlin/repos/PostsMessages.kt @@ -8,7 +8,7 @@ import dev.inmo.tgbotapi.types.* import kotlinx.serialization.builtins.PairSerializer import kotlinx.serialization.builtins.serializer import kotlinx.serialization.json.Json -import org.jetbrains.exposed.sql.Database +import org.jetbrains.exposed.v1.jdbc.Database private val ChatIdToMessageSerializer = PairSerializer(FullChatIdentifierSerializer, MessageId.serializer()) diff --git a/posts/src/jvmMain/kotlin/exposed/ExposedContentInfoRepo.kt b/posts/src/jvmMain/kotlin/exposed/ExposedContentInfoRepo.kt index 9ac65d5..d749017 100644 --- a/posts/src/jvmMain/kotlin/exposed/ExposedContentInfoRepo.kt +++ b/posts/src/jvmMain/kotlin/exposed/ExposedContentInfoRepo.kt @@ -5,7 +5,11 @@ import dev.inmo.micro_utils.repos.KeyValuesRepo import dev.inmo.micro_utils.repos.exposed.* import dev.inmo.plaguposter.posts.models.* import dev.inmo.tgbotapi.types.* -import org.jetbrains.exposed.sql.* +import org.jetbrains.exposed.v1.core.Column +import org.jetbrains.exposed.v1.core.ReferenceOption +import org.jetbrains.exposed.v1.core.ResultRow +import org.jetbrains.exposed.v1.core.Table +import org.jetbrains.exposed.v1.jdbc.Database internal class ExposedContentInfoRepo( override val database: Database, diff --git a/posts/src/jvmMain/kotlin/exposed/ExposedPostsRepo.kt b/posts/src/jvmMain/kotlin/exposed/ExposedPostsRepo.kt index 3698799..01dfab5 100644 --- a/posts/src/jvmMain/kotlin/exposed/ExposedPostsRepo.kt +++ b/posts/src/jvmMain/kotlin/exposed/ExposedPostsRepo.kt @@ -13,11 +13,19 @@ import dev.inmo.tgbotapi.types.IdChatIdentifier import dev.inmo.tgbotapi.types.MessageId import kotlinx.coroutines.flow.* import kotlinx.serialization.json.Json -import org.jetbrains.exposed.sql.* -import org.jetbrains.exposed.sql.SqlExpressionBuilder.eq -import org.jetbrains.exposed.sql.SqlExpressionBuilder.inList -import org.jetbrains.exposed.sql.statements.* -import org.jetbrains.exposed.sql.transactions.transaction +import org.jetbrains.exposed.v1.core.Op +import org.jetbrains.exposed.v1.core.ResultRow +import org.jetbrains.exposed.v1.core.and +import org.jetbrains.exposed.v1.core.eq +import org.jetbrains.exposed.v1.core.inList +import org.jetbrains.exposed.v1.core.isNull +import org.jetbrains.exposed.v1.core.statements.InsertStatement +import org.jetbrains.exposed.v1.core.statements.UpdateBuilder +import org.jetbrains.exposed.v1.jdbc.Database +import org.jetbrains.exposed.v1.jdbc.deleteWhere +import org.jetbrains.exposed.v1.jdbc.insert +import org.jetbrains.exposed.v1.jdbc.selectAll +import org.jetbrains.exposed.v1.jdbc.transactions.transaction class ExposedPostsRepo( override val database: Database @@ -37,8 +45,8 @@ class ExposedPostsRepo( override val primaryKey: PrimaryKey = PrimaryKey(idColumn) - override val selectById: ISqlExpressionBuilder.(PostId) -> Op = { idColumn.eq(it.string) } - override val selectByIds: ISqlExpressionBuilder.(List) -> Op = { idColumn.inList(it.map { it.string }) } + override val selectById: (PostId) -> Op = { idColumn.eq(it.string) } + override val selectByIds: (List) -> Op = { idColumn.inList(it.map { it.string }) } override val ResultRow.asId: PostId get() = PostId(get(idColumn)) override val ResultRow.asObject: RegisteredPost @@ -133,7 +141,7 @@ class ExposedPostsRepo( val existsIds = posts.keys.toList() transaction(db = database) { val deleted = deleteWhere { - selectByIds(it, existsIds) + selectByIds(existsIds) } with(contentRepo) { deleteWhere { diff --git a/ratings/gc/src/jvmMain/kotlin/Plugin.kt b/ratings/gc/src/jvmMain/kotlin/Plugin.kt index fcacd9f..fe03a9e 100644 --- a/ratings/gc/src/jvmMain/kotlin/Plugin.kt +++ b/ratings/gc/src/jvmMain/kotlin/Plugin.kt @@ -25,7 +25,6 @@ import dev.inmo.tgbotapi.extensions.behaviour_builder.triggers_handling.onComman import dev.inmo.tgbotapi.types.Seconds 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 diff --git a/ratings/source/src/jvmMain/kotlin/Plugin.kt b/ratings/source/src/jvmMain/kotlin/Plugin.kt index c226da5..e344899 100644 --- a/ratings/source/src/jvmMain/kotlin/Plugin.kt +++ b/ratings/source/src/jvmMain/kotlin/Plugin.kt @@ -54,7 +54,6 @@ import kotlinx.coroutines.delay 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 import org.koin.core.qualifier.named diff --git a/ratings/source/src/jvmMain/kotlin/repos/ExposedPollsToMessagesInfoRepo.kt b/ratings/source/src/jvmMain/kotlin/repos/ExposedPollsToMessagesInfoRepo.kt index d7d151a..f10e0f6 100644 --- a/ratings/source/src/jvmMain/kotlin/repos/ExposedPollsToMessagesInfoRepo.kt +++ b/ratings/source/src/jvmMain/kotlin/repos/ExposedPollsToMessagesInfoRepo.kt @@ -4,10 +4,13 @@ import dev.inmo.micro_utils.repos.exposed.initTable import dev.inmo.micro_utils.repos.exposed.keyvalue.AbstractExposedKeyValueRepo import dev.inmo.plaguposter.common.ShortMessageInfo import dev.inmo.tgbotapi.types.* -import org.jetbrains.exposed.sql.* -import org.jetbrains.exposed.sql.SqlExpressionBuilder.eq -import org.jetbrains.exposed.sql.SqlExpressionBuilder.isNull -import org.jetbrains.exposed.sql.statements.* +import org.jetbrains.exposed.v1.core.Op +import org.jetbrains.exposed.v1.core.ResultRow +import org.jetbrains.exposed.v1.core.and +import org.jetbrains.exposed.v1.core.eq +import org.jetbrains.exposed.v1.core.isNull +import org.jetbrains.exposed.v1.core.statements.UpdateBuilder +import org.jetbrains.exposed.v1.jdbc.Database class ExposedPollsToMessagesInfoRepo( database: Database @@ -19,8 +22,8 @@ class ExposedPollsToMessagesInfoRepo( private val chatIdColumn = long("chat_id") private val threadIdColumn = long("thread_id").nullable().default(null) private val messageIdColumn = long("message_id") - override val selectById: ISqlExpressionBuilder.(PollId) -> Op = { keyColumn.eq(it.string) } - override val selectByValue: ISqlExpressionBuilder.(ShortMessageInfo) -> Op = { + override val selectById: (PollId) -> Op = { keyColumn.eq(it.string) } + override val selectByValue: (ShortMessageInfo) -> Op = { chatIdColumn.eq(it.chatId.chatId.long) .and(it.chatId.threadId?.let { threadIdColumn.eq(it.long) } ?: threadIdColumn.isNull()).and( messageIdColumn.eq(it.messageId.long) diff --git a/ratings/source/src/jvmMain/kotlin/repos/ExposedPollsToPostsIdsRepo.kt b/ratings/source/src/jvmMain/kotlin/repos/ExposedPollsToPostsIdsRepo.kt index 2804677..a7c161a 100644 --- a/ratings/source/src/jvmMain/kotlin/repos/ExposedPollsToPostsIdsRepo.kt +++ b/ratings/source/src/jvmMain/kotlin/repos/ExposedPollsToPostsIdsRepo.kt @@ -4,16 +4,19 @@ import dev.inmo.micro_utils.repos.exposed.initTable import dev.inmo.micro_utils.repos.exposed.keyvalue.AbstractExposedKeyValueRepo import dev.inmo.plaguposter.posts.models.PostId import dev.inmo.tgbotapi.types.PollId -import org.jetbrains.exposed.sql.* -import org.jetbrains.exposed.sql.statements.* +import org.jetbrains.exposed.v1.core.Op +import org.jetbrains.exposed.v1.core.ResultRow +import org.jetbrains.exposed.v1.core.eq +import org.jetbrains.exposed.v1.core.statements.UpdateBuilder +import org.jetbrains.exposed.v1.jdbc.Database class ExposedPollsToPostsIdsRepo( database: Database ) : PollsToPostsIdsRepo, AbstractExposedKeyValueRepo(database, "polls_to_posts") { override val keyColumn = text("poll_id") val postIdColumn = text("postId") - override val selectById: ISqlExpressionBuilder.(PollId) -> Op = { keyColumn.eq(it.string) } - override val selectByValue: ISqlExpressionBuilder.(PostId) -> Op = { postIdColumn.eq(it.string) } + override val selectById: (PollId) -> Op = { keyColumn.eq(it.string) } + override val selectByValue: (PostId) -> Op = { postIdColumn.eq(it.string) } override val ResultRow.asKey: PollId get() = PollId(get(keyColumn)) override val ResultRow.asObject: PostId diff --git a/ratings/src/jvmMain/kotlin/exposed/ExposedRatingsRepo.kt b/ratings/src/jvmMain/kotlin/exposed/ExposedRatingsRepo.kt index db39cae..13a4514 100644 --- a/ratings/src/jvmMain/kotlin/exposed/ExposedRatingsRepo.kt +++ b/ratings/src/jvmMain/kotlin/exposed/ExposedRatingsRepo.kt @@ -6,9 +6,17 @@ import dev.inmo.micro_utils.repos.exposed.keyvalue.AbstractExposedKeyValueRepo import dev.inmo.plaguposter.posts.models.PostId import dev.inmo.plaguposter.ratings.models.Rating import dev.inmo.plaguposter.ratings.repo.RatingsRepo -import org.jetbrains.exposed.sql.* -import org.jetbrains.exposed.sql.statements.* -import org.jetbrains.exposed.sql.transactions.transaction +import org.jetbrains.exposed.v1.core.Op +import org.jetbrains.exposed.v1.core.ResultRow +import org.jetbrains.exposed.v1.core.and +import org.jetbrains.exposed.v1.core.eq +import org.jetbrains.exposed.v1.core.greaterEq +import org.jetbrains.exposed.v1.core.lessEq +import org.jetbrains.exposed.v1.core.notInList +import org.jetbrains.exposed.v1.core.statements.UpdateBuilder +import org.jetbrains.exposed.v1.jdbc.Database +import org.jetbrains.exposed.v1.jdbc.Query +import org.jetbrains.exposed.v1.jdbc.transactions.transaction class ExposedRatingsRepo ( database: Database @@ -18,8 +26,8 @@ class ExposedRatingsRepo ( ) { override val keyColumn = text("post_id") val ratingsColumn = double("rating") - override val selectById: ISqlExpressionBuilder.(PostId) -> Op = { keyColumn.eq(it.string) } - override val selectByValue: ISqlExpressionBuilder.(Rating) -> Op = { ratingsColumn.eq(it.double) } + override val selectById: (PostId) -> Op = { keyColumn.eq(it.string) } + override val selectByValue: (Rating) -> Op = { ratingsColumn.eq(it.double) } override val ResultRow.asKey: PostId get() = get(keyColumn).let(::PostId) override val ResultRow.asObject: Rating diff --git a/triggers/command/src/jvmMain/kotlin/Plugin.kt b/triggers/command/src/jvmMain/kotlin/Plugin.kt index 8f2e2b6..f0a8a3d 100644 --- a/triggers/command/src/jvmMain/kotlin/Plugin.kt +++ b/triggers/command/src/jvmMain/kotlin/Plugin.kt @@ -31,7 +31,6 @@ import dev.inmo.tgbotapi.types.message.textsources.regularTextSource 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 diff --git a/triggers/selector_with_timer/src/jvmMain/kotlin/Plugin.kt b/triggers/selector_with_timer/src/jvmMain/kotlin/Plugin.kt index f34da01..b0f30df 100644 --- a/triggers/selector_with_timer/src/jvmMain/kotlin/Plugin.kt +++ b/triggers/selector_with_timer/src/jvmMain/kotlin/Plugin.kt @@ -41,7 +41,6 @@ import kotlinx.coroutines.flow.collectIndexed import kotlinx.coroutines.flow.take import kotlinx.serialization.* import kotlinx.serialization.json.* -import org.jetbrains.exposed.sql.Database import org.koin.core.Koin import org.koin.core.module.Module diff --git a/triggers/timer/src/jvmMain/kotlin/repo/ExposedTimersRepo.kt b/triggers/timer/src/jvmMain/kotlin/repo/ExposedTimersRepo.kt index 9f63e1a..d6f8010 100644 --- a/triggers/timer/src/jvmMain/kotlin/repo/ExposedTimersRepo.kt +++ b/triggers/timer/src/jvmMain/kotlin/repo/ExposedTimersRepo.kt @@ -11,15 +11,12 @@ import dev.inmo.plaguposter.posts.models.PostId import dev.inmo.plaguposter.posts.repo.PostsRepo import dev.inmo.plaguposter.triggers.timer.TimersRepo import kotlinx.coroutines.CoroutineScope -import org.jetbrains.exposed.sql.Column -import org.jetbrains.exposed.sql.Database -import org.jetbrains.exposed.sql.ISqlExpressionBuilder -import org.jetbrains.exposed.sql.Op -import org.jetbrains.exposed.sql.ResultRow -import org.jetbrains.exposed.sql.select -import org.jetbrains.exposed.sql.statements.InsertStatement -import org.jetbrains.exposed.sql.statements.UpdateBuilder -import org.jetbrains.exposed.sql.transactions.transaction +import org.jetbrains.exposed.v1.core.Op +import org.jetbrains.exposed.v1.core.ResultRow +import org.jetbrains.exposed.v1.core.eq +import org.jetbrains.exposed.v1.core.statements.UpdateBuilder +import org.jetbrains.exposed.v1.jdbc.Database +import org.jetbrains.exposed.v1.jdbc.transactions.transaction class ExposedTimersRepo( database: Database, @@ -31,8 +28,8 @@ class ExposedTimersRepo( ) { override val keyColumn = text("post_id") private val dateTimeColumn = long("date_time") - override val selectById: ISqlExpressionBuilder.(PostId) -> Op = { keyColumn.eq(it.string) } - override val selectByValue: ISqlExpressionBuilder.(DateTime) -> Op = { dateTimeColumn.eq(it.unixMillisLong) } + override val selectById: (PostId) -> Op = { keyColumn.eq(it.string) } + override val selectByValue: (DateTime) -> Op = { dateTimeColumn.eq(it.unixMillisLong) } override val ResultRow.asKey: PostId get() = PostId(get(keyColumn)) override val ResultRow.asObject: DateTime