syntax = "proto3";

package bilibili.web.interfaces.v1;

// 用户信息
message AccInfo {
    // 用户UID
    int64 mid = 1;
    // 用户昵称
    string name = 2;
    //
    string sex = 3;
    //
    string face = 4;
    //
    string sign = 5;
}

//
message AccountCard {
    //
    string mid = 1;
    //
    string name = 2;
    //
    string sex = 3;
    //
    string rank = 4;
    //
    string face = 5;
    //
    int32 spacesta = 6;
    //
    string sign = 7;
    //
    CardLevelInfo level_info = 8;
    //
    PendantInfo pendant = 9;
    //
    NameplateInfo nameplate = 10;
    //
    OfficialInfo official = 11;
    //
    OfficialVerify official_verify = 12;
    //
    CardVip vip = 13;
    //
    int64 fans = 14;
    //
    int64 friend = 15;
    //
    int64 attention = 16;
}

//
message ActivityArchiveReply {
    //
    Arc arc = 1;
    //
    string bvid = 2;
    //
    repeated Page pages = 3;
    //
    ReqUser req_user = 4;
    //
    repeated Staff staff = 5;
    //
    OperationRelate right_relate = 6;
    //
    OperationRelate bottom_relate = 7;
}

//
message ActivityArchiveReq {
    //
    int64 aid = 1;
    //
    string bvid = 2;
    //
    string activity_key = 3;
}

//
message ActivityEpisode {
    //
    int64 id = 1;
    //
    int64 aid = 2;
    //
    string bvid = 3;
    //
    int64 cid = 4;
    //
    string title = 5;
    //
    string cover = 6;
    //
    Author author = 7;
    //
    Rights rights = 8;
}

//
message ActivityGame {
    //
    repeated ActivityGameIframe iframes = 1;
    //
    string disclaimer = 2;
    //
    string disclaimer_url = 3;
}

//
message ActivityGameIframe {
    //
    string url = 1;
    //
    int64 height = 2;
}

//
message ActivityLive {
    //
    int64 room_id = 1;
    //
    int64 now_time = 2;
    //
    int64 start_time = 3;
    //
    int64 end_time = 4;
    //
    string hover_pic = 5;
    //
    string hover_jump_url = 6;
    //
    int64 break_cycle = 7;
    //
    repeated LiveTimeline timeline = 8;
    //
    OperationRelate operation_relate = 9;
    //
    int64 reply_type = 10;
    //
    int64 reply_id = 11;
    //
    string hover_pic_close = 12;
    //
    string gift_disclaimer = 13;
}

//
message ActivityLiveTimeInfoReply {
    //
    int64 now_time = 1;
    //
    int64 start_time = 2;
    //
    int64 end_time = 3;
    //
    repeated LiveTimeline timeline = 4;
}

//
message ActivityLiveTimeInfoReq {
    //
    string activity_key = 1;
}

//
message ActivitySeasonReply {
    //
    ActivitySeasonStatus status = 1;
    //
    string title = 2;
    //
    ActivityLive live = 3;
    //
    ActivitySubscribe subscribe = 4;
    //
    ActivityGame game = 5;
    //
    ActivityView view = 6;
    //
    ActivityTheme theme = 7;
}

//
message ActivitySeasonReq {
    //
    int64 aid = 1;
    //
    string bvid = 2;
    //
    string activity_key = 3;
}

//
message ActivitySeasonSection {
    //
    int64 id = 1;
    //
    string title = 2;
    //
    int64 type = 3;
    //
    repeated ActivityEpisode episodes = 4;
}

//
enum ActivitySeasonStatus {
    StatusNone = 0; //
    StatusLive = 1; //
    StatusView = 2; //
}

//
message ActivitySubscribe {
    //
    bool status = 1;
    //
    string title = 2;
    //
    string button_title = 3;
    //
    string button_selected_title = 4;
    //
    int64 season_stat_view = 5;
    //
    int64 season_stat_danmaku = 6;
    //
    OrderType order_type = 7;
    oneof param {
        //
        ReserveActivityParam reserve_activity_param = 8;
        //
        FavSeasonParam fav_season_param = 9;
        //
        JumpURLParam jump_URL_param = 10;
    }
}

