syntax = "proto3";

package bilibili.app.viewunite.v1;

import "bilibili/app/archive/middleware/v1.proto";
import "bilibili/app/viewunite/common.proto";
import "bilibili/pagination.proto";
import "bilibili/playershared.proto";
import "google/protobuf/any.proto";

// 
service View {
    // 
    rpc ArcRefresh (ArcRefreshReq) returns (ArcRefreshReply);
    // 
    rpc CacheAuthentication (CacheAuthenticationReq) returns (CacheAuthenticationReply);
    // 
    rpc FloorAdSearch (FloorAdSearchReq) returns (FloorAdSearchReply);
    // 
    rpc RelatesFeed (RelatesFeedReq) returns (RelatesFeedReply);
    // 
    rpc Story (StoryReq) returns (StoryReply);
    // 
    rpc View (ViewReq) returns (ViewReply);
    // 
    rpc ViewProgress (ViewProgressReq) returns (ViewProgressReply);
}

// 
message ActivityResource {
    // 
    string dark_text_color = 1;
    // 
    string divider_color = 2;
    // 
    string bg_color = 3;
    // 
    string selected_bg_color = 4;
    // 
    string text_color = 5;
    // 
    string light_text_color = 6;
}

// 
message Arc {
    // 
    int64 aid = 1;
    // 
    int64 cid = 2;
    // 
    int64 duration = 3;
    // 
    bilibili.app.viewunite.common.Stat stat = 4;
    // 
    string bvid = 5;
    // 
    int32 copyright = 6;
    // 
    Rights right = 7;
    // 
    string cover = 8;
    // 
    int64 type_id = 9;
    // 
    string title = 10;
}

// 
message ArcRefreshReply {
    // 
    bilibili.app.viewunite.common.Stat stat = 1;
    // 
    SimpleReqUser req_user = 2;
    // 
    SimpleArc arc = 3;
    // 
    Online online = 4;
    // 
    LikeConfig like_config = 5;
    // 
    SimpleOwner owner = 6;
    // 
    ReplyStyle reply_style = 7;
}

// 
message ArcRefreshReq {
    // 
    int64 aid = 1;
    // 
    string bvid = 2;
    // 
    UnionType type = 3;
}

// 
message AttentionCard {
    // 
    repeated ShowTime show_time = 1;
}

// 
message BgPlayNotice {
    // 
    bool allow_show = 1;
    // 
    string text = 2;
    // 
    string btn_text1 = 3;
    // 
    string btn_text2 = 4;
}

// 
message BizFollowVideoParam {
    // 
    int64 season_id = 1;
}

// 
message BizGameBackflowParam {
    // 
    string extra = 1;
}

// 
message BizJumpLinkParam {
    // 
    string url = 1;
}

// 
message BizReserveActivityParam {
    // 
    int64 activity_id = 1;
    // 
    string from = 2;
    // 
    string type = 3;
    // 
    int64 oid = 4;
    // 
    int64 reserve_id = 5;
}

// 
message BizReserveGameParam {
    // 
    int64 game_id = 1;
}

// 
enum BizType {
    // 
    BizTypeNone = 0;
    // 
    BizTypeFollowVideo = 1;
    // 
    BizTypeReserveActivity = 2;
    // 
    BizTypeJumpLink = 3;
    // 
    BizTypeFavSeason = 4;
    // 
    BizTypeReserveGame = 5;
    // 
    BizTypeGiftGame = 6;
}

// 
message Button {
    // 
    string title = 1;
    // 
    string uri = 2;
    // 
    string icon = 3;
    // 
    JumpShowType jump_show_type = 4;
}

// 
message CM {
    // 
    google.protobuf.Any cm_under_player = 1;
    // 
    google.protobuf.Any ads_control = 2;
    // 
    repeated google.protobuf.Any source_content = 3;
    // 
    PadRelateCM pad_relate_cm = 4;
    // 
    repeated SourceContentItem source_content_item = 5;
}

// 
message CacheAuthenticationReply {
    // 
    map<int64, CachePlayAvRly> item = 1;
}

// 
message CacheAuthenticationReq {
    // 
    repeated CachePlayAv av = 1;
}

// 
enum CacheCode {
    // 
    PLAY = 0;
    // 
    UPOWERSTATE_INACTIVE = 100;
    // 
    REPEAT_LAST_OPERATION = 101;
}

// 
message CachePlayAv {
    // 
    int64 aid = 1;
}

// 
message CachePlayAvRly {
    // 
    CacheCode code = 1;
}

// 
message ChargingPlus {
    // 
    bool pass = 1;
    // 
    repeated PlayToast play_toast = 2;
}

// 
message Chronos {
    // 
    string md5 = 1;
    // 
    string file = 2;
    // 
    string sign = 3;
}

// 
message ChronosParam {
    // 
    string engine_version = 1;
    // 
    string message_protocol = 2;
    // 
    string service_key = 3;
}

// 
message CommandDm {
    // 
    int64 id = 1;
    // 
    int64 oid = 2;
    // 
    int64 mid = 3;
    // 
    string command = 4;
    // 
    string content = 5;
    // 
    int32 progress = 6;
    // 
    string ctime = 7;
    // 
    string mtime = 8;
    // 
    string extra = 9;
    // 
    string id_str = 10;
}

// 
message Config {
    // 
    Online online = 1;
    // 
    PlayerIcon player_icon = 2;
    // 
    StoryEntrance story_entrance = 3;
    // 
    BgPlayNotice bg_play_notice = 4;
}

// 
message ContractCard {
    // 
    float display_progress = 1;
    // 
    int64 display_accuracy = 2;
    // 
    int64 display_duration = 3;
    // 
    int32 show_mode = 4;
    // 
    int32 page_type = 5;
    // 
    UpperInfos upper = 6;
    // 
    int32 is_follow_display = 7;
    // 
    ContractText text = 8;
    // 
    int64 follow_display_end_duration = 9;
    // 
    int32 is_play_display = 10;
    // 
    int32 is_interact_display = 11;
    // 
    bool play_display_switch = 12;
}

// 
message ContractText {
    // 
    string title = 1;
    // 
    string subtitle = 2;
    // 
    string inline_title = 3;
}

// 
message Control {
    // 
    bool limit = 1;
}

// 
message DmResource {
    // 
    repeated CommandDm command_dms = 1;
    // 
    AttentionCard attention = 2;
    // 
    repeated OperationCard cards = 3;
}

// 
enum ECode {
    // 
    CODE_DEFAULT = 0;
    // 
    CODE_404 = 1;
    // 
    CODE_ARC_PRIVACY = 2;
    // 
    CODE_TEENAGER = 78301;
}

// 
message ECodeConfig {
    // 
    string redirect_url = 1;
    // 
    string msg = 2;
}

// 
message FloorAdSearchItem {
    // 
    google.protobuf.Any source_content = 1;
}

// 
message FloorAdSearchReply {
    // 
    FloorAdSearchTab tab = 1;
    // 
    repeated FloorAdSearchItem item = 3;
}

// 
message FloorAdSearchReq {
    // 
    int64 aid = 1;
    // 
    string ad_extra = 2;
    // 
    string spmid = 3;
    // 
    string from_spmid = 4;
}

// 
message FloorAdSearchTab {
    // 
    string title = 1;
    // 
    string but_title = 2;
    // 
    string but_url = 3;
}

// 
message FragmentArc {
    // 
    int64 aid = 1;
    // 
    int64 cid = 2;
}

// 
message FragmentParam {
    // 
    repeated FragmentArc fragment_arcs = 1;
}

// 
message FragmentRes {
    // 
    map<int64, VideoShot> video_shot = 1;
}

// 
message IconData {
    // 
    string meta_json = 1;
    // 
    string sprits_img = 2;
}

// 
message IntroductionTab {
    // 
    string title = 1;
    // 
    repeated bilibili.app.viewunite.common.Module modules = 2;
}

// 
enum JumpShowType {
    // 
    JST_DEFAULT = 0;
    // 
    JST_FULLSCREEN = 1;
    // 
    JST_HALFSCREEN = 2;
}

// 
message LikeConfig {
    // 
    bilibili.app.viewunite.common.UpLikeImg triple_like = 1;
    // 
    string like_animation = 2;
}

// 
message Material {
    // 
    string icon = 1;
    // 
    string text = 2;
    // 
    string url = 3;
    // 
    MaterialBizType type = 4;
    // 
    string param = 5;
    // 
    string static_icon = 6;
    // 
    string bg_color = 7;
    // 
    string bg_pic = 8;
    // 
    int32 jump_type = 9;
    // 
    PageType page_type = 10;
    // 
    bool need_login = 11;
    // 
    map<string, string> report = 12;
}

