123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189 |
- package pgc
- import "fmt"
- const (
- _definition = "SD"
- )
- // License Owner Request message
- // License represents the data that we need to send to the license owner for auditing
- type License struct {
- TId string
- InputTime string
- Sign string
- XMLData *XMLData
- }
- // XMLData reprensents the main body of xml data sent to license owner
- type XMLData struct {
- Service *Service `xml:"Service"`
- }
- // Service body+head
- type Service struct {
- ID string `xml:"id,attr"`
- Head *Head
- Body *Body
- }
- // Head some header info
- type Head struct {
- TradeID string `xml:"TradeId"`
- Date string
- Count int
- }
- // Body Media list
- type Body struct {
- ProgramSetList *PSList `xml:"programSetList"`
- }
- // PSList is short for programSetList
- type PSList struct {
- ProgramSet []*PS `xml:"programSet"`
- }
- // PS is short for ProgramSet
- type PS struct {
- ProgramSetID string `xml:"programSetId"`
- ProgramSetName string `xml:"programSetName"`
- ProgramSetClass string `xml:"programSetClass"`
- ProgramSetType string `xml:"programSetType"`
- ProgramSetPoster string `xml:"programSetPoster"`
- Portrait string `xml:"portrait"` // upper's portrait
- Producer string `xml:"producer"` // upper's name
- PublishDate string `xml:"publishDate"`
- Copyright string `xml:"copyright"`
- ProgramCount int `xml:"programCount"`
- CREndData string `xml:"cREndDate"`
- DefinitionType string `xml:"definitionType"`
- CpCode string `xml:"cpCode"`
- PayStatus int `xml:"payStatus"`
- PrimitiveName string `xml:"primitiveName"`
- Alias string `xml:"alias"`
- Zone string `xml:"zone"`
- LeadingRole string `xml:"leadingRole"`
- ProgramSetDesc string `xml:"programSetDesc"`
- Staff string `xml:"Staff"`
- SubGenre string `xml:"subGenre"`
- ProgramList *ProgramList `xml:"programList,omitempty"`
- }
- // ProgramList contains different EP
- type ProgramList struct {
- Program []*Program `xml:"program"`
- }
- // Program represents one EP data
- type Program struct {
- ProgramID string `xml:"programId"`
- ProgramName string `xml:"programName"`
- ProgramPoster string `xml:"programPoster"`
- ProgramLength int `xml:"programLength"`
- PublishDate string `xml:"publishDate"`
- IfPreview int `xml:"ifPreview"`
- Number string `xml:"number"`
- DefinitionType string `xml:"definitionType"`
- PlayCount int `xml:"playCount"`
- Drm int `xml:"drm"`
- ProgramMediaList *PMList `xml:"programMediaList"`
- ProgramDesc string `xml:"programDesc"`
- }
- // PMList is short for programMediaList
- type PMList struct {
- ProgramMedia []*PMedia `xml:"programMedia"`
- }
- // PMedia is short for ProgramMedia
- type PMedia struct {
- MediaID string `xml:"mediaId"`
- PlayURL string `xml:"playUrl"`
- Definition string `xml:"definition"`
- HTMLURL string `xml:"htmlUrl"`
- }
- // MakePMedia is used to construct PMedia structure
- func MakePMedia(prefix, playurl string, cid int64) *PMedia {
- return &PMedia{
- MediaID: fmt.Sprintf("%s%d", prefix, cid),
- PlayURL: playurl,
- Definition: _definition,
- HTMLURL: playurl,
- }
- }
- // Document is the result structure of license owner's response
- type Document struct {
- Response *Response
- }
- // Response is the main content of response
- type Response struct {
- TradeID string `xml:"TradeId"`
- ResponseCode string
- ResponseInfo string
- ResponseTime string `xml:"responseTime"`
- ErrorList *ErrorList
- }
- // ErrorList is the list of error returned by the license owner
- type ErrorList struct {
- Error *Error
- }
- // Error one error body
- type Error struct {
- ID string `xml:"Id"`
- Message string
- }
- // DelBody is the bodu message of deletion
- type DelBody struct {
- ProgramList *ProgramList `xml:"programList"`
- }
- // CreatePMedia creates PMedia struct
- func CreatePMedia(prefix string, epid int, url string) *PMedia {
- return &PMedia{
- MediaID: prefix + fmt.Sprintf("%d", epid),
- PlayURL: url,
- Definition: "SD",
- HTMLURL: url,
- }
- }
- // CreateProgram creates program
- func CreateProgram(prefix string, ep *TVEpContent) *Program {
- r := &Program{
- ProgramID: prefix + fmt.Sprintf("%d", ep.ID),
- ProgramName: ep.LongTitle,
- ProgramPoster: ep.Cover,
- ProgramLength: int(ep.Length * 60),
- PublishDate: "1970-01-01",
- IfPreview: 0,
- Number: ep.Title,
- DefinitionType: "SD",
- PlayCount: 0,
- Drm: ep.PayStatus,
- }
- r.isPay()
- return r
- }
- // ReqEpLicCall is the request struct for epLicCall function
- type ReqEpLicCall struct {
- EpLic *License
- SID int64
- Conts []*Content
- }
- // isPay .
- func (p *Program) isPay() {
- if p.Drm == 2 {
- p.Drm = 0
- } else {
- p.Drm = 1
- }
- }
|