//
message ActivityTheme {
    //
    string base_color = 1;
    //
    string loading_bg_color = 2;
    //
    string operated_bg_color = 3;
    //
    string default_element_color = 4;
    //
    string hover_element_color = 5;
    //
    string selected_element_color = 6;
    //
    string base_font_color = 7;
    //
    string info_font_color = 8;
    //
    string mask_bg_color = 9;
    //
    string page_bg_color = 10;
    //
    string center_logo_img = 11;
    //
    string page_bg_img = 12;
    //
    string decorations2233_img = 13;
    //
    string main_banner_bg_img = 14;
    //
    string main_banner_title_img = 15;
    //
    string like_animation_img = 16;
    //
    string combo_like_img = 17;
    //
    string combo_coin_img = 18;
    //
    string combo_fav_img = 19;
    //
    string arrow_btn_img = 20;
    //
    string share_icon_bg_img = 21;
    //
    string live_list_location_img = 22;
    //
    string live_list_location_img_active = 23;
    //
    string player_loading_img = 24;
    //
    string share_img = 25;
    //
    map<string, string> kv_color = 26;
}

//
message ActivityView {
    //
    Arc arc = 1;
    //
    string bvid = 2;
    //
    repeated Page pages = 3;
    //
    repeated Staff staff = 4;
    //
    ReqUser req_user = 5;
    //
    OperationRelate right_relate = 6;
    //
    OperationRelate bottom_relate = 7;
    //
    repeated ActivitySeasonSection sections = 8;
}

//
message Arc {
    //
    int64 aid = 1;
    //
    int64 videos = 2;
    //
    int32 type_id = 3;
    //
    string type_name = 4;
    //
    int32 copyright = 5;
    //
    string pic = 6;
    //
    string title = 7;
    //
    int64 pubdate = 8;
    //
    int64 ctime = 9;
    //
    string desc = 10;
    //
    int32 state = 11;
    //
    int32 access = 12;
    //
    int32 attribute = 13;
    //
    string tag = 14;
    //
    repeated string tags = 15;
    //
    int64 duration = 16;
    //
    int64 mission_id = 17;
    //
    int64 order_id = 18;
    //
    string redirect_url = 19;
    //
    int64 forward = 20;
    //
    Rights rights = 21;
    //
    Author author = 22;
    //
    Stat stat = 23;
    //
    string report_result = 24;
    //
    string dynamic = 25;
    //
    int64 first_cid = 26;
    //
    Dimension dimension = 27;
    //
    repeated StaffInfo staff_info = 28;
    //
    int64 season_id = 29;
    //
    repeated DescV2 desc_v2 = 30;
    //
    bool is_chargeable_season = 31;
    //
    bool is_blooper = 32;
}

//
message Author {
    //
    int64 mid = 1;
    //
    string name = 2;
    //
    string face = 3;
}

//
message Card {
    //
    AccountCard card = 1;
    //
    Space space = 2;
    //
    bool following = 3;
    //
    int64 archive_count = 4;
    //
    int32 article_count = 5;
    //
    int64 follower = 6;
}

//
message CardLevelInfo {
    //
    int32 cur = 1;
    //
    int32 min = 2;
    //
    int32 now_exp = 3;
    //
    int32 next_exp = 4;
}

//
message CardVip {
    //
    int32 type = 1;
    //
    string due_remark = 2;
    //
    int32 access_status = 3;
    //
    int32 vip_status = 4;
    //
    string vip_status_warn = 5;
    //
    int32 theme_type = 6;
}

message ClickActivitySeasonReq {
    //
    OrderType order_type = 1;
    oneof param {
        //
        ReserveActivityParam reserve_activity_param = 2;
        //
        FavSeasonParam fav_season_param = 3;
        //
        JumpURLParam jump_URL_param = 4;
    }
    //
    string spmid = 5;
    //
    int64 action = 6;
}

//
message DescV2 {
    //
    string raw_text = 1;
    //
    int64 type = 2;
    //
    int64 biz_id = 3;
}

//
message Dimension {
    //
    int64 width = 1;
    //
    int64 height = 2;
    //
    int64 rotate = 3;
}

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

//
message HotReply {
    //
    ReplyPage page = 1;
    //
    repeated Reply replies = 2;
}

//
message JumpURLParam {
    //
    string jump_url = 1;
}

//
message LiveTimeline {
    //
    string name = 1;
    //
    int64 start_time = 2;
    //
    int64 end_time = 3;
    //
    string cover = 4;
    //
    string subtitle = 5;
    //
    string h5_cover = 6;
}

//
message NameplateInfo {
    //
    int32 nid = 1;
    //
    string name = 2;
    //
    string image = 3;
    //
    string image_small = 4;
    //
    string level = 5;
    //
    string condition = 6;
}

//
message NoReply {}

//
message OfficialInfo {
    //
    int32 role = 1;
    //
    string title = 2;
    //
    string desc = 3;
}

//
message OfficialVerify {
    //
    int32 type = 1;
    //
    string desc = 2;
}

//
message OperationRelate {
    //
    string title = 1;
    //
    repeated RelateItem relate_item = 2;
    //
    repeated Relate ai_relate_item = 3;
}

//
enum OrderType {
    TypeNone          = 0; //
    TypeOrderActivity = 1; //
    TypeFavSeason     = 2; //
    TypeClick         = 3; //
}

//
message Page {
    //
    int64 cid = 1;
    //
    int32 page = 2;
    //
    string from = 3;
    //
    string part = 4;
    //
    int64 duration = 5;
    //
    string vid = 6;
    //
    string desc = 7;
    //
    string weblink = 8;
    //
    Dimension dimension = 9;
}

//
message PendantInfo {
    //
    int32 pid = 1;
    //
    string name = 2;
    //
    string image = 3;
    //
    int64 expire = 4;
}

//
message ReasonStyle {
    //
    string text = 1;
}

//
message Relate {
    //
    Arc arc = 1;
    //
    string bvid = 2;
    //
    int64 season_type = 3;
}

//
message RelateItem {
    //
    string url = 1;
    //
    string cover = 2;
}

//
message Relation {
    //
    int64 attribute = 1;
    //
    int64 special = 3;
}

//
message Reply {
    //
    int64 rpid = 1;
    //
    int64 oid = 2;
    //
    int32 type = 3;
    //
    int64 mid = 4;
    //
    int64 root = 5;
    //
    int64 parent = 6;
    //
    int64 dialog = 7;
    //
    int32 count = 8;
    //
    int32 rcount = 9;
    //
    int32 floor = 10;
    //
    int32 state = 11;
    //
    int32 fans_grade = 12;
    //
    int32 attr = 13;
    //
    int64 ctime = 14;
    //
    string rpid_str = 15;
    //
    string root_str = 16;
    //
    string parent_str = 17;
    //
    string dialog_str = 18;
    //
    int32 like = 19;
    //
    int32 hate = 20;
    //
    int32 action = 21;
    //
    ReplyMember member = 22;
    //
    ReplyContent content = 23;
    //
    repeated Reply replies = 24;
    //
    int32 assist = 25;
    //
    ReplyFolder folder = 26;
    //
    ReplyUpAction up_action = 27;
    //
    ReplyLabel label = 28;
    //
    string raw_input = 29;
    //
    bool show_follow = 30;
}

//
message ReplyContent {
    //
    int64 rp_id = 1;
    //
    string message = 2;
    //
    ReplyVote vote = 3;
    //
    repeated string topics = 5;
    //
    int32 ip = 6;
    //
    int32 plat = 7;
    //
    string device = 8;
    //
    string version = 9;
    //
    repeated ReplyMemberInfo members = 10;
    //
    map<string, ReplyEmote> emote = 11;
}

//
message ReplyEmote {
    //
    int64 id = 1;
    //
    int64 package_id = 2;
    //
    int64 state = 3;
    //
    int64 type = 4;
    //
    int64 attr = 5;
    //
    string text = 6;
    //
    string url = 7;
    //
    ReplyEmoteMeta meta = 8;
    //
    int64 ctime = 9;
    //
    int64 mtime = 10;
}

//
message ReplyEmoteMeta {
    //
    ReplyEmoteMetaSize size = 1;
}

