mirror of
https://github.com/FloatTech/ZeroBot-Plugin.git
synced 2025-12-24 10:40:09 +08:00
优化
This commit is contained in:
parent
37b0edde38
commit
a004ed8064
@ -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)
|
||||
|
||||
@ -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()
|
||||
|
||||
Loading…
Reference in New Issue
Block a user