syntax = "proto3"; package bilibili.main.community.reply.v1; import "google/protobuf/any.proto"; // 评论区 service Reply { // 主评论列表接口 rpc MainList(MainListReq) returns (MainListReply); // 二级评论明细接口 rpc DetailList(DetailListReq) returns (DetailListReply); // 对话评论树接口 rpc DialogList(DialogListReq) returns (DialogListReply); // 评论预览接口 rpc PreviewList(PreviewListReq) returns (PreviewListReply); // 评论搜索item前置发布接口 rpc SearchItemPreHook(SearchItemPreHookReq) returns (SearchItemPreHookReply); // 评论搜索插入项目接口 rpc SearchItem(SearchItemReq) returns (SearchItemReply); // 评论at用户搜索接口 rpc AtSearch(AtSearchReq) returns (AtSearchReply); // 查询单条评论接口 rpc ReplyInfo(ReplyInfoReq) returns (ReplyInfoReply); // 用户回调上报接口 rpc UserCallback(UserCallbackReq) returns (UserCallbackReply); // 评论分享材料接口 rpc ShareRepliesInfo(ShareRepliesInfoReq) returns (ShareRepliesInfoResp); // 评论表情推荐列表接口 rpc SuggestEmotes(SuggestEmotesReq) returns (SuggestEmotesResp); } // 活动 message Activity { // 活动id int64 activity_id = 1; // 活动状态 // -1:待审 1:上线 int64 activity_state = 2; // 参与活动的输入框文案 string activity_placeholder = 3; } // 文章项目 message ArticleSearchItem { // 标题 string title = 1; // UP主昵称 string up_nickname = 2; // 封面 repeated string covers = 3; } // 评论at用户搜索组 message AtGroup { // 组类型 int32 group_type = 1; // 组标题 string group_name = 2; // 评论at用户搜索列表 repeated AtItem items = 3; } // 评论at用户搜索条目 message AtItem { // 用户mid int64 mid = 1; // 用户名 string name = 2; // 用户头像url string face = 3; // 用户是否关注 int32 fans = 4; // 用户认证类型 int32 official_verify_type = 5; } // 评论at用户搜索-响应 message AtSearchReply { // 评论at用户搜索组 repeated AtGroup groups = 1; } // 评论at用户搜索-请求 message AtSearchReq { // int64 mid = 1; // 关键字 string keyword = 2; } // 广告 message CM { // 广告数据(需要解包) google.protobuf.Any source_content = 1; } // 评论主体信息 message Content { // 评论文本 string message = 1; // 需要渲染的用户转义 map menber = 2; // 需要渲染的表情转义 map emote = 3; // 需要高亮的话题转义 map topic = 4; // 需要高亮的超链转义 map url = 5; // 投票信息 Vote vote = 6; // at到的用户mid列表 map at_name_to_mid = 7; // 富文本 RichText rich_text = 8; // 评论图片 repeated Picture pictures = 9; } // 图片信息 message Picture { // 图片URL string img_src = 1; // 图片宽度 double img_width = 2; // 图片高度 double img_height = 3; // 图片大小,单位KB double img_size = 4; } // 页面游标回复 message CursorReply { // 下页数据 int64 next = 1; // 上页数据 int64 prev = 2; // 是否到顶 bool isBegin = 3; // 是否到底 bool isEnd = 4; // 排序方式 // 2:时间 3:热度 Mode mode = 5; // 当前排序mode在切换按钮上的展示文案 string mode_text = 6; } // 页面游标请求 message CursorReq { // 下页数据 int64 next = 1; // 上页数据 int64 prev = 2; // 排序方式 Mode mode = 4; } // 二级评论明细-响应 message DetailListReply { // 页面游标 CursorReply cursor = 1; // 评论区显示控制字段 SubjectControl subject_control = 2; // 根评论信息(带二级评论) ReplyInfo root = 3; // 评论区的活动 Activity activity = 4; // LikeInfo likes = 5; } // 二级评论明细-请求 message DetailListReq { // 目标评论区id int64 oid = 1; // 目标评论区业务type int64 type = 2; // 根评论rpid int64 root = 3; // 目标评论rpid int64 rpid = 4; // 页面游标 CursorReq cursor = 5; // 来源标识 DetailListScene scene = 6; } // 来源标识 enum DetailListScene { REPLY = 0; // 评论区展开 MSG_FEED = 1; // 回复消息推送 NOTIFY = 2; // } // 对话评论树-响应 message DialogListReply { // 页面游标 CursorReply cursor = 1; // 评论区显示控制字段 SubjectControl subject_control = 2; // 子评论列表 repeated ReplyInfo replies = 3; // 评论区的活动 Activity activity = 4; } // 对话评论树-请求 message DialogListReq { // 目标评论区id int64 oid = 1; // 目标评论区业务type int64 type = 2; // 根评论rpid int64 root = 3; // 对话评论rpid int64 rpid = 4; // 页面游标 CursorReq cursor = 5; } // 特效 message Effects { // string preloading = 1; } // 表情项 message Emote { // 表情大小 // 1:小 2:大 int64 size = 1; // 表情url string url = 2; // string jump_url = 3; // string jump_title = 4; // int64 id = 5; // int64 package_id = 6; // string gif_url = 7; // string text = 8; } // 商品项目 message GoodsSearchItem { // 商品id int64 id = 1; // 商品名 string name = 2; // 价钱 string price = 3; // 收入 string income = 4; // 图片 string img = 5; // 标签 string label = 6; } // message LikeInfo { // message Item { // Member member = 1; } // repeated Item items = 1; // string title = 2; } // 抽奖 message Lottery { // 抽奖id int64 lottery_id = 1; // 抽奖状态 // 0:未开奖 1:开奖中 2:已开奖 int64 lottery_status = 2; // 抽奖人mid int64 lottery_mid = 3; // 开奖时间 int64 lottery_time = 4; // int64 oid = 5; // int64 type = 6; // 发送时间 int64 ctime = 7; // 抽奖评论正文 Content content = 8; // 用户信息 Member member = 9; // 评论条目控制字段 ReplyControl reply_control = 10; } // 主评论列表-响应 message MainListReply { // 页面游标 CursorReply cursor = 1; // 评论列表 repeated ReplyInfo replies = 2; // 评论区显示控制字段 SubjectControl subject_control = 3; // UP置顶评论 ReplyInfo up_top = 4; // 管理员置顶评论 ReplyInfo admin_top = 5; // 投票置顶评论 ReplyInfo vote_top = 6; // 评论区提示 Notice notice = 7; // 抽奖评论 Lottery lottery = 8; // 活动 Activity activity = 9; // 精选评论区筛选后台信息 UpSelection up_selection = 10; // 广告 CM cm = 11; // 特效 Effects effects = 12; // Operation operation = 13; // repeated ReplyInfo top_replies = 14; // QoeInfo qoe = 15; // map callbacks = 16; } // 主评论列表-请求 message MainListReq { // 目标评论区id int64 oid = 1; // 目标评论区业务type int64 type = 2; // 页面游标 CursorReq cursor = 3; // 扩展数据json string extra = 4; // 广告扩展 string ad_extra = 5; // 目标评论rpid int64 rpid = 6; // int64 seek_rpid = 7; // 评论区筛选类型 取值可为: ["全部" "粉丝评论" "笔记长评"] string filter_tag_name = 8; } // 用户信息 message Member { // 地区类型 enum RegionType { DEFAULT = 0; // 默认 MAINLAND = 1; // 大陆地区 GAT = 2; // } // enum ShowStatus { SHOWDEFAULT = 0; // 默认 ZOOMINMAINLAND = 1; // RAW = 2; // } // NFT地区 message Region { // 地区类型 RegionType type = 1; // 角标url string icon = 2; // ShowStatus show_status = 3; } // NFT信息 message NftInteraction { // string itype = 1; // string metadata_url = 2; // string nft_id = 3; // NFT地区 Region region = 4; } /**********基础信息**********/ // 用户mid int64 mid = 1; // 昵称 string name = 2; // 性别 string sex = 3; // 头像url string face = 4; // 等级 int64 level = 5; // 认证类型 int64 official_verify_type = 6; /**********VIP相关**********/ // 会员类型 // 0:不是大会员 1:月度会员 2:年度大会员 int64 vip_type = 7; // 会员状态 int64 vip_status = 8; // 会员样式 int64 vip_theme_type = 9; // 会员铭牌样式url string vip_label_path = 10; /**********装扮相关**********/ // 头像框url string garb_pendant_image = 11; // 装扮卡url string garb_card_image = 12; // 有关注按钮时的装扮卡url string garb_card_image_with_focus = 13; // 专属装扮页面url string garb_card_jump_url = 14; // 专属装扮id string garb_card_number = 15; // 专属装扮id显示颜色 string garb_card_fan_color = 16; // 是否为专属装扮卡 bool garb_card_is_fan = 17; /**********粉丝勋章相关**********/ // 粉丝勋章名 string fans_medal_name = 18; // 粉丝勋章等级 int64 fans_medal_level = 19; // 粉丝勋章显示颜色 int64 fans_medal_color = 20; // 会员昵称颜色 string vip_nickname_color = 21; // 会员角标 // 0:无角标 1:粉色大会员角标 2:绿色小会员角标 int32 vip_avatar_subscript = 22; // 会员标签文 string vip_label_text = 23; // 会员标颜色 string vip_label_theme = 24; // 粉丝勋章底色 int64 fans_medal_color_end = 25; // 粉丝勋章边框颜色 int64 fans_medal_color_border = 26; // 粉丝勋章名颜色 int64 fans_medal_color_name = 27; // 粉丝勋章等级颜色 int64 fans_medal_color_level = 28; // int64 fans_guard_level = 29; // int32 face_nft = 30; // 是否NFT头像 int32 face_nft_new = 31; // 是否为硬核会员 int32 is_senior_member = 32; // NFT信息 NftInteraction nft_interaction = 33; // string fans_guard_icon = 34; // string fans_honor_icon = 35; } // 用户信息V2 message MemberV2 { // 基本信息 message Basic { // 用户mid int64 mid = 1; // 昵称 string name = 2; // 性别 string sex = 3; // 头像url string face = 4; // 等级 int64 level = 5; } // 认证 message Official { // 认证类型 int64 verify_type = 1; } // 大会员 message Vip { // 会员类型 // 0:不是大会员 1:月度会员 2:年度大会员 int64 type = 1; // 会员状态 int64 status = 2; // 会员样式 int64 theme_type = 3; // 会员铭牌样式url string label_path = 4; // string nickname_color = 5; // int32 avatar_subscript = 6; // string label_text = 7; // string vip_label_theme = 8; } // 装扮 message Garb { // 头像框url string pendant_image = 1; // 装扮卡url string card_image = 2; // 有关注按钮时的装扮卡url string card_image_with_focus = 3; // 专属装扮页面url string card_jump_url = 4; // 专属装扮id string card_number = 5; // 专属装扮id显示颜色 string card_fan_color = 6; // 是否为专属装扮卡 bool card_is_fan = 7; } // 粉丝勋章 message Medal { // 粉丝勋章名 string name = 1; // 粉丝勋章等级 int64 level = 2; // 粉丝勋章显示颜色 int64 color_start = 3; // 粉丝勋章底色 int64 color_end = 4; // 粉丝勋章边框颜色 int64 color_border = 5; // 粉丝勋章名颜色 int64 color_name = 6; // 粉丝勋章等级颜色 int64 color_level = 7; // int64 guard_level = 8; // string first_icon = 9; // int64 level_bg_color = 11; } // 地区类型 enum RegionType { DEFAULT = 0; // 默认 MAINLAND = 1; // 大陆地区 GAT = 2; // } // enum ShowStatus { SHOWDEFAULT = 0; // ZOOMINMAINLAND = 1; // RAW = 2; // } // NFT地区 message Region { // 地区类型 RegionType type = 1; // 角标url string icon = 2; // ShowStatus show_status = 3; } // NFT信息 message Interaction { // string itype = 1; // string metadata_url = 2; // string nft_id = 3; // NFT地区 Region region = 4; } // NFT message Nft { // int32 face = 1; // Interaction interaction = 2; } // 硬核会员 message Senior { // 是否为硬核会员 int32 is_senior_member = 1; } // 契约 message Contractor { // 是否和up签订契约 bool is_contractor = 1; // 契约显示文案 string contract_desc = 2; } // 基本信息 Basic basic = 1; // 认证信息 Official official = 2; // 大会员信息 Vip vip = 3; // 装扮信息 Garb garb = 4; // 粉丝勋章信息 Medal medal = 5; // NFT信息 Nft nft = 6; // 硬核会员信息 Senior senior = 7; // 契约信息 Contractor contractor = 8; } // 排序方式 enum Mode { DEFAULT = 0; // UNSPECIFIED = 1; // 默认排序 MAIN_LIST_TIME = 2; // 按时间 MAIN_LIST_HOT = 3; // 按热度 } // message Notice { // int64 id = 1; // string content = 2; // string link = 3; } // message Operation { // int32 type = 1; // int64 id = 2; // OperationTitle title = 3; // OperationTitle subtitle = 4; // string link = 5; // string report_extra = 6; // string icon = 7; } // message OperationTitle { // string content = 1; // bool is_highlight = 2; } // PGC视频项目 message PGCVideoSearchItem { // 标题 string title = 1; // 类别 string category = 2; // 封面 string cover = 3; } // 评论区预览-回复 message PreviewListReply { // 页面游标 CursorReply cursor = 1; // 评论列表 repeated ReplyInfo replies = 2; // 评论区显示控制字段 SubjectControl subject_control = 3; // UP置顶评论 ReplyInfo upTop = 4; // 管理员置顶评论 ReplyInfo admin_top = 5; // 投票置顶评论 ReplyInfo vote_top = 6; } // 评论区预览-请求 message PreviewListReq { // 目标评论区id int64 oid = 1; // 目标评论区业务type int64 type = 2; // 页面游标 CursorReq cursor = 3; } // message QoeInfo { // int64 id = 1; // int32 type = 2; // int32 style = 3; // string title = 4; // string feedback_title = 5; // repeated QoeScoreItem score_items = 6; // int64 display_rank = 7; } // message QoeScoreItem { // string title = 1; // string url = 2; // float score = 3; } // 评论条目标签信息 message ReplyCardLabel { // 标签文本 string text_content = 1; // 文本颜色 string text_color_day = 2; // 文本颜色夜间 string text_color_night = 3; // 标签颜色 string label_color_day = 4; // 标签颜色夜间 string label_color_night = 5; // string image = 6; // 标签类型 0:UP主觉得很赞 1:妙评 int32 type = 7; // 背景url string background = 8; // 背景宽 double background_width = 9; // 背景高 double background_height = 10; // 点击跳转url string jump_url = 11; // int64 effect = 12; // int64 effect_start_time = 13; } // 评论条目控制字段 message ReplyControl { // 操作行为标志 // 0:无 1:已点赞 2:已点踩 int64 action = 1; // 是否UP觉得很赞 bool up_like = 2; // 是否存在UP回复 bool up_reply = 3; // 是否显示关注按钮 bool show_follow_btn = 4; // 是否协管 bool is_assist = 5; // 是否展示标签 string label_text = 6; // 是否关注 bool following = 7; // 是否粉丝 bool followed = 8; // 是否被自己拉黑 bool blocked = 9; // 是否存在折叠的二级评论 bool has_folded_reply = 10; // 是否折叠 bool is_folded_reply = 11; // 是否UP置顶 bool is_up_top = 12; // 是否管理置顶 bool is_admin_top = 13; // 是否置顶投票评论 bool is_vote_top = 14; // 最大收起显示行数 int64 max_line = 15; // 该条评论可不可见 bool invisible = 16; // 是否和up签订契约 bool is_contractor = 17; // 是否是笔记评论 bool is_note = 18; // 评论条目标签列表 repeated ReplyCardLabel card_labels = 19; // 子评论数文案 "共x条回复" string sub_reply_entry_text = 20; // 子评论数文案 "相关回复共x条" string sub_reply_title_text = 21; // 契约显示文案 string contract_desc = 22; // 发布时间文案 "x天前发布" string time_desc = 23; // string biz_scene = 24; // IP属地信息 "IP属地:xxx" string location = 25; } // message ReplyExtra { // int64 season_id = 1; // int64 season_type = 2; // int64 ep_id = 3; // bool is_story = 4; } // 评论条目信息 message ReplyInfo { // 二级评论列表 repeated ReplyInfo replies = 1; // 评论rpid int64 id = 2; // 评论区对象id int64 oid = 3; // 评论区类型 int64 type = 4; // 发布者UID int64 mid = 5; // 根评论rpid int64 root = 6; // 父评论rpid int64 parent = 7; // 对话评论rpid int64 dialog = 8; // 点赞数 int64 like = 9; // 发布时间 int64 ctime = 10; // 回复数 int64 count = 11; // 评论主体信息 Content content = 12; // 发布者信息 Member member = 13; // 评论控制字段 ReplyControl reply_control = 14; // 发布者信息V2 MemberV2 member_v2 = 15; } // 查询单条评论-响应 message ReplyInfoReply { // 评论条目信息 ReplyInfo reply = 1; } // 查询单条评论-请求 message ReplyInfoReq { // 评论rpid int64 rpid = 1; // int32 scene = 2; } // 富文本 message RichText { // 富文本类型 oneof item { // 笔记 RichTextNote note = 1; } } // 笔记 message RichTextNote { // 预览文本 string summary = 1; // 笔记预览图片url列表 repeated string images = 2; // 笔记页面url string click_url = 3; // 发布日期 YYYY-mm-dd string last_mtime_text = 4; } // 评论搜索插入项目 message SearchItem { // string url = 1; // 项目 oneof item { // 商品 GoodsSearchItem goods = 2; // 视频 VideoSearchItem video = 3; // 专栏 ArticleSearchItem article = 4; } } // 评论搜索插入项目响应游标 message SearchItemCursorReply { // 是否有下一页 bool has_next = 1; // 下页 int64 next = 2; } // 评论搜索插入项目请求游标 message SearchItemCursorReq { // 下一页 int64 next = 1; // tab类型 SearchItemType item_type = 2; } // 评论搜索item前置发布-响应 message SearchItemPreHookReply { // 输入框的文案 string placeholder_text = 1; // 背景空白的时候的文案 string background_text = 2; // 有权限的tab栏的顺序 repeated SearchItemType ordered_type = 3; } // 评论搜索item前置发布-请求 message SearchItemPreHookReq { // 目标评论区id int64 oid = 1; // 目标评论区业务type int64 type = 2; } // 评论搜索插入项目-回复 message SearchItemReply { // SearchItemCursorReply cursor = 1; // 搜索的结果 repeated SearchItem items = 2; // 附加信息 SearchItemReplyExtraInfo extra = 3; } // message SearchItemReplyExtraInfo { // string event_id = 1; } // 评论搜索插入项目-请求 message SearchItemReq { // 页面游标 SearchItemCursorReq cursor = 1; // 目标评论区id int64 oid = 2; // 目标评论区业务type int64 type = 3; // 搜索关键词 string keyword = 4; } // enum SearchItemType { DEFAULT_ITEM_TYPE = 0; // GOODS = 1; // VIDEO = 2; // ARTICLE = 3; // } // enum SearchItemVideoSubType { UGC = 0; // PGC = 1; // } // 评论分享材料-请求 message ShareRepliesInfoReq { // 评论rpid列表 repeated int64 rpids = 1; // 目标评论区id int64 oid = 2; // 目标评论区业务type int64 type = 3; } // 评论分享材料-响应 message ShareRepliesInfoResp { // message ShareExtra { // bool is_pgc = 1; } // 评论分享条目列表 repeated ShareReplyInfo infos = 1; // 源内容标题 string from_title = 2; // 源内容UP主 string from_up = 3; // 源内容封面url string from_pic = 4; // 源内容页面url string url = 5; // logo url string slogan_pic = 6; // 标语 string slogan_text = 7; // ShareReplyTopic topic = 8; // ShareExtra extra = 9; } // 评论分享条目信息 message ShareReplyInfo { // 用户信息 Member member = 1; // 评论主体信息 Content content = 2; // 分享标题(评论发布者昵称) string title = 3; // 分享副标题 "发表了评论" string sub_title = 4; // 荣誉信息文案 "获得了up主点赞" string achievement_text = 5; // string label_url = 6; } // message ShareReplyTopic { // Topic topic = 1; // string origin_text = 2; } // 评论区控制字段 message SubjectControl { // 评论区筛选类型 message FilterTag { // 类型名 string name = 1; // string event_id = 2; } // UP主mid int64 up_mid = 1; // 自己是否为协管 bool is_assist = 2; // 是否只读 bool read_only = 3; // 是否有发起投票权限 bool has_vote_access = 4; // 是否有发起抽奖权限 bool has_lottery_access = 5; // 是否有被折叠评论 bool has_folded_reply = 6; // 空评论区背景文案 string bg_text = 7; // 是否被UP拉黑 bool up_blocked = 8; // 是否有发起活动权限 bool has_activity_access = 9; // 标题展示控制 bool show_title = 10; // 是否显示UP主操作标志 bool show_up_action = 11; // 是否显示评论区排序切换按钮 int64 switcher_type = 12; // 是否禁止输入框 bool input_disable = 13; // 根评论输入框背景文案 string root_text = 14; // 子评论输入框背景文案 string child_text = 15; // 评论总数 int64 count = 16; // 评论区标题 string title = 17; // 离开态输入框的文案 string giveup_text = 18; // 是否允许笔记 bool has_note_access = 19; // bool disable_jump_emote = 20; // string empty_background_text_plain = 21; // string empty_background_text_highlight = 22; // string empty_background_uri = 23; // 评论区筛选类型列表 repeated FilterTag support_filter_tags = 24; } // 评论表情推荐列表-请求 message SuggestEmotesReq { // 目标评论区id int64 oid = 1; // 目标评论区业务type int64 type = 2; } // 评论表情推荐列表-响应 message SuggestEmotesResp { // 表情推荐列表 repeated Emote emotes = 1; } // 话题项 message Topic { // 跳转url string link = 1; // 话题id int64 id = 2; } // UGC视频项目 message UGCVideoSearchItem { // 标题 string title = 1; // UP主昵称 string up_nickname = 2; // 时长(单位为秒) int64 duration = 3; // 封面 string cover = 4; } // 精选评论 message UpSelection { // 待审评论数 int64 pending_count = 1; // 忽略评论数 int64 ignore_count = 2; } // 超链项 message Url { // 扩展字段 message Extra { // int64 goods_item_id = 1; // string goods_prefetched_cache = 2; // int32 goods_show_type = 3; // 热词搜索 bool is_word_search = 4; // int64 goods_cm_control = 5; } // 标题 string title = 1; // int64 state = 2; // 图标url string prefix_icon = 3; // 客户端内跳转uri string app_url_schema = 4; // string app_name = 5; // string app_package_name = 6; // 点击上报数据 string click_report = 7; // 是否半屏打开 bool is_half_screen = 8; // 展现上报数据 string exposure_report = 9; // 扩展字段 Extra extra = 10; // 是否下划线 bool underline = 11; // bool match_once = 12; // 网页url string pc_url = 13; // int32 icon_position = 14; } // enum UserCallbackAction { Dismiss = 0; // } // 用户回调上报-响应 message UserCallbackReply {} // 用户回调上报-请求 message UserCallbackReq { // 用户mid int64 mid = 1; // UserCallbackScene scene = 2; // UserCallbackAction action = 3; // 目标评论区id int64 oid = 4; // 目标评论区业务type int64 type = 5; } // enum UserCallbackScene { Insert = 0; // } // 视频项目 message VideoSearchItem { // SearchItemVideoSubType type = 1; // oneof video_item { // UGC视频 UGCVideoSearchItem ugc = 2; // PGC视频 PGCVideoSearchItem pgc = 3; } } // 投票信息 message Vote { // 投票id int64 id = 1; // 投票标题 string title = 2; // 参与人数 int64 count = 3; }