🔷 add PlayingFrom component to right sidebar

🔷 move upNext card into separate component
🔷 a lot of refactors
This commit is contained in:
geoffrey45
2022-04-03 21:47:57 +03:00
parent 334cf0fce1
commit 6cf9a58d6d
26 changed files with 425 additions and 220 deletions
+26 -3
View File
@@ -2,11 +2,12 @@
Contains all the models for objects generation and typing.
"""
from dataclasses import dataclass
from dataclasses import dataclass, field
from datetime import date
from typing import List
from app import api
from app import settings
from app.exceptions import TrackExistsInPlaylist
@dataclass
@@ -99,10 +100,11 @@ class Playlist:
playlistid: str
name: str
description: str
image: str
tracks: List[Track]
_pre_tracks: list = field(init=False, repr=False)
lastUpdated: int
description: str = ""
count: int = 0
"""A list of track objects in the playlist"""
@@ -111,8 +113,29 @@ class Playlist:
self.name = data["name"]
self.description = data["description"]
self.image = ""
self.tracks = create_playlist_tracks(data["tracks"])
self._pre_tracks = data["pre_tracks"]
self.tracks = []
self.lastUpdated = data["lastUpdated"]
self.count = len(self._pre_tracks)
def get_tracks(self) -> List[Track]:
"""
Generates and returns Track objects from pre_tracks
"""
return create_playlist_tracks(self._pre_tracks)
def update_count(self):
self.count = len(self.tracks)
def add_track(self, track):
if track not in self._pre_tracks:
self._pre_tracks.append(track)
self.update_count()
else:
raise TrackExistsInPlaylist("Track already exists in playlist")
def update_desc(self, desc):
self.description = desc
@dataclass