//评论区v1接口 syntax = "proto3"; package bilibili.main.community.reply.v1; import "google/protobuf/any.proto"; service Reply { //主评论列表接口 //https://app.bilibili.com/bilibili.main.community.reply.v1.Reply/MainList rpc MainList(MainListReq) returns (MainListReply); //二级评论明细接口 //https://app.bilibili.com/bilibili.main.community.reply.v1.Reply/DetailList rpc DetailList(DetailListReq) returns (DetailListReply); //对话评论树接口 //https://app.bilibili.com/bilibili.main.community.reply.v1.Reply/DialogList rpc DialogList(DialogListReq) returns (DialogListReply); //??? //https://app.bilibili.com/bilibili.main.community.reply.v1.Reply/SearchItemPreHook rpc SearchItemPreHook(SearchItemPreHookReq) returns (SearchItemPreHookReply); //搜索评论区插入项目接口 //https://app.bilibili.com/bilibili.main.community.reply.v1.Reply/SearchItem rpc SearchItem(SearchItemReq) returns (SearchItemReply); } //排序方式 enum Mode{ // DEFAULT = 0; // UNSPECIFIED = 1; //按时间 MAIN_LIST_TIME = 2; //按热度 MAIN_LIST_HOT = 3; } //页面游标请求 message CursorReq{ //下页数据 int64 next = 1; //上页数据 int64 prev = 2; //排序方式 Mode mode = 4; } //页面游标回复 message CursorReply{ //下页数据 int64 next = 1; //上页数据 int64 prev = 2; //是否到顶 bool isBegin = 3; //是否到底 bool isEnd = 4; //排序方式 Mode mode = 5; } // enum SearchItemType{ // DEFAULT_ITEM_TYPE = 0; // GOODS_VALUE = 1; // VIDEO_VALUE = 2; // ARTICLE_VALUE = 3; } // enum DetailListScene{ //评论区展开 REPLY = 0; //回复消息推送 MSG_FEED = 1; } // message SearchItemCursorReq{ // int64 next = 1; // SearchItemType itemType = 2; } // message SearchItemCursorReply{ // bool hasNext = 1; // int64 next = 2; } //用户信息 message Member{ //UID int64 mid = 1; //昵称 string name = 2; //性别 string sex = 3; //头像url string face = 4; //等级 int64 level = 5; //认证类型 int64 officialVerifyType = 6; /****VIP相关****/ //会员类型 int64 vipType = 7; //会员状态 int64 vipStatus = 8; //会员样式 int64 vipThemeType = 9; //会员铭牌样式url string vipLabelPath = 10; /****装扮相关****/ //头像框url string garbPendantImage = 11; //装扮卡url string garbCardImage = 12; //有关注按钮时的装扮卡url string garbCardImageWithFocus = 13; //专属装扮页面url string garbCardJumpUrl = 14; //专属装扮id string garbCardNumber = 15; //专属装扮id显示颜色 string garbCardFanColor = 16; //是否为专属装扮卡 bool garbCardIsFan = 17; /****粉丝勋章相关****/ //粉丝勋章名 string fansMedalName = 18; //粉丝勋章等级 int64 fansMedalLevel = 19; //粉丝勋章显示颜色 int64 fansMedalColor = 20; } //表情项 message Emote{ //表情大小 //1:小 2:大 int64 size = 1; //表情url string url = 2; } //话题项 message Topic{ //跳转url string link = 1; //话题id int64 id = 2; } //超链项 message Url{ //标题 string title = 1; // int64 state = 2; //图标url string prefixIcon = 3; // string appUrlSchema = 4; // string appName = 5; // string appPackageName = 6; // string clickReport = 7; } //投票信息 message Vote{ //投票id int64 id = 1; //投票标题 string title = 2; //参与人数 int64 count = 3; } //评论主体信息 message Content{ //评论文本 string message = 1; //at到的用户信息 map menber = 2; //需要渲染的表情转义 map emote = 3; //需要高亮的话题转义 map topic = 4; //需要高亮的超链转义 map url = 5; //投票信息 Vote vote = 6; } //评论条目控制字段 message ReplyControl{ //操作行为标志 //0:无 1:已点赞 2:已点踩 int64 action = 1; //是否UP觉得很赞 bool upLike = 2; //是否存在UP回复 bool upReply = 3; //是否显示关注按钮 bool showFollowBtn = 4; //是否协管 bool isAssist = 5; //评论标签? string labelText = 6; //是否关注 bool following = 7; //是否粉丝 bool followed = 8; //是否被自己拉黑 bool blocked = 9; //是否存在折叠的二级评论 bool hasFoldedReply = 10; //是否折叠 bool isFoldedReply = 11; //是否UP置顶 bool isUpTop = 12; //是否管理置顶 bool isAdminTop = 13; //是否置顶投票评论 bool isVoteTop = 14; //最大收起显示行数 int64 maxLine = 15; // bool invisible = 16; } //评论条目信息 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 replyControl = 14; } //评论区控制字段 message SubjectControl{ //UP主UID int64 upMid = 1; //自己是否为协管 bool isAssist = 2; //是否只读 bool readOnly = 3; //是否有发起投票权限 bool hasVoteAccess = 4; //是否有发起抽奖权限 bool hasLotteryAccess = 5; //是否有被折叠评论 bool hasFoldedReply = 6; //空评论区背景文案 string bgText = 7; //是否被UP拉黑 bool upBlocked = 8; //是否有发起活动权限 bool hasActivityAccess = 9; //标题展示控制 bool showTitle = 10; //是否显示UP主操作标志 bool showUpAction = 11; //是否显示评论区排序切换按钮 int64 switcherType = 12; //是否禁止输入框 bool inputDisable = 13; //根评论输入框背景文案 string rootText = 14; //子评论输入框背景文案 string childText = 15; //评论总数 int64 count = 16; //评论区标题 string title = 17; } // message Notice{ // int64 id = 1; // string content = 2; // string link = 3; } // message Lottery{ // int64 lotteryId = 1; // int64 lotteryStatus = 2; // int64 lotteryMid = 3; // int64 lotteryTime = 4; // int64 oid = 5; // int64 type = 6; // int64 ctime = 7; // Content content = 8; // Member member = 9; // ReplyControl replyControl = 10; } // message Activity{ // int64 activityId = 1; // int64 activityState = 2; // string activityPlaceholder = 3; } // message UpSelection{ // int64 pendingCount = 1; // int64 ignoreCount = 2; } // message CM{ // google.protobuf.Any sourceContent = 1; } // message ArticleSearchItem{ // string title = 1; // string upNickname = 2; // repeated string covers = 3; } // message GoodsSearchItem{ // int64 id = 1; // string name = 2; // string price = 3; // string income = 4; // string img = 5; // string label = 6; } // enum VideoItemCase{ // VIDEOITEM_NOT_SET = 0; // UGC = 2; // PGC = 3; } // message UGCVideoSearchItem{ // string title = 1; // string upNickname = 2; // int64 duration = 3; // string cover = 4; } // message PGCVideoSearchItem{ // string title = 1; // string category = 2; // string cover = 3; } // message VideoSearchItem{ // VideoItemCase type = 1; // UGCVideoSearchItem UGCVideo = 2; // PGCVideoSearchItem PGCVideo = 3; } // enum ItemCase{ // ITEM_NOT_SET = 0; // GOODS = 2; // VIDEO = 3; // ARTICLE = 4; } // message SearchItem{ // string url = 1; // GoodsSearchItem goods = 2; // VideoSearchItem video = 3; // ArticleSearchItem article = 4; } // message SearchItemReplyExtraInfo{ // string eventId = 1; } //主评论列表 //请求 message MainListReq{ //目标评论区id int64 oid = 1; //评论区类型 int64 type = 2; //页面游标 CursorReq cursor = 3; // string extra = 4; // string adExtra = 5; // int64 rpid = 6; } //回复 message MainListReply{ //页面游标 CursorReply cursor = 1; //评论列表 repeated ReplyInfo replies = 2; //评论区显示控制 SubjectControl subjectControl = 3; //UP置顶评论 ReplyInfo upTop = 4; //管理员置顶评论 ReplyInfo adminTop = 5; //投票置顶评论 ReplyInfo voteTop = 6; // Notice notice = 7; //抽奖评论 Lottery lottery = 8; // Activity activity = 9; // UpSelection upSelection = 10; // CM cm = 11; } //二级评论明细 //请求 message DetailListReq{ //目标评论区id int64 oid = 1; //评论区类型 int64 type = 2; //根评论rpid int64 root = 3; //目标评论rpid int64 rpid = 4; //页面游标 CursorReq cursor = 5; //来源标识 DetailListScene scene = 6; } //回复 message DetailListReply{ //页面游标 CursorReply cursor = 1; //评论区显示控制 SubjectControl subjectControl = 2; //根评论信息(带二级评论) ReplyInfo root = 3; // Activity activity = 4; } //对话评论树 //请求 message DialogListReq{ //目标评论区id int64 oid = 1; //评论区类型 int64 type = 2; //根评论rpid int64 root = 3; //目标评论rpid int64 rpid = 4; //页面游标 CursorReq cursor = 5; } //回复 message DialogListReply{ //页面游标 CursorReply cursor = 1; //评论区显示控制 SubjectControl subjectControl = 2; //评论树列表 repeated ReplyInfo replies = 3; // Activity activity = 4; } //搜索提示信息? //请求 message SearchItemPreHookReq{ //目标评论区id int64 oid = 1; //评论区类型 int64 type = 2; } //回复 message SearchItemPreHookReply{ // string placeholderText = 1; // string backgroundText = 2; // repeated SearchItemType orderedType = 3; } //搜索评论区插入项目 //请求 message SearchItemReq{ //页面游标 SearchItemCursorReq cursor = 1; //目标评论区id int64 oid = 2; //评论区类型 int64 type = 3; //搜索关键词 string keyword = 4; } //回复 message SearchItemReply{ // SearchItemCursorReply cursor = 1; // repeated SearchItem items = 2; // SearchItemReplyExtraInfo extra = 3; }