// 
enum MaterialBizType {
    // 
    NONE = 0;
    // 
    ACTIVITY = 1;
    // 
    BGM = 2;
    // 
    EFFECT = 3;
    // 
    SHOOT_SAME = 4;
    // 
    SHOOT_TOGETHER = 5;
    // 
    ACTIVITY_ICON = 6;
    // 
    NEW_BGM = 7;
    // 
    GENERAL_TYPE = 8;
}

// 
enum MaterialSource {
    // 
    DEFAULT = 0;
    // 
    BIJIAN = 1;
}

// 
message OldFan {
    // 
    int32 is_follow_display = 1;
    // 
    string wing_pic = 2;
}

// 
message Online {
    // 
    bool online_show = 1;
}

// 
message OperationCard {
    // 
    oneof param {
        // 
        BizFollowVideoParam follow = 7;
        // 
        BizReserveActivityParam reserve = 8;
        // 
        BizJumpLinkParam jump = 9;
        // 
        BizReserveGameParam game = 10;
        // 
        BizGameBackflowParam game_backflow = 11;
    }
    // 
    int64 id = 1;
    // 
    int32 from = 2;
    // 
    int32 to = 3;
    // 
    bool status = 4;
    // 
    BizType biz_type = 5;
    // 
    OperationCardContent content = 6;
}

// 
message OperationCardContent {
    // 
    string title = 1;
    // 
    string subtitle = 2;
    // 
    string icon = 3;
    // 
    string button_title = 4;
    // 
    string button_selected_title = 5;
    // 
    bool show_selected = 6;
}

// 
message PadRelateCM {
    // 
    RelateCM cm = 1;
}

// 
enum PageCategory {
    // 
    COMMON_PAGE = 0;
    // 
    ACTIVITY_PAGE = 1;
}

// 
message PageControl {
    // 
    Control toast_show = 1;
    // 
    Control material_show = 2;
    // 
    Control up_show = 3;
}

// 
enum PageType {
    // 
    H5 = 0;
    // 
    NA = 1;
}

// 
message PlayListReqParam {
    // 
    int64 media_id = 1;
    // 
    int64 biz_id = 2;
    // 
    int64 type = 3;
    // 
    bool page_direction = 4;
    // 
    bool first_page = 5;
    // 
    int64 offset = 6;
    // 
    int64 sort_desc = 7;
    // 
    int64 sort_field = 8;
}

// 
message PlayToast {
    // 
    PlayToastEnum business = 1;
    // 
    string icon_url = 2;
    // 
    string text = 3;
}

// 
enum PlayToastEnum {
    // 
    PLAYTOAST_UNKNOWN = 0;
    // 
    PLAYTOAST_CHARGINGPLUS = 1;
}

// 
message PlayerIcon {
    // 
    string url1 = 1;
    // 
    string hash1 = 2;
    // 
    string url2 = 3;
    // 
    string hash2 = 4;
    // 
    string drag_left_png = 5;
    // 
    string middle_png = 6;
    // 
    string drag_right_png = 7;
    // 
    IconData drag_data = 8;
    // 
    IconData nodrag_data = 9;
}

// 
message PointMaterial {
    // 
    string url = 1;
    // 
    MaterialSource material_source = 2;
}

// 
message Relate {
    // 
    int64 device_type = 1;
    // 
    bilibili.pagination.Pagination pagination = 2;
}

// 
message RelateCM {
    // 
    int64 aid = 1;
    // 
    google.protobuf.Any source_content = 2;
    // 
    int64 duration = 3;
    // 
    bilibili.app.viewunite.common.Stat stat = 4;
    // 
    bilibili.app.viewunite.common.Owner owner = 5;
}

// 
message RelatesFeedReply {
    // 
    repeated bilibili.app.viewunite.common.RelateCard relates = 1;
    // 
    bilibili.pagination.Pagination pagination = 2;
}

// 
message RelatesFeedReq {
    // 
    int64 aid = 1;
    // 
    string bvid = 2;
    // 
    string from = 3;
    // 
    string spmid = 4;
    // 
    string from_spmid = 5;
    // 
    bilibili.app.archive.middleware.v1.PlayerArgs player_args = 6;
    // 
    bilibili.pagination.Pagination pagination = 7;
    // 
    string session_id = 8;
    // 
    int64 auto_play = 9;
    // 
    string from_track_id = 10;
    // 
    string biz_extra = 11;
    // 
    string ad_extra = 12;
    // 
    int64 tab_category = 13;
    // 
    string tab_category_name = 14;
}

