From d7a7efb05158f81f0cb31e635e1adc00ecf342c1 Mon Sep 17 00:00:00 2001 From: CorpNewt <12772521+corpnewt@users.noreply.github.com> Date: Fri, 15 Sep 2023 10:35:56 -0500 Subject: [PATCH 1/3] Account for Lavalink v4 changes when loading YT playlists --- pomice/pool.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/pomice/pool.py b/pomice/pool.py index 55a2706..dd0aee5 100644 --- a/pomice/pool.py +++ b/pomice/pool.py @@ -813,6 +813,12 @@ class Node: return None elif load_type in ("PLAYLIST_LOADED", "playlist"): + if self._version.major >= 4: + track_list = data[data_type]["tracks"] + playlist_info = data[data_type]["info"] + else: + track_list = data[data_type] + playlist_info = data["playlistInfo"] tracks = [ Track( track_id=track["encoded"], @@ -820,10 +826,10 @@ class Node: ctx=ctx, track_type=TrackType(track["info"]["sourceName"]), ) - for track in data[data_type] + for track in track_list ] return Playlist( - playlist_info=data["playlistInfo"], + playlist_info=playlist_info, tracks=tracks, playlist_type=PlaylistType(tracks[0].track_type.value), thumbnail=tracks[0].thumbnail, From 3401b669e887489d3be5f669468d87111c6fba55 Mon Sep 17 00:00:00 2001 From: CorpNewt <12772521+corpnewt@users.noreply.github.com> Date: Fri, 15 Sep 2023 18:28:50 -0500 Subject: [PATCH 2/3] Fix for YT URL searches on Lavalink v4 Since the prior code for v3 uses list comprehension to build the tracks returned, we can check if we're using v4 and if the data[data_type] is a dictionary, and wrap it in a list to ensure the same behavior. --- pomice/pool.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pomice/pool.py b/pomice/pool.py index dd0aee5..5bf8c27 100644 --- a/pomice/pool.py +++ b/pomice/pool.py @@ -837,6 +837,8 @@ class Node: ) elif load_type in ("SEARCH_RESULT", "TRACK_LOADED", "track", "search"): + if self._version.major >= 4 and isinstance(data[data_type],dict): + data[data_type] = [data[data_type]] return [ Track( track_id=track["encoded"], From f9cb48c48fef64351f90fb23b5d4cbf8d8d15146 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 15 Sep 2023 23:28:59 +0000 Subject: [PATCH 3/3] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- pomice/pool.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pomice/pool.py b/pomice/pool.py index 5bf8c27..a78bdd5 100644 --- a/pomice/pool.py +++ b/pomice/pool.py @@ -837,7 +837,7 @@ class Node: ) elif load_type in ("SEARCH_RESULT", "TRACK_LOADED", "track", "search"): - if self._version.major >= 4 and isinstance(data[data_type],dict): + if self._version.major >= 4 and isinstance(data[data_type], dict): data[data_type] = [data[data_type]] return [ Track(