Skip to content

Commit 97ff80f

Browse files
committed
fix compatibility issue with v3.7 and pre v3.7
1 parent a7c0a02 commit 97ff80f

File tree

3 files changed

+34
-12
lines changed

3 files changed

+34
-12
lines changed

IMPLEMENTATION.md

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1169,22 +1169,34 @@ GET /v3/decodetrack?encodedTrack=BASE64
11691169

11701170
Response:
11711171

1172-
[Track Object](#track)
1172+
[Track Object](#track) and [Track Info Object](#track-info) for pre v3.7 compatibility.
11731173

11741174
<details>
11751175
<summary>Example Payload</summary>
11761176

11771177
```yaml
11781178
{
1179-
"identifier": "dQw4w9WgXcQ",
1180-
"isSeekable": true,
1181-
"author": "RickAstleyVEVO",
1182-
"length": 212000,
1183-
"isStream": false,
1184-
"position": 0,
1185-
"title": "Rick Astley - Never Gonna Give You Up",
1186-
"uri": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
1187-
"sourceName": "youtube"
1179+
"encoded": "QAAAjQIAJVJpY2sgQXN0bGV5IC0gTmV2ZXIgR29ubmEgR2l2ZSBZb3UgVXAADlJpY2tBc3RsZXlWRVZPAAAAAAADPCAAC2RRdzR3OVdnWGNRAAEAK2h0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9ZFF3NHc5V2dYY1EAB3lvdXR1YmUAAAAAAAAAAA==",
1180+
"info": {
1181+
"identifier": "dQw4w9WgXcQ",
1182+
"isSeekable": true,
1183+
"author": "RickAstleyVEVO",
1184+
"length": 212000,
1185+
"isStream": false,
1186+
"position": 0,
1187+
"title": "Rick Astley - Never Gonna Give You Up",
1188+
"uri": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
1189+
"sourceName": "youtube"
1190+
},
1191+
"identifier": "dQw4w9WgXcQ", // Same as info.identifier, removed in /v4
1192+
"isSeekable": true, // Same as info.isSeekable, removed in /v4
1193+
"author": "RickAstleyVEVO", // Same as info.author, removed in /v4
1194+
"length": 212000, // Same as info.length, removed in /v4
1195+
"isStream": false, // Same as info.isStream, removed in /v4
1196+
"position": 0, // Same as info.position, removed in /v4
1197+
"title": "Rick Astley - Never Gonna Give You Up", // Same as info.title, removed in /v4
1198+
"uri": "https://www.youtube.com/watch?v=dQw4w9WgXcQ", // Same as info.uri, removed in /v4
1199+
"sourceName": "youtube" // Same as info.sourceName, removed in /v4
11881200
}
11891201
```
11901202

LavalinkServer/src/main/java/lavalink/server/player/AudioLoaderRestHandler.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import com.fasterxml.jackson.databind.ObjectMapper
2626
import com.fasterxml.jackson.databind.node.JsonNodeFactory
2727
import com.fasterxml.jackson.databind.node.ObjectNode
2828
import com.sedmelluq.discord.lavaplayer.player.AudioPlayerManager
29+
import dev.arbjerg.lavalink.protocol.v3.DecodedTrack
2930
import dev.arbjerg.lavalink.protocol.v3.Track
3031
import dev.arbjerg.lavalink.protocol.v3.TrackInfo
3132
import dev.arbjerg.lavalink.protocol.v3.decodeTrack
@@ -71,12 +72,13 @@ class AudioLoaderRestHandler(
7172
}
7273

7374
@GetMapping(value = ["/decodetrack", "/v3/decodetrack"])
74-
fun getDecodeTrack(@RequestParam encodedTrack: String?, @RequestParam track: String?): ResponseEntity<TrackInfo> {
75+
fun getDecodeTrack(@RequestParam encodedTrack: String?, @RequestParam track: String?): ResponseEntity<DecodedTrack> {
7576
val trackToDecode = encodedTrack ?: track ?: throw ResponseStatusException(
7677
HttpStatus.BAD_REQUEST,
7778
"No track to decode provided"
7879
)
79-
return ResponseEntity.ok(decodeTrack(audioPlayerManager, trackToDecode).toTrack(trackToDecode).info)
80+
val decodedTrack = decodeTrack(audioPlayerManager, trackToDecode).toTrack(trackToDecode)
81+
return ResponseEntity.ok(DecodedTrack(decodedTrack.encoded, decodedTrack.info, decodedTrack.info))
8082
}
8183

8284
@PostMapping(value = ["/decodetracks", "/v3/decodetracks"])

protocol/src/main/java/dev/arbjerg/lavalink/protocol/v3/player.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package dev.arbjerg.lavalink.protocol.v3
22

3+
import com.fasterxml.jackson.annotation.JsonUnwrapped
34
import com.fasterxml.jackson.annotation.JsonValue
45
import com.fasterxml.jackson.core.JsonParser
56
import com.fasterxml.jackson.databind.DeserializationContext
@@ -21,6 +22,13 @@ data class Player(
2122
val filters: Filters
2223
)
2324

25+
data class DecodedTrack(
26+
val encoded: String,
27+
val info: TrackInfo,
28+
@JsonUnwrapped
29+
val oldInfo: TrackInfo
30+
)
31+
2432
data class Track(
2533
val encoded: String,
2634
val track: String,

0 commit comments

Comments
 (0)