MediaListModel.go 2.03 KB
Newer Older
吴贤德's avatar
吴贤德 committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
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 {
	JsonUrl string `json:"jsonUrl"`
	//Md5			string 	`json:"md5"`
	//NewsId		string	`json:"newsId"`
	//NewsName	string	`json:"newsName"`
	//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
}

func (this *MediaListModel) FetchList(date string, page int) *MediaList {
	wasu_api_incrementList, ok := this.Config.Sys.Get("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 {
	center_api_media_update, ok := this.Config.Sys.Get("center_api_media_update")
	b := false
	if ok {
		inData, _ := json.Marshal(media)
		data, err := Request.Post(center_api_media_update.(string), *(*string)(unsafe.Pointer(&inData)))
		if err == nil {
			if data == "true" {
				b = true
			}
		}
	}

	return b
}