From 0e4c707b2b11b4ec70a000e7a9d3108030fc0c61 Mon Sep 17 00:00:00 2001 From: salmonik Date: Wed, 29 Apr 2026 14:43:08 +0200 Subject: damn short files Signed-off-by: salmonik --- cogs/music/audio_playback.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'cogs/music/audio_playback.py') diff --git a/cogs/music/audio_playback.py b/cogs/music/audio_playback.py index 1c715de..1313d01 100644 --- a/cogs/music/audio_playback.py +++ b/cogs/music/audio_playback.py @@ -192,13 +192,14 @@ class AudioPlaybackManager: source, is_url, display_name ) - # Track if playback failed - playback_failed = {"error": None} + # Track playback state + playback_state = {"error": None, "finished": False} def after_playing(error): if error: - playback_failed["error"] = str(error) + playback_state["error"] = str(error) logger.error(f"Playback error: {error}") + playback_state["finished"] = True # Play the audio vc.play(audio_source, after=after_playing) @@ -208,14 +209,19 @@ class AudioPlaybackManager: # Wait for FFmpeg to attempt connection - errors usually happen within 5 seconds await asyncio.sleep(5) - # Check if playback actually started - if playback_failed["error"]: - logger.error(f"Playback failed: {playback_failed['error']}") + # Check if playback failed to start (not just finished quickly) + if playback_state["error"]: + logger.error(f"Playback failed: {playback_state['error']}") await ctx.followup.send( "eror: Timeout - nie udało się połączyć ze streamem", ephemeral=True ) return False + # If playback finished within 5s, it was a short file - not an error + if playback_state["finished"]: + logger.info(f"Playback completed quickly: {final_display_name}") + return True + if not vc.is_playing(): logger.error(f"Stream failed - not playing after 5s: {source}") await ctx.followup.send( -- cgit v1.2.3