From 62e4d66966d74e477f93533b7c08a9ae62b5cc6b Mon Sep 17 00:00:00 2001 From: Il'ya Date: Sat, 24 Aug 2019 13:53:04 +0300 Subject: [PATCH] Feature issue 14 (#16) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Добавлена возможность инициализации и работы с клиентом без авторизации (https://github.com/MarshalX/yandex-music-api/issues/14). Авторизация через логин и пароль доступна через метод from_credentials у Client'a. Многие поля в account стали необязательными в связи с поддержкой клиентов без авторизации. Исправлен баг в request связанный с одинаковыми заголовками при разных объектах. Обновлена документация к методам. * Обновлена версия. * Правки в README и псевдоним для https://github.com/MarshalX/yandex-music-api/issues/14 * Правки в README https://github.com/MarshalX/yandex-music-api/issues/14 * Правки в README https://github.com/MarshalX/yandex-music-api/issues/14 --- README.rst | 51 +++++++++++++++++++++++++++++++----------- yandex_music/client.py | 2 ++ 2 files changed, 40 insertions(+), 13 deletions(-) diff --git a/README.rst b/README.rst index e4a69b3..7764da3 100644 --- a/README.rst +++ b/README.rst @@ -60,9 +60,11 @@ -------------------------------- Значения констант `CLIENT_ID и CLIENT_SECRET `_ -позаимствовано у официального приложения-клиента сервиса Яндекс.Музыка из магазина Microsoft Store. Так как API является -закрытым и используется только внутри компании Яндекс сейчас невозможно зарегистрировать своё собственное приложение на -`oauth.yandex.ru `_, а следовательно, использовать свои значения констант. +позаимствовано у официального приложения-клиента сервиса Яндекс.Музыка из магазина +Microsoft Store. Так как API является закрытым и используется только внутри +компании Яндекс сейчас невозможно зарегистрировать своё собственное приложение на +`oauth.yandex.ru `_, а следовательно, использовать свои +значения констант. ========= Установка @@ -88,9 +90,18 @@ Начало работы ============= -Приступив к работе первом делом необходимо создать экземпляр клиента -введя данные для авторизации. Такими данными может служить OAuth токен или -логин с паролем. +Приступив к работе первым делом необходимо создать экземпляр клиента. + +Инициализация клиента: + +.. code:: python + + from yandex_music.client import Client + + client = Client() + +Для доступа к своим личным данным следует авторизоваться. +Это можно осуществить через OAuth токен или логин с паролем. Авторизация по логину и паролю: @@ -98,7 +109,7 @@ from yandex_music.client import Client - client = Client('example@yandex.com', 'password') + client = Client.from_credentials('example@yandex.com', 'password') Авторизация по токену: @@ -107,6 +118,8 @@ from yandex_music.client import Client client = Client.from_token('token') + # или + client = Client('token') После успешного создания клиента Вы вольны в выборе необходимого метода из API. Все они доступны у объекта класса Client. Подробнее в методах клиента @@ -118,7 +131,7 @@ from yandex_music.client import Client - client = Client('example@yandex.com', 'password') + client = Client.from_credentials('example@yandex.com', 'password') client.users_likes_tracks()[0].track.download('example.mp3') В примере выше клиент получает список треков которые были отмечены как @@ -136,9 +149,13 @@ from yandex_music.client import Client - client = Client('example@yandex.com', 'password') + client = Client() client.tracks(['10994777:1193829', '40133452:5206873', '48966383:6693286', '51385674:7163467']) +В качестве ID трека выступает его уникальный номер и номер альбома. +Первым треком из примера является следующий трек: +music.yandex.ru/album/**1193829**/track/**10994777** + -------------------- Изучение по примерам -------------------- @@ -156,7 +173,8 @@ Логирование ----------- -Данная библиотека использует ``logging`` модуль. Чтобы настроить логирование на стандартный вывод, поместите +Данная библиотека использует ``logging`` модуль. Чтобы настроить логирование на +стандартный вывод, поместите .. code:: python @@ -166,7 +184,8 @@ в начало вашего скрипта. -Вы также можете использовать логирование в вашем приложении, вызвав ``logging.getLogger()`` и установить уровень какой Вы хотите: +Вы также можете использовать логирование в вашем приложении, вызвав +``logging.getLogger()`` и установить уровень какой Вы хотите: .. code:: python @@ -183,7 +202,8 @@ Документация ============= -Документация ``yandex-music-api`` находится в стадии написания и расположена на `readthedocs.io `_. +Документация ``yandex-music-api`` находится в стадии написания и расположена на +`readthedocs.io `_. ============= Благодарность @@ -195,4 +215,9 @@ Лицензия ======== -Вы можете копировать, распространять и модифицировать программное обеспечение при условии, что модификации описаны и лицензированы бесплатно в соответствии с `LGPL-3 `_. Произведения производных (включая модификации или что-либо статически связанное с библиотекой) могут распространяться только в соответствии с LGPL-3, но приложения, которые используют библиотеку, необязательно. +Вы можете копировать, распространять и модифицировать программное обеспечение +при условии, что модификации описаны и лицензированы бесплатно в соответствии +с `LGPL-3 `_. Произведения +производных (включая модификации или что-либо статически связанное с библиотекой) +могут распространяться только в соответствии с LGPL-3, но приложения, которые +используют библиотеку, необязательно. diff --git a/yandex_music/client.py b/yandex_music/client.py index 8fbb573..ae3b674 100644 --- a/yandex_music/client.py +++ b/yandex_music/client.py @@ -926,6 +926,8 @@ class Client(YandexMusicObject): # camelCase псевдонимы + """Псевдоним для :attr:`from_credentials`""" + fromCredentials = from_credentials """Псевдоним для :attr:`from_token`""" fromToken = from_token """Псевдоним для :attr:`generate_token_by_username_and_password`"""