diff --git a/yandex_music/__init__.py b/yandex_music/__init__.py index a81b5b5..8a16d51 100644 --- a/yandex_music/__init__.py +++ b/yandex_music/__init__.py @@ -32,6 +32,7 @@ from .playlist.made_for import MadeFor from .playlist.user import User from .playlist.play_counter import PlayCounter from .playlist.playlist_id import PlaylistId +from .playlist.playlist_absence import PlaylistAbsence from .playlist.playlist import Playlist from .tracks_list import TracksList @@ -113,4 +114,5 @@ __all__ = ['YandexMusicObject', 'Client', 'Account', 'PassportPhone', 'Invocatio 'PersonalPlaylistsData', 'Promotion', 'Landing', 'Chart', 'ChartItem', 'PlayContext', 'Title', 'Genre', 'Icon', 'Images', 'Id', 'Station', 'Dashboard', 'RotorSettings', 'AdParams', 'Restrictions', 'Value', 'Enum', 'DiscreteScale', 'StationResult', 'Sequence', 'StationTracksResult', 'BriefInfo', 'Description', 'PlaylistId', - 'Vinyl', 'Supplement', 'Lyrics', 'VideoSupplement', 'ArtistTracks', 'Pager', 'ArtistAlbums'] + 'Vinyl', 'Supplement', 'Lyrics', 'VideoSupplement', 'ArtistTracks', 'Pager', 'ArtistAlbums', + 'PlaylistAbsence'] diff --git a/yandex_music/playlist/playlist.py b/yandex_music/playlist/playlist.py index ddcd82e..f858928 100644 --- a/yandex_music/playlist/playlist.py +++ b/yandex_music/playlist/playlist.py @@ -4,13 +4,14 @@ from yandex_music import YandexMusicObject class Playlist(YandexMusicObject): def __init__(self, owner, - uid, - kind, - title, - track_count, cover, made_for, play_counter, + playlist_absence, + uid=None, + kind=None, + title=None, + track_count=None, tags=None, revision=None, snapshot=None, @@ -36,14 +37,15 @@ class Playlist(YandexMusicObject): client=None, **kwargs): self.owner = owner + self.cover = cover + self.made_for = made_for + self.play_counter = play_counter + self.playlist_absence = playlist_absence + self.uid = uid self.kind = kind self.title = title self.track_count = track_count - self.cover = cover - self.made_for = made_for - self.play_counter = play_counter - self.revision = revision self.snapshot = snapshot self.visibility = visibility @@ -68,8 +70,7 @@ class Playlist(YandexMusicObject): self.tags = tags self.client = client - self._id_attrs = (self.uid, self.kind, self.title, self.track_count, self.cover, - self.made_for, self.play_counter) + self._id_attrs = (self.uid, self.kind, self.title, self.playlist_absence) @property def is_mine(self): @@ -127,12 +128,13 @@ class Playlist(YandexMusicObject): return None data = super(Playlist, cls).de_json(data, client) - from yandex_music import User, MadeFor, Cover, PlayCounter, TrackShort + from yandex_music import User, MadeFor, Cover, PlayCounter, TrackShort, PlaylistAbsence data['owner'] = User.de_json(data.get('owner'), client) data['cover'] = Cover.de_json(data.get('cover'), client) data['made_for'] = MadeFor.de_json(data.get('made_for'), client) data['tracks'] = TrackShort.de_list(data.get('tracks'), client) data['play_counter'] = PlayCounter.de_json(data.get('play_counter'), client) + data['playlist_absence'] = PlaylistAbsence.de_json(data.get('playlist_absense'), client) # очепятка яндуха return cls(client=client, **data) diff --git a/yandex_music/playlist/playlist_absence.py b/yandex_music/playlist/playlist_absence.py new file mode 100644 index 0000000..46a06a1 --- /dev/null +++ b/yandex_music/playlist/playlist_absence.py @@ -0,0 +1,23 @@ +from yandex_music import YandexMusicObject + + +class PlaylistAbsence(YandexMusicObject): + def __init__(self, + kind, + reason, + client=None, + **kwargs): + self.kind = kind + self.reason = reason + + self.client = client + self._id_attrs = (self.kind, self.reason) + + @classmethod + def de_json(cls, data, client): + if not data: + return None + + data = super(PlaylistAbsence, cls).de_json(data, client) + + return cls(client=client, **data)