Skip to content

Commit

Permalink
Merge pull request #291 from MarshalX/development
Browse files Browse the repository at this point in the history
0.1.1 alpha
  • Loading branch information
MarshalX authored Mar 25, 2020
2 parents d668e16 + fffc1d3 commit 8046a09
Show file tree
Hide file tree
Showing 168 changed files with 5,611 additions and 1,414 deletions.
15 changes: 15 additions & 0 deletions .github/ISSUE_TEMPLATE/found-unknown-fields.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
name: Found unknown fields
about: Создать отчёт об неизвестном поле пришедшим от API
title: Новое неизвестное поле от API
labels: feature
assignees: ''

---

### По просьбе из WARNING'a прикладываю отладочную информацию ниже, которая поможет Вам в разработке:

```
your_copy_paste
```
3 changes: 2 additions & 1 deletion .github/workflows/codecov.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@ jobs:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py
pip install pipenv
pipenv install --dev --deploy --system
shell: bash
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/full_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@ jobs:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py
pip install pipenv
pipenv install --dev --deploy --system
shell: bash
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/pypi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@ jobs:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py
pip install pipenv twine
pipenv install --dev --deploy --system
shell: bash
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,8 @@ jobs:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py
pip install pipenv
pipenv install --dev --deploy --system
shell: bash
Expand Down
79 changes: 79 additions & 0 deletions CHANGES.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,85 @@
Список изменений
================

Версия 0.1.1
============

**25.03.2020**

**Закончено документирование всех классов и основных методов!**

**Переломные изменения**

- Классы отметок "мне нравится" для альбомов, плейлистов и исполнителей обобщены. Теперь представлены одним классом.
- Удаленные классы:
- ``ArtistsLikes``.
- ``AlbumsLikes``.
- ``PlaylistsLikes``.
- Новый класс: ``Like`` (поле ``type`` для определения содержимого).
- Изменено название пакета с ``status`` на ``account`` (`#195`_).
- Исправлено выбрасываемое исключение при таймауте:
- Прошлое исключение: ``TimeoutError`` (built-in).
- Новое исключение: ``TimedOut`` (``yandex_music.exceptions``).
- Удалены следующие файлы: ``requirements.txt``, ``requirements-dev.txt``, ``requirements-docs.txt``.

**Крупные изменения**

- Добавлено обнаружение новых полей с просьбой сообщить о них (`#216`_).
- Добавлена проверка на неизвестные поля.
- Добавлен вывод отладочной информации в виде warning'a.
- Добавлен шаблон issue для отправки логов.
- Добавлено поле ``type`` для класса ``SearchResult`` для определения типа результата поиска по объекту.
- Добавлены настройки пользователя (`#195`_):
- Добавлен класс ``UserSettings``.
- Добавлен метод для получения своих настроек (``account_settings``).
- Добавлен метод для получения настроек другого пользователя (``users_settings``).
- Добавлен метод для изменения настроек (``account_settings_set``).
- Добавлен возможность получить похожие треки (`#197`_):
- Добавлен класс ``TracksSimilar`` с полями трека и списка похожих треков.
- Добавлен метод для получения похожих треков (``tracks_similar``).
- Добавлены шоты от Алисы (`#185`_):
- Добавлен метод ``after_track`` в класс ``Client`` для получения контента для воспоризведения после трека (реклама, шот).
- Добавлены методы для загрузки обложки и аудиоверсии шота.
- Добавлены новые классы:
- ``Shot``
- ``ShotData``
- ``ShotEvent``
- ``ShotType``
- Добавлен метод для изменения видимости плейлиста (`#179`_).
- Добавлена поддержка Яндекс.Радио (`#20`_):
- Исправлена отправка фидбека.
- Написана инструкция по использованию (в доке к методу).
- Добавлен аругмент для перехода по цепочке треков.
- Добавлен метод для изменения настроек станции.

**Незначительные изменения и/или исправления**

- Убрано дублирование информации в документации (`#247`_).
- Добавленые новые поля в класс ``Track``: ``version``, ``remember_position`` (`#238`_).
- Добавлено исключение ``InvalidBitrate`` при попытке загрузить недопустимый трек по критериям (кодек, битрейт).
- Исправлено получение прямой ссылки на файл с кодеком AAC (`#237`_, `#25`_).
- Исправлено получение плейлиста с Алисой в лендинге (`#185`_).
- Исправлено название поля с ссылкой на источник в классе ``Description`` (с ``url`` на ``uri``).
- Исправлена десериализация несуществующего исполнителя.
- Добавлено поле ``version`` в класс ``Album`` (`#178`_).
- Поле ``picture`` класса ``Vinyl`` теперь опциональное.
- Поле ``week`` класса ``Ratings`` теперь опциональное.
- Поле ``product_id`` класса ``AutoRenewable`` теперь опциональное (`#182`_).
- Правки замечаний по codacy.

