Билдеры запросов Ynison
Билдеры запросов Ynison.
Набор функций для конструирования PutYnisonStateRequest под типичные
действия: инициализация подключения, пауза/возобновление, переключение трека,
изменение громкости. Используется как долгоживущими клиентами
(yandex_music.ynison.YnisonClient, yandex_music.ynison.YnisonClientAsync),
так и простыми интерфейсами из yandex_music.ynison.simple /
yandex_music.ynison.simple_async.
- yandex_music.ynison.messages.generate_device_id()
Генерирует случайный идентификатор устройства.
- Returns:
Идентификатор в hex-представлении (без префикса 0x).
- Return type:
str
- yandex_music.ynison.messages.get_timestamp()
Возвращает текущее unix-время в миллисекундах.
- Returns:
Время в миллисекундах от эпохи Unix.
- Return type:
int
- yandex_music.ynison.messages.generate_request_id()
Генерирует уникальный идентификатор запроса.
- Returns:
UUID4 в строковом представлении.
- Return type:
str
- yandex_music.ynison.messages.get_update_full_state_request(device_id)
Собирает начальный запрос регистрации устройства как remote control.
Отправляется сразу после подключения state websocket’а. Регистрирует устройство с возможностями дистанционного пульта (не плеер) и пустой очередью воспроизведения.
- Parameters:
device_id – Идентификатор этого устройства.
- Returns:
Запрос UpdateFullState с device capabilities remote control.
- Return type:
yandex_music.ynison.models.ynison_state.PutYnisonStateRequest
- yandex_music.ynison.messages.get_update_player_state_request(device_id)
Собирает запрос с пустым состоянием плеера.
- Parameters:
device_id – Идентификатор устройства, инициировавшего изменение.
- Returns:
Запрос UpdatePlayerState с пустой очередью.
- Return type:
yandex_music.ynison.models.ynison_state.PutYnisonStateRequest
- yandex_music.ynison.messages.get_set_paused_request(device_id, current_status, paused)
Собирает запрос паузы или возобновления воспроизведения.
Клонирует текущий PlayingStatus, меняя только флаг paused и обновляя версию. Прочие поля (progress_ms, duration_ms, playback_speed) сохраняются.
- Parameters:
device_id – Идентификатор устройства, инициировавшего изменение.
current_status – Текущий статус воспроизведения с сервера.
paused – True — поставить на паузу, False — продолжить.
- Returns:
Запрос UpdatePlayingStatus с подменённым флагом paused.
- Return type:
yandex_music.ynison.models.ynison_state.PutYnisonStateRequest
- yandex_music.ynison.messages.get_change_track_request(device_id, current_state, delta)
Собирает запрос перехода на соседний трек в очереди.
Клонирует текущий
PlayerQueue, меняя только current_playable_index и версию. Статус воспроизведения сбрасывается на нулевой прогресс с сохранением флага паузы.- Parameters:
device_id – Идентификатор устройства, инициировавшего изменение.
current_state – Текущее состояние плеера с сервера.
delta – Сдвиг индекса; 1 — следующий трек, -1 — предыдущий.
- Returns:
Запрос UpdatePlayerState с обновлённым индексом и версией.
- Return type:
yandex_music.ynison.models.ynison_state.PutYnisonStateRequest
- yandex_music.ynison.messages.get_next_track_request(device_id, current_state)
Собирает запрос перехода на следующий трек.
- Parameters:
device_id – Идентификатор устройства, инициировавшего изменение.
current_state – Текущее состояние плеера с сервера.
- Returns:
Запрос UpdatePlayerState с индексом, увеличенным на 1.
- Return type:
yandex_music.ynison.models.ynison_state.PutYnisonStateRequest
- yandex_music.ynison.messages.get_prev_track_request(device_id, current_state)
Собирает запрос перехода на предыдущий трек.
- Parameters:
device_id – Идентификатор устройства, инициировавшего изменение.
current_state – Текущее состояние плеера с сервера.
- Returns:
Запрос UpdatePlayerState с индексом, уменьшенным на 1.
- Return type:
yandex_music.ynison.models.ynison_state.PutYnisonStateRequest
- yandex_music.ynison.messages.get_set_volume_request(device_id, target_device_id, volume)
Собирает запрос изменения громкости на целевом устройстве.
- Parameters:
device_id – Идентификатор устройства, инициировавшего изменение.
target_device_id – Идентификатор устройства, на котором меняется громкость.
volume – Новая громкость в диапазоне [0.0; 1.0]; вне диапазона — клампится.
- Returns:
Запрос UpdateVolumeInfo с новым значением громкости и версией.
- Return type:
yandex_music.ynison.models.ynison_state.PutYnisonStateRequest