//
enum ReplyEmoteMetaSize {
    EMOTE_META_SIZE_UNSPECIFIED = 0; //
    EMOTE_META_SIZE_SMALL       = 1; //
    EMOTE_META_SIZE_BIG         = 2; //
}

//
message ReplyFansDetail {
    //
    int64 uid = 1;
    //
    int32 medal_id = 2;
    //
    string medal_name = 3;
    //
    int32 score = 4;
    //
    int32 level = 5;
    //
    int32 intimacy = 6;
    //
    int32 status = 7;
    //
    int32 received = 8;
}

//
message ReplyFolder {
    //
    bool has_folded = 1;
    //
    bool is_folded = 2;
    //
    string rule = 3;
}

//
message ReplyLabel {
    //
    int64 rpid = 1;
    //
    string content = 2;
    //
    string text_color = 3;
    //
    string text_color_night_mode = 4;
    //
    string bg_color = 5;
    //
    string bg_color_night_mode = 6;
    //
    string link = 7;
    //
    string position = 8;
}

//
message ReplyLevelInfo {
    //
    int32 cur = 1;
    //
    int32 min = 2;
    //
    int32 now_exp = 3;
    //
    int32 next_exp = 4;
}

//
message ReplyMember {
    //
    ReplyMemberInfo info = 1;
    //
    ReplyFansDetail fans_detail = 2;
    //
    int32 following = 3;
}

//
message ReplyMemberInfo {
    //
    int32 role = 1;
    //
    string mid = 2;
    //
    string name = 3;
    //
    string sex = 4;
    //
    string sign = 5;
    //
    string avatar = 6;
    //
    string rank = 7;
    //
    string display_rank = 8;
    //
    ReplyLevelInfo level_info = 9;
    //
    PendantInfo pendant = 10;
    //
    NameplateInfo nameplate = 11;
    //
    OfficialVerify official_verify = 12;
    //
    ReplyVip vip = 13;
}

//
message ReplyPage {
    //
    int64 acount = 1;
    //
    int64 count = 2;
    //
    int64 num = 3;
    //
    int64 size = 4;
}

//
message ReplyUpAction {
    //
    bool like = 1;
    //
    bool reply = 2;
}

//
message ReplyVip {
    //
    int32 type = 1;
    //
    int64 due_date = 2;
    //
    string due_remark = 3;
    //
    int32 access_status = 4;
    //
    int32 vip_status = 5;
    //
    string vip_status_warn = 6;
    //
    int32 theme_type = 7;
    //
    VipLabel label = 8;
}

//
message ReplyVote {
    //
    int64 id = 1;
    //
    string title = 2;
    //
    int32 cnt = 3;
    //
    string desc = 4;
    //
    bool deleted = 5;
}

//
message ReqUser {
    //
    bool favorite = 1;
    //
    bool like = 2;
    //
    bool dislike = 3;
    //
    int64 multiply = 4;
}

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

//
message Rights {
    //
    int32 bp = 1;
    //
    int32 elec = 2;
    //
    int32 download = 3;
    //
    int32 movie = 4;
    //
    int32 pay = 5;
    //
    int32 hd5 = 6;
    //
    int32 no_reprint = 7;
    //
    int32 autoplay = 8;
    //
    int32 ugc_pay = 9;
    //
    int32 is_cooperation = 10;
    //
    int32 ugc_pay_preview = 11;
    //
    int32 arc_pay = 12;
    //
    int32 free_watch = 13;
}

//
message SeasonEpisode {
    //
    int64 season_id = 1;
    //
    int64 section_id = 2;
    //
    int64 id = 3;
    //
    int64 aid = 4;
    //
    int64 cid = 5;
    //
    string title = 6;
    //
    int64 attribute = 7;
    //
    Arc arc = 8;
    //
    Page page = 9;
    //
    string bvid = 10;
    //
    ReasonStyle badge_style = 11;
}

//
message SeasonSection {
    //
    int64 season_id = 1;
    //
    int64 id = 2;
    //
    string title = 3;
    //
    int64 type = 4;
    //
    repeated SeasonEpisode episodes = 5;
}

