This commit is contained in:
源文雨 2022-09-06 20:00:59 +08:00
parent 37b0edde38
commit a004ed8064
2 changed files with 8 additions and 5 deletions

View File

@ -2,7 +2,6 @@
package antiabuse package antiabuse
import ( import (
"strconv"
"strings" "strings"
"time" "time"
@ -61,14 +60,11 @@ func init() {
} }
uid := ctx.Event.UserID uid := ctx.Event.UserID
gid := ctx.Event.GroupID gid := ctx.Event.GroupID
grp := strconv.FormatInt(gid, 36)
msg := strings.ReplaceAll(ctx.MessageString(), "\n", "") msg := strings.ReplaceAll(ctx.MessageString(), "\n", "")
msg = strings.ReplaceAll(msg, "\r", "") msg = strings.ReplaceAll(msg, "\r", "")
msg = strings.ReplaceAll(msg, "\t", "") msg = strings.ReplaceAll(msg, "\t", "")
msg = strings.ReplaceAll(msg, ";", "") msg = strings.ReplaceAll(msg, ";", "")
db.RLock() if db.isInAntiList(uid, gid, msg) {
defer db.RUnlock()
if db.CanFind(grp, "WHERE instr('"+msg+"', word)>=0") {
if err := ctx.State["manager"].(*ctrl.Control[*zero.Ctx]).Manager.DoBlock(uid); err == nil { if err := ctx.State["manager"].(*ctrl.Control[*zero.Ctx]).Manager.DoBlock(uid); err == nil {
cache.Set(uid, struct{}{}) cache.Set(uid, struct{}{})
ctx.SetGroupBan(gid, uid, 4*3600) ctx.SetGroupBan(gid, uid, 4*3600)

View File

@ -20,6 +20,13 @@ type banWord struct {
var nilban = &banWord{} var nilban = &banWord{}
func (db *antidb) isInAntiList(uid, gid int64, msg string) bool {
grp := strconv.FormatInt(gid, 36)
db.RLock()
defer db.RUnlock()
return db.CanFind(grp, "WHERE instr('"+msg+"', word)>=0")
}
func (db *antidb) insertWord(gid int64, word string) error { func (db *antidb) insertWord(gid int64, word string) error {
grp := strconv.FormatInt(gid, 36) grp := strconv.FormatInt(gid, 36)
db.Lock() db.Lock()