From 773276b526795c6ff5b1752a953ab84599ac19a4 Mon Sep 17 00:00:00 2001 From: Il`ya Semyonov Date: Wed, 6 May 2020 16:16:17 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=20=D0=B2=D1=82=D0=BE=D1=80=D0=BE=D0=B9=20=D0=B2=D0=B0?= =?UTF-8?q?=D1=80=D0=B8=D0=B0=D0=BD=D1=82=20=D0=BE=D1=82=D0=BF=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=BA=D0=B8=20=D0=B7=D0=B0=D0=BF=D1=80=D0=BE=D1=81=D0=B0?= =?UTF-8?q?=20=D0=BD=D0=B0=20=D0=BF=D0=BE=D0=BB=D1=83=D1=87=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=BF=D0=BB=D0=B5=D0=B9=D0=BB=D0=B8=D1=81=D1=82?= =?UTF-8?q?=D0=B0=20=D0=B2=20users=5Fplaylists=20=D0=BC=D0=B5=D1=82=D0=BE?= =?UTF-8?q?=D0=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- yandex_music/client.py | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/yandex_music/client.py b/yandex_music/client.py index f30994b..404a81c 100644 --- a/yandex_music/client.py +++ b/yandex_music/client.py @@ -723,9 +723,12 @@ class Client(YandexMusicObject): @log def users_playlists(self, kind: Union[List[Union[str, int]], str, int], user_id: Union[str, int] = None, - timeout: Union[int, float] = None, *args, **kwargs) -> List[Playlist]: + timeout: Union[int, float] = None, *args, **kwargs) -> Union[Playlist, List[Playlist]]: """Получение плейлиста или списка плейлистов по уникальным идентификаторам. + Note: + Если передан один `kind`, то вернётся не список плейлистов, а один плейлист. + Args: kind (:obj:`str` | :obj:`int` | :obj:`list` из :obj:`str` | :obj:`int`): Уникальный идентификатор плейлиста или их список. @@ -735,7 +738,8 @@ class Client(YandexMusicObject): **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). Returns: - :obj:`list` из :obj:`yandex_music.Playlist` | :obj:`None`: Плейлист или :obj:`None`. + :obj:`list` из :obj:`yandex_music.Playlist` | :obj:`yandex_music.Playlist` | :obj:`None`: + Список плейлистов или плейлист, иначе :obj:`None`. Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. @@ -744,15 +748,21 @@ class Client(YandexMusicObject): if user_id is None and self.me is not None: user_id = self.me.account.uid - url = f'{self.base_url}/users/{user_id}/playlists' + if isinstance(kind, list): + url = f'{self.base_url}/users/{user_id}/playlists' - data = { - 'kinds': kind - } + data = { + 'kinds': kind + } - result = self._request.post(url, data, timeout=timeout, *args, **kwargs) + result = self._request.post(url, data, timeout=timeout, *args, **kwargs) - return Playlist.de_list(result, self) + return Playlist.de_list(result, self) + else: + url = f'{self.base_url}/users/{user_id}/playlists/{kind}' + result = self._request.get(url, timeout=timeout, *args, **kwargs) + + return Playlist.de_json(result, self) @log def users_playlists_create(self, title: str, visibility: str = 'public', user_id: Union[str, int] = None,