.. _`#216`: https://github.com/MarshalX/yandex-music-api/issues/216
.. _`#247`: https://github.com/MarshalX/yandex-music-api/issues/247
.. _`#237`: https://github.com/MarshalX/yandex-music-api/issues/237
.. _`#25`: https://github.com/MarshalX/yandex-music-api/issues/25
.. _`#238`: https://github.com/MarshalX/yandex-music-api/issues/238
.. _`#182`: https://github.com/MarshalX/yandex-music-api/issues/182
.. _`#195`: https://github.com/MarshalX/yandex-music-api/issues/195
.. _`#197`: https://github.com/MarshalX/yandex-music-api/issues/197
.. _`#20`: https://github.com/MarshalX/yandex-music-api/issues/20
.. _`#185`: https://github.com/MarshalX/yandex-music-api/issues/185
.. _`#179`: https://github.com/MarshalX/yandex-music-api/issues/179
.. _`#178`: https://github.com/MarshalX/yandex-music-api/issues/178

Версия 0.0.16
=============

Expand Down
2 changes: 1 addition & 1 deletion MANIFEST.in
Original file line number Diff line number Diff line change
@@ -1 +1 @@
include LICENSE requirements.txt
include LICENSE Pipfile.lock
107 changes: 98 additions & 9 deletions README.rst
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
[Pre-Alpha] Неофициальная Python библиотека для API Yandex Music
================================================================
[Alpha] Неофициальная Python библиотека для API Yandex Music
============================================================

Делаю то, что по определённым причинам не сделала компания Yandex.

Маленькое сообщество разработчиков общаются и помогают друг другу в `Telegram чатике <https://t.me/yandex_music_api>`_, присоединяйтесь!
Маленькое сообщество разработчиков общаются и помогают друг другу
в `Telegram чатике <https://tx.me/yandex_music_api>`_, присоединяйтесь!

.. image:: https://img.shields.io/pypi/v/yandex-music.svg
:target: https://pypi.org/project/yandex-music/
Expand Down Expand Up @@ -34,7 +35,7 @@
:alt: Лицензия LGPLv3

.. image:: https://img.shields.io/badge/telegram-чат-blue.svg
:target: https://t.me/yandex_music_api
:target: https://tx.me/yandex_music_api
:alt: Telegram чат


Expand All @@ -58,6 +59,20 @@

- `Получение помощи`_

- `Реализации на других языках`_

#. `C#`_

#. `PHP`_

#. `JavaScript`_

- `Разработанные проекты`_

#. `Плагин для Kodi`_

#. `Telegram бот-клиент`_

- `Благодарность`_

- `Лицензия`_
Expand All @@ -79,7 +94,8 @@
Доступ к вашим данным на Яндексе
--------------------------------

