lyrics.py 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. from typing import TYPE_CHECKING, Optional
  2. from yandex_music import YandexMusicModel
  3. from yandex_music.utils import model
  4. if TYPE_CHECKING:
  5. from yandex_music import ClientType
  6. @model
  7. class Lyrics(YandexMusicModel):
  8. """Класс, представляющий текст трека.
  9. Warning:
  10. Получение текста из дополнительной информации устарело. Используйте
  11. :func:`yandex_music.Client.tracks_lyrics`.
  12. Attributes:
  13. id (:obj:`int`): Уникальный идентификатор текста трека.
  14. lyrics (:obj:`str`): Первые строки текст песни.
  15. has_rights (:obj:`bool`): Есть ли права.
  16. full_lyrics (:obj:`str`): Текст песни.
  17. show_translation (:obj:`bool`): Доступен ли перевод.
  18. text_language (:obj:`str`, optional): Язык песни.
  19. url (:obj:`str`, optional): Ссылка на источник перевода. Обычно genius.com.
  20. client (:obj:`yandex_music.Client`, optional): Клиент Yandex Music.
  21. **kwargs: Произвольные ключевые аргументы полученные от API.
  22. """
  23. id: int
  24. lyrics: str
  25. full_lyrics: str
  26. has_rights: bool
  27. show_translation: bool
  28. text_language: Optional[str] = None
  29. url: Optional[str] = None
  30. client: Optional['ClientType'] = None
  31. def __post_init__(self) -> None:
  32. self._id_attrs = (
  33. self.id,
  34. self.lyrics,
  35. self.full_lyrics,
  36. self.has_rights,
  37. self.text_language,
  38. self.show_translation,
  39. )