From 6db8f8562b83b9b70a76b85a89f3860b1a05d7a4 Mon Sep 17 00:00:00 2001 From: "Ilya (Marshal)" Date: Mon, 31 Oct 2022 16:12:59 +0100 Subject: [PATCH] =?UTF-8?q?=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D1=81=D1=81=D1=8B=D0=BB=D0=BA=D0=B8=20=D0=BD=D0=B0=20=D0=B7?= =?UTF-8?q?=D0=B0=D0=B4=D0=B0=D1=87=D0=B8=20=D0=BA=20TODO=20=D0=BD=D0=B5?= =?UTF-8?q?=20=D1=81=D0=B2=D1=8F=D0=B7=D0=B0=D0=BD=D0=BD=D1=8B=D1=85=20?= =?UTF-8?q?=D1=81=20=D0=B4=D0=BE=D0=BA=D1=83=D0=BC=D0=B5=D0=BD=D1=82=D0=B0?= =?UTF-8?q?=D1=86=D0=B8=D0=B5=D0=B9=20(close=20#549)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- yandex_music/client.py | 12 +++++++----- yandex_music/client_async.py | 12 +++++++----- yandex_music/exceptions.py | 1 + yandex_music/playlist/case_forms.py | 2 +- yandex_music/playlist/tag.py | 1 + yandex_music/playlist/tag_result.py | 1 + yandex_music/utils/difference.py | 8 ++++++-- 7 files changed, 24 insertions(+), 13 deletions(-) diff --git a/yandex_music/client.py b/yandex_music/client.py index cd97b73..e60345e 100644 --- a/yandex_music/client.py +++ b/yandex_music/client.py @@ -227,8 +227,6 @@ class Client(YandexMusicObject): if not data: data = {param: str(value)} - # TODO (MarshalX) значения в data типа bool должны быть приведены к str при работе с async клиентом. - result = self._request.post(url, data=data, *args, **kwargs) return UserSettings.de_json(result, self) @@ -366,7 +364,8 @@ class Client(YandexMusicObject): url = f'{self.base_url}/landing3' result = self._request.get(url, {'blocks': blocks, 'eitherUserId': '10254713668400548221'}, *args, **kwargs) - # TODO что тут делает константа с моим User ID + # TODO (MarshalX) что тут делает константа с чьим-то User ID + # https://github.com/MarshalX/yandex-music-api/issues/553 return Landing.de_json(result, self) @@ -1146,6 +1145,7 @@ class Client(YandexMusicObject): url = f'{self.base_url}/rotor/stations/list' # TODO (MarshalX) почему тут константный 'ru' когда есть поддержка выбора языка клиентом + # https://github.com/MarshalX/yandex-music-api/issues/554 result = self._request.get(url, {'language': language}, *args, **kwargs) @@ -1358,7 +1358,7 @@ class Client(YandexMusicObject): station: str, mood_energy: str, diversity: str, - language: str = 'not-russian', # TODO (MarshalX) почему не any + language: str = 'not-russian', # TODO (MarshalX) почему не any https://github.com/MarshalX/yandex-music-api/issues/555 type_: str = 'rotor', *args, **kwargs, @@ -1689,7 +1689,8 @@ class Client(YandexMusicObject): Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - # TODO (Marshal) что за True. Переделать на named argument + # TODO (MarshalX) что за True. Переделать на named argument + # https://github.com/MarshalX/yandex-music-api/issues/550 return self._like_action('artist', artist_ids, True, user_id, *args, **kwargs) @log @@ -2261,6 +2262,7 @@ class Client(YandexMusicObject): result = self._request.get(url, params=params, *args, **kwargs) # TODO (MarshalX) судя по всему ручка ещё возвращает рекламу после треков для пользователей без подписки. + # https://github.com/MarshalX/yandex-music-api/issues/557 return ShotEvent.de_json(result.get('shot_event'), self) @log diff --git a/yandex_music/client_async.py b/yandex_music/client_async.py index 129130a..b98f3d9 100644 --- a/yandex_music/client_async.py +++ b/yandex_music/client_async.py @@ -231,8 +231,6 @@ class ClientAsync(YandexMusicObject): if not data: data = {param: str(value)} - # TODO (MarshalX) значения в data типа bool должны быть приведены к str при работе с async клиентом. - result = await self._request.post(url, data=data, *args, **kwargs) return UserSettings.de_json(result, self) @@ -372,7 +370,8 @@ class ClientAsync(YandexMusicObject): result = await self._request.get( url, {'blocks': blocks, 'eitherUserId': '10254713668400548221'}, *args, **kwargs ) - # TODO что тут делает константа с моим User ID + # TODO (MarshalX) что тут делает константа с чьим-то User ID + # https://github.com/MarshalX/yandex-music-api/issues/553 return Landing.de_json(result, self) @@ -1156,6 +1155,7 @@ class ClientAsync(YandexMusicObject): url = f'{self.base_url}/rotor/stations/list' # TODO (MarshalX) почему тут константный 'ru' когда есть поддержка выбора языка клиентом + # https://github.com/MarshalX/yandex-music-api/issues/554 result = await self._request.get(url, {'language': language}, *args, **kwargs) @@ -1368,7 +1368,7 @@ class ClientAsync(YandexMusicObject): station: str, mood_energy: str, diversity: str, - language: str = 'not-russian', # TODO (MarshalX) почему не any + language: str = 'not-russian', # TODO (MarshalX) почему не any https://github.com/MarshalX/yandex-music-api/issues/555 type_: str = 'rotor', *args, **kwargs, @@ -1699,7 +1699,8 @@ class ClientAsync(YandexMusicObject): Raises: :class:`yandex_music.exceptions.YandexMusicError`: Базовое исключение библиотеки. """ - # TODO (Marshal) что за True. Переделать на named argument + # TODO (MarshalX) что за True. Переделать на named argument + # https://github.com/MarshalX/yandex-music-api/issues/550 return await self._like_action('artist', artist_ids, True, user_id, *args, **kwargs) @log @@ -2277,6 +2278,7 @@ class ClientAsync(YandexMusicObject): result = await self._request.get(url, params=params, *args, **kwargs) # TODO (MarshalX) судя по всему ручка ещё возвращает рекламу после треков для пользователей без подписки. + # https://github.com/MarshalX/yandex-music-api/issues/557 return ShotEvent.de_json(result.get('shot_event'), self) @log diff --git a/yandex_music/exceptions.py b/yandex_music/exceptions.py index 3d128e3..1162210 100644 --- a/yandex_music/exceptions.py +++ b/yandex_music/exceptions.py @@ -9,6 +9,7 @@ class UnauthorizedError(YandexMusicError): # TODO (MarshalX) На самом деле поиск еще происходит по кодеку +# https://github.com/MarshalX/yandex-music-api/issues/552 class InvalidBitrateError(YandexMusicError): """Класс исключения, вызываемого при попытке загрузки трека с недоступным битрейтом. diff --git a/yandex_music/playlist/case_forms.py b/yandex_music/playlist/case_forms.py index eba2bc6..21a658a 100644 --- a/yandex_music/playlist/case_forms.py +++ b/yandex_music/playlist/case_forms.py @@ -48,7 +48,7 @@ class CaseForms(YandexMusicObject): client (:obj:`yandex_music.Client`, optional): Клиент Yandex Music. Returns: - :obj:`yandex_music.CaseForms`: TODO. + :obj:`yandex_music.CaseForms`: Склонение имени. """ if not data: return None diff --git a/yandex_music/playlist/tag.py b/yandex_music/playlist/tag.py index 782f571..fd88b1e 100644 --- a/yandex_music/playlist/tag.py +++ b/yandex_music/playlist/tag.py @@ -49,3 +49,4 @@ class Tag(YandexMusicObject): return cls(client=client, **data) # TODO (MarshalX) add download_og_image shortcut? + # https://github.com/MarshalX/yandex-music-api/issues/556 diff --git a/yandex_music/playlist/tag_result.py b/yandex_music/playlist/tag_result.py index e810089..8579c58 100644 --- a/yandex_music/playlist/tag_result.py +++ b/yandex_music/playlist/tag_result.py @@ -47,3 +47,4 @@ class TagResult(YandexMusicObject): return cls(client=client, **data) # TODO (MarshalX) add fetch_playlists shortcut? + # https://github.com/MarshalX/yandex-music-api/issues/551 diff --git a/yandex_music/utils/difference.py b/yandex_music/utils/difference.py index 42e3c8d..71137b5 100644 --- a/yandex_music/utils/difference.py +++ b/yandex_music/utils/difference.py @@ -75,14 +75,18 @@ class Difference: Returns: :obj:`yandex_music.utils.difference.Difference`: Набор операций над плейлистом. """ - # TODO принимать TrackId, а так же строку и сплитить её по ":". При отсутствии album_id кидать исключение. + # TODO (MarshalX) принимать TrackId, а так же строку и сплитить её по ":". + # При отсутствии album_id кидать исключение. + # https://github.com/MarshalX/yandex-music-api/issues/558 if not isinstance(tracks, list): tracks = [tracks] operation = {'op': Operation.INSERT.value, 'at': at, 'tracks': []} for track in tracks: - track = type('TrackId', (), track) # TODO replace to normal TrackId object + # TODO (MarshalX) replace to normal TrackId object + # https://github.com/MarshalX/yandex-music-api/issues/558 + track = type('TrackId', (), track) operation['tracks'].append({'id': track.id, 'albumId': track.album_id})