You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
142 lines
5.3 KiB
142 lines
5.3 KiB
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) |
|
}
|
|
|