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

View File

@ -20,6 +20,13 @@ type banWord struct {
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 {
grp := strconv.FormatInt(gid, 36)
db.Lock()