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.
217 lines
6.5 KiB
217 lines
6.5 KiB
package server |
|
|
|
import ( |
|
"go-common/app/interface/main/dm2/conf" |
|
"go-common/app/interface/main/dm2/model" |
|
"go-common/app/interface/main/dm2/service" |
|
"go-common/library/ecode" |
|
"go-common/library/net/rpc" |
|
"go-common/library/net/rpc/context" |
|
) |
|
|
|
// RPC rpc server. |
|
type RPC struct { |
|
s *service.Service |
|
} |
|
|
|
// New new a rpc server. |
|
func New(c *conf.Config, s *service.Service) (svr *rpc.Server) { |
|
r := &RPC{s: s} |
|
svr = rpc.NewServer(c.RPCServer) |
|
if err := svr.Register(r); err != nil { |
|
panic(err) |
|
} |
|
return |
|
} |
|
|
|
// Auth check connection success. |
|
func (r *RPC) Auth(c context.Context, arg *rpc.Auth, res *struct{}) (err error) { |
|
return |
|
} |
|
|
|
// Ping checks connection success. |
|
func (r *RPC) Ping(c context.Context, arg *struct{}, res *struct{}) (err error) { |
|
return |
|
} |
|
|
|
// SubjectInfos multi get dm subject info by type and oids. |
|
func (r *RPC) SubjectInfos(c context.Context, a *model.ArgOids, res *map[int64]*model.SubjectInfo) (err error) { |
|
*res, err = r.s.SubjectInfos(c, a.Type, a.Plat, a.Oids) |
|
return |
|
} |
|
|
|
// EditDMState edit dm state. |
|
func (r *RPC) EditDMState(c context.Context, a *model.ArgEditDMState, res *struct{}) (err error) { |
|
err = r.s.EditDMState(c, a.Type, a.Mid, a.Oid, a.State, a.Dmids, a.Source, a.OperatorType) |
|
return |
|
} |
|
|
|
// EditDMPool edit dm pool. |
|
func (r *RPC) EditDMPool(c context.Context, a *model.ArgEditDMPool, res *struct{}) (err error) { |
|
err = r.s.EditDMPool(c, a.Type, a.Mid, a.Oid, a.Pool, a.Dmids, a.Source, a.OperatorType) |
|
return |
|
} |
|
|
|
// EditDMAttr edit dm attr |
|
func (r *RPC) EditDMAttr(c context.Context, a *model.ArgEditDMAttr, res *struct{}) (err error) { |
|
_, err = r.s.EditDMAttr(c, a.Type, a.Mid, a.Oid, a.Bit, a.Value, a.Dmids, a.Source, a.OperatorType) |
|
return |
|
} |
|
|
|
// BuyAdvance 购买高级弹幕 |
|
func (r *RPC) BuyAdvance(c context.Context, a *model.ArgAdvance, res *struct{}) (err error) { |
|
err = r.s.BuyAdvance(c, a.Mid, a.Cid, a.Mode) |
|
return |
|
} |
|
|
|
// AdvanceState 高级弹幕状态 |
|
func (r *RPC) AdvanceState(c context.Context, a *model.ArgAdvance, res *model.AdvState) (err error) { |
|
var v *model.AdvState |
|
if v, err = r.s.AdvanceState(c, a.Mid, a.Cid, a.Mode); err == nil { |
|
*res = *v |
|
} |
|
return |
|
} |
|
|
|
// Advances 高级弹幕申请列表 |
|
func (r *RPC) Advances(c context.Context, a *model.ArgMid, res *[]*model.Advance) (err error) { |
|
*res, err = r.s.Advances(c, a.Mid) |
|
return |
|
} |
|
|
|
// PassAdvance 通过高级弹幕申请 |
|
func (r *RPC) PassAdvance(c context.Context, a *model.ArgUpAdvance, res *struct{}) (err error) { |
|
err = r.s.PassAdvance(c, a.Mid, a.ID) |
|
return |
|
} |
|
|
|
// DenyAdvance 拒绝高级弹幕申请 |
|
func (r *RPC) DenyAdvance(c context.Context, a *model.ArgUpAdvance, res *struct{}) (err error) { |
|
err = r.s.DenyAdvance(c, a.Mid, a.ID) |
|
return |
|
} |
|
|
|
// CancelAdvance 取消高级弹幕申请 |
|
func (r *RPC) CancelAdvance(c context.Context, a *model.ArgUpAdvance, res *struct{}) (err error) { |
|
err = r.s.CancelAdvance(c, a.Mid, a.ID) |
|
return |
|
} |
|
|
|
// AddUserFilters add user filter. |
|
func (r *RPC) AddUserFilters(c context.Context, a *model.ArgAddUserFilters, res *[]*model.UserFilter) (err error) { |
|
fltMap := make(map[string]string) |
|
for _, filter := range a.Filters { |
|
fltMap[filter] = a.Comment |
|
} |
|
*res, err = r.s.AddUserFilters(c, a.Mid, a.Type, fltMap) |
|
return |
|
} |
|
|
|
// UserFilters multi get user filters. |
|
func (r *RPC) UserFilters(c context.Context, a *model.ArgMid, res *[]*model.UserFilter) (err error) { |
|
*res, err = r.s.UserFilters(c, a.Mid) |
|
return |
|
} |
|
|
|
// DelUserFilters delete user filters by filter id. |
|
func (r *RPC) DelUserFilters(c context.Context, a *model.ArgDelUserFilters, affect *int64) (err error) { |
|
*affect, err = r.s.DelUserFilters(c, a.Mid, a.IDs) |
|
return |
|
} |
|
|
|
// AddUpFilters add up filters. |
|
func (r *RPC) AddUpFilters(c context.Context, a *model.ArgAddUpFilters, res *struct{}) (err error) { |
|
fltMap := make(map[string]string) |
|
for _, filter := range a.Filters { |
|
fltMap[filter] = "" // NOTE here should be comment assignment |
|
} |
|
err = r.s.AddUpFilters(c, a.Mid, a.Type, fltMap) |
|
return |
|
} |
|
|
|
// UpFilters multi get up filters. |
|
func (r *RPC) UpFilters(c context.Context, a *model.ArgUpFilters, res *[]*model.UpFilter) (err error) { |
|
*res, err = r.s.UpFilters(c, a.Mid) |
|
return |
|
} |
|
|
|
// BanUsers ban user by upper or assist. |
|
func (r *RPC) BanUsers(c context.Context, a *model.ArgBanUsers, res *struct{}) (err error) { |
|
err = r.s.BanUsers(c, a.Mid, a.Oid, a.DMIDs) |
|
return |
|
} |
|
|
|
// CancelBanUsers cancel users by upper or assiat. |
|
func (r *RPC) CancelBanUsers(c context.Context, a *model.ArgCancelBanUsers, res *struct{}) (err error) { |
|
err = r.s.CancelBanUsers(c, a.Mid, a.Aid, a.Filters) |
|
return |
|
} |
|
|
|
// EditUpFilters edit upper filters. |
|
func (r *RPC) EditUpFilters(c context.Context, a *model.ArgEditUpFilters, res *int64) (err error) { |
|
*res, err = r.s.EditUpFilters(c, a.Mid, a.Type, a.Active, a.Filters) |
|
return |
|
} |
|
|
|
// AddGlobalFilter add global filters. |
|
func (r *RPC) AddGlobalFilter(c context.Context, a *model.ArgAddGlobalFilter, res *model.GlobalFilter) (err error) { |
|
var v *model.GlobalFilter |
|
if v, err = r.s.AddGlobalFilter(c, a.Type, a.Filter); err == nil { |
|
*res = *v |
|
} |
|
return |
|
} |
|
|
|
// GlobalFilters multi get global filters. |
|
func (r *RPC) GlobalFilters(c context.Context, a *model.ArgGlobalFilters, res *[]*model.GlobalFilter) (err error) { |
|
if a == nil { |
|
err = ecode.RequestErr |
|
return |
|
} |
|
*res, err = r.s.GlobalFilters(c) |
|
return |
|
} |
|
|
|
// DelGlobalFilters delete global filter. |
|
func (r *RPC) DelGlobalFilters(c context.Context, a *model.ArgDelGlobalFilters, affect *int64) (err error) { |
|
*affect, err = r.s.DelGlobalFilters(c, a.IDs) |
|
return |
|
} |
|
|
|
// Mask get web mask. |
|
func (r *RPC) Mask(c context.Context, a *model.ArgMask, res *model.Mask) (err error) { |
|
if a == nil { |
|
err = ecode.RequestErr |
|
return |
|
} |
|
var m *model.Mask |
|
if m, err = r.s.MaskList(c, a.Cid, a.Plat); err == nil && m != nil { |
|
*res = *m |
|
} |
|
return |
|
} |
|
|
|
// SubtitleGet . |
|
func (r *RPC) SubtitleGet(c context.Context, arg *model.ArgSubtitleGet, res *model.VideoSubtitles) (err error) { |
|
var v *model.VideoSubtitles |
|
if v, err = r.s.GetWebVideoSubtitle(c, arg.Aid, arg.Oid, arg.Type); err == nil { |
|
*res = *v |
|
} |
|
return |
|
} |
|
|
|
// SubtitleSujectSubmit set archive allow submit |
|
func (r *RPC) SubtitleSujectSubmit(c context.Context, arg *model.ArgSubtitleAllowSubmit, res *struct{}) (err error) { |
|
err = r.s.SubtitleSubjectSubmit(c, arg.Aid, arg.AllowSubmit, arg.Lan) |
|
return |
|
} |
|
|
|
// SubtitleSubjectSubmitGet get archive allow submit |
|
func (r *RPC) SubtitleSubjectSubmitGet(c context.Context, arg *model.ArgArchiveID, res *model.SubtitleSubjectReply) (err error) { |
|
var ( |
|
reply *model.SubtitleSubjectReply |
|
) |
|
reply, err = r.s.SubtitleSubject(c, arg.Aid) |
|
*res = *reply |
|
return |
|
}
|
|
|