package Wasu

import (
	log "github.com/sirupsen/logrus"
	"src/Common/DateTime"
	"src/Common/Unit"
	"src/Config"
	"time"
)

type SpModel struct {
	Config *Config.Config
	Spid string
}

func (this *SpModel) Start() {
	START:
		log.Infoln("启动SP拉取增量媒资检测:",this.Spid)
		config,ok := this.Config.Sps.Get(this.Spid)
		n:=3600
		if ok {
			conf,ok:=config.(map[string]interface{})
			if ok {
				wasu_check_seconds:=conf["wasu_check_seconds"].(string)
				if wasu_check_seconds !="" {
					n = Unit.Time2Seconds(wasu_check_seconds)
				}
				this.pull();
			}

		}
		time.Sleep(time.Duration(n) * time.Second)
		goto START
}

func (this *SpModel) pull() {
	log.Infoln("SpModel.pull Starting...")
	mediaModel := new(MediaListModel)
	mediaModel.Config = this.Config
	mediaModel.Spid = this.Spid
	date := DateTime.Format("YYYYMMDD", time.Now())
	//date:="20190901"
	mediaList := mediaModel.FetchList(date, 1)
	ok := mediaModel.UpdateMediaList(mediaList)
	if !ok {
		log.Errorln("mediaModel.UpdateMediaList err: date=", date, "page=", 1)
	}

	if mediaList != nil {
		pageNum := mediaList.PageNum
		if pageNum >= 2 {
			for page := 2; page <= pageNum; page++ {
				mediaList := mediaModel.FetchList(date, page)
				ok := mediaModel.UpdateMediaList(mediaList)
				if !ok {
					log.Errorln("mediaModel.UpdateMediaList err: date=", date, "page=", page)
				}
			}
		}
	}
}