// 
message ReplyStyle {
    // 
    string badge_url = 1;
    // 
    string badge_text = 2;
    // 
    int64 badge_type = 3;
}

// 
message ReplyTab {
    // 
    ReplyStyle reply_style = 1;
    // 
    string title = 2;
    // 
    TabControl control = 3;
}

// 
message ReqUser {
    // 
    int32 favorite = 1;
    // 
    int32 like = 2;
    // 
    int32 coin = 3;
    // 
    int32 fav_season = 4;
    // 
    int32 follow = 5;
    // 
    int32 dislike = 6;
    // 
    Button elec_plus_btn = 7;
    // 
    ChargingPlus charging_plus = 8;
    // 
    ReqUserExtra extra = 9;
    // 
    int32 paid = 10;
    // 
    OldFan old_fan = 11;
}

// 
message ReqUserExtra {
    // 
    bool user_flag_new = 1;
}

// 
message Rights {
    // 
    bool only_vip_download = 1;
    // 
    bool no_reprint = 2;
    // 
    bool download = 3;
    // 
    bool is_charging_pay = 4;
}

// 
message ShowTime {
    // 
    int32 start_time = 1;
    // 
    int32 end_time = 2;
    // 
    double pos_x = 3;
    // 
    double pos_y = 4;
}

// 
message SimpleArc {
    // 
    int32 copyright = 1;
}

// 
message SimpleOwner {
    // 
    bilibili.app.viewunite.common.AttentionRelationStatus attention_relation = 1;
}

// 
message SimpleReqUser {
    // 
    int32 favorite = 1;
    // 
    int32 like = 2;
    // 
    int32 coin = 3;
}

// 
message SourceContentAV {
    // 
    int64 aid = 1;
    // 
    bilibili.app.viewunite.common.Stat stat = 2;
}

// 
message SourceContentItem {
    // 
    oneof data {
        // 
        SourceContentAV av = 3;
    }
    // 
    google.protobuf.Any source_content = 1;
    // 
    SourceContentType sc_type = 2;
}

// 
enum SourceContentType {
    // 
    SC_DEFAULT = 0;
    // 
    SC_AV = 1;
}

// 
message StoryActualCardWrapper {
    // 
    oneof actual_card {
        // 
        StoryVideoCard video_card = 1;
    }
}

// 
message StoryEntrance {
    // 
    bool arc_play_story = 1;
    // 
    string story_icon = 2;
    // 
    bool arc_landscape_story = 3;
    // 
    string landscape_icon = 4;
    // 
    bool play_story = 5;
}

// 
message StoryReply {
    // 
    repeated StoryActualCardWrapper story_card_wrappers = 1;
}

// 
message StoryReq {
    // 
    oneof param {
        // 
        StoryReqParam story_req_param = 4;
        // 
        PlayListReqParam play_list_req_param = 5;
    }
    // 
    int64 aid = 1;
    // 
    string bvid = 2;
    // 
    bilibili.app.archive.middleware.v1.PlayerArgs player_args = 3;
    // 
    int64 pull = 6;
    // 
    string from = 7;
    // 
    string spmid = 8;
    // 
    string from_spmid = 9;
}

// 
message StoryReqParam {
    // 
    string track_id = 1;
    // 
    int64 display_id = 2;
    // 
    map<string, string> extra_content = 3;
    // 
    bool refresh = 4;
    // 
    map<string, string> business_info = 5;
}

// 
message StoryVideoCard {
    // 
    VideoPlayData play_data = 1;
    // 
    ViewReply view_content = 2;
    // 
    string recommend_session_id = 3;
    // 
    string cover = 4;
    // 
    string track_id = 5;
    // 
    string goto = 6;
}

// 
message Tab {
    // 
    repeated TabModule tab_module = 1;
    // 
    string tab_bg = 2;
    // 
    TabControl danmaku_entrance = 3;
    // 
    string tab_bg_pad = 4;
}

// 
message TabControl {
    // 
    bool limit = 1;
    // 
    bool disable = 2;
    // 
    string disable_click_tip = 3;
}

