fix: prevent overwriting saved queue with empty track lists in repository and music player

This commit is contained in:
mmacierzanka committed 2026-09-11 01:29:31 +02:00
1 parent 06238b0438
commit 9143c6029a
4 files changed
+56 -8

No files matched your search

+8 -8
View File
@@ -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."""
+2
View File
@@ -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]]: