mirror of
https://github.com/kokarare1212/librespot-python.git
synced 2024-08-21 15:03:22 +02:00
230 lines
5.2 KiB
Protocol Buffer
230 lines
5.2 KiB
Protocol Buffer
|
syntax = "proto2";
|
||
|
|
||
|
package spotify.playlist4.proto;
|
||
|
|
||
|
option optimize_for = CODE_SIZE;
|
||
|
option java_outer_classname = "Playlist4ApiProto";
|
||
|
option java_package = "com.spotify.playlist4";
|
||
|
|
||
|
message Item {
|
||
|
required string uri = 1;
|
||
|
optional ItemAttributes attributes = 2;
|
||
|
}
|
||
|
|
||
|
message MetaItem {
|
||
|
optional bytes revision = 1;
|
||
|
optional ListAttributes attributes = 2;
|
||
|
optional int32 length = 3;
|
||
|
optional int64 timestamp = 4;
|
||
|
optional string owner_username = 5;
|
||
|
}
|
||
|
|
||
|
message ListItems {
|
||
|
required int32 pos = 1;
|
||
|
required bool truncated = 2;
|
||
|
repeated Item items = 3;
|
||
|
repeated MetaItem meta_items = 4;
|
||
|
}
|
||
|
|
||
|
message FormatListAttribute {
|
||
|
optional string key = 1;
|
||
|
optional string value = 2;
|
||
|
}
|
||
|
|
||
|
message ListAttributes {
|
||
|
optional string name = 1;
|
||
|
optional string description = 2;
|
||
|
optional bytes picture = 3;
|
||
|
optional bool collaborative = 4;
|
||
|
optional string pl3_version = 5;
|
||
|
optional bool deleted_by_owner = 6;
|
||
|
optional string client_id = 10;
|
||
|
optional string format = 11;
|
||
|
repeated FormatListAttribute format_attributes = 12;
|
||
|
}
|
||
|
|
||
|
message ItemAttributes {
|
||
|
optional string added_by = 1;
|
||
|
optional int64 timestamp = 2;
|
||
|
optional int64 seen_at = 9;
|
||
|
optional bool public = 10;
|
||
|
repeated FormatListAttribute format_attributes = 11;
|
||
|
optional bytes item_id = 12;
|
||
|
}
|
||
|
|
||
|
message Add {
|
||
|
optional int32 from_index = 1;
|
||
|
repeated Item items = 2;
|
||
|
optional bool add_last = 4;
|
||
|
optional bool add_first = 5;
|
||
|
}
|
||
|
|
||
|
message Rem {
|
||
|
optional int32 from_index = 1;
|
||
|
optional int32 length = 2;
|
||
|
repeated Item items = 3;
|
||
|
optional bool items_as_key = 7;
|
||
|
}
|
||
|
|
||
|
message Mov {
|
||
|
required int32 from_index = 1;
|
||
|
required int32 length = 2;
|
||
|
required int32 to_index = 3;
|
||
|
}
|
||
|
|
||
|
message ItemAttributesPartialState {
|
||
|
required ItemAttributes values = 1;
|
||
|
repeated ItemAttributeKind no_value = 2;
|
||
|
}
|
||
|
|
||
|
message ListAttributesPartialState {
|
||
|
required ListAttributes values = 1;
|
||
|
repeated ListAttributeKind no_value = 2;
|
||
|
}
|
||
|
|
||
|
message UpdateItemAttributes {
|
||
|
required int32 index = 1;
|
||
|
required ItemAttributesPartialState new_attributes = 2;
|
||
|
optional ItemAttributesPartialState old_attributes = 3;
|
||
|
}
|
||
|
|
||
|
message UpdateListAttributes {
|
||
|
required ListAttributesPartialState new_attributes = 1;
|
||
|
optional ListAttributesPartialState old_attributes = 2;
|
||
|
}
|
||
|
|
||
|
message Op {
|
||
|
required Kind kind = 1;
|
||
|
enum Kind {
|
||
|
KIND_UNKNOWN = 0;
|
||
|
ADD = 2;
|
||
|
REM = 3;
|
||
|
MOV = 4;
|
||
|
UPDATE_ITEM_ATTRIBUTES = 5;
|
||
|
UPDATE_LIST_ATTRIBUTES = 6;
|
||
|
}
|
||
|
|
||
|
optional Add add = 2;
|
||
|
optional Rem rem = 3;
|
||
|
optional Mov mov = 4;
|
||
|
optional UpdateItemAttributes update_item_attributes = 5;
|
||
|
optional UpdateListAttributes update_list_attributes = 6;
|
||
|
}
|
||
|
|
||
|
message OpList {
|
||
|
repeated Op ops = 1;
|
||
|
}
|
||
|
|
||
|
message ChangeInfo {
|
||
|
optional string user = 1;
|
||
|
optional int64 timestamp = 2;
|
||
|
optional bool admin = 3;
|
||
|
optional bool undo = 4;
|
||
|
optional bool redo = 5;
|
||
|
optional bool merge = 6;
|
||
|
optional bool compressed = 7;
|
||
|
optional bool migration = 8;
|
||
|
optional int32 split_id = 9;
|
||
|
optional SourceInfo source = 10;
|
||
|
}
|
||
|
|
||
|
message SourceInfo {
|
||
|
optional Client client = 1;
|
||
|
enum Client {
|
||
|
CLIENT_UNKNOWN = 0;
|
||
|
NATIVE_HERMES = 1;
|
||
|
CLIENT = 2;
|
||
|
PYTHON = 3;
|
||
|
JAVA = 4;
|
||
|
WEBPLAYER = 5;
|
||
|
LIBSPOTIFY = 6;
|
||
|
}
|
||
|
|
||
|
optional string app = 3;
|
||
|
optional string source = 4;
|
||
|
optional string version = 5;
|
||
|
}
|
||
|
|
||
|
message Delta {
|
||
|
optional bytes base_version = 1;
|
||
|
repeated Op ops = 2;
|
||
|
optional ChangeInfo info = 4;
|
||
|
}
|
||
|
|
||
|
message Diff {
|
||
|
required bytes from_revision = 1;
|
||
|
repeated Op ops = 2;
|
||
|
required bytes to_revision = 3;
|
||
|
}
|
||
|
|
||
|
message ListChanges {
|
||
|
optional bytes base_revision = 1;
|
||
|
repeated Delta deltas = 2;
|
||
|
optional bool want_resulting_revisions = 3;
|
||
|
optional bool want_sync_result = 4;
|
||
|
repeated int64 nonces = 6;
|
||
|
}
|
||
|
|
||
|
message SelectedListContent {
|
||
|
optional bytes revision = 1;
|
||
|
optional int32 length = 2;
|
||
|
optional ListAttributes attributes = 3;
|
||
|
optional ListItems contents = 5;
|
||
|
optional Diff diff = 6;
|
||
|
optional Diff sync_result = 7;
|
||
|
repeated bytes resulting_revisions = 8;
|
||
|
optional bool multiple_heads = 9;
|
||
|
optional bool up_to_date = 10;
|
||
|
repeated int64 nonces = 14;
|
||
|
optional int64 timestamp = 15;
|
||
|
optional string owner_username = 16;
|
||
|
}
|
||
|
|
||
|
message CreateListReply {
|
||
|
required bytes uri = 1;
|
||
|
optional bytes revision = 2;
|
||
|
}
|
||
|
|
||
|
message ModifyReply {
|
||
|
required bytes uri = 1;
|
||
|
optional bytes revision = 2;
|
||
|
}
|
||
|
|
||
|
message SubscribeRequest {
|
||
|
repeated bytes uris = 1;
|
||
|
}
|
||
|
|
||
|
message UnsubscribeRequest {
|
||
|
repeated bytes uris = 1;
|
||
|
}
|
||
|
|
||
|
message PlaylistModificationInfo {
|
||
|
optional bytes uri = 1;
|
||
|
optional bytes new_revision = 2;
|
||
|
optional bytes parent_revision = 3;
|
||
|
repeated Op ops = 4;
|
||
|
}
|
||
|
|
||
|
enum ListAttributeKind {
|
||
|
LIST_UNKNOWN = 0;
|
||
|
LIST_NAME = 1;
|
||
|
LIST_DESCRIPTION = 2;
|
||
|
LIST_PICTURE = 3;
|
||
|
LIST_COLLABORATIVE = 4;
|
||
|
LIST_PL3_VERSION = 5;
|
||
|
LIST_DELETED_BY_OWNER = 6;
|
||
|
LIST_CLIENT_ID = 10;
|
||
|
LIST_FORMAT = 11;
|
||
|
LIST_FORMAT_ATTRIBUTES = 12;
|
||
|
}
|
||
|
|
||
|
enum ItemAttributeKind {
|
||
|
ITEM_UNKNOWN = 0;
|
||
|
ITEM_ADDED_BY = 1;
|
||
|
ITEM_TIMESTAMP = 2;
|
||
|
ITEM_SEEN_AT = 9;
|
||
|
ITEM_PUBLIC = 10;
|
||
|
ITEM_FORMAT_ATTRIBUTES = 11;
|
||
|
ITEM_ID = 12;
|
||
|
}
|