ad_params.py 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. from typing import TYPE_CHECKING, Optional, Union
  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 AdParams(YandexMusicModel):
  8. """Класс, представляющий параметры рекламного объявления.
  9. Note:
  10. Известные дополнительные параметры(`other_params`): `user:{ID}`.
  11. Attributes:
  12. partner_id (:obj:`str` | :obj:`int`): Уникальный идентификатор заказчика рекламы.
  13. category_id (:obj:`str` | :obj:`int`): Уникальный идентификатор категории рекламы.
  14. page_ref (:obj:`str`): Ссылка на ссылающуюся страницу.
  15. target_ref (:obj:`str`): Ссылка на целевую страницу.
  16. other_params (:obj:`str`): Другие параметры.
  17. ad_volume (:obj:`int`): Громкость воспроизводимой рекламы.
  18. genre_id (:obj:`str`, optional): Уникальный идентификатор жанра.
  19. genre_name (:obj:`str`, optional): Название жанра.
  20. client (:obj:`yandex_music.Client`, optional): Клиент Yandex Music.
  21. """
  22. partner_id: Union[str, int]
  23. category_id: Union[str, int]
  24. page_ref: str
  25. target_ref: str
  26. other_params: str
  27. ad_volume: int
  28. genre_id: Optional[str] = None
  29. genre_name: Optional[str] = None
  30. client: Optional['ClientType'] = None
  31. def __post_init__(self) -> None:
  32. self._id_attrs = (
  33. self.partner_id,
  34. self.category_id,
  35. self.page_ref,
  36. self.target_ref,
  37. self.other_params,
  38. self.ad_volume,
  39. )