Исправлены фикстуры и сравнения для вышеперечисленных классов.
Изменён `__hash__` всех объектов. Теперь списки можно использовать в _id_attrs. Они кастуются в frozenset.
Обновлен список _id_attrs большинства объектов и тесты сравнения.
Результаты поиска любого типа теперь представлены одним классом - SearchResult.
Исправлены фикстуры и сравнения для вышеперечисленных классов.
Отрефакторен conftest.py.
Исправлен баг в .to_dict() методе, связанный с не рекурсивной десериализацией объектов списков и словарей.
Исправлен баг с десериализацией artist в классе ArtistEvent
Исправлены фикстуры и сравнения для вышеперечисленных классов.
Отрефакторен restrictions.py.
Исправлен баг в .to_dict() методе, связанный с десериализцией объектов списков и словарей.
Исправлены фикстуры и сравнения для вышеперечисленных классов.
Поле cover_uri класса Album теперь опциональное.
Исправлена десериализация similar_artists в BriefInfo.
Исправлены сравнения объектов.
Поле region у класса Account теперь не обязательное.
Исправлена загрузка обложки у трека.
Отказ от парса даты в конструкторах. Убран datetime.fromisoformat.
Поддержка python3.6
Обновлена документации к Pager, ArtistTracks, сокращению и методу Client'a.
Исправлен конструктор класса Pager.
В сокращении у класса Artist на получение треков убрано подставление количества треков (counts может быть None).
Добавлены .rst файлы.
Добавлены новые поля в класс Lyrics: id, lyrics, has_rights, show_translation.
Добавлены новые поля в класс VideoSupplement: provider, provider_video_id, embed_url, embed.
Добавлен псевдоним для artists_brief_info.
Добавлены .rst файлы, обновлена документация.
Мелкие правки.
* Добавлено значение remove=False во время вызова _like_action из вызывающих функций
* Добавлено значение remove=False во время вызова _dislike_action из вызывающих функций
* Добавил like/dislike функционал
* Использовать self.track_id, вместо self.id
* Добавлено значение remove=False во время вызова _like_action из вызывающих функций
* Добавлено значение remove=False во время вызова _dislike_action из вызывающих функций
Добавлены следующие классы: BriefInfo, Description, Vinyl, PlaylistId.
Класс Video вынесен из пакета Search в корень.
Добавлен de_list в Cover.
Добавлены следующие поля в класс Artist: likes_count, full_names, description, countries, en_wikipedia_link, db_aliases, aliases, init_date, end_date.
Добавлено поле track_id в класс Chart.
Добавлено поле available_full_without_permission в класс Track.
Класс Video расширен для поддержки второго типа (используется в brief info, спасибо яндух) видео (добавлены необязательные поля cover, embed_url, provider, provider_video_id).
Обновлена документация.
* Добавлена возможность инициализации и работы с клиентом без авторизации (https://github.com/MarshalX/yandex-music-api/issues/14).
Авторизация через логин и пароль доступна через метод from_credentials у Client'a.
Многие поля в account стали необязательными в связи с поддержкой клиентов без авторизации.
Исправлен баг в request связанный с одинаковыми заголовками при разных объектах.
Обновлена документация к методам.
* Обновлена версия.
Задокументированы следующие методы: Client.settings, Client.permission_alerts, Client.account_experiments.
Изменено дерево в документации. Осуществлена разбивка по пакетам.
Исправлены ошибки и опечатки.
The following methods are wrapped:
- /rotor/account/status
- /rotor/stations/dashboard
- /rotor/stations/list
- /rotor/station/genre:{genre}/feedback
- /rotor/station/genre:{genre}/info
- /rotor/station/genre:{genre}/tracks
The following fields are now optional: Account[region, passport_phones], Status[cache_limit, subeditor, subeditor_level, plus], Subscription[auto_renewable, can_start_trial, mcdonalds]
Added new fields: Subscription.end, Status[skips_per_hour, station_exists, premium_region], Track..preview_duration_ms
Fixed downloading the cover of the track
The following methods are wrapped:
- /genres
- /feed/wizard/is-passed
Changed getting playlists to another post request with multiple choice and tracks inside
Playlist now parse tracks :)
Keys that start with a digit now with a lower underscore...
The following method are wrapped:
- /users/{user_id}/playlists/{kind}
- /users/{user_id}/playlists/create
- /users/{user_id}/playlists/{kind}/delete
- /users/{user_id}/playlists/{kind}/name
- /users/{user_id}/playlists/{kind}/change
Added auxiliary difference class
Added "is_mine" and "rename" methods to playlist
All cover fields are now optional... Added "error" field
The following method are wrapped:
- /landing3
Added the ability to download covers
The following field are optional: Playlist.tags
Now, when parsing json, the "client" key is replaced with "client_"
- /users/{user_id}/likes/{object_type}s/{action} (Added methods of multiple likes and dislikes tracks, albums, artists, playlists
Added playlist`s, track`s ID
Code refactoring
The following methods are wrapped:
- /search
- /search/suggest
The following classes received optional fields instead of required ones: Album, Artist, Playlist, Track
Added "params" arg to the GET request
Code refactoring
The following method are wrapped: /account/consume-promo-code
Added error receiver
The following fields are optional: Ratings.day, InvocationInfo.exec_duration_millis, Account.registered_at
Request now accepts client object, not token
The following methods are wrapped:
- albums;
- playlists/list;
- users/{user_id}/playlists/list;
- tracks;
- users/{user_id}/likes/tracks.
Added property to get full track ID
Cover received more optional fields
Ability to pass arguments to the request
Removed unnecessary type conversions
Added optional fields to Product object
The following methods are wrapped: settings, permission-alerts, account/experiments
Fixed receiving optional parameters during deserialization