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 + " 不在本群" + } + } } } }