mirror of
https://github.com/Dvorinka/swingmusic-extended.git
synced 2026-06-05 04:53:01 +00:00
add route to get all tracks in path
+ add routes to save album and artist as a playlist
This commit is contained in:
+15
-10
@@ -1,30 +1,35 @@
|
||||
from dataclasses import asdict
|
||||
|
||||
from app.models.track import Track
|
||||
|
||||
|
||||
def track_serializer(track: Track, _remove: set = {}, retain_disc=False) -> dict:
|
||||
def track_serializer(track: Track, to_remove: set = {}, remove_disc=True) -> dict:
|
||||
album_dict = asdict(track)
|
||||
to_remove = {
|
||||
props = {
|
||||
"date",
|
||||
"genre",
|
||||
"last_mod",
|
||||
"og_title",
|
||||
"og_album",
|
||||
}.union(_remove)
|
||||
"copyright",
|
||||
"disc",
|
||||
"track",
|
||||
}.union(to_remove)
|
||||
|
||||
if not retain_disc:
|
||||
to_remove.union("disc", "track")
|
||||
if not remove_disc:
|
||||
props.remove("disc")
|
||||
props.remove("track")
|
||||
|
||||
to_remove.update(key for key in album_dict.keys() if key.startswith("is_"))
|
||||
to_remove.remove('is_favorite')
|
||||
props.update(key for key in album_dict.keys() if key.startswith("is_"))
|
||||
props.remove("is_favorite")
|
||||
|
||||
for key in to_remove:
|
||||
for key in props:
|
||||
album_dict.pop(key, None)
|
||||
|
||||
return album_dict
|
||||
|
||||
|
||||
def serialize_tracks(
|
||||
tracks: list[Track], _remove: set = {}, retain_disc=False
|
||||
tracks: list[Track], _remove: set = {}, remove_disc=True
|
||||
) -> list[dict]:
|
||||
return [track_serializer(t, _remove, retain_disc) for t in tracks]
|
||||
return [track_serializer(t, _remove, remove_disc) for t in tracks]
|
||||
|
||||
Reference in New Issue
Block a user