From fcbbdfe125a2b13a93a0dc5f0d5b0c4ca51d62e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E5=AF=92=E5=BD=A4?= <70561268+cxw620@users.noreply.github.com> Date: Wed, 29 Mar 2023 20:21:48 -0600 Subject: [PATCH] add: grpc proto distribution (#646) --- .../app/distribution/setting/download.proto | 11 ++ .../app/distribution/setting/dynamic.proto | 17 ++ .../distribution/setting/experimental.proto | 65 ++++++++ .../distribution/setting/internaldevice.proto | 11 ++ .../app/distribution/setting/night.proto | 11 ++ .../app/distribution/setting/other.proto | 25 +++ .../app/distribution/setting/pegasus.proto | 41 +++++ .../app/distribution/setting/play.proto | 58 +++++++ .../app/distribution/setting/privacy.proto | 20 +++ .../app/distribution/setting/search.proto | 19 +++ .../app/distribution/v1/distribution.proto | 156 ++++++++++++++++++ 11 files changed, 434 insertions(+) create mode 100644 grpc_api/bilibili/app/distribution/setting/download.proto create mode 100644 grpc_api/bilibili/app/distribution/setting/dynamic.proto create mode 100644 grpc_api/bilibili/app/distribution/setting/experimental.proto create mode 100644 grpc_api/bilibili/app/distribution/setting/internaldevice.proto create mode 100644 grpc_api/bilibili/app/distribution/setting/night.proto create mode 100644 grpc_api/bilibili/app/distribution/setting/other.proto create mode 100644 grpc_api/bilibili/app/distribution/setting/pegasus.proto create mode 100644 grpc_api/bilibili/app/distribution/setting/play.proto create mode 100644 grpc_api/bilibili/app/distribution/setting/privacy.proto create mode 100644 grpc_api/bilibili/app/distribution/setting/search.proto create mode 100644 grpc_api/bilibili/app/distribution/v1/distribution.proto diff --git a/grpc_api/bilibili/app/distribution/setting/download.proto b/grpc_api/bilibili/app/distribution/setting/download.proto new file mode 100644 index 0000000..e738e99 --- /dev/null +++ b/grpc_api/bilibili/app/distribution/setting/download.proto @@ -0,0 +1,11 @@ +syntax = "proto3"; + +package bilibili.app.distribution.setting.download; + +import "bilibili/app/distribution/v1/distribution.proto"; + +// +message DownloadSettingsConfig { + // + bilibili.app.distribution.v1.BoolValue enable_download_auto_start = 1; +} \ No newline at end of file diff --git a/grpc_api/bilibili/app/distribution/setting/dynamic.proto b/grpc_api/bilibili/app/distribution/setting/dynamic.proto new file mode 100644 index 0000000..96abf58 --- /dev/null +++ b/grpc_api/bilibili/app/distribution/setting/dynamic.proto @@ -0,0 +1,17 @@ +syntax = "proto3"; + +package bilibili.app.distribution.setting.dynamic; + +import "bilibili/app/distribution/v1/distribution.proto"; + +// +message DynamicAutoPlay { + // + bilibili.app.distribution.v1.Int64Value value = 1; +} + +// +message DynamicDeviceConfig { + // + DynamicAutoPlay auto_play = 1; +} \ No newline at end of file diff --git a/grpc_api/bilibili/app/distribution/setting/experimental.proto b/grpc_api/bilibili/app/distribution/setting/experimental.proto new file mode 100644 index 0000000..eaf9a67 --- /dev/null +++ b/grpc_api/bilibili/app/distribution/setting/experimental.proto @@ -0,0 +1,65 @@ +syntax = "proto3"; + +package bilibili.app.distribution.setting.experimental; + +import "bilibili/app/distribution/v1/distribution.proto"; + +// +message DynamicSelect { + // + bilibili.app.distribution.v1.BoolValue fold = 1; +} + +// +message Exp { + // + bilibili.app.distribution.v1.Int64Value id = 1; + // + bilibili.app.distribution.v1.Int32Value bucket = 2; +} + +// +message ExperimentalConfig { + // + bilibili.app.distribution.v1.StringValue flag = 1; + // + repeated Exp exps = 2; +} + +// +message MultipleTusConfig { + // + TopLeft top_left = 1; + // + DynamicSelect dynamic_select = 2; +} + +// APP首页头像跳转信息 +message TopLeft { + // + bilibili.app.distribution.v1.StringValue url = 1; + // + bilibili.app.distribution.v1.StringValue story_foreground_image = 2; + // + bilibili.app.distribution.v1.StringValue story_background_image = 3; + // + bilibili.app.distribution.v1.StringValue listen_foreground_image = 4; + // + bilibili.app.distribution.v1.StringValue listen_background_image = 5; + // + bilibili.app.distribution.v1.StringValue ios_story_foreground_image = 6; + // + bilibili.app.distribution.v1.StringValue ios_story_background_image = 7; + // + bilibili.app.distribution.v1.StringValue ios_listen_foreground_image = 8; + // + bilibili.app.distribution.v1.StringValue ios_listen_background_image = 9; + // + bilibili.app.distribution.v1.StringValue goto = 10; + // + bilibili.app.distribution.v1.StringValue url_v2 = 11; + // + bilibili.app.distribution.v1.Int64Value goto_v2 = 12; + // + bilibili.app.distribution.v1.StringValue badge = 13; +} diff --git a/grpc_api/bilibili/app/distribution/setting/internaldevice.proto b/grpc_api/bilibili/app/distribution/setting/internaldevice.proto new file mode 100644 index 0000000..76c95b9 --- /dev/null +++ b/grpc_api/bilibili/app/distribution/setting/internaldevice.proto @@ -0,0 +1,11 @@ +syntax = "proto3"; + +package bilibili.app.distribution.setting.internaldevice; + +import "bilibili/app/distribution/v1/distribution.proto"; + +// +message InternalDeviceConfig { + // 首次启动时间 + bilibili.app.distribution.v1.Int64Value fts = 1; +} \ No newline at end of file diff --git a/grpc_api/bilibili/app/distribution/setting/night.proto b/grpc_api/bilibili/app/distribution/setting/night.proto new file mode 100644 index 0000000..6d811aa --- /dev/null +++ b/grpc_api/bilibili/app/distribution/setting/night.proto @@ -0,0 +1,11 @@ +syntax = "proto3"; + +package bilibili.app.distribution.setting.night; + +import "bilibili/app/distribution/v1/distribution.proto"; + +// +message NightSettingsConfig { + // + bilibili.app.distribution.v1.BoolValue is_night_follow_system = 1; +} \ No newline at end of file diff --git a/grpc_api/bilibili/app/distribution/setting/other.proto b/grpc_api/bilibili/app/distribution/setting/other.proto new file mode 100644 index 0000000..4da3a59 --- /dev/null +++ b/grpc_api/bilibili/app/distribution/setting/other.proto @@ -0,0 +1,25 @@ +syntax = "proto3"; + +package bilibili.app.distribution.setting.other; + +import "bilibili/app/distribution/v1/distribution.proto"; + +// +message OtherSettingsConfig { + // + bilibili.app.distribution.v1.Int64Value watermark_type = 1; + // + bilibili.app.distribution.v1.Int64Value web_image_quality_type = 2; + // + bilibili.app.distribution.v1.BoolValue enable_read_pasteboard = 3; + // + bilibili.app.distribution.v1.BoolValue paste_auto_jump = 4; + // + bilibili.app.distribution.v1.BoolValue mini_screen_play_when_back = 5; + // + bilibili.app.distribution.v1.BoolValue enable_resume_playing = 6; + // + bilibili.app.distribution.v1.BoolValue enable_wifi_auto_update = 7; + // + bilibili.app.distribution.v1.BoolValue enable_guide_screenshot_share = 8; +} \ No newline at end of file diff --git a/grpc_api/bilibili/app/distribution/setting/pegasus.proto b/grpc_api/bilibili/app/distribution/setting/pegasus.proto new file mode 100644 index 0000000..a15f455 --- /dev/null +++ b/grpc_api/bilibili/app/distribution/setting/pegasus.proto @@ -0,0 +1,41 @@ +syntax = "proto3"; + +package bilibili.app.distribution.setting.pegasus; + +import "bilibili/app/distribution/v1/distribution.proto"; + +// +message FeedModeValue { + // + bilibili.app.distribution.v1.Int64Value value = 1; +} + +// +message PegasusAutoPlay { + // + bilibili.app.distribution.v1.Int64Value single = 1; + // + bilibili.app.distribution.v1.Int64Value double = 2; + // + bilibili.app.distribution.v1.BoolValue single_affected_by_server_side = 3; + // + bilibili.app.distribution.v1.BoolValue double_affected_by_server_side = 4; +} + +// +message PegasusColumnValue { + // + bilibili.app.distribution.v1.Int64Value value = 1; + // + bilibili.app.distribution.v1.BoolValue affected_by_server_side = 2; +} + +// +message PegasusDeviceConfig { + // + PegasusColumnValue column = 1; + // + FeedModeValue mode = 2; + // + PegasusAutoPlay auto_play = 3; +} \ No newline at end of file diff --git a/grpc_api/bilibili/app/distribution/setting/play.proto b/grpc_api/bilibili/app/distribution/setting/play.proto new file mode 100644 index 0000000..a972fc8 --- /dev/null +++ b/grpc_api/bilibili/app/distribution/setting/play.proto @@ -0,0 +1,58 @@ +syntax = "proto3"; + +package bilibili.app.distribution.setting.play; + +import "bilibili/app/distribution/v1/distribution.proto"; + +// 云端保存的播放器配置 +message CloudPlayConfig { + // 启用杜比全景声 + bilibili.app.distribution.v1.BoolValue enable_panorama = 1; + // 启用杜比音效 + bilibili.app.distribution.v1.BoolValue enable_dolby = 2; + // 启用震动 + bilibili.app.distribution.v1.BoolValue enable_shake = 3; + // 启用后台播放 + bilibili.app.distribution.v1.BoolValue enable_background = 4; + // 启用HIRES + bilibili.app.distribution.v1.BoolValue enable_loss_less = 5; +} + +// 播放器策略配置 +message PlayConfig { + // + bilibili.app.distribution.v1.BoolValue should_auto_play = 1; + // + bilibili.app.distribution.v1.BoolValue should_auto_fullscreen = 2; + // + bilibili.app.distribution.v1.BoolValue enable_playurl_https = 3; + // + bilibili.app.distribution.v1.BoolValue enable_danmaku_interaction = 4; + // + bilibili.app.distribution.v1.Int64Value small_screen_status = 5; + // + bilibili.app.distribution.v1.Int64Value player_codec_mode_key = 6; + // + bilibili.app.distribution.v1.BoolValue enable_gravity_rotate_screen = 7; + // + bilibili.app.distribution.v1.BoolValue enable_danmaku_monospaced = 8; + // + bilibili.app.distribution.v1.BoolValue enable_edit_subtitle = 9; + // + bilibili.app.distribution.v1.BoolValue enable_subtitle = 10; + // + bilibili.app.distribution.v1.Int64Value color_filter = 11; + // + bilibili.app.distribution.v1.BoolValue should_auto_story = 12; + // + bilibili.app.distribution.v1.BoolValue landscape_auto_story = 13; + // + bilibili.app.distribution.v1.BoolValue volume_balance = 14; +} + +// 灰度测试特殊功能? +message SpecificPlayConfig { + // + bilibili.app.distribution.v1.BoolValue enable_segmented_section = 1; +} + diff --git a/grpc_api/bilibili/app/distribution/setting/privacy.proto b/grpc_api/bilibili/app/distribution/setting/privacy.proto new file mode 100644 index 0000000..7e34cf8 --- /dev/null +++ b/grpc_api/bilibili/app/distribution/setting/privacy.proto @@ -0,0 +1,20 @@ +syntax = "proto3"; + +package bilibili.app.distribution.setting.privacy; + +import "bilibili/app/distribution/v1/distribution.proto"; + +// +message MidPrivacySettingsConfig { + // + bilibili.app.distribution.v1.BoolValue recommend_to_known = 1; +} + +// +message PrivacySettingsConfig { + // + bilibili.app.distribution.v1.BoolValue ad_recommand_store = 1; + // 传感器权限 + bilibili.app.distribution.v1.BoolValue sensor_access = 2; + +} \ No newline at end of file diff --git a/grpc_api/bilibili/app/distribution/setting/search.proto b/grpc_api/bilibili/app/distribution/setting/search.proto new file mode 100644 index 0000000..fc02d63 --- /dev/null +++ b/grpc_api/bilibili/app/distribution/setting/search.proto @@ -0,0 +1,19 @@ +syntax = "proto3"; + +package bilibili.app.distribution.setting.search; + +import "bilibili/app/distribution/v1/distribution.proto"; + +// +message SearchAutoPlay { + // + bilibili.app.distribution.v1.Int64Value value = 1; + // + bilibili.app.distribution.v1.BoolValue affected_by_server_side = 2; +} + +// +message SearchDeviceConfig { + // + SearchAutoPlay auto_play = 1; +} \ No newline at end of file diff --git a/grpc_api/bilibili/app/distribution/v1/distribution.proto b/grpc_api/bilibili/app/distribution/v1/distribution.proto new file mode 100644 index 0000000..87972f3 --- /dev/null +++ b/grpc_api/bilibili/app/distribution/v1/distribution.proto @@ -0,0 +1,156 @@ +syntax = "proto3"; + +package bilibili.app.distribution.v1; + +// APP配置 +service Distribution { + // 获取云端储存的用户偏好 + rpc GetUserPreference (GetUserPreferenceReq) returns (GetUserPreferenceReply); + // 设定用户偏好 + rpc SetUserPreference (SetUserPreferenceReq) returns (SetUserPreferenceReply); + // 获取云控配置 + rpc UserPreference (UserPreferenceReq) returns (UserPreferenceReply); +} + +// +message GetUserPreferenceReq { + // + repeated string type_url = 1; + // + map extra_context = 2; +} + +// +message GetUserPreferenceReply { + // 对应 GetUserPreferenceReq 的请求的类型 + repeated google.protobuf.Any value = 1; +} + +// +message SetUserPreferenceReq { + // + repeated google.protobuf.Any preference = 1; + // + map extra_context = 2; +} + +// +message SetUserPreferenceReply {} + +// +message UserPreferenceReq {} + +// 云控配置下发 +message UserPreferenceReply { + // 具体解码需要根据实际请求 type_url 来判断 + repeated google.protobuf.Any preference = 1; +} + +// +message BoolValue { + // + bool value = 1; + // + int64 last_modified = 2; + // + bool default_value = 3; + // + string exp = 4; +} + +// +message BytesValue { + // + bytes value = 1; + // + int64 last_modified = 2; + // + bytes default_value = 3; + // + string exp = 4; +} + +// +message DoubleValue { + // + double value = 1; + // + int64 last_modified = 2; + // + double default_value = 3; + // + string exp = 4; +} + +// +message FloatValue { + // + float value = 1; + // + int64 last_modified = 2; + // + float default_value = 3; + // + string exp = 4; +} + +// +message Int32Value { + // + int32 value = 1; + // + int64 last_modified = 2; + // + int32 default_value = 3; + // + string exp = 4; +} + +// +message Int64Value { + // + int64 value = 1; + // + int64 last_modified = 2; + // + int64 default_value = 3; + // + string exp = 4; +} + +// +message StringValue { + // + string value = 1; + // + int64 last_modified = 2; + // + string default_value = 3; + // + string exp = 4; +} + +// +message UInt32Value { + // + uint32 value = 1; + // + int64 last_modified = 2; + // + uint32 default_value = 3; + // + string exp = 4; +} + +// +message UInt64Value { + // + uint64 value = 1; + // + int64 last_modified = 2; + // + uint64 default_value = 3; + // + string exp = 4; +} +