From 33178ef0347f59ff37b331694c233d9d7f828546 Mon Sep 17 00:00:00 2001 From: Draper <27962761+Drapersniper@users.noreply.github.com> Date: Mon, 11 Nov 2019 16:59:51 +0000 Subject: [PATCH] [Audio-3.2] Fix an issue with mixplaylist being recognised as single tracks (#3104) * Fix an issue with mixplaylist being recognised as single tracks Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com> * Add changelogs Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com> --- changelog.d/audio/3104.misc.1.rst | 1 + redbot/cogs/audio/audio_dataclasses.py | 9 ++++++--- 2 files changed, 7 insertions(+), 3 deletions(-) create mode 100644 changelog.d/audio/3104.misc.1.rst diff --git a/changelog.d/audio/3104.misc.1.rst b/changelog.d/audio/3104.misc.1.rst new file mode 100644 index 000000000..82855a786 --- /dev/null +++ b/changelog.d/audio/3104.misc.1.rst @@ -0,0 +1 @@ +Fix an issue where some YouTube playlists were being recognised as single tracks. \ No newline at end of file diff --git a/redbot/cogs/audio/audio_dataclasses.py b/redbot/cogs/audio/audio_dataclasses.py index eee695aa5..16dbc27fb 100644 --- a/redbot/cogs/audio/audio_dataclasses.py +++ b/redbot/cogs/audio/audio_dataclasses.py @@ -381,14 +381,17 @@ class Query: match = re.search(_re_youtube_index, track) if match: returning["track_index"] = int(match.group(1)) - 1 - if all(k in track for k in ["&list=", "watch?"]): returning["track_index"] = 0 returning["playlist"] = True returning["single"] = False elif all(x in track for x in ["playlist?"]): - returning["playlist"] = True if not _has_index else False - returning["single"] = True if _has_index else False + returning["playlist"] = not _has_index + returning["single"] = _has_index + elif any(k in track for k in ["list="]): + returning["track_index"] = 0 + returning["playlist"] = True + returning["single"] = False else: returning["single"] = True elif url_domain == "spotify.com":