yandex_music.utils.difference

class yandex_music.utils.difference.Difference

Bases: object

Класс, представляющий обёртку над созданием данных для запроса изменения плейлиста.

Note

Результатом является перечень (массив) операций, которые будут применены к плейлисту.

Конечной разницей (набором операций) является JSON, который будет отправлен в теле запроса.

operations

Перечень операция для изменения плейлиста.

Type:

list из dict

add_delete(from_: int, to: int) Difference

Добавление операции удаления.

Note

Передаётся диапазон для удаления треков.

Parameters:
  • from (int) – С какого индекса.

  • to (int) – По какой индекс.

Returns:

Набор операций над плейлистом.

Return type:

yandex_music.utils.difference.Difference

add_insert(at: int, tracks: dict | List[dict]) Difference

Добавление операции вставки.

Note

В tracks передаётся словарь с двумя ключами: id, album_id. Это нужно для формирования операции.

Parameters:
  • at (int) – Индекс для вставки.

  • tracks (dict | list: из :obj:`dict) – Словарь уникальными идентификаторами треков.

Returns:

Набор операций над плейлистом.

Return type:

yandex_music.utils.difference.Difference

to_json() str

Сериализация всех операций над плейлистом.

Returns:

Сформированное тело для запроса.

Return type:

str

class yandex_music.utils.difference.Operation(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)

Bases: Enum

Класс перечисления типов операций для изменения плейлиста.

Note

Существует две операции: вставка, удаление.

DELETE = 'delete'
INSERT = 'insert'