diff --git a/yandex_music/client.py b/yandex_music/client.py index 404a81c..2e4ac8b 100644 --- a/yandex_music/client.py +++ b/yandex_music/client.py @@ -1763,6 +1763,41 @@ class Client(YandexMusicObject): """ return self._get_list('playlist', playlist_ids, timeout=timeout, *args, **kwargs) + @log + def playlists_collective_join(self, user_id: Union[str, int], token: str, timeout: Union[int, float] = None, + *args, **kwargs) -> bool: + """Получение плейлиста/плейлистов. + + Note: + Токен можно получить в Web-версии. Для этого, на странице плейлиста нужно нажать на + "Добавить соавтора". В полученной ссылке GET параметр `token` и будет являтся токеном для присоединения. + + В этом методе можно использовать только ID пользователя, с логином не работает. + + Args: + user_id (:obj:`str` | :obj:`int`): Владелец плейлиста. + token (:obj:`str`): Токен для присоединения. + timeout (:obj:`int` | :obj:`float`, optional): Если это значение указано, используется как время ожидания + ответа от сервера вместо указанного при создании пула. + **kwargs: Произвольные аргументы (будут переданы в запрос). + + Returns: + :obj:`bool`: :obj:`True` при успешном выполнении запроса, иначе :obj:`False`. + + Raises: + :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. + """ + url = f'{self.base_url}/playlists/collective/join' + + params = { + 'uid': user_id, + 'token': token + } + + result = self._request.post(url, params=params, timeout=timeout, *args, **kwargs) + + return result == 'ok' + @log def users_playlists_list(self, user_id: Union[str, int] = None, timeout: Union[int, float] = None, *args, **kwargs) -> List[Playlist]: @@ -2157,6 +2192,8 @@ class Client(YandexMusicObject): usersLikesAlbumsRemove = users_likes_albums_remove #: Псевдоним для :attr:`playlists_list` playlistsList = playlists_list + #: Псевдоним для :attr:`playlists_collective_join` + playlistsCollectiveJoin = playlists_collective_join #: Псевдоним для :attr:`users_playlists_list` usersPlaylistsList = users_playlists_list #: Псевдоним для :attr:`users_likes_tracks`