//
message SeasonStat {
    //
    int64 season_id = 1;
    //
    int32 view = 2;
    //
    int32 danmaku = 3;
    //
    int32 reply = 4;
    //
    int32 fav = 5;
    //
    int32 coin = 6;
    //
    int32 share = 7;
    //
    int32 now_rank = 8;
    //
    int32 his_rank = 9;
    //
    int32 like = 10;
}

//
message Space {
    //
    string s_img = 1;
    //
    string l_img = 2;
}

//
message Staff {
    //
    int64 mid = 1;
    //
    string title = 2;
    //
    string name = 3;
    //
    string face = 4;
    //
    VipInfo vip = 5;
    //
    OfficialInfo official = 6;
    //
    int64 follower = 7;
    //
    int32 label_style = 8;
    //
    Relation relation = 9;
}

//
message StaffInfo {
    //
    int64 mid = 1;
    //
    string title = 2;
}

//
message Stat {
    //
    int64 aid = 1;
    //
    int32 view = 2;
    //
    int32 danmaku = 3;
    //
    int32 reply = 4;
    //
    int32 fav = 5;
    //
    int32 coin = 6;
    //
    int32 share = 7;
    //
    int32 now_rank = 8;
    //
    int32 his_rank = 9;
    //
    int32 like = 10;
    //
    int32 dislike = 11;
    //
    string evaluation = 12;
    //
    string argue_msg = 13;
}

//
message Subtitle {
    //
    bool allow_submit = 1;
    //
    repeated SubtitleItem list = 2;
}

//
message SubtitleItem {
    //
    int64 id = 1;
    //
    string lan = 2;
    //
    string lan_doc = 3;
    //
    bool is_lock = 4;
    //
    int64 author_mid = 5;
    //
    string subtitle_url = 6;
    //
    AccInfo author = 7;
}

//
message Tag {
    //
    int64 id = 1;
    //
    string name = 2;
    //
    string cover = 3;
    //
    string head_cover = 4;
    //
    string content = 5;
    //
    string short_content = 6;
    //
    int32 type = 7;
    //
    int32 state = 8;
    //
    int64 ctime = 9;
    //
    TagCount tag_count = 10;
    //
    int32 is_atten = 11;
    //
    int64 likes = 12;
    //
    int64 hates = 13;
    //
    int32 attribute = 14;
    //
    int32 liked = 15;
    //
    int32 hated = 16;
}

//
message TagCount {
    //
    int64 view = 1;
    //
    int64 use = 2;
    //
    int64 atten = 3;
}

//
message UGCPayAsset {
    //
    int64 price = 1;
    //
    map<string, int64> platform_price = 2;
}

//
message UGCSeason {
    //
    int64 id = 1;
    //
    string title = 2;
    //
    string cover = 3;
    //
    int64 mid = 4;
    //
    string intro = 5;
    //
    int32 sign_state = 6;
    //
    int64 attribute = 7;
    //
    repeated SeasonSection sections = 8;
    //
    SeasonStat stat = 9;
    //
    int64 ep_count = 10;
    //
    int64 season_type = 11;
    //
    bool is_pay_season = 12;
}

//
message View {
    //
    Arc arc = 1;
    //
    bool no_cache = 2;
    //
    repeated Page pages = 3;
    //
    Subtitle subtitle = 4;
    //
    UGCPayAsset asset = 5;
    //
    ViewLabel label = 6;
    //
    repeated Staff staff = 7;
    //
    UGCSeason ugc_season = 8;
    //
    int64 stein_guide_cid = 9;
}

//
message ViewDetailReply {
    //
    View view = 1;
    //
    Card card = 2;
    //
    repeated Tag tags = 3;
    //
    HotReply reply = 4;
    //
    repeated Arc related = 5;
}

//
message ViewDetailReq {
    //
    int64 aid = 1;
    //
    string bvid = 2;
}

//
message ViewLabel {
    //
    int64 type = 1;
}

//
message VipInfo {
    //
    int32 type = 1;
    //
    int32 status = 2;
    //
    int32 vip_pay_type = 3;
    //
    int32 theme_type = 4;
}

//
message VipLabel {
    //
    string path = 1;
}
