Create & Init Project...

This commit is contained in:
2019-04-22 18:49:16 +08:00
commit fc4fa37393
25440 changed files with 4054998 additions and 0 deletions

View File

@@ -0,0 +1,55 @@
load(
"@io_bazel_rules_go//proto:def.bzl",
"go_proto_library",
)
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
proto_library(
name = "v2_proto",
srcs = ["index.proto"],
tags = ["automanaged"],
deps = ["@gogo_special_proto//github.com/gogo/protobuf/gogoproto"],
)
go_proto_library(
name = "v2_go_proto",
compilers = ["@io_bazel_rules_go//proto:gogofast_grpc"],
importpath = "go-common/app/interface/live/app-interface/api/http/v2",
proto = ":v2_proto",
tags = ["automanaged"],
deps = ["@com_github_gogo_protobuf//gogoproto:go_default_library"],
)
go_library(
name = "go_default_library",
srcs = ["index.bm.go"],
embed = [":v2_go_proto"],
importpath = "go-common/app/interface/live/app-interface/api/http/v2",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = [
"//library/net/http/blademaster:go_default_library",
"@com_github_gogo_protobuf//gogoproto:go_default_library",
"@com_github_gogo_protobuf//proto:go_default_library",
],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

View File

@@ -0,0 +1,72 @@
// Code generated by protoc-gen-bm v0.1, DO NOT EDIT.
// source: api/http/v2/index.proto
/*
Package v2 is a generated blademaster stub package.
This code was generated with go-common/app/tool/bmgen/protoc-gen-bm v0.1.
It is generated from these files:
api/http/v2/index.proto
*/
package v2
import (
"context"
bm "go-common/library/net/http/blademaster"
)
// to suppressed 'imported but not used warning'
var _ *bm.Context
var _ context.Context
// ===============
// Index Interface
// ===============
// Index 相关服务
type Index interface {
// 首页大接口
// `midware:"guest,verify"`
GetAllList(ctx context.Context, req *GetAllListReq) (resp *GetAllListResp, err error)
// 换一换接口
// `midware:"guest,verify"`
Change(ctx context.Context, req *ChangeReq) (resp *ChangeResp, err error)
}
var v2IndexSvc Index
// @params GetAllListReq
// @router GET /xlive/app-interface/v2/index/getAllList
// @response GetAllListResp
func indexGetAllList(c *bm.Context) {
p := new(GetAllListReq)
if err := c.Bind(p); err != nil {
return
}
resp, err := v2IndexSvc.GetAllList(c, p)
c.JSON(resp, err)
}
// @params ChangeReq
// @router GET /xlive/app-interface/v2/index/change
// @response ChangeResp
func indexChange(c *bm.Context) {
p := new(ChangeReq)
if err := c.Bind(p); err != nil {
return
}
resp, err := v2IndexSvc.Change(c, p)
c.JSON(resp, err)
}
// RegisterV2IndexService Register the blademaster route with middleware map
// midMap is the middleware map, the key is defined in proto
func RegisterV2IndexService(e *bm.Engine, svc Index, midMap map[string]bm.HandlerFunc) {
guest := midMap["guest"]
verify := midMap["verify"]
v2IndexSvc = svc
e.GET("/xlive/app-interface/v2/index/getAllList", guest, verify, indexGetAllList)
e.GET("/xlive/app-interface/v2/index/change", guest, verify, indexChange)
}

View File

@@ -0,0 +1,532 @@
## 首页大接口
`GET http://api.live.bilibili.com/xlive/app-interface/v2/index/getAllList`
### 请求参数
|参数名|必选|类型|描述|
|:---|:---|:---|:---|
|platform|是|string| 平台
|
|device|是|string| 设备
|
|scale|是|string| 分辨率
|
|build|是|integer| 版本号
|
|relation_page|是|integer|关注页码
|
|rec_page|否|integer|推荐页码 当前推荐页用于天马强推不传默认按1处理
|
|quality|否|integer||
```json
{
"code": 0,
"message": "ok",
"data": {
// 刷新重新请求间隔
"interval": 0,
// 是否命中天马灰度
"is_sky_horse_gray": 0,
// banner类型
"banner": [
{
// 模块信息
"module_info": {
// 模块id
"id": 0,
// 模块跳转链接
"link": "",
// 模块图标
"pic": "",
// 模块标题
"title": "",
// 模块类型 1: banner 2: 导航栏 3: 运营推荐分区-标准 4: 运营推荐分区-方 5排行榜小时榜 6: 推荐主播-标准 7: 推荐主播-方 8:我的关注(用户相关) 9一级分区-标准 10一级分区-方 11: 活动卡片 12常用标签推荐入口(用户相关) 13常用标签推荐房间列表(用户相关) 14大航海提示入口
"type": 0,
// 模块排序值
"sort": 0,
// 模块数据源数量按需、目前只有推荐有其它模块都是默认值0
"count": 0
},
// 模块列表
"list": [
{
// 唯一标识id
"id": 0,
// 跳转url
"link": "",
// 图片url
"pic": "",
// 标题
"title": "",
// 内容
"content": ""
}
]
}
],
// 常用标签类型
"my_tag": [
{
"module_info": {
// 模块id
"id": 0,
// 模块跳转链接
"link": "",
// 模块图标
"pic": "",
// 模块标题
"title": "",
// 模块类型 1: banner 2: 导航栏 3: 运营推荐分区-标准 4: 运营推荐分区-方 5排行榜小时榜 6: 推荐主播-标准 7: 推荐主播-方 8:我的关注(用户相关) 9一级分区-标准 10一级分区-方 11: 活动卡片 12常用标签推荐入口(用户相关) 13常用标签推荐房间列表(用户相关) 14大航海提示入口
"type": 0,
// 模块排序值
"sort": 0,
// 模块数据源数量按需、目前只有推荐有其它模块都是默认值0
"count": 0
},
"extra_info": {
// 是否命中常用标签灰度
"is_gray": 0,
// offline已下线标签
"offline": [
{
"id": 0,
"area_v2_name": ""
}
]
},
"list": [
{
"area_v2_id": 0,
"area_v2_name": "",
"area_v2_parent_id": 0,
"area_v2_parent_name": "",
"pic": "",
"link": "",
"is_advice": 0
}
]
}
],
// 分区入口类型
"area_entrance": [
{
"module_info": {
// 模块id
"id": 0,
// 模块跳转链接
"link": "",
// 模块图标
"pic": "",
// 模块标题
"title": "",
// 模块类型 1: banner 2: 导航栏 3: 运营推荐分区-标准 4: 运营推荐分区-方 5排行榜小时榜 6: 推荐主播-标准 7: 推荐主播-方 8:我的关注(用户相关) 9一级分区-标准 10一级分区-方 11: 活动卡片 12常用标签推荐入口(用户相关) 13常用标签推荐房间列表(用户相关) 14大航海提示入口
"type": 0,
// 模块排序值
"sort": 0,
// 模块数据源数量按需、目前只有推荐有其它模块都是默认值0
"count": 0
},
"list": [
{
// 唯一标识id
"id": 0,
// 跳转url
"link": "",
// 图片url
"pic": "",
// 标题
"title": "",
// 内容
"content": ""
}
]
}
],
// 大航海提示类型
"sea_patrol": [
{
"module_info": {
// 模块id
"id": 0,
// 模块跳转链接
"link": "",
// 模块图标
"pic": "",
// 模块标题
"title": "",
// 模块类型 1: banner 2: 导航栏 3: 运营推荐分区-标准 4: 运营推荐分区-方 5排行榜小时榜 6: 推荐主播-标准 7: 推荐主播-方 8:我的关注(用户相关) 9一级分区-标准 10一级分区-方 11: 活动卡片 12常用标签推荐入口(用户相关) 13常用标签推荐房间列表(用户相关) 14大航海提示入口
"type": 0,
// 模块排序值
"sort": 0,
// 模块数据源数量按需、目前只有推荐有其它模块都是默认值0
"count": 0
},
"extra_info": {
// 唯一标识id
"id": 0,
// 跳转url
"link": "",
// 图片url
"pic": "",
// 标题
"title": "",
// 内容
"content": ""
}
}
],
// 我的关注类型
"my_idol": [
{
"module_info": {
// 模块id
"id": 0,
// 模块跳转链接
"link": "",
// 模块图标
"pic": "",
// 模块标题
"title": "",
// 模块类型 1: banner 2: 导航栏 3: 运营推荐分区-标准 4: 运营推荐分区-方 5排行榜小时榜 6: 推荐主播-标准 7: 推荐主播-方 8:我的关注(用户相关) 9一级分区-标准 10一级分区-方 11: 活动卡片 12常用标签推荐入口(用户相关) 13常用标签推荐房间列表(用户相关) 14大航海提示入口
"type": 0,
// 模块排序值
"sort": 0,
// 模块数据源数量按需、目前只有推荐有其它模块都是默认值0
"count": 0
},
"extra_info": {
"total_count": 0,
"time_desc": "",
"uname_desc": "",
"tags_desc": "",
"card_type": 0,
"relation_page": 0
},
"list": [
{
"roomid": 0,
"uid": 0,
"uname": "",
"face": "",
"cover": "",
"title": "",
"area": 0,
"live_time": 0,
"area_name": "",
"area_v2_id": 0,
"area_v2_name": "",
"area_v2_parent_name": "",
"area_v2_parent_id": 0,
"live_tag_name": "",
"online": 0,
"play_url": "",
"play_url_h265": "",
"accept_quality": [
0
],
"current_quality": 0,
"pk_id": 0,
"link": "",
"special_attention": 0,
"broadcast_type": 0,
"pendent_ru": "",
"pendent_ru_color": "",
"pendent_ru_pic": "",
"official_verify": 0
}
]
}
],
// 通用房间列表类型
"room_list": [
{
"module_info": {
// 模块id
"id": 0,
// 模块跳转链接
"link": "",
// 模块图标
"pic": "",
// 模块标题
"title": "",
// 模块类型 1: banner 2: 导航栏 3: 运营推荐分区-标准 4: 运营推荐分区-方 5排行榜小时榜 6: 推荐主播-标准 7: 推荐主播-方 8:我的关注(用户相关) 9一级分区-标准 10一级分区-方 11: 活动卡片 12常用标签推荐入口(用户相关) 13常用标签推荐房间列表(用户相关) 14大航海提示入口
"type": 0,
// 模块排序值
"sort": 0,
// 模块数据源数量按需、目前只有推荐有其它模块都是默认值0
"count": 0
},
"list": [
{
// 当前拥有清晰度列表
"accept_quality": [
0
],
// 二级分区id
"area_v2_id": 0,
// 一级分区id
"area_v2_parent_id": 0,
// 二级分区名称
"area_v2_name": "",
// 一级分区名称
"area_v2_parent_name": "",
// 横竖屏 0:横屏 1:竖屏 -1:异常情况
"broadcast_type": 0,
// 封面封面现在有3种关键帧、封面图、秀场封面正方形的返回哪个由后端决定
"cover": "",
// 当前清晰度,清晰度((0)) 0:默认码率, 2:800 3:1500 4:原画
"current_quality": 0,
// 主播头像
"face": "",
// 跳转链接
"link": "",
// 人气值
"online": 0,
// 新版角标-右上 默认为空 只能是文字!!!@古月 【5.29显示更新】服务端还是吐右上兼容老版5.29显示在左上
"pendent_ru": "",
// 【5.29显示更新】服务端还是吐右上5.29客户端显示在左上,对应的背景图片
"pendent_ru_color": "",
// 新版移动端角标色值-右上
"pendent_ru_pic": "",
// pk_id
"pk_id": 0,
// 秒开播放串 h264
"play_url": "",
// 推荐类型 1人气 2营收 3运营强推 4天马推荐暂定用于客户端打点
"rec_type": 0,
// 房间id
"roomid": 0,
// 房间标题
"title": "",
// 主播uname
"uname": "",
// 秒开播放串 h265
"play_url_h265": ""
}
]
}
],
// 小时榜类型
"hour_rank": [
{
"module_info": {
// 模块id
"id": 0,
// 模块跳转链接
"link": "",
// 模块图标
"pic": "",
// 模块标题
"title": "",
// 模块类型 1: banner 2: 导航栏 3: 运营推荐分区-标准 4: 运营推荐分区-方 5排行榜小时榜 6: 推荐主播-标准 7: 推荐主播-方 8:我的关注(用户相关) 9一级分区-标准 10一级分区-方 11: 活动卡片 12常用标签推荐入口(用户相关) 13常用标签推荐房间列表(用户相关) 14大航海提示入口
"type": 0,
// 模块排序值
"sort": 0,
// 模块数据源数量按需、目前只有推荐有其它模块都是默认值0
"count": 0
},
"extra_info": {
// 14:00-15:00榜单
"sub_title": ""
},
"list": [
{
// 排名
"rank": 0,
// 用户uid
"uid": 0,
// 房间id
"roomid": 0,
// 用户昵称
"uname": "",
// 用户头像
"face": "",
// 直播状态
"live_status": 0,
// 父分区id
"area_v2_parent_id": 0,
// 父分区名称
"area_v2_parent_name": "",
// 子分区id
"area_v2_id": 0,
// 子分区名称
"area_v2_name": ""
}
]
}
],
// 活动卡
"activity_card": [
{
"module_info": {
// 模块id
"id": 0,
// 模块跳转链接
"link": "",
// 模块图标
"pic": "",
// 模块标题
"title": "",
// 模块类型 1: banner 2: 导航栏 3: 运营推荐分区-标准 4: 运营推荐分区-方 5排行榜小时榜 6: 推荐主播-标准 7: 推荐主播-方 8:我的关注(用户相关) 9一级分区-标准 10一级分区-方 11: 活动卡片 12常用标签推荐入口(用户相关) 13常用标签推荐房间列表(用户相关) 14大航海提示入口
"type": 0,
// 模块排序值
"sort": 0,
// 模块数据源数量按需、目前只有推荐有其它模块都是默认值0
"count": 0
},
"list": [
{
"card": {
// 活动id
"aid": 0,
// 活动图片
"pic": "",
// 活动标题
"title": "",
// 活动文案
"text": "",
// 图片链接
"pic_link": "",
// 围观链接
"go_link": "",
// 三种:去围观,预约,已预约
"button_text": "",
// 代表卡片所处于的状态 0可以去围观,1用户可以点击去预约,2用户可以点击取消预约
"status": 0,
// card,room和av排序值
"sort": 0
},
"room": [
{
// 是否开播
"is_live": 0,
// 房间id
"room_id": 0,
// 房间标题
"title": "",
// 主播名
"u_name": "",
// 人气值
"online": 0,
// 封面
"cover": "",
// 父一级分区id
"area_v2_parent_id": 0,
// 二级分区id
"area_v2_id": 0,
// card,room和av排序值
"sort": 0
}
],
"av": [
{
// 视频
"avid": 0,
// avid
"title": "",
// 视频标题
"view_count": 0,
// 浏览
"dan_ma_ku": 0,
// 弹幕
"duration": 0,
// 时长
"cover": "",
// card,room和av排序值
"sort": 0
}
]
}
]
}
]
}
}
```
## 换一换接口
`GET http://api.live.bilibili.com/xlive/app-interface/v2/index/change`
### 请求参数
|参数名|必选|类型|描述|
|:---|:---|:---|:---|
|module_id|是|integer|模块id
|
|attention_room_id|否|string|关注的room ids
|
|page|是|integer|换一换的当前页数
|
|platform|是|string||
|build|是|integer||
|device|是|string||
|quality|否|integer||
```json
{
"code": 0,
"message": "ok",
"data": {
"module_info": {
// 模块id
"id": 0,
// 模块跳转链接
"link": "",
// 模块图标
"pic": "",
// 模块标题
"title": "",
// 模块类型 1: banner 2: 导航栏 3: 运营推荐分区-标准 4: 运营推荐分区-方 5排行榜小时榜 6: 推荐主播-标准 7: 推荐主播-方 8:我的关注(用户相关) 9一级分区-标准 10一级分区-方 11: 活动卡片 12常用标签推荐入口(用户相关) 13常用标签推荐房间列表(用户相关) 14大航海提示入口
"type": 0,
// 模块排序值
"sort": 0,
// 模块数据源数量按需、目前只有推荐有其它模块都是默认值0
"count": 0
},
"is_sky_horse_gray": 0,
"list": [
{
// 当前拥有清晰度列表
"accept_quality": [
0
],
// 二级分区id
"area_v2_id": 0,
// 一级分区id
"area_v2_parent_id": 0,
// 二级分区名称
"area_v2_name": "",
// 一级分区名称
"area_v2_parent_name": "",
// 横竖屏 0:横屏 1:竖屏 -1:异常情况
"broadcast_type": 0,
// 封面封面现在有3种关键帧、封面图、秀场封面正方形的返回哪个由后端决定
"cover": "",
// 当前清晰度,清晰度((0)) 0:默认码率, 2:800 3:1500 4:原画
"current_quality": 0,
// 主播头像
"face": "",
// 跳转链接
"link": "",
// 人气值
"online": 0,
// 新版角标-右上 默认为空 只能是文字!!!@古月 【5.29显示更新】服务端还是吐右上兼容老版5.29显示在左上
"pendent_ru": "",
// 【5.29显示更新】服务端还是吐右上5.29客户端显示在左上,对应的背景图片
"pendent_ru_color": "",
// 新版移动端角标色值-右上
"pendent_ru_pic": "",
// pk_id
"pk_id": 0,
// 秒开播放串 h264
"play_url": "",
// 推荐类型 1人气 2营收 3运营强推 4天马推荐暂定用于客户端打点
"rec_type": 0,
// 房间id
"roomid": 0,
// 房间标题
"title": "",
// 主播uname

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,363 @@
syntax = "proto3";
package live.appinterface.v2;
option go_package = "v2";
import "github.com/gogo/protobuf/gogoproto/gogo.proto";
// Index 相关服务
service Index {
// 首页大接口
// `midware:"guest,verify"`
rpc getAllList (GetAllListReq) returns (GetAllListResp);
// 换一换接口
// `midware:"guest,verify"`
rpc change (ChangeReq) returns (ChangeResp);
}
// 接口1GetAllList
message GetAllListReq {
// 平台
string platform = 1 [(gogoproto.moretags) = 'form:"platform" validate:"required"'];
// 设备
string device = 2 [(gogoproto.moretags) = 'form:"device" validate:"required"'];
// 分辨率
string scale = 3 [(gogoproto.moretags) = 'form:"scale" validate:"required"'];
// 版本号
int64 build = 4 [(gogoproto.moretags) = 'form:"build" validate:"required"'];
//关注页码
int64 relation_page = 5 [(gogoproto.moretags) = 'form:"relation_page" validate:"required"'];
//推荐页码 当前推荐页用于天马强推不传默认按1处理
int64 rec_page = 6 [(gogoproto.moretags) = 'form:"rec_page"'];
int64 quality = 7 [(gogoproto.moretags) = 'form:"quality"'];
}
// GetAllList响应
message GetAllListResp {
//刷新重新请求间隔
int64 interval = 1 [(gogoproto.jsontag) = 'interval'];
//是否命中天马灰度
int64 is_sky_horse_gray = 2 [(gogoproto.jsontag) = 'is_sky_horse_gray'];
//banner类型
repeated MBanner banner = 3 [(gogoproto.jsontag) = 'banner'];
//常用标签类型
repeated MMyTag my_tag = 4 [(gogoproto.jsontag) = 'my_tag'];
//分区入口类型
repeated MAreaEntrance area_entrance = 5 [(gogoproto.jsontag) = 'area_entrance'];
//大航海提示类型
repeated MSeaPatrol sea_patrol = 6 [(gogoproto.jsontag) = 'sea_patrol'];
//我的关注类型
repeated MMyIdol my_idol = 7 [(gogoproto.jsontag) = 'my_idol'];
//通用房间列表类型
repeated MRoomBlock room_list = 8 [(gogoproto.jsontag) = 'room_list'];
//小时榜类型
repeated MHourRank hour_rank = 9 [(gogoproto.jsontag) = 'hour_rank'];
//活动卡
repeated MActivityCard activity_card = 10 [(gogoproto.jsontag) = 'activity_card'];
}
// module define begin
// banner banner位
message MBanner {
// 模块信息
ModuleInfo module_info = 1 [(gogoproto.jsontag) = 'module_info'];
// 模块列表
repeated PicItem list = 2 [(gogoproto.jsontag) = 'list'];
}
// MyTag 常用标签
message MMyTag {
ModuleInfo module_info = 1 [(gogoproto.jsontag) = 'module_info'];
MyTagExtra extra_info = 2 [(gogoproto.jsontag) = 'extra_info'];
repeated MyTagItem list = 3 [(gogoproto.jsontag) = 'list'];
}
// AreaEntrance 分区入口
message MAreaEntrance {
ModuleInfo module_info = 1 [(gogoproto.jsontag) = 'module_info'];
repeated PicItem list = 2 [(gogoproto.jsontag) = 'list'];
}
// SeaPatrol 大航海提示
message MSeaPatrol {
ModuleInfo module_info = 1 [(gogoproto.jsontag) = 'module_info'];
PicItem extra_info = 2 [(gogoproto.jsontag) = 'extra_info'];
}
// MyIdol 我的关注
message MMyIdol {
ModuleInfo module_info = 1 [(gogoproto.jsontag) = 'module_info'];
MyIdolExtra extra_info = 2 [(gogoproto.jsontag) = 'extra_info'];
repeated MyIdolItem list = 3 [(gogoproto.jsontag) = 'list'];
}
// RoomList 房间列表
message MRoomBlock {
ModuleInfo module_info = 1 [(gogoproto.jsontag) = 'module_info'];
repeated CommonRoomItem list = 3 [(gogoproto.jsontag) = 'list'];
}
// MHourRank 小时榜
message MHourRank {
ModuleInfo module_info = 1 [(gogoproto.jsontag) = 'module_info'];
HourRankExtra extra_info = 2 [(gogoproto.jsontag) = 'extra_info'];
repeated HourRankItem list = 3 [(gogoproto.jsontag) = 'list'];
}
// MActivityCard 活动卡
message MActivityCard {
ModuleInfo module_info = 1 [(gogoproto.jsontag) = 'module_info'];
repeated ActivityCardItem list = 2 [(gogoproto.jsontag) = 'list'];
}
// ...
// ModuleInfo
message ModuleInfo {
// 模块id
int64 id = 1 [(gogoproto.jsontag) = 'id'];
// 模块跳转链接
string link = 2 [(gogoproto.jsontag) = 'link'];
// 模块图标
string pic = 3 [(gogoproto.jsontag) = 'pic'];
// 模块标题
string title = 4 [(gogoproto.jsontag) = 'title'];
// 模块类型 1: banner 2: 导航栏 3: 运营推荐分区-标准 4: 运营推荐分区-方 5排行榜小时榜 6: 推荐主播-标准 7: 推荐主播-方 8:我的关注(用户相关) 9一级分区-标准 10一级分区-方 11: 活动卡片 12常用标签推荐入口(用户相关) 13常用标签推荐房间列表(用户相关) 14大航海提示入口
int64 type = 5 [(gogoproto.jsontag) = 'type'];
// 模块排序值
int64 sort = 6 [(gogoproto.jsontag) = 'sort'];
// 模块数据源数量按需、目前只有推荐有其它模块都是默认值0
int64 count = 7 [(gogoproto.jsontag) = 'count'];
}
// PicItem 比如banner、分区入口、大航海提示等等
message PicItem {
//唯一标识id
int64 id = 1 [(gogoproto.jsontag) = 'id'];
//跳转url
string link = 2 [(gogoproto.jsontag) = 'link'];
//图片url
string pic = 3 [(gogoproto.jsontag) = 'pic'];
//标题
string title = 4 [(gogoproto.jsontag) = 'title'];
//内容
string content = 5 [(gogoproto.jsontag) = 'content'];
}
// MyTagItem
message MyTagItem {
int64 area_v2_id = 1 [(gogoproto.jsontag) = 'area_v2_id'];
string area_v2_name = 2 [(gogoproto.jsontag) = 'area_v2_name'];
int64 area_v2_parent_id = 3 [(gogoproto.jsontag) = 'area_v2_parent_id'];
string area_v2_parent_name = 4 [(gogoproto.jsontag) = 'area_v2_parent_name'];
string pic = 5 [(gogoproto.jsontag) = 'pic'];
string link = 6 [(gogoproto.jsontag) = 'link'];
int64 is_advice = 7 [(gogoproto.jsontag) = 'is_advice'];
}
// MyTagExtra
message MyTagExtra {
//是否命中常用标签灰度
int64 is_gray = 1 [(gogoproto.jsontag) = 'is_gray'];
//offline已下线标签
repeated OfflineTag offline = 2 [(gogoproto.jsontag) = 'offline'];
}
// OfflineTag
message OfflineTag {
int64 id = 1 [(gogoproto.jsontag) = 'id'];
string area_v2_name = 2 [(gogoproto.jsontag) = 'area_v2_name'];
}
// MyIdolExtra
message MyIdolExtra {
int64 total_count = 1 [(gogoproto.jsontag) = 'total_count'];
string time_desc = 2 [(gogoproto.jsontag) = 'time_desc'];
string uname_desc = 3 [(gogoproto.jsontag) = 'uname_desc'];
string tags_desc = 4 [(gogoproto.jsontag) = 'tags_desc'];
int64 card_type = 5 [(gogoproto.jsontag) = 'card_type'];
int64 relation_page = 6 [(gogoproto.jsontag) = 'relation_page'];
}
// MyIdolItem
message MyIdolItem {
int64 roomid = 1 [(gogoproto.jsontag) = 'roomid'];
int64 uid = 2 [(gogoproto.jsontag) = 'uid'];
string uname = 3 [(gogoproto.jsontag) = 'uname'];
string face = 4 [(gogoproto.jsontag) = 'face'];
string cover = 5 [(gogoproto.jsontag) = 'cover'];
string title = 6 [(gogoproto.jsontag) = 'title'];
int64 area = 7 [(gogoproto.jsontag) = 'area'];
int64 live_time = 8 [(gogoproto.jsontag) = 'live_time'];
string area_name = 9 [(gogoproto.jsontag) = 'area_name'];
int64 area_v2_id = 10 [(gogoproto.jsontag) = 'area_v2_id'];
string area_v2_name = 11 [(gogoproto.jsontag) = 'area_v2_name'];
string area_v2_parent_name = 12 [(gogoproto.jsontag) = 'area_v2_parent_name'];
int64 area_v2_parent_id = 13 [(gogoproto.jsontag) = 'area_v2_parent_id'];
string live_tag_name = 14 [(gogoproto.jsontag) = 'live_tag_name'];
int64 online = 15 [(gogoproto.jsontag) = 'online'];
string play_url = 16 [(gogoproto.jsontag) = 'play_url'];
string play_url_h265 = 17 [(gogoproto.jsontag) = 'play_url_h265'];
repeated int64 accept_quality = 18 [(gogoproto.jsontag) = 'accept_quality'];
int64 current_quality = 19 [(gogoproto.jsontag) = 'current_quality'];
int64 pk_id = 20 [(gogoproto.jsontag) = 'pk_id'];
string link = 21 [(gogoproto.jsontag) = 'link'];
int64 special_attention = 22 [(gogoproto.jsontag) = 'special_attention'];
int64 broadcast_type = 23 [(gogoproto.jsontag) = 'broadcast_type'];
string pendent_ru = 24 [(gogoproto.jsontag) = 'pendent_ru'];
string pendent_ru_color = 25 [(gogoproto.jsontag) = 'pendent_ru_color'];
string pendent_ru_pic = 26 [(gogoproto.jsontag) = 'pendent_ru_pic'];
int64 official_verify = 27 [(gogoproto.jsontag) = 'official_verify'];
}
// ActivityCardItem
message ActivityCardItem {
BannerCardItem card = 1 [(gogoproto.jsontag) = 'card'];
repeated RoomCardItem room = 2 [(gogoproto.jsontag) = 'room'];
repeated AvCardItem av = 3 [(gogoproto.jsontag) = 'av'];
}
// BannerCardItem
message BannerCardItem {
//活动id
int64 aid = 1 [(gogoproto.jsontag) = 'aid'];
//活动图片
string pic = 2 [(gogoproto.jsontag) = 'pic'];
//活动标题
string title = 3 [(gogoproto.jsontag) = 'title'];
//活动文案
string text = 4 [(gogoproto.jsontag) = 'text'];
//图片链接
string pic_link = 5 [(gogoproto.jsontag) = 'pic_link'];
//围观链接
string go_link = 6 [(gogoproto.jsontag) = 'go_link'];
//三种:去围观,预约,已预约
string button_text = 7 [(gogoproto.jsontag) = 'button_text'];
//代表卡片所处于的状态 0可以去围观,1用户可以点击去预约,2用户可以点击取消预约
int64 status = 8 [(gogoproto.jsontag) = 'status'];
//card,room和av排序值
int64 sort = 9 [(gogoproto.jsontag) = 'sort'];
}
// RoomCardItem
message RoomCardItem {
//是否开播
int64 is_live = 1 [(gogoproto.jsontag) = 'is_live'];
//房间id
int64 room_id = 2 [(gogoproto.jsontag) = 'room_id'];
//房间标题
string title = 3 [(gogoproto.jsontag) = 'title'];
//主播名
string u_name = 4 [(gogoproto.jsontag) = 'u_name'];
//人气值
int64 online = 5 [(gogoproto.jsontag) = 'online'];
//封面
string cover = 6 [(gogoproto.jsontag) = 'cover'];
//父一级分区id
int64 area_v2_parent_id = 7 [(gogoproto.jsontag) = 'area_v2_parent_id'];
//二级分区id
int64 area_v2_id = 8 [(gogoproto.jsontag) = 'area_v2_id'];
//card,room和av排序值
int64 sort = 9 [(gogoproto.jsontag) = 'sort'];
}
// AvCardItem
message AvCardItem {
//视频
int64 avid = 1 [(gogoproto.jsontag) = 'avid'];
//avid
string title = 2 [(gogoproto.jsontag) = 'title'];
//视频标题
int64 view_count = 3 [(gogoproto.jsontag) = 'view_count'];
//浏览
int64 dan_ma_ku = 4 [(gogoproto.jsontag) = 'dan_ma_ku'];
//弹幕
int64 duration = 5 [(gogoproto.jsontag) = 'duration'];
//时长
string cover = 6 [(gogoproto.jsontag) = 'cover'];
//card,room和av排序值
int64 sort = 7 [(gogoproto.jsontag) = 'sort'];
}
// CommonRoomItem
message CommonRoomItem {
//当前拥有清晰度列表
repeated int64 accept_quality = 1 [(gogoproto.jsontag) = 'accept_quality'];
//二级分区id
int64 area_v2_id = 2 [(gogoproto.jsontag) = 'area_v2_id'];
//一级分区id
int64 area_v2_parent_id = 3 [(gogoproto.jsontag) = 'area_v2_parent_id'];
//二级分区名称
string area_v2_name = 4 [(gogoproto.jsontag) = 'area_v2_name'];
//一级分区名称
string area_v2_parent_name = 5 [(gogoproto.jsontag) = 'area_v2_parent_name'];
//横竖屏 0:横屏 1:竖屏 -1:异常情况
int64 broadcast_type = 6 [(gogoproto.jsontag) = 'broadcast_type'];
//封面封面现在有3种关键帧、封面图、秀场封面正方形的返回哪个由后端决定
string cover = 7 [(gogoproto.jsontag) = 'cover'];
//当前清晰度,清晰度((0)) 0:默认码率, 2:800 3:1500 4:原画
int64 current_quality = 8 [(gogoproto.jsontag) = 'current_quality'];
//主播头像
string face = 9 [(gogoproto.jsontag) = 'face'];
//跳转链接
string link = 10 [(gogoproto.jsontag) = 'link'];
//人气值
int64 online = 11 [(gogoproto.jsontag) = 'online'];
//新版角标-右上 默认为空 只能是文字!!!@古月 【5.29显示更新】服务端还是吐右上兼容老版5.29显示在左上
string pendent_ru = 12 [(gogoproto.jsontag) = 'pendent_ru'];
//【5.29显示更新】服务端还是吐右上5.29客户端显示在左上,对应的背景图片
string pendent_ru_color = 13 [(gogoproto.jsontag) = 'pendent_ru_color'];
//新版移动端角标色值-右上
string pendent_ru_pic = 14 [(gogoproto.jsontag) = 'pendent_ru_pic'];
//pk_id
int64 pk_id = 15 [(gogoproto.jsontag) = 'pk_id'];
//秒开播放串 h264
string play_url = 16 [(gogoproto.jsontag) = 'play_url'];
//推荐类型 1人气 2营收 3运营强推 4天马推荐暂定用于客户端打点
int64 rec_type = 17 [(gogoproto.jsontag) = 'rec_type'];
//房间id
int64 roomid = 18 [(gogoproto.jsontag) = 'roomid'];
//房间标题
string title = 19 [(gogoproto.jsontag) = 'title'];
//主播uname
string uname = 20 [(gogoproto.jsontag) = 'uname'];
//秒开播放串 h265
string play_url_h265 = 21 [(gogoproto.jsontag) = 'play_url_h265'];
}
// HourRankItem
message HourRankItem {
//排名
int64 rank = 1 [(gogoproto.jsontag) = 'rank'];
//用户uid
int64 uid = 2 [(gogoproto.jsontag) = 'uid'];
//房间id
int64 roomid = 3 [(gogoproto.jsontag) = 'roomid'];
//用户昵称
string uname = 4 [(gogoproto.jsontag) = 'uname'];
//用户头像
string face = 5 [(gogoproto.jsontag) = 'face'];
//直播状态
int64 live_status = 6 [(gogoproto.jsontag) = 'live_status'];
//父分区id
int64 area_v2_parent_id = 7 [(gogoproto.jsontag) = 'area_v2_parent_id'];
//父分区名称
string area_v2_parent_name = 8 [(gogoproto.jsontag) = 'area_v2_parent_name'];
//子分区id
int64 area_v2_id = 9 [(gogoproto.jsontag) = 'area_v2_id'];
//子分区名称
string area_v2_name = 10 [(gogoproto.jsontag) = 'area_v2_name'];
}
message HourRankExtra {
//14:00-15:00榜单
string sub_title = 1 [(gogoproto.jsontag) = 'sub_title'];
}
// 接口2换一换
message ChangeReq {
//模块id
int64 module_id = 1 [(gogoproto.moretags) = 'form:"module_id" validate:"required"'];
//关注的room ids
string attention_room_id = 2 [(gogoproto.moretags) = 'form:"attention_room_id"'];
//换一换的当前页数
int64 page = 3 [(gogoproto.moretags) = 'form:"page" validate:"required"'];
string platform = 4 [(gogoproto.moretags) = 'form:"platform" validate:"required"'];
int64 build = 5 [(gogoproto.moretags) = 'form:"build" validate:"required"'];
string device = 6 [(gogoproto.moretags) = 'form:"device" validate:"required"'];
int64 quality = 7 [(gogoproto.moretags) = 'form:"quality"'];
}
// 换一换响应
message ChangeResp {
ModuleInfo module_info = 1;
int64 is_sky_horse_gray = 2 [(gogoproto.jsontag) = 'is_sky_horse_gray'];
repeated CommonRoomItem list = 3;
}