From 23d6b8f11d15ce73d5d33d569c206c74f1c3594a Mon Sep 17 00:00:00 2001 From: jzitnik-dev Date: Fri, 20 Mar 2026 19:32:03 +0100 Subject: [PATCH 1/2] perf: Use compression --- build.gradle.kts | 1 + gradle/libs.versions.toml | 1 + .../io/github/tomhula/jecnaapi/WebJecnaClient.kt | 10 ++++++++++ 3 files changed, 12 insertions(+) diff --git a/build.gradle.kts b/build.gradle.kts index 0d92d0fa..00681319 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -41,6 +41,7 @@ kotlin { implementation(libs.ksoup) api(libs.kotlinx.datetime) api(libs.ktor.client.core) + implementation(libs.ktor.client.encoding) } commonTest.dependencies { implementation(kotlin("test")) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 42970079..50267298 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -17,6 +17,7 @@ kotlinx-serialization-core = { module = "org.jetbrains.kotlinx:kotlinx-serializa kotlinx-datetime = { module = "org.jetbrains.kotlinx:kotlinx-datetime", version.ref = "kotlinx-datetime" } ksoup = { module = "com.fleeksoft.ksoup:ksoup", version.ref = "ksoup" } ktor-client-core = { module = "io.ktor:ktor-client-core", version.ref = "ktor" } +ktor-client-encoding = { module = "io.ktor:ktor-client-encoding", version.ref = "ktor" } ktor-client-engine-java = { module = "io.ktor:ktor-client-java", version.ref = "ktor" } ktor-client-engine-curl = { module = "io.ktor:ktor-client-curl", version.ref = "ktor" } ktor-client-engine-js = { module = "io.ktor:ktor-client-js", version.ref = "ktor" } diff --git a/src/commonMain/kotlin/io/github/tomhula/jecnaapi/WebJecnaClient.kt b/src/commonMain/kotlin/io/github/tomhula/jecnaapi/WebJecnaClient.kt index 5bdb536a..67a17662 100644 --- a/src/commonMain/kotlin/io/github/tomhula/jecnaapi/WebJecnaClient.kt +++ b/src/commonMain/kotlin/io/github/tomhula/jecnaapi/WebJecnaClient.kt @@ -15,10 +15,14 @@ import io.ktor.client.statement.* import io.ktor.http.* import io.ktor.client.HttpClient import io.ktor.client.plugins.HttpTimeout +import io.ktor.client.plugins.compression.ContentEncoding import io.ktor.client.plugins.cookies.AcceptAllCookiesStorage import io.ktor.client.plugins.cookies.HttpCookies import io.ktor.client.plugins.cookies.addCookie import io.ktor.client.plugins.defaultRequest +import io.ktor.client.plugins.logging.LogLevel +import io.ktor.client.plugins.logging.Logger +import io.ktor.client.plugins.logging.Logging import io.ktor.client.request.forms.submitForm import io.ktor.client.request.get import kotlinx.datetime.Month @@ -52,6 +56,12 @@ class WebJecnaClient( userAgent(userAgent) else headers.remove(HttpHeaders.UserAgent) + headers.append(HttpHeaders.AcceptLanguage, "en-US,en;q=0.9") + } + + install(ContentEncoding) { + gzip() + deflate() } install(HttpTimeout) { requestTimeoutMillis = requestTimeout.inWholeMilliseconds } followRedirects = false From a62a6a89b970bbc7aa0814e000235862446ea47a Mon Sep 17 00:00:00 2001 From: jzitnik-dev Date: Fri, 20 Mar 2026 19:44:28 +0100 Subject: [PATCH 2/2] fix(build): Remove unused imports from logging --- .../kotlin/io/github/tomhula/jecnaapi/WebJecnaClient.kt | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/commonMain/kotlin/io/github/tomhula/jecnaapi/WebJecnaClient.kt b/src/commonMain/kotlin/io/github/tomhula/jecnaapi/WebJecnaClient.kt index 67a17662..b49c5e0f 100644 --- a/src/commonMain/kotlin/io/github/tomhula/jecnaapi/WebJecnaClient.kt +++ b/src/commonMain/kotlin/io/github/tomhula/jecnaapi/WebJecnaClient.kt @@ -20,9 +20,6 @@ import io.ktor.client.plugins.cookies.AcceptAllCookiesStorage import io.ktor.client.plugins.cookies.HttpCookies import io.ktor.client.plugins.cookies.addCookie import io.ktor.client.plugins.defaultRequest -import io.ktor.client.plugins.logging.LogLevel -import io.ktor.client.plugins.logging.Logger -import io.ktor.client.plugins.logging.Logging import io.ktor.client.request.forms.submitForm import io.ktor.client.request.get import kotlinx.datetime.Month