You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.1 KiB
48 lines
1.1 KiB
package model |
|
|
|
import ( |
|
"fmt" |
|
"regexp" |
|
"strings" |
|
|
|
"go-common/app/service/main/antispam/util" |
|
) |
|
|
|
const ( |
|
// OperationLimit . |
|
OperationLimit = "limit" |
|
// OperationRestrictLimit . |
|
OperationRestrictLimit = "restrict" |
|
// OperationPutToWhiteList . |
|
OperationPutToWhiteList = "white" |
|
// OperationIgnore . |
|
OperationIgnore = "ignore" |
|
) |
|
|
|
// Regexp . |
|
type Regexp struct { |
|
ID int64 `json:"id"` |
|
Area string `json:"area"` |
|
AdminID int64 `json:"admin_id"` |
|
AdminName string `json:"-"` |
|
Reg *regexp.Regexp `json:"-"` |
|
Name string `json:"name"` |
|
Operation string `json:"op"` |
|
Content string `json:"content"` |
|
State string `json:"state"` |
|
CTime util.JSONTime `json:"-"` |
|
MTime util.JSONTime `json:"mtime"` |
|
} |
|
|
|
// FindString . |
|
func (r *Regexp) FindString(content string) string { |
|
if hits := r.Reg.FindStringSubmatch(content); len(hits) >= 2 { |
|
return strings.TrimSpace(hits[1]) |
|
} |
|
return "" |
|
} |
|
|
|
func (r *Regexp) String() string { |
|
return fmt.Sprintf("name:%s, operation:%s, regexp:%s\n", |
|
r.Name, r.Operation, r.Content) |
|
}
|
|
|