Исправлена документация.

Добавлена документация для UserSettings. #195
このコミットが含まれているのは:
Il`ya 2020-01-26 02:55:56 +03:00
コミット 0f860f67e5
35個のファイルの変更202行の追加100行の削除

15
docs/source/yandex_music.account.rst ノーマルファイル
ファイルの表示

@ -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

ファイルの表示

@ -0,0 +1,6 @@
yandex_music.UserSettings
=========================
.. autoclass:: yandex_music.UserSettings
:members:
:show-inheritance:

ファイルの表示

@ -8,7 +8,7 @@
yandex_music.utils yandex_music.utils
yandex_music.genre yandex_music.genre
yandex_music.track yandex_music.track
yandex_music.status yandex_music.account
yandex_music.likes yandex_music.likes
yandex_music.album yandex_music.album
yandex_music.search yandex_music.search

ファイルの表示

@ -1,14 +0,0 @@
Пакет yandex_music.status
=========================
.. toctree::
yandex_music.status.status
yandex_music.status.account
yandex_music.status.passport_phone
yandex_music.status.plus
yandex_music.status.permissions
yandex_music.status.subscription
yandex_music.status.auto_renewable
yandex_music.status.product
yandex_music.status.price

ファイルの表示

@ -7,7 +7,7 @@ from yandex_music import YandexMusicObject
class Account(YandexMusicObject): class Account(YandexMusicObject):
"""Класс, предоставляющий основную информацию об аккаунте пользователя. """Класс, представляющий основную информацию об аккаунте пользователя.
Attributes: Attributes:
now (:obj:`str`): Текущая дата и время. now (:obj:`str`): Текущая дата и время.

ファイルの表示

@ -7,7 +7,7 @@ from yandex_music import YandexMusicObject
class Permissions(YandexMusicObject): class Permissions(YandexMusicObject):
"""Класс, предоставляющий информацию о правах пользователя, их изначальных значениях и даты окончания. """Класс, представляющий информацию о правах пользователя, их изначальных значениях и даты окончания.
Attributes: Attributes:
until (:obj:`str`): Дата окончания прав. until (:obj:`str`): Дата окончания прав.

ファイルの表示

@ -10,16 +10,16 @@ class Status(YandexMusicObject):
"""Класс, представляющий подробную информацию об аккаунте пользователя. """Класс, представляющий подробную информацию об аккаунте пользователя.
Attributes: Attributes:
account (:obj:`yandex_music.Account`): Объект класса :class:`yandex_music.Account` предоставляющий основную account (:obj:`yandex_music.Account`): Объект класса :class:`yandex_music.Account` представляющий основную
информацию об аккаунте. информацию об аккаунте.
permissions (:obj:`yandex_music.Permissions`): Объект класса :class:`yandex_music.Permissions` предоставляющий permissions (:obj:`yandex_music.Permissions`): Объект класса :class:`yandex_music.Permissions` представляющий
информацию о правах пользователя. информацию о правах пользователя.
subscription (:obj:`yandex_music.Subscription`): Объект класса :class:`yandex_music.Subscription` предоставляющий subscription (:obj:`yandex_music.Subscription`): Объект класса :class:`yandex_music.Subscription` представляющий
информацию о подписках информацию о подписках
cache_limit (:obj:`int`): Максимальное количество загруженных треков. cache_limit (:obj:`int`): Максимальное количество загруженных треков.
subeditor (:obj:`bool`): Наличие статуса модератора проверки корректности информации. subeditor (:obj:`bool`): Наличие статуса модератора проверки корректности информации.
subeditor_level (:obj:`int`): Уровень статуса модератора. subeditor_level (:obj:`int`): Уровень статуса модератора.
plus (:obj:`yandex_music.Plus`): Объект класса :class:`yandex_music.Plus` предоставляющий информацию о Plus plus (:obj:`yandex_music.Plus`): Объект класса :class:`yandex_music.Plus` представляющий информацию о Plus
подписке. подписке.
default_email (:obj:`str`): Основной e-mail адрес аккаунта. default_email (:obj:`str`): Основной e-mail адрес аккаунта.
skips_per_hour (:obj:`int`): Количество переключение треков на радио в час. skips_per_hour (:obj:`int`): Количество переключение треков на радио в час.
@ -29,16 +29,16 @@ class Status(YandexMusicObject):
Music. Music.
Args: Args:
account (:obj:`yandex_music.Account`): Объект класса :class:`yandex_music.Account` предоставляющий основную account (:obj:`yandex_music.Account`): Объект класса :class:`yandex_music.Account` представляющий основную
информацию об аккаунте. информацию об аккаунте.
permissions (:obj:`yandex_music.Permissions`): Объект класса :class:`yandex_music.Permissions` предоставляющий permissions (:obj:`yandex_music.Permissions`): Объект класса :class:`yandex_music.Permissions` представляющий
информацию о правах пользователя. информацию о правах пользователя.
subscription (:obj:`yandex_music.Subscription`): Объект класса :class:`yandex_music.Subscription` предоставляющий subscription (:obj:`yandex_music.Subscription`): Объект класса :class:`yandex_music.Subscription` представляющий
информацию о подписках информацию о подписках
cache_limit (:obj:`int`, optional): Максимальное количество загруженных треков. cache_limit (:obj:`int`, optional): Максимальное количество загруженных треков.
subeditor (:obj:`bool`, optional): Наличие статуса модератора проверки корректности информации. subeditor (:obj:`bool`, optional): Наличие статуса модератора проверки корректности информации.
subeditor_level (:obj:`int`, optional): Уровень статуса модератора. subeditor_level (:obj:`int`, optional): Уровень статуса модератора.
plus (:obj:`yandex_music.Plus`, optional): Объект класса :class:`yandex_music.Plus` предоставляющий информацию о plus (:obj:`yandex_music.Plus`, optional): Объект класса :class:`yandex_music.Plus` представляющий информацию о
Plus подписке. Plus подписке.
default_email (:obj:`str`, optional): Основной e-mail адрес аккаунта. default_email (:obj:`str`, optional): Основной e-mail адрес аккаунта.
skips_per_hour (:obj:`int`, optional): Количество переключение треков на радио в час. skips_per_hour (:obj:`int`, optional): Количество переключение треков на радио в час.

ファイルの表示

@ -7,7 +7,7 @@ from yandex_music import YandexMusicObject
class Subscription(YandexMusicObject): class Subscription(YandexMusicObject):
"""Класс, предоставляющий информацию о подписках пользователя. """Класс, представляющий информацию о подписках пользователя.
Attributes: Attributes:
auto_renewable (:obj:`list` из :obj:`yandex_music.AutoRenewable`): Список объектов класса auto_renewable (:obj:`list` из :obj:`yandex_music.AutoRenewable`): Список объектов класса

ファイルの表示

@ -7,16 +7,55 @@ from yandex_music import YandexMusicObject
class UserSettings(YandexMusicObject): class UserSettings(YandexMusicObject):
"""Класс, предоставляющий настройки пользователя. """Класс, представляющий настройки пользователя.
Доступные значения для поля `theme`: `white`, `black`. Note:
Доступные значения для полей `user_music_visibility` и `user_social_visibility`: `private`, `public`. Доступные значения для поля `theme`: `white`, `black`.
Доступные значения для полей `user_music_visibility` и `user_social_visibility`: `private`, `public`.
Notes:
`promos_disabled`, `ads_disabled`, `rbt_disabled` устарели и не работают.
`last_fm_scrobbling_enabled`, `facebook_scrobbling_enabled` выглядят устаревшими.
Attributes: Attributes:
uid (:obj:`int`): Уникальный идентификатор пользователя.
last_fm_scrobbling_enabled (:obj:`bool`): Скробблинг lastfm.
shuffle_enabled (:obj:`bool`): Переключать треки в случайном порядке.
volume_percents (:obj:`int`): Громкость звука в процентах.
modified (:obj:`str`): Дата изменения настроек.
facebook_scrobbling_enabled (:obj:`bool`): Скробблинг facebook.
add_new_track_on_playlist_top (:obj:`bool`): Добавлять новые треки в начало плейлиста.
user_music_visibility (:obj:`str`): Публичный доступ к моей фонотеке.
user_social_visibility (:obj:`str`): Показывать соцсети на странице.
rbt_disabled (:obj:`bool`): TODO (неиспользуемая фича).
theme (:obj:`str`): Тема оформления.
promos_disabled (:obj:`bool`): Не показывать рекламируемый контент).
auto_play_radio (:obj:`bool`): Бесконечный поток музыки.
ads_disabled (:obj:`bool`): Не показывать рекламу.
disk_enabled (:obj:`bool`): TODO.
show_disk_tracks_in_library (:obj:`bool`): Показывать локальные треки в библиотеке.
client (:obj:`yandex_music.Client`): Объект класса :class:`yandex_music.Client` представляющий клиент Yandex client (:obj:`yandex_music.Client`): Объект класса :class:`yandex_music.Client` представляющий клиент Yandex
Music. Music.
Args: Args:
uid (:obj:`int`): Уникальный идентификатор пользователя.
last_fm_scrobbling_enabled (:obj:`bool`): Скробблинг lastfm.
shuffle_enabled (:obj:`bool`): Переключать треки в случайном порядке.
volume_percents (:obj:`int`): Громкость звука в процентах.
modified (:obj:`str`): Дата изменения настроек.
facebook_scrobbling_enabled (:obj:`bool`): Скробблинг facebook.
add_new_track_on_playlist_top (:obj:`bool`): Добавлять новые треки в начало плейлиста.
user_music_visibility (:obj:`str`): Публичный доступ к моей фонотеке.
user_social_visibility (:obj:`str`): Показывать соцсети на странице.
rbt_disabled (:obj:`bool`): TODO (неиспользуемая фича).
theme (:obj:`str`): Тема оформления.
promos_disabled (:obj:`bool`): Не показывать рекламируемый контент).
auto_play_radio (:obj:`bool`): Бесконечный поток музыки.
ads_disabled (:obj:`bool`, optional): Не показывать рекламу.
disk_enabled (:obj:`bool`, optional): TODO.
show_disk_tracks_in_library (:obj:`bool`, optional): Показывать локальные треки в библиотеке.
client (:obj:`yandex_music.Client`, optional): Объект класса :class:`yandex_music.Client` представляющий клиент client (:obj:`yandex_music.Client`, optional): Объект класса :class:`yandex_music.Client` представляющий клиент
Yandex Music. Yandex Music.
**kwargs: Произвольные ключевые аргументы полученные от API. **kwargs: Произвольные ключевые аргументы полученные от API.

ファイルの表示

@ -7,7 +7,7 @@ from yandex_music import YandexMusicObject
class ArtistAlbums(YandexMusicObject): class ArtistAlbums(YandexMusicObject):
"""Класс представляющий страницу списка альбомов артиста. """Класс, представляющий страницу списка альбомов артиста.
Attributes: Attributes:
albums (:obj:`list` из :obj:`yandex_music.Album`): Список альбомов артиста. albums (:obj:`list` из :obj:`yandex_music.Album`): Список альбомов артиста.

ファイルの表示

@ -7,7 +7,7 @@ from yandex_music import YandexMusicObject
class ArtistTracks(YandexMusicObject): class ArtistTracks(YandexMusicObject):
"""Класс представляющий страницу списка треков артиста. """Класс, представляющий страницу списка треков артиста.
Attributes: Attributes:
tracks (:obj:`list` из :obj:`yandex_music.Track`): Список треков артиста. tracks (:obj:`list` из :obj:`yandex_music.Track`): Список треков артиста.

ファイルの表示

@ -1,7 +1,8 @@
import logging import logging
import functools import functools
from datetime import datetime from datetime import datetime
from typing import Callable, Union, List, Optional from typing import Callable, Union, List, Optional, Dict
from yandex_music import YandexMusicObject, Status, Settings, PermissionAlerts, Experiments, Artist, Album, Playlist, \ from yandex_music import YandexMusicObject, Status, Settings, PermissionAlerts, Experiments, Artist, Album, Playlist, \
TracksList, Track, AlbumsLikes, ArtistsLikes, PlaylistsLikes, Feed, PromoCodeStatus, DownloadInfo, Search, \ TracksList, Track, AlbumsLikes, ArtistsLikes, PlaylistsLikes, Feed, PromoCodeStatus, DownloadInfo, Search, \
@ -48,17 +49,18 @@ def log(method):
class Client(YandexMusicObject): class Client(YandexMusicObject):
"""Класс представляющий клиент Yandex Music. """Класс, представляющий клиент Yandex Music.
При `fetch_account_status = False` многие сокращения перестанут работать в связи с тем, что неоткуда будет взять Note:
uid аккаунта для отправки запроса. Так же в большинстве методов придётся передавать uid явно. При `fetch_account_status = False` многие сокращения перестанут работать в связи с тем, что неоткуда будет взять
uid аккаунта для отправки запроса. Так же в большинстве методов придётся передавать `uid` явно.
Attributes: Attributes:
logger (:obj:`logging.Logger`): Объект логера. logger (:obj:`logging.Logger`): Объект логера.
token (:obj:`str`): Уникальный ключ для аутентификации. token (:obj:`str`): Уникальный ключ для аутентификации.
base_url (:obj:`str`): Ссылка на API Yandex Music. base_url (:obj:`str`): Ссылка на API Yandex Music.
oauth_url (:obj:`str`): Ссылка на OAuth Yandex Music. oauth_url (:obj:`str`): Ссылка на OAuth Yandex Music.
me (:obj:`yandex_music.Status`): Объект класса :class:`yandex_music.Status` предоставляющего основную me (:obj:`yandex_music.Status`): Объект класса :class:`yandex_music.Status` представляющего основную
информацию об аккаунте. информацию об аккаунте.
Args: Args:
@ -137,7 +139,8 @@ class Client(YandexMusicObject):
def from_token(cls, token: str, *args, **kwargs) -> 'Client': def from_token(cls, token: str, *args, **kwargs) -> 'Client':
"""Инициализция клиента по токену. """Инициализция клиента по токену.
Ничем не отличается от Client(token). Так исторически сложилось. Note:
Ничем не отличается от `Client(token)`. Так исторически сложилось.
Args: Args:
token (:obj:`str`, optional): Уникальный ключ для аутентификации. token (:obj:`str`, optional): Уникальный ключ для аутентификации.
@ -226,7 +229,7 @@ class Client(YandexMusicObject):
**kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос).
Returns: Returns:
:obj:`yandex_music.Status`: Объекта класса :class:`yandex_music.Status` предоставляющий информацию об :obj:`yandex_music.Status`: Объекта класса :class:`yandex_music.Status` представляющий информацию об
аккаунте если валиден, иначе :obj:`None`. аккаунте если валиден, иначе :obj:`None`.
Raises: Raises:
@ -249,8 +252,8 @@ class Client(YandexMusicObject):
**kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос).
Returns: Returns:
:obj:`yandex_music.UserSettings`: Объекта класса :class:`yandex_music.UserSettings` предоставляющий :obj:`yandex_music.UserSettings`: Объекта класса :class:`yandex_music.UserSettings` представляющий
настройки пользователя, иначе :obj:`None`. настройки пользователя, иначе :obj:`None`.
Raises: Raises:
:class:`yandex_music.YandexMusicError` :class:`yandex_music.YandexMusicError`
@ -263,20 +266,25 @@ class Client(YandexMusicObject):
return UserSettings.de_json(result, self) return UserSettings.de_json(result, self)
@log @log
def account_settings_set(self, param: str, value: Union[str, int, bool], timeout: Union[int, float] = None, def account_settings_set(self, param: str = None, value: Union[str, int, bool] = None,
data: Dict[str, Union[str, int, bool]] = None, timeout: Union[int, float] = None,
*args, **kwargs) -> Optional[Settings]: *args, **kwargs) -> Optional[Settings]:
"""Изменение настроек текущего пользователя. """Изменение настроек текущего пользователя.
Доступные названия параметров есть поля в классе :class:`yandex_music.UserSettings`, только в CamelCase. Note:
Доступные названия параметров есть поля в классе :class:`yandex_music.UserSettings`, только в CamelCase.
Args: Args:
param (:obj:`str`): Название параметра для изменения.
value (:obj:`str` | :obj:`int` | :obj:`bool`): Значение параметра.
data (:obj:`dict`): Словарь параметров и значений для множественного изменения.
timeout (:obj:`int` | :obj:`float`, optional): Если это значение указано, используется как время ожидания timeout (:obj:`int` | :obj:`float`, optional): Если это значение указано, используется как время ожидания
ответа от сервера вместо указанного при создании пула. ответа от сервера вместо указанного при создании пула.
**kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос).
Returns: Returns:
:obj:`yandex_music.UserSettings`: Объекта класса :class:`yandex_music.UserSettings` предоставляющий :obj:`yandex_music.UserSettings`: Объекта класса :class:`yandex_music.UserSettings` представляющий
настройки пользователя, иначе :obj:`None`. настройки пользователя, иначе :obj:`None`.
Raises: Raises:
:class:`yandex_music.YandexMusicError` :class:`yandex_music.YandexMusicError`
@ -284,7 +292,10 @@ class Client(YandexMusicObject):
url = f'{self.base_url}/account/settings' url = f'{self.base_url}/account/settings'
result = self._request.get(url, params={param: value}, timeout=timeout, *args, **kwargs) if not data:
data = {param: value}
result = self._request.post(url, data=data, timeout=timeout, *args, **kwargs)
return UserSettings.de_json(result, self) return UserSettings.de_json(result, self)
@ -298,7 +309,7 @@ class Client(YandexMusicObject):
**kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос).
Returns: Returns:
:obj:`yandex_music.Settings`: Объекта класса :class:`yandex_music.Settings` предоставляющий информацию о :obj:`yandex_music.Settings`: Объекта класса :class:`yandex_music.Settings` представляющий информацию о
предлагаемых продуктах, иначе :obj:`None`. предлагаемых продуктах, иначе :obj:`None`.
Raises: Raises:
@ -419,8 +430,9 @@ class Client(YandexMusicObject):
*args, **kwargs) -> Optional[Landing]: *args, **kwargs) -> Optional[Landing]:
"""Получение лендинг-страницы содержащий блоки с новыми релизами, чартами, плейлистами с новинками и т.д. """Получение лендинг-страницы содержащий блоки с новыми релизами, чартами, плейлистами с новинками и т.д.
Поддерживаемые типы блоков: personalplaylists, promotions, new-releases, new-playlists, mixes,c hart, artists, Note:
albums, playlists, play_contexts. Поддерживаемые типы блоков: `personalplaylists`, `promotions`, `new-releases`, `new-playlists`, `mixes`,
`chart`, `artists`, `albums`, `playlists`, `play_contexts`.
Args: Args:
blocks (:obj:`str` | :obj:`list` из :obj:`str`): Блок или список блоков необходимых для выдачи. blocks (:obj:`str` | :obj:`list` из :obj:`str`): Блок или список блоков необходимых для выдачи.
@ -504,7 +516,7 @@ class Client(YandexMusicObject):
Returns: Returns:
:obj:`yandex_music.Supplement`: Объект класса `yandex_music.Supplement` представляющий дополнительную :obj:`yandex_music.Supplement`: Объект класса `yandex_music.Supplement` представляющий дополнительную
информацию о треке. информацию о треке.
Raises: Raises:
:class:`yandex_music.YandexMusicError` :class:`yandex_music.YandexMusicError`
@ -529,7 +541,7 @@ class Client(YandexMusicObject):
Returns: Returns:
:obj:`yandex_music.SimilarTracks`: Объект класса `yandex_music.SimilarTracks` представляющий список похожих :obj:`yandex_music.SimilarTracks`: Объект класса `yandex_music.SimilarTracks` представляющий список похожих
треков на другой трек. треков на другой трек.
Raises: Raises:
:class:`yandex_music.YandexMusicError` :class:`yandex_music.YandexMusicError`
@ -704,16 +716,19 @@ class Client(YandexMusicObject):
*args, **kwargs) -> Optional[Settings]: *args, **kwargs) -> Optional[Settings]:
"""Получение настроек пользователя. """Получение настроек пользователя.
Для получения настроек пользователя нужно быть авторизованным или владеть `user_id`. Note:
Для получения настроек пользователя нужно быть авторизованным или владеть `user_id`.
Args: Args:
user_id (:obj:`str` | :obj:`int`, optional): Уникальный идентификатор пользователя чьи настройки хотим
получить.
timeout (:obj:`int` | :obj:`float`, optional): Если это значение указано, используется как время ожидания timeout (:obj:`int` | :obj:`float`, optional): Если это значение указано, используется как время ожидания
ответа от сервера вместо указанного при создании пула. ответа от сервера вместо указанного при создании пула.
**kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос).
Returns: Returns:
:obj:`yandex_music.UserSettings`: Объекта класса :class:`yandex_music.UserSettings` предоставляющий :obj:`yandex_music.UserSettings`: Объекта класса :class:`yandex_music.UserSettings` представляющий
настройки пользователя, иначе :obj:`None`. настройки пользователя, иначе :obj:`None`.
Raises: Raises:
:class:`yandex_music.YandexMusicError` :class:`yandex_music.YandexMusicError`
@ -860,7 +875,8 @@ class Client(YandexMusicObject):
timeout: Union[int, float] = None, *args, **kwargs) -> Optional[Playlist]: timeout: Union[int, float] = None, *args, **kwargs) -> Optional[Playlist]:
"""Изменение видимости плейлиста. """Изменение видимости плейлиста.
Видимость (visibility) может быть задана только одним из двух значений: private, public. Note:
Видимость (`visibility`) может быть задана только одним из двух значений: `private`, `public`.
Args: Args:
kind (:obj:`str` | :obj:`int`): Уникальный идентификатор плейлиста. kind (:obj:`str` | :obj:`int`): Уникальный идентификатор плейлиста.
@ -893,8 +909,10 @@ class Client(YandexMusicObject):
*args, **kwargs) -> Optional[Playlist]: *args, **kwargs) -> Optional[Playlist]:
"""Изменение плейлиста. """Изменение плейлиста.
Для получения отличий есть вспомогательный класс :class:`from yandex_music.utils.difference.Difference`. Note:
Так же существуют уже готовые методы-обёртки над операциями. Для получения отличий есть вспомогательный класс :class:`yandex_music.utils.difference.Difference`.
Так же существуют уже готовые методы-обёртки над операциями.
Args: Args:
kind (:obj:`str` | :obj:`int`): Уникальный идентификатор плейлиста. kind (:obj:`str` | :obj:`int`): Уникальный идентификатор плейлиста.
@ -934,7 +952,8 @@ class Client(YandexMusicObject):
timeout: Union[int, float] = None, *args, **kwargs) -> Optional[Playlist]: timeout: Union[int, float] = None, *args, **kwargs) -> Optional[Playlist]:
"""Добавление трека в плейлист. """Добавление трека в плейлист.
Трек можно вставить с любое место плейлиста задав индекс вставки (аргумент at). Note:
Трек можно вставить с любое место плейлиста задав индекс вставки (аргумент `at`).
Args: Args:
kind (:obj:`str` | :obj:`int`): Уникальный идентификатор плейлиста. kind (:obj:`str` | :obj:`int`): Уникальный идентификатор плейлиста.
@ -968,7 +987,8 @@ class Client(YandexMusicObject):
*args, **kwargs) -> Optional[Playlist]: *args, **kwargs) -> Optional[Playlist]:
"""Удаление треков из плейлиста. """Удаление треков из плейлиста.
Для удаление необходимо указать границы с какого по какой элемент (трек) удалить. Note:
Для удаление необходимо указать границы с какого по какой элемент (трек) удалить.
Args: Args:
kind (:obj:`str` | :obj:`int`): Уникальный идентификатор плейлиста. kind (:obj:`str` | :obj:`int`): Уникальный идентификатор плейлиста.
@ -999,7 +1019,8 @@ class Client(YandexMusicObject):
def rotor_account_status(self, timeout: Union[int, float] = None, *args, **kwargs) -> Optional[Status]: def rotor_account_status(self, timeout: Union[int, float] = None, *args, **kwargs) -> Optional[Status]:
"""Получение статуса пользователя с дополнителньыми полями. """Получение статуса пользователя с дополнителньыми полями.
Данный статус отличается от обычного наличием дополнительных полей, например, `skips_per_hour`. Note:
Данный статус отличается от обычного наличием дополнительных полей, например, `skips_per_hour`.
Args: Args:
timeout (:obj:`int` | :obj:`float`, optional): Если это значение указано, используется как время ожидания timeout (:obj:`int` | :obj:`float`, optional): Если это значение указано, используется как время ожидания
@ -1049,7 +1070,9 @@ class Client(YandexMusicObject):
*args, **kwargs) -> List[StationResult]: *args, **kwargs) -> List[StationResult]:
"""Получение всех радиостанций с настройками пользователя. """Получение всех радиостанций с настройками пользователя.
Чтобы определить что за тип станции (жанры, настроения, занятие и т.д.) необходимо смотреть в пол `id_for_from`. Note:
Чтобы определить что за тип станции (жанры, настроения, занятие и т.д.) необходимо смотреть в поле
`id_for_from`.
Args: Args:
language (:obj:`str`): Язык, на котором будет информация о станциях. language (:obj:`str`): Язык, на котором будет информация о станциях.
@ -1078,11 +1101,14 @@ class Client(YandexMusicObject):
*args, **kwargs) -> bool: *args, **kwargs) -> bool:
"""Отправка ответной реакции на происходящее при прослушивании радио. """Отправка ответной реакции на происходящее при прослушивании радио.
Сообщения о начале прослушивания радио, начале и конце трека, его пропуска. Note:
Сообщения о начале прослушивания радио, начале и конце трека, его пропуска.
Известные типы фидбека: `radioStarted`, `trackStarted`, `trackFinished`, `skip`. Известные типы фидбека: `radioStarted`, `trackStarted`, `trackFinished`, `skip`.
Пример `station`: `user:onyourwave`, `genre:allrock`.
Пример `from_`: `mobile-radio-user-123456789`. Пример `station`: `user:onyourwave`, `genre:allrock`.
Пример `from_`: `mobile-radio-user-123456789`.
Args: Args:
station (:obj:`str`): Станция. station (:obj:`str`): Станция.
@ -1138,6 +1164,12 @@ class Client(YandexMusicObject):
"""Сокращение для:: """Сокращение для::
client.rotor_station_feedback(station, 'radioStarted', timestamp, from, *args, **kwargs) client.rotor_station_feedback(station, 'radioStarted', timestamp, from, *args, **kwargs)
Returns:
:obj:`bool`: :obj:`True` при успешном выполнении запроса, иначе :obj:`False`.
Raises:
:class:`yandex_music.YandexMusicError`
""" """
return self.rotor_station_feedback(station, 'radioStarted', timestamp, from_=from_, batch_id=batch_id, return self.rotor_station_feedback(station, 'radioStarted', timestamp, from_=from_, batch_id=batch_id,
timeout=timeout, *args, **kwargs) timeout=timeout, *args, **kwargs)
@ -1149,6 +1181,12 @@ class Client(YandexMusicObject):
"""Сокращение для:: """Сокращение для::
client.rotor_station_feedback(station, 'trackStarted', timestamp, track_id, *args, **kwargs) client.rotor_station_feedback(station, 'trackStarted', timestamp, track_id, *args, **kwargs)
Returns:
:obj:`bool`: :obj:`True` при успешном выполнении запроса, иначе :obj:`False`.
Raises:
:class:`yandex_music.YandexMusicError`
""" """
return self.rotor_station_feedback(station, 'trackStarted', timestamp, track_id=track_id, batch_id=batch_id, return self.rotor_station_feedback(station, 'trackStarted', timestamp, track_id=track_id, batch_id=batch_id,
timeout=timeout, *args, **kwargs) timeout=timeout, *args, **kwargs)
@ -1161,7 +1199,13 @@ class Client(YandexMusicObject):
"""Сокращение для:: """Сокращение для::
client.rotor_station_feedback(station, 'trackFinished', timestamp, track_id, total_played_seconds, client.rotor_station_feedback(station, 'trackFinished', timestamp, track_id, total_played_seconds,
*args, **kwargs) *args, **kwargs)
Returns:
:obj:`bool`: :obj:`True` при успешном выполнении запроса, иначе :obj:`False`.
Raises:
:class:`yandex_music.YandexMusicError`
""" """
return self.rotor_station_feedback(station, 'trackFinished', timestamp, track_id=track_id, return self.rotor_station_feedback(station, 'trackFinished', timestamp, track_id=track_id,
total_played_seconds=total_played_seconds, batch_id=batch_id, total_played_seconds=total_played_seconds, batch_id=batch_id,
@ -1175,7 +1219,13 @@ class Client(YandexMusicObject):
"""Сокращение для:: """Сокращение для::
client.rotor_station_feedback(station, 'skip', timestamp, track_id, total_played_seconds, client.rotor_station_feedback(station, 'skip', timestamp, track_id, total_played_seconds,
*args, **kwargs) *args, **kwargs)
Returns:
:obj:`bool`: :obj:`True` при успешном выполнении запроса, иначе :obj:`False`.
Raises:
:class:`yandex_music.YandexMusicError`
""" """
return self.rotor_station_feedback(station, 'skip', timestamp, track_id=track_id, return self.rotor_station_feedback(station, 'skip', timestamp, track_id=track_id,
total_played_seconds=total_played_seconds, batch_id=batch_id, total_played_seconds=total_played_seconds, batch_id=batch_id,
@ -1211,13 +1261,14 @@ class Client(YandexMusicObject):
timeout: Union[int, float] = None, *args, **kwargs) -> bool: timeout: Union[int, float] = None, *args, **kwargs) -> bool:
"""Изменение настроек определённой станции. """Изменение настроек определённой станции.
Доступные значения для `mood_energy`: `fun`, `active`, `calm`, `sad`, `all`. Note:
Доступные значения для `diversity`: `favorite`, `popular`, `discover`, `default`. Доступные значения для `mood_energy`: `fun`, `active`, `calm`, `sad`, `all`.
Доступные значения для `language`: `not-russian`, `russian`, `any`.
У станций в `restrictions` есть Enum'ы, а в них `possible_values` - доступные значения для поля. Доступные значения для `diversity`: `favorite`, `popular`, `discover`, `default`.
Не некоторых аккаунтах не меняется язык... Доступные значения для `language`: `not-russian`, `russian`, `any`.
У станций в `restrictions` есть Enum'ы, а в них `possible_values` - доступные значения для поля.
Args: Args:
station (:obj:`str`): Станция. station (:obj:`str`): Станция.
@ -1254,15 +1305,17 @@ class Client(YandexMusicObject):
timeout: Union[int, float] = None, *args, **kwargs) -> Optional[StationTracksResult]: timeout: Union[int, float] = None, *args, **kwargs) -> Optional[StationTracksResult]:
"""Получение цепочки треков определённой станции. """Получение цепочки треков определённой станции.
Для продолжения цепочки треков необходимо: Note:
1. Передавать ID трека, что был до этого (первый в цепочки). Для продолжения цепочки треков необходимо:
2. Отправить фидбек о конче или скипе трека, что был передан в `queue`.
3. Отправить фидбек о начале следующего трека (второй в цепочки).
4. Выполнить запрос получения треков. В ответе придёт новые треки или произойдёт сдвиг цепочки на 1 элемент.
Проход по цепочке до коцна не изучен. Часто встречаются дубликаты. 1. Передавать `ID` трека, что был до этого (первый в цепочки).
2. Отправить фидбек о конче или скипе трека, что был передан в `queue`.
3. Отправить фидбек о начале следующего трека (второй в цепочки).
4. Выполнить запрос получения треков. В ответе придёт новые треки или произойдёт сдвиг цепочки на 1 элемент.
Все официальные клиенты выполняют запросы с `settings2 = True`. Проход по цепочке до коцна не изучен. Часто встречаются дубликаты.
Все официальные клиенты выполняют запросы с `settings2 = True`.
Args: Args:
station (:obj:`str`): Станция. station (:obj:`str`): Станция.
@ -1340,7 +1393,8 @@ class Client(YandexMusicObject):
*args, **kwargs) -> Optional[ArtistAlbums]: *args, **kwargs) -> Optional[ArtistAlbums]:
"""Получение альбомов артиста. """Получение альбомов артиста.
Известные значения для sort_by: year, rating. Note:
Известные значения для `sort_by`: `year`, `rating`.
Args: Args:
artist_id (:obj:`str` | :obj:`int`): Уникальный идентификатор артиста. artist_id (:obj:`str` | :obj:`int`): Уникальный идентификатор артиста.
@ -1555,15 +1609,17 @@ class Client(YandexMusicObject):
timeout: Union[int, float] = None, *args, **kwargs) -> Optional[ShotEvent]: timeout: Union[int, float] = None, *args, **kwargs) -> Optional[ShotEvent]:
"""Получение рекламы или шота от Алисы после трека. """Получение рекламы или шота от Алисы после трека.
При получения шота от Алисы `prev_track_id` можно не указывать. Note:
При получения шота от Алисы `prev_track_id` можно не указывать.
Если `context = 'playlist'`, то в `context_item` необходимо передать `{OWNER_PLAYLIST}:{ID_PLAYLIST}`. Если `context = 'playlist'`, то в `context_item` необходимо передать `{OWNER_PLAYLIST}:{ID_PLAYLIST}`.
Плейлист с Алисой имеет владельца с `id = 940441070`. Плейлист с Алисой имеет владельца с `id = 940441070`.
ID плейлиста можно получить из блоков landing'a. Получить шот чужого плейлиста нельзя. ID плейлиста можно получить из блоков landing'a. Получить шот чужого плейлиста нельзя.
Известные значения `context`: `playlist`. Известные значения `context`: `playlist`.
Известные значения `types`: `shot`, `ad`.
Известные значения `types`: `shot`, `ad`.
Args: Args:
prev_track_id (:obj:`str` | :obj:`int`): Уникальный идентификатор предыдущего трека. prev_track_id (:obj:`str` | :obj:`int`): Уникальный идентификатор предыдущего трека.
@ -1578,7 +1634,7 @@ class Client(YandexMusicObject):
Returns: Returns:
:obj:`yandex_music.ShotEvent`: Объекта класса :class:`yandex_music.ShotEvent` :obj:`yandex_music.ShotEvent`: Объекта класса :class:`yandex_music.ShotEvent`
представляющий шоты от Алисы, иначе :obj:`None`. представляющий шоты от Алисы, иначе :obj:`None`.
Raises: Raises:
:class:`yandex_music.YandexMusicError` :class:`yandex_music.YandexMusicError`

ファイルの表示

@ -7,7 +7,7 @@ from yandex_music import YandexMusicObject
class Cover(YandexMusicObject): class Cover(YandexMusicObject):
"""Класс представляющий обложку. """Класс, представляющий обложку.
Attributes: Attributes:
type (:obj:`str`): Тип обложки. type (:obj:`str`): Тип обложки.

ファイルの表示

@ -11,7 +11,7 @@ from yandex_music import YandexMusicObject
class DownloadInfo(YandexMusicObject): class DownloadInfo(YandexMusicObject):
"""Класс представляющий информацию о вариантах загрузки трека. """Класс, представляющий информацию о вариантах загрузки трека.
Attributes: Attributes:
codec (:obj:`str`): Кодек аудиофайла. codec (:obj:`str`): Кодек аудиофайла.

ファイルの表示

@ -7,7 +7,7 @@ from yandex_music import YandexMusicObject
class Icon(YandexMusicObject): class Icon(YandexMusicObject):
"""Класс представляющий иконку. """Класс, представляющий иконку.
Attributes: Attributes:
background_color (:obj:`str`): Цвет заднего фона в HEX. background_color (:obj:`str`): Цвет заднего фона в HEX.

ファイルの表示

@ -7,7 +7,7 @@ from yandex_music import YandexMusicObject
class InvocationInfo(YandexMusicObject): class InvocationInfo(YandexMusicObject):
"""Класс представляющий информацию о запросе. """Класс, представляющий информацию о запросе.
Attributes: Attributes:
hostname (:obj:`str`): Имя удалённого сервера. hostname (:obj:`str`): Имя удалённого сервера.

ファイルの表示

@ -7,7 +7,7 @@ from yandex_music import YandexMusicObject
class Pager(YandexMusicObject): class Pager(YandexMusicObject):
"""Класс представляющий пагинатор. """Класс, представляющий пагинатор.
Attributes: Attributes:
total (:obj:`int`): Всего треков. total (:obj:`int`): Всего треков.

ファイルの表示

@ -7,7 +7,7 @@ from yandex_music import YandexMusicObject
class PermissionAlerts(YandexMusicObject): class PermissionAlerts(YandexMusicObject):
"""Класс представляющий оповещения. """Класс, представляющий оповещения.
Attributes: Attributes:
alerts (:obj:`list` из :obj:`str`): Список оповещений. alerts (:obj:`list` из :obj:`str`): Список оповещений.

ファイルの表示

@ -7,7 +7,7 @@ from yandex_music import YandexMusicObject
class PlaylistAbsence(YandexMusicObject): class PlaylistAbsence(YandexMusicObject):
"""Класс представляющий причину отсутствия плейлиста. """Класс, представляющий причину отсутствия плейлиста.
Attributes: Attributes:
kind (:obj:`int`): Уникальный идентификатор плейлиста. kind (:obj:`int`): Уникальный идентификатор плейлиста.

ファイルの表示

@ -7,7 +7,7 @@ from yandex_music import YandexMusicObject
class User(YandexMusicObject): class User(YandexMusicObject):
"""Класс представляющий пользователя. """Класс, представляющий пользователя.
Attributes: Attributes:
uid (:obj:`int`): Идентификатор пользователя. uid (:obj:`int`): Идентификатор пользователя.

ファイルの表示

@ -7,7 +7,7 @@ from yandex_music import YandexMusicObject
class PromoCodeStatus(YandexMusicObject): class PromoCodeStatus(YandexMusicObject):
"""Класс представляющий статус активации промо-кода. """Класс, представляющий статус активации промо-кода.
Attributes: Attributes:
status (:obj:`str`): Статус операции. status (:obj:`str`): Статус операции.

ファイルの表示

@ -7,7 +7,7 @@ from yandex_music import YandexMusicObject
class Search(YandexMusicObject): class Search(YandexMusicObject):
"""Класс представляющий результаты поиска. """Класс, представляющий результаты поиска.
Attributes: Attributes:
search_request_id (:obj:`str`): ID запроса. search_request_id (:obj:`str`): ID запроса.

ファイルの表示

@ -7,7 +7,7 @@ from yandex_music import YandexMusicObject
class TrackShort(YandexMusicObject): class TrackShort(YandexMusicObject):
"""Класс представляющий укороченную версию трека с неполными данными. """Класс, представляющий укороченную версию трека с неполными данными.
Attributes: Attributes:
id (:obj:`str`): Уникальный идентификатор трека. id (:obj:`str`): Уникальный идентификатор трека.

ファイルの表示

@ -7,7 +7,7 @@ from yandex_music import YandexMusicObject
class TracksList(YandexMusicObject): class TracksList(YandexMusicObject):
"""Класс представляющий список треков. """Класс, представляющий список треков.
Attributes: Attributes:
uid (:obj:`int`): Уникальный идентификатор пользователя. uid (:obj:`int`): Уникальный идентификатор пользователя.

ファイルの表示

@ -7,7 +7,7 @@ from yandex_music import YandexMusicObject
class CaptchaResponse(YandexMusicObject): class CaptchaResponse(YandexMusicObject):
"""Класс представляющий ответ сервера с запросом на ввод капчи. """Класс, представляющий ответ сервера с запросом на ввод капчи.
Attributes: Attributes:
x_captcha_url (:obj:`str`): Ссылка на изображение с капчей. x_captcha_url (:obj:`str`): Ссылка на изображение с капчей.

ファイルの表示

@ -26,7 +26,7 @@ logging.getLogger('urllib3').setLevel(logging.WARNING)
class Request: class Request:
"""Вспомогателньный класс для yandex_music предоставляющий методы для выполнения POST и GET запросов, скачивания """Вспомогателньный класс для yandex_music представляющий методы для выполнения POST и GET запросов, скачивания
файлов. файлов.
Args: Args: