From f379280fc269b3d86c0519cd06cb97433a45c9ec Mon Sep 17 00:00:00 2001 From: Il`ya Date: Sun, 24 Nov 2019 01:51:45 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A3=D0=B1=D1=80=D0=B0=D0=BD=D0=B0=20=D0=BE?= =?UTF-8?q?=D0=B1=D1=8F=D0=B7=D0=B0=D1=82=D0=B5=D0=BB=D1=8C=D0=BD=D0=BE?= =?UTF-8?q?=D1=81=D1=82=D1=8C=20=D1=81=D0=BB=D0=B5=D0=B4=D1=83=D1=8E=D1=89?= =?UTF-8?q?=D0=B8=D1=85=20=D0=BF=D0=BE=D0=BB=D0=B5=D0=B9=20=D0=BA=D0=BB?= =?UTF-8?q?=D0=B0=D1=81=D1=81=D0=B0=20`Playlist`:=20`uid`,=20`kind`,=20`ti?= =?UTF-8?q?tle`,=20`track=5Fcount`.=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=20=D0=BD=D0=BE=D0=B2=D1=8B=D0=B9=20=D0=BA=D0=BB?= =?UTF-8?q?=D0=B0=D1=81=D1=81=20`PlaylistAbsence`=20=D0=BF=D1=80=D0=B5?= =?UTF-8?q?=D0=B4=D1=81=D1=82=D0=B0=D0=B2=D0=BB=D1=8F=D1=8E=D1=89=D0=B8?= =?UTF-8?q?=D0=B9=20=D0=BE=D0=B1=D1=8A=D0=B5=D0=BA=D1=82=20=D0=BE=D0=BF?= =?UTF-8?q?=D0=B8=D1=81=D1=8B=D0=B2=D0=B0=D1=8E=D1=89=D0=B8=D0=B9=20=D0=BF?= =?UTF-8?q?=D1=80=D0=B8=D1=87=D0=B8=D0=BD=D1=83=20=D0=BE=D1=82=D1=81=D1=83?= =?UTF-8?q?=D1=82=D1=81=D1=82=D0=B2=D0=B8=D1=8F=20=D0=BF=D0=BB=D0=B5=D0=B9?= =?UTF-8?q?=D0=BB=D0=B8=D1=81=D1=82=D0=B0.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- yandex_music/__init__.py | 4 +++- yandex_music/playlist/playlist.py | 24 ++++++++++++----------- yandex_music/playlist/playlist_absence.py | 23 ++++++++++++++++++++++ 3 files changed, 39 insertions(+), 12 deletions(-) create mode 100644 yandex_music/playlist/playlist_absence.py 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)