mirror of
https://github.com/tcsenpai/swingmusic.git
synced 2025-06-07 03:35:35 +00:00
50 lines
1.0 KiB
Python
50 lines
1.0 KiB
Python
import dataclasses
|
|
from dataclasses import dataclass
|
|
|
|
from app.utils.hashing import create_hash
|
|
|
|
|
|
@dataclass(slots=True)
|
|
class ArtistMinimal:
|
|
"""
|
|
ArtistMinimal class
|
|
"""
|
|
|
|
name: str
|
|
artisthash: str = ""
|
|
image: str = ""
|
|
|
|
def __init__(self, name: str):
|
|
self.name = name
|
|
self.artisthash = create_hash(self.name, decode=True)
|
|
self.image = self.artisthash + ".webp"
|
|
|
|
|
|
@dataclass(slots=True)
|
|
class Artist(ArtistMinimal):
|
|
"""
|
|
Artist class
|
|
"""
|
|
|
|
name: str = ""
|
|
trackcount: int = 0
|
|
albumcount: int = 0
|
|
duration: int = 0
|
|
colors: list[str] = dataclasses.field(default_factory=list)
|
|
is_favorite: bool = False
|
|
|
|
def __post_init__(self):
|
|
super(Artist, self).__init__(self.name)
|
|
|
|
def set_trackcount(self, count: int):
|
|
self.trackcount = count
|
|
|
|
def set_albumcount(self, count: int):
|
|
self.albumcount = count
|
|
|
|
def set_duration(self, duration: int):
|
|
self.duration = duration
|
|
|
|
def set_colors(self, colors: list[str]):
|
|
self.colors = colors
|