bilibili-backup/app/interface/main/broadcast/server/whitelist.go
2019-04-22 02:59:20 +00:00

46 lines
938 B
Go

package server
import (
"go-common/app/interface/main/broadcast/conf"
"log"
"os"
)
var whitelist *Whitelist
// Whitelist .
type Whitelist struct {
log *log.Logger
list map[int64]struct{} // whitelist for debug
}
// InitWhitelist a whitelist struct.
func InitWhitelist(c *conf.Whitelist) (err error) {
var (
mid int64
f *os.File
)
if f, err = os.OpenFile(c.WhiteLog, os.O_RDWR|os.O_APPEND|os.O_CREATE, 0644); err == nil {
whitelist = new(Whitelist)
whitelist.log = log.New(f, "", log.LstdFlags)
whitelist.list = make(map[int64]struct{})
for _, mid = range c.Whitelist {
whitelist.list[mid] = struct{}{}
}
}
return
}
// Contains whitelist contains a mid or not.
func (w *Whitelist) Contains(mid int64) (ok bool) {
if mid > 0 {
_, ok = w.list[mid]
}
return
}
// Printf calls l.Output to print to the logger.
func (w *Whitelist) Printf(format string, v ...interface{}) {
w.log.Printf(format, v...)
}