38 lines
696 B
Go
38 lines
696 B
Go
package archive
|
|
|
|
// is
|
|
const (
|
|
StateOpen = int32(0)
|
|
AttrNo = int32(0)
|
|
AttrYes = int32(1)
|
|
AttrBitBadgepay = uint(18)
|
|
AttrBitUGCPay = uint(22)
|
|
AttrBitIsPGC = uint(9)
|
|
)
|
|
|
|
// IsNormal check archive is normal
|
|
func (info *Info) IsNormal() bool {
|
|
return info.State >= StateOpen
|
|
}
|
|
|
|
// IsPGC is
|
|
func (info *Info) IsPGC() bool {
|
|
return info.AttrVal(AttrBitIsPGC) == AttrYes
|
|
}
|
|
|
|
// AttrVal get attr val by bit.
|
|
func (info *Info) AttrVal(bit uint) int32 {
|
|
return (info.Attribute >> bit) & int32(1)
|
|
}
|
|
|
|
// HasCid check cid is in info.Cids
|
|
func (info *Info) HasCid(cid int64) (ok bool) {
|
|
for _, id := range info.Cids {
|
|
if cid == id {
|
|
ok = true
|
|
break
|
|
}
|
|
}
|
|
return
|
|
}
|