[server] fix playlist methods

- deepcopy playlists in get_all_playlists
This commit is contained in:
geoffrey45
2022-03-27 18:13:51 +03:00
parent 8bb13a109d
commit fe0d7cae1a
2 changed files with 37 additions and 15 deletions
+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()