From a5cddde79ddfc1ddc70a0bc4a816560f34b06a0f Mon Sep 17 00:00:00 2001 From: MrPowerGamerBR Date: Mon, 11 Dec 2023 23:42:02 -0300 Subject: [PATCH] Update dependencies --- loritta-bot-discord/build.gradle.kts | 25 ++-- .../morenitta/website/DefaultRoutes.kt | 4 - .../api/v1/twitter/GetShowTwitterUserRoute.kt | 107 ------------------ pudding/client/build.gradle.kts | 8 +- .../loritta/cinnamon/pudding/Pudding.kt | 7 +- settings.gradle.kts | 6 +- 6 files changed, 25 insertions(+), 132 deletions(-) delete mode 100644 loritta-bot-discord/src/main/kotlin/net/perfectdreams/loritta/morenitta/website/routes/api/v1/twitter/GetShowTwitterUserRoute.kt diff --git a/loritta-bot-discord/build.gradle.kts b/loritta-bot-discord/build.gradle.kts index 1dc6a36007..529d024dfc 100644 --- a/loritta-bot-discord/build.gradle.kts +++ b/loritta-bot-discord/build.gradle.kts @@ -29,15 +29,14 @@ dependencies { implementation("org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:${Versions.KOTLIN_COROUTINES}") implementation("org.jetbrains.kotlinx:kotlinx-coroutines-debug:${Versions.KOTLIN_COROUTINES}") - implementation("com.google.guava:guava:31.1-jre") - implementation("org.jetbrains.kotlinx:kotlinx-html-jvm:0.7.3") - implementation("org.twitter4j:twitter4j-core:4.0.7") - implementation("com.github.ben-manes.caffeine:caffeine:3.1.1") + implementation("com.google.guava:guava:32.1.3-jre") + implementation("org.jetbrains.kotlinx:kotlinx-html-jvm:0.10.1") + implementation("com.github.ben-manes.caffeine:caffeine:3.1.8") // Discord implementation("com.github.LorittaBot:DeviousJDA:6644ac5cb9") implementation("com.github.MinnDevelopment:jda-ktx:9370cb13cc") - implementation("club.minnced:discord-webhooks:0.8.2") + implementation("club.minnced:discord-webhooks:0.8.4") // Used to serialize state on components implementation("io.github.netvl.ecoji:ecoji:1.0.0") @@ -49,8 +48,8 @@ dependencies { implementation("dev.kord:kord-voice:0.8.x-lori-fork-20221109.172532-15") // Exposed & Databases - implementation("org.postgresql:postgresql:42.5.0") - implementation("com.zaxxer:HikariCP:5.0.1") + implementation("org.postgresql:postgresql:42.7.1") + implementation("com.zaxxer:HikariCP:5.1.0") api(libs.exposed.core) api(libs.exposed.jdbc) api(libs.exposed.javatime) @@ -61,10 +60,10 @@ dependencies { // DreamStorageService implementation("net.perfectdreams.dreamstorageservice:client:2.0.2") - implementation("org.apache.commons:commons-lang3:3.12.0") - implementation("commons-codec:commons-codec:1.15") - implementation("commons-io:commons-io:2.11.0") - implementation("org.apache.commons:commons-text:1.9") + implementation("org.apache.commons:commons-lang3:3.14.0") + implementation("commons-codec:commons-codec:1.16.0") + implementation("commons-io:commons-io:2.15.1") + implementation("org.apache.commons:commons-text:1.11.0") implementation("org.apache.commons:commons-collections4:4.4") // Ktor @@ -79,9 +78,9 @@ dependencies { implementation("io.ktor:ktor-server-sessions:${Versions.KTOR}") implementation("io.ktor:ktor-server-compression:${Versions.KTOR}") - implementation("com.google.code.gson:gson:2.9.1") + implementation("com.google.code.gson:gson:2.10.1") implementation("io.pebbletemplates:pebble:3.1.4") - implementation("org.jsoup:jsoup:1.15.3") + implementation("org.jsoup:jsoup:1.17.1") implementation("com.github.kevinsawicki:http-request:6.0") // Jackson diff --git a/loritta-bot-discord/src/main/kotlin/net/perfectdreams/loritta/morenitta/website/DefaultRoutes.kt b/loritta-bot-discord/src/main/kotlin/net/perfectdreams/loritta/morenitta/website/DefaultRoutes.kt index fc2b922048..e3b5fb51d3 100644 --- a/loritta-bot-discord/src/main/kotlin/net/perfectdreams/loritta/morenitta/website/DefaultRoutes.kt +++ b/loritta-bot-discord/src/main/kotlin/net/perfectdreams/loritta/morenitta/website/DefaultRoutes.kt @@ -8,7 +8,6 @@ import net.perfectdreams.loritta.morenitta.website.routes.api.v1.guild.* import net.perfectdreams.loritta.morenitta.website.routes.api.v1.languages.GetLanguageInfoRoute import net.perfectdreams.loritta.morenitta.website.routes.api.v1.loritta.* import net.perfectdreams.loritta.morenitta.website.routes.api.v1.twitch.GetTwitchInfoRoute -import net.perfectdreams.loritta.morenitta.website.routes.api.v1.twitter.GetShowTwitterUserRoute import net.perfectdreams.loritta.morenitta.website.routes.api.v1.user.* import net.perfectdreams.loritta.morenitta.website.routes.api.v1.youtube.GetChannelInfoRoute import net.perfectdreams.loritta.morenitta.website.routes.dashboard.DashboardRoute @@ -118,9 +117,6 @@ object DefaultRoutes { // Twitch GetTwitchInfoRoute(loritta), - // Twitter - GetShowTwitterUserRoute(loritta), - // User GetMutualGuildsRoute(loritta), GetSelfInfoRoute(loritta), diff --git a/loritta-bot-discord/src/main/kotlin/net/perfectdreams/loritta/morenitta/website/routes/api/v1/twitter/GetShowTwitterUserRoute.kt b/loritta-bot-discord/src/main/kotlin/net/perfectdreams/loritta/morenitta/website/routes/api/v1/twitter/GetShowTwitterUserRoute.kt deleted file mode 100644 index 2155600a3e..0000000000 --- a/loritta-bot-discord/src/main/kotlin/net/perfectdreams/loritta/morenitta/website/routes/api/v1/twitter/GetShowTwitterUserRoute.kt +++ /dev/null @@ -1,107 +0,0 @@ -package net.perfectdreams.loritta.morenitta.website.routes.api.v1.twitter - -import com.github.benmanes.caffeine.cache.Caffeine -import com.github.salomonbrys.kotson.jsonObject -import com.google.gson.JsonObject -import net.perfectdreams.loritta.morenitta.website.LoriWebCode -import net.perfectdreams.loritta.morenitta.website.WebsiteAPIException -import io.ktor.server.application.* -import io.ktor.http.* -import mu.KotlinLogging -import net.perfectdreams.loritta.morenitta.LorittaBot -import net.perfectdreams.loritta.morenitta.website.utils.WebsiteUtils -import net.perfectdreams.loritta.morenitta.website.utils.extensions.respondJson -import net.perfectdreams.sequins.ktor.BaseRoute -import twitter4j.TwitterFactory -import twitter4j.conf.Configuration -import twitter4j.conf.ConfigurationBuilder -import java.util.concurrent.TimeUnit -import kotlin.collections.set - -class GetShowTwitterUserRoute(val loritta: LorittaBot) : BaseRoute("/api/v1/twitter/users/show") { - companion object { - private val logger = KotlinLogging.logger {} - } - - val cachedUsersById = Caffeine.newBuilder().expireAfterWrite(1, TimeUnit.HOURS).maximumSize(10_000).build().asMap() - val cachedUsersByScreenName = Caffeine.newBuilder().expireAfterWrite(1, TimeUnit.HOURS).maximumSize(10_000).build().asMap() - - override suspend fun onRequest(call: ApplicationCall) { - val tf = TwitterFactory(buildTwitterConfig()) - val twitter = tf.instance - - val screenName = call.parameters["screenName"] - - if (screenName != null) { - val cachedResponse = cachedUsersByScreenName[screenName] - if (cachedResponse != null) { - call.respondJson(cachedResponse) - return - } - } - - val accountId = call.parameters["userId"] - - val twitterUser = if (accountId != null) { - val accountIdAsLong = accountId.toLong() - val cachedResponse = cachedUsersById[accountIdAsLong] - if (cachedResponse != null) { - call.respondJson(cachedResponse) - return - } - - twitter.users().showUser(accountId.toLong()) - } else if (screenName != null) { - val cachedResponse = cachedUsersByScreenName[screenName] - if (cachedResponse != null) { - call.respondJson(cachedResponse) - return - } - - twitter.users().showUser(screenName) - } else { - throw WebsiteAPIException( - HttpStatusCode.NotFound, - WebsiteUtils.createErrorPayload( - loritta, - LoriWebCode.ITEM_NOT_FOUND, - "Unknown Twitter Type" - ) - ) - } - - if (twitterUser == null) { - throw WebsiteAPIException( - HttpStatusCode.NotFound, - WebsiteUtils.createErrorPayload( - loritta, - LoriWebCode.ITEM_NOT_FOUND, - "Unknown Twitter User" - ) - ) - } else { - val payload = jsonObject( - "id" to twitterUser.id, - "name" to twitterUser.name, - "screenName" to twitterUser.screenName, - "avatarUrl" to twitterUser.profileImageURLHttps - ) - - cachedUsersByScreenName[twitterUser.screenName] = payload - cachedUsersById[twitterUser.id] = payload - - call.respondJson(payload) - } - } - - fun buildTwitterConfig(): Configuration { - val cb = ConfigurationBuilder() - cb.setDebugEnabled(true) - .setOAuthConsumerKey(loritta.config.loritta.twitter.oAuthConsumerKey) - .setOAuthConsumerSecret(loritta.config.loritta.twitter.oAuthConsumerSecret) - .setOAuthAccessToken(loritta.config.loritta.twitter.oAuthAccessToken) - .setOAuthAccessTokenSecret(loritta.config.loritta.twitter.oAuthAccessTokenSecret) - - return cb.build() - } -} \ No newline at end of file diff --git a/pudding/client/build.gradle.kts b/pudding/client/build.gradle.kts index c8c75c6ffe..a38b9ac78b 100644 --- a/pudding/client/build.gradle.kts +++ b/pudding/client/build.gradle.kts @@ -15,12 +15,12 @@ dependencies { api(libs.exposed.core) api(libs.exposed.jdbc) api(libs.exposed.javatime) - api("org.postgresql:postgresql:42.2.23") + api("org.postgresql:postgresql:42.7.1") implementation(libs.hikaricp) api("pw.forst", "exposed-upsert", "1.1.0") - api("net.perfectdreams.exposedpowerutils:exposed-power-utils:1.2.1") - api("net.perfectdreams.exposedpowerutils:postgres-power-utils:1.2.1") - api("net.perfectdreams.exposedpowerutils:postgres-java-time:1.2.1") + api("net.perfectdreams.exposedpowerutils:exposed-power-utils:1.3.0") + api("net.perfectdreams.exposedpowerutils:postgres-power-utils:1.3.0") + api("net.perfectdreams.exposedpowerutils:postgres-java-time:1.3.0") testImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:1.5.2") testImplementation("org.junit.jupiter:junit-jupiter:5.8.2") diff --git a/pudding/client/src/main/kotlin/net/perfectdreams/loritta/cinnamon/pudding/Pudding.kt b/pudding/client/src/main/kotlin/net/perfectdreams/loritta/cinnamon/pudding/Pudding.kt index 079c1be7bd..ecd86dda2f 100644 --- a/pudding/client/src/main/kotlin/net/perfectdreams/loritta/cinnamon/pudding/Pudding.kt +++ b/pudding/client/src/main/kotlin/net/perfectdreams/loritta/cinnamon/pudding/Pudding.kt @@ -456,7 +456,12 @@ class Pudding( // This is a workaround because "Table.exists()" does not work for partitioned tables! private fun Transaction.checkIfTableExists(table: Table): Boolean { val tableScheme = table.tableName.substringBefore('.', "").takeIf { it.isNotEmpty() } - val schema = tableScheme?.inProperCase() ?: TransactionManager.current().connection.metadata { currentScheme } + val schema = tableScheme?.inProperCase() ?: TransactionManager.current().connection.metadata { + // TODO: I'm not sure how to correctly get the schema names, before we used "this.currentScheme" but that's has since been removed + // The result of "schemaNames" is [information_schema, pg_catalog, public] + // We could hardcode the "public" result, but let's throw an error if it isn't found + this.schemaNames.firstOrNull { it == "public" } ?: error("Missing \"public\" schema") + } val tableName = TransactionManager.current().identity(table) // Yes, because "Table.tableName" does not return the correct name... return exec("SELECT EXISTS (\n" + diff --git a/settings.gradle.kts b/settings.gradle.kts index 29099a0609..1d069a5ca0 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -14,9 +14,9 @@ dependencyResolutionManagement { val kotlinXSerialization = version("kotlinx-serialization", "1.6.0") val ktor = version("ktor", "2.0.3") val jib = version("jib", "3.2.1") - val exposed = version("exposed", "0.41.1") + val exposed = version("exposed", "0.45.0") val i18nHelper = version("i18nhelper", "0.0.5-SNAPSHOT") - val logback = version("logback", "1.4.11") + val logback = version("logback", "1.4.14") val kotlinxCoroutines = version("kotlinx-coroutines", "1.6.4") library("kotlinx-coroutines-core", "org.jetbrains.kotlinx", "kotlinx-coroutines-core").version(kotlinxCoroutines) @@ -42,7 +42,7 @@ dependencyResolutionManagement { library("logback-classic", "ch.qos.logback", "logback-classic").versionRef(logback) - library("hikaricp", "com.zaxxer", "HikariCP").version("5.0.1") + library("hikaricp", "com.zaxxer", "HikariCP").version("5.1.0") } } }