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

Добавлена документация для 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.genre
yandex_music.track
yandex_music.status
yandex_music.account
yandex_music.likes
yandex_music.album
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):
"""Класс, предоставляющий основную информацию об аккаунте пользователя.
"""Класс, представляющий основную информацию об аккаунте пользователя.
Attributes:
now (:obj:`str`): Текущая дата и время.

ファイルの表示

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

ファイルの表示

@ -10,16 +10,16 @@ class Status(YandexMusicObject):
"""Класс, представляющий подробную информацию об аккаунте пользователя.
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`): Максимальное количество загруженных треков.
subeditor (:obj:`bool`): Наличие статуса модератора проверки корректности информации.
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 адрес аккаунта.
skips_per_hour (:obj:`int`): Количество переключение треков на радио в час.
@ -29,16 +29,16 @@ class Status(YandexMusicObject):
Music.
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): Максимальное количество загруженных треков.
subeditor (:obj:`bool`, 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 подписке.
default_email (:obj:`str`, optional): Основной e-mail адрес аккаунта.
skips_per_hour (:obj:`int`, optional): Количество переключение треков на радио в час.

ファイルの表示

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

ファイルの表示

@ -7,16 +7,55 @@ from yandex_music import YandexMusicObject
class UserSettings(YandexMusicObject):
"""Класс, предоставляющий настройки пользователя.
"""Класс, представляющий настройки пользователя.
Доступные значения для поля `theme`: `white`, `black`.
Доступные значения для полей `user_music_visibility` и `user_social_visibility`: `private`, `public`.
Note:
Доступные значения для поля `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:
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
Music.
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` представляющий клиент
Yandex Music.
**kwargs: Произвольные ключевые аргументы полученные от API.

ファイルの表示

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

ファイルの表示

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

ファイルの表示

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

ファイルの表示

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

ファイルの表示

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

ファイルの表示

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

ファイルの表示

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

ファイルの表示

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

ファイルの表示

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

ファイルの表示

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

ファイルの表示

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

ファイルの表示

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

ファイルの表示

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

ファイルの表示

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

ファイルの表示

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

ファイルの表示

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

ファイルの表示

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