librespot/protocol/proto/playlist_query.proto
2024-12-16 22:57:12 +01:00

87 lines
2.2 KiB
Protocol Buffer

// Extracted from: Spotify 1.2.52.442 (windows)
syntax = "proto3";
package spotify.playlist_esperanto.proto;
import "policy/supported_link_types_in_playlists.proto";
option objc_class_prefix = "ESP";
option java_multiple_files = true;
option optimize_for = CODE_SIZE;
option java_package = "spotify.playlist.esperanto.proto";
message PlaylistRange {
int32 start = 1;
int32 length = 2;
}
message PlaylistQuery {
repeated BoolPredicate bool_predicates = 1;
enum BoolPredicate {
NO_FILTER = 0;
AVAILABLE = 1;
AVAILABLE_OFFLINE = 2;
ARTIST_NOT_BANNED = 3;
NOT_BANNED = 4;
NOT_EXPLICIT = 5;
NOT_EPISODE = 6;
NOT_RECOMMENDATION = 7;
UNPLAYED = 8;
IN_PROGRESS = 9;
NOT_FULLY_PLAYED = 10;
}
string text_filter = 2;
SortBy sort_by = 3;
enum SortBy {
NO_SORT = 0;
ALBUM_ARTIST_NAME_ASC = 1;
ALBUM_ARTIST_NAME_DESC = 2;
TRACK_NUMBER_ASC = 3;
TRACK_NUMBER_DESC = 4;
DISC_NUMBER_ASC = 5;
DISC_NUMBER_DESC = 6;
ALBUM_NAME_ASC = 7;
ALBUM_NAME_DESC = 8;
ARTIST_NAME_ASC = 9;
ARTIST_NAME_DESC = 10;
NAME_ASC = 11;
NAME_DESC = 12;
ADD_TIME_ASC = 13;
ADD_TIME_DESC = 14;
ADDED_BY_ASC = 15;
ADDED_BY_DESC = 16;
DURATION_ASC = 17;
DURATION_DESC = 18;
SHOW_NAME_ASC = 19;
SHOW_NAME_DESC = 20;
PUBLISH_DATE_ASC = 21;
PUBLISH_DATE_DESC = 22;
}
PlaylistRange range = 4;
int32 update_throttling_ms = 5;
bool group = 6;
PlaylistSourceRestriction source_restriction = 7;
bool show_unavailable = 8;
bool always_show_windowed = 9;
bool load_recommendations = 10;
repeated playlist.cosmos.proto.LinkType supported_placeholder_types = 11;
repeated string descriptor_filter = 12;
string item_id_filter = 13;
repeated AttributeFilter attribute_filter = 14;
message AttributeFilter {
repeated string contains_one_of = 1;
}
bool include_all_placeholders = 15;
}
enum PlaylistSourceRestriction {
NO_RESTRICTION = 0;
RESTRICT_SOURCE_TO_50 = 1;
RESTRICT_SOURCE_TO_500 = 2;
}