diff --git a/.grazie.yaml b/.grazie.yaml deleted file mode 100644 index ee37e4a..0000000 --- a/.grazie.yaml +++ /dev/null @@ -1,26 +0,0 @@ -# A subset of "vale" linter syntax is supported: -# "existence", "substitution", "sequence", "capitalization", "occurrence", "conditional" rule types. -# See https://docs.errata.ai/vale/styles#extension-points for more details. - -extends: substitution -message: Consider using %s -level: warning -ignorecase: true -swap: - (the|this) bot: Glyph ---- -extends: substitution -message: %s is capitalized at the Q and the V -level: warning -ignorecase: false -swap: - quickview: QuickView - quickviews: QuickViews - quick[ -]views: QuickViews ---- -extends: substitution -message: Fur Affinity is two words -level: warning -ignorecase: true -swap: - furaffinity: Fur Affinity diff --git a/build.gradle.kts b/build.gradle.kts new file mode 100644 index 0000000..3245103 --- /dev/null +++ b/build.gradle.kts @@ -0,0 +1,25 @@ +plugins { + alias(libs.plugins.kotlin.jvm) +} + +repositories { + mavenCentral() +} + +subprojects { + apply(plugin = "org.jetbrains.kotlin.jvm") + + kotlin { + jvmToolchain(21) + } + + sourceSets { + main { + kotlin.srcDir("src") + resources.srcDir("resources") + } + test { + kotlin.srcDir("test") + } + } +} diff --git a/glyph-bot/build.gradle.kts b/glyph-bot/build.gradle.kts index 937f962..62bd893 100644 --- a/glyph-bot/build.gradle.kts +++ b/glyph-bot/build.gradle.kts @@ -1,3 +1,40 @@ +plugins { + alias(libs.plugins.kotlin.jvm) + alias(libs.plugins.kotlin.serialization) + application +} + +repositories { + mavenCentral() + maven("https://m2.dv8tion.net/releases") +} + +dependencies { + implementation(project(":glyph-shared")) + + implementation(libs.discord.webhooks) + implementation(libs.emoji.java) + implementation(libs.expiringmap) + implementation(libs.google.cloud.dialogflow) + implementation(libs.google.cloud.storage) + implementation(libs.jda) + implementation(libs.jsoup) + implementation(libs.kotlinx.coroutines.jdk8) + implementation(libs.ktor.client.content.negotiation) + implementation(libs.ktor.client.java) + implementation(libs.ktor.serialization.kotlinx.json) + implementation(libs.ktor.server.core) + implementation(libs.logback.classic) + implementation(libs.prettytime) + implementation(libs.typesafe.config) + + testImplementation(kotlin("test")) +} + +application { + mainClass.set("org.yttr.glyph.bot.GlyphKt") +} + tasks.register("stage") { - dependsOn("installJvmDist") + dependsOn(tasks.named("installDist")) } diff --git a/glyph-bot/module.yaml b/glyph-bot/module.yaml deleted file mode 100644 index 9ee719d..0000000 --- a/glyph-bot/module.yaml +++ /dev/null @@ -1,28 +0,0 @@ -product: jvm/app - -dependencies: - - ../glyph-shared - - $libs.discord.webhooks - - $libs.emoji.java - - $libs.expiringmap - - $libs.google.cloud.dialogflow - - $libs.google.cloud.storage - - $libs.jda - - $libs.jsoup - - $libs.kotlinx.coroutines.jdk8 - - $libs.ktor.client.content.negotiation - - $libs.ktor.client.java - - $libs.ktor.serialization.kotlinx.json - - $libs.ktor.server.core - - $libs.logback.classic - - $libs.prettytime - - $libs.typesafe.config - -repositories: - - https://m2.dv8tion.net/releases - -settings: - jvm: - mainClass: org.yttr.glyph.bot.GlyphKt - kotlin: - serialization: json diff --git a/glyph-shared/build.gradle.kts b/glyph-shared/build.gradle.kts new file mode 100644 index 0000000..e0c3be3 --- /dev/null +++ b/glyph-shared/build.gradle.kts @@ -0,0 +1,24 @@ +plugins { + alias(libs.plugins.kotlin.jvm) + alias(libs.plugins.kotlin.serialization) +} + +repositories { + mavenCentral() + maven("https://m2.dv8tion.net/releases") +} + +dependencies { + implementation(libs.exposed.core) + implementation(libs.exposed.java.time) + implementation(libs.exposed.jdbc) + + compileOnly(libs.jda) + implementation(libs.kotlinx.coroutines.jdk8) + implementation(libs.kotlinx.serialization.core) + + api(libs.lettuce.core) + implementation(libs.mariadb) + + testImplementation(kotlin("test")) +} diff --git a/glyph-shared/module.yaml b/glyph-shared/module.yaml deleted file mode 100644 index 8a357ec..0000000 --- a/glyph-shared/module.yaml +++ /dev/null @@ -1,20 +0,0 @@ -product: - type: lib - platforms: - - jvm - -dependencies: - - $libs.exposed.core - - $libs.exposed.java.time - - $libs.exposed.jdbc - - $libs.jda: compile-only - - $libs.kotlinx.coroutines.jdk8 - - $libs.lettuce.core: exported - - $libs.mariadb - -repositories: - - https://m2.dv8tion.net/releases - -settings: - kotlin: - serialization: json diff --git a/glyph-web/build.gradle.kts b/glyph-web/build.gradle.kts index 937f962..21cb072 100644 --- a/glyph-web/build.gradle.kts +++ b/glyph-web/build.gradle.kts @@ -1,3 +1,43 @@ +plugins { + alias(libs.plugins.kotlin.jvm) + alias(libs.plugins.kotlin.serialization) + application +} + +repositories { + mavenCentral() +} + +dependencies { + implementation(project(":glyph-shared")) + + implementation(libs.ktor.client.content.negotiation) + implementation(libs.ktor.client.core) + implementation(libs.ktor.client.java) + implementation(libs.ktor.serialization.kotlinx.json) + + implementation(libs.ktor.server.auth) + implementation(libs.ktor.server.auto.head.response) + implementation(libs.ktor.server.call.logging) + implementation(libs.ktor.server.content.negotiation) + implementation(libs.ktor.server.core) + implementation(libs.ktor.server.default.headers) + implementation(libs.ktor.server.forwarded.header) + implementation(libs.ktor.server.mustache) + implementation(libs.ktor.server.netty) + implementation(libs.ktor.server.sessions) + implementation(libs.ktor.server.webjars) + + implementation(libs.logback.classic) + runtimeOnly(libs.webjars.bootstrap) + + testImplementation(kotlin("test")) +} + +application { + mainClass.set("io.ktor.server.netty.EngineMain") +} + tasks.register("stage") { - dependsOn("installJvmDist") + dependsOn(tasks.named("installDist")) } diff --git a/glyph-web/module.yaml b/glyph-web/module.yaml deleted file mode 100644 index 9287da4..0000000 --- a/glyph-web/module.yaml +++ /dev/null @@ -1,27 +0,0 @@ -product: jvm/app - -dependencies: - - ../glyph-shared - - $libs.ktor.client.content.negotiation - - $libs.ktor.client.core - - $libs.ktor.client.java - - $libs.ktor.serialization.kotlinx.json - - $libs.ktor.server.auth - - $libs.ktor.server.auto.head.response - - $libs.ktor.server.call.logging - - $libs.ktor.server.content.negotiation - - $libs.ktor.server.core - - $libs.ktor.server.default.headers - - $libs.ktor.server.forwarded.header - - $libs.ktor.server.mustache - - $libs.ktor.server.netty - - $libs.ktor.server.sessions - - $libs.ktor.server.webjars - - $libs.logback.classic - - $libs.webjars.bootstrap: runtime-only - -settings: - jvm: - mainClass: io.ktor.server.netty.EngineMain - kotlin: - serialization: json diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 9e5bf5e..85b00c5 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -7,13 +7,19 @@ exposed = "0.61.0" google-cloud-dialogflow = "4.66.0" google-cloud-storage = "2.50.0" jda = "4.4.1_353" -jsoup = "1.19.1" -ktor = "3.1.2" -lettuce = "6.5.5.RELEASE" -logback = "1.5.18" -mariadb = "3.5.3" +jsoup = "1.21.2" +kotlin = "2.2.21" +kotlinx-serialization = "1.9.0" +ktor = "3.3.3" +lettuce = "7.1.0.RELEASE" +logback = "1.5.21" +mariadb = "3.5.6" prettytime = "5.0.9.Final" -typesafe-config = "1.4.3" +typesafe-config = "1.4.5" + +[plugins] +kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } +kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } [libraries] discord-webhooks = { module = "club.minnced:discord-webhooks", version.ref = "discord-webhooks" } @@ -27,6 +33,7 @@ google-cloud-storage = { module = "com.google.cloud:google-cloud-storage", versi jda = { module = "net.dv8tion:JDA", version.ref = "jda" } jsoup = { module = "org.jsoup:jsoup", version.ref = "jsoup" } kotlinx-coroutines-jdk8 = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-jdk8", version.ref = "coroutines" } +kotlinx-serialization-core = { module = "org.jetbrains.kotlinx:kotlinx-serialization-core", version.ref = "kotlinx-serialization" } ktor-client-content-negotiation = { module = "io.ktor:ktor-client-content-negotiation", version.ref = "ktor" } ktor-client-core = { module = "io.ktor:ktor-client-core", version.ref = "ktor" } ktor-client-java = { module = "io.ktor:ktor-client-java", version.ref = "ktor" } @@ -47,4 +54,4 @@ logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "lo mariadb = { module = "org.mariadb.jdbc:mariadb-java-client", version.ref = "mariadb" } prettytime = { module = "org.ocpsoft.prettytime:prettytime", version.ref = "prettytime" } typesafe-config = { module = "com.typesafe:config", version.ref = "typesafe-config" } -webjars-bootstrap = "org.webjars.npm:bootstrap:5.3.5" +webjars-bootstrap = "org.webjars.npm:bootstrap:5.3.8" diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 9bbc975..f8e1ee3 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 37f853b..23449a2 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/gradlew b/gradlew index faf9300..adff685 100644 --- a/gradlew +++ b/gradlew @@ -1,7 +1,7 @@ #!/bin/sh # -# Copyright © 2015-2021 the original authors. +# Copyright © 2015 the original authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -114,7 +114,6 @@ case "$( uname )" in #( NONSTOP* ) nonstop=true ;; esac -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar # Determine the Java command to use to start the JVM. @@ -172,7 +171,6 @@ fi # For Cygwin or MSYS, switch paths to Windows format before running java if "$cygwin" || "$msys" ; then APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) - CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) JAVACMD=$( cygpath --unix "$JAVACMD" ) @@ -212,8 +210,7 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ - -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ "$@" # Stop when "xargs" is not available. diff --git a/gradlew.bat b/gradlew.bat index 9d21a21..c4bdd3a 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -70,11 +70,10 @@ goto fail :execute @rem Setup the command line -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* :end @rem End local scope for the variables with windows NT shell diff --git a/settings.gradle.kts b/settings.gradle.kts index a318edf..1a80ba6 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -9,12 +9,5 @@ pluginManagement { mavenCentral() google() gradlePluginPortal() - maven("https://packages.jetbrains.team/maven/p/amper/amper") - maven("https://www.jetbrains.com/intellij-repository/releases") - maven("https://packages.jetbrains.team/maven/p/ij/intellij-dependencies") } } - -plugins { - id("org.jetbrains.amper.settings.plugin").version("0.6.0") -}