1
0
mirror of https://github.com/fumiama/ReiBot.git synced 2026-06-05 00:50:25 +08:00

fix: 管理员ban人权限超过本群范围

This commit is contained in:
源文雨
2022-07-06 13:30:25 +08:00
parent 49b40bc238
commit 439591cd6c
3 changed files with 30 additions and 18 deletions

4
go.mod
View File

@@ -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

3
go.sum
View File

@@ -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=

41
rule.go
View File

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