//
// policy.go
package srnd
import (
"regexp"
"strings"
)
type FeedPolicy struct {
rules map[string]string
}
// do we allow this newsgroup?
func (self *FeedPolicy) AllowsNewsgroup(newsgroup string) (result bool) {
var k, v string
var allows, disallows int
for k, v = range self.rules {
v = strings.Trim(v, " ")
match, err := regexp.MatchString(k, newsgroup)
if err == nil {
if match {
if v == "1" {
allows++
} else if v == "0" {
disallows++
result = allows > 0 && disallows == 0
return