From f6ba30639a98b1491785c0d56936a9427aa5144d Mon Sep 17 00:00:00 2001 From: anthorob Date: Sun, 18 Oct 2026 08:23:56 -0400 Subject: [PATCH] Add `identifier` field to `PendingPlaylist` in `PlayOutcome` Updated `PendingPlaylist` to include a new `identifier` field, enabling more precise playlist identification. Adjusted `SearchResultHandler` and `MusicRoutes` to use and expose this field, ensuring integration across the system and improving API consistency. --- .../java/me/bobert/netneutrality/http/server/MusicRoutes.java | 1 + src/main/java/me/bobert/netneutrality/music/PlayOutcome.java | 2 +- .../java/me/bobert/netneutrality/music/SearchResultHandler.java | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/me/bobert/netneutrality/http/server/MusicRoutes.java b/src/main/java/me/bobert/netneutrality/http/server/MusicRoutes.java index 60eff73..1dd550f 100644 --- a/src/main/java/me/bobert/netneutrality/http/server/MusicRoutes.java +++ b/src/main/java/me/bobert/netneutrality/http/server/MusicRoutes.java @@ -643,6 +643,7 @@ public final class MusicRoutes { body.put("status", "pending_playlist"); body.put("search_id", pendingPlaylist.searchId()); body.put("search_id_ttl_seconds", PendingSearchResults.ttlSeconds()); + body.put("identifier", pendingPlaylist.identifier()); body.put("name", pendingPlaylist.name()); body.put("tracks", pendingPlaylist.tracks().stream().map(MusicRoutes::trackSummary).toList()); body.put("truncated", pendingPlaylist.truncated()); diff --git a/src/main/java/me/bobert/netneutrality/music/PlayOutcome.java b/src/main/java/me/bobert/netneutrality/music/PlayOutcome.java index dad7fdb..bfb5f79 100644 --- a/src/main/java/me/bobert/netneutrality/music/PlayOutcome.java +++ b/src/main/java/me/bobert/netneutrality/music/PlayOutcome.java @@ -23,7 +23,7 @@ public sealed interface PlayOutcome { record PendingTrack(String searchId, Track track) implements PlayOutcome { } - record PendingPlaylist(String searchId, String name, List tracks, boolean truncated) implements PlayOutcome { + record PendingPlaylist(String searchId, String identifier, String name, List tracks, boolean truncated) implements PlayOutcome { } record PendingSearch(String searchId, List candidates) implements PlayOutcome { diff --git a/src/main/java/me/bobert/netneutrality/music/SearchResultHandler.java b/src/main/java/me/bobert/netneutrality/music/SearchResultHandler.java index db98f0c..d77d21f 100644 --- a/src/main/java/me/bobert/netneutrality/music/SearchResultHandler.java +++ b/src/main/java/me/bobert/netneutrality/music/SearchResultHandler.java @@ -66,7 +66,7 @@ public class SearchResultHandler extends AbstractAudioLoadResultHandler { List candidates = truncated ? tracks.subList(0, maxPlaylistSize) : tracks; String searchId = PendingSearchResults.put(guild.getId(), candidates); - future.complete(new PlayOutcome.PendingPlaylist(searchId, result.getInfo().getName(), candidates, truncated)); + future.complete(new PlayOutcome.PendingPlaylist(searchId, identifier, result.getInfo().getName(), candidates, truncated)); } @Override