Skip to content

Commit e05d76c

Browse files
committed
fix: route android native common clients through platform http
1 parent d8fd95b commit e05d76c

13 files changed

Lines changed: 29 additions & 15 deletions

File tree

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
package org.ntqqrev.acidify.internal.util
22

33
import io.ktor.client.HttpClient
4+
import io.ktor.client.HttpClientConfig
45
import io.ktor.client.engine.curl.Curl
56
import io.ktor.client.engine.curl.defaultAndroidNativeCurlCaInfoPathOrNull
67

7-
internal actual fun createPlatformHttpClient(): HttpClient = HttpClient(Curl) {
8+
internal actual fun createPlatformHttpClient(block: HttpClientConfig<*>.() -> Unit): HttpClient = HttpClient(Curl) {
89
engine {
910
caInfo = defaultAndroidNativeCurlCaInfoPathOrNull()
1011
}
12+
block()
1113
}
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package org.ntqqrev.acidify.internal.util
22

33
import io.ktor.client.HttpClient
4+
import io.ktor.client.HttpClientConfig
45
import io.ktor.client.engine.darwin.Darwin
56

6-
internal actual fun createPlatformHttpClient(): HttpClient = HttpClient(Darwin)
7+
internal actual fun createPlatformHttpClient(block: HttpClientConfig<*>.() -> Unit): HttpClient = HttpClient(Darwin, block)

acidify-core/src/commonMain/kotlin/org/ntqqrev/acidify/AbstractBot.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import org.ntqqrev.acidify.event.AcidifyEvent
2121
import org.ntqqrev.acidify.event.internal.KickSignal
2222
import org.ntqqrev.acidify.event.internal.MsgPushSignal
2323
import org.ntqqrev.acidify.internal.AbstractClient
24+
import org.ntqqrev.acidify.internal.util.createPlatformHttpClient
2425
import org.ntqqrev.acidify.logging.LogHandler
2526
import org.ntqqrev.acidify.logging.LogLevel
2627
import org.ntqqrev.acidify.logging.Logger
@@ -78,7 +79,7 @@ sealed class AbstractBot(
7879
}
7980

8081

81-
internal val httpClient = HttpClient {
82+
internal val httpClient = createPlatformHttpClient {
8283
install(ContentNegotiation) {
8384
json(Json { ignoreUnknownKeys = true })
8485
}
@@ -159,4 +160,4 @@ sealed class AbstractBot(
159160
ssoSecureInfo = client.getSsoSecureInfo(cmd, sequence, payload)
160161
)
161162
}
162-
}
163+
}

acidify-core/src/commonMain/kotlin/org/ntqqrev/acidify/common/LagrangeUrlSignProvider.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import kotlinx.serialization.SerialName
1212
import kotlinx.serialization.Serializable
1313
import kotlinx.serialization.json.Json
1414
import org.ntqqrev.acidify.exception.UrlSignException
15+
import org.ntqqrev.acidify.internal.util.createPlatformHttpClient
1516

