Skip to content

Commit 2cf3dbc

Browse files
committed
Use OKHttp URL builder for auto encoding of segments
1 parent b52ec94 commit 2cf3dbc

File tree

2 files changed

+16
-19
lines changed

2 files changed

+16
-19
lines changed

src/main/kotlin/dev/arbjerg/lavalink/client/http/HttpBuilder.kt

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -106,18 +106,15 @@ class HttpBuilder(private val internalBuilder: Request.Builder) : Request.Builde
106106
return this
107107
}
108108

109-
override fun url(url: URL): HttpBuilder {
110-
this.path = url.toString().toHttpUrl().encodedPath
111-
return this
112-
}
109+
override fun url(url: URL) = path(url.toString().toHttpUrl().encodedPath)
113110

114-
override fun url(url: String): HttpBuilder {
115-
this.path = url.toHttpUrl().encodedPath
116-
return this
117-
}
111+
override fun url(url: String) = path(url.toHttpUrl().encodedPath)
118112

119-
override fun url(url: HttpUrl): HttpBuilder {
120-
this.path = url.encodedPath
121-
return this
113+
override fun url(url: HttpUrl) = path(url.encodedPath)
114+
115+
fun url(configure: HttpUrl.Builder.() -> HttpUrl.Builder): HttpBuilder {
116+
return url(
117+
configure(HttpUrl.Builder()).build()
118+
)
122119
}
123120
}

src/main/kotlin/dev/arbjerg/lavalink/internal/LavalinkRestClient.kt

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@ import okhttp3.RequestBody.Companion.toRequestBody
1212
import okhttp3.Response
1313
import reactor.core.publisher.Mono
1414
import java.io.IOException
15-
import java.net.URLEncoder
16-
import java.nio.charset.StandardCharsets
1715

1816
class LavalinkRestClient(val node: LavalinkNode) {
1917
fun getPlayers(): Mono<Players> {
@@ -43,18 +41,20 @@ class LavalinkRestClient(val node: LavalinkNode) {
4341
}
4442

4543
fun loadItem(identifier: String): Mono<LoadResult> {
46-
val encId = URLEncoder.encode(identifier, StandardCharsets.UTF_8)
47-
4844
return newRequest {
49-
path("/v4/loadtracks?identifier=$encId")
45+
url {
46+
addPathSegments("/v4/loadtracks")
47+
addQueryParameter("identifier", identifier)
48+
}
5049
}.toMono()
5150
}
5251

5352
fun decodeTrack(encoded: String): Mono<Track> {
54-
val enc = URLEncoder.encode(encoded, StandardCharsets.UTF_8)
55-
5653
return newRequest {
57-
path("/v4/decodetrack?encodedTrack=$enc")
54+
url {
55+
addPathSegments("/v4/decodetrack")
56+
addQueryParameter("encodedTrack", encoded)
57+
}
5858
}.toMono()
5959
}
6060

0 commit comments

Comments
 (0)