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,48 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = [
"app.go",
"client.go",
"creator.go",
"http.go",
"local.go",
"web.go",
"web_v2.go",
],
importpath = "go-common/app/interface/main/videoup/http",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = [
"//app/interface/main/videoup/conf:go_default_library",
"//app/interface/main/videoup/model/archive:go_default_library",
"//app/interface/main/videoup/service:go_default_library",
"//library/ecode:go_default_library",
"//library/log:go_default_library",
"//library/net/http/blademaster:go_default_library",
"//library/net/http/blademaster/middleware/antispam:go_default_library",
"//library/net/http/blademaster/middleware/auth:go_default_library",
"//library/net/http/blademaster/middleware/verify:go_default_library",
"//library/time: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,282 @@
package http
import (
"encoding/json"
"io/ioutil"
"net/http"
"strconv"
"go-common/app/interface/main/videoup/model/archive"
"go-common/library/ecode"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
"go-common/library/time"
)
func appEdit(c *bm.Context) {
var (
aid int64
ap = &archive.ArcParam{}
cp = &archive.ArcParam{}
err error
)
mobi := c.Request.Form.Get("mobi_app")
build := c.Request.Form.Get("build")
midI, _ := c.Get("mid")
mid, ok := midI.(int64)
if !ok || mid <= 0 {
c.JSON(nil, ecode.RequestErr)
return
}
bs, err := ioutil.ReadAll(c.Request.Body)
if err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
c.Request.Body.Close()
if mobi == "iphone" && (build == "4470" || build == "4430") {
err = iosUnmarshal(bs, ap)
err = iosUnmarshal(bs, cp)
} else {
err = json.Unmarshal(bs, ap)
err = json.Unmarshal(bs, cp)
}
if err != nil {
c.JSON(nil, ecode.VideoupParamErr)
return
}
aid = ap.Aid
ap.Mid = mid
// 老的只编辑基础信息, 不需要按照平台自动转换
ap.UpFrom = archive.UpFromAPP
defer func() {
cp.Aid = ap.Aid
cp.Mid = ap.Mid
cp.UpFrom = ap.UpFrom
cp.IPv6 = ap.IPv6
build, buvid := getBuildInfo(c)
vdpSvc.SendArchiveLog(aid, build, buvid, "edit", "app", cp, err)
}()
err = vdpSvc.AppEdit(c, ap, mid)
if err != nil {
c.JSON(nil, err)
log.Error("editErr err(%+v)|ap(%+v)", err, ap)
return
}
c.JSON(map[string]interface{}{
"aid": ap.Aid,
}, nil)
}
func iosUnmarshal(bs []byte, ap *archive.ArcParam) (err error) {
var apStr = struct {
Aid string `json:"aid"`
Copyright string `json:"copyright"`
Cover string `json:"cover"`
Title string `json:"title"`
TypeID string `json:"tid"`
Tag string `json:"tag"`
Desc string `json:"desc"`
MissionID string `json:"mission_id"`
OpenElec string `json:"open_elec"`
DTime string `json:"dtime"`
}{}
if err = json.Unmarshal(bs, &apStr); err != nil {
return
}
aid, err := strconv.ParseInt(apStr.Aid, 10, 64)
if err != nil {
return
}
copyright, err := strconv.ParseInt(apStr.Copyright, 10, 8)
if err != nil {
return
}
typeID, err := strconv.ParseInt(apStr.TypeID, 10, 16)
if err != nil {
return
}
missionID, err := strconv.ParseInt(apStr.MissionID, 10, 10)
if err != nil {
return
}
openElec, err := strconv.ParseInt(apStr.OpenElec, 10, 8)
if err != nil {
return
}
dtime, err := strconv.ParseInt(apStr.DTime, 10, 64)
if err != nil {
return
}
ap.Aid = aid
ap.Copyright = int8(copyright)
ap.TypeID = int16(typeID)
ap.MissionID = int(missionID)
ap.OpenElec = int8(openElec)
ap.DTime = time.Time(dtime)
ap.Cover = apStr.Cover
ap.Title = apStr.Title
ap.Tag = apStr.Tag
ap.Desc = apStr.Desc
return
}
func appUpCover(c *bm.Context) {
midI, _ := c.Get("mid")
mid, ok := midI.(int64)
if !ok || mid <= 0 {
c.JSON(nil, ecode.RequestErr)
return
}
file, _, err := c.Request.FormFile("file")
if err != nil {
log.Error("c.Request().FormFile(\"file\") error(%v) | ", err)
c.JSON(nil, ecode.RequestErr)
return
}
bs, err := ioutil.ReadAll(file)
file.Close()
if err != nil {
log.Error("ioutil.ReadAll(c.Request().Body) error(%v)", err)
c.JSON(nil, ecode.RequestErr)
return
}
ftype := http.DetectContentType(bs)
if ftype != "image/jpeg" && ftype != "image/png" && ftype != "image/webp" {
log.Error("filetype not allow file type(%s)", ftype)
c.JSON(nil, ecode.RequestErr)
return
}
url, err := vdpSvc.AppUpCover(c, ftype, bs, mid)
if err != nil {
c.JSON(nil, err)
return
}
c.JSON(map[string]interface{}{
"url": url,
}, nil)
}
func appAdd(c *bm.Context) {
var (
aid int64
ap = &archive.ArcParam{}
cp = &archive.ArcParam{}
err error
)
form := c.Request.Form
ar := &archive.AppRequest{
Build: form.Get("build"),
MobiApp: form.Get("mobi_app"),
Platform: form.Get("platform"),
Device: form.Get("device"),
}
midI, _ := c.Get("mid")
mid, ok := midI.(int64)
if !ok || mid <= 0 {
c.JSON(nil, ecode.RequestErr)
return
}
bs, err := ioutil.ReadAll(c.Request.Body)
if err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
c.Request.Body.Close()
err = json.Unmarshal(bs, ap)
err = json.Unmarshal(bs, cp)
if err != nil {
c.JSON(nil, ecode.VideoupParamErr)
return
}
ap.Aid = 0
ap.Mid = mid
ap.UpFrom = appUpFrom(ar.Platform, ar.Device)
defer func() {
cp.Aid = ap.Aid
cp.Mid = ap.Mid
cp.UpFrom = ap.UpFrom
cp.IPv6 = ap.IPv6
build, buvid := getBuildInfo(c)
vdpSvc.SendArchiveLog(aid, build, buvid, "add", ar.Platform, cp, err)
}()
if err == nil {
aid, err = vdpSvc.AppAdd(c, mid, ap, ar)
}
if err != nil {
log.Error("AppAdd Err mid(%+d)|ap(%+v)|err(%+v)", mid, ap, err)
c.JSON(nil, err)
return
}
c.JSON(map[string]interface{}{
"aid": aid,
}, nil)
}
func appEditFull(c *bm.Context) {
var (
aid int64
ap = &archive.ArcParam{}
cp = &archive.ArcParam{}
err error
)
form := c.Request.Form
ar := &archive.AppRequest{
Build: form.Get("build"),
MobiApp: form.Get("mobi_app"),
Platform: form.Get("platform"),
Device: form.Get("device"),
}
buildStr := form.Get("build")
buildNum, _ := strconv.ParseInt(buildStr, 10, 64)
midI, _ := c.Get("mid")
mid, _ := midI.(int64)
ap = &archive.ArcParam{}
bs, err := ioutil.ReadAll(c.Request.Body)
if err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
c.Request.Body.Close()
err = json.Unmarshal(bs, ap)
err = json.Unmarshal(bs, cp)
if err != nil {
c.JSON(nil, ecode.VideoupParamErr)
return
}
aid = ap.Aid
ap.Mid = mid
ap.UpFrom = appUpFrom(ar.Platform, ar.Device)
defer func() {
cp.Aid = ap.Aid
cp.Mid = ap.Mid
cp.UpFrom = ap.UpFrom
cp.IPv6 = ap.IPv6
build, buvid := getBuildInfo(c)
vdpSvc.SendArchiveLog(aid, build, buvid, "edit", ar.Platform, cp, err)
}()
err = vdpSvc.AppEditFull(c, ap, mid, buildNum, ar)
if err != nil {
log.Error("AppEditFull Err mid(%+d)|ap(%+v)|err(%+v)", mid, ap, err)
c.JSON(nil, err)
return
}
c.JSON(map[string]interface{}{
"aid": ap.Aid,
}, nil)
}
func appUpFrom(platfrom, device string) (res int8) {
if platfrom == "ios" {
if device == "pad" {
res = archive.UpFromIpad
} else {
res = archive.UpFromAPPiOS
}
} else if platfrom == "android" {
res = archive.UpFromAPPAndroid
} else {
res = archive.UpFromAPP
}
return
}

View File

@@ -0,0 +1,146 @@
package http
import (
"encoding/json"
"io/ioutil"
"net/http"
"go-common/app/interface/main/videoup/model/archive"
"go-common/library/ecode"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
)
func clientAdd(c *bm.Context) {
var (
aid int64
ap = &archive.ArcParam{}
cp = &archive.ArcParam{}
err error
)
midI, _ := c.Get("mid")
mid, ok := midI.(int64)
if !ok || mid <= 0 {
c.JSON(nil, ecode.RequestErr)
return
}
bs, err := ioutil.ReadAll(c.Request.Body)
if err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
c.Request.Body.Close()
err = json.Unmarshal(bs, ap)
err = json.Unmarshal(bs, cp)
if err != nil {
c.JSON(nil, ecode.VideoupParamErr)
return
}
ap.Aid = 0
ap.Mid = mid
ap.UpFrom = archive.UpFromWindows
defer func() {
cp.Aid = ap.Aid
cp.Mid = ap.Mid
cp.IPv6 = ap.IPv6
cp.UpFrom = ap.UpFrom
build, buvid := getBuildInfo(c)
vdpSvc.SendArchiveLog(aid, build, buvid, "add", "windows", cp, err)
}()
aid, err = vdpSvc.ClientAdd(c, mid, ap)
if err != nil {
c.JSON(nil, err)
log.Error("addErr err(%+v)|ap(%+v)", err, ap)
return
}
c.JSON(map[string]interface{}{
"aid": aid,
}, nil)
}
func clientEdit(c *bm.Context) {
var (
aid int64
ap = &archive.ArcParam{}
cp = &archive.ArcParam{}
err error
)
midI, _ := c.Get("mid")
mid, ok := midI.(int64)
if !ok || mid <= 0 {
c.JSON(nil, ecode.RequestErr)
return
}
bs, err := ioutil.ReadAll(c.Request.Body)
if err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
c.Request.Body.Close()
err = json.Unmarshal(bs, ap)
err = json.Unmarshal(bs, cp)
if err != nil {
c.JSON(nil, ecode.VideoupParamErr)
return
}
aid = ap.Aid
ap.Mid = mid
ap.UpFrom = archive.UpFromWindows
defer func() {
cp.Aid = ap.Aid
cp.Mid = ap.Mid
cp.UpFrom = ap.UpFrom
cp.IPv6 = ap.IPv6
build, buvid := getBuildInfo(c)
vdpSvc.SendArchiveLog(aid, build, buvid, "edit", "windows", cp, err)
}()
err = vdpSvc.ClientEdit(c, ap, mid)
if err != nil {
c.JSON(nil, err)
log.Error("editErr err(%+v)|ap(%+v)", err, ap)
return
}
c.JSON(map[string]interface{}{
"aid": ap.Aid,
}, nil)
}
func clientUpCover(c *bm.Context) {
midI, _ := c.Get("mid")
mid, ok := midI.(int64)
if !ok || mid <= 0 {
c.JSON(nil, ecode.RequestErr)
return
}
file, _, err := c.Request.FormFile("file")
if err != nil {
log.Error("c.Request().FormFile(\"file\") error(%v) | ", err)
c.JSON(nil, ecode.RequestErr)
return
}
bs, err := ioutil.ReadAll(file)
file.Close()
if err != nil {
log.Error("ioutil.ReadAll(c.Request().Body) error(%v)", err)
c.JSON(nil, ecode.RequestErr)
return
}
ftype := http.DetectContentType(bs)
if ftype != "image/jpeg" && ftype != "image/png" && ftype != "image/webp" {
log.Error("filetype not allow file type(%s)", ftype)
c.JSON(nil, ecode.RequestErr)
return
}
url, err := vdpSvc.ClientUpCover(c, ftype, bs, mid)
if err != nil {
c.JSON(nil, err)
return
}
c.JSON(map[string]interface{}{
"url": url,
}, nil)
}

View File

@@ -0,0 +1,143 @@
package http
import (
"io/ioutil"
"net/http"
"encoding/json"
"go-common/app/interface/main/videoup/model/archive"
"go-common/library/ecode"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
)
func creatorEdit(c *bm.Context) {
var (
aid int64
ap = &archive.ArcParam{}
cp = &archive.CreatorParam{}
err error
)
defer func() {
//特例 creatorEdit
ap.Title = cp.Title
ap.Aid = cp.Aid
ap.Tag = cp.Tag
ap.Desc = cp.Desc
ap.OpenElec = cp.OpenElec
build, buvid := getBuildInfo(c)
vdpSvc.SendArchiveLog(aid, build, buvid, "edit", "creator", ap, err)
}()
midI, _ := c.Get("mid")
mid, _ := midI.(int64)
if err = c.Bind(cp); err != nil {
err = ecode.VideoupParamErr
return
}
if cp.Aid == 0 {
err = ecode.VideoupParamErr
return
}
aid = cp.Aid
ap.Aid = cp.Aid
ap.Title = cp.Title
ap.Desc = cp.Desc
ap.Tag = cp.Tag
ap.OpenElec = cp.OpenElec
err = vdpSvc.CreatorEdit(c, mid, cp)
if err != nil {
c.JSON(nil, err)
log.Error("addErr err(%+v)|cp(%+v)", err, cp)
return
}
c.JSON(map[string]interface{}{
"aid": cp.Aid,
}, nil)
}
func creatorAdd(c *bm.Context) {
var (
aid int64
ap = &archive.ArcParam{}
cp = &archive.ArcParam{}
err error
)
midI, _ := c.Get("mid")
mid, ok := midI.(int64)
if !ok || mid <= 0 {
c.JSON(nil, ecode.RequestErr)
return
}
bs, err := ioutil.ReadAll(c.Request.Body)
if err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
c.Request.Body.Close()
err = json.Unmarshal(bs, ap)
err = json.Unmarshal(bs, cp)
if err != nil {
c.JSON(nil, ecode.VideoupParamErr)
return
}
ap.Mid = mid
ap.UpFrom = archive.UpFromCreator
defer func() {
cp.IPv6 = ap.IPv6
cp.Aid = ap.Aid
cp.UpFrom = ap.UpFrom
cp.Mid = ap.Mid
build, buvid := getBuildInfo(c)
vdpSvc.SendArchiveLog(aid, build, buvid, "add", "creator", cp, err)
}()
if err == nil {
aid, err = vdpSvc.CreatorAdd(c, mid, ap)
}
if err != nil {
c.JSON(nil, err)
log.Error("addErr err(%+v)|ap(%+v)", err, ap)
return
}
c.JSON(map[string]interface{}{
"aid": aid,
}, nil)
}
func creatorUpCover(c *bm.Context) {
midI, _ := c.Get("mid")
mid, ok := midI.(int64)
if !ok || mid <= 0 {
c.JSON(nil, ecode.RequestErr)
return
}
file, _, err := c.Request.FormFile("file")
if err != nil {
log.Error("c.Request().FormFile(\"file\") error(%v) | ", err)
c.JSON(nil, ecode.RequestErr)
return
}
bs, err := ioutil.ReadAll(file)
file.Close()
if err != nil {
log.Error("ioutil.ReadAll(c.Request().Body) error(%v)", err)
c.JSON(nil, ecode.RequestErr)
return
}
ftype := http.DetectContentType(bs)
if ftype != "image/jpeg" && ftype != "image/png" && ftype != "image/webp" {
log.Error("filetype not allow file type(%s)", ftype)
c.JSON(nil, ecode.RequestErr)
return
}
url, err := vdpSvc.CreatorUpCover(c, ftype, bs, mid)
if err != nil {
c.JSON(nil, err)
return
}
c.JSON(map[string]interface{}{
"url": url,
}, nil)
}

View File

@@ -0,0 +1,87 @@
package http
import (
"go-common/app/interface/main/videoup/conf"
"go-common/app/interface/main/videoup/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 (
vdpSvc *service.Service
antiSvc *antispam.Antispam
verifySvc *verify.Verify
authSvc *auth.Auth
)
// Init fn
func Init(c *conf.Config, s *service.Service) {
initService(c)
engineOuter := bm.DefaultServer(c.BM)
outerRouter(engineOuter)
if err := engineOuter.Start(); err != nil {
log.Error("engineOuter.Start() error(%v) | config(%v)", err, c)
panic(err)
}
}
// initService init service
func initService(c *conf.Config) {
verifySvc = verify.New(nil)
authSvc = auth.New(nil)
vdpSvc = service.New(c)
antiSvc = antispam.New(c.UpCoverAnti)
}
// outerRouter ForLogic port:6321
func outerRouter(e *bm.Engine) {
e.GET("/monitor/ping", ping)
g := e.Group("/x/vu")
{
client := g.Group("/client")
{
client.POST("/add", authSvc.UserMobile, clientAdd)
client.POST("/edit", authSvc.UserMobile, clientEdit)
client.POST("/cover/up", authSvc.UserMobile, antiSvc.Handler(), clientUpCover)
}
web := g.Group("/web")
{
web.POST("/add", authSvc.UserWeb, webAdd)
web.POST("/edit", authSvc.UserWeb, webEdit)
web.POST("/cover/up", authSvc.UserWeb, antiSvc.Handler(), webUpCover)
web.POST("/filter", authSvc.UserWeb, webFilter)
web.POST("/staff-title/filter", authSvc.UserWeb, webStaffTitleFilter)
web.POST("/cm/add", authSvc.UserWeb, webCmAdd)
web.POST("/v2/add", authSvc.UserWeb, webV2Add)
}
app := g.Group("/app")
{
app.POST("/edit", authSvc.UserMobile, appEdit)
//new feature
app.POST("/add", authSvc.UserMobile, appAdd)
app.POST("/edit/full", authSvc.UserMobile, appEditFull)
app.POST("/cover/up", authSvc.UserMobile, antiSvc.Handler(), appUpCover)
}
creator := g.Group("/creator")
{
creator.POST("/add", authSvc.UserMobile, creatorAdd)
creator.POST("/edit", authSvc.UserMobile, creatorEdit)
creator.POST("/cover/up", authSvc.UserMobile, antiSvc.Handler(), creatorUpCover)
}
}
}
func getBuildInfo(c *bm.Context) (build, buvid string) {
buvid = c.Request.Header.Get("Buvid")
if buvid == "" {
buvidCookie, _ := c.Request.Cookie("buvid3")
if buvidCookie != nil {
buvid = buvidCookie.Value
}
}
build = c.Request.Form.Get("build")
return
}

View File

@@ -0,0 +1,15 @@
package http
import (
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
"net/http"
)
func ping(c *bm.Context) {
var err error
if err = vdpSvc.Ping(c); err != nil {
log.Error("videoup-interface ping error(%v)", err)
c.AbortWithStatus(http.StatusServiceUnavailable)
}
}

View File

@@ -0,0 +1,253 @@
package http
import (
"encoding/base64"
"encoding/json"
"io/ioutil"
"net/http"
"strings"
"go-common/app/interface/main/videoup/model/archive"
"go-common/library/ecode"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
)
func webAdd(c *bm.Context) {
var (
aid int64
ap = &archive.ArcParam{}
cp = &archive.ArcParam{}
err error
)
midI, _ := c.Get("mid")
mid, ok := midI.(int64)
if !ok || mid <= 0 {
c.JSON(nil, ecode.CreativeNotLogin)
return
}
bs, err := ioutil.ReadAll(c.Request.Body)
if err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
c.Request.Body.Close()
err = json.Unmarshal(bs, ap)
err = json.Unmarshal(bs, cp)
if err != nil {
c.JSON(nil, ecode.VideoupParamErr)
return
}
ap.Aid = 0
ap.Mid = mid
ap.UpFrom = archive.UpFromWeb
// code, msg, data := vdpSvc.WebFilterArcParam(c, ap, ip)
// if code != 0 {
// c.Error = ecode.VideoupFieldFilterForbid
// c.Render(http.StatusOK, render.MapJSON(map[string]interface{}{
// "code": code,
// "message": msg,
// "data": data,
// }))
// return
// }
defer func() {
cp.Aid = ap.Aid
cp.Mid = ap.Mid
cp.IPv6 = ap.IPv6
cp.UpFrom = ap.UpFrom
build, buvid := getBuildInfo(c)
vdpSvc.SendArchiveLog(aid, build, buvid, "add", "web", cp, err)
}()
aid, err = vdpSvc.WebAdd(c, mid, ap, false)
if err != nil {
log.Error("vdpSvc.WebAdd Err mid(%+d)|ap(%+v)|err(%+v)", mid, ap, err)
c.JSON(nil, err)
return
}
c.JSON(map[string]interface{}{
"aid": aid,
}, nil)
}
func webEdit(c *bm.Context) {
var (
aid int64
ap = &archive.ArcParam{}
cp = &archive.ArcParam{}
err error
)
midI, _ := c.Get("mid")
mid, ok := midI.(int64)
if !ok || mid <= 0 {
c.JSON(nil, ecode.CreativeNotLogin)
return
}
bs, err := ioutil.ReadAll(c.Request.Body)
if err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
c.Request.Body.Close()
err = json.Unmarshal(bs, ap)
err = json.Unmarshal(bs, cp)
if err != nil {
c.JSON(nil, ecode.VideoupParamErr)
return
}
aid = ap.Aid
ap.Mid = mid
ap.UpFrom = archive.UpFromWeb
// code, msg, data := vdpSvc.WebFilterArcParam(c, ap, ip)
// if code != 0 {
// c.Error = ecode.VideoupFieldFilterForbid
// c.Render(http.StatusOK, render.MapJSON(map[string]interface{}{
// "code": code,
// "message": msg,
// "data": data,
// }))
// return
// }
defer func() {
cp.Aid = ap.Aid
cp.Mid = ap.Mid
cp.UpFrom = ap.UpFrom
cp.IPv6 = ap.IPv6
build, buvid := getBuildInfo(c)
vdpSvc.SendArchiveLog(aid, build, buvid, "edit", "web", cp, err)
}()
err = vdpSvc.WebEdit(c, ap, mid)
if err != nil {
log.Error("vdpSvc.WebEdit Err mid(%+d)|ap(%+v)|err(%+v)", mid, ap, err)
c.JSON(nil, err)
return
}
c.JSON(map[string]interface{}{
"aid": ap.Aid,
}, nil)
}
func webUpCover(c *bm.Context) {
midI, _ := c.Get("mid")
mid, ok := midI.(int64)
if !ok || mid <= 0 {
c.JSON(nil, ecode.CreativeNotLogin)
return
}
cover := c.Request.Form.Get("cover")
c.Request.Form.Del("cover")
ss := strings.Split(cover, ",")
if len(ss) != 2 || len(ss[1]) == 0 {
log.Error("cover(%s) format error", cover)
c.JSON(nil, ecode.RequestErr)
return
}
bs, err := base64.StdEncoding.DecodeString(ss[1])
if err != nil {
log.Error("base64.StdEncoding.DecodeString(%s) error(%v)", ss[1], err)
c.JSON(nil, ecode.RequestErr)
return
}
ftype := http.DetectContentType(bs)
if ftype != "image/jpeg" && ftype != "image/png" && ftype != "image/webp" {
log.Error("file type not allow file type(%s)", ftype)
c.JSON(nil, ecode.RequestErr)
return
}
url, err := vdpSvc.WebUpCover(c, ftype, bs, mid)
if err != nil {
c.JSON(nil, err)
return
}
c.JSON(map[string]interface{}{
"url": url,
}, nil)
}
func webFilter(c *bm.Context) {
midI, _ := c.Get("mid")
mid, ok := midI.(int64)
if !ok || mid <= 0 {
c.JSON(nil, ecode.CreativeNotLogin)
return
}
var (
err error
)
// msg := c.Request.Form.Get("msg")
// if len(msg) != 0 {
// _, err = vdpSvc.WebSingleFilter(c, msg)
// }
c.JSON(nil, err)
}
// staffTitleFilter 过滤联合投稿职能
func webStaffTitleFilter(c *bm.Context) {
midI, _ := c.Get("mid")
mid, ok := midI.(int64)
if !ok || mid <= 0 {
c.JSON(nil, ecode.CreativeNotLogin)
return
}
var (
err error
)
title := c.Request.Form.Get("title")
if len(title) != 0 {
var hit []string
_, hit, err = vdpSvc.WebSingleFilter(c, title)
if len(hit) > 0 {
err = ecode.VideoupStaffTitleFilter
}
}
c.JSON(nil, err)
}
func webCmAdd(c *bm.Context) {
var (
aid int64
ap = &archive.ArcParam{}
cp = &archive.ArcParam{}
err error
)
midI, _ := c.Get("mid")
mid, ok := midI.(int64)
if !ok || mid <= 0 {
c.JSON(nil, ecode.CreativeNotLogin)
return
}
bs, err := ioutil.ReadAll(c.Request.Body)
if err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
c.Request.Body.Close()
err = json.Unmarshal(bs, ap)
err = json.Unmarshal(bs, cp)
if err != nil {
c.JSON(nil, ecode.VideoupParamErr)
return
}
ap.Mid = mid
ap.UpFrom = archive.UpFromCM
defer func() {
cp.Aid = ap.Aid
cp.Mid = ap.Mid
cp.IPv6 = ap.IPv6
cp.UpFrom = ap.UpFrom
build, buvid := getBuildInfo(c)
vdpSvc.SendArchiveLog(aid, build, buvid, "add", "cm", cp, err)
}()
aid, err = vdpSvc.WebCmAdd(c, mid, ap)
if err != nil {
log.Error("vdpSvc.WebCmAdd Err mid(%+d)|ap(%+v)|err(%+v)", mid, ap, err)
c.JSON(nil, err)
return
}
c.JSON(map[string]interface{}{
"aid": aid,
}, nil)
}

View File

@@ -0,0 +1,64 @@
package http
import (
"encoding/json"
"io/ioutil"
"go-common/app/interface/main/videoup/model/archive"
"go-common/library/ecode"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
)
func webV2Add(c *bm.Context) {
var (
aid int64
ap = &archive.ArcParam{}
cp = &archive.ArcParam{}
err error
validated bool
)
midI, _ := c.Get("mid")
mid, ok := midI.(int64)
if !ok || mid <= 0 {
c.JSON(nil, ecode.RequestErr)
return
}
bs, err := ioutil.ReadAll(c.Request.Body)
if err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
c.Request.Body.Close()
err = json.Unmarshal(bs, ap)
err = json.Unmarshal(bs, cp)
if err != nil {
c.JSON(nil, ecode.VideoupParamErr)
return
}
defer func() {
cp.Aid = ap.Aid
cp.Mid = ap.Mid
cp.IPv6 = ap.IPv6
cp.UpFrom = ap.UpFrom
build, buvid := getBuildInfo(c)
vdpSvc.SendArchiveLog(aid, build, buvid, "add", "web/v2", cp, err)
}()
validated, err = vdpSvc.Validate(c, ap.Geetest, "web", mid)
if validated || err == ecode.CreativeGeetestAPIErr {
ap.Mid = mid
ap.UpFrom = archive.UpFromWeb
aid, err = vdpSvc.WebAdd(c, mid, ap, validated)
if err != nil {
log.Error("vdpSvc.WebAdd Err mid(%+d)|ap(%+v)|err(%+v)", mid, ap, err)
c.JSON(nil, err)
return
}
c.JSON(map[string]interface{}{
"aid": aid,
}, nil)
} else {
c.JSON(nil, ecode.CreativeGeetestErr)
}
}