Убрана обязательность следующих полей класса `Playlist`: `uid`, `kind`, `title`, `track_count`.

Добавлен новый класс `PlaylistAbsence` представляющий объект описывающий причину отсутствия плейлиста.
このコミットが含まれているのは:
Il`ya 2019-11-24 01:51:45 +03:00
コミット f379280fc2
3個のファイルの変更39行の追加12行の削除

ファイルの表示

@ -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']

ファイルの表示

@ -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)

23
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)