From 88b67c307de11ff70b46583f589b52a521544db7 Mon Sep 17 00:00:00 2001 From: Marshal Date: Tue, 9 Jul 2019 08:54:25 +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=D1=8B=20=D0=B1=D0=B0=D0=B7=D0=BE=D0=B2=D1=8B=D0=B5=20?= =?UTF-8?q?=D0=BF=D1=80=D0=B8=D0=BC=D0=B5=D1=80=D1=8B=20=D0=B2=20ReadMe=20?= =?UTF-8?q?https://github.com/MarshalX/yandex-music-api/issues/2.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.rst | 52 ++++++++++++++++++++++++++++++---- yandex_music/status/account.py | 2 +- yandex_music/track/track.py | 2 +- 3 files changed, 49 insertions(+), 7 deletions(-) diff --git a/README.rst b/README.rst index b4e87e9..031a9a1 100644 --- a/README.rst +++ b/README.rst @@ -1,5 +1,5 @@ -Неофициальная Python библиотека для API Yandex Music -==================================================== +[Pre-Alpha] Неофициальная Python библиотека для API Yandex Music +================================================================ Делаю то, что по каким-то причинам не сделала компания Yandex. @@ -77,9 +77,52 @@ Начало работы ============= -Полезные ссылки: +Приступив к работе первом делом необходимо создать экземпляр клиента +введя данные для авторизации. Такими данными может служить OAuth токен или +логин с паролем. -- `Документация yandex-music-api `_ +Авторизация по логину и паролю: +.. code:: python + + from yandex_music.client import Client + + client = Client('example@yandex.com', 'password') + +Авторизация по токену: +.. code:: python + + from yandex_music.client import Client + + client = Client.from_token('token') + +После успешного создания клиента Вы вольны в выборе необходимого метода +из API. Все они доступны у объекта класса Client. Подробнее в методах клиента +в `документации `_. + +Пример получения первого трека из плейлиста "Мне нравится" и его загрузка: +.. code:: python + + from yandex_music.client import Client + + client = Client('example@yandex.com', 'password') + client.users_likes_tracks()[0].track.download('example.mp3') + +В примере выше клиент получает список треков которые были отмечены как +понравившиеся. API возвращает объект +`TracksList `_ +в котором содержится список с треками класса +`TrackShort `_. +Данные класс содержит наиважнейшую информацию о треке и никаких подробностей, +поэтому для получения полной версии трека со всей информацией необходимо +обратиться к свойству track. Затем можно скачать трек методом download(). + +Пример получения треков по ID: +.. code:: python + + from yandex_music.client import Client + + client = Client('example@yandex.com', 'password') + client.tracks(['10994777:1193829', '40133452:5206873', '48966383:6693286', '51385674:7163467']) -------------------- Изучение по примерам @@ -121,7 +164,6 @@ logger.setLevel(logging.DEBUG) - ============= Документация ============= diff --git a/yandex_music/status/account.py b/yandex_music/status/account.py index 4041bf7..efd48e1 100644 --- a/yandex_music/status/account.py +++ b/yandex_music/status/account.py @@ -71,11 +71,11 @@ class Account(YandexMusicObject): self.second_name = second_name self.first_name = first_name self.display_name = display_name - self.birthday = datetime.fromisoformat(birthday) if birthday else None self.service_available = service_available self.hosted_user = hosted_user self.passport_phones = passport_phones + self.birthday = datetime.fromisoformat(birthday) if birthday else None self.registered_at = datetime.fromisoformat(registered_at) if registered_at else registered_at self.has_info_for_app_metrica = has_info_for_app_metrica diff --git a/yandex_music/track/track.py b/yandex_music/track/track.py index 625cbb4..1ea1f56 100644 --- a/yandex_music/track/track.py +++ b/yandex_music/track/track.py @@ -62,7 +62,7 @@ class Track(YandexMusicObject): return self.download_info def download_cover(self, filename, size='200x200'): - self.client._request.download(self.cover_uri.replace('%%', size), filename) + self.client.request.download(self.cover_uri.replace('%%', size), filename) def download(self, filename, codec='mp3', bitrate_in_kbps=192): if self.download_info is None: