rotor_settings.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  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 RotorSettings(YandexMusicModel):
  8. """Класс, представляющий настройки станции.
  9. Note:
  10. Поля `energy`, `mood` используются в старых настройках (`settings1`).
  11. Значения `mood_energy`: `fun`, `active`, `calm`, `sad`, `all`.
  12. Значения `diversity`: `favorite`, `popular`, `discover`, `default`.
  13. Значения `language`: `not-russian`, `russian`, `any`.
  14. Attributes:
  15. language (:obj:`str`): Язык.
  16. diversity (:obj:`str`): Разнообразие (треки).
  17. mood (:obj:`int`, optional): Настроение (старое).
  18. energy (:obj:`int`, optional): Энергичное.
  19. mood_energy (:obj:`str`, optional): Настроение.
  20. client (:obj:`yandex_music.Client`, optional): Клиент Yandex Music.
  21. """
  22. language: str
  23. diversity: str
  24. mood: Optional[int] = None
  25. energy: Optional[int] = None
  26. mood_energy: Optional[str] = None
  27. client: Optional['ClientType'] = None
  28. def __post_init__(self) -> None:
  29. self._id_attrs = (self.language, self.diversity)