// 
message TabModule {
    // 
    oneof tab {
        // 
        IntroductionTab introduction = 2;
        // 
        ReplyTab reply = 3;
        // 
        bilibili.app.viewunite.common.ActivityTab activity_tab = 4;
        // 
        bilibili.app.viewunite.common.CatalogTab catalog = 5;
    }
    // 
    TabType tab_type = 1;
}

// 
enum TabType {
    // 
    TAB_NONE = 0;
    // 
    TAB_INTRODUCTION = 1;
    // 
    TAB_REPLY = 2;
    // 
    TAB_OGV_ACTIVITY = 3;
    // 
    TAB_CATALOG = 4;
}

// 
enum UnionType {
    // 
    UGC = 0;
    // 
    OGV = 1;
    // 
    PUGV = 2;
}

// 
message UpperInfos {
    // 
    int64 fans_count = 1;
    // 
    int64 arc_count_last_half_year = 2;
    // 
    int64 first_up_dates = 3;
    // 
    int64 total_play_count = 4;
}

// 
message VideoGuide {
    // 
    repeated Material material = 1;
    // 
    VideoViewPoint video_point = 2;
    // 
    ContractCard contract_card = 3;
    // 
    Material right_material = 4;
}

// 
message VideoPlayData {
    // 
    string url = 1;
    // 
    bilibili.playershared.Dimension dimension = 2;
    // 
    int64 aid = 3;
    // 
    int64 ep_id = 4;
    // 
    int64 cid = 5;
}

// 
message VideoPoint {
    // 
    int32 type = 1;
    // 
    int64 from = 2;
    // 
    int64 to = 3;
    // 
    string content = 4;
    // 
    string cover = 5;
    // 
    string logo_url = 6;
    // 
    string team_type = 7;
    // 
    string team_name = 8;
}

// 
message VideoShot {
    // 
    string pv_data = 1;
    // 
    int32 img_x_len = 2;
    // 
    int32 img_y_len = 3;
    // 
    int32 img_x_size = 4;
    // 
    int32 img_y_size = 5;
    // 
    repeated string image = 6;
}

// 
message VideoViewPoint {
    // 
    repeated VideoPoint points = 1;
    // 
    PointMaterial point_material = 2;
    // 
    bool point_permanent = 3;
}

// 
message ViewBase {
    // 
    bilibili.playershared.BizType biz_type = 1;
    // 
    PageCategory page_type = 2;
    // 
    PageControl control = 3;
    // 
    ActivityResource activity_resource = 4;
    // 
    Config config = 5;
}

// 
message ViewProgressReply {
    // 
    VideoGuide video_guide = 1;
    // 
    Chronos chronos = 2;
    // 
    VideoShot arc_shot = 3;
    // 
    DmResource dm = 4;
    // 
    FragmentRes fragment_res = 5;
}

// 
message ViewProgressReq {
    // 
    int64 aid = 1;
    // 
    int64 cid = 2;
    // 
    int64 up_mid = 3;
    // 
    ChronosParam chronos_param = 4;
    // 
    UnionType type = 5;
    // 
    FragmentParam fragment_param = 6;
    // 
    string from_scene = 7;
    // 
    bilibili.playershared.PlayCtrl play_ctrl = 8;
}

// 
message ViewReply {
    // 
    ViewBase view_base = 1;
    // 
    Arc arc = 2;
    // 
    ReqUser req_user = 3;
    // 
    bilibili.app.viewunite.common.Owner owner = 4;
    // 
    Tab tab = 5;
    // 
    google.protobuf.Any supplement = 6;
    // 
    CM cm = 7;
    // 
    ECode ecode = 8;
    // 
    ECodeConfig ecode_config = 9;
    // 
    map<string, string> report = 10;
}

// 
message ViewReq {
    // 
    int64 aid = 1;
    // 
    string bvid = 2;
    // 
    string from = 3;
    // 
    string spmid = 4;
    // 
    string from_spmid = 5;
    // 
    string session_id = 6;
    // 
    bilibili.app.archive.middleware.v1.PlayerArgs player_args = 7;
    // 
    string track_id = 8;
    // 
    map<string, string> extra_content = 9;
    // 
    string play_mode = 10;
    // 
    Relate relate = 11;
    // 
    string biz_extra = 12;
    // 
    string ad_extra = 13;
    // 
    string from_scene = 14;
    // 
    bilibili.playershared.PlayCtrl play_ctrl = 15;
}

