72 lines
1.5 KiB
Go
72 lines
1.5 KiB
Go
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
|
|
}
|