[Audio] Say no to busylooping :Awesome: (#3176)

* Say no to busylooping :Awesome:

Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>

* chrore

Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>

* black y u do dis 2 me

Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>

* Return regardless if error is raised here
This commit is contained in:
Draper
2019-12-10 01:26:26 +00:00
committed by Michael H
parent 8cba47f382
commit c67b6cd443
3 changed files with 34 additions and 5 deletions

View File

@@ -33,7 +33,7 @@ from redbot.core import Config, commands
from redbot.core.bot import Red
from redbot.core.i18n import Translator, cog_i18n
from . import audio_dataclasses
from .errors import InvalidTableError, SpotifyFetchError, YouTubeApiError
from .errors import InvalidTableError, SpotifyFetchError, YouTubeApiError, DatabaseError
from .playlists import get_playlist
from .utils import CacheLevel, Notifier, is_allowed, queue_duration, track_limit
@@ -1098,10 +1098,14 @@ class MusicCache:
track = tracks[0]
valid = not multiple
tries = len(tracks)
while valid is False and multiple:
tries -= 1
if tries <= 0:
raise DatabaseError("No valid entry found")
track = random.choice(tracks)
query = audio_dataclasses.Query.process_input(track)
await asyncio.sleep(0.001)
if not query.valid:
continue
if query.is_local and not query.track.exists():