package Wasu import ( "encoding/json" "fmt" "github.com/sirupsen/logrus" "src/Common/Request" "src/Config" "unsafe" ) /** { "currentPage":1, "pageNum":1, "pageSize":2, "total":2, "list":[ { "jsonUrl":"http://115.29.7.64:8092/XmlData/incrementJson?date=20190625&version=20190625150313", "md5":"a3e0d11328e0feb3114921851f39ac41", "newsId":"2018239", "newsName":"冰雪女王", "playUrl":"http://downloader.media.wasu.tv/data13/ott/344/2015-08/10/adc0650a31a5211ec6d0b1c9fdb10274/5d1496be/1439187357125_958916.ts" } ] } **/ type Media struct { Spid string `json:"spid"` PushMode string `json:"push_mode"` //是否自动转推:0手动,1自动 JsonUrl string `json:"jsonUrl"` NewsId string `json:"newsId"` NewsName string `json:"newsName"` NodeId string `json:"nodeId"` NodeName string `json:"nodeName"` // Md5 string `json:"md5"` // PlayUrl string `json:"playUrl"` } type MediaList struct { CurrentPage int `json:"currentPage"` PageNum int `json:"pageNum"` PageSize int `json:"pageSize"` Total int `json:"total"` List []*Media `json:"list"` } type MediaListModel struct { Config *Config.Config Spid string } func (this *MediaListModel) FetchList(date string, page int) *MediaList { //wasu_api_incrementList, ok := this.Config.Sys.Get("wasu_api_incrementList") wasu_api_incrementList := "" config,ok := this.Config.Sps.Get(this.Spid) if ok { conf,ok:=config.(map[string]interface{}) if ok { wasu_api_incrementList=conf["wasu_api_incrementList"].(string) } } if wasu_api_incrementList == "" { logrus.Error("PULL SP :",this.Spid," 缺少配置项:wasu_api_incrementList") } mediaList := new(MediaList) if ok { url := fmt.Sprintf("%s?date=%s&page=%d", wasu_api_incrementList, date, page) data, err := Request.Get(url) if err == nil { json.Unmarshal([]byte(data), mediaList) } } return mediaList } func (this *MediaListModel) UpdateMediaList(mediaList *MediaList) bool { l := len(mediaList.List) nOk := 0 for _, media := range mediaList.List { if this.UpdateMedia(media) { nOk++ } } b := false if nOk == l { b = true } logrus.Debugln("UpdateMediaList : ok/total :", nOk, "/", l) return b } func (this *MediaListModel) UpdateMedia(media *Media) bool { media.Spid = this.Spid wasu_incrementList_push_mode:=""; config,ok := this.Config.Sps.Get(this.Spid) if ok { conf,ok:=config.(map[string]interface{}) if ok { wasu_incrementList_push_mode=conf["wasu_incrementList_push_mode"].(string) } } if wasu_incrementList_push_mode == "" { logrus.Error("PULL SP :",this.Spid," 缺少配置项:wasu_incrementList_push_mode") wasu_incrementList_push_mode="0" } media.PushMode=wasu_incrementList_push_mode; center_api_media_update, ok := this.Config.Sys.Get("center_api_media_update") b := false if ok { inData, _ := json.Marshal(media) //fmt.Printf("****** media_info : %v",media) data, err := Request.Post(center_api_media_update.(string), *(*string)(unsafe.Pointer(&inData))) //data, err := Request.Post(center_api_media_update.(string), string(inData)) if err == nil { if data == "true" { b = true } } } return b }