Значения констант `CLIENT_ID и CLIENT_SECRET <https://github.com/MarshalX/yandex-music-api/blob/master/yandex_music/client.py#L11>`_
Значения констант
`CLIENT_ID и CLIENT_SECRET <https://github.com/MarshalX/yandex-music-api/blob/master/yandex_music/client.py#L11>`_
позаимствовано у официального приложения-клиента сервиса Яндекс.Музыка из магазина
Microsoft Store. Так как API является закрытым и используется только внутри
компании Яндекс сейчас невозможно зарегистрировать своё собственное приложение на
Expand Down Expand Up @@ -264,23 +280,96 @@ music.yandex.ru/album/**1193829**/track/**10994777**
logger.setLevel(logging.DEBUG)
=============
============
Документация
=============
============

Документация ``yandex-music-api`` находится в стадии написания и расположена на
Документация ``yandex-music-api`` расположена на
`readthedocs.io <https://yandex-music.readthedocs.io/>`_.
Вашей отправной точкой должен быть класс ``Client``, а точнее его методы. Именно они выполняют все
запросы на API и возвращают Вам готовые объекты.
`Класс Client на readthedocs.io <https://yandex-music.readthedocs.io/ru/latest/yandex_music.client.html>`_.

================
Получение помощи
================

Получить помощь можно несколькими путями:

- Задать вопрос в `Telegram чатике <https://t.me/yandex_music_api>`_, где мы помогаем друг другу, присоединяйтесь!
- Задать вопрос в `Telegram чатике <https://tx.me/yandex_music_api>`_, где мы помогаем друг другу, присоединяйтесь!
- Сообщить о баге, предложить новую фичу или задать вопрос можно `создав issue <https://github.com/MarshalX/yandex-music-api/issues/new/choose>`_.
- Найти ответ на вопрос в `документации библиотеки <https://yandex-music.readthedocs.io/ru/latest/>`_.

===========================
Реализации на других языках
===========================

--
C#
--

Реализация с совершенно другим подходом, так как используется API для frontend'a,
а не мобильных и десктопных приложений:
`Winster332/Yandex.Music.Api <https://github.com/Winster332/Yandex.Music.Api>`_.

Автор не сильно проявляет активность, но появился форк, который продолжил начатое. Более того,
`@K1llMan <https://github.com/K1llMan>`_ (автор форка) планирует изменить эндпоинты с фронтовых на
те, что используются в данной библиотеке.
`K1llMan/Yandex.Music.Api <https://github.com/K1llMan/Yandex.Music.Api>`_

---
PHP
---

Частично переписанная текущая библиотека на PHP:
`LuckyWins/yandex-music-api <https://github.com/LuckyWins/yandex-music-api>`_.

----------
JavaScript
----------

API wrapper на Node.JS. Не обновлялся больше двух лет:
`itsmepetrov/yandex-music-api <https://github.com/itsmepetrov/yandex-music-api>`_.

=====================
Разработанные проекты
=====================

---------------
Плагин для Kodi
---------------

Плагин может проигрывать пользовательские плейлисты и плейлисты Яндекса, поиск по Яндекс Музыке, радио.

Сайт проекта: `ymkodi.ml <https://ymkodi.ml/>`_.

Исходный код: `kodi.plugin.yandex-music <https://github.com/Angel777d/kodi.plugin.yandex-music>`_

Автор: `@Angel777d <https://github.com/Angel777d>`_

.. image:: https://raw.githubusercontent.com/Angel777d/kodi.plugin.yandex-music/master/assets/img/kody_yandex_music_plugin.png
:target: https://ymkodi.ml/
:alt: Плагин для Kodi

-------------------
Telegram бот-клиент
-------------------

Неофициальный бот. Умные и ваши плейлисты, понравившиеся треки. Лайки, дизлайки, текста песен,
поиск, распознавание песен, похожие треки! Полноценный клиент на базе мессенджера.

Сайт проекта: `music-yandex-bot.ru <https://music-yandex-bot.ru/>`_

Username в Telegram: `@music_yandex_bot <https://tx.me/music_yandex_bot>`_

Статья на habr.com с описанием реализации: `Под капотом бота-клиента Яндекс.Музыки <https://habr.com/ru/post/487428/>`_

Автор: `@MarshalX <https://marshal.by/>`_

.. image:: https://hsto.org/webt/uv/4s/a3/uv4sa3pslohuzlmuzrjzteju2dk.png
:target: https://music-yandex-bot.ru/
:alt: Telegram бот-клиент

=============
Благодарность
=============
Expand Down
2 changes: 0 additions & 2 deletions docs/requirements-docs.txt

This file was deleted.

File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
15 changes: 15 additions & 0 deletions docs/source/yandex_music.account.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
Пакет yandex_music.account
==========================

.. toctree::

yandex_music.account.status
yandex_music.account.account
yandex_music.account.passport_phone
yandex_music.account.plus
yandex_music.account.permissions
yandex_music.account.subscription
yandex_music.account.auto_renewable
yandex_music.account.product
yandex_music.account.price
yandex_music.account.user_settings
File renamed without changes.
6 changes: 6 additions & 0 deletions docs/source/yandex_music.account.user_settings.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
yandex_music.UserSettings
=========================

.. autoclass:: yandex_music.UserSettings
:members:
:show-inheritance:
1 change: 0 additions & 1 deletion docs/source/yandex_music.artist.rst
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,3 @@
yandex_music.artist.brief_info
yandex_music.artist.artist_tracks
yandex_music.artist.artist_albums
yandex_music.artist.pager
2 changes: 2 additions & 0 deletions docs/source/yandex_music.base.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,6 @@ yandex_music.YandexMusicObject
.. autoclass:: yandex_music.YandexMusicObject
:members:
:undoc-members:
:special-members:
:private-members:
:show-inheritance:
53 changes: 53 additions & 0 deletions docs/source/yandex_music.exceptions.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
Исключения yandex_music.exceptions
==================================

.. autoclass:: yandex_music.exceptions.YandexMusicError
:members:
:undoc-members:
:show-inheritance:

.. autoclass:: yandex_music.exceptions.InvalidToken
:members:
:undoc-members:
:show-inheritance:

.. autoclass:: yandex_music.exceptions.Unauthorized
:members:
:undoc-members:
:show-inheritance:

.. autoclass:: yandex_music.exceptions.InvalidBitrate
:members:
:undoc-members:
:show-inheritance:

.. autoclass:: yandex_music.exceptions.Captcha
:members:
:undoc-members:
:show-inheritance:

.. autoclass:: yandex_music.exceptions.CaptchaRequired
:members:
:undoc-members:
:show-inheritance:

.. autoclass:: yandex_music.exceptions.CaptchaWrong
:members:
:undoc-members:
:show-inheritance:

.. autoclass:: yandex_music.exceptions.NetworkError
:members:
:undoc-members:
:show-inheritance:

.. autoclass:: yandex_music.exceptions.BadRequest
:members:
:undoc-members:
:show-inheritance:

.. autoclass:: yandex_music.exceptions.TimedOut
:members:
:undoc-members:
:show-inheritance:

Loading

0 comments on commit 8046a09

Please sign in to comment.