57 lines
1.8 KiB
Go
57 lines
1.8 KiB
Go
package archive
|
|
|
|
// Result is archive model.
|
|
type Result struct {
|
|
Aid int64 `json:"aid"`
|
|
Mid int64 `json:"mid"`
|
|
TypeID int16 `json:"tid"`
|
|
Title string `json:"title"`
|
|
Author string `json:"author"`
|
|
Cover string `json:"cover"`
|
|
Tag string `json:"tag"`
|
|
Duration int64 `json:"duration"`
|
|
Copyright int8 `json:"copyright"`
|
|
Desc string `json:"desc"`
|
|
Round int8 `json:"round"`
|
|
Forward int64 `json:"forward"`
|
|
Attribute int32 `json:"attribute"`
|
|
HumanRank int `json:"humanrank"`
|
|
Access int16 `json:"access"`
|
|
State int8 `json:"state"`
|
|
Reason string `json:"reject_reason"`
|
|
PTime string `json:"ptime"`
|
|
CTime string `json:"ctime"`
|
|
MTime string `json:"mtime"`
|
|
Dynamic string `json:"dynamic"`
|
|
}
|
|
|
|
// IsNormal check archive is open.
|
|
func (a *Result) IsNormal() bool {
|
|
return a.State >= StateOpen || a.State == StateForbidFixed
|
|
}
|
|
|
|
// NotAllowUp check archive is or not allow update state.
|
|
func (a *Result) NotAllowUp() bool {
|
|
return a.State == StateForbidUpDelete || a.State == StateForbidLater || a.State == StateForbidLock || a.State == StateForbidPolice
|
|
}
|
|
|
|
// IsForbid check archive state forbid by admin or delete.
|
|
func (a *Result) IsForbid() bool {
|
|
return a.State == StateForbidUpDelete || a.State == StateForbidRecicle || a.State == StateForbidPolice || a.State == StateForbidLock || a.State == StateForbidLater || a.State == StateForbidXcodeFail
|
|
}
|
|
|
|
// AttrVal get attribute value.
|
|
func (a *Result) AttrVal(bit uint) int32 {
|
|
return (a.Attribute >> bit) & int32(1)
|
|
}
|
|
|
|
// AttrSet set attribute value.
|
|
func (a *Result) AttrSet(v int32, bit uint) {
|
|
a.Attribute = a.Attribute&(^(1 << bit)) | (v << bit)
|
|
}
|
|
|
|
// WithAttr set attribute value with a attr value.
|
|
func (a *Result) WithAttr(attr Attr) {
|
|
a.Attribute = a.Attribute | int32(attr)
|
|
}
|