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.
71 lines
1.5 KiB
71 lines
1.5 KiB
package ugc |
|
|
|
import "strings" |
|
|
|
// Upper reprensents the uppers |
|
type Upper struct { |
|
MID int64 |
|
Toinit int |
|
Submit int // 1=need report |
|
OriName string // original name |
|
CMSName string // cms intervened name |
|
OriFace string // original face |
|
CMSFace string // cms intervened face |
|
Valid int // auth info: 1=online,0=hidden |
|
Deleted int |
|
} |
|
|
|
// EasyUp is the simple version of upper |
|
type EasyUp struct { |
|
MID int64 |
|
Name string |
|
Face string |
|
} |
|
|
|
// ToUpper transform an EasyUp to Upper |
|
func (u *EasyUp) ToUpper(ori *Upper) *Upper { |
|
if ori == nil { // if no original data is given |
|
ori = &Upper{ |
|
Valid: 1, |
|
} |
|
} |
|
return &Upper{ |
|
MID: u.MID, |
|
OriFace: u.Face, |
|
CMSFace: u.Face, |
|
OriName: u.Name, |
|
CMSName: u.Name, |
|
Toinit: ori.Toinit, |
|
Submit: ori.Submit, |
|
Valid: ori.Valid, |
|
Deleted: ori.Deleted, |
|
} |
|
} |
|
|
|
// IsSame returns whether the upper is the same |
|
func (u *Upper) IsSame(name, face string) (f bool, n bool) { |
|
n = u.OriName == name |
|
if strings.Contains(u.OriFace, "bfs") && |
|
strings.Contains(face, "bfs") { |
|
f = bfsFName(u.OriFace) == bfsFName(face) |
|
} else { |
|
f = u.OriFace == face |
|
} |
|
return |
|
} |
|
|
|
// bfsFName picks the file name from bfs url |
|
func bfsFName(bfsurl string) (fileName string) { |
|
var index = strings.LastIndex(bfsurl, "/") |
|
if index >= 0 && index+1 < len(bfsurl) { |
|
fileName = bfsurl[index+1:] |
|
} |
|
return |
|
} |
|
|
|
// ReqSetUp is the structure of request to function in Dao, set upper value |
|
type ReqSetUp struct { |
|
Value string |
|
MID int64 |
|
UpType int |
|
}
|
|
|