95 lines
3.0 KiB
Go
Executable File
95 lines
3.0 KiB
Go
Executable File
package mediacontentctrl
|
|
|
|
import (
|
|
"91porn-server/app/service/m3u8ticket"
|
|
"91porn-server/app/service/mediacontentser"
|
|
"91porn-server/common"
|
|
"91porn-server/common/stderr"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
// List doc
|
|
// @Summary 获取动漫内容列表列表接口
|
|
// @Description 获取动漫内容列表列表
|
|
// @Tags 移动端-动漫内容列表
|
|
// @Accept mpfd,json
|
|
// @Produce json
|
|
// @Param q query mediacontentser.AppQueryListReq false "请求参数"
|
|
// @Success 200 object mediacontentser.AppListRes "成功"
|
|
// @Failure 400 {string} json "{"msg": "操作失败"}"
|
|
// @Router /api/app/media_content/list [get]
|
|
func List(ctx *gin.Context) {
|
|
p := &mediacontentser.AppQueryListReq{}
|
|
if err := ctx.ShouldBind(&p); err != nil {
|
|
common.ServeJSON(ctx, stderr.ErrParamError, nil)
|
|
return
|
|
}
|
|
|
|
// 获取用户当前配置
|
|
// var err error
|
|
// p.Uid, err = common.GetUID(ctx)
|
|
// if err != nil {
|
|
// common.ServeJSON(ctx, stderr.ErrNoToken, err)
|
|
// return
|
|
// }
|
|
// 获取用户当前配置
|
|
uid, err := common.GetUID(ctx)
|
|
if err != nil {
|
|
common.ServeJSON(ctx, stderr.ErrNoToken, err)
|
|
return
|
|
}
|
|
list, err := p.GetList(uid)
|
|
if err != nil {
|
|
common.ServeJSON(ctx, stderr.ErrDbQueryError, err)
|
|
return
|
|
}
|
|
// H5 防盗链:逐条为动漫/有声内容的 m3u8 地址签票(非 H5/未开启时零副作用)。
|
|
for i := range list.List {
|
|
m3u8ticket.SignURL(ctx, uid, &list.List[i].VideoUrl, true, false)
|
|
m3u8ticket.SignURL(ctx, uid, &list.List[i].H265Url, true, false)
|
|
m3u8ticket.SignURL(ctx, uid, &list.List[i].AudioUrl, true, false)
|
|
m3u8ticket.SignURL(ctx, uid, &list.List[i].PreviewVideoUrl, false, true)
|
|
m3u8ticket.SignURL(ctx, uid, &list.List[i].PreviewH265Url, false, true)
|
|
}
|
|
common.ServeJSON(ctx, stderr.Success, list)
|
|
}
|
|
|
|
// Info doc
|
|
//
|
|
// @Summary 获取动漫内容列表详情接口
|
|
// @Description 获取动漫内容列表详情
|
|
// @Tags 移动端-动漫内容列表
|
|
// @Accept mpfd,json
|
|
// @Produce json
|
|
// @Param q query mediacontentser.AppQueryInfoReq false "请求参数"
|
|
// @Success 200 object mediacontentser.MediaContentInfo "成功"
|
|
// @Failure 400 {string} json "{"msg": "操作失败"}"
|
|
// @Router /api/app/media_content/info [get]
|
|
func Info(ctx *gin.Context) {
|
|
p := &mediacontentser.AppQueryInfoReq{}
|
|
if err := ctx.ShouldBind(&p); err != nil {
|
|
common.ServeJSON(ctx, stderr.ErrParamError, nil)
|
|
return
|
|
}
|
|
// 获取用户当前配置
|
|
uid, err := common.GetUID(ctx)
|
|
if err != nil {
|
|
common.ServeJSON(ctx, stderr.ErrNoToken, err)
|
|
return
|
|
}
|
|
data, err := p.GetInfo(uid)
|
|
if err != nil {
|
|
common.ServeJSON(ctx, stderr.Failure, err.Error())
|
|
return
|
|
}
|
|
// H5 防盗链:为动漫/有声详情的 m3u8 地址签票(非 H5/未开启时零副作用)。
|
|
m3u8ticket.SignURL(ctx, uid, &data.VideoUrl, true, false)
|
|
m3u8ticket.SignURL(ctx, uid, &data.H265Url, true, false)
|
|
m3u8ticket.SignURL(ctx, uid, &data.AudioUrl, true, false)
|
|
m3u8ticket.SignURL(ctx, uid, &data.PreviewVideoUrl, false, true)
|
|
m3u8ticket.SignURL(ctx, uid, &data.PreviewH265Url, false, true)
|
|
|
|
common.ServeJSON(ctx, stderr.Success, data)
|
|
}
|