Whisper watches fixes

This commit is contained in:
obscuren
2014-12-16 19:55:57 +01:00
parent 93edae280d
commit 52b54631a4
6 changed files with 56 additions and 16 deletions

View File

@ -2,19 +2,29 @@ package filter
type Generic struct {
Str1, Str2, Str3 string
Data map[string]struct{}
Fn func(data interface{})
}
// self = registered, f = incoming
func (self Generic) Compare(f Filter) bool {
var strMatch, dataMatch = true, true
filter := f.(Generic)
if (len(self.Str1) == 0 || filter.Str1 == self.Str1) &&
(len(self.Str2) == 0 || filter.Str2 == self.Str2) &&
(len(self.Str3) == 0 || filter.Str3 == self.Str3) {
return true
if (len(self.Str1) > 0 && filter.Str1 != self.Str1) ||
(len(self.Str2) > 0 && filter.Str2 != self.Str2) ||
(len(self.Str3) > 0 && filter.Str3 != self.Str3) {
strMatch = false
}
return false
for k, _ := range self.Data {
if _, ok := filter.Data[k]; !ok {
return false
}
}
return strMatch && dataMatch
}
func (self Generic) Trigger(data interface{}) {