[server] fix playlist methods

- deepcopy playlists in get_all_playlists
This commit is contained in:
geoffrey45 committed 2022-03-27 18:13:51 +03:00
1 parent 8bb13a109d
commit fe0d7cae1a
2 files changed
+37 -15

No files matched your search

+16 -4
View File
@@ -1,10 +1,13 @@
"""
This library contains all the functions related to playlists.
"""
from progress.bar import Bar
from app import api, instances, models, exceptions, helpers
from app import api, instances, models
from app.lib import trackslib
TrackExistsInPlaylist = exceptions.TrackExistsInPlaylist
def add_track(playlistid: str, trackid: str):
"""
@@ -13,14 +16,23 @@ def add_track(playlistid: str, trackid: str):
for playlist in api.PLAYLISTS:
if playlist.playlistid == playlistid:
track = trackslib.get_track_by_id(trackid)
playlist.tracks.append(track)
instances.playlist_instance.add_track_to_playlist(playlistid, track)
if track not in playlist.tracks:
playlist.tracks.append(track)
instances.playlist_instance.add_track_to_playlist(playlistid, track)
return
else:
raise TrackExistsInPlaylist("Track already in playlist.")
def create_all_playlists():
"""
Gets all playlists from the database.
"""
for playlist in instances.playlist_instance.get_all_playlists():
playlists = instances.playlist_instance.get_all_playlists()
_bar = Bar("Creating playlists", max=len(playlists))
for playlist in playlists:
api.PLAYLISTS.append(models.Playlist(playlist))
_bar.next()
_bar.finish()