You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
82 lines
1.9 KiB
82 lines
1.9 KiB
package model |
|
|
|
import ( |
|
"encoding/json" |
|
"strings" |
|
) |
|
|
|
// Message ... |
|
type Message struct { |
|
Action string `json:"action"` |
|
Table string `json:"table"` |
|
New json.RawMessage `json:"new"` |
|
Old json.RawMessage `json:"old"` |
|
} |
|
|
|
// Season ... |
|
type Season struct { |
|
ID int `json:"id"` |
|
Title string `json:"title"` |
|
SeasonTitle string `json:"season_title"` |
|
Mode int `json:"mode"` |
|
Type int `json:"type"` |
|
Alias string `json:"alias"` |
|
AliasSearch string `json:"alias_search"` |
|
Brief string `json:"brief"` |
|
Evaluate string `json:"evaluate"` |
|
Actors string `json:"actors"` |
|
Staff string `json:"staff"` |
|
SquareCover string `json:"square_cover"` |
|
Cover string `json:"cover"` |
|
EpCover string `json:"epcover"` |
|
Area int `json:"area"` |
|
Ctime string `json:"ctime"` |
|
Mtime string `json:"mtime"` |
|
} |
|
|
|
// EsSeason ... |
|
type EsSeason struct { |
|
ID int `json:"id"` |
|
Title string `json:"title"` |
|
Alias string `json:"alias"` |
|
AliasSearch []string `json:"alias_search"` |
|
Actors []string `json:"actors"` |
|
} |
|
|
|
//EsFormat ... |
|
func (s *Season) EsFormat() (es *EsSeason) { |
|
es = &EsSeason{ |
|
ID: s.ID, |
|
Title: s.Title, |
|
Alias: s.Alias, |
|
AliasSearch: make([]string, 0), |
|
Actors: make([]string, 0), |
|
} |
|
|
|
if s.AliasSearch != "" { |
|
es.AliasSearch = strings.Split(s.AliasSearch, ",") |
|
} |
|
|
|
if s.Actors != "" { |
|
for _, act := range strings.Split(s.Actors, "\n") { |
|
if act == "" { |
|
continue |
|
} |
|
|
|
act := strings.Split(act, ":") |
|
if len(act) > 0 { |
|
es.Actors = append(es.Actors, act[0]) |
|
} |
|
} |
|
} |
|
return |
|
} |
|
|
|
// FieldDiff 检查指定字段是有变化 |
|
func (s *Season) FieldDiff(season *Season) bool { |
|
return s.Title != season.Title || |
|
s.Alias != season.Alias || |
|
s.AliasSearch != season.AliasSearch || |
|
s.Actors != season.Actors || |
|
s.Mtime != season.Mtime |
|
}
|
|
|