go-common/app/job/main/tv/service/ugc/media_cache.go

85 lines
2.4 KiB
Go
Raw Normal View History

2019-04-22 10:49:16 +00:00
package ugc
import (
"encoding/json"
appDao "go-common/app/job/main/tv/dao/app"
ugcmdl "go-common/app/job/main/tv/model/ugc"
"go-common/library/log"
xtime "go-common/library/time"
)
// arcDatabus refreshes the mc cache for archive media info
func (s *Service) arcDatabus(jsonstr json.RawMessage) (err error) {
var (
arc = &ugcmdl.DatabusArc{}
pubtime int64
)
if err = json.Unmarshal(jsonstr, arc); err != nil {
log.Error("json.Unmarshal(%s) error(%v)", jsonstr, err)
return
}
arcMark := arc.New
if pubtime, err = appDao.TimeTrans(arcMark.Pubtime); err != nil {
log.Warn("arcDatabus Pubtime AVID: %d, Err %v", arcMark.AID, err)
}
// we prepare the cms cache
if err = s.dao.SetArcCMS(ctx, &ugcmdl.ArcCMS{
// Media Info
Title: arcMark.Title,
AID: arcMark.AID,
Content: arcMark.Content,
Cover: arcMark.Cover,
TypeID: arcMark.TypeID,
Pubtime: xtime.Time(pubtime),
Videos: arcMark.Videos,
Valid: arcMark.Valid,
Deleted: arcMark.Deleted,
Result: arcMark.Result,
}); err != nil {
log.Error("arcDatabus setArcCMS AVID: %d, Err %v", arcMark.AID, err)
}
// we prepare the rpc cache for the ugc view page if the archive is able to play
if arcMark.IsPass() {
s.viewCache(int64(arcMark.AID))
appDao.PromInfo("ArcRPC-AddCache")
}
s.listMtn(arc.Old, arc.New)
return
}
// videoDatabus refreshes the mc cache for video media info
func (s *Service) videoDatabus(jsonstr json.RawMessage) (err error) {
var (
video = &ugcmdl.DatabusVideo{}
criCID = s.c.UgcSync.Cfg.CriticalCid
)
if err = json.Unmarshal(jsonstr, video); err != nil {
log.Error("json.Unmarshal(%s) error(%v)", jsonstr, err)
return
}
vm := video.New
if vm.ToReport(criCID) { // if the video has not been reported yet, we do it and update the mark field from 0 to 1
s.repCidCh <- vm.CID
}
if vm.ToAudit(criCID) {
log.Info("videoDatabus addAudCid cAid %d", vm.AID)
s.audAidCh <- []int64{vm.AID} // add aid into channel to treat
}
if video.Old == nil { // if the brand new episode can play
if vm.CanPlay() {
log.Info("videoDatabus reshelfAid cAid %d", vm.AID)
s.reshelfAidCh <- vm.AID
}
} else { // or it couldn't play and it passes now
if !video.Old.CanPlay() && vm.CanPlay() {
log.Info("videoDatabus reshelfAid cAid %d", vm.AID)
s.reshelfAidCh <- vm.AID
}
}
if err = s.dao.SetVideoCMS(ctx, vm.ToCMS()); err != nil { // we prepare the cms cache
log.Warn("videoDatabus setVideoCMS CID: %d, Err %v", vm.CID, err)
}
return
}