CHANGES теперь в формате MD вместо RST

このコミットが含まれているのは:
Ilya (Marshal) 2022-11-23 01:14:44 +02:00
コミット 693a7fe2d2
6個のファイルの変更361行の追加422行の削除

356
CHANGES.md ノーマルファイル
ファイルの表示

@ -0,0 +1,356 @@
# Список изменений
## Версия 2.1.0
**XX.XX.202X**
TODO
**Крупные изменения**
- В модели добавлены методы `download_bytes` и `download_bytes_async`, для получения файлов в виде байтов ([#539](https://github.com/MarshalX/yandex-music-api/issues/539)).
**Незначительные изменения и/или исправления**
- Исправлены методы-сокращения класса Playlist (like, dislike) ([#516](https://github.com/MarshalX/yandex-music-api/pull/516)).
## Версия 2.0.0
**23.02.2022**
**Поддержка asyncio и модели на dataclasses**
**Переломные изменения**
- Убрана поддержка `Python 3.6`.
- Удалено получение авторизационного токена по логину и паролю (метод `from_credentials` класса `Client`).
- Удалена возможность задать свой обработчик на полученные неизвестные поля от API (аргумент `report_new_fields_callback` конструктора класса `Client`.
- Удалён аргумент `fetch_account_status` из конструктора класса `Client`. Теперь необходимо вызывать метод `init` для получения ID аккаунта который будет использоваться в последующих запросах. В противном случае передача `user_id` при вызове многих методов класса `Client` становится обязательной.
- Исключение `BadRequest` переименовано в `BadRequestError`.
- Исключение `Unauthorized` переименовано в `UnauthorizedError`.
- Исключение `InvalidBitrate` переименовано в `InvalidBitrateError`.
- Исключение `TimedOut` переименовано в `TimedOutError`.
- Свойство `result` класса `Response` удалено. Вместо него добавлен метод `get_result`.
- Свойство `error` класса `Response` удалено. Вместо него добавлен метоl `get_error`.
- В JSON представлении моделей к полям, чьё имя совпадает с именем стандартных функций, больше не добавляется нижнее подчеркивание в конец (пример: `id`, а не `id_`; `max`, а не `max_`). Теперь нижнее подчеркивание добавляется только к зарезервированным словам (пример: `from` будет `from_`).
**Крупные изменения**
- Добавлена асинхронная версия клиента и всех методов-сокращений (класс `ClientAsync`).
- Добавлено новое исключение `NotFoundError` (наследник `NetworkError`). Будет сгенерировано при получении статус кода 404.
- Проект больше не использует `pipenv`.
- Зависимости проекта больше не требуют конкретных версий.
- Для генерации исходных файлов `Sphinx` теперь используется `sphinx-apidoc`.
**Незначительные изменения и/или исправления**
- Исправлена обработка серверных ошибок которые вернулись в отличном от JSON формате.
- Исправлена обработка серверных ошибок метода `search` класса `Client`.
- Предупреждения о пришедших неизвестных полях от API отключены по умолчанию.
- Используется английская локализация `Sphinx`.
- Изменена тема документации.
## Версия 1.0.0
**06.02.2021**
**Стабильная версия библиотеки**
**Переломные изменения**
- Поле `error` класса `Artist` теперь называется `reason`.
- Метод `users_playlists` класса `Client` теперь возвращает один объект плейлиста, когда был передан один `kind`. При передаче списка в `kind` вернётся список плейлистов ([#318](https://github.com/MarshalX/yandex-music-api/issues/318)).
- Поле `labels` класса `Album` теперь может содержать список из строк, а не только список объектов класса `Label`.
**Крупные изменения**
- Добавлены примеры в папку `examples`.
- **Добавлена поддержка рекомендаций для плейлистов ([#324](https://github.com/MarshalX/yandex-music-api/issues/324))**:
- Добавлен класс `PlaylistRecommendations`.
- Добавлен метод клиента для получения рекомендаций(`users_playlists_recommendations`).
- Добавлен метод `get_recommendations` классу `Playlist` для
- **Добавлено получение чартов ([#294](https://github.com/MarshalX/yandex-music-api/issues/294))**:
- Добавлены новые классы: `ChartInfo`, `ChartInfoMenu`,`ChartInfoMenuItem`.
- Добавлен метод клиента для получения чарта (`chart`).
- **Добавлена поддержка тегов/подборок ([#192](https://github.com/MarshalX/yandex-music-api/issues/192))**:
- Добавлены новые классы: `TagResult`, `Tag`.
- Добавлен новый метод клиента для получения тегов (`tags`).
- **Добавлено присоединение к коллективному плейлисту ([#317](https://github.com/MarshalX/yandex-music-api/issues/317))**:
- Добавлен новый метод клиента для присоединения(`playlists_collective_join`).
- **Добавлена поддержка очередей прослушивания ([#246](https://github.com/MarshalX/yandex-music-api/issues/246))**:
- Добавлены новые классы: `Context`, `Queue`, `QueueItem`.
- Добавлены новые методы в `Client`: `queues_list`, `queue`,`queue_update_position`, `queue_create`.
- Добавлены поля `track_id` и `from_` в класс `TrackId`.
- Добавлена возможность смены языка у клиента для ответов от API.
- Добавлена десериализация любого объекта в `JSON` пригодного для отправки в запросе на Яндекс API.
- **Добавлены следующие методы для `Client`**:
- `new_releases` получение полного списка всех новых релизов.
- `new_playlists` получение полного списка всех новый плейлистов.
- `podcasts` получение подкаста с лендинга.
- **Добавлены новые сокращения в модели**:
- `download_cover_white`, `download_cover_uri` в `MixLink`.
- `download_image` в `Promotion`.
- `artists_name` в `Album` и `Track`.
- `fetch_track`, `track_full_id` в `TrackId`.
- `fetch_tracks` в `TracksList`.
- `insert_track`, `delete_tracks`, `delete` в `Playlist`.
- `playlist_id`, `fetch_playlist` в `PlaylistId`.
- `get_current_track` в `Queue`.
- `fetch_queue` в `QueueItem`.
- `next_page`, `get_page`, `prev_page` в `Search`.
- и другие...
- Добавлена поддержка новых типов поиска: подкасты, выпуски, пользователи.
- Добавлен callback для обработки новых полей.
- Добавлена информацию по поводу запуска потока по треку, плейлисту и др.
- Добавлена десериализация `decomposed` у `Artist` ([#10](https://github.com/MarshalX/yandex-music-api/issues/10)).
- Добавлен `__len__` для `TracksList` ([#380](https://github.com/MarshalX/yandex-music-api/issues/380)).
- Добавлены `__iter__`, `__len__` и `__getitem__` для классов представляющих список каких-либо объектов.
- Добавлено сокращение `fetch_tracks` классу `Playlist` для получения треков плейлиста.
- Добавлен метод `get_url` классу `Icon` для получения прямой ссылки на изображение.
- Класс `User` расширен для поддержки поля `user_info` из `Track`(поля `full_name`, `display_name`).
- **Добавлены новые классы по отчётам с Telegram бота ([#306](https://github.com/MarshalX/yandex-music-api/issues/306), [#398](https://github.com/MarshalX/yandex-music-api/issues/398))**:
- `LandingList`.
- `RenewableRemainder`.
- `Alert`.
- `AlertButton`.
- `StationData`.
- `Brand`.
- `Contest`.
- `OpenGraphData`.
- `NonAutoRenewable`.
- `Operator`.
- `Deactivation`.
- `PoetryLoverMatch`.
- `Deprecation`.
- **Добавлены новые поля классам по отчётам с Telegram бота ([#306](https://github.com/MarshalX/yandex-music-api/issues/306), [#398](https://github.com/MarshalX/yandex-music-api/issues/398))**:
- `plus` в `Product`.
- `non_auto_renewable_remainder` в `Subscription`.
- `og_image` в `Artist`.
- `meta_type` в `Album`.
- `advertisement` в `Status`.
- `best` в `Track`.
- `offer_id` и `artist_ids` в `Vinyl`.
- `playlists` в `BriefInfo`.
- `is_custom` в `Cover`.
- `play_count`, `recent`, `chart`, `track` в `TrackShort`.
- `url_part`, `og_title`, `image`, `cover_without_text`, `background_color`, `text_color`, `id_for_from`,`similar_playlists`, `last_owner_playlists` в `Playlist`.
- `bg_color` в `Chart`.
- `error` в `Artist`.
- `substituted`, `matched_track`, `can_publish`, `state`, `desired_visibility`, `filename`, `user_info`, `meta_data` в`Track`.
- `copyright_name`, `copyright_cline` в `Cover`.
- `direct` в `DownloadInfo`.
- `cheapest`, `title`, `family_sub`, `fb_image`, `fb_name`,`family`, `intro_period_duration`, `intro_price`, `start_period_duration`, `start_price`, `licence_text_parts` в `Product`.
- `storage_dir`, `duplicates` в `Album`.
- `subscribed` в `ArtistEvent`.
- `description` в `GeneratedPlaylist`.
- `genre` в `Event`.
- `show_in_regions` в `Genre`.
- `cover_uri` в `MixLink`.
- `og_description`, `top_artist` в `Playlist`.
- `full_image_url`, `mts_full_image_url` в `Station`.
- `coauthors` и `recent_tracks` в `Playlist`.
- `regions` в `User`.
- `users`, `podcasts`, `podcast_episodes`, `type_`, `page`, `per_page` в `Search`.
- `short_description`, `description`, `is_premiere`, `is_banner` в `Like`.
- `master_info` в `AutoRenewable`.
- `station_data` и `bar_below` в `Status`.
- `family_auto_renewable` в `Subscription`.
- `misspell_result` и `misspell_original` в `Search`.
- `experiment` в класс `Status`.
- `operator` и `non_auto_renewable` в `Subscription`.
- `text_color`, `short_description`, `description`, `is_premiere` и `is_banner` в `Album`.
- `hand_made_description` в `Artist`.
- `metrika_id` в `Playlist`.
- `og_image` в `Tag`.
- `url` в `Lyrics`.
- `number`, `genre` в `MetaData`.
- `poetry_lover_matches` в `Track`.
- `contest`, `dummy_description`, `dummy_page_description`, `dummy_cover`, `dummy_rollover_cover`, `og_data`, `branding` в `Playlist`.
- `available_as_rbt`, `lyrics_available`, `remember_position`, `albums`, `duration_ms`, `explicit`, `start_date`, `likes_count`, `deprecation` в `Album`.
- `lyricist`, `version`, `composer` в `MetaData`.
- `last_releases` в `BriefInfo`.
- `ya_money_id` в `Artist` ([#351](https://github.com/MarshalX/yandex-music-api/issues/351), [#370](https://github.com/MarshalX/yandex-music-api/issues/370)).
- `playlist_uuid` в `Playlist`.
- `sync_queue_enabled` в `UserSettings`.
- `background_video_uri`, `short_description`, `is_suitable_for_children` в `Track` ([#376](https://github.com/MarshalX/yandex-music-api/issues/376)).
- `meta_type`, `likes_count` в `Album` ([#386](https://github.com/MarshalX/yandex-music-api/issues/386)).
- `deprecation` в `Album`.
- `available_regions` в `Album`.
- `type`, `ready` в `Playlist`.
- `description` в `Supplement`.
**Незначительные изменения и/или исправления**
- **Добавлена опциональность следующим полям**:
- все поля в `MetaData`.
- `advertisement` в `Status`.
- `text_language` в `Lyrics`.
- `provider_video_id` в `VideoSupplement`.
- `title` в `VideoSupplement` ([#403](https://github.com/MarshalX/yandex-music-api/issues/403)).
- `instructions` в `Deactivation` ([#402](https://github.com/MarshalX/yandex-music-api/issues/402)).
- `id` в `Album` ([#401](https://github.com/MarshalX/yandex-music-api/issues/401)).
- Исправлена десериализация подкастов, эпизодов подкастов и пользователей в лучшем результате поиска.
- Исправлена десериализация альбомов. В зависимости от запроса содержимое лейблов может быть списком объектом или списком строк (в поиске).
- Исправлен выбор настроек радио.
- Исправлены ошибки в документации.
- Протестирована работа на Python 3.9.
## Версия 0.1.1
**25.03.2020**
**Закончено документирование всех классов и основных методов!**
**Переломные изменения**
- **Классы отметок "мне нравится" для альбомов, плейлистов и исполнителей обобщены. Теперь представлены одним классом**.
- **Удаленные классы**:
- `ArtistsLikes`.
- `AlbumsLikes`.
- `PlaylistsLikes`.
- Новый класс: `Like` (поле `type` для определения содержимого).
- Изменено название пакета с `status` на `account` ([#195](https://github.com/MarshalX/yandex-music-api/issues/195)).
- **Исправлено выбрасываемое исключение при таймауте**:
- Прошлое исключение: `TimeoutError` (built-in).
- Новое исключение: `TimedOut` (`yandex_music.exceptions`).
- Удалены следующие файлы: `requirements.txt`, `requirements-dev.txt`,
`requirements-docs.txt`.
**Крупные изменения**
- **Добавлено обнаружение новых полей с просьбой сообщить о них ([#216](https://github.com/MarshalX/yandex-music-api/issues/216))**.
- Добавлена проверка на неизвестные поля.
- Добавлен вывод отладочной информации в виде warning'a.
- Добавлен шаблон issue для отправки логов.
- Добавлено поле `type` для класса `SearchResult` для определения типа результата поиска по объекту.
- **Добавлены настройки пользователя ([#195](https://github.com/MarshalX/yandex-music-api/issues/195))**:
- Добавлен класс `UserSettings`.
- Добавлен метод для получения своих настроек (`account_settings`).
- Добавлен метод для получения настроек другого пользователя (`users_settings`).
- Добавлен метод для изменения настроек (`account_settings_set`).
- **Добавлен возможность получить похожие треки ([#197](https://github.com/MarshalX/yandex-music-api/issues/197))**:
- Добавлен класс `TracksSimilar` с полями трека и списка похожих треков.
- Добавлен метод для получения похожих треков (`tracks_similar`).
- **Добавлены шоты от Алисы ([#185](https://github.com/MarshalX/yandex-music-api/issues/185))**:
- Добавлен метод `after_track` в класс `Client` для получения контента для воспроизведения после трека (реклама, шот).
- Добавлены методы для загрузки обложки и аудиоверсии шота.
- **Добавлены новые классы**:
- `Shot`
- `ShotData`
- `ShotEvent`
- `ShotType`
- Добавлен метод для изменения видимости плейлиста ([#179](https://github.com/MarshalX/yandex-music-api/issues/179)).
- **Добавлена поддержка Яндекс.Радио ([#20](https://github.com/MarshalX/yandex-music-api/issues/20))**:
- Исправлена отправка фидбека.
- Написана инструкция по использованию (в доке к методу).
- Добавлен аргумент для перехода по цепочке треков.
- Добавлен метод для изменения настроек станции.
**Незначительные изменения и/или исправления**
- Убрано дублирование информации в документации ([#247](https://github.com/MarshalX/yandex-music-api/issues/247)).
- Добавлены новые поля в класс `Track`: `version`, `remember_position` ([#238](https://github.com/MarshalX/yandex-music-api/issues/238)).
- Добавлено исключение `InvalidBitrate` при попытке загрузить недопустимый трек по критериям (кодек, битрейт).
- Исправлено получение прямой ссылки на файл с кодеком AAC ([#237](https://github.com/MarshalX/yandex-music-api/issues/237), [#25](https://github.com/MarshalX/yandex-music-api/issues/25)).
- Исправлено получение плейлиста с Алисой в лендинге ([#185](https://github.com/MarshalX/yandex-music-api/issues/185)).
- Исправлено название поля с ссылкой на источник в классе `Description` (с `url` на `uri`).
- Исправлена десериализация несуществующего исполнителя.
- Добавлено поле `version` в класс `Album` ([#178](https://github.com/MarshalX/yandex-music-api/issues/178)).
- Поле `picture` класса `Vinyl` теперь опциональное.
- Поле `week` класса `Ratings` теперь опциональное.
- Поле `product_id` класса `AutoRenewable` теперь опциональное ([#182](https://github.com/MarshalX/yandex-music-api/issues/182)).
- Правки замечаний по codacy.
## Версия 0.0.16
**29.12.2019**
**Переломные изменения**
- Поле `account` переименовано в `me` и теперь содержит объект `Status`, вместо `Account` ([#162](https://github.com/MarshalX/yandex-music-api/issues/162)).
- Убрано использование зарезервированных имён в аргументах конструкторов (теперь они с `_` на конце). Имена с нижними подчёркиваниями есть как при сериализации так и при десериализации ([#168](https://github.com/MarshalX/yandex-music-api/issues/168)).
**Крупные изменения**
- **Добавлены аннотации типов во всей библиотеке!**
**Незначительные изменения и/или исправления**
- Добавлен аргумент `fetch_account_status` для опциональности получения информации об аккаунте при инициализации клиента ([#162](https://github.com/MarshalX/yandex-music-api/issues/162)).
- Добавлены тесты c передачей пустого словаря в `de_json` и `de_list` ([#174](https://github.com/MarshalX/yandex-music-api/issues/174)).
- Использование `ujson` при наличии, обновлены зависимости ([#161](https://github.com/MarshalX/yandex-music-api/issues/161)).
- Добавлен в зависимости для разработки `importlib_metadata` для поддержки старых версий (в новой версии `pytest` его больше не используют, в угоду `importlib.metadata` [#pytest-5537](https://github.com/pytest-dev/pytest/issues/5537))) ([#161](https://github.com/MarshalX/yandex-music-api/issues/161)).
- Добавлен в зависимости для разработки `atomicwrites`, который используется `pytest` теперь только на `Windows` - [#pytest-6148](https://github.com/pytest-dev/pytest/pull/6148) ([#161](https://github.com/MarshalX/yandex-music-api/issues/161)).
- Исправлен баг с передачей `timeout` аргумента в аргумент `params` в следующих методах: `artists`, `albums`, `playlists_list` ([#120](https://github.com/MarshalX/yandex-music-api/issues/120)).
- Исправлена инициализация клиента при помощи логина и пароля с использованием прокси ([#159](https://github.com/MarshalX/yandex-music-api/issues/159)).
- Исправлен баг в загрузке обложки альбома.
## Версия 0.0.15
**01.12.2019**
**Переломные изменения**
- У классов `Artist`, `Track` и `Playlist` изменился перечень полей для генерации хеша.
**Крупные изменения**
- **Добавлена возможность выполнять запросы через прокси-сервер для использовании библиотеки на зарубежных серверах ([#139](https://github.com/MarshalX/yandex-music-api/issues/139))**.
- Добавлен пример использования в `README`.
- **Добавлена обработка капчи при авторизации с возможностью использования callback-функции для её обработки ([#140](https://github.com/MarshalX/yandex-music-api/issues/140))**:
- **Новые исключения**:
- **Captcha**:
- CaptchaRequired.
- CaptchaWrong.
- **Новые классы**:
- CaptchaResponse.
- **Новые примеры в `README`**:
- Пример обработки с использованием callback-функции.
- Пример полностью своей обработки капчи.
- Добавлена документация для класса `Search` ([#83](https://github.com/MarshalX/yandex-music-api/issues/83)).
- **Добавлена возможность получения всех альбомов исполнителя ([#141](https://github.com/MarshalX/yandex-music-api/issues/141))**:
- **Новые классы**:
- ArtistAlbums.
- **Новые методы**:
- `artists_direct_albums` у `Client`.
- `get_albums` у `Artist`.
- **Добавлена обработка несуществующего плейлиста ([#147](https://github.com/MarshalX/yandex-music-api/issues/147))**:
- **Новые классы**:
- `PlaylistAbsence`.
**Незначительные изменения и/или исправления**
- Исправлен баг с загрузкой файлов ([#149](https://github.com/MarshalX/yandex-music-api/issues/149)).
- Исправлен баг некорректной десериализации плейлиста при отсутствии прав на него ([#147](https://github.com/MarshalX/yandex-music-api/issues/147)).
- Исправлен баг неправильной десериализации треков и артистов у собственных загруженных файлов ([#154](https://github.com/MarshalX/yandex-music-api/issues/154)).
## Версия 0.0.14
**10.11.2019**
**Переломные изменения**
- Практически у всех классов был обновлён список полей участвующих при сравнении объектов.
- Если в атрибутах для сравнения объектов присутствуют списки, то они будут преобразованы к frozenset.
- Убрано конвертирование даты из строки в объект. Теперь все даты представлены строками в ISO формате.
- Классы `AlbumSearchResult`, `ArtistSearchResult`, `PlaylistSearchResult`, `TrackSearchResult`, `VideoSearchResult` были объединены в один `SearchResult`.
**Крупные изменения**
- Добавлен метод получения треков исполнителя ([#123](https://github.com/MarshalX/yandex-music-api/pull/123)).
- Добавлены классы-обёртки над пагинацией (`Pager`) и списка треков артиста (`ArtistsTracks`).
- Добавлено **554** unit-теста для всех классов-обёрток над объектами API.
- Добавлен codecov и workflows для GitHub Actions.
**Незначительные изменения и/или исправления**
- Поле `cover_uri` класса `Album` теперь опциональное.
- Поле `region` у класса `Account` теперь не обязательное.
- Исправлен баг в `.to_dict()` методе, связанный с десериализацией объектов списков и словарей.
- Исправлен баг в `.to_dict()` методе, связанный с не рекурсивной десериализацией.
- Исправлена десериализация `similar_artists` в `BriefInfo`.
- Исправлен баг с десериализацией `artist` в классе `ArtistEvent`.
- Исправлен баг десериализации списка альбомов и артистов у класса `Track` ([#122](https://github.com/MarshalX/yandex-music-api/pull/122)).
- Исправлена загрузка обложки у трека.
- Исправлены сравнения объектов.

ファイルの表示

@ -1,418 +0,0 @@
================
Список изменений
================
Версия 2.1.0
============
**XX.XX.202X**
TODO
**Крупные изменения**
- В модели добавлены методы `download_bytes` и `download_bytes_async`, для получения файлов в виде байтов (`#539`_).
**Незначительные изменения и/или исправления**
- Исправлены методы-сокращения класса Playlist (like, dislike) (`#516`_).
.. _`#539`: https://github.com/MarshalX/yandex-music-api/issues/539
.. _`#516`: https://github.com/MarshalX/yandex-music-api/pull/516
Версия 2.0.0
============
**23.02.2022**
**Поддержка asyncio и модели на dataclasses**
**Переломные изменения**
- Убрана поддержка ``Python 3.6``.
- Удалено получение авторизационного токена по логину и паролю (метод ``from_credentials`` класса ``Client``).
- Удалена возможность задать свой обработчик на полученные неизвестные поля от API (аргумент ``report_new_fields_callback`` конструктора класса ``Client``.
- Удалён аргумент ``fetch_account_status`` из конструктора класса ``Client``. Теперь необходимо вызывать метод ``init`` для получения ID аккаунта который будет использоваться в последующих запросах. В противном случае, передача ``user_id`` при вызове многих методов класса ``Client`` становится обязательной.
- Исключение ``BadRequest`` переименовано в ``BadRequestError``.
- Исключение ``Unauthorized`` переименовано в ``UnauthorizedError``.
- Исключение ``InvalidBitrate`` переименовано в ``InvalidBitrateError``.
- Исключение ``TimedOut`` переименовано в ``TimedOutError``.
- Свойство ``result`` класса ``Response`` удалено. Вместо него добавлен метод ``get_result``.
- Свойство ``error`` класса ``Response`` удалено. Вместо него добавлен метод ``get_error``.
- В JSON представлении моделей к полям, чьё имя совпадает с именем стандартных функций, больше не добавляется нижнее подчеркивание в конец (пример: ``id``, а не ``id_``; ``max``, а не ``max_``). Теперь нижнее подчеркивание добавляется только к зарезервированным словам (пример: ``from`` будет ``from_``).
**Крупные изменения**
- Добавлена асинхронная версия клиента и всех методов-сокращений (класс ``ClientAsync``).
- Добавлено новое исключение ``NotFoundError`` (наследник ``NetworkError``). Будет сгенерировано при получении статус кода 404.
- Проект больше не использует ``pipenv``.
- Зависимости проекта больше не требуют конкретных версий.
- Для генерации исходных файлов ``Sphinx`` теперь используется ``sphinx-apidoc``.
**Незначительные изменения и/или исправления**
- Исправлена обработка серверных ошибок которые вернулись в отличном от JSON формате.
- Исправлена обработка серверных ошибок метода ``search`` класса ``Client``.
- Предупреждения о пришедших неизвестных полях от API отключены по умолчанию.
- Используется английская локализация ``Sphinx``.
- Изменена тема документации.
Версия 1.0.0
============
**06.02.2021**
**Стабильная версия библиотеки**
**Переломные изменения**
- Поле ``error`` класса ``Artist`` теперь называется ``reason``.
- Метод ``users_playlists`` класса ``Client`` теперь возвращает один объект плейлиста, когда был передан один ``kind``. При передаче списка в ``kind`` вернётся список плейлистов (`#318`_).
- Поле ``labels`` класса ``Album`` теперь может содержать список из строк, а не только список объектов класса ``Label``.
**Крупные изменения**
- Добавлены примеры в папку ``examples``.
- Добавлена поддержка рекомендаций для плейлистов (`#324`_):
- Добавлен класс ``PlaylistRecommendations``.
- Добавлен метод клиента для получения рекомендаций (``users_playlists_recommendations``).
- Добавлен метод ``get_recommendations`` классу ``Playlist`` для получения рекомендаций.
- Добавлено получение чартов (`#294`_):
- Добавлены новые классы: ``ChartInfo``, ``ChartInfoMenu``, ``ChartInfoMenuItem``.
- Добавлен метод клиента для получения чарта (``chart``).
- Добавлена поддержка тегов/подборок (`#192`_):
- Добавлены новые классы: ``TagResult``, ``Tag``.
- Добавлен новый метод клиента для получения тегов (``tags``).
- Добавлено присоединение к коллективному плейлисту (`#317`_):
- Добавлен новый метод клиента для присоединения (``playlists_collective_join``).
- Добавлена поддержка очередей прослушивания (`#246`_):
- Добавлены новые классы: ``Context``, ``Queue``, ``QueueItem``.
- Добавлены новые методы в ``Client``: ``queues_list``, ``queue``, ``queue_update_position``, ``queue_create``.
- Добавлены поля ``track_id`` и ``from_`` в класс ``TrackId``.
- Добавлена возможность смены языка у клиента для ответов от API.
- Добавлена десериализация любого объекта в ``JSON`` пригодного для отправки в запросе на Яндекс API.
- Добавлены следующие методы для ``Client``:
- ``new_releases`` получение полного списка всех новых релизов.
- ``new_playlists`` получение полного списка всех новый плейлистов.
- ``podcasts`` получение подкаста с лендинга.
- Добавлены новые сокращения в модели:
- ``download_cover_white``, ``download_cover_uri`` в ``MixLink``.
- ``download_image`` в ``Promotion``.
- ``artists_name`` в ``Album`` и ``Track``.
- ``fetch_track``, ``track_full_id`` в ``TrackId``.
- ``fetch_tracks`` в ``TracksList``.
- ``insert_track``, ``delete_tracks``, ``delete`` в ``Playlist``.
- ``playlist_id``, ``fetch_playlist`` в ``PlaylistId``.
- ``get_current_track`` в ``Queue``.
- ``fetch_queue`` в ``QueueItem``.
- ``next_page``, ``get_page``, ``prev_page`` в ``Search``.
- и другие...
- Добавлена поддержка новых типов поиска: подкасты, выпуски, пользователи.
- Добавлен коллбек для обработки новых полей.
- Добавлена информацию по поводу запуска потока по треку, плейлисту и др.
- Добавлена десериализация ``decomposed`` у ``Artist`` (`#10`_).
- Добавлен ``__len__`` для ``TracksList`` (`#380`_).
- Добавлены ``__iter__``, ``__len__`` и ``__getitem__`` для классов представляющих список каких-либо объектов.
- Добавлено сокращение ``fetch_tracks`` классу ``Playlist`` для получения треков плейлиста.
- Добавлен метод ``get_url`` классу ``Icon`` для получения прямой ссылки на изображение.
- Класс ``User`` расширен для поддержки поля ``user_info`` из ``Track`` (поля ``full_name``, ``display_name``).
- Добавлены новые классы по отчётам с Telegram бота (`#306`_, `#398`_):
- ``LandingList``.
- ``RenewableRemainder``.
- ``Alert``.
- ``AlertButton``.
- ``StationData``.
- ``Brand``.
- ``Contest``.
- ``OpenGraphData``.
- ``NonAutoRenewable``.
- ``Operator``.
- ``Deactivation``.
- ``PoetryLoverMatch``.
- ``Deprecation``.
- Добавлены новые поля классам по отчётам с Telegram бота (`#306`_, `#398`_):
- ``plus`` в ``Product``.
- ``non_auto_renewable_remainder`` в ``Subscription``.
- ``og_image`` в ``Artist``.
- ``meta_type`` в ``Album``.
- ``advertisement`` в ``Status``.
- ``best`` в ``Track``.
- ``offer_id`` и ``artist_ids`` в ``Vinyl``.
- ``playlists`` в ``BriefInfo``.
- ``is_custom`` в ``Cover``.
- ``play_count``, ``recent``, ``chart``, ``track`` в ``TrackShort``.
- ``url_part``, ``og_title``, ``image``, ``cover_without_text``, ``background_color``, ``text_color``, ``id_for_from``, ``similar_playlists``, ``last_owner_playlists`` в ``Playlist``.
- ``bg_color`` в ``Chart``.
- ``error`` в ``Artist``.
- ``substituted``, ``matched_track``, ``can_publish``, ``state``, ``desired_visibility``, ``filename``, ``user_info``, ``meta_data`` в ``Track``.
- ``copyright_name``, ``copyright_cline`` в ``Cover``.
- ``direct`` в ``DownloadInfo``.
- ``cheapest``, ``title``, ``family_sub``, ``fb_image``, ``fb_name``, ``family``, ``intro_period_duration``, ``intro_price``, ``start_period_duration``, ``start_price``, ``licence_text_parts`` в ``Product``.
- ``storage_dir``, ``duplicates`` в ``Album``.
- ``subscribed`` в ``ArtistEvent``.
- ``description`` в ``GeneratedPlaylist``.
- ``genre`` в ``Event``.
- ``show_in_regions`` в ``Genre``.
- ``cover_uri`` в ``MixLink``.
- ``og_description``, ``top_artist`` в ``Playlist``.
- ``full_image_url``, ``mts_full_image_url`` в ``Station``.
- ``coauthors`` и ``recent_tracks`` в ``Playlist``.
- ``regions`` в ``User``.
- ``users``, ``podcasts``, ``podcast_episodes``, ``type_``, ``page``, ``per_page`` в ``Search``.
- ``short_description``, ``description``, ``is_premiere``, ``is_banner`` в ``Like``.
- ``master_info`` в ``AutoRenewable``.
- ``station_data`` и ``bar_below`` в ``Status``.
- ``family_auto_renewable`` в ``Subscription``.
- ``misspell_result`` и ``misspell_original`` в ``Search``.
- ``experiment`` в класс ``Status``.
- ``operator`` и ``non_auto_renewable`` в ``Subscription``.
- ``text_color``, ``short_description``, ``description``, ``is_premiere`` и ``is_banner`` в ``Album``.
- ``hand_made_description`` в ``Artist``.
- ``metrika_id`` в ``Playlist``.
- ``og_image`` в ``Tag``.
- ``url`` в ``Lyrics``.
- ``number``, ``genre`` в ``MetaData``.
- ``poetry_lover_matches`` в ``Track``.
- ``contest``, ``dummy_description``, ``dummy_page_description``, ``dummy_cover``, ``dummy_rollover_cover``, ``og_data``, ``branding`` в ``Playlist``.
- ``available_as_rbt``, ``lyrics_available``, ``remember_position``, ``albums``, ``duration_ms``, ``explicit``, ``start_date``, ``likes_count``, ``deprecation`` в ``Album``.
- ``lyricist``, ``version``, ``composer`` в ``MetaData``.
- ``last_releases`` в ``BriefInfo``.
- ``ya_money_id`` в ``Artist`` (`#351`_, `#370`_).
- ``playlist_uuid`` в ``Playlist``.
- ``sync_queue_enabled`` в ``UserSettings``.
- ``background_video_uri``, ``short_description``, ``is_suitable_for_children`` в ``Track`` (`#376`_).
- ``meta_type``, ``likes_count`` в ``Album`` (`#386`_).
- ``deprecation`` в ``Album``.
- ``available_regions`` в ``Album``.
- ``type``, ``ready`` в ``Playlist``.
- ``description`` в ``Supplement``.
**Незначительные изменения и/или исправления**
- Добавлена опциональность следующим полям:
- все поля в ``MetaData``.
- ``advertisement`` в ``Status``.
- ``text_language`` в ``Lyrics``.
- ``provider_video_id`` в ``VideoSupplement``.
- ``title`` в ``VideoSupplement`` (`#403`_).
- ``instructions`` в ``Deactivation`` (`#402`_).
- ``id`` в ``Album`` (`#401`_).
- Исправлена десериализация подкастов, эпизодов подкастов и пользователей в лучшем результате поиска.
- Исправлена десериализация альбомов. В зависимости от запроса содержимое лейблов может быть списком объектом или списком строк (в поиске).
- Исправлен выбор настроек радио.
- Исправлены ошибки в документации.
- Протестирована работа на Python 3.9.
.. _`#318`: https://github.com/MarshalX/yandex-music-api/issues/318
.. _`#306`: https://github.com/MarshalX/yandex-music-api/issues/306
.. _`#324`: https://github.com/MarshalX/yandex-music-api/issues/324
.. _`#294`: https://github.com/MarshalX/yandex-music-api/issues/294
.. _`#192`: https://github.com/MarshalX/yandex-music-api/issues/192
.. _`#317`: https://github.com/MarshalX/yandex-music-api/issues/317
.. _`#10`: https://github.com/MarshalX/yandex-music-api/issues/10
.. _`#386`: https://github.com/MarshalX/yandex-music-api/issues/386
.. _`#246`: https://github.com/MarshalX/yandex-music-api/issues/246
.. _`#376`: https://github.com/MarshalX/yandex-music-api/issues/376
.. _`#351`: https://github.com/MarshalX/yandex-music-api/issues/351
.. _`#370`: https://github.com/MarshalX/yandex-music-api/issues/370
.. _`#380`: https://github.com/MarshalX/yandex-music-api/issues/380
.. _`#398`: https://github.com/MarshalX/yandex-music-api/issues/398
.. _`#401`: https://github.com/MarshalX/yandex-music-api/issues/401
.. _`#402`: https://github.com/MarshalX/yandex-music-api/issues/402
.. _`#403`: https://github.com/MarshalX/yandex-music-api/issues/403
Версия 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
=============
**29.12.2019**
**Переломные изменения**
- Поле ``account`` переименовано в ``me`` и теперь содержит объект ``Status``, вместо ``Account`` (`#162`_).
- Убрано использование зарезервированных имён в аргументах конструкторов (теперь они с ``_`` на конце). Имена с нижними подчёркиваниями есть как при сериализации так и при десериализации (`#168`_).
**Крупные изменения**
- **Добавлены аннотации типов во всей библиотеке!**
**Незначительные изменения и/или исправления**
- Добавлен аргумент ``fetch_account_status`` для опциональности получения информации об аккаунте при инициализации клиента (`#162`_).
- Добавлены тесты c передачей пустого словаря в ``de_json`` и ``de_list`` (`#174`_).
- Использование ``ujson`` при наличии, обновлены зависимости (`#161`_).
- Добавлен в зависимости для разработки ``importlib_metadata`` для поддержки старых версий (в новой версии ``pytest`` его больше не используют, в угоду ``importlib.metadata`` `#pytest-5537`_)) (`#161`_).
- Добавлен в зависимости для разработки ``atomicwrites``, который используется ``pytest`` теперь только на ``Windows`` - `#pytest-6148`_ (`#161`_).
- Исправлен баг с передачей ``timeout`` аргумента в аргумент ``params`` в следующих методах: ``artists``, ``albums``, ``playlists_list`` (`#120`_).
- Исправлена инициализация клиента при помощи логина и пароля с использованием прокси (`#159`_).
- Исправлен баг в загрузке обложки альбома.
.. _`#162`: https://github.com/MarshalX/yandex-music-api/issues/162
.. _`#161`: https://github.com/MarshalX/yandex-music-api/issues/161
.. _`#159`: https://github.com/MarshalX/yandex-music-api/issues/159
.. _`#168`: https://github.com/MarshalX/yandex-music-api/issues/168
.. _`#120`: https://github.com/MarshalX/yandex-music-api/issues/120
.. _`#174`: https://github.com/MarshalX/yandex-music-api/issues/174
.. _`#pytest-5537`: https://github.com/pytest-dev/pytest/issues/5537
.. _`#pytest-6148`: https://github.com/pytest-dev/pytest/pull/6148
Версия 0.0.15
=============
**01.12.2019**
**Переломные изменения**
- У классов ``Artist``, ``Track`` и ``Playlist`` изменился перечень полей для генерации хеша.
**Крупные изменения**
- Добавлена возможность выполнять запросы через прокси-сервер для использовании библиотеки на зарубежных серверах (`#139`_).
- Добавлен пример использования в ``README``.
- Добавлена обработка капчи при авторизации с возможностью использования callback-функции для её обработки (`#140`_):
- Новые исключения:
- Captcha:
- CaptchaRequired.
- CaptchaWrong.
- Новые классы:
- CaptchaResponse.
- Новые примеры в ``README``:
- Пример обработки с использованием callback-функции.
- Пример полностью своей обработки капчи.
- Добавлена документация для класса ``Search`` (`#83`_).
- Добавлена возможность получения всех альбомов исполнителя (`#141`_):
- Новые классы:
- ArtistAlbums.
- Новые методы:
- ``artists_direct_albums`` у ``Client``.
- ``get_albums`` у ``Artist``.
- Добавлена обработка несуществующего плейлиста (`#147`_):
- Новые классы:
- ``PlaylistAbsence``.
**Незначительные изменения и/или исправления**
- Исправлен баг с загрузкой файлов (`#149`_).
- Исправлен баг некорректной десериализации плейлиста при отсутствии прав на него (`#147`_).
- Исправлен баг неправильной десериализации треков и артистов у собственных загруженных файлов (`#154`_).
.. _`#139`: https://github.com/MarshalX/yandex-music-api/issues/139
.. _`#140`: https://github.com/MarshalX/yandex-music-api/issues/140
.. _`#83`: https://github.com/MarshalX/yandex-music-api/issues/83
.. _`#141`: https://github.com/MarshalX/yandex-music-api/issues/141
.. _`#149`: https://github.com/MarshalX/yandex-music-api/issues/149
.. _`#147`: https://github.com/MarshalX/yandex-music-api/issues/147
.. _`#154`: https://github.com/MarshalX/yandex-music-api/issues/154
Версия 0.0.14
=============
**10.11.2019**
**Переломные изменения**
- Практически у всех классов был обновлён список полей участвующих при сравнении объектов.
- Если в атрибутах для сравнения объектов присутствуют списки, то они будут преобразованы к frozenset.
- Убрано конвертирование даты из строки в объект. Теперь все даты представлены строками в ISO формате.
- Классы ``AlbumSearchResult``, ``ArtistSearchResult``, ``PlaylistSearchResult``, ``TrackSearchResult``, ``VideoSearchResult`` были объединены в один - ``SearchResult``.
**Крупные изменения**
- Добавлен метод получения треков исполнителя (`#123`_).
- Добавлены классы-обёртки над пагинацией (``Pager``) и списка треков артиста (``ArtistsTracks``).
- Добавлено **554** unit-теста для всех классов-обёрток над объектами API.
- Добавлен codecov и workflows для GitHub Actions.
.. _`#123`: https://github.com/MarshalX/yandex-music-api/pull/123
**Незначительные изменения и/или исправления**
- Поле ``cover_uri`` класса ``Album`` теперь опциональное.
- Поле ``region`` у класса ``Account`` теперь не обязательное.
- Исправлен баг в ``.to_dict()`` методе, связанный с десериализцией объектов списков и словарей.
- Исправлен баг в ``.to_dict()`` методе, связанный с не рекурсивной десериализацией.
- Исправлена десериализация ``similar_artists`` в ``BriefInfo``.
- Исправлен баг с десериализацией ``artist`` в классе ``ArtistEvent``.
- Исправлен баг десериализации списка альбомов и артистов у класса ``Track`` (`#122`_).
- Исправлена загрузка обложки у трека.
- Исправлены сравнения объектов.
.. _`#122`: https://github.com/MarshalX/yandex-music-api/pull/122

ファイルの表示

@ -1 +1 @@
include LICENSE CHANGES.rst
include LICENSE CHANGES.md

ファイルの表示

@ -46,7 +46,7 @@
#### Доступ к вашим данным Яндекс.Музыка
Начиная с версии [2.0.0](https://github.com/MarshalX/yandex-music-api/blob/main/CHANGES.rst#%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D1%8F-200) библиотека больше не предоставляет интерфейсы для работы с OAuth Яндекс и Яндекс.Паспорт. Задача по получению токена для доступа к данным на плечах разработчиков использующих данную библиотеку.
Начиная с версии [2.0.0](https://github.com/MarshalX/yandex-music-api/blob/a30082f4929e56381c870cb03103777ae29bcc6b/CHANGES.rst#%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D1%8F-200) библиотека больше не предоставляет интерфейсы для работы с OAuth Яндекс и Яндекс.Паспорт. Задача по получению токена для доступа к данным на плечах разработчиков использующих данную библиотеку.
### Установка
@ -237,7 +237,7 @@ logger.setLevel(logging.DEBUG)
### Список изменений
Весь список изменений ведётся в файле [CHANGES.rst](https://github.com/MarshalX/yandex-music-api/blob/main/CHANGES.rst).
Весь список изменений ведётся в файле [CHANGES.md](https://github.com/MarshalX/yandex-music-api/blob/main/CHANGES.md).
### Реализации на других языках

2
docs/source/changes.md ノーマルファイル
ファイルの表示

@ -0,0 +1,2 @@
```{include} ../../CHANGES.md
```

ファイルの表示

@ -1 +0,0 @@
.. include:: ../../CHANGES.rst