mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-09-22 09:35:08 -07:00
[Server] Add deck share links and public deck visibility
This commit is contained in:
parent
048fe247f4
commit
d18e28a65b
24 changed files with 899 additions and 19 deletions
|
|
@ -15,9 +15,15 @@ set(PROTO_FILES
|
|||
command_deck_del.proto
|
||||
command_deck_del_dir.proto
|
||||
command_deck_download.proto
|
||||
command_deck_download_public.proto
|
||||
command_deck_list.proto
|
||||
command_deck_list_other_user.proto
|
||||
command_deck_new_dir.proto
|
||||
command_deck_select.proto
|
||||
command_deck_set_visibility.proto
|
||||
command_deck_share_create.proto
|
||||
command_deck_share_download.proto
|
||||
command_deck_share_list.proto
|
||||
command_deck_upload.proto
|
||||
command_del_counter.proto
|
||||
command_delete_arrow.proto
|
||||
|
|
@ -135,6 +141,9 @@ set(PROTO_FILES
|
|||
response_card_art_rule_entry.proto
|
||||
response_deck_download.proto
|
||||
response_deck_list.proto
|
||||
response_deck_share_create.proto
|
||||
response_deck_share_download.proto
|
||||
response_deck_share_list.proto
|
||||
response_deck_upload.proto
|
||||
response_dump_zone.proto
|
||||
response_forgotpasswordrequest.proto
|
||||
|
|
@ -172,6 +181,7 @@ set(PROTO_FILES
|
|||
serverinfo_cardcounter.proto
|
||||
serverinfo_chat_message.proto
|
||||
serverinfo_counter.proto
|
||||
serverinfo_deck_share_item.proto
|
||||
serverinfo_deckstorage.proto
|
||||
serverinfo_game.proto
|
||||
serverinfo_gametype.proto
|
||||
|
|
|
|||
|
|
@ -0,0 +1,9 @@
|
|||
syntax = "proto2";
|
||||
import "session_commands.proto";
|
||||
|
||||
message Command_DeckDownloadPublic {
|
||||
extend SessionCommand {
|
||||
optional Command_DeckDownloadPublic ext = 1031;
|
||||
}
|
||||
optional uint32 deck_id = 1;
|
||||
}
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
syntax = "proto2";
|
||||
import "session_commands.proto";
|
||||
|
||||
message Command_DeckListOtherUser {
|
||||
extend SessionCommand {
|
||||
optional Command_DeckListOtherUser ext = 1029;
|
||||
}
|
||||
optional string user_name = 1;
|
||||
}
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
syntax = "proto2";
|
||||
import "session_commands.proto";
|
||||
|
||||
message Command_DeckSetVisibility {
|
||||
extend SessionCommand {
|
||||
optional Command_DeckSetVisibility ext = 1030;
|
||||
}
|
||||
// Set the public visibility of a single deck (mutually exclusive with folder_path).
|
||||
optional uint32 deck_id = 1;
|
||||
// Set the public visibility of a folder (all decks under it inherit).
|
||||
optional string folder_path = 2;
|
||||
optional bool is_public = 3;
|
||||
}
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
syntax = "proto2";
|
||||
import "session_commands.proto";
|
||||
|
||||
message DeckShareItem {
|
||||
// Reference an existing deck in the sharer's personal deck storage.
|
||||
// Mutually exclusive with deck_list.
|
||||
optional uint32 deck_id = 1;
|
||||
// Inline deck content in the native format.
|
||||
// Mutually exclusive with deck_id.
|
||||
optional string deck_list = 2;
|
||||
// Color identity of the deck (e.g. "WUBRG"), computed by the sharing client.
|
||||
optional string color_identity = 3;
|
||||
}
|
||||
|
||||
message Command_DeckShareCreate {
|
||||
extend SessionCommand {
|
||||
optional Command_DeckShareCreate ext = 1026;
|
||||
}
|
||||
optional string name = 1;
|
||||
repeated DeckShareItem items = 2;
|
||||
// Path of a folder in the sharer's personal deck storage. When set, all
|
||||
// decks in that folder are shared (resolved by the server).
|
||||
optional string folder_path = 3;
|
||||
}
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
syntax = "proto2";
|
||||
import "session_commands.proto";
|
||||
|
||||
message Command_DeckShareDownload {
|
||||
extend SessionCommand {
|
||||
optional Command_DeckShareDownload ext = 1028;
|
||||
}
|
||||
optional string token = 1;
|
||||
optional uint32 item_id = 2;
|
||||
}
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
syntax = "proto2";
|
||||
import "session_commands.proto";
|
||||
|
||||
message Command_DeckShareList {
|
||||
extend SessionCommand {
|
||||
optional Command_DeckShareList ext = 1027;
|
||||
}
|
||||
optional string token = 1;
|
||||
}
|
||||
|
|
@ -8,4 +8,12 @@ message Command_DeckUpload {
|
|||
optional string path = 1; // to upload a new deck
|
||||
optional uint32 deck_id = 2; // to replace an existing deck
|
||||
optional string deck_list = 3;
|
||||
optional bool is_public = 4; // mark the deck public on upload (publish)
|
||||
// Preview metadata computed by the uploading client (see ServerInfo_DeckStorage_File).
|
||||
optional string banner_card_name = 5;
|
||||
optional string banner_card_provider = 6;
|
||||
optional string color_identity = 7;
|
||||
// Comma-separated list of tag names associated with the deck, used to render
|
||||
// and filter another user's public decks on the client.
|
||||
optional string tags = 8;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -80,6 +80,9 @@ message Response {
|
|||
REPLAY_LIST = 1100; // Response listing replays
|
||||
REPLAY_DOWNLOAD = 1101; // Response for replay download
|
||||
REPLAY_GET_CODE = 1102; // Response containing replay code
|
||||
DECK_SHARE_CREATE = 1103; // Response to deck share creation
|
||||
DECK_SHARE_LIST = 1104; // Response listing shared decks
|
||||
DECK_SHARE_DOWNLOAD = 1105; // Response for shared deck download
|
||||
CARD_ART_RULE_LIST = 1200; // Response containing a list of card art rules
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,11 @@
|
|||
syntax = "proto2";
|
||||
import "response.proto";
|
||||
|
||||
message Response_DeckShareCreate {
|
||||
extend Response {
|
||||
optional Response_DeckShareCreate ext = 1103;
|
||||
}
|
||||
optional string token = 1;
|
||||
optional uint64 expires_at = 2;
|
||||
optional uint32 item_count = 3;
|
||||
}
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
syntax = "proto2";
|
||||
import "response.proto";
|
||||
|
||||
message Response_DeckShareDownload {
|
||||
extend Response {
|
||||
optional Response_DeckShareDownload ext = 1105;
|
||||
}
|
||||
optional string deck = 1;
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
syntax = "proto2";
|
||||
import "response.proto";
|
||||
import "serverinfo_deck_share_item.proto";
|
||||
|
||||
message Response_DeckShareList {
|
||||
extend Response {
|
||||
optional Response_DeckShareList ext = 1104;
|
||||
}
|
||||
optional string name = 1;
|
||||
optional uint64 expires_at = 2;
|
||||
repeated ServerInfo_DeckShareItem items = 3;
|
||||
}
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
syntax = "proto2";
|
||||
|
||||
message ServerInfo_DeckShareItem {
|
||||
optional uint32 id = 1;
|
||||
optional string name = 2;
|
||||
repeated string tags = 3;
|
||||
optional string banner_card = 4;
|
||||
optional string game_format = 5;
|
||||
optional string color_identity = 6;
|
||||
}
|
||||
|
|
@ -1,10 +1,22 @@
|
|||
syntax = "proto2";
|
||||
message ServerInfo_DeckStorage_File {
|
||||
optional uint32 creation_time = 1;
|
||||
optional bool is_public = 2;
|
||||
// Preview metadata computed by the uploading client, so other clients can
|
||||
// render this deck (e.g. in a visual storage grid) without downloading the
|
||||
// full deck list. Empty for decks uploaded before the metadata columns.
|
||||
optional string banner_card_name = 3;
|
||||
optional string banner_card_provider = 4;
|
||||
optional string color_identity = 5;
|
||||
// Comma-separated list of tag names, matching the corresponding
|
||||
// ServerInfo_DeckStorage_File upload metadata. Empty for decks uploaded
|
||||
// before the tags column existed.
|
||||
optional string tags = 6;
|
||||
}
|
||||
|
||||
message ServerInfo_DeckStorage_Folder {
|
||||
repeated ServerInfo_DeckStorage_TreeItem items = 1;
|
||||
optional bool is_public = 2;
|
||||
}
|
||||
|
||||
message ServerInfo_DeckStorage_TreeItem {
|
||||
|
|
|
|||
|
|
@ -28,6 +28,12 @@ message SessionCommand {
|
|||
FORGOT_PASSWORD_CHALLENGE = 1023;
|
||||
REQUEST_PASSWORD_SALT = 1024;
|
||||
SET_CARD_ART_PARAMS = 1025;
|
||||
DECK_SHARE_CREATE = 1026;
|
||||
DECK_SHARE_LIST = 1027;
|
||||
DECK_SHARE_DOWNLOAD = 1028;
|
||||
DECK_LIST_OTHER_USER = 1029;
|
||||
DECK_SET_VISIBILITY = 1030;
|
||||
DECK_DOWNLOAD_PUBLIC = 1031;
|
||||
REPLAY_LIST = 1100;
|
||||
REPLAY_DOWNLOAD = 1101;
|
||||
REPLAY_MODIFY_MATCH = 1102;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue