Skip to content

Commit 0af028d

Browse files
committed
Fix http builder
1 parent 2cf3dbc commit 0af028d

File tree

5 files changed

+46
-6
lines changed

5 files changed

+46
-6
lines changed

settings.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ fun VersionCatalogBuilder.discordLibs() {
4444
}
4545

4646
fun VersionCatalogBuilder.testLibs() {
47+
library("jackson-databind", "com.fasterxml.jackson.core", "jackson-databind").version("2.16.0")
4748
library("logger-impl", "ch.qos.logback", "logback-classic").version("1.4.14")
4849
library("lyrics", "com.github.DuncteBot.java-timed-lyrics", "protocol").version("1.2.0")
4950
library("lavasearch", "com.github.topi314.lavasearch", "lavasearch-protocol").version("1.0.0-beta.2")

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

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

109-
override fun url(url: URL) = path(url.toString().toHttpUrl().encodedPath)
109+
override fun url(url: URL) = path(url.toString().toHttpUrl().getQueryPath())
110110

111-
override fun url(url: String) = path(url.toHttpUrl().encodedPath)
111+
override fun url(url: String) = path(url.toHttpUrl().getQueryPath())
112112

113-
override fun url(url: HttpUrl) = path(url.encodedPath)
113+
override fun url(url: HttpUrl) = path(url.getQueryPath())
114114

115115
fun url(configure: HttpUrl.Builder.() -> HttpUrl.Builder): HttpBuilder {
116116
return url(
117-
configure(HttpUrl.Builder()).build()
117+
configure(HttpUrl.Builder()).scheme("https").host("localghost").build()
118118
)
119119
}
120+
121+
private fun HttpUrl.getQueryPath(): String {
122+
var result = this.encodedPath
123+
124+
this.encodedQuery?.let { query ->
125+
result += "?$query"
126+
}
127+
128+
return result
129+
}
120130
}

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ class LavalinkRestClient(val node: LavalinkNode) {
4343
fun loadItem(identifier: String): Mono<LoadResult> {
4444
return newRequest {
4545
url {
46-
addPathSegments("/v4/loadtracks")
46+
addPathSegments("v4/loadtracks")
4747
addQueryParameter("identifier", identifier)
4848
}
4949
}.toMono()
@@ -52,7 +52,7 @@ class LavalinkRestClient(val node: LavalinkNode) {
5252
fun decodeTrack(encoded: String): Mono<Track> {
5353
return newRequest {
5454
url {
55-
addPathSegments("/v4/decodetrack")
55+
addPathSegments("v4/decodetrack")
5656
addQueryParameter("encodedTrack", encoded)
5757
}
5858
}.toMono()

testbot/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ dependencies {
2121

2222
// other libs such as a discord client and a logger
2323
implementation(libs.jda)
24+
implementation(libs.jackson.databind)
2425
implementation(libs.logger.impl)
2526
implementation(libs.lyrics)
2627
}

testbot/src/main/java/me/duncte123/testbot/JDAListener.java

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package me.duncte123.testbot;
22

3+
import com.fasterxml.jackson.databind.ObjectMapper;
34
import dev.arbjerg.lavalink.client.LavalinkClient;
45
import dev.arbjerg.lavalink.client.Link;
56
import dev.arbjerg.lavalink.client.player.FilterBuilder;
@@ -32,6 +33,8 @@ public class JDAListener extends ListenerAdapter {
3233

3334
private static final Logger LOG = LoggerFactory.getLogger(JDAListener.class);
3435

36+
private final ObjectMapper mapper = new ObjectMapper();
37+
3538
public final Map<Long, GuildMusicManager> musicManagers = new HashMap<>();
3639
private final LavalinkClient client;
3740
private final EvalEngine evalEngine;
@@ -56,6 +59,13 @@ public void onReady(@NotNull ReadyEvent event) {
5659
"Script to eval",
5760
true
5861
),
62+
Commands.slash("decode", "Try to decode some base 64 track")
63+
.addOption(
64+
OptionType.STRING,
65+
"encoded",
66+
"VALID encoded track to decode",
67+
true
68+
),
5969
Commands.slash("join", "Join the voice channel you are in."),
6070
Commands.slash("leave", "Leaves the vc"),
6171
Commands.slash("stop", "Stops the current track"),
@@ -126,6 +136,24 @@ public void onSlashCommandInteraction(@NotNull SlashCommandInteractionEvent even
126136
});
127137
break;
128138
}
139+
case "decode": {
140+
141+
final var link = this.client.getOrCreateLink(guild.getIdLong());
142+
143+
link.getNode().decodeTrack(event.getOption("encoded").getAsString()).subscribe(
144+
(result) -> {
145+
try {
146+
event.reply("```json\n" + mapper.writeValueAsString(result) + "```").queue();
147+
} catch (Exception e) {
148+
event.reply("Jackson bork: " + e.getMessage()).queue();
149+
}
150+
},
151+
(error) -> {
152+
event.reply("Fucky qucky: " + error.getMessage()).queue();
153+
}
154+
);
155+
break;
156+
}
129157
case "join":
130158
joinHelper(event);
131159
break;

0 commit comments

Comments
 (0)