Новые поля класса Playlist
このコミットが含まれているのは:
コミット
b7204ec863
|
@ -108,13 +108,16 @@ def album_without_tracks(album_factory, artist_without_tracks):
|
||||||
@pytest.fixture(scope='session')
|
@pytest.fixture(scope='session')
|
||||||
def playlist_factory(user, cover, made_for, track_short, play_counter, playlist_absence):
|
def playlist_factory(user, cover, made_for, track_short, play_counter, playlist_absence):
|
||||||
class PlaylistFactory:
|
class PlaylistFactory:
|
||||||
def get(self):
|
def get(self, similar_playlists, last_owner_playlists):
|
||||||
return Playlist(user, cover, made_for, play_counter, playlist_absence, TestPlaylist.uid, TestPlaylist.kind,
|
return Playlist(user, cover, made_for, play_counter, playlist_absence, TestPlaylist.uid, TestPlaylist.kind,
|
||||||
TestPlaylist.title, TestPlaylist.track_count, TestPlaylist.tags, TestPlaylist.revision,
|
TestPlaylist.title, TestPlaylist.track_count, TestPlaylist.tags, TestPlaylist.revision,
|
||||||
TestPlaylist.snapshot, TestPlaylist.visibility, TestPlaylist.collective,
|
TestPlaylist.snapshot, TestPlaylist.visibility, TestPlaylist.collective,
|
||||||
TestPlaylist.created, TestPlaylist.modified, TestPlaylist.available, TestPlaylist.is_banner,
|
TestPlaylist.url_part, TestPlaylist.created, TestPlaylist.modified,
|
||||||
TestPlaylist.is_premiere, TestPlaylist.duration_ms, TestPlaylist.og_image, [track_short],
|
TestPlaylist.available, TestPlaylist.is_banner, TestPlaylist.is_premiere,
|
||||||
TestPlaylist.prerolls, TestPlaylist.likes_count, TestPlaylist.generated_playlist_type,
|
TestPlaylist.duration_ms, TestPlaylist.og_image, TestPlaylist.og_title,
|
||||||
|
TestPlaylist.image, cover, TestPlaylist.background_color, TestPlaylist.text_color,
|
||||||
|
TestPlaylist.id_for_from, [track_short], TestPlaylist.prerolls, TestPlaylist.likes_count,
|
||||||
|
similar_playlists, last_owner_playlists, TestPlaylist.generated_playlist_type,
|
||||||
TestPlaylist.animated_cover_uri, TestPlaylist.ever_played, TestPlaylist.description,
|
TestPlaylist.animated_cover_uri, TestPlaylist.ever_played, TestPlaylist.description,
|
||||||
TestPlaylist.description_formatted, TestPlaylist.is_for_from, TestPlaylist.regions)
|
TestPlaylist.description_formatted, TestPlaylist.is_for_from, TestPlaylist.regions)
|
||||||
|
|
||||||
|
@ -122,8 +125,13 @@ def playlist_factory(user, cover, made_for, track_short, play_counter, playlist_
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture(scope='session')
|
@pytest.fixture(scope='session')
|
||||||
def playlist(playlist_factory):
|
def playlist(playlist_factory, playlist_without_nested_playlists):
|
||||||
return playlist_factory.get()
|
return playlist_factory.get([playlist_without_nested_playlists], [playlist_without_nested_playlists])
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture(scope='session')
|
||||||
|
def playlist_without_nested_playlists(playlist_factory):
|
||||||
|
return playlist_factory.get([], [])
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture(scope='session')
|
@pytest.fixture(scope='session')
|
||||||
|
|
|
@ -11,6 +11,7 @@ class TestPlaylist:
|
||||||
snapshot = 1
|
snapshot = 1
|
||||||
visibility = 'public'
|
visibility = 'public'
|
||||||
collective = False
|
collective = False
|
||||||
|
url_part = 'daily'
|
||||||
created = '2018-04-29T21:00:00+00:00'
|
created = '2018-04-29T21:00:00+00:00'
|
||||||
modified = '2019-11-09T03:00:00+00:00'
|
modified = '2019-11-09T03:00:00+00:00'
|
||||||
available = True
|
available = True
|
||||||
|
@ -18,6 +19,11 @@ class TestPlaylist:
|
||||||
is_premiere = False
|
is_premiere = False
|
||||||
duration_ms = 12402690
|
duration_ms = 12402690
|
||||||
og_image = 'avatars.yandex.net/get-music-user-playlist/38125/q0ahkhfQE3neTk/%%?1572609906461'
|
og_image = 'avatars.yandex.net/get-music-user-playlist/38125/q0ahkhfQE3neTk/%%?1572609906461'
|
||||||
|
og_title = 'Плейлист дня'
|
||||||
|
image = ''
|
||||||
|
background_color = ''
|
||||||
|
text_color = ''
|
||||||
|
id_for_from = 'playlist_of_the_day'
|
||||||
prerolls = []
|
prerolls = []
|
||||||
likes_count = 1
|
likes_count = 1
|
||||||
generated_playlist_type = 'playlistOfTheDay'
|
generated_playlist_type = 'playlistOfTheDay'
|
||||||
|
@ -28,7 +34,8 @@ class TestPlaylist:
|
||||||
is_for_from = None
|
is_for_from = None
|
||||||
regions = None
|
regions = None
|
||||||
|
|
||||||
def test_expected_values(self, playlist, user, cover, made_for, track_short, play_counter, playlist_absence):
|
def test_expected_values(self, playlist, user, cover, made_for, track_short, play_counter, playlist_absence,
|
||||||
|
playlist_without_nested_playlists):
|
||||||
assert playlist.owner == user
|
assert playlist.owner == user
|
||||||
assert playlist.uid == self.uid
|
assert playlist.uid == self.uid
|
||||||
assert playlist.kind == self.kind
|
assert playlist.kind == self.kind
|
||||||
|
@ -43,6 +50,7 @@ class TestPlaylist:
|
||||||
assert playlist.snapshot == self.snapshot
|
assert playlist.snapshot == self.snapshot
|
||||||
assert playlist.visibility == self.visibility
|
assert playlist.visibility == self.visibility
|
||||||
assert playlist.collective == self.collective
|
assert playlist.collective == self.collective
|
||||||
|
assert playlist.url_part == self.url_part
|
||||||
assert playlist.created == self.created
|
assert playlist.created == self.created
|
||||||
assert playlist.modified == self.modified
|
assert playlist.modified == self.modified
|
||||||
assert playlist.available == self.available
|
assert playlist.available == self.available
|
||||||
|
@ -50,9 +58,17 @@ class TestPlaylist:
|
||||||
assert playlist.is_premiere == self.is_premiere
|
assert playlist.is_premiere == self.is_premiere
|
||||||
assert playlist.duration_ms == self.duration_ms
|
assert playlist.duration_ms == self.duration_ms
|
||||||
assert playlist.og_image == self.og_image
|
assert playlist.og_image == self.og_image
|
||||||
|
assert playlist.og_title == self.og_title
|
||||||
|
assert playlist.image == self.image
|
||||||
|
assert playlist.cover_without_text == cover
|
||||||
|
assert playlist.background_color == self.background_color
|
||||||
|
assert playlist.text_color == self.text_color
|
||||||
|
assert playlist.id_for_from == self.id_for_from
|
||||||
assert playlist.tracks == [track_short]
|
assert playlist.tracks == [track_short]
|
||||||
assert playlist.prerolls == self.prerolls
|
assert playlist.prerolls == self.prerolls
|
||||||
assert playlist.likes_count == self.likes_count
|
assert playlist.likes_count == self.likes_count
|
||||||
|
assert playlist.similar_playlists == [playlist_without_nested_playlists]
|
||||||
|
assert playlist.last_owner_playlists == [playlist_without_nested_playlists]
|
||||||
assert playlist.generated_playlist_type == self.generated_playlist_type
|
assert playlist.generated_playlist_type == self.generated_playlist_type
|
||||||
assert playlist.animated_cover_uri == self.animated_cover_uri
|
assert playlist.animated_cover_uri == self.animated_cover_uri
|
||||||
assert playlist.ever_played == self.ever_played
|
assert playlist.ever_played == self.ever_played
|
||||||
|
@ -68,21 +84,18 @@ class TestPlaylist:
|
||||||
assert Playlist.de_list({}, client) == []
|
assert Playlist.de_list({}, client) == []
|
||||||
|
|
||||||
def test_de_json_required(self, client, user, cover, made_for, play_counter, playlist_absence):
|
def test_de_json_required(self, client, user, cover, made_for, play_counter, playlist_absence):
|
||||||
json_dict = {'owner': user.to_dict(), 'uid': self.uid, 'kind': self.kind, 'title': self.title,
|
json_dict = {'owner': user.to_dict(), 'cover': cover.to_dict(), 'made_for': made_for.to_dict(),
|
||||||
'track_count': self.track_count, 'cover': cover.to_dict(), 'made_for': made_for.to_dict(),
|
|
||||||
'play_counter': play_counter.to_dict(), 'playlist_absence': playlist_absence.to_dict()}
|
'play_counter': play_counter.to_dict(), 'playlist_absence': playlist_absence.to_dict()}
|
||||||
playlist = Playlist.de_json(json_dict, client)
|
playlist = Playlist.de_json(json_dict, client)
|
||||||
|
|
||||||
assert playlist.owner == user
|
assert playlist.owner == user
|
||||||
assert playlist.uid == self.uid
|
|
||||||
assert playlist.kind == self.kind
|
|
||||||
assert playlist.title == self.title
|
|
||||||
assert playlist.track_count == self.track_count
|
|
||||||
assert playlist.cover == cover
|
assert playlist.cover == cover
|
||||||
assert playlist.made_for == made_for
|
assert playlist.made_for == made_for
|
||||||
assert playlist.play_counter == play_counter
|
assert playlist.play_counter == play_counter
|
||||||
|
assert playlist.playlist_absence == playlist_absence
|
||||||
|
|
||||||
def test_de_json_all(self, client, user, cover, made_for, track_short, play_counter, playlist_absence):
|
def test_de_json_all(self, client, user, cover, made_for, track_short, play_counter, playlist_absence,
|
||||||
|
playlist_without_nested_playlists):
|
||||||
json_dict = {'owner': user.to_dict(), 'uid': self.uid, 'kind': self.kind, 'title': self.title,
|
json_dict = {'owner': user.to_dict(), 'uid': self.uid, 'kind': self.kind, 'title': self.title,
|
||||||
'track_count': self.track_count, 'cover': cover.to_dict(), 'made_for': made_for.to_dict(),
|
'track_count': self.track_count, 'cover': cover.to_dict(), 'made_for': made_for.to_dict(),
|
||||||
'play_counter': play_counter.to_dict(), 'playlist_absence': playlist_absence.to_dict(),
|
'play_counter': play_counter.to_dict(), 'playlist_absence': playlist_absence.to_dict(),
|
||||||
|
@ -91,10 +104,14 @@ class TestPlaylist:
|
||||||
'modified': self.modified, 'available': self.available, 'is_banner': self.is_banner,
|
'modified': self.modified, 'available': self.available, 'is_banner': self.is_banner,
|
||||||
'is_premiere': self.is_premiere, 'duration_ms': self.duration_ms, 'og_image': self.og_image,
|
'is_premiere': self.is_premiere, 'duration_ms': self.duration_ms, 'og_image': self.og_image,
|
||||||
'tracks': [track_short.to_dict()], 'prerolls': self.prerolls, 'likes_count': self.likes_count,
|
'tracks': [track_short.to_dict()], 'prerolls': self.prerolls, 'likes_count': self.likes_count,
|
||||||
'generated_playlist_type': self.generated_playlist_type,
|
'generated_playlist_type': self.generated_playlist_type, 'url_part': self.url_part,
|
||||||
'animated_cover_uri': self.animated_cover_uri, 'ever_played': self.ever_played,
|
'animated_cover_uri': self.animated_cover_uri, 'ever_played': self.ever_played,
|
||||||
'description': self.description, 'description_formatted': self.description_formatted,
|
'description': self.description, 'description_formatted': self.description_formatted,
|
||||||
'is_for_from': self.is_for_from, 'regions': self.regions}
|
'is_for_from': self.is_for_from, 'regions': self.regions, 'og_title': self.og_title,
|
||||||
|
'image': self.image, 'id_for_from': self.id_for_from, 'background_color': self.background_color,
|
||||||
|
'text_color': self.text_color, 'cover_without_text': cover.to_dict(),
|
||||||
|
'similar_playlists': [playlist_without_nested_playlists.to_dict()],
|
||||||
|
'last_owner_playlists': [playlist_without_nested_playlists.to_dict()]}
|
||||||
playlist = Playlist.de_json(json_dict, client)
|
playlist = Playlist.de_json(json_dict, client)
|
||||||
|
|
||||||
assert playlist.owner == user
|
assert playlist.owner == user
|
||||||
|
@ -111,6 +128,7 @@ class TestPlaylist:
|
||||||
assert playlist.snapshot == self.snapshot
|
assert playlist.snapshot == self.snapshot
|
||||||
assert playlist.visibility == self.visibility
|
assert playlist.visibility == self.visibility
|
||||||
assert playlist.collective == self.collective
|
assert playlist.collective == self.collective
|
||||||
|
assert playlist.url_part == self.url_part
|
||||||
assert playlist.created == self.created
|
assert playlist.created == self.created
|
||||||
assert playlist.modified == self.modified
|
assert playlist.modified == self.modified
|
||||||
assert playlist.available == self.available
|
assert playlist.available == self.available
|
||||||
|
@ -118,9 +136,17 @@ class TestPlaylist:
|
||||||
assert playlist.is_premiere == self.is_premiere
|
assert playlist.is_premiere == self.is_premiere
|
||||||
assert playlist.duration_ms == self.duration_ms
|
assert playlist.duration_ms == self.duration_ms
|
||||||
assert playlist.og_image == self.og_image
|
assert playlist.og_image == self.og_image
|
||||||
|
assert playlist.og_title == self.og_title
|
||||||
|
assert playlist.image == self.image
|
||||||
|
assert playlist.cover_without_text == cover
|
||||||
|
assert playlist.background_color == self.background_color
|
||||||
|
assert playlist.text_color == self.text_color
|
||||||
|
assert playlist.id_for_from == self.id_for_from
|
||||||
assert playlist.tracks == [track_short]
|
assert playlist.tracks == [track_short]
|
||||||
assert playlist.prerolls == self.prerolls
|
assert playlist.prerolls == self.prerolls
|
||||||
assert playlist.likes_count == self.likes_count
|
assert playlist.likes_count == self.likes_count
|
||||||
|
assert playlist.similar_playlists == [playlist_without_nested_playlists]
|
||||||
|
assert playlist.last_owner_playlists == [playlist_without_nested_playlists]
|
||||||
assert playlist.generated_playlist_type == self.generated_playlist_type
|
assert playlist.generated_playlist_type == self.generated_playlist_type
|
||||||
assert playlist.animated_cover_uri == self.animated_cover_uri
|
assert playlist.animated_cover_uri == self.animated_cover_uri
|
||||||
assert playlist.ever_played == self.ever_played
|
assert playlist.ever_played == self.ever_played
|
||||||
|
|
|
@ -21,7 +21,7 @@ class Playlist(YandexMusicObject):
|
||||||
cover (:obj:`yandex_music.Cover`): Обложка альбома.
|
cover (:obj:`yandex_music.Cover`): Обложка альбома.
|
||||||
made_for (:obj:`yandex_music.MadeFor`): Пользователь для которого был создан плейлист. Присутствует только у
|
made_for (:obj:`yandex_music.MadeFor`): Пользователь для которого был создан плейлист. Присутствует только у
|
||||||
персональных плейлистов.
|
персональных плейлистов.
|
||||||
play_counter (:obj:`yandex_music.PlayCounter`): Счетчик дней. Присутствует только у плейлиста дня.
|
play_counter (:obj:`yandex_music.PlayCounter`): Счётчик дней. Присутствует только у плейлиста дня.
|
||||||
playlist_absence (:obj:`yandex_music.PlaylistAbsence`): Причина отсутствия плейлиста.
|
playlist_absence (:obj:`yandex_music.PlaylistAbsence`): Причина отсутствия плейлиста.
|
||||||
uid (:obj:`int`): Идентификатор владельца плейлиста.
|
uid (:obj:`int`): Идентификатор владельца плейлиста.
|
||||||
kind (:obj:`int`): Идентификатор плейлиста.
|
kind (:obj:`int`): Идентификатор плейлиста.
|
||||||
|
@ -32,6 +32,7 @@ class Playlist(YandexMusicObject):
|
||||||
snapshot (:obj:`int`): Версия плейлиста. Увеличивается на 1 при каждом изменении.
|
snapshot (:obj:`int`): Версия плейлиста. Увеличивается на 1 при каждом изменении.
|
||||||
visibility (:obj:`str`): Видимость плейлиста.
|
visibility (:obj:`str`): Видимость плейлиста.
|
||||||
collective (:obj:`bool`): Есть ли у плейлиста соавторы.
|
collective (:obj:`bool`): Есть ли у плейлиста соавторы.
|
||||||
|
url_part (:obj:`str`): Часть ссылки на плейлист ('daily`).
|
||||||
created (:obj:`str`): Дата создания в формате ISO 8601.
|
created (:obj:`str`): Дата создания в формате ISO 8601.
|
||||||
modified (:obj:`str`): Дата последнего изменения в формате ISO 8601.
|
modified (:obj:`str`): Дата последнего изменения в формате ISO 8601.
|
||||||
available (:obj:`bool`): Доступен TODO.
|
available (:obj:`bool`): Доступен TODO.
|
||||||
|
@ -39,9 +40,17 @@ class Playlist(YandexMusicObject):
|
||||||
is_premiere (:obj:`bool`): Является ли премьерой TODO.
|
is_premiere (:obj:`bool`): Является ли премьерой TODO.
|
||||||
duration_ms (:obj:`int`): Длительность в миллисекундах.
|
duration_ms (:obj:`int`): Длительность в миллисекундах.
|
||||||
og_image (:obj:`str`): Ссылка на превью Open Graph.
|
og_image (:obj:`str`): Ссылка на превью Open Graph.
|
||||||
|
og_title (:obj:`str`): Заголовок Open Graph.
|
||||||
|
image (:obj:`str`): Изображение TODO.
|
||||||
|
cover_without_text (:obj:`yandex_music.Cover`): Обложка без текста.
|
||||||
|
background_color (:obj:`str`): Цвет заднего фона TODO.
|
||||||
|
text_color (:obj:`str`): Цвет текста TODO.
|
||||||
|
id_for_from (:obj:`str`): Откуда пришло событие (уникальный идентификатор объекта) TODO.
|
||||||
tracks (:obj:`list` из :obj:`yandex_music.TrackShort`): Список треков.
|
tracks (:obj:`list` из :obj:`yandex_music.TrackShort`): Список треков.
|
||||||
prerolls (:obj:`list`): Прерол, проигрываемый перед плейлистом. Присутствует только у персональных плейлистов.
|
prerolls (:obj:`list`): Прерол, проигрываемый перед плейлистом. Присутствует только у персональных плейлистов.
|
||||||
likes_count (:obj:`int`): Количество лайков.
|
likes_count (:obj:`int`): Количество лайков.
|
||||||
|
similar_playlists (:obj:`list` из :obj:`yandex_music.Playlist`): Похожие плейлисты.
|
||||||
|
last_owner_playlists (:obj:`list` из :obj:`yandex_music.Playlist`): Последние плейлисты владельца.
|
||||||
generated_playlist_type (:obj:`str`): Тип генерируемого плейлиста.
|
generated_playlist_type (:obj:`str`): Тип генерируемого плейлиста.
|
||||||
animated_cover_uri (:obj:`str`): Ссылка на анимированную обложку.
|
animated_cover_uri (:obj:`str`): Ссылка на анимированную обложку.
|
||||||
ever_played (:obj:`str`): Играл ли этот плейлист. Присутствует только у персональных плейлистов. TODO
|
ever_played (:obj:`str`): Играл ли этот плейлист. Присутствует только у персональных плейлистов. TODO
|
||||||
|
@ -54,9 +63,9 @@ class Playlist(YandexMusicObject):
|
||||||
Args:
|
Args:
|
||||||
owner (:obj:`yandex_music.User`, optional): Владелец плейлиста.
|
owner (:obj:`yandex_music.User`, optional): Владелец плейлиста.
|
||||||
cover (:obj:`yandex_music.Cover`, optional): Обложка альбома.
|
cover (:obj:`yandex_music.Cover`, optional): Обложка альбома.
|
||||||
made_for (:obj:`yandex_music.MadeFor`, optional): Пользователь для которого был создан плейлист. Присутствует только у
|
made_for (:obj:`yandex_music.MadeFor`, optional): Пользователь для которого был создан плейлист. Присутствует
|
||||||
персональных плейлистов.
|
только у персональных плейлистов.
|
||||||
play_counter (:obj:`yandex_music.PlayCounter`, optional): Счетчик дней. Присутствует только у плейлиста дня.
|
play_counter (:obj:`yandex_music.PlayCounter`, optional): Счётчик дней. Присутствует только у плейлиста дня.
|
||||||
playlist_absence (:obj:`yandex_music.PlaylistAbsence`, optional): Причина отсутствия плейлиста.
|
playlist_absence (:obj:`yandex_music.PlaylistAbsence`, optional): Причина отсутствия плейлиста.
|
||||||
uid (:obj:`int`, optional): Идентификатор владельца плейлиста.
|
uid (:obj:`int`, optional): Идентификатор владельца плейлиста.
|
||||||
kind (:obj:`int`, optional): Идентификатор плейлиста.
|
kind (:obj:`int`, optional): Идентификатор плейлиста.
|
||||||
|
@ -67,6 +76,7 @@ class Playlist(YandexMusicObject):
|
||||||
snapshot (:obj:`int`, optional): Версия плейлиста. Увеличивается на 1 при каждом изменении.
|
snapshot (:obj:`int`, optional): Версия плейлиста. Увеличивается на 1 при каждом изменении.
|
||||||
visibility (:obj:`str`, optional): Видимость плейлиста.
|
visibility (:obj:`str`, optional): Видимость плейлиста.
|
||||||
collective (:obj:`bool`, optional): Есть ли у плейлиста соавторы.
|
collective (:obj:`bool`, optional): Есть ли у плейлиста соавторы.
|
||||||
|
url_part (:obj:`str`, optional): Часть ссылки на плейлист ('daily`).
|
||||||
created (:obj:`str`, optional): Дата создания в формате ISO 8601.
|
created (:obj:`str`, optional): Дата создания в формате ISO 8601.
|
||||||
modified (:obj:`str`, optional): Дата последнего изменения в формате ISO 8601.
|
modified (:obj:`str`, optional): Дата последнего изменения в формате ISO 8601.
|
||||||
available (:obj:`bool`, optional): Доступен TODO.
|
available (:obj:`bool`, optional): Доступен TODO.
|
||||||
|
@ -74,10 +84,18 @@ class Playlist(YandexMusicObject):
|
||||||
is_premiere (:obj:`bool`, optional): Является ли премьерой TODO.
|
is_premiere (:obj:`bool`, optional): Является ли премьерой TODO.
|
||||||
duration_ms (:obj:`int`, optional): Длительность в миллисекундах.
|
duration_ms (:obj:`int`, optional): Длительность в миллисекундах.
|
||||||
og_image (:obj:`str`, optional): Ссылка на превью Open Graph.
|
og_image (:obj:`str`, optional): Ссылка на превью Open Graph.
|
||||||
|
og_title (:obj:`str`, optional): Заголовок Open Graph.
|
||||||
|
image (:obj:`str`, optional): Изображение TODO.
|
||||||
|
cover_without_text (:obj:`yandex_music.Cover`, optional): Обложка без текста.
|
||||||
|
background_color (:obj:`str`, optional): Цвет заднего фона TODO.
|
||||||
|
text_color (:obj:`str`, optional): Цвет текста TODO.
|
||||||
|
id_for_from (:obj:`str`, optional): Откуда пришло событие (уникальный идентификатор объекта) TODO.
|
||||||
tracks (:obj:`list` из :obj:`yandex_music.TrackShort`, optional): Список треков.
|
tracks (:obj:`list` из :obj:`yandex_music.TrackShort`, optional): Список треков.
|
||||||
prerolls (:obj:`list`, optional): Прерол, проигрываемый перед плейлистом. Присутствует только у персональных
|
prerolls (:obj:`list`, optional): Прерол, проигрываемый перед плейлистом. Присутствует только у персональных
|
||||||
плейлистов.
|
плейлистов.
|
||||||
likes_count (:obj:`int`, optional): Количество лайков.
|
likes_count (:obj:`int`, optional): Количество лайков.
|
||||||
|
similar_playlists (:obj:`list` из :obj:`yandex_music.Playlist`, optional): Похожие плейлисты.
|
||||||
|
last_owner_playlists (:obj:`list` из :obj:`yandex_music.Playlist`, optional): Последние плейлисты владельца.
|
||||||
generated_playlist_type (:obj:`str`, optional): Тип генерируемого плейлиста.
|
generated_playlist_type (:obj:`str`, optional): Тип генерируемого плейлиста.
|
||||||
animated_cover_uri (:obj:`str`, optional): Ссылка на анимированную обложку.
|
animated_cover_uri (:obj:`str`, optional): Ссылка на анимированную обложку.
|
||||||
ever_played (:obj:`str`, optional): Играл ли этот плейлист. Присутствует только у персональных плейлистов. TODO
|
ever_played (:obj:`str`, optional): Играл ли этот плейлист. Присутствует только у персональных плейлистов. TODO
|
||||||
|
@ -104,6 +122,7 @@ class Playlist(YandexMusicObject):
|
||||||
snapshot: Optional[int] = None,
|
snapshot: Optional[int] = None,
|
||||||
visibility: Optional[str] = None,
|
visibility: Optional[str] = None,
|
||||||
collective: Optional[bool] = None,
|
collective: Optional[bool] = None,
|
||||||
|
url_part: Optional[str] = None,
|
||||||
created: Optional[str] = None,
|
created: Optional[str] = None,
|
||||||
modified: Optional[str] = None,
|
modified: Optional[str] = None,
|
||||||
available: Optional[bool] = None,
|
available: Optional[bool] = None,
|
||||||
|
@ -111,9 +130,17 @@ class Playlist(YandexMusicObject):
|
||||||
is_premiere: Optional[bool] = None,
|
is_premiere: Optional[bool] = None,
|
||||||
duration_ms: Optional[int] = None,
|
duration_ms: Optional[int] = None,
|
||||||
og_image: Optional[str] = None,
|
og_image: Optional[str] = None,
|
||||||
|
og_title: Optional[str] = None,
|
||||||
|
image: Optional[str] = None,
|
||||||
|
cover_without_text: Optional['Cover'] = None,
|
||||||
|
background_color: Optional[str] = None,
|
||||||
|
text_color: Optional[str] = None,
|
||||||
|
id_for_from: Optional[str] = None,
|
||||||
tracks: List['TrackShort'] = None,
|
tracks: List['TrackShort'] = None,
|
||||||
prerolls: Optional[list] = None,
|
prerolls: Optional[list] = None,
|
||||||
likes_count: Optional[int] = None,
|
likes_count: Optional[int] = None,
|
||||||
|
similar_playlists: List['Playlist'] = None,
|
||||||
|
last_owner_playlists: List['Playlist'] = None,
|
||||||
generated_playlist_type: Optional[str] = None,
|
generated_playlist_type: Optional[str] = None,
|
||||||
animated_cover_uri: Optional[str] = None,
|
animated_cover_uri: Optional[str] = None,
|
||||||
ever_played: Optional[bool] = None,
|
ever_played: Optional[bool] = None,
|
||||||
|
@ -137,6 +164,7 @@ class Playlist(YandexMusicObject):
|
||||||
self.snapshot = snapshot
|
self.snapshot = snapshot
|
||||||
self.visibility = visibility
|
self.visibility = visibility
|
||||||
self.collective = collective
|
self.collective = collective
|
||||||
|
self.url_part = url_part
|
||||||
self.created = created
|
self.created = created
|
||||||
self.modified = modified
|
self.modified = modified
|
||||||
self.available = available
|
self.available = available
|
||||||
|
@ -144,6 +172,12 @@ class Playlist(YandexMusicObject):
|
||||||
self.is_premiere = is_premiere
|
self.is_premiere = is_premiere
|
||||||
self.duration_ms = duration_ms
|
self.duration_ms = duration_ms
|
||||||
self.og_image = og_image
|
self.og_image = og_image
|
||||||
|
self.og_title = og_title
|
||||||
|
self.image = image
|
||||||
|
self.cover_without_text = cover_without_text
|
||||||
|
self.background_color = background_color
|
||||||
|
self.text_color = text_color
|
||||||
|
self.id_for_from = id_for_from
|
||||||
self.tracks = tracks
|
self.tracks = tracks
|
||||||
self.prerolls = prerolls
|
self.prerolls = prerolls
|
||||||
self.likes_count = likes_count
|
self.likes_count = likes_count
|
||||||
|
@ -151,6 +185,8 @@ class Playlist(YandexMusicObject):
|
||||||
self.description = description
|
self.description = description
|
||||||
self.description_formatted = description_formatted
|
self.description_formatted = description_formatted
|
||||||
self.ever_played = ever_played
|
self.ever_played = ever_played
|
||||||
|
self.similar_playlists = similar_playlists
|
||||||
|
self.last_owner_playlists = last_owner_playlists
|
||||||
self.generated_playlist_type = generated_playlist_type
|
self.generated_playlist_type = generated_playlist_type
|
||||||
self.is_for_from = is_for_from
|
self.is_for_from = is_for_from
|
||||||
self.regions = regions
|
self.regions = regions
|
||||||
|
@ -241,10 +277,14 @@ class Playlist(YandexMusicObject):
|
||||||
from yandex_music import User, MadeFor, Cover, PlayCounter, TrackShort, PlaylistAbsence
|
from yandex_music import User, MadeFor, Cover, PlayCounter, TrackShort, PlaylistAbsence
|
||||||
data['owner'] = User.de_json(data.get('owner'), client)
|
data['owner'] = User.de_json(data.get('owner'), client)
|
||||||
data['cover'] = Cover.de_json(data.get('cover'), client)
|
data['cover'] = Cover.de_json(data.get('cover'), client)
|
||||||
|
data['cover_without_text'] = Cover.de_json(data.get('cover_without_text'), client)
|
||||||
data['made_for'] = MadeFor.de_json(data.get('made_for'), client)
|
data['made_for'] = MadeFor.de_json(data.get('made_for'), client)
|
||||||
data['tracks'] = TrackShort.de_list(data.get('tracks'), client)
|
data['tracks'] = TrackShort.de_list(data.get('tracks'), client)
|
||||||
data['play_counter'] = PlayCounter.de_json(data.get('play_counter'), client)
|
data['play_counter'] = PlayCounter.de_json(data.get('play_counter'), client)
|
||||||
|
|
||||||
|
data['similar_playlists'] = Playlist.de_list(data.get('similar_playlists'), client)
|
||||||
|
data['last_owner_playlists'] = Playlist.de_list(data.get('last_owner_playlists'), client)
|
||||||
|
|
||||||
data['playlist_absence'] = PlaylistAbsence.de_json(data.get('playlist_absence'), client) # на случай фикса
|
data['playlist_absence'] = PlaylistAbsence.de_json(data.get('playlist_absence'), client) # на случай фикса
|
||||||
if data.get('playlist_absense'): # очепятка яндуха
|
if data.get('playlist_absense'): # очепятка яндуха
|
||||||
data['playlist_absence'] = PlaylistAbsence.de_json(data.get('playlist_absense'), client)
|
data['playlist_absence'] = PlaylistAbsence.de_json(data.get('playlist_absense'), client)
|
||||||
|
@ -266,11 +306,7 @@ class Playlist(YandexMusicObject):
|
||||||
if not data:
|
if not data:
|
||||||
return []
|
return []
|
||||||
|
|
||||||
playlists = list()
|
return [cls.de_json(playlist, client) for playlist in data]
|
||||||
for playlist in data:
|
|
||||||
playlists.append(cls.de_json(playlist, client))
|
|
||||||
|
|
||||||
return playlists
|
|
||||||
|
|
||||||
# camelCase псевдонимы
|
# camelCase псевдонимы
|
||||||
|
|
||||||
|
@ -284,5 +320,5 @@ class Playlist(YandexMusicObject):
|
||||||
downloadAnimatedCover = download_animated_cover
|
downloadAnimatedCover = download_animated_cover
|
||||||
#: Псевдоним для :attr:`download_og_image`
|
#: Псевдоним для :attr:`download_og_image`
|
||||||
downloadOgImage = download_og_image
|
downloadOgImage = download_og_image
|
||||||
#: Псевдином для :attr:`fetch_tracks`
|
#: Псевдоним для :attr:`fetch_tracks`
|
||||||
fetchTracks = fetch_tracks
|
fetchTracks = fetch_tracks
|
||||||
|
|
読み込み中…
新しいイシューから参照