143 lines
5.3 KiB
Go
143 lines
5.3 KiB
Go
package http
|
||
|
||
import (
|
||
"net/http"
|
||
|
||
"go-common/app/interface/main/mcn/conf"
|
||
"go-common/app/interface/main/mcn/service"
|
||
"go-common/library/log"
|
||
bm "go-common/library/net/http/blademaster"
|
||
"go-common/library/net/http/blademaster/middleware/antispam"
|
||
"go-common/library/net/http/blademaster/middleware/auth"
|
||
"go-common/library/net/http/blademaster/middleware/verify"
|
||
)
|
||
|
||
var (
|
||
srv *service.Service
|
||
authSvc *auth.Auth
|
||
uploadAnti *antispam.Antispam
|
||
verifySvc *verify.Verify
|
||
)
|
||
|
||
// Init init
|
||
func Init(c *conf.Config) {
|
||
initService(c)
|
||
engine := bm.DefaultServer(c.BM)
|
||
route(engine)
|
||
if err := engine.Start(); err != nil {
|
||
log.Error("bm Start error(%v)", err)
|
||
panic(err)
|
||
}
|
||
}
|
||
|
||
func initService(c *conf.Config) {
|
||
srv = service.New(c)
|
||
authSvc = auth.New(nil)
|
||
uploadAnti = antispam.New(c.UploadAntispam)
|
||
verifySvc = verify.New(nil)
|
||
}
|
||
|
||
func route(e *bm.Engine) {
|
||
e.Ping(ping)
|
||
e.Register(register)
|
||
// 以下接口在 api.bilibili.com,对外使用
|
||
g := e.Group("/x/mcn")
|
||
{
|
||
//g.GET("/start", vfy.Verify, howToStart)
|
||
g.GET("/state", authSvc.User, mcnState)
|
||
g.GET("/exist", authSvc.User, mcnExist)
|
||
g.POST("/file/upload", multipartForm, authSvc.User, uploadAnti.ServeHTTP, upload)
|
||
g.GET("/account/info", authSvc.User, mcnGetAccountInfo)
|
||
g.GET("/base/info", authSvc.User, mcnBaseInfo)
|
||
|
||
g.POST("/apply", authSvc.User, mcnApply)
|
||
g.POST("/mcn/bindup", authSvc.User, mcnBindUpApply)
|
||
g.GET("/mcn/get_data_summary", authSvc.User, mcnGetDataSummary)
|
||
g.GET("/mcn/get_data_up_list", authSvc.User, mcnGetDataUpList)
|
||
g.GET("/mcn/get_old_info", authSvc.User, mcnGetOldInfo)
|
||
g.POST("/mcn/permit/change", authSvc.User, mcnGetChangePermit)
|
||
g.POST("/mcn/publication/change-price", authSvc.User, mcnPublicationPriceChange)
|
||
|
||
g.POST("/up/confirm", authSvc.User, mcnUpConfirm)
|
||
g.GET("/up/get_bind", authSvc.User, mcnUpGetBind)
|
||
g.POST("/up/permit/confirm-reauth", authSvc.User, mcnUpPermitApplyConfirm)
|
||
g.GET("/up/permit/get-reauth", authSvc.User, mcnPermitApplyGetBind)
|
||
|
||
g.GET("/rank/up_fans", authSvc.User, mcnGetRankUpFans)
|
||
g.GET("/rank/archive_likes", authSvc.User, mcnGetRankArchiveLikesOuter)
|
||
g.GET("/recommend/list", authSvc.User, mcnGetRecommendPool)
|
||
g.GET("/recommend/list_tids", authSvc.User, mcnGetRecommendPoolTidList)
|
||
|
||
g.GET("/data/index/inc", authSvc.User, mcnGetMcnGetIndexInc)
|
||
g.GET("/data/index/source", authSvc.User, mcnGetMcnGetIndexSource)
|
||
g.GET("/data/play/source", authSvc.User, mcnGetPlaySource)
|
||
g.GET("/data/fans", authSvc.User, mcnGetMcnFans)
|
||
g.GET("/data/fans/inc", authSvc.User, mcnGetMcnFansInc)
|
||
g.GET("/data/fans/dec", authSvc.User, mcnGetMcnFansDec)
|
||
g.GET("/data/fans/attention/way", authSvc.User, mcnGetMcnFansAttentionWay)
|
||
|
||
// mcn粉丝和游客的粉丝分析
|
||
g.GET("/data/fans/base/attr", authSvc.User, mcnGetBaseFansAttrReq)
|
||
g.GET("/data/fans/area", authSvc.User, mcnGetFansArea)
|
||
g.GET("/data/fans/type", authSvc.User, mcnGetFansType)
|
||
g.GET("/data/fans/tag", authSvc.User, mcnGetFansTag)
|
||
|
||
// mcn创作中心数据分析
|
||
g.GET("/creative/archives", authSvc.User, archives)
|
||
g.GET("/creative/archive/history/list", authSvc.User, archiveHistoryList)
|
||
g.GET("/creative/archive/videos", authSvc.User, archiveVideos)
|
||
g.GET("/creative/data/archive", authSvc.User, dataArchive)
|
||
g.GET("/creative/data/videoquit", authSvc.User, dataVideoQuit)
|
||
g.GET("/creative/danmu/distri", authSvc.User, danmuDistri)
|
||
g.GET("/creative/data/base", authSvc.User, dataBase)
|
||
g.GET("/creative/data/trend", authSvc.User, dataTrend)
|
||
g.GET("/creative/data/action", authSvc.User, dataAction)
|
||
g.GET("/creative/data/fan", authSvc.User, dataFan)
|
||
g.GET("/creative/data/pandect", authSvc.User, dataPandect)
|
||
g.GET("/creative/data/survey", authSvc.User, dataSurvey)
|
||
g.GET("/creative/data/playsource", authSvc.User, dataPlaySource)
|
||
g.GET("/creative/data/playanalysis", authSvc.User, dataPlayAnalysis)
|
||
g.GET("/creative/data/article/rank", authSvc.User, dataArticleRank)
|
||
}
|
||
|
||
cmd := e.Group("/cmd")
|
||
{
|
||
cmd.GET("/reload_rank", cmdReloadRank)
|
||
}
|
||
|
||
// 以下接口在 api.bilibili.co,内部使用
|
||
internal := e.Group("/x/internal/mcn")
|
||
{
|
||
internal.GET("/rank/archive_likes", verifySvc.Verify, mcnGetRankArchiveLikesAPI)
|
||
// mcn 数据概况
|
||
internal.GET("/data/mcn/summary", verifySvc.Verify, getMcnSummaryAPI)
|
||
internal.GET("/data/index/inc", verifySvc.Verify, getIndexIncAPI)
|
||
internal.GET("/data/index/source", verifySvc.Verify, getIndexSourceAPI)
|
||
internal.GET("/data/play/source", verifySvc.Verify, getPlaySourceAPI)
|
||
internal.GET("/data/fans", verifySvc.Verify, getMcnFansAPI)
|
||
internal.GET("/data/fans/inc", verifySvc.Verify, getMcnFansIncAPI)
|
||
internal.GET("/data/fans/dec", verifySvc.Verify, getMcnFansDecAPI)
|
||
internal.GET("/data/fans/attention/way", verifySvc.Verify, getMcnFansAttentionWayAPI)
|
||
// mcn粉丝和游客的粉丝分析
|
||
internal.GET("/data/fans/base/attr", verifySvc.Verify, getFansBaseFansAttrAPI)
|
||
internal.GET("/data/fans/area", verifySvc.Verify, getFansAreaAPI)
|
||
internal.GET("/data/fans/type", verifySvc.Verify, getFansTypeAPI)
|
||
internal.GET("/data/fans/tag", verifySvc.Verify, getFansTagAPI)
|
||
}
|
||
}
|
||
|
||
func ping(c *bm.Context) {
|
||
if err := srv.Ping(c); err != nil {
|
||
log.Error("ping error(%v)", err)
|
||
c.AbortWithStatus(http.StatusServiceUnavailable)
|
||
}
|
||
}
|
||
|
||
func register(c *bm.Context) {
|
||
c.JSON(map[string]interface{}{}, nil)
|
||
}
|
||
|
||
func multipartForm(c *bm.Context) {
|
||
c.Request.ParseMultipartForm(maxFileSize)
|
||
}
|