2021-01-31 17:59:15 +01:00
|
|
|
from deemix.types.Artist import Artist
|
|
|
|
from deemix.types.Date import Date
|
2021-06-27 22:29:41 +02:00
|
|
|
from deemix.types.Picture import Picture, StaticPicture
|
2021-01-31 17:59:15 +01:00
|
|
|
|
|
|
|
class Playlist:
|
|
|
|
def __init__(self, playlistAPI):
|
|
|
|
self.id = "pl_" + str(playlistAPI['id'])
|
|
|
|
self.title = playlistAPI['title']
|
|
|
|
self.rootArtist = None
|
|
|
|
self.artist = {"Main": []}
|
|
|
|
self.artists = []
|
|
|
|
self.trackTotal = playlistAPI['nb_tracks']
|
|
|
|
self.recordType = "compile"
|
|
|
|
self.barcode = ""
|
|
|
|
self.label = ""
|
|
|
|
self.explicit = playlistAPI['explicit']
|
|
|
|
self.genre = ["Compilation", ]
|
|
|
|
|
|
|
|
year = playlistAPI["creation_date"][0:4]
|
|
|
|
month = playlistAPI["creation_date"][5:7]
|
|
|
|
day = playlistAPI["creation_date"][8:10]
|
2021-06-27 22:29:41 +02:00
|
|
|
self.date = Date(day, month, year)
|
2021-01-31 17:59:15 +01:00
|
|
|
|
|
|
|
self.discTotal = "1"
|
2021-06-27 22:29:41 +02:00
|
|
|
self.playlistID = playlistAPI['id']
|
2021-01-31 17:59:15 +01:00
|
|
|
self.owner = playlistAPI['creator']
|
2021-06-27 22:29:41 +02:00
|
|
|
|
2021-01-31 17:59:15 +01:00
|
|
|
if 'dzcdn.net' in playlistAPI['picture_small']:
|
|
|
|
url = playlistAPI['picture_small']
|
|
|
|
picType = url[url.find('images/')+7:]
|
|
|
|
picType = picType[:picType.find('/')]
|
|
|
|
md5 = url[url.find(picType+'/') + len(picType)+1:-24]
|
2021-06-27 22:29:41 +02:00
|
|
|
self.pic = Picture(md5, picType)
|
2021-01-31 17:59:15 +01:00
|
|
|
else:
|
2021-06-27 22:29:41 +02:00
|
|
|
self.pic = StaticPicture(playlistAPI['picture_xl'])
|
|
|
|
|
|
|
|
if 'various_artist' in playlistAPI:
|
|
|
|
pic_md5 = playlistAPI['various_artist']['picture_small']
|
|
|
|
pic_md5 = pic_md5[pic_md5.find('artist/') + 7:-24]
|
|
|
|
self.variousArtists = Artist(
|
|
|
|
playlistAPI['various_artist']['id'],
|
|
|
|
playlistAPI['various_artist']['name'],
|
|
|
|
"Main",
|
|
|
|
pic_md5
|
|
|
|
)
|
|
|
|
self.mainArtist = self.variousArtists
|