Добавлено выключение предупреждения о новом поле от API
このコミットが含まれているのは:
コミット
4cc727211f
|
@ -62,8 +62,6 @@ class Account(YandexMusicObject):
|
|||
has_info_for_app_metrica: bool = False,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.now = now
|
||||
self.service_available = service_available
|
||||
|
||||
|
@ -85,6 +83,8 @@ class Account(YandexMusicObject):
|
|||
if self.uid:
|
||||
self._id_attrs = (self.uid,)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
def download_avatar(self, filename: str, format_: str = 'normal') -> None:
|
||||
"""Загрузка изображения пользователя.
|
||||
|
||||
|
|
|
@ -41,8 +41,6 @@ class AutoRenewable(YandexMusicObject):
|
|||
order_id: Optional[int] = None,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.expires = expires
|
||||
self.vendor = vendor
|
||||
self.vendor_help_url = vendor_help_url
|
||||
|
@ -55,6 +53,8 @@ class AutoRenewable(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (self.expires, self.vendor, self.vendor_help_url, self.product, self.finished)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['AutoRenewable']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -23,13 +23,13 @@ class PassportPhone(YandexMusicObject):
|
|||
phone: str,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.phone = phone
|
||||
|
||||
self.client = client
|
||||
self._id_attrs = (self.phone,)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['PassportPhone']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -29,8 +29,6 @@ class Permissions(YandexMusicObject):
|
|||
default: List[str],
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.until = until
|
||||
self.values = values
|
||||
self.default = default
|
||||
|
@ -38,6 +36,8 @@ class Permissions(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (self.until, self.values, self.default)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['Permissions']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -26,14 +26,14 @@ class Plus(YandexMusicObject):
|
|||
is_tutorial_completed: bool,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.has_plus = has_plus
|
||||
self.is_tutorial_completed = is_tutorial_completed
|
||||
|
||||
self.client = client
|
||||
self._id_attrs = (self.has_plus, self.is_tutorial_completed)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['Plus']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -26,14 +26,14 @@ class Price(YandexMusicObject):
|
|||
currency: str,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.amount = amount
|
||||
self.currency = currency
|
||||
|
||||
self.client = client
|
||||
self._id_attrs = (self.amount, self.currency)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['Price']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -71,8 +71,6 @@ class Product(YandexMusicObject):
|
|||
payment_method_types: List[str] = None,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.product_id = product_id
|
||||
self.type = type_
|
||||
self.common_period_duration = common_period_duration
|
||||
|
@ -96,6 +94,8 @@ class Product(YandexMusicObject):
|
|||
self._id_attrs = (self.product_id, self.type, self.common_period_duration, self.duration,
|
||||
self.trial_duration, self.product_id, self.feature, self.debug)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['Product']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -23,13 +23,13 @@ class RenewableRemainder(YandexMusicObject):
|
|||
days: int,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.days = days
|
||||
|
||||
self.client = client
|
||||
self._id_attrs = (self.days,)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['RenewableRemainder']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -56,8 +56,6 @@ class Status(YandexMusicObject):
|
|||
premium_region: Optional[int] = None,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.account = account
|
||||
self.permissions = permissions
|
||||
self.advertisement = advertisement
|
||||
|
@ -75,6 +73,8 @@ class Status(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (self.account, self.permissions, self.advertisement)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['Status']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -35,8 +35,6 @@ class Subscription(YandexMusicObject):
|
|||
end: Optional[str] = None,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.non_auto_renewable_remainder = non_auto_renewable_remainder
|
||||
self.auto_renewable = auto_renewable
|
||||
self.can_start_trial = can_start_trial
|
||||
|
@ -46,6 +44,8 @@ class Subscription(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (self.non_auto_renewable_remainder, self.auto_renewable)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['Subscription']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -78,8 +78,6 @@ class UserSettings(YandexMusicObject):
|
|||
show_disk_tracks_in_library: Optional[bool] = None,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.uid = uid
|
||||
self.last_fm_scrobbling_enabled = last_fm_scrobbling_enabled
|
||||
self.shuffle_enabled = shuffle_enabled
|
||||
|
@ -105,6 +103,8 @@ class UserSettings(YandexMusicObject):
|
|||
self.promos_disabled, self.auto_play_radio, self.ads_disabled, self.disk_enabled,
|
||||
self.show_disk_tracks_in_library)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['UserSettings']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -106,8 +106,6 @@ class Album(YandexMusicObject):
|
|||
regions=None,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.id = id_
|
||||
|
||||
self.error = error
|
||||
|
@ -141,6 +139,8 @@ class Album(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (self.id,)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
def with_tracks(self, *args, **kwargs) -> Optional['Album']:
|
||||
"""Сокращение для::
|
||||
|
||||
|
|
|
@ -25,14 +25,14 @@ class Label(YandexMusicObject):
|
|||
name: str,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.id = id_
|
||||
self.name = name
|
||||
|
||||
self.client = client
|
||||
self._id_attrs = (self.id, self.name)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['Label']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -31,14 +31,14 @@ class TrackPosition(YandexMusicObject):
|
|||
index: int,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.volume = volume
|
||||
self.index = index
|
||||
|
||||
self.client = client
|
||||
self._id_attrs = (self.volume, self.index)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['TrackPosition']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -101,8 +101,6 @@ class Artist(YandexMusicObject):
|
|||
end_date: Optional[str] = None,
|
||||
client: 'Client' = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.id = id_
|
||||
|
||||
self.reason = reason
|
||||
|
@ -137,6 +135,8 @@ class Artist(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (self.id, self.name, self.cover)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
def download_og_image(self, filename: str, size: str = '200x200') -> None:
|
||||
"""Загрузка изображения для Open Graph.
|
||||
|
||||
|
|
|
@ -26,14 +26,14 @@ class ArtistAlbums(YandexMusicObject):
|
|||
pager: Optional['Pager'],
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.albums = albums
|
||||
self.pager = pager
|
||||
|
||||
self.client = client
|
||||
self._id_attrs = (self.pager, self.albums)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['ArtistAlbums']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -26,14 +26,14 @@ class ArtistTracks(YandexMusicObject):
|
|||
pager: Optional['Pager'],
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.tracks = tracks
|
||||
self.pager = pager
|
||||
|
||||
self.client = client
|
||||
self._id_attrs = (self.pager, self.tracks)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['ArtistTracks']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -62,8 +62,6 @@ class BriefInfo(YandexMusicObject):
|
|||
tracks_in_chart: List['Chart'] = None,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.artist = artist
|
||||
self.albums = albums
|
||||
self.playlists = playlists
|
||||
|
@ -85,6 +83,8 @@ class BriefInfo(YandexMusicObject):
|
|||
self.popular_tracks, self.similar_artists, self.all_covers, self.concerts, self.videos,
|
||||
self.vinyls, self.has_promotions, self.playlist_ids)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['BriefInfo']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -36,8 +36,6 @@ class Counts(YandexMusicObject):
|
|||
also_tracks: int,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.tracks = tracks
|
||||
self.direct_albums = direct_albums
|
||||
self.also_albums = also_albums
|
||||
|
@ -46,6 +44,8 @@ class Counts(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (self.tracks, self.direct_albums, self.also_albums, self.also_tracks)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['Counts']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -30,8 +30,6 @@ class Description(YandexMusicObject):
|
|||
uri: str,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.text = text
|
||||
|
||||
self.uri = uri
|
||||
|
@ -39,6 +37,8 @@ class Description(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (self.text, self.uri)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['Description']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -34,8 +34,6 @@ class Link(YandexMusicObject):
|
|||
social_network: Optional[str] = None,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.title = title
|
||||
self.href = href
|
||||
self.type = type_
|
||||
|
@ -45,6 +43,8 @@ class Link(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (self.title, self.href, self.type)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['Link']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -29,8 +29,6 @@ class Ratings(YandexMusicObject):
|
|||
day: Optional[int] = None,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.week = week
|
||||
self.month = month
|
||||
|
||||
|
@ -39,6 +37,8 @@ class Ratings(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (self.week, self.month)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['Ratings']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -44,8 +44,6 @@ class Vinyl(YandexMusicObject):
|
|||
picture: Optional[str] = None,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.url = url
|
||||
self.picture = picture
|
||||
self.title = title
|
||||
|
@ -59,6 +57,8 @@ class Vinyl(YandexMusicObject):
|
|||
self._id_attrs = (self.title, self.price, self.year, self.url, self.price,
|
||||
self.media, self.offer_id, self.artist_ids)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['Vinyl']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -35,7 +35,7 @@ class YandexMusicObject:
|
|||
|
||||
@staticmethod
|
||||
def handle_unknown_kwargs(obj, **kwargs):
|
||||
if kwargs:
|
||||
if kwargs and obj.client.report_new_fields:
|
||||
logger.warning(f'Found unknown fields received from API! Please copy warn message '
|
||||
f'and send to {new_issue_by_template_url} (github issue), thank you!')
|
||||
logger.warning(f'Type: {type(obj)}; kwargs: {kwargs}')
|
||||
|
|
|
@ -54,6 +54,7 @@ class Client(YandexMusicObject):
|
|||
base_url (:obj:`str`): Ссылка на API Yandex Music.
|
||||
oauth_url (:obj:`str`): Ссылка на OAuth Yandex Music.
|
||||
me (:obj:`yandex_music.Status`): Информация об аккаунте.
|
||||
report_new_fields (:obj:`bool`): Включены ли сообщения о новых полях от API, которых нет в библиотеке.
|
||||
|
||||
Args:
|
||||
token (:obj:`str`, optional): Уникальный ключ для аутентификации.
|
||||
|
@ -62,10 +63,11 @@ class Client(YandexMusicObject):
|
|||
oauth_url (:obj:`str`, optional): Ссылка на OAuth Yandex Music.
|
||||
request (:obj:`yandex_music.utils.request.Request`, optional): Пре-инициализация
|
||||
:class:`yandex_music.utils.request.Request`.
|
||||
report_new_fields (:obj:`bool`, optional): Включить сообщения о новых полях от API, которых нет в библиотеке.
|
||||
"""
|
||||
|
||||
def __init__(self, token: str = None, fetch_account_status: bool = True, base_url: str = None,
|
||||
oauth_url: str = None, request: Request = None) -> None:
|
||||
oauth_url: str = None, request: Request = None, report_new_fields=False) -> None:
|
||||
self.logger = logging.getLogger(__name__)
|
||||
self.token = token
|
||||
|
||||
|
@ -87,6 +89,8 @@ class Client(YandexMusicObject):
|
|||
if fetch_account_status:
|
||||
self.me = self.account_status()
|
||||
|
||||
self.report_new_fields = report_new_fields
|
||||
|
||||
@classmethod
|
||||
def from_credentials(cls, username: str, password: str, x_captcha_answer: str = None, x_captcha_key: str = None,
|
||||
captcha_callback: Callable[[Captcha], str] = None, *args, **kwargs) -> 'Client':
|
||||
|
@ -435,7 +439,7 @@ class Client(YandexMusicObject):
|
|||
|
||||
url = f'{self.base_url}/landing3'
|
||||
|
||||
result = self._request.get(url, {'blocks': blocks}, timeout=timeout, *args, **kwargs)
|
||||
result = self._request.get(url, {'blocks': blocks, 'eitherUserId': '10254713668400548221'}, timeout=timeout, *args, **kwargs)
|
||||
|
||||
return Landing.de_json(result, self)
|
||||
|
||||
|
|
|
@ -47,8 +47,6 @@ class Cover(YandexMusicObject):
|
|||
error: Optional[str] = None,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.type = type_
|
||||
self.uri = uri
|
||||
self.items_uri = items_uri
|
||||
|
@ -62,6 +60,8 @@ class Cover(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (self.prefix, self.version, self.uri, self.items_uri)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
def download(self, filename: str, index: int = 0, size: str = '200x200') -> None:
|
||||
"""Загрузка обложки.
|
||||
|
||||
|
|
|
@ -51,6 +51,8 @@ class DownloadInfo(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (self.codec, self.bitrate_in_kbps, self.gain, self.preview, self.download_info_url)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@staticmethod
|
||||
def _get_text_node_data(elements: 'NodeList') -> str:
|
||||
""":obj:`str`: Получение текстовой информации из узлов XML элемента."""
|
||||
|
|
|
@ -26,14 +26,14 @@ class AlbumEvent(YandexMusicObject):
|
|||
tracks: List['Track'],
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.album = album
|
||||
self.tracks = tracks
|
||||
|
||||
self.client = client
|
||||
self._id_attrs = (self.album, self.tracks)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['AlbumEvent']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -29,8 +29,6 @@ class ArtistEvent(YandexMusicObject):
|
|||
similar_to_artists_from_history: List['Artist'],
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.artist = artist
|
||||
self.tracks = tracks
|
||||
self.similar_to_artists_from_history = similar_to_artists_from_history
|
||||
|
@ -38,6 +36,8 @@ class ArtistEvent(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (self.artist, self.tracks, self.similar_to_artists_from_history)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['ArtistEvent']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -32,8 +32,6 @@ class Day(YandexMusicObject):
|
|||
tracks_to_play: List['Track'],
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.day = day
|
||||
self.events = events
|
||||
self.tracks_to_play_with_ads = tracks_to_play_with_ads
|
||||
|
@ -42,6 +40,8 @@ class Day(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (self.day, self.events, self.tracks_to_play_with_ads, self.tracks_to_play)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['Day']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -60,8 +60,6 @@ class Event(YandexMusicObject):
|
|||
tracks_count: Optional[int] = None,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.id = id_
|
||||
self.type = type_
|
||||
|
||||
|
@ -77,6 +75,8 @@ class Event(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (self.id, self.type)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['Event']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -47,8 +47,6 @@ class Feed(YandexMusicObject):
|
|||
next_revision: Optional[str] = None,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.can_get_more_events = can_get_more_events
|
||||
self.pumpkin = pumpkin
|
||||
self.is_wizard_passed = is_wizard_passed
|
||||
|
@ -62,6 +60,8 @@ class Feed(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (self.can_get_more_events, self.generated_playlists, self.headlines, self.today, self.days)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['Feed']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -36,8 +36,6 @@ class GeneratedPlaylist(YandexMusicObject):
|
|||
data: Optional['Playlist'],
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.type = type_
|
||||
self.ready = ready
|
||||
self.notify = notify
|
||||
|
@ -46,6 +44,8 @@ class GeneratedPlaylist(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (self.type, self.ready, self.notify, self.data)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['GeneratedPlaylist']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -29,14 +29,14 @@ class TrackWithAds(YandexMusicObject):
|
|||
track: Optional['Track'],
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.type = type_
|
||||
self.track = track
|
||||
|
||||
self.client = client
|
||||
self._id_attrs = (self.type, self.track)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['TrackWithAds']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -59,8 +59,6 @@ class Genre(YandexMusicObject):
|
|||
hide_in_regions=None,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.id = id_
|
||||
self.weight = weight
|
||||
self.composer_top = composer_top
|
||||
|
@ -79,6 +77,8 @@ class Genre(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (self.id, self.weight, self.composer_top, self.title, self.images, self.show_in_menu)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['Genre']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -26,13 +26,13 @@ class Images(YandexMusicObject):
|
|||
_300x300: Optional[str] = None,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self._208x208 = _208x208
|
||||
self._300x300 = _300x300
|
||||
|
||||
self.client = client
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
def download_208x208(self, filename: str) -> None:
|
||||
"""Загрузка изображения 208x208.
|
||||
|
||||
|
|
|
@ -26,14 +26,14 @@ class Title(YandexMusicObject):
|
|||
full_title: Optional[str] = None,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.title = title
|
||||
self.full_title = full_title
|
||||
|
||||
self.client = client
|
||||
self._id_attrs = (self.title, self.full_title)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['Title']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -32,6 +32,8 @@ class Icon(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (self.background_color, self.image_url)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
def download(self, filename: str, size: str = '200x200') -> None:
|
||||
"""Загрузка иконки.
|
||||
|
||||
|
|
|
@ -37,6 +37,8 @@ class InvocationInfo(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (self.hostname, self.req_id)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['InvocationInfo']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -46,8 +46,6 @@ class Block(YandexMusicObject):
|
|||
data: Optional[Union['PersonalPlaylistsData', 'PlayContextsData']] = None,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.id = id_
|
||||
self.type = type_
|
||||
self.type_for_from = type_for_from
|
||||
|
@ -60,6 +58,8 @@ class Block(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (self.id, self.type, self.type_for_from, self.title, self.entities)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
def __getitem__(self, item: int) -> 'BlockEntity':
|
||||
return self.entities[item]
|
||||
|
||||
|
|
|
@ -46,8 +46,6 @@ class BlockEntity(YandexMusicObject):
|
|||
'Playlist', 'ChartItem', 'PlayContext', 'MixLink']],
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.id = id_
|
||||
self.type = type_
|
||||
self.data = data
|
||||
|
@ -55,6 +53,8 @@ class BlockEntity(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (self.id, self.type, self.data)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['BlockEntity']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -38,8 +38,6 @@ class Chart(YandexMusicObject):
|
|||
track_id: Optional['TrackId'] = None,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.position = position
|
||||
self.progress = progress
|
||||
self.listeners = listeners
|
||||
|
@ -50,6 +48,8 @@ class Chart(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (self.position, self.progress, self.listeners, self.shift, self.track_id)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['Chart']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -38,7 +38,8 @@ class ChartInfo(YandexMusicObject):
|
|||
menu: Optional['ChartInfoMenu'],
|
||||
chart: Optional['Playlist'],
|
||||
chart_description: Optional[str] = None,
|
||||
client: Optional['Client'] = None):
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs):
|
||||
self.id = id_
|
||||
self.type = type_
|
||||
self.type_for_from = type_for_from
|
||||
|
@ -51,6 +52,8 @@ class ChartInfo(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (id_,)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['ChartInfo']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -18,12 +18,14 @@ class ChartInfoMenu(YandexMusicObject):
|
|||
client (:obj:`yandex_music.Client`, optional): Клиент Yandex Music.
|
||||
"""
|
||||
|
||||
def __init__(self, items: List['ChartInfoMenuItem'], client: Optional['Client'] = None):
|
||||
def __init__(self, items: List['ChartInfoMenuItem'], client: Optional['Client'] = None, **kwargs):
|
||||
self.items = items
|
||||
|
||||
self.client = client
|
||||
self._id_attrs = (self.items, )
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['ChartInfoMenu']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -22,7 +22,11 @@ class ChartInfoMenuItem(YandexMusicObject):
|
|||
client (:obj:`yandex_music.Client`, optional): Клиент Yandex Music.
|
||||
"""
|
||||
|
||||
def __init__(self, title: str, url: str, selected: Optional[bool] = None, client: Optional['Client'] = None):
|
||||
def __init__(self, title: str,
|
||||
url: str,
|
||||
selected: Optional[bool] = None,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs):
|
||||
self.title = title
|
||||
self.url = url
|
||||
self.selected = selected
|
||||
|
@ -30,6 +34,8 @@ class ChartInfoMenuItem(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (url, selected)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['ChartInfoMenuItem']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -26,14 +26,14 @@ class ChartItem(YandexMusicObject):
|
|||
chart: Optional['Chart'],
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.track = track
|
||||
self.chart = chart
|
||||
|
||||
self.client = client
|
||||
self._id_attrs = (self.track, self.chart)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['ChartItem']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -29,8 +29,6 @@ class Landing(YandexMusicObject):
|
|||
blocks: List['Block'],
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.pumpkin = pumpkin
|
||||
self.content_id = content_id
|
||||
self.blocks = blocks
|
||||
|
@ -38,6 +36,8 @@ class Landing(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (self.content_id, self.blocks)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
def __getitem__(self, item):
|
||||
return self.blocks[item]
|
||||
|
||||
|
|
|
@ -46,8 +46,6 @@ class MixLink(YandexMusicObject):
|
|||
cover_white: str,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.title = title
|
||||
self.url = url
|
||||
self.url_scheme = url_scheme
|
||||
|
@ -60,6 +58,8 @@ class MixLink(YandexMusicObject):
|
|||
self._id_attrs = (self.url, self.title, self.url_scheme, self.text_color,
|
||||
self.background_color, self.background_image_uri, self.cover_white)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
def download_background_image(self, filename: str, size: str = '200x200') -> None:
|
||||
"""Загрузка заднего фона.
|
||||
|
||||
|
|
|
@ -23,13 +23,13 @@ class PersonalPlaylistsData(YandexMusicObject):
|
|||
is_wizard_passed: bool,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.is_wizard_passed = is_wizard_passed
|
||||
|
||||
self.client = client
|
||||
self._id_attrs = (self.is_wizard_passed,)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['PersonalPlaylistsData']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -39,8 +39,6 @@ class PlayContext(YandexMusicObject):
|
|||
tracks: List['TrackShortOld'],
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.client_ = client_
|
||||
self.context = context
|
||||
self.context_item = context_item
|
||||
|
@ -49,6 +47,8 @@ class PlayContext(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (self.client_, self.context_item, self.context_item, self.tracks)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['PlayContext']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -23,13 +23,13 @@ class PlayContextsData(YandexMusicObject):
|
|||
other_tracks: List['TrackShortOld'],
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.other_tracks = other_tracks
|
||||
|
||||
self.client = client
|
||||
self._id_attrs = (self.other_tracks,)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['PlayContextsData']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -52,8 +52,6 @@ class Promotion(YandexMusicObject):
|
|||
image: str,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.promo_id = promo_id
|
||||
self.title = title
|
||||
self.subtitle = subtitle
|
||||
|
@ -68,6 +66,8 @@ class Promotion(YandexMusicObject):
|
|||
self._id_attrs = (self.promo_id, self.title, self.subtitle, self.heading,
|
||||
self.url, self.url_scheme, self.text_color, self.gradient, self.image)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['Promotion']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -26,14 +26,14 @@ class TrackId(YandexMusicObject):
|
|||
album_id: Optional[int] = None,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.id = id_
|
||||
|
||||
self.album_id = album_id
|
||||
self.client = client
|
||||
self._id_attrs = (self.id, self.album_id)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['TrackId']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -31,14 +31,14 @@ class TrackShortOld(YandexMusicObject):
|
|||
timestamp: str,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.track_id = track_id
|
||||
self.timestamp = timestamp
|
||||
|
||||
self.client = client
|
||||
self._id_attrs = (self.track_id,)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['TrackShortOld']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -47,8 +47,6 @@ class Like(YandexMusicObject):
|
|||
playlist: Optional['Playlist'] = None,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.id = id_
|
||||
self.type = type_
|
||||
|
||||
|
@ -60,6 +58,8 @@ class Like(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (self.id, self.type, self.timestamp, self.album, self.artist, self.playlist)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client', type_: str = None) -> Optional['Like']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -36,6 +36,8 @@ class Pager(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (self.total, self.page, self.per_page)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['Pager']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -27,6 +27,8 @@ class PermissionAlerts(YandexMusicObject):
|
|||
|
||||
self.client = client
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['PermissionAlerts']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -38,8 +38,6 @@ class CaseForms(YandexMusicObject):
|
|||
prepositional: str,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.nominative = nominative
|
||||
self.genitive = genitive
|
||||
self.dative = dative
|
||||
|
@ -51,6 +49,8 @@ class CaseForms(YandexMusicObject):
|
|||
self._id_attrs = (self.nominative, self.genitive, self.dative,
|
||||
self.accusative, self.instrumental, self.prepositional)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['CaseForms']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -26,14 +26,14 @@ class MadeFor(YandexMusicObject):
|
|||
case_forms: Optional['CaseForms'],
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.user_info = user_info
|
||||
self.case_forms = case_forms
|
||||
|
||||
self.client = client
|
||||
self._id_attrs = (self.user_info, self.case_forms)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['MadeFor']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -33,8 +33,6 @@ class PlayCounter(YandexMusicObject):
|
|||
updated: bool,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.value = value
|
||||
self.description = description
|
||||
self.updated = updated
|
||||
|
@ -42,6 +40,8 @@ class PlayCounter(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (self.value, self.description, self.updated)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['PlayCounter']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -123,8 +123,6 @@ class Playlist(YandexMusicObject):
|
|||
regions=None,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.owner = owner
|
||||
self.cover = cover
|
||||
self.made_for = made_for
|
||||
|
@ -161,6 +159,8 @@ class Playlist(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (self.uid, self.kind, self.title, self.playlist_absence)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@property
|
||||
def is_mine(self) -> bool:
|
||||
return self.owner.uid == self.client.me.account.uid
|
||||
|
|
|
@ -26,14 +26,14 @@ class PlaylistAbsence(YandexMusicObject):
|
|||
reason: str,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.kind = kind
|
||||
self.reason = reason
|
||||
|
||||
self.client = client
|
||||
self._id_attrs = (self.kind, self.reason)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['PlaylistAbsence']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -26,14 +26,14 @@ class PlaylistId(YandexMusicObject):
|
|||
kind: int,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.uid = uid
|
||||
self.kind = kind
|
||||
|
||||
self.client = client
|
||||
self._id_attrs = (self.uid, self.kind)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['PlaylistId']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -26,14 +26,14 @@ class PlaylistRecommendations(YandexMusicObject):
|
|||
batch_id: Optional[str] = None,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.batch_id = batch_id
|
||||
self.tracks = tracks
|
||||
|
||||
self.client = client
|
||||
self._id_attrs = (self.batch_id, self.tracks)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['PlaylistRecommendations']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -32,8 +32,6 @@ class Tag(YandexMusicObject):
|
|||
og_description: str,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.id = id_
|
||||
self.value = value
|
||||
self.name = name
|
||||
|
@ -42,6 +40,8 @@ class Tag(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (self.id, )
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['Tag']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -26,14 +26,14 @@ class TagResult(YandexMusicObject):
|
|||
ids: List['PlaylistId'],
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.tag = tag
|
||||
self.ids = ids
|
||||
|
||||
self.client = client
|
||||
self._id_attrs = (self.tag, self.ids)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['TagResult']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -35,8 +35,6 @@ class User(YandexMusicObject):
|
|||
verified: bool,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.uid = uid
|
||||
self.login = login
|
||||
self.name = name
|
||||
|
@ -46,6 +44,8 @@ class User(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (self.uid, self.login)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
def download_avatar(self, filename: str, format_: str = 'normal') -> None:
|
||||
"""Загрузка изображения пользователя.
|
||||
|
||||
|
|
|
@ -36,6 +36,8 @@ class PromoCodeStatus(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (self.status, self.status_desc, self.account_status)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['PromoCodeStatus']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -47,8 +47,6 @@ class AdParams(YandexMusicObject):
|
|||
genre_name: Optional[str] = None,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.partner_id = partner_id
|
||||
self.category_id = category_id
|
||||
self.page_ref = page_ref
|
||||
|
@ -63,6 +61,8 @@ class AdParams(YandexMusicObject):
|
|||
self._id_attrs = (self.partner_id, self.category_id, self.page_ref,
|
||||
self.target_ref, self.other_params, self.ad_volume)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['AdParams']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -31,8 +31,6 @@ class Dashboard(YandexMusicObject):
|
|||
pumpkin: bool,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.dashboard_id = dashboard_id
|
||||
self.stations = stations
|
||||
self.pumpkin = pumpkin
|
||||
|
@ -40,6 +38,8 @@ class Dashboard(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (self.dashboard_id, self.stations, self.pumpkin)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['Dashboard']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -35,8 +35,6 @@ class DiscreteScale(YandexMusicObject):
|
|||
max_: Optional['Value'],
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.type = type_
|
||||
self.name = name
|
||||
self.min = min_
|
||||
|
@ -45,6 +43,8 @@ class DiscreteScale(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (self.type, self.name, self.min, self.max)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['DiscreteScale']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -29,8 +29,6 @@ class Enum(YandexMusicObject):
|
|||
possible_values: List['Value'],
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.type = type_
|
||||
self.name = name
|
||||
self.possible_values = possible_values
|
||||
|
@ -38,6 +36,8 @@ class Enum(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (self.type, self.name, self.possible_values)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['Enum']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -29,14 +29,14 @@ class Id(YandexMusicObject):
|
|||
tag: str,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.type = type_
|
||||
self.tag = tag
|
||||
|
||||
self.client = client
|
||||
self._id_attrs = (self.type, self.tag)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['Id']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -40,8 +40,6 @@ class Restrictions(YandexMusicObject):
|
|||
mood_energy: Optional['Enum'] = None,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.language = language
|
||||
self.diversity = diversity
|
||||
self.mood = mood
|
||||
|
@ -51,6 +49,8 @@ class Restrictions(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (self.language, self.diversity)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['Restrictions']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -44,8 +44,6 @@ class RotorSettings(YandexMusicObject):
|
|||
mood_energy: Optional[str] = None,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.language = language
|
||||
self.diversity = diversity
|
||||
|
||||
|
@ -56,6 +54,8 @@ class RotorSettings(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (self.language, self.diversity)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['RotorSettings']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -32,8 +32,6 @@ class Sequence(YandexMusicObject):
|
|||
liked: bool,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.type = type_
|
||||
self.track = track
|
||||
self.liked = liked
|
||||
|
@ -41,6 +39,8 @@ class Sequence(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (self.type, self.track, self.liked)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['Sequence']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -51,8 +51,6 @@ class Station(YandexMusicObject):
|
|||
parent_id: Optional['Id'] = None,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.id = id_
|
||||
self.name = name
|
||||
self.icon = icon
|
||||
|
@ -68,6 +66,8 @@ class Station(YandexMusicObject):
|
|||
self._id_attrs = (self.id, self.name, self.icon, self.mts_icon, self.geocell_icon,
|
||||
self.id_for_from, self.restrictions, self.restrictions2)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['Station']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -38,8 +38,6 @@ class StationResult(YandexMusicObject):
|
|||
prerolls: Optional[list] = None,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.station = station
|
||||
self.settings = settings
|
||||
self.settings2 = settings2
|
||||
|
@ -50,6 +48,8 @@ class StationResult(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (self.station, self.settings, self.settings2, self.ad_params)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['StationResult']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -32,8 +32,6 @@ class StationTracksResult(YandexMusicObject):
|
|||
pumpkin: bool,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.id = id_
|
||||
self.sequence = sequence
|
||||
self.batch_id = batch_id
|
||||
|
@ -42,6 +40,8 @@ class StationTracksResult(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (self.id, self.sequence, self.batch_id, self.pumpkin)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data, client) -> Optional['StationTracksResult']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -26,14 +26,14 @@ class Value(YandexMusicObject):
|
|||
name: str,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.value = value
|
||||
self.name = name
|
||||
|
||||
self.client = client
|
||||
self._id_attrs = (self.value, self.name)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['Value']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -40,8 +40,6 @@ class Best(YandexMusicObject):
|
|||
text: Optional[str] = None,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.type = type_
|
||||
self.result = result
|
||||
|
||||
|
@ -50,6 +48,8 @@ class Best(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (self.type, self.result)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['Best']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -50,8 +50,6 @@ class Search(YandexMusicObject):
|
|||
nocorrect: Optional[bool] = None,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.search_request_id = search_request_id
|
||||
self.text = text
|
||||
self.best = best
|
||||
|
@ -68,6 +66,8 @@ class Search(YandexMusicObject):
|
|||
self._id_attrs = (self.search_request_id, self.text, self.best, self.albums,
|
||||
self.artists, self.playlists, self.tracks, self.videos)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['Search']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -49,8 +49,6 @@ class SearchResult(YandexMusicObject):
|
|||
results: List[Union[Track, Artist, Album, Playlist, Video]],
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.type = type_
|
||||
self.total = total
|
||||
self.per_page = per_page
|
||||
|
@ -60,6 +58,8 @@ class SearchResult(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (self.total, self.per_page, self.order, self.results)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client', type_: str = None) -> Optional['SearchResult']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -26,14 +26,14 @@ class Suggestions(YandexMusicObject):
|
|||
suggestions: List[str],
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.best = best
|
||||
self.suggestions = suggestions
|
||||
|
||||
self.client = client
|
||||
self._id_attrs = (self.best, self.suggestions)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
def __getitem__(self, item):
|
||||
return self.suggestions[item]
|
||||
|
||||
|
|
|
@ -44,6 +44,8 @@ class Settings(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (self.in_app_products, self.native_products, self.web_payment_url, self.promo_codes_enabled)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['Settings']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -47,6 +47,8 @@ class Shot(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (self.order, self.played, self.shot_data, self.shot_id, self.status)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['Shot']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -40,6 +40,8 @@ class ShotData(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (self.cover_uri, self.mds_url, self.shot_text, self.shot_type)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
def download_cover(self, filename: str, size: str = '200x200') -> None:
|
||||
"""Загрузка обложки.
|
||||
|
||||
|
|
|
@ -32,6 +32,8 @@ class ShotEvent(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (self.event_id, self.shots)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['ShotEvent']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -32,6 +32,8 @@ class ShotType(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (self.id, self.title)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['ShotType']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -38,8 +38,6 @@ class Lyrics(YandexMusicObject):
|
|||
show_translation: bool,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.id = id_
|
||||
self.lyrics = lyrics
|
||||
self.full_lyrics = full_lyrics
|
||||
|
@ -51,6 +49,8 @@ class Lyrics(YandexMusicObject):
|
|||
self._id_attrs = (self.id, self.lyrics, self.full_lyrics, self.has_rights,
|
||||
self.text_language, self.show_translation)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['Lyrics']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -32,8 +32,6 @@ class Supplement(YandexMusicObject):
|
|||
radio_is_available: bool,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.id = id_
|
||||
self.lyrics = lyrics
|
||||
self.videos = videos
|
||||
|
@ -42,6 +40,8 @@ class Supplement(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (self.id, self.lyrics, self.videos, self.radio_is_available)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['Supplement']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -41,8 +41,6 @@ class VideoSupplement(YandexMusicObject):
|
|||
embed: Optional[str] = None,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.cover = cover
|
||||
self.title = title
|
||||
self.provider = provider
|
||||
|
@ -55,6 +53,8 @@ class VideoSupplement(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (self.cover, self.title, self.provider_video_id)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['VideoSupplement']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -26,14 +26,14 @@ class Major(YandexMusicObject):
|
|||
name: str,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.id = id_
|
||||
self.name = name
|
||||
|
||||
self.client = client
|
||||
self._id_attrs = (self.id, self.name)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['Major']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -26,14 +26,14 @@ class Normalization(YandexMusicObject):
|
|||
peak: int,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.gain = gain
|
||||
self.peak = peak
|
||||
|
||||
self.client = client
|
||||
self._id_attrs = (self.gain, self.peak)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['Normalization']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -105,8 +105,6 @@ class Track(YandexMusicObject):
|
|||
remember_position: Optional[bool] = None,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.id = id_
|
||||
|
||||
self.title = title
|
||||
|
@ -140,6 +138,8 @@ class Track(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (self.id,)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
def get_download_info(self, get_direct_links=False) -> List['DownloadInfo']:
|
||||
"""Сокращение для::
|
||||
|
||||
|
|
|
@ -26,14 +26,14 @@ class SimilarTracks(YandexMusicObject):
|
|||
similar_tracks: List['Track'],
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.track = track
|
||||
self.similar_tracks = similar_tracks
|
||||
|
||||
self.client = client
|
||||
self._id_attrs = (self.track, self.similar_tracks)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@classmethod
|
||||
def de_json(cls, data: dict, client: 'Client') -> Optional['SimilarTracks']:
|
||||
"""Десериализация объекта.
|
||||
|
|
|
@ -39,6 +39,8 @@ class TrackShort(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (self.id, self.album_id)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@property
|
||||
def track(self) -> 'Track':
|
||||
""":obj:`yandex_music.Track`: Полная версия трека."""
|
||||
|
|
|
@ -36,6 +36,8 @@ class TracksList(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (self.uid, self.tracks)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
def __getitem__(self, item) -> 'TrackShort':
|
||||
return self.tracks[item]
|
||||
|
||||
|
|
|
@ -32,8 +32,6 @@ class CaptchaResponse(YandexMusicObject):
|
|||
error,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.x_captcha_url = x_captcha_url
|
||||
self.x_captcha_key = x_captcha_key
|
||||
self.error_description = error_description
|
||||
|
@ -42,6 +40,8 @@ class CaptchaResponse(YandexMusicObject):
|
|||
self.client = client
|
||||
self._id_attrs = (self.x_captcha_key, self.x_captcha_url)
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
def download(self, filename=None):
|
||||
"""Загрузка изображения с капчей.
|
||||
|
||||
|
|
|
@ -41,8 +41,6 @@ class Response(YandexMusicObject):
|
|||
error_description: str = None,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
self.data = data
|
||||
self.invocation_info = invocation_info
|
||||
self._result = result
|
||||
|
@ -51,6 +49,8 @@ class Response(YandexMusicObject):
|
|||
|
||||
self.client = client
|
||||
|
||||
super().handle_unknown_kwargs(self, **kwargs)
|
||||
|
||||
@property
|
||||
def error(self) -> str:
|
||||
""":obj:`str`: Код ошибки вместе с описанием"""
|
||||
|
|
変更されたファイルが多すぎるため、一部のファイルは表示されません さらに表示
読み込み中…
新しいイシューから参照