go-common/app/interface/main/app-view/http/http.go
2019-04-22 18:49:16 +08:00

104 lines
3.3 KiB
Go

package http
import (
"go-common/app/interface/main/app-view/conf"
"go-common/app/interface/main/app-view/service/report"
"go-common/app/interface/main/app-view/service/view"
"go-common/library/log"
"go-common/library/log/anticheat"
bm "go-common/library/net/http/blademaster"
"go-common/library/net/http/blademaster/middleware/auth"
"go-common/library/net/http/blademaster/middleware/proxy"
"go-common/library/net/http/blademaster/middleware/verify"
"go-common/library/queue/databus"
)
var (
viewSvr *view.Service
reportSvr *report.Service
authSvr *auth.Auth
verifySvc *verify.Verify
// databus
userActPub *databus.Databus
dislikePub *databus.Databus
collector *anticheat.AntiCheat
)
type userAct struct {
Client string `json:"client"`
Buvid string `json:"buvid"`
Mid int64 `json:"mid"`
Time int64 `json:"time"`
From string `json:"from"`
Build string `json:"build"`
ItemID string `json:"item_id"`
ItemType string `json:"item_type"`
Action string `json:"action"`
ActionID string `json:"action_id"`
Extra string `json:"extra"`
}
type cmDislike struct {
ID int64 `json:"id"`
Buvid string `json:"buvid"`
Goto string `json:"goto"`
Mid int64 `json:"mid"`
ReasonID int64 `json:"reason_id"`
CMReasonID int64 `json:"cm_reason_id"`
UpperID int64 `json:"upper_id"`
Rid int64 `json:"rid"`
TagID int64 `json:"tag_id"`
ADCB string `json:"ad_cb"`
}
// Init init http
func Init(c *conf.Config) {
initService(c)
collector = anticheat.New(c.InfocCoin)
// init external router
engineOut := bm.DefaultServer(c.BM.Outer)
outerRouter(engineOut)
// init outer server
if err := engineOut.Start(); err != nil {
log.Error("engineOut.Start() error(%v)", err)
panic(err)
}
}
func initService(c *conf.Config) {
verifySvc = verify.New(nil)
authSvr = auth.New(nil)
viewSvr = view.New(c)
reportSvr = report.New(c)
// databus
userActPub = databus.New(c.UseractPub)
dislikePub = databus.New(c.DislikePub)
}
func outerRouter(e *bm.Engine) {
e.Ping(ping)
// view
proxyHandler := proxy.NewZoneProxy("sh004", "http://sh001-app.bilibili.com")
view := e.Group("/x/v2/view")
view.GET("", verifySvc.Verify, authSvr.GuestMobile, viewIndex)
view.GET("/page", verifySvc.Verify, authSvr.GuestMobile, viewPage)
view.GET("/video/shot", verifySvc.Verify, videoShot)
view.POST("/share/add", verifySvc.Verify, authSvr.GuestMobile, addShare)
view.POST("/coin/add", proxyHandler, authSvr.UserMobile, addCoin)
view.POST("/fav/add", authSvr.UserMobile, addFav)
view.POST("/ad/dislike", authSvr.GuestMobile, adDislike)
view.GET("/report", verifySvc.Verify, copyWriter)
view.POST("/report/add", authSvr.UserMobile, addReport)
view.POST("/report/upload", verifySvc.Verify, upload)
view.POST("/like", proxyHandler, authSvr.UserMobile, like)
view.POST("/dislike", authSvr.UserMobile, dislike)
view.POST("/vip/playurl", authSvr.UserMobile, vipPlayURL)
view.GET("/follow", authSvr.GuestMobile, follow)
view.GET("/upper/recmd", authSvr.GuestMobile, upperRecmd)
view.POST("/like/triple", authSvr.UserMobile, likeTriple)
// bnj2019
view.GET("/bnj2019", verifySvc.Verify, authSvr.GuestMobile, bnj2019)
view.GET("/bnj2019/list", verifySvc.Verify, authSvr.GuestMobile, bnjList)
view.GET("/bnj2019/item", verifySvc.Verify, authSvr.GuestMobile, bnjItem)
}