aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsalmonik <raisersoft@proton.me>2026-04-29 14:43:08 +0200
committersalmonik <raisersoft@proton.me>2026-04-29 14:43:08 +0200
commit0e4c707b2b11b4ec70a000e7a9d3108030fc0c61 (patch)
tree3146eebd42df35193fc9a22fbfd17c2b5d17baf5
parentRefactor database connections and add integration tests (diff)
downloadsenator-sperma-0e4c707b2b11b4ec70a000e7a9d3108030fc0c61.tar.gz
senator-sperma-0e4c707b2b11b4ec70a000e7a9d3108030fc0c61.zip
damn short files
Signed-off-by: salmonik <raisersoft@proton.me>
-rw-r--r--cogs/music/audio_playback.py18
1 files changed, 12 insertions, 6 deletions
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:
192 source, is_url, display_name 192 source, is_url, display_name
193 ) 193 )
194 194
195 # Track if playback failed 195 # Track playback state
196 playback_failed = {"error": None} 196 playback_state = {"error": None, "finished": False}
197 197
198 def after_playing(error): 198 def after_playing(error):
199 if error: 199 if error:
200 playback_failed["error"] = str(error) 200 playback_state["error"] = str(error)
201 logger.error(f"Playback error: {error}") 201 logger.error(f"Playback error: {error}")
202 playback_state["finished"] = True
202 203
203 # Play the audio 204 # Play the audio
204 vc.play(audio_source, after=after_playing) 205 vc.play(audio_source, after=after_playing)
@@ -208,14 +209,19 @@ class AudioPlaybackManager:
208 # Wait for FFmpeg to attempt connection - errors usually happen within 5 seconds 209 # Wait for FFmpeg to attempt connection - errors usually happen within 5 seconds
209 await asyncio.sleep(5) 210 await asyncio.sleep(5)
210 211
211 # Check if playback actually started 212 # Check if playback failed to start (not just finished quickly)
212 if playback_failed["error"]: 213 if playback_state["error"]:
213 logger.error(f"Playback failed: {playback_failed['error']}") 214 logger.error(f"Playback failed: {playback_state['error']}")
214 await ctx.followup.send( 215 await ctx.followup.send(
215 "eror: Timeout - nie udało się połączyć ze streamem", ephemeral=True 216 "eror: Timeout - nie udało się połączyć ze streamem", ephemeral=True
216 ) 217 )
217 return False 218 return False
218 219
220 # If playback finished within 5s, it was a short file - not an error
221 if playback_state["finished"]:
222 logger.info(f"Playback completed quickly: {final_display_name}")
223 return True
224
219 if not vc.is_playing(): 225 if not vc.is_playing():
220 logger.error(f"Stream failed - not playing after 5s: {source}") 226 logger.error(f"Stream failed - not playing after 5s: {source}")
221 await ctx.followup.send( 227 await ctx.followup.send(