1617
/**
1718
* 通过 HTTP 接口进行签名的 [SignProvider] 实现,用于对接 Lagrange V2 Sign API。
@@ -45,7 +46,7 @@ class LagrangeUrlSignProvider(
4546
private var jwtToken: String? = jwtToken?.takeUnless { it.isBlank() }
4647
private var refreshJob: Job? = null
4748

48-
private val client = HttpClient {
49+
private val client = createPlatformHttpClient {
4950
install(ContentNegotiation) {
5051
json(jsonModule)
5152
}

acidify-core/src/commonMain/kotlin/org/ntqqrev/acidify/common/UrlSignProvider.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import io.ktor.serialization.kotlinx.json.json
1010
import kotlinx.serialization.Serializable
1111
import kotlinx.serialization.json.Json
1212
import org.ntqqrev.acidify.exception.UrlSignException
13+
import org.ntqqrev.acidify.internal.util.createPlatformHttpClient
1314

1415
/**
1516
* 通过 HTTP 接口进行签名的 [SignProvider] 实现
@@ -22,7 +23,7 @@ class UrlSignProvider(val url: String, val httpProxy: String? = null) : SignProv
2223
ignoreUnknownKeys = true
2324
}
2425

25-
private val client = HttpClient {
26+
private val client = createPlatformHttpClient {
2627
install(ContentNegotiation) {
2728
json(jsonModule)
2829
}
@@ -87,4 +88,4 @@ private data class UrlSignValue(
8788
val sign: String,
8889
val token: String,
8990
val extra: String
90-
)
91+
)

acidify-core/src/commonMain/kotlin/org/ntqqrev/acidify/common/android/AndroidLegacyUrlSignProvider.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import kotlinx.serialization.json.Json
1717
import kotlinx.serialization.json.JsonElement
1818
import org.ntqqrev.acidify.common.SignResult
1919
import org.ntqqrev.acidify.exception.UrlSignException
20+
import org.ntqqrev.acidify.internal.util.createPlatformHttpClient
2021
import org.ntqqrev.acidify.internal.util.platformCurlTextRequestOrNull
2122

2223
class AndroidLegacyUrlSignProvider(
@@ -30,7 +31,7 @@ class AndroidLegacyUrlSignProvider(
3031
private val base = Url(url)
3132
private val jsonModule = Json { ignoreUnknownKeys = true }
3233

33-
private val client = HttpClient {
34+
private val client = createPlatformHttpClient {
3435
if (!(base.user.isNullOrEmpty() || base.password.isNullOrEmpty())) {
3536
install(Auth) {
3637
basic {

acidify-core/src/commonMain/kotlin/org/ntqqrev/acidify/common/android/AndroidUrlSignProvider.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import kotlinx.serialization.encodeToString
1515
import kotlinx.serialization.json.Json
1616
import org.ntqqrev.acidify.common.SignResult
1717
import org.ntqqrev.acidify.exception.UrlSignException
18+
import org.ntqqrev.acidify.internal.util.createPlatformHttpClient
1819
import org.ntqqrev.acidify.internal.util.platformCurlTextRequestOrNull
1920

2021
/**
@@ -26,7 +27,7 @@ class AndroidUrlSignProvider(val url: String, val httpProxy: String? = null) : A
2627
val base = Url(url)
2728
private val jsonModule = Json { ignoreUnknownKeys = true }
2829

29-
private val client = HttpClient {
30+
private val client = createPlatformHttpClient {
3031
install(ContentNegotiation) {
3132
json(jsonModule)
3233
}

acidify-core/src/commonMain/kotlin/org/ntqqrev/acidify/internal/context/TicketContext.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import org.ntqqrev.acidify.internal.LagrangeClient
1212
import org.ntqqrev.acidify.internal.service.system.AndroidFetchClientKey
1313
import org.ntqqrev.acidify.internal.service.system.FetchClientKey
1414
import org.ntqqrev.acidify.internal.service.system.FetchPSKey
15+
import org.ntqqrev.acidify.internal.util.createPlatformHttpClient
1516
import org.ntqqrev.acidify.internal.util.platformCurlTextRequestOrNull
1617
import kotlin.time.Clock
1718

@@ -38,7 +39,7 @@ internal class TicketContext(client: AbstractClient) : AbstractContext(client) {
3839
private val currentSKey = KeyWithLifetime.dummy()
3940
private val psKeyCache = mutableMapOf<String, KeyWithLifetime>()
4041
private val psKeyQueryMutex = Mutex()
41-
private val httpClient = HttpClient {
42+
private val httpClient = createPlatformHttpClient {
4243
install(HttpCookies)
4344
followRedirects = false
4445
}
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.ntqqrev.acidify.internal.util
22

33
import io.ktor.client.HttpClient
4+
import io.ktor.client.HttpClientConfig
45

5-
internal expect fun createPlatformHttpClient(): HttpClient
6+
internal expect fun createPlatformHttpClient(block: HttpClientConfig<*>.() -> Unit = {}): HttpClient
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.ntqqrev.acidify.internal.util
22

33
import io.ktor.client.HttpClient
4+
import io.ktor.client.HttpClientConfig
45

5-
internal actual fun createPlatformHttpClient(): HttpClient = HttpClient()
6+
internal actual fun createPlatformHttpClient(block: HttpClientConfig<*>.() -> Unit): HttpClient = HttpClient(block)

0 commit comments

Comments
 (0)