Добавлены новые сокращения

Для класса Track: get_lyrics, get_lyrics_async
Для класса TrackLyrics: fetch_lyrics, fetch_lyrics_async
このコミットが含まれているのは:
Gleb Liutsko 2022-11-15 23:23:36 +04:00
コミット fe7a1e1018
この署名に対応する既知のキーがデータベースに存在しません
GPGキーID: 10FD4B7D55524D61
2個のファイルの変更42行の追加0行の削除

ファイルの表示

@ -16,6 +16,7 @@ if TYPE_CHECKING:
User,
MetaData,
PoetryLoverMatch,
TrackLyrics,
)
@ -154,6 +155,20 @@ class Track(YandexMusicObject):
"""
return await self.client.track_supplement(self.id, *args, **kwargs)
def get_lyrics(self, *args, **kwargs) -> Optional['TrackLyrics']:
"""Сокращение для::
client.tracks_lyrics(track.id, *args, **kwargs)
"""
return self.client.tracks_lyrics(self.id, *args, **kwargs)
async def get_lyrics_async(self, *args, **kwargs) -> Optional['TrackLyrics']:
"""Сокращение для::
client.tracks_lyrics(track.id, *args, **kwargs)
"""
return await self.client.tracks_lyrics(self.id, *args, **kwargs)
def get_cover_url(self, size: str = '200x200') -> str:
"""Возвращает URL обложки.
@ -491,6 +506,10 @@ class Track(YandexMusicObject):
getSupplement = get_supplement
#: Псевдоним для :attr:`get_supplement_async`
getSupplementAsync = get_supplement_async
#: Псевдоним для :attr:`get_lyrics`
getLyrics = get_lyrics
#: Псевдоним для :attr:`get_lyrics_async`
getLyricsAsync = get_lyrics_async
#: Псевдоним для :attr:`get_cover_url`
getCoverUrl = get_cover_url
#: Псевдоним для :attr:`get_og_image_url`

ファイルの表示

@ -34,6 +34,22 @@ class TrackLyrics(YandexMusicObject):
self.external_lyric_id,
)
def fetch_lyrics(self) -> str:
"""Получает текст песни по ссылке :attr:`yandex_music.TrackLyrics.download_url`.
Returns:
:obj:`str`: Текст песни.
"""
return self.client.request.retrieve(self.download_url).decode('UTF-8')
async def fetch_lyrics_async(self) -> str:
"""Получает текст песни по ссылке :attr:`yandex_music.TrackLyrics.download_url`.
Returns:
:obj:`str`: Текст песни.
"""
return await self.client.request.retrieve(self.download_url).decode('UTF-8')
@classmethod
def de_json(cls, data: dict, client: 'Client') -> Optional['TrackLyrics']:
"""Десериализация объекта.
@ -54,3 +70,10 @@ class TrackLyrics(YandexMusicObject):
data['major'] = LyricsMajor.de_json(data.get('major'), client)
return cls(client=client, **data)
# camelCase псевдонимы
#: Псевдоним для :attr:`fetch_lyrics`
fetchLyrics = fetch_lyrics
#: Псевдоним для :attr:`fetch_lyrics_async`
fetchLyricsAsync = fetch_lyrics_async