trimmed down music.py

This commit is contained in:
esef committed 2026-07-09 17:40:23 +03:00
1 parent f88fd7989a
commit c2133705fe
36 files changed
+1010 -4

No files matched your search

+40
View File
@@ -0,0 +1,40 @@
import wavelink
import logging
from discord.ext import commands
from ..shared.constants import MODE_RADIO
log = logging.getLogger(__name__)
class RadioEvents:
"""Mixin: wavelink failure events that only apply to radio mode."""
# ── track exception → radio stream failure ────────────────────────────────
@commands.Cog.listener()
async def on_wavelink_track_exception(self, payload: wavelink.TrackExceptionEventPayload):
player: wavelink.Player = payload.player
if player is None:
return
st = self.state(player.guild.id)
if st.mode == MODE_RADIO:
if not self._is_current_track(st, payload.track):
return
log.warning(f"Radio stream exception in guild {player.guild.id}: {payload.exception}")
await self._notify_radio_drop(player.guild.id)
st.mode = None
await self._set_channel_status(player)
# ── track stuck → radio stream failure ────────────────────────────────────
@commands.Cog.listener()
async def on_wavelink_track_stuck(self, payload: wavelink.TrackStuckEventPayload):
player: wavelink.Player = payload.player
if player is None:
return
st = self.state(player.guild.id)
if st.mode == MODE_RADIO:
if not self._is_current_track(st, payload.track):
return
log.warning(f"Radio stream stuck in guild {player.guild.id}, threshold {payload.threshold_ms}ms")
await self._notify_radio_drop(player.guild.id)
st.mode = None
await self._set_channel_status(player)