From 439591cd6c9ead72b70ed94f73cfaeac84fb15f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BA=90=E6=96=87=E9=9B=A8?= <41315874+fumiama@users.noreply.github.com> Date: Wed, 6 Jul 2022 13:30:25 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E7=AE=A1=E7=90=86=E5=91=98ban=E4=BA=BA?= =?UTF-8?q?=E6=9D=83=E9=99=90=E8=B6=85=E8=BF=87=E6=9C=AC=E7=BE=A4=E8=8C=83?= =?UTF-8?q?=E5=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- go.mod | 4 ++-- go.sum | 3 +++ rule.go | 41 +++++++++++++++++++++++++---------------- 3 files changed, 30 insertions(+), 18 deletions(-) diff --git a/go.mod b/go.mod index e42e8a5..6b1bfc8 100644 --- a/go.mod +++ b/go.mod @@ -3,8 +3,8 @@ module github.com/fumiama/ReiBot go 1.18 require ( - github.com/FloatTech/zbpctrl v1.4.1-0.20220610074608-425160596f27 - github.com/FloatTech/zbputils v1.4.1-0.20220611141322-54404ff5dae4 + github.com/FloatTech/zbpctrl v1.4.1-0.20220705050928-b798cd57bc48 + github.com/FloatTech/zbputils v1.4.1-0.20220705054031-c98b2e5448f1 github.com/RomiChan/syncx v0.0.0-20220404072119-d7ea0ae15a4c github.com/fumiama/go-base16384 v1.5.3 github.com/go-telegram-bot-api/telegram-bot-api/v5 v5.5.1 diff --git a/go.sum b/go.sum index 3d035ca..4f0080f 100644 --- a/go.sum +++ b/go.sum @@ -2,8 +2,11 @@ github.com/FloatTech/sqlite v0.3.2 h1:iTg2ZKnzjjZAdlSN3hXmpCBn15odc4Ud484OoM3yXG github.com/FloatTech/sqlite v0.3.2/go.mod h1:VFtLofV5qxw5eBneZRbWwD451SLSm50o9J3J43iB1iw= github.com/FloatTech/zbpctrl v1.4.1-0.20220610074608-425160596f27 h1:C+D30vpxfgbJetTFXWAHzuU8GydbFb/A8Kv6E3PdRS4= github.com/FloatTech/zbpctrl v1.4.1-0.20220610074608-425160596f27/go.mod h1:5FDkrlVaQCxUfeqH7XJPTfej0q+y9fzImhvZI4ofu9Y= +github.com/FloatTech/zbpctrl v1.4.1-0.20220705050928-b798cd57bc48/go.mod h1:5FDkrlVaQCxUfeqH7XJPTfej0q+y9fzImhvZI4ofu9Y= github.com/FloatTech/zbputils v1.4.1-0.20220611141322-54404ff5dae4 h1:dZFi+gaLWY6IWy8U93/KU4Zt1dCsJOhcRVOg5lg2IZY= github.com/FloatTech/zbputils v1.4.1-0.20220611141322-54404ff5dae4/go.mod h1:A9AeVHZsv5chyw8p4fDI0cHnEOfMpmsTLoLWqUT7TO4= +github.com/FloatTech/zbputils v1.4.1-0.20220705054031-c98b2e5448f1 h1:4yDXKIVLR1fGBuQN+jIQnGVb7DXBpm6nyxrbTBVOft4= +github.com/FloatTech/zbputils v1.4.1-0.20220705054031-c98b2e5448f1/go.mod h1:DMLW8ltV9Z31DD37NySjDz+5CPiYRydlesid31VzFiQ= github.com/RomiChan/syncx v0.0.0-20220404072119-d7ea0ae15a4c h1:cNPOdTNiVwxLpROLjXCgbIPvdkE+BwvxDvgmdYmWx6Q= github.com/RomiChan/syncx v0.0.0-20220404072119-d7ea0ae15a4c/go.mod h1:KqZzu7slNKROh3TSYEH/IUMG6f4M+1qubZ5e52QypsE= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= diff --git a/rule.go b/rule.go index 6da2cd1..3df7eed 100644 --- a/rule.go +++ b/rule.go @@ -5,7 +5,6 @@ import ( "os" "strconv" "strings" - "time" "unsafe" ctrl "github.com/FloatTech/zbpctrl" @@ -39,17 +38,6 @@ func init() { if err != nil { panic(err) } - err = m.D.Open(time.Hour * 24) - if err != nil { - panic(err) - } - err = m.InitBlock() - if err != nil { - panic(err) - } - OnMessage(func(ctx *Ctx) bool { - return m.IsBlocked(ctx.Message.From.ID) - }).SetBlock(true).thirdPriority() OnMessageCommandGroup([]string{ "启用", "enable", "禁用", "disable", }, UserOrGrpAdmin).SetBlock(true).secondPriority().Handle(func(ctx *Ctx) { @@ -136,20 +124,41 @@ func init() { grp = -ctx.Message.From.ID } msg := "**" + args[0] + "报告**" + issu := SuperUserPermission(ctx) if strings.Contains(model.Command, "允许") || strings.Contains(model.Command, "permit") { for _, usr := range args[1:] { uid, err := strconv.ParseInt(usr, 10, 64) if err == nil { - service.Permit(uid, grp) - msg += "\n+ 已允许" + usr + if issu { + service.Permit(uid, grp) + msg += "\n+ 已允许" + usr + } else { + member, err := ctx.Caller.GetChatMember(tgba.GetChatMemberConfig{ChatConfigWithUser: tgba.ChatConfigWithUser{ChatID: ctx.Message.Chat.ID, UserID: uid}}) + if err == nil && !member.HasLeft() && !member.WasKicked() { + service.Permit(uid, grp) + msg += "\n+ 已允许" + usr + } else { + msg += "\nx " + usr + " 不在本群" + } + } } } } else { for _, usr := range args[1:] { uid, err := strconv.ParseInt(usr, 10, 64) if err == nil { - service.Ban(uid, grp) - msg += "\n- 已禁止" + usr + if issu { + service.Ban(uid, grp) + msg += "\n- 已禁止" + usr + } else { + member, err := ctx.Caller.GetChatMember(tgba.GetChatMemberConfig{ChatConfigWithUser: tgba.ChatConfigWithUser{ChatID: ctx.Message.Chat.ID, UserID: uid}}) + if err == nil && !member.HasLeft() && !member.WasKicked() { + service.Ban(uid, grp) + msg += "\n- 已禁止" + usr + } else { + msg += "\nx " + usr + " 不在本群" + } + } } } }