fix: prevent overwriting saved queue with empty track lists in repository and music player
This commit is contained in:
4 files changed
+56
-8
No files matched your search
@@ -111,14 +111,14 @@ class MusicPlayer:
|
||||
if not self._queues:
|
||||
return
|
||||
state = self.state(guild_id)
|
||||
self._queues.save(
|
||||
guild_id,
|
||||
[
|
||||
self._track_snapshot(track)
|
||||
for track in state.queue
|
||||
if self.plays_left(track, guild_id) > 0
|
||||
],
|
||||
)
|
||||
tracks = [
|
||||
self._track_snapshot(track)
|
||||
for track in state.queue
|
||||
if self.plays_left(track, guild_id) > 0
|
||||
]
|
||||
if not tracks:
|
||||
return
|
||||
self._queues.save(guild_id, tracks)
|
||||
|
||||
def finish_current(self, guild_id: int) -> None:
|
||||
"""Consume one play when playback ends outside the regular callback."""
|
||||
|
||||
@@ -21,6 +21,8 @@ class QueueRepository:
|
||||
return self._stores[guild_id]
|
||||
|
||||
def save(self, guild_id: int, tracks: list[dict[str, Any]]) -> None:
|
||||
if not tracks:
|
||||
return
|
||||
self._store(guild_id).set("tracks", tracks)
|
||||
|
||||
def load(self, guild_id: int) -> list[dict[str, Any]]:
|
||||
|
||||
Reference in new issue
Block a user