fix rules
This commit is contained in:
parent
e83f376c37
commit
c37ed1c982
50
rules.go
50
rules.go
@ -73,3 +73,53 @@ func resetMsgParsingRules() error {
|
||||
return nil
|
||||
|
||||
}
|
||||
|
||||
func loadMsgParsingRules() (m map[int]MessageParsingRule, err error) {
|
||||
var (
|
||||
id int32
|
||||
priority int32
|
||||
descn string
|
||||
rule string
|
||||
msgTypeID64 int64
|
||||
chatID64 int64
|
||||
userID64 int64
|
||||
)
|
||||
|
||||
log.Println("Loading message parsing rules...")
|
||||
m = make(map[int]MessageParsingRule)
|
||||
count := int(0)
|
||||
|
||||
defer func() {
|
||||
if rec := recover(); rec != nil {
|
||||
log.Println("Error parsing rules : ", rec)
|
||||
err = errors.New("panic")
|
||||
}
|
||||
}()
|
||||
|
||||
rules, err := db.Query(`SELECT r.id, r.prio, r.descn, r.rule, r.msg_type_id, r.chat_id, r.user_id FROM msg_rules r ORDER BY r.prio DESC;`)
|
||||
if err != nil {
|
||||
return m, err
|
||||
}
|
||||
defer rules.Close()
|
||||
|
||||
for rules.Next() {
|
||||
err = rules.Scan(&id, &priority, &descn, &rule, &msgTypeID64, &chatID64, &userID64)
|
||||
if err != nil {
|
||||
return m, err
|
||||
}
|
||||
i := new(MessageParsingRule)
|
||||
i.ID = id
|
||||
i.Priority = priority
|
||||
i.Description = descn
|
||||
i.Rule = rule
|
||||
i.MsgTypeID64 = msgTypeID64
|
||||
i.ChatID64 = chatID64
|
||||
i.SenderUserID64 = userID64
|
||||
i.re = regexp.MustCompile(rule)
|
||||
m[count] = *i
|
||||
// log.Printf("New rule : %s\n", rule)
|
||||
count++
|
||||
}
|
||||
|
||||